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

Commit 3387ca4b authored by Dave Mankoff's avatar Dave Mankoff
Browse files

6/N Remove UserTracker from QSBarHeader

Remove the UserTracker from the QuickStatusBarHeader. This removes the
last view injection from QuickStatusBarHeader.

Bug: 168904199
Test: atest SytemUITests
Change-Id: I2f5bf971041b75642b292f7494f31f210e1cb724
parent 1f88b540
Loading
Loading
Loading
Loading
+8 −19
Original line number Diff line number Diff line
@@ -17,10 +17,7 @@ package com.android.systemui.qs;
import static android.app.StatusBarManager.DISABLE2_QUICK_SETTINGS;
import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;

import static com.android.systemui.util.InjectionInflationController.VIEW_CONTEXT;

import android.annotation.ColorInt;
import android.app.AlarmManager;
import android.app.AlarmManager.AlarmClockInfo;
import android.content.Context;
import android.content.res.ColorStateList;
@@ -58,7 +55,6 @@ import com.android.systemui.plugins.DarkIconDispatcher;
import com.android.systemui.plugins.DarkIconDispatcher.DarkReceiver;
import com.android.systemui.privacy.OngoingPrivacyChip;
import com.android.systemui.qs.QSDetail.Callback;
import com.android.systemui.settings.UserTracker;
import com.android.systemui.statusbar.phone.StatusBarIconController.TintedIconManager;
import com.android.systemui.statusbar.phone.StatusBarWindowView;
import com.android.systemui.statusbar.policy.Clock;
@@ -66,9 +62,6 @@ import com.android.systemui.statusbar.policy.Clock;
import java.util.Locale;
import java.util.Objects;

import javax.inject.Inject;
import javax.inject.Named;

