Fix overlapping problem on notification screen
am: 564fcb90ab
Change-Id: I22700badde84ab5a723b41d59fbd72a9f751452e
This commit is contained in:
@@ -25,13 +25,14 @@ import android.text.SpannableStringBuilder;
|
|||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
|
||||||
|
import androidx.annotation.VisibleForTesting;
|
||||||
import androidx.lifecycle.LifecycleObserver;
|
import androidx.lifecycle.LifecycleObserver;
|
||||||
import androidx.lifecycle.OnLifecycleEvent;
|
import androidx.lifecycle.OnLifecycleEvent;
|
||||||
import androidx.preference.Preference;
|
import androidx.preference.Preference;
|
||||||
import androidx.preference.PreferenceFragmentCompat;
|
|
||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.core.PreferenceControllerMixin;
|
import com.android.settings.core.PreferenceControllerMixin;
|
||||||
|
import com.android.settings.dashboard.DashboardFragment;
|
||||||
import com.android.settings.widget.EntityHeaderController;
|
import com.android.settings.widget.EntityHeaderController;
|
||||||
import com.android.settingslib.core.lifecycle.Lifecycle;
|
import com.android.settingslib.core.lifecycle.Lifecycle;
|
||||||
import com.android.settingslib.widget.LayoutPreference;
|
import com.android.settingslib.widget.LayoutPreference;
|
||||||
@@ -39,11 +40,11 @@ import com.android.settingslib.widget.LayoutPreference;
|
|||||||
public class HeaderPreferenceController extends NotificationPreferenceController
|
public class HeaderPreferenceController extends NotificationPreferenceController
|
||||||
implements PreferenceControllerMixin, LifecycleObserver {
|
implements PreferenceControllerMixin, LifecycleObserver {
|
||||||
|
|
||||||
private final PreferenceFragmentCompat mFragment;
|
private final DashboardFragment mFragment;
|
||||||
private EntityHeaderController mHeaderController;
|
private EntityHeaderController mHeaderController;
|
||||||
private boolean mStarted = false;
|
private boolean mStarted = false;
|
||||||
|
|
||||||
public HeaderPreferenceController(Context context, PreferenceFragmentCompat fragment) {
|
public HeaderPreferenceController(Context context, DashboardFragment fragment) {
|
||||||
super(context, null);
|
super(context, null);
|
||||||
mFragment = fragment;
|
mFragment = fragment;
|
||||||
}
|
}
|
||||||
@@ -83,18 +84,12 @@ public class HeaderPreferenceController extends NotificationPreferenceController
|
|||||||
.setButtonActions(EntityHeaderController.ActionType.ACTION_NOTIF_PREFERENCE,
|
.setButtonActions(EntityHeaderController.ActionType.ACTION_NOTIF_PREFERENCE,
|
||||||
EntityHeaderController.ActionType.ACTION_NONE)
|
EntityHeaderController.ActionType.ACTION_NONE)
|
||||||
.setHasAppInfoLink(true)
|
.setHasAppInfoLink(true)
|
||||||
|
.setRecyclerView(mFragment.getListView(), mFragment.getSettingsLifecycle())
|
||||||
.done(activity, mContext);
|
.done(activity, mContext);
|
||||||
pref.findViewById(R.id.entity_header).setVisibility(View.VISIBLE);
|
pref.findViewById(R.id.entity_header).setVisibility(View.VISIBLE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
CharSequence getLabel() {
|
|
||||||
return (mChannel != null && !isDefaultChannel()) ? mChannel.getName()
|
|
||||||
: mChannelGroup != null
|
|
||||||
? mChannelGroup.getName()
|
|
||||||
: mAppRow.label;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public CharSequence getSummary() {
|
public CharSequence getSummary() {
|
||||||
if (mChannel != null && !isDefaultChannel()) {
|
if (mChannel != null && !isDefaultChannel()) {
|
||||||
@@ -124,4 +119,12 @@ public class HeaderPreferenceController extends NotificationPreferenceController
|
|||||||
mHeaderController.styleActionBar(mFragment.getActivity());
|
mHeaderController.styleActionBar(mFragment.getActivity());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@VisibleForTesting
|
||||||
|
CharSequence getLabel() {
|
||||||
|
return (mChannel != null && !isDefaultChannel()) ? mChannel.getName()
|
||||||
|
: mChannelGroup != null
|
||||||
|
? mChannelGroup.getName()
|
||||||
|
: mAppRow.label;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -21,7 +21,6 @@ import static android.app.NotificationManager.IMPORTANCE_NONE;
|
|||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
import static org.junit.Assert.assertFalse;
|
import static org.junit.Assert.assertFalse;
|
||||||
import static org.junit.Assert.assertTrue;
|
import static org.junit.Assert.assertTrue;
|
||||||
|
|
||||||
import static org.mockito.ArgumentMatchers.anyInt;
|
import static org.mockito.ArgumentMatchers.anyInt;
|
||||||
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.mock;
|
||||||
import static org.mockito.Mockito.spy;
|
import static org.mockito.Mockito.spy;
|
||||||
@@ -35,8 +34,8 @@ import android.os.UserManager;
|
|||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
|
||||||
import androidx.fragment.app.FragmentActivity;
|
import androidx.fragment.app.FragmentActivity;
|
||||||
import androidx.preference.PreferenceFragmentCompat;
|
|
||||||
|
|
||||||
|
import com.android.settings.dashboard.DashboardFragment;
|
||||||
import com.android.settingslib.widget.LayoutPreference;
|
import com.android.settingslib.widget.LayoutPreference;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
@@ -70,7 +69,7 @@ public class HeaderPreferenceControllerTest {
|
|||||||
shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNm);
|
shadowApplication.setSystemService(Context.NOTIFICATION_SERVICE, mNm);
|
||||||
shadowApplication.setSystemService(Context.USER_SERVICE, mUm);
|
shadowApplication.setSystemService(Context.USER_SERVICE, mUm);
|
||||||
mContext = RuntimeEnvironment.application;
|
mContext = RuntimeEnvironment.application;
|
||||||
PreferenceFragmentCompat fragment = mock(PreferenceFragmentCompat.class);
|
DashboardFragment fragment = mock(DashboardFragment.class);
|
||||||
when(fragment.getContext()).thenReturn(mContext);
|
when(fragment.getContext()).thenReturn(mContext);
|
||||||
FragmentActivity activity = mock(FragmentActivity.class);
|
FragmentActivity activity = mock(FragmentActivity.class);
|
||||||
when(activity.getApplicationContext()).thenReturn(mContext);
|
when(activity.getApplicationContext()).thenReturn(mContext);
|
||||||
|
Reference in New Issue
Block a user