3/N Move PrivacyItemController out of QSBarHeader.
Move PrivacyItemController out of QuickStatusBarHeader and into its controller. Change-Id: Ibdc24912fd333d80ab13dfd5df12ebc27d68353f Test: atest SystemUITests
This commit is contained in:
@@ -61,7 +61,6 @@ import com.android.systemui.demomode.DemoModeController;
|
||||
import com.android.systemui.plugins.DarkIconDispatcher;
|
||||
import com.android.systemui.plugins.DarkIconDispatcher.DarkReceiver;
|
||||
import com.android.systemui.privacy.OngoingPrivacyChip;
|
||||
import com.android.systemui.privacy.PrivacyItemController;
|
||||
import com.android.systemui.qs.QSDetail.Callback;
|
||||
import com.android.systemui.settings.UserTracker;
|
||||
import com.android.systemui.statusbar.phone.StatusBarIconController.TintedIconManager;
|
||||
@@ -69,8 +68,6 @@ import com.android.systemui.statusbar.phone.StatusBarWindowView;
|
||||
import com.android.systemui.statusbar.policy.Clock;
|
||||
import com.android.systemui.statusbar.policy.ZenModeController;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Objects;
|
||||
|
||||
@@ -119,7 +116,6 @@ public class QuickStatusBarHeader extends RelativeLayout implements LifecycleOwn
|
||||
private boolean mAllIndicatorsEnabled;
|
||||
private boolean mMicCameraIndicatorsEnabled;
|
||||
|
||||
private PrivacyItemController mPrivacyItemController;
|
||||
// Used for RingerModeTracker
|
||||
private final LifecycleRegistry mLifecycle = new LifecycleRegistry(this);
|
||||
|
||||
@@ -135,11 +131,10 @@ public class QuickStatusBarHeader extends RelativeLayout implements LifecycleOwn
|
||||
|
||||
@Inject
|
||||
public QuickStatusBarHeader(@Named(VIEW_CONTEXT) Context context, AttributeSet attrs,
|
||||
ZenModeController zenModeController, PrivacyItemController privacyItemController,
|
||||
DemoModeController demoModeController, UserTracker userTracker) {
|
||||
ZenModeController zenModeController, DemoModeController demoModeController,
|
||||
UserTracker userTracker) {
|
||||
super(context, attrs);
|
||||
mZenController = zenModeController;
|
||||
mPrivacyItemController = privacyItemController;
|
||||
mDualToneHandler = new DualToneHandler(
|
||||
new ContextThemeWrapper(context, R.style.QSHeaderTheme));
|
||||
mDemoModeController = demoModeController;
|
||||
@@ -184,9 +179,6 @@ public class QuickStatusBarHeader extends RelativeLayout implements LifecycleOwn
|
||||
mBatteryRemainingIcon.setPercentShowMode(BatteryMeterView.MODE_ESTIMATE);
|
||||
mRingerModeTextView.setSelected(true);
|
||||
mNextAlarmTextView.setSelected(true);
|
||||
|
||||
mAllIndicatorsEnabled = mPrivacyItemController.getAllIndicatorsAvailable();
|
||||
mMicCameraIndicatorsEnabled = mPrivacyItemController.getMicCameraAvailable();
|
||||
}
|
||||
|
||||
void onAttach(TintedIconManager iconManager) {
|
||||
@@ -205,22 +197,6 @@ public class QuickStatusBarHeader extends RelativeLayout implements LifecycleOwn
|
||||
return mHeaderQsPanel;
|
||||
}
|
||||
|
||||
List<String> getIgnoredIconSlots() {
|
||||
ArrayList<String> ignored = new ArrayList<>();
|
||||
if (getChipEnabled()) {
|
||||
ignored.add(mContext.getResources().getString(
|
||||
com.android.internal.R.string.status_bar_camera));
|
||||
ignored.add(mContext.getResources().getString(
|
||||
com.android.internal.R.string.status_bar_microphone));
|
||||
if (mAllIndicatorsEnabled) {
|
||||
ignored.add(mContext.getResources().getString(
|
||||
com.android.internal.R.string.status_bar_location));
|
||||
}
|
||||
}
|
||||
|
||||
return ignored;
|
||||
}
|
||||
|
||||
void updateStatusText(int ringerMode, AlarmClockInfo nextAlarm) {
|
||||
boolean changed = updateRingerStatus(ringerMode) || updateAlarmStatus(nextAlarm);
|
||||
|
||||
@@ -579,10 +555,6 @@ public class QuickStatusBarHeader extends RelativeLayout implements LifecycleOwn
|
||||
}
|
||||
}
|
||||
|
||||
boolean getChipEnabled() {
|
||||
return mMicCameraIndicatorsEnabled || mAllIndicatorsEnabled;
|
||||
}
|
||||
|
||||
private static class ClockDemoModeReceiver implements DemoMode {
|
||||
private Clock mClockView;
|
||||
|
||||
|
||||
@@ -52,6 +52,7 @@ import com.android.systemui.statusbar.policy.ZenModeController.Callback;
|
||||
import com.android.systemui.util.RingerModeTracker;
|
||||
import com.android.systemui.util.ViewController;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import javax.inject.Inject;
|
||||
@@ -141,7 +142,7 @@ class QuickStatusBarHeaderController extends ViewController<QuickStatusBarHeader
|
||||
|
||||
private void update() {
|
||||
StatusIconContainer iconContainer = mView.requireViewById(R.id.statusIcons);
|
||||
iconContainer.setIgnoredSlots(mView.getIgnoredIconSlots());
|
||||
iconContainer.setIgnoredSlots(getIgnoredIconSlots());
|
||||
setChipVisibility(!mPrivacyChip.getPrivacyList().isEmpty());
|
||||
}
|
||||
};
|
||||
@@ -224,10 +225,13 @@ class QuickStatusBarHeaderController extends ViewController<QuickStatusBarHeader
|
||||
mPrivacyChip.setOnClickListener(mOnClickListener);
|
||||
|
||||
// Ignore privacy icons because they show in the space above QQS
|
||||
mIconContainer.addIgnoredSlots(mView.getIgnoredIconSlots());
|
||||
mIconContainer.addIgnoredSlots(getIgnoredIconSlots());
|
||||
mIconContainer.setShouldRestrictIcons(false);
|
||||
mStatusBarIconController.addIconGroup(mIconManager);
|
||||
|
||||
mAllIndicatorsEnabled = mPrivacyItemController.getAllIndicatorsAvailable();
|
||||
mMicCameraIndicatorsEnabled = mPrivacyItemController.getMicCameraAvailable();
|
||||
|
||||
setChipVisibility(mPrivacyChip.getVisibility() == View.VISIBLE);
|
||||
|
||||
mView.onAttach(mIconManager);
|
||||
@@ -275,7 +279,7 @@ class QuickStatusBarHeaderController extends ViewController<QuickStatusBarHeader
|
||||
}
|
||||
|
||||
private void setChipVisibility(boolean chipVisible) {
|
||||
if (chipVisible && mView.getChipEnabled()) {
|
||||
if (chipVisible && getChipEnabled()) {
|
||||
mPrivacyChip.setVisibility(View.VISIBLE);
|
||||
// Makes sure that the chip is logged as viewed at most once each time QS is opened
|
||||
// mListening makes sure that the callback didn't return after the user closed QS
|
||||
@@ -288,6 +292,27 @@ class QuickStatusBarHeaderController extends ViewController<QuickStatusBarHeader
|
||||
}
|
||||
}
|
||||
|
||||
private List<String> getIgnoredIconSlots() {
|
||||
ArrayList<String> ignored = new ArrayList<>();
|
||||
if (getChipEnabled()) {
|
||||
ignored.add(mView.getResources().getString(
|
||||
com.android.internal.R.string.status_bar_camera));
|
||||
ignored.add(mView.getResources().getString(
|
||||
com.android.internal.R.string.status_bar_microphone));
|
||||
if (mAllIndicatorsEnabled) {
|
||||
ignored.add(mView.getResources().getString(
|
||||
com.android.internal.R.string.status_bar_location));
|
||||
}
|
||||
}
|
||||
|
||||
return ignored;
|
||||
}
|
||||
|
||||
|
||||
private boolean getChipEnabled() {
|
||||
return mMicCameraIndicatorsEnabled || mAllIndicatorsEnabled;
|
||||
}
|
||||
|
||||
static class Builder {
|
||||
private final ZenModeController mZenModeController;
|
||||
private final NextAlarmController mNextAlarmController;
|
||||
|
||||
Reference in New Issue
Block a user