/**
 * View that contains the top-most bits of the screen (primarily the status bar with date, time, and
 * battery) and also contains the {@link QuickQSPanel} along with some of the panel's inner
@@ -103,7 +96,6 @@ public class QuickStatusBarHeader extends RelativeLayout implements LifecycleOwn
    private OngoingPrivacyChip mPrivacyChip;
    private Space mSpace;
    private BatteryMeterView mBatteryRemainingIcon;
    private UserTracker mUserTracker;

    // Used for RingerModeTracker
    private final LifecycleRegistry mLifecycle = new LifecycleRegistry(this);
@@ -118,13 +110,10 @@ public class QuickStatusBarHeader extends RelativeLayout implements LifecycleOwn
    private float mExpandedHeaderAlpha = 1.0f;
    private float mKeyguardExpansionFraction;

    @Inject
    public QuickStatusBarHeader(@Named(VIEW_CONTEXT) Context context, AttributeSet attrs,
            UserTracker userTracker) {
    public QuickStatusBarHeader(Context context, AttributeSet attrs) {
        super(context, attrs);
        mDualToneHandler = new DualToneHandler(
                new ContextThemeWrapper(context, R.style.QSHeaderTheme));
        mUserTracker = userTracker;
    }

    @Override
@@ -182,9 +171,10 @@ public class QuickStatusBarHeader extends RelativeLayout implements LifecycleOwn
        return mHeaderQsPanel;
    }

    void updateStatusText(int ringerMode, AlarmClockInfo nextAlarm, boolean zenOverridingRinger) {
    void updateStatusText(int ringerMode, AlarmClockInfo nextAlarm, boolean zenOverridingRinger,
            boolean use24HourFormat) {
        boolean changed = updateRingerStatus(ringerMode, zenOverridingRinger)
                || updateAlarmStatus(nextAlarm);
                || updateAlarmStatus(nextAlarm, use24HourFormat);

        if (changed) {
            boolean alarmVisible = mNextAlarmTextView.getVisibility() == View.VISIBLE;
@@ -218,14 +208,14 @@ public class QuickStatusBarHeader extends RelativeLayout implements LifecycleOwn
                !Objects.equals(originalRingerText, mRingerModeTextView.getText());
    }

    private boolean updateAlarmStatus(AlarmClockInfo nextAlarm) {
    private boolean updateAlarmStatus(AlarmClockInfo nextAlarm, boolean use24HourFormat) {
        boolean isOriginalVisible = mNextAlarmTextView.getVisibility() == View.VISIBLE;
        CharSequence originalAlarmText = mNextAlarmTextView.getText();

        boolean alarmVisible = false;
        if (nextAlarm != null) {
            alarmVisible = true;
            mNextAlarmTextView.setText(formatNextAlarm(nextAlarm));
            mNextAlarmTextView.setText(formatNextAlarm(nextAlarm, use24HourFormat));
        }
        mNextAlarmIcon.setVisibility(alarmVisible ? View.VISIBLE : View.GONE);
        mNextAlarmTextView.setVisibility(alarmVisible ? View.VISIBLE : View.GONE);
@@ -470,12 +460,11 @@ public class QuickStatusBarHeader extends RelativeLayout implements LifecycleOwn
        mHeaderQsPanel.setCallback(qsPanelCallback);
    }

    private String formatNextAlarm(AlarmManager.AlarmClockInfo info) {
    private String formatNextAlarm(AlarmClockInfo info, boolean use24HourFormat) {
        if (info == null) {
            return "";
        }
        String skeleton = android.text.format.DateFormat
                .is24HourFormat(mContext, mUserTracker.getUserId()) ? "EHm" : "Ehma";
        String skeleton = use24HourFormat ? "EHm" : "Ehma";
        String pattern = android.text.format.DateFormat
                .getBestDateTimePattern(Locale.getDefault(), skeleton);
        return android.text.format.DateFormat.format(pattern, info.getTriggerTime()).toString();
+24 −8
Original line number Diff line number Diff line
@@ -44,6 +44,7 @@ import com.android.systemui.privacy.PrivacyChipEvent;
import com.android.systemui.privacy.PrivacyItem;
import com.android.systemui.privacy.PrivacyItemController;
import com.android.systemui.qs.carrier.QSCarrierGroupController;
import com.android.systemui.settings.UserTracker;
import com.android.systemui.statusbar.CommandQueue;
import com.android.systemui.statusbar.phone.StatusBarIconController;
import com.android.systemui.statusbar.phone.StatusIconContainer;
@@ -83,6 +84,7 @@ class QuickStatusBarHeaderController extends ViewController<QuickStatusBarHeader
    private final StatusBarIconController mStatusBarIconController;
    private final CommandQueue mCommandQueue;
    private final DemoModeController mDemoModeController;
    private final UserTracker mUserTracker;
    private final StatusIconContainer mIconContainer;
    private final StatusBarIconController.TintedIconManager mIconManager;
    private final DemoMode mDemoModeReceiver;
@@ -97,20 +99,29 @@ class QuickStatusBarHeaderController extends ViewController<QuickStatusBarHeader
    private final ZenModeController.Callback mZenModeControllerCallback = new Callback() {
        @Override
        public void onZenChanged(int zen) {
            mView.updateStatusText(mRingerMode, mNextAlarm, isZenOverridingRinger());
            mView.updateStatusText(mRingerMode, mNextAlarm, isZenOverridingRinger(),
                    use24HourFormat());
        }

        @Override
        public void onConfigChanged(ZenModeConfig config) {
            mView.updateStatusText(mRingerMode, mNextAlarm, isZenOverridingRinger());
            mView.updateStatusText(mRingerMode, mNextAlarm, isZenOverridingRinger(),
                    use24HourFormat());
        }
    };

    private boolean use24HourFormat() {
        return android.text.format.DateFormat.is24HourFormat(
                mView.getContext(), mUserTracker.getUserId());

    }

    private final NextAlarmChangeCallback mNextAlarmChangeCallback = new NextAlarmChangeCallback() {
        @Override
        public void onNextAlarmChanged(AlarmClockInfo nextAlarm) {
            mNextAlarm = nextAlarm;
            mView.updateStatusText(mRingerMode, mNextAlarm, isZenOverridingRinger());
            mView.updateStatusText(mRingerMode, mNextAlarm, isZenOverridingRinger(),
                    use24HourFormat());
        }
    };

@@ -188,8 +199,8 @@ class QuickStatusBarHeaderController extends ViewController<QuickStatusBarHeader
            PrivacyItemController privacyItemController, RingerModeTracker ringerModeTracker,
            ActivityStarter activityStarter, UiEventLogger uiEventLogger,
            QSTileHost qsTileHost, StatusBarIconController statusBarIconController,
            CommandQueue commandQueue,
            DemoModeController demoModeController,
            CommandQueue commandQueue, DemoModeController demoModeController,
            UserTracker userTracker,
            QSCarrierGroupController.Builder qsCarrierGroupControllerBuilder) {
        super(view);
        mZenModeController = zenModeController;
@@ -202,6 +213,7 @@ class QuickStatusBarHeaderController extends ViewController<QuickStatusBarHeader
        mStatusBarIconController = statusBarIconController;
        mCommandQueue = commandQueue;
        mDemoModeController = demoModeController;
        mUserTracker = userTracker;
        mLifecycle = new LifecycleRegistry(mLifecycleOwner);

        mQSCarrierGroupController = qsCarrierGroupControllerBuilder
@@ -224,7 +236,8 @@ class QuickStatusBarHeaderController extends ViewController<QuickStatusBarHeader
    protected void onViewAttached() {
        mRingerModeTracker.getRingerModeInternal().observe(mLifecycleOwner, ringer -> {
            mRingerMode = ringer;
            mView.updateStatusText(mRingerMode, mNextAlarm, isZenOverridingRinger());
            mView.updateStatusText(mRingerMode, mNextAlarm, isZenOverridingRinger(),
                    use24HourFormat());
        });

        mClockView.setOnClickListener(mOnClickListener);
@@ -368,6 +381,7 @@ class QuickStatusBarHeaderController extends ViewController<QuickStatusBarHeader
        private final StatusBarIconController mStatusBarIconController;
        private final CommandQueue mCommandQueue;
        private final DemoModeController mDemoModeController;
        private final UserTracker mUserTracker;
        private final QSCarrierGroupController.Builder mQSCarrierGroupControllerBuilder;
        private QuickStatusBarHeader mView;

@@ -376,7 +390,7 @@ class QuickStatusBarHeaderController extends ViewController<QuickStatusBarHeader
                PrivacyItemController privacyItemController, RingerModeTracker ringerModeTracker,
                ActivityStarter activityStarter, UiEventLogger uiEventLogger, QSTileHost qsTileHost,
                StatusBarIconController statusBarIconController, CommandQueue commandQueue,
                DemoModeController demoModeController,
                DemoModeController demoModeController, UserTracker userTracker,
                QSCarrierGroupController.Builder qsCarrierGroupControllerBuilder) {
            mZenModeController = zenModeController;
            mNextAlarmController = nextAlarmController;
@@ -388,6 +402,7 @@ class QuickStatusBarHeaderController extends ViewController<QuickStatusBarHeader
            mStatusBarIconController = statusBarIconController;
            mCommandQueue = commandQueue;
            mDemoModeController = demoModeController;
            mUserTracker = userTracker;
            mQSCarrierGroupControllerBuilder = qsCarrierGroupControllerBuilder;
        }

@@ -401,7 +416,8 @@ class QuickStatusBarHeaderController extends ViewController<QuickStatusBarHeader
            return new QuickStatusBarHeaderController(mView, mZenModeController,
                    mNextAlarmController, mPrivacyItemController, mRingerModeTracker,
                    mActivityStarter, mUiEventLogger, mQsTileHost, mStatusBarIconController,
                    mCommandQueue, mDemoModeController, mQSCarrierGroupControllerBuilder);
                    mCommandQueue, mDemoModeController, mUserTracker,
                    mQSCarrierGroupControllerBuilder);
        }
    }
}
+0 −5
Original line number Diff line number Diff line
@@ -27,7 +27,6 @@ import com.android.systemui.dagger.SysUISingleton;
import com.android.systemui.qs.QSFooterImpl;
import com.android.systemui.qs.QSPanel;
import com.android.systemui.qs.QuickQSPanel;
import com.android.systemui.qs.QuickStatusBarHeader;
import com.android.systemui.qs.customize.QSCustomizer;
import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout;

@@ -92,10 +91,6 @@ public class InjectionInflationController {
                    @BindsInstance AttributeSet attributeSet);
        }

        /**
         * Creates the QuickStatusBarHeader.
         */
        QuickStatusBarHeader createQsHeader();
        /**
         * Creates the QSFooterImpl.
         */