Move StatusBar.DemoMode to separate class.
Creates StatusBarDemoMode, removing code from StatusBar. Bug: 190746471 Test: atest SystemUITests Change-Id: I541530a3103e9dc65062606e60347ad5595ff781
This commit is contained in:
@@ -39,9 +39,7 @@ import static com.android.systemui.statusbar.phone.BarTransitions.MODE_LIGHTS_OU
|
||||
import static com.android.systemui.statusbar.phone.BarTransitions.MODE_LIGHTS_OUT_TRANSPARENT;
|
||||
import static com.android.systemui.statusbar.phone.BarTransitions.MODE_OPAQUE;
|
||||
import static com.android.systemui.statusbar.phone.BarTransitions.MODE_SEMI_TRANSPARENT;
|
||||
import static com.android.systemui.statusbar.phone.BarTransitions.MODE_TRANSLUCENT;
|
||||
import static com.android.systemui.statusbar.phone.BarTransitions.MODE_TRANSPARENT;
|
||||
import static com.android.systemui.statusbar.phone.BarTransitions.MODE_WARNING;
|
||||
import static com.android.systemui.statusbar.phone.BarTransitions.TransitionMode;
|
||||
import static com.android.wm.shell.bubbles.BubbleController.TASKBAR_CHANGED_BROADCAST;
|
||||
|
||||
@@ -158,8 +156,6 @@ import com.android.systemui.charging.WirelessChargingAnimation;
|
||||
import com.android.systemui.classifier.FalsingCollector;
|
||||
import com.android.systemui.colorextraction.SysuiColorExtractor;
|
||||
import com.android.systemui.dagger.qualifiers.UiBackground;
|
||||
import com.android.systemui.demomode.DemoMode;
|
||||
import com.android.systemui.demomode.DemoModeCommandReceiver;
|
||||
import com.android.systemui.demomode.DemoModeController;
|
||||
import com.android.systemui.emergency.EmergencyGesture;
|
||||
import com.android.systemui.fragments.ExtensionFragmentListener;
|
||||
@@ -717,60 +713,6 @@ public class StatusBar extends SystemUI implements
|
||||
private ActivityIntentHelper mActivityIntentHelper;
|
||||
private NotificationStackScrollLayoutController mStackScrollerController;
|
||||
|
||||
private final DemoMode mDemoMode = new DemoMode() {
|
||||
|
||||
@Override
|
||||
public List<String> demoCommands() {
|
||||
List<String> s = new ArrayList<>();
|
||||
s.add(DemoMode.COMMAND_BARS);
|
||||
s.add(DemoMode.COMMAND_CLOCK);
|
||||
s.add(DemoMode.COMMAND_OPERATOR);
|
||||
return s;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDemoModeStarted() {
|
||||
// Must send this message to any view that we delegate to via dispatchDemoCommandToView
|
||||
dispatchDemoModeStartedToView(R.id.clock);
|
||||
dispatchDemoModeStartedToView(R.id.operator_name);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDemoModeFinished() {
|
||||
dispatchDemoModeFinishedToView(R.id.clock);
|
||||
dispatchDemoModeFinishedToView(R.id.operator_name);
|
||||
checkBarModes();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dispatchDemoCommand(String command, @NonNull Bundle args) {
|
||||
if (command.equals(COMMAND_CLOCK)) {
|
||||
dispatchDemoCommandToView(command, args, R.id.clock);
|
||||
}
|
||||
if (command.equals(COMMAND_BARS)) {
|
||||
String mode = args.getString("mode");
|
||||
int barMode = "opaque".equals(mode) ? MODE_OPAQUE :
|
||||
"translucent".equals(mode) ? MODE_TRANSLUCENT :
|
||||
"semi-transparent".equals(mode) ? MODE_SEMI_TRANSPARENT :
|
||||
"transparent".equals(mode) ? MODE_TRANSPARENT :
|
||||
"warning".equals(mode) ? MODE_WARNING :
|
||||
-1;
|
||||
if (barMode != -1) {
|
||||
boolean animate = true;
|
||||
if (mNotificationShadeWindowController != null
|
||||
&& mNotificationShadeWindowViewController.getBarTransitions() != null) {
|
||||
mNotificationShadeWindowViewController.getBarTransitions().transitionTo(
|
||||
barMode, animate);
|
||||
}
|
||||
mNavigationBarController.transitionTo(mDisplayId, barMode, animate);
|
||||
}
|
||||
}
|
||||
if (command.equals(COMMAND_OPERATOR)) {
|
||||
dispatchDemoCommandToView(command, args, R.id.operator_name);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Public constructor for StatusBar.
|
||||
*
|
||||
@@ -1023,8 +965,6 @@ public class StatusBar extends SystemUI implements
|
||||
// Connect in to the status bar manager service
|
||||
mCommandQueue.addCallback(this);
|
||||
|
||||
// Listen for demo mode changes
|
||||
mDemoModeController.addCallback(mDemoMode);
|
||||
|
||||
RegisterStatusBarResult result = null;
|
||||
try {
|
||||
@@ -1646,6 +1586,9 @@ public class StatusBar extends SystemUI implements
|
||||
|
||||
mAuthRippleController = statusBarComponent.getAuthRippleController();
|
||||
mAuthRippleController.init();
|
||||
|
||||
// Listen for demo mode changes
|
||||
mDemoModeController.addCallback(statusBarComponent.getStatusBarDemoMode());
|
||||
}
|
||||
|
||||
protected void startKeyguard() {
|
||||
@@ -3416,32 +3359,6 @@ public class StatusBar extends SystemUI implements
|
||||
delay);
|
||||
}
|
||||
|
||||
|
||||
//TODO: these should have controllers, and this method should be removed
|
||||
private void dispatchDemoCommandToView(String command, Bundle args, int id) {
|
||||
if (mStatusBarView == null) return;
|
||||
View v = mStatusBarView.findViewById(id);
|
||||
if (v instanceof DemoModeCommandReceiver) {
|
||||
((DemoModeCommandReceiver) v).dispatchDemoCommand(command, args);
|
||||
}
|
||||
}
|
||||
|
||||
private void dispatchDemoModeStartedToView(int id) {
|
||||
if (mStatusBarView == null) return;
|
||||
View v = mStatusBarView.findViewById(id);
|
||||
if (v instanceof DemoModeCommandReceiver) {
|
||||
((DemoModeCommandReceiver) v).onDemoModeStarted();
|
||||
}
|
||||
}
|
||||
|
||||
private void dispatchDemoModeFinishedToView(int id) {
|
||||
if (mStatusBarView == null) return;
|
||||
View v = mStatusBarView.findViewById(id);
|
||||
if (v instanceof DemoModeCommandReceiver) {
|
||||
((DemoModeCommandReceiver) v).onDemoModeFinished();
|
||||
}
|
||||
}
|
||||
|
||||
public void showKeyguard() {
|
||||
mStatusBarStateController.setKeyguardRequested(true);
|
||||
mStatusBarStateController.setLeaveOpenOnKeyguardHide(false);
|
||||
|
||||
@@ -0,0 +1,144 @@
|
||||
/*
|
||||
* Copyright (C) 2021 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.android.systemui.statusbar.phone;
|
||||
|
||||
import static com.android.systemui.statusbar.phone.BarTransitions.MODE_OPAQUE;
|
||||
import static com.android.systemui.statusbar.phone.BarTransitions.MODE_SEMI_TRANSPARENT;
|
||||
import static com.android.systemui.statusbar.phone.BarTransitions.MODE_TRANSLUCENT;
|
||||
import static com.android.systemui.statusbar.phone.BarTransitions.MODE_TRANSPARENT;
|
||||
import static com.android.systemui.statusbar.phone.BarTransitions.MODE_WARNING;
|
||||
|
||||
import android.annotation.NonNull;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
|
||||
import com.android.systemui.R;
|
||||
import com.android.systemui.dagger.qualifiers.DisplayId;
|
||||
import com.android.systemui.demomode.DemoMode;
|
||||
import com.android.systemui.demomode.DemoModeCommandReceiver;
|
||||
import com.android.systemui.navigationbar.NavigationBarController;
|
||||
import com.android.systemui.statusbar.NotificationShadeWindowController;
|
||||
import com.android.systemui.statusbar.phone.dagger.StatusBarComponent;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
/** */
|
||||
@StatusBarComponent.StatusBarScope
|
||||
public class StatusBarDemoMode implements DemoMode {
|
||||
private final StatusBar mStatusBar;
|
||||
private final NotificationShadeWindowController mNotificationShadeWindowController;
|
||||
private final NotificationShadeWindowViewController mNotificationShadeWindowViewController;
|
||||
private final NavigationBarController mNavigationBarController;
|
||||
private final int mDisplayId;
|
||||
|
||||
@Inject
|
||||
StatusBarDemoMode(
|
||||
StatusBar statusBar,
|
||||
NotificationShadeWindowController notificationShadeWindowController,
|
||||
NotificationShadeWindowViewController notificationShadeWindowViewController,
|
||||
NavigationBarController navigationBarController,
|
||||
@DisplayId int displayId) {
|
||||
mStatusBar = statusBar;
|
||||
mNotificationShadeWindowController = notificationShadeWindowController;
|
||||
mNotificationShadeWindowViewController = notificationShadeWindowViewController;
|
||||
mNavigationBarController = navigationBarController;
|
||||
mDisplayId = displayId;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> demoCommands() {
|
||||
List<String> s = new ArrayList<>();
|
||||
s.add(DemoMode.COMMAND_BARS);
|
||||
s.add(DemoMode.COMMAND_CLOCK);
|
||||
s.add(DemoMode.COMMAND_OPERATOR);
|
||||
return s;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDemoModeStarted() {
|
||||
// Must send this message to any view that we delegate to via dispatchDemoCommandToView
|
||||
dispatchDemoModeStartedToView(R.id.clock);
|
||||
dispatchDemoModeStartedToView(R.id.operator_name);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDemoModeFinished() {
|
||||
dispatchDemoModeFinishedToView(R.id.clock);
|
||||
dispatchDemoModeFinishedToView(R.id.operator_name);
|
||||
mStatusBar.checkBarModes();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dispatchDemoCommand(String command, @NonNull Bundle args) {
|
||||
if (command.equals(COMMAND_CLOCK)) {
|
||||
dispatchDemoCommandToView(command, args, R.id.clock);
|
||||
}
|
||||
if (command.equals(COMMAND_BARS)) {
|
||||
String mode = args.getString("mode");
|
||||
int barMode = "opaque".equals(mode) ? MODE_OPAQUE :
|
||||
"translucent".equals(mode) ? MODE_TRANSLUCENT :
|
||||
"semi-transparent".equals(mode) ? MODE_SEMI_TRANSPARENT :
|
||||
"transparent".equals(mode) ? MODE_TRANSPARENT :
|
||||
"warning".equals(mode) ? MODE_WARNING :
|
||||
-1;
|
||||
if (barMode != -1) {
|
||||
boolean animate = true;
|
||||
if (mNotificationShadeWindowController != null
|
||||
&& mNotificationShadeWindowViewController.getBarTransitions() != null) {
|
||||
mNotificationShadeWindowViewController.getBarTransitions().transitionTo(
|
||||
barMode, animate);
|
||||
}
|
||||
mNavigationBarController.transitionTo(mDisplayId, barMode, animate);
|
||||
}
|
||||
}
|
||||
if (command.equals(COMMAND_OPERATOR)) {
|
||||
dispatchDemoCommandToView(command, args, R.id.operator_name);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void dispatchDemoModeStartedToView(int id) {
|
||||
View statusBarView = mStatusBar.getStatusBarView();
|
||||
if (statusBarView == null) return;
|
||||
View v = statusBarView.findViewById(id);
|
||||
if (v instanceof DemoModeCommandReceiver) {
|
||||
((DemoModeCommandReceiver) v).onDemoModeStarted();
|
||||
}
|
||||
}
|
||||
|
||||
//TODO: these should have controllers, and this method should be removed
|
||||
private void dispatchDemoCommandToView(String command, Bundle args, int id) {
|
||||
View statusBarView = mStatusBar.getStatusBarView();
|
||||
if (statusBarView == null) return;
|
||||
View v = statusBarView.findViewById(id);
|
||||
if (v instanceof DemoModeCommandReceiver) {
|
||||
((DemoModeCommandReceiver) v).dispatchDemoCommand(command, args);
|
||||
}
|
||||
}
|
||||
|
||||
private void dispatchDemoModeFinishedToView(int id) {
|
||||
View statusBarView = mStatusBar.getStatusBarView();
|
||||
if (statusBarView == null) return;
|
||||
View v = statusBarView.findViewById(id);
|
||||
if (v instanceof DemoModeCommandReceiver) {
|
||||
((DemoModeCommandReceiver) v).onDemoModeFinished();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -24,6 +24,7 @@ import com.android.systemui.statusbar.phone.NotificationPanelViewController;
|
||||
import com.android.systemui.statusbar.phone.NotificationShadeWindowView;
|
||||
import com.android.systemui.statusbar.phone.NotificationShadeWindowViewController;
|
||||
import com.android.systemui.statusbar.phone.SplitShadeHeaderController;
|
||||
import com.android.systemui.statusbar.phone.StatusBarDemoMode;
|
||||
import com.android.systemui.statusbar.phone.StatusBarWindowController;
|
||||
|
||||
import java.lang.annotation.Documented;
|
||||
@@ -88,6 +89,12 @@ public interface StatusBarComponent {
|
||||
@StatusBarScope
|
||||
AuthRippleController getAuthRippleController();
|
||||
|
||||
/**
|
||||
* Creates a StatusBarDemoMode.
|
||||
*/
|
||||
@StatusBarScope
|
||||
StatusBarDemoMode getStatusBarDemoMode();
|
||||
|
||||
/**
|
||||
* Creates a SplitShadeHeaderController.
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user