Merge "Fix inconsist color filling on collapsing toolbar" into sc-dev
diff --git a/src/com/android/settings/applications/appinfo/AppHeaderViewPreferenceController.java b/src/com/android/settings/applications/appinfo/AppHeaderViewPreferenceController.java
index c9f0e31..285493a 100644
--- a/src/com/android/settings/applications/appinfo/AppHeaderViewPreferenceController.java
+++ b/src/com/android/settings/applications/appinfo/AppHeaderViewPreferenceController.java
@@ -29,11 +29,10 @@
 import com.android.settingslib.applications.ApplicationsState.AppEntry;
 import com.android.settingslib.core.lifecycle.Lifecycle;
 import com.android.settingslib.core.lifecycle.LifecycleObserver;
-import com.android.settingslib.core.lifecycle.events.OnStart;
 import com.android.settingslib.widget.LayoutPreference;
 
 public class AppHeaderViewPreferenceController extends BasePreferenceController
-        implements AppInfoDashboardFragment.Callback, LifecycleObserver, OnStart {
+        implements AppInfoDashboardFragment.Callback, LifecycleObserver {
 
     private static final String KEY_HEADER = "header_view";
 
@@ -67,6 +66,7 @@
         final Activity activity = mParent.getActivity();
         mEntityHeaderController = EntityHeaderController
                 .newInstance(activity, mParent, mHeader.findViewById(R.id.entity_header))
+                .setRecyclerView(mParent.getListView(), mLifecycle)
                 .setPackageName(mPackageName)
                 .setButtonActions(EntityHeaderController.ActionType.ACTION_NONE,
                         EntityHeaderController.ActionType.ACTION_NONE)
@@ -74,13 +74,6 @@
     }
 
     @Override
-    public void onStart() {
-        mEntityHeaderController
-                .setRecyclerView(mParent.getListView(), mLifecycle)
-                .styleActionBar(mParent.getActivity());
-    }
-
-    @Override
     public void refreshUi() {
         setAppLabelAndIcon(mParent.getPackageInfo(), mParent.getAppEntry());
     }
diff --git a/src/com/android/settings/applications/specialaccess/notificationaccess/HeaderPreferenceController.java b/src/com/android/settings/applications/specialaccess/notificationaccess/HeaderPreferenceController.java
index 1144f12..8ccf7ed 100644
--- a/src/com/android/settings/applications/specialaccess/notificationaccess/HeaderPreferenceController.java
+++ b/src/com/android/settings/applications/specialaccess/notificationaccess/HeaderPreferenceController.java
@@ -25,7 +25,6 @@
 import android.view.View;
 
 import androidx.lifecycle.LifecycleObserver;
-import androidx.lifecycle.OnLifecycleEvent;
 import androidx.preference.PreferenceScreen;
 
 import com.android.settings.R;
@@ -36,7 +35,6 @@
 import com.android.settings.widget.EntityHeaderController;
 import com.android.settingslib.applications.AppUtils;
 import com.android.settingslib.bluetooth.LocalBluetoothManager;
-import com.android.settingslib.core.lifecycle.Lifecycle;
 import com.android.settingslib.widget.LayoutPreference;
 
 public class HeaderPreferenceController extends BasePreferenceController
@@ -127,11 +125,4 @@
                 .done(mFragment.getActivity(), mContext);
         pref.findViewById(R.id.entity_header).setVisibility(View.VISIBLE);
     }
-
-    @OnLifecycleEvent(Lifecycle.Event.ON_START)
-    public void onStart() {
-        if (mHeaderController != null) {
-            mHeaderController.styleActionBar(mFragment.getActivity());
-        }
-    }
 }
diff --git a/src/com/android/settings/datausage/DataUsageSummaryPreferenceController.java b/src/com/android/settings/datausage/DataUsageSummaryPreferenceController.java
index bc47e5e..ac1e1ad 100644
--- a/src/com/android/settings/datausage/DataUsageSummaryPreferenceController.java
+++ b/src/com/android/settings/datausage/DataUsageSummaryPreferenceController.java
@@ -179,7 +179,6 @@
         }
         RecyclerView view = mFragment.getListView();
         mEntityHeaderController.setRecyclerView(view, mLifecycle);
-        mEntityHeaderController.styleActionBar((Activity) mContext);
     }
 
     @VisibleForTesting
