Fix double divider in Apps & notifications page
- The second divider is shown after we set a background to the pinned header. - Fix it by simply hiding the pinned header instead of its inner views. Fixes: 133231218 Test: robotest, visual Change-Id: I53add6f01930299425ce96d23350f9f066e85145
This commit is contained in:
@@ -113,7 +113,8 @@ public abstract class SettingsPreferenceFragment extends InstrumentedPreferenceF
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
private ViewGroup mPinnedHeaderFrameLayout;
|
@VisibleForTesting
|
||||||
|
ViewGroup mPinnedHeaderFrameLayout;
|
||||||
private ViewGroup mButtonBar;
|
private ViewGroup mButtonBar;
|
||||||
|
|
||||||
private LayoutPreference mHeader;
|
private LayoutPreference mHeader;
|
||||||
@@ -186,6 +187,10 @@ public abstract class SettingsPreferenceFragment extends InstrumentedPreferenceF
|
|||||||
mPinnedHeaderFrameLayout.setVisibility(View.VISIBLE);
|
mPinnedHeaderFrameLayout.setVisibility(View.VISIBLE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void showPinnedHeader(boolean show) {
|
||||||
|
mPinnedHeaderFrameLayout.setVisibility(show ? View.VISIBLE : View.INVISIBLE);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onSaveInstanceState(Bundle outState) {
|
public void onSaveInstanceState(Bundle outState) {
|
||||||
super.onSaveInstanceState(outState);
|
super.onSaveInstanceState(outState);
|
||||||
|
@@ -44,8 +44,6 @@ public class AppAndNotificationDashboardFragment extends DashboardFragment
|
|||||||
|
|
||||||
private static final String TAG = "AppAndNotifDashboard";
|
private static final String TAG = "AppAndNotifDashboard";
|
||||||
|
|
||||||
private View mProgressHeader;
|
|
||||||
private View mProgressAnimation;
|
|
||||||
private RecentAppStatsMixin mRecentAppStatsMixin;
|
private RecentAppStatsMixin mRecentAppStatsMixin;
|
||||||
private RecentAppsPreferenceController mRecentAppsPreferenceController;
|
private RecentAppsPreferenceController mRecentAppsPreferenceController;
|
||||||
private AllAppsInfoPreferenceController mAllAppsInfoPreferenceController;
|
private AllAppsInfoPreferenceController mAllAppsInfoPreferenceController;
|
||||||
@@ -92,20 +90,19 @@ public class AppAndNotificationDashboardFragment extends DashboardFragment
|
|||||||
@Override
|
@Override
|
||||||
public void onViewCreated(View view, Bundle savedInstanceState) {
|
public void onViewCreated(View view, Bundle savedInstanceState) {
|
||||||
super.onViewCreated(view, savedInstanceState);
|
super.onViewCreated(view, savedInstanceState);
|
||||||
mProgressHeader = setPinnedHeaderView(R.layout.progress_header);
|
setPinnedHeaderView(R.layout.progress_header);
|
||||||
mProgressAnimation = mProgressHeader.findViewById(R.id.progress_bar_animation);
|
showPinnedHeader(false);
|
||||||
setLoadingEnabled(false);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onStart() {
|
public void onStart() {
|
||||||
super.onStart();
|
super.onStart();
|
||||||
setLoadingEnabled(true);
|
showPinnedHeader(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onReloadDataCompleted(@NonNull List<UsageStats> recentApps) {
|
public void onReloadDataCompleted(@NonNull List<UsageStats> recentApps) {
|
||||||
setLoadingEnabled(false);
|
showPinnedHeader(false);
|
||||||
if (!recentApps.isEmpty()) {
|
if (!recentApps.isEmpty()) {
|
||||||
Utils.setActionBarShadowAnimation(getActivity(), getSettingsLifecycle(),
|
Utils.setActionBarShadowAnimation(getActivity(), getSettingsLifecycle(),
|
||||||
getListView());
|
getListView());
|
||||||
@@ -117,13 +114,6 @@ public class AppAndNotificationDashboardFragment extends DashboardFragment
|
|||||||
return buildPreferenceControllers(context);
|
return buildPreferenceControllers(context);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setLoadingEnabled(boolean enabled) {
|
|
||||||
if (mProgressHeader != null && mProgressAnimation != null) {
|
|
||||||
mProgressHeader.setVisibility(enabled ? View.VISIBLE : View.INVISIBLE);
|
|
||||||
mProgressAnimation.setVisibility(enabled ? View.VISIBLE : View.INVISIBLE);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static List<AbstractPreferenceController> buildPreferenceControllers(Context context) {
|
private static List<AbstractPreferenceController> buildPreferenceControllers(Context context) {
|
||||||
final List<AbstractPreferenceController> controllers = new ArrayList<>();
|
final List<AbstractPreferenceController> controllers = new ArrayList<>();
|
||||||
controllers.add(new EmergencyBroadcastPreferenceController(context,
|
controllers.add(new EmergencyBroadcastPreferenceController(context,
|
||||||
|
@@ -29,6 +29,7 @@ import static org.mockito.Mockito.when;
|
|||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
import android.widget.FrameLayout;
|
||||||
|
|
||||||
import androidx.fragment.app.FragmentActivity;
|
import androidx.fragment.app.FragmentActivity;
|
||||||
import androidx.preference.Preference;
|
import androidx.preference.Preference;
|
||||||
@@ -187,6 +188,24 @@ public class SettingsPreferenceFragmentTest {
|
|||||||
verify(workOnlyCategory).setVisible(false);
|
verify(workOnlyCategory).setVisible(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void showPinnedHeader_shouldBeVisible() {
|
||||||
|
mFragment.mPinnedHeaderFrameLayout = new FrameLayout(mContext);
|
||||||
|
|
||||||
|
mFragment.showPinnedHeader(true);
|
||||||
|
|
||||||
|
assertThat(mFragment.mPinnedHeaderFrameLayout.getVisibility()).isEqualTo(View.VISIBLE);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void hidePinnedHeader_shouldBeInvisible() {
|
||||||
|
mFragment.mPinnedHeaderFrameLayout = new FrameLayout(mContext);
|
||||||
|
|
||||||
|
mFragment.showPinnedHeader(false);
|
||||||
|
|
||||||
|
assertThat(mFragment.mPinnedHeaderFrameLayout.getVisibility()).isEqualTo(View.INVISIBLE);
|
||||||
|
}
|
||||||
|
|
||||||
public static class TestFragment extends SettingsPreferenceFragment {
|
public static class TestFragment extends SettingsPreferenceFragment {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
Reference in New Issue
Block a user