Merge "Move StatusBar.DemoMode to separate class." into sc-v2-dev
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_LIGHTS_OUT_TRANSPARENT;
|
||||||
import static com.android.systemui.statusbar.phone.BarTransitions.MODE_OPAQUE;
|
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_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_TRANSPARENT;
|
||||||
import static com.android.systemui.statusbar.phone.BarTransitions.MODE_WARNING;
|
|
||||||
import static com.android.systemui.statusbar.phone.BarTransitions.TransitionMode;
|
import static com.android.systemui.statusbar.phone.BarTransitions.TransitionMode;
|
||||||
import static com.android.wm.shell.bubbles.BubbleController.TASKBAR_CHANGED_BROADCAST;
|
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.classifier.FalsingCollector;
|
||||||
import com.android.systemui.colorextraction.SysuiColorExtractor;
|
import com.android.systemui.colorextraction.SysuiColorExtractor;
|
||||||
import com.android.systemui.dagger.qualifiers.UiBackground;
|
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.demomode.DemoModeController;
|
||||||
import com.android.systemui.emergency.EmergencyGesture;
|
import com.android.systemui.emergency.EmergencyGesture;
|
||||||
import com.android.systemui.fragments.ExtensionFragmentListener;
|
import com.android.systemui.fragments.ExtensionFragmentListener;
|
||||||
@@ -718,60 +714,6 @@ public class StatusBar extends SystemUI implements
|
|||||||
private ActivityIntentHelper mActivityIntentHelper;
|
private ActivityIntentHelper mActivityIntentHelper;
|
||||||
private NotificationStackScrollLayoutController mStackScrollerController;
|
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.
|
* Public constructor for StatusBar.
|
||||||
*
|
*
|
||||||
@@ -1026,8 +968,6 @@ public class StatusBar extends SystemUI implements
|
|||||||
// Connect in to the status bar manager service
|
// Connect in to the status bar manager service
|
||||||
mCommandQueue.addCallback(this);
|
mCommandQueue.addCallback(this);
|
||||||
|
|
||||||
// Listen for demo mode changes
|
|
||||||
mDemoModeController.addCallback(mDemoMode);
|
|
||||||
|
|
||||||
RegisterStatusBarResult result = null;
|
RegisterStatusBarResult result = null;
|
||||||
try {
|
try {
|
||||||
@@ -1655,6 +1595,9 @@ public class StatusBar extends SystemUI implements
|
|||||||
|
|
||||||
mAuthRippleController = statusBarComponent.getAuthRippleController();
|
mAuthRippleController = statusBarComponent.getAuthRippleController();
|
||||||
mAuthRippleController.init();
|
mAuthRippleController.init();
|
||||||
|
|
||||||
|
// Listen for demo mode changes
|
||||||
|
mDemoModeController.addCallback(statusBarComponent.getStatusBarDemoMode());
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void startKeyguard() {
|
protected void startKeyguard() {
|
||||||
@@ -3430,32 +3373,6 @@ public class StatusBar extends SystemUI implements
|
|||||||
delay);
|
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() {
|
public void showKeyguard() {
|
||||||
mStatusBarStateController.setKeyguardRequested(true);
|
mStatusBarStateController.setKeyguardRequested(true);
|
||||||
mStatusBarStateController.setLeaveOpenOnKeyguardHide(false);
|
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.NotificationShadeWindowView;
|
||||||
import com.android.systemui.statusbar.phone.NotificationShadeWindowViewController;
|
import com.android.systemui.statusbar.phone.NotificationShadeWindowViewController;
|
||||||
import com.android.systemui.statusbar.phone.SplitShadeHeaderController;
|
import com.android.systemui.statusbar.phone.SplitShadeHeaderController;
|
||||||
|
import com.android.systemui.statusbar.phone.StatusBarDemoMode;
|
||||||
import com.android.systemui.statusbar.phone.StatusBarWindowController;
|
import com.android.systemui.statusbar.phone.StatusBarWindowController;
|
||||||
|
|
||||||
import java.lang.annotation.Documented;
|
import java.lang.annotation.Documented;
|
||||||
@@ -88,6 +89,12 @@ public interface StatusBarComponent {
|
|||||||
@StatusBarScope
|
@StatusBarScope
|
||||||
AuthRippleController getAuthRippleController();
|
AuthRippleController getAuthRippleController();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a StatusBarDemoMode.
|
||||||
|
*/
|
||||||
|
@StatusBarScope
|
||||||
|
StatusBarDemoMode getStatusBarDemoMode();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a SplitShadeHeaderController.
|
* Creates a SplitShadeHeaderController.
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user