diff --git a/src/com/android/settings/notification/app/ConversationHeaderPreferenceController.java b/src/com/android/settings/notification/app/ConversationHeaderPreferenceController.java
index 73659b8..f99a56a 100644
--- a/src/com/android/settings/notification/app/ConversationHeaderPreferenceController.java
+++ b/src/com/android/settings/notification/app/ConversationHeaderPreferenceController.java
@@ -122,9 +122,6 @@
     @OnLifecycleEvent(Lifecycle.Event.ON_START)
     public void onStart() {
         mStarted = true;
-        if (mHeaderController != null) {
-            mHeaderController.styleActionBar(mFragment.getActivity());
-        }
     }
 
     @VisibleForTesting
diff --git a/src/com/android/settings/notification/app/HeaderPreferenceController.java b/src/com/android/settings/notification/app/HeaderPreferenceController.java
index 4e9c039..974ac79 100644
--- a/src/com/android/settings/notification/app/HeaderPreferenceController.java
+++ b/src/com/android/settings/notification/app/HeaderPreferenceController.java
@@ -121,9 +121,6 @@
     @OnLifecycleEvent(Lifecycle.Event.ON_START)
     public void onStart() {
         mStarted = true;
-        if (mHeaderController != null) {
-            mHeaderController.styleActionBar(mFragment.getActivity());
-        }
     }
 
     @VisibleForTesting
diff --git a/src/com/android/settings/widget/EntityHeaderController.java b/src/com/android/settings/widget/EntityHeaderController.java
index 91a20b3..791d6ca 100644
--- a/src/com/android/settings/widget/EntityHeaderController.java
+++ b/src/com/android/settings/widget/EntityHeaderController.java
@@ -18,15 +18,12 @@
 
 import android.annotation.IdRes;
 import android.annotation.UserIdInt;
-import android.app.ActionBar;
 import android.app.Activity;
 import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.content.Intent;
 import android.content.pm.PackageInfo;
-import android.graphics.drawable.ColorDrawable;
 import android.graphics.drawable.Drawable;
-import android.os.Bundle;
 import android.os.UserHandle;
 import android.text.TextUtils;
 import android.util.Log;
@@ -48,7 +45,6 @@
 import com.android.settings.overlay.FeatureFactory;
 import com.android.settingslib.applications.ApplicationsState;
 import com.android.settingslib.core.lifecycle.Lifecycle;
-import com.android.settingslib.widget.ActionBarShadowController;
 import com.android.settingslib.widget.LayoutPreference;
 
 import java.lang.annotation.Retention;
@@ -244,7 +240,6 @@
      * Done mutating entity header, rebinds everything (optionally skip rebinding buttons).
      */
     public View done(Activity activity, boolean rebindActions) {
-        styleActionBar(activity);
         ImageView iconView = mHeader.findViewById(R.id.entity_header_icon);
         if (iconView != null) {
             iconView.setImageDrawable(mIcon);
@@ -303,32 +298,6 @@
     }
 
     /**
-     * Styles the action bar (elevation, scrolling behaviors, color, etc).
-     * <p/>
-     * This method must be called after {@link Fragment#onCreate(Bundle)}.
-     */
-    public EntityHeaderController styleActionBar(Activity activity) {
-        if (activity == null) {
-            Log.w(TAG, "No activity, cannot style actionbar.");
-            return this;
-        }
-        final ActionBar actionBar = activity.getActionBar();
-        if (actionBar == null) {
-            Log.w(TAG, "No actionbar, cannot style actionbar.");
-            return this;
-        }
-        actionBar.setBackgroundDrawable(
-                new ColorDrawable(
-                        Utils.getColorAttrDefaultColor(activity, android.R.attr.colorPrimaryDark)));
-        actionBar.setElevation(0);
-        if (mRecyclerView != null && mLifecycle != null) {
-            ActionBarShadowController.attachToView(mActivity, mLifecycle, mRecyclerView);
-        }
-
-        return this;
-    }
-
-    /**
      * Done mutating entity header, rebinds everything.
      */
     @VisibleForTesting
diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/AppHeaderViewPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/AppHeaderViewPreferenceControllerTest.java
index 6684e1a..c5ed459 100644
--- a/tests/robotests/src/com/android/settings/applications/appinfo/AppHeaderViewPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/applications/appinfo/AppHeaderViewPreferenceControllerTest.java
@@ -16,23 +16,16 @@
 
 package com.android.settings.applications.appinfo;
 
-import static androidx.lifecycle.Lifecycle.Event.ON_START;
-
 import static com.google.common.truth.Truth.assertThat;
 
-import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyString;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.verifyZeroInteractions;
 import static org.mockito.Mockito.when;
 
-import android.app.ActionBar;
 import android.content.Context;
 import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageInfo;
-import android.graphics.drawable.Drawable;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.widget.TextView;
@@ -116,18 +109,4 @@
         assertThat(title).isNotNull();
         assertThat(title.getText()).isEqualTo(appLabel);
     }
