From 77b59860322be8a7afb3015003de84b6ec6855fa Mon Sep 17 00:00:00 2001 From: Beverly Date: Mon, 21 May 2018 13:27:09 -0400 Subject: [PATCH] DO NOT MERGE styleActionBar when updating header If the activity has started, style the actionBar when the header is being updated Test: manual Change-Id: Ide69fc0f6e8e5046105bd290d22d9f9a3df5c1ae Bug: 79983080 --- .../notification/HeaderPreferenceController.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/com/android/settings/notification/HeaderPreferenceController.java b/src/com/android/settings/notification/HeaderPreferenceController.java index c6f6a80621f..0a4cca1934f 100644 --- a/src/com/android/settings/notification/HeaderPreferenceController.java +++ b/src/com/android/settings/notification/HeaderPreferenceController.java @@ -18,6 +18,7 @@ package com.android.settings.notification; import static com.android.settings.widget.EntityHeaderController.PREF_KEY_APP_HEADER; +import android.app.Activity; import android.arch.lifecycle.LifecycleObserver; import android.arch.lifecycle.OnLifecycleEvent; import android.content.Context; @@ -26,6 +27,7 @@ import android.support.v7.preference.Preference; import android.text.BidiFormatter; import android.text.SpannableStringBuilder; import android.text.TextUtils; +import android.util.Slog; import android.view.View; import com.android.settings.R; @@ -33,15 +35,13 @@ import com.android.settings.applications.LayoutPreference; import com.android.settings.core.PreferenceControllerMixin; import com.android.settings.widget.EntityHeaderController; import com.android.settingslib.core.lifecycle.Lifecycle; -import com.android.settingslib.core.lifecycle.events.OnStart; - -import java.util.Objects; public class HeaderPreferenceController extends NotificationPreferenceController implements PreferenceControllerMixin, LifecycleObserver { private final PreferenceFragment mFragment; private EntityHeaderController mHeaderController; + private boolean mStarted = false; public HeaderPreferenceController(Context context, PreferenceFragment fragment) { super(context, null); @@ -61,6 +61,13 @@ public class HeaderPreferenceController extends NotificationPreferenceController @Override public void updateState(Preference preference) { if (mAppRow != null && mFragment != null) { + + Activity activity = null; + if (mStarted) { + // don't call done on an activity if it hasn't started yet + activity = mFragment.getActivity(); + } + LayoutPreference pref = (LayoutPreference) preference; mHeaderController = EntityHeaderController.newInstance( mFragment.getActivity(), mFragment, pref.findViewById(R.id.entity_header)); @@ -72,7 +79,7 @@ public class HeaderPreferenceController extends NotificationPreferenceController .setButtonActions(EntityHeaderController.ActionType.ACTION_NOTIF_PREFERENCE, EntityHeaderController.ActionType.ACTION_NONE) .setHasAppInfoLink(true) - .done(null, mContext); + .done(activity, mContext); pref.findViewById(R.id.entity_header).setVisibility(View.VISIBLE); } } @@ -108,6 +115,7 @@ public class HeaderPreferenceController extends NotificationPreferenceController @OnLifecycleEvent(Lifecycle.Event.ON_START) public void onStart() { + mStarted = true; if (mHeaderController != null) { mHeaderController.styleActionBar(mFragment.getActivity()); }