Fix overlapping problem on notification screen

am: 564fcb90ab

Change-Id: I22700badde84ab5a723b41d59fbd72a9f751452e
This commit is contained in:
tmfang
2019-06-11 10:45:44 -07:00
committed by android-build-merger
2 changed files with 15 additions and 13 deletions

View File

@@ -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;
}
} }

View File

@@ -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);