-
-    @Test
-    public void onStart_shouldStyleActionBar() {
-        final ActionBar actionBar = mock(ActionBar.class);
-        when(mActivity.getActionBar()).thenReturn(actionBar);
-
-        mController.displayPreference(mScreen);
-
-        verifyZeroInteractions(actionBar);
-
-        mLifecycle.handleLifecycleEvent(ON_START);
-
-        verify(actionBar).setBackgroundDrawable(any(Drawable.class));
-    }
 }
diff --git a/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceControllerTest.java
index 6a7f237..71d5d7e 100644
--- a/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/datausage/DataUsageSummaryPreferenceControllerTest.java
@@ -29,7 +29,6 @@
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
-import android.app.Activity;
 import android.content.Context;
 import android.content.Intent;
 import android.content.pm.PackageManager;
@@ -386,7 +385,6 @@
 
         verify(mHeaderController)
                 .setRecyclerView(any(RecyclerView.class), any(Lifecycle.class));
-        verify(mHeaderController).styleActionBar(any(Activity.class));
     }
 
     private DataUsageController.DataUsageInfo createTestDataUsageInfo(long now) {
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceControllerTest.java
index e36a831..6313da2 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/BatteryHeaderPreferenceControllerTest.java
@@ -17,13 +17,9 @@
 
 package com.android.settings.fuelgauge;
 
-import static androidx.lifecycle.Lifecycle.Event.ON_START;
-
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.ArgumentMatchers.nullable;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
@@ -41,7 +37,6 @@
 import androidx.lifecycle.LifecycleOwner;
 import androidx.preference.PreferenceFragmentCompat;
 import androidx.preference.PreferenceScreen;
-import androidx.recyclerview.widget.RecyclerView;
 
 import com.android.settings.R;
 import com.android.settings.core.BasePreferenceController;
@@ -284,17 +279,6 @@
     }
 
     @Test
-    public void onStart_shouldStyleActionBar() {
-        when(mEntityHeaderController.setRecyclerView(nullable(RecyclerView.class), eq(mLifecycle)))
-                .thenReturn(mEntityHeaderController);
-
-        mController.displayPreference(mPreferenceScreen);
-        mLifecycle.handleLifecycleEvent(ON_START);
-
-        verify(mEntityHeaderController).styleActionBar(mActivity);
-    }
-
-    @Test
     public void quickUpdateHeaderPreference_onlyUpdateBatteryLevelAndChargingState() {
         mController.quickUpdateHeaderPreference();
 
diff --git a/tests/robotests/src/com/android/settings/widget/EntityHeaderControllerTest.java b/tests/robotests/src/com/android/settings/widget/EntityHeaderControllerTest.java
index f73d0f7..cac1b34 100644
--- a/tests/robotests/src/com/android/settings/widget/EntityHeaderControllerTest.java
+++ b/tests/robotests/src/com/android/settings/widget/EntityHeaderControllerTest.java
@@ -26,13 +26,11 @@
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
-import android.app.ActionBar;
 import android.content.Context;
 import android.content.Intent;
 import android.content.pm.ActivityInfo;
 import android.content.pm.PackageInfo;
 import android.content.pm.ResolveInfo;
-import android.graphics.drawable.ColorDrawable;
 import android.os.UserHandle;
 import android.view.LayoutInflater;
 import android.view.View;
@@ -303,30 +301,6 @@
     }
 
     @Test
-    public void styleActionBar_invalidObjects_shouldNotCrash() {
-        mController = EntityHeaderController.newInstance(mActivity, mFragment, null);
-        mController.styleActionBar(null);
-
-        when(mActivity.getActionBar()).thenReturn(null);
-        mController.styleActionBar(mActivity);
-
-        verify(mActivity).getActionBar();
-    }
-
-    @Test
-    public void styleActionBar_setElevationAndBackground() {
-        final ActionBar actionBar = mActivity.getActionBar();
-
-        mController = EntityHeaderController.newInstance(mActivity, mFragment, null);
-        mController.styleActionBar(mActivity);
-
-        verify(actionBar).setElevation(0);
-        // Enforce a color drawable as background here, as image based drawables might not be
-        // wide enough to cover entire action bar.
-        verify(actionBar).setBackgroundDrawable(any(ColorDrawable.class));
-    }
-
-    @Test
     public void initAppHeaderController_appHeaderNull_useFragmentContext() {
         mController = EntityHeaderController.newInstance(mActivity, mFragment, null);