Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0a7d9f27 authored by Jason Monk's avatar Jason Monk
Browse files

Fix duplicate status bars once and for all

Save the state when the fragment is getting re-created so we come
back up in the same state we left in.

Fixes: 36082443
Test: Change density using "adb shell wm density"
Change-Id: I531de728b1f4bf59d4def7ebc5562b3a1ee6694b
parent f33a0379
Loading
Loading
Loading
Loading
+13 −4
Original line number Diff line number Diff line
@@ -45,6 +45,7 @@ import com.android.systemui.statusbar.policy.NetworkController;
public class CollapsedStatusBarFragment extends Fragment implements CommandQueue.Callbacks {

    public static final String TAG = "CollapsedStatusBarFragment";
    private static final String EXTRA_PANEL_STATE = "panel_state";
    private PhoneStatusBarView mStatusBar;
    private KeyguardMonitor mKeyguardMonitor;
    private NetworkController mNetworkController;
@@ -73,13 +74,22 @@ public class CollapsedStatusBarFragment extends Fragment implements CommandQueue
    public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        mStatusBar = (PhoneStatusBarView) view;
        mDarkIconManager = new DarkIconManager((LinearLayout) view.findViewById(R.id.statusIcons));
        if (savedInstanceState != null && savedInstanceState.containsKey(EXTRA_PANEL_STATE)) {
            mStatusBar.go(savedInstanceState.getInt(EXTRA_PANEL_STATE));
        }
        mDarkIconManager = new DarkIconManager(view.findViewById(R.id.statusIcons));
        Dependency.get(StatusBarIconController.class).addIconGroup(mDarkIconManager);
        mSystemIconArea = (LinearLayout) mStatusBar.findViewById(R.id.system_icon_area);
        mSystemIconArea = mStatusBar.findViewById(R.id.system_icon_area);
        mSignalClusterView = reinflateSignalCluster(mStatusBar);
        Dependency.get(DarkIconDispatcher.class).addDarkReceiver(mSignalClusterView);
    }

    @Override
    public void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        outState.putInt(EXTRA_PANEL_STATE, mStatusBar.getState());
    }

    @Override
    public void onResume() {
        super.onResume();
@@ -101,8 +111,7 @@ public class CollapsedStatusBarFragment extends Fragment implements CommandQueue

    public void initNotificationIconArea(NotificationIconAreaController
            notificationIconAreaController) {
        ViewGroup notificationIconArea = (ViewGroup) mStatusBar
                .findViewById(R.id.notification_icon_area);
        ViewGroup notificationIconArea = mStatusBar.findViewById(R.id.notification_icon_area);
        mNotificationIconAreaInner =
                notificationIconAreaController.getNotificationInnerAreaView();
        if (mNotificationIconAreaInner.getParent() != null) {
+4 −0
Original line number Diff line number Diff line
@@ -46,6 +46,10 @@ public abstract class PanelBar extends FrameLayout {
        mState = state;
    }

    public int getState() {
        return mState;
    }

    public PanelBar(Context context, AttributeSet attrs) {
        super(context, attrs);
    }