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
This commit is contained in:
Dave Mankoff
2020-10-01 12:25:45 -04:00
parent 1f88b54079
commit 3387ca4bc2
3 changed files with 32 additions and 32 deletions

View File

@@ -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();

View File

@@ -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);
}
}
}

View File

@@ -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.
*/