summaryrefslogtreecommitdiffstats
path: root/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
diff options
context:
space:
mode:
Diffstat (limited to 'packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java')
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java226
1 files changed, 167 insertions, 59 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
index adff973..7df8346 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
@@ -17,14 +17,11 @@
package com.android.systemui.statusbar.phone;
-import static com.android.systemui.settings.BrightnessController.BRIGHTNESS_ADJ_RESOLUTION;
-
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.annotation.NonNull;
import android.app.ActivityManager;
import android.app.ActivityManagerNative;
-import android.app.ActivityOptions;
import android.app.IActivityManager;
import android.app.Notification;
import android.app.PendingIntent;
@@ -103,13 +100,13 @@ import android.view.ViewGroup.LayoutParams;
import android.view.ViewStub;
import android.view.ViewTreeObserver;
import android.view.WindowManager;
-import android.view.WindowManagerGlobal;
import android.view.accessibility.AccessibilityEvent;
import android.view.animation.AccelerateDecelerateInterpolator;
import android.view.animation.AccelerateInterpolator;
import android.view.animation.Interpolator;
import android.view.animation.LinearInterpolator;
import android.view.animation.PathInterpolator;
+import android.widget.AdapterView;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.TextView;
@@ -136,10 +133,7 @@ import com.android.systemui.doze.DozeHost;
import com.android.systemui.doze.DozeLog;
import com.android.systemui.keyguard.KeyguardViewMediator;
import com.android.systemui.qs.QSDragPanel;
-import com.android.systemui.qs.QSPanel;
-import com.android.systemui.qs.QSTile;
import com.android.systemui.recents.ScreenPinningRequest;
-import com.android.systemui.settings.BrightnessController;
import com.android.systemui.statusbar.ActivatableNotificationView;
import com.android.systemui.statusbar.BackDropView;
import com.android.systemui.statusbar.BaseStatusBar;
@@ -150,6 +144,7 @@ import com.android.systemui.statusbar.EmptyShadeView;
import com.android.systemui.statusbar.ExpandableNotificationRow;
import com.android.systemui.statusbar.GestureRecorder;
import com.android.systemui.statusbar.KeyguardIndicationController;
+import com.android.systemui.statusbar.MediaExpandableNotificationRow;
import com.android.systemui.statusbar.NotificationData;
import com.android.systemui.statusbar.NotificationData.Entry;
import com.android.systemui.statusbar.NotificationOverflowContainer;
@@ -173,6 +168,7 @@ import com.android.systemui.statusbar.policy.HotspotControllerImpl;
import com.android.systemui.statusbar.policy.KeyButtonView;
import com.android.systemui.statusbar.policy.KeyguardMonitor;
import com.android.systemui.statusbar.policy.KeyguardUserSwitcher;
+import com.android.systemui.statusbar.policy.LiveLockScreenController;
import com.android.systemui.statusbar.policy.LocationControllerImpl;
import com.android.systemui.statusbar.policy.NetworkController;
import com.android.systemui.statusbar.policy.NetworkControllerImpl;
@@ -321,6 +317,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
WeatherControllerImpl mWeatherController;
SuControllerImpl mSuController;
FingerprintUnlockController mFingerprintUnlockController;
+ LiveLockScreenController mLiveLockScreenController;
int mNaturalBarHeight = -1;
@@ -329,7 +326,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
StatusBarWindowView mStatusBarWindow;
FrameLayout mStatusBarWindowContent;
- PhoneStatusBarView mStatusBarView;
+ private PhoneStatusBarView mStatusBarView;
private int mStatusBarWindowState = WINDOW_STATE_SHOWING;
private StatusBarWindowManager mStatusBarWindowManager;
private UnlockMethodCache mUnlockMethodCache;
@@ -497,6 +494,10 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
}
}
+ public void setStatusBarViewVisibility(boolean visible) {
+ mStatusBarView.setVisibility(visible ? View.VISIBLE : View.INVISIBLE);
+ }
+
class DevForceNavbarObserver extends UserContentObserver {
DevForceNavbarObserver(Handler handler) {
super(handler);
@@ -506,14 +507,14 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
protected void observe() {
super.observe();
ContentResolver resolver = mContext.getContentResolver();
- resolver.registerContentObserver(CMSettings.Secure.getUriFor(
- CMSettings.Secure.DEV_FORCE_SHOW_NAVBAR), false, this, UserHandle.USER_ALL);
+ resolver.registerContentObserver(CMSettings.Global.getUriFor(
+ CMSettings.Global.DEV_FORCE_SHOW_NAVBAR), false, this, UserHandle.USER_ALL);
}
@Override
public void update() {
- boolean visible = CMSettings.Secure.getIntForUser(mContext.getContentResolver(),
- CMSettings.Secure.DEV_FORCE_SHOW_NAVBAR, 0, UserHandle.USER_CURRENT) == 1;
+ boolean visible = CMSettings.Global.getIntForUser(mContext.getContentResolver(),
+ CMSettings.Global.DEV_FORCE_SHOW_NAVBAR, 0, UserHandle.USER_CURRENT) == 1;
if (visible) {
forceAddNavigationBar();
@@ -539,7 +540,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
mNavigationBarView.setDisabledFlags(mDisabled1);
mNavigationBarView.setBar(this);
- addNavigationBar();
+ addNavigationBar(true); // dynamically adding nav bar, reset System UI visibility!
}
// ensure quick settings is disabled until the current user makes it through the setup wizard
@@ -792,6 +793,10 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
private RankingMap mLatestRankingMap;
private boolean mNoAnimationOnNextBarModeChange;
+ public ScrimController getScrimController() {
+ return mScrimController;
+ }
+
@Override
public void start() {
mDisplay = ((WindowManager)mContext.getSystemService(Context.WINDOW_SERVICE))
@@ -809,7 +814,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
mStatusBarWindow = new StatusBarWindowView(mContext, null);
mStatusBarWindow.setService(this);
-
+
super.start(); // calls createAndAddWindows()
mMediaSessionManager
@@ -817,7 +822,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
// TODO: use MediaSessionManager.SessionListener to hook us up to future updates
// in session state
- addNavigationBar();
+ addNavigationBar(false);
// Developer options - Force Navigation bar
try {
@@ -882,9 +887,8 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
Resources res = context.getResources();
- mScreenWidth = (float) context.getResources().getDisplayMetrics().widthPixels;
- mMinBrightness = context.getResources().getInteger(
- com.android.internal.R.integer.config_screenBrightnessDim);
+ mScreenWidth = (float) res.getDisplayMetrics().widthPixels;
+ mMinBrightness = res.getInteger(com.android.internal.R.integer.config_screenBrightnessDim);
updateDisplaySize(); // populates mDisplayMetrics
updateResources(null);
@@ -920,6 +924,12 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
mNotificationPanel.setBackground(new FastColorDrawable(context.getColor(
R.color.notification_panel_solid_background)));
}
+ mLiveLockScreenController = new LiveLockScreenController(mContext, this,
+ mNotificationPanel);
+ mNotificationPanel.setLiveController(mLiveLockScreenController);
+ if (mStatusBarWindowManager != null) {
+ mStatusBarWindowManager.setLiveLockscreenController(mLiveLockScreenController);
+ }
if (mHeadsUpManager == null) {
mHeadsUpManager = new HeadsUpManager(context, mStatusBarWindow);
@@ -1032,12 +1042,12 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
mHeader.setActivityStarter(this);
mKeyguardStatusBar = (KeyguardStatusBarView) mStatusBarWindowContent.findViewById(R.id.keyguard_header);
mKeyguardStatusView = mStatusBarWindowContent.findViewById(R.id.keyguard_status_view);
- mKeyguardBottomArea =
- (KeyguardBottomAreaView) mStatusBarWindowContent.findViewById(R.id.keyguard_bottom_area);
+ mKeyguardBottomArea = mNotificationPanel.getKeyguardBottomArea();
+
mKeyguardBottomArea.setActivityStarter(this);
mKeyguardBottomArea.setAssistManager(mAssistManager);
mKeyguardIndicationController = new KeyguardIndicationController(mContext,
- (KeyguardIndicationTextView) mStatusBarWindowContent.findViewById(
+ (KeyguardIndicationTextView) mKeyguardBottomArea.findViewById(
R.id.keyguard_indication_text),
mKeyguardBottomArea.getLockIcon());
mKeyguardBottomArea.setKeyguardIndicationController(mKeyguardIndicationController);
@@ -1181,7 +1191,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
mNetworkController, mZenModeController, mHotspotController,
mCastController, mFlashlightController,
mUserSwitcherController, mKeyguardMonitor,
- mSecurityController);
+ mSecurityController, mBatteryController);
}
mQSPanel.setHost(mQSTileHost);
if (mBrightnessMirrorController == null) {
@@ -1315,10 +1325,11 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
}
}
- mVisualizerView.setKeyguardMonitor(mKeyguardMonitor);
mHeader.setNextAlarmController(mNextAlarmController);
mHeader.setWeatherController(mWeatherController);
+ mNotificationPanel.setWeatherController(mWeatherController);
+
PowerManager pm = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE);
mBroadcastReceiver.onReceive(mContext,
new Intent(pm.isScreenOn() ? Intent.ACTION_SCREEN_ON : Intent.ACTION_SCREEN_OFF));
@@ -1490,7 +1501,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
@Override
public void run() {
boolean isUpdate = mQSPanel.getHost().getCustomTileData()
- .get(sbc.getKey()) != null;
+ .get(sbc.persistableKey()) != null;
if (isUpdate) {
mQSPanel.getHost().updateCustomTile(sbc);
} else {
@@ -1506,7 +1517,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
mHandler.post(new Runnable() {
@Override
public void run() {
- mQSPanel.getHost().removeCustomTileSysUi(sbc.getKey());
+ mQSPanel.getHost().removeCustomTileSysUi(sbc.persistableKey());
}
});
}
@@ -1568,16 +1579,26 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
}
}
- private void prepareNavigationBarView() {
+ private void prepareNavigationBarView(boolean forceReset) {
mNavigationBarView.reorient();
mNavigationBarView.setListeners(mRecentsClickListener, mRecentsPreloadOnTouchListener,
mLongPressBackRecentsListener, mHomeActionListener, mLongPressHomeListener);
mAssistManager.onConfigurationChanged();
+ if (forceReset) {
+ // Nav Bar was added dynamically - we need to reset the mSystemUiVisibility and call
+ // setSystemUiVisibility so that mNavigationBarMode is set to the correct value
+ int newVal = mSystemUiVisibility;
+ mSystemUiVisibility = 0;
+ setSystemUiVisibility(newVal, SYSTEM_UI_VISIBILITY_MASK);
+ checkBarMode(mNavigationBarMode,
+ mNavigationBarWindowState, mNavigationBarView.getBarTransitions(),
+ mNoAnimationOnNextBarModeChange);
+ }
}
// For small-screen devices (read: phones) that lack hardware navigation buttons
- private void addNavigationBar() {
+ private void addNavigationBar(boolean forceReset) {
if (DEBUG) Log.v(TAG, "addNavigationBar: about to add " + mNavigationBarView);
if (mNavigationBarView == null) return;
@@ -1588,7 +1609,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
return;
}
- prepareNavigationBarView();
+ prepareNavigationBarView(forceReset);
mWindowManager.addView(mNavigationBarView, getNavigationBarLayoutParams());
}
@@ -1604,7 +1625,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
private void repositionNavigationBar() {
if (mNavigationBarView == null || !mNavigationBarView.isAttachedToWindow()) return;
- prepareNavigationBarView();
+ prepareNavigationBarView(false);
mWindowManager.updateViewLayout(mNavigationBarView, getNavigationBarLayoutParams());
}
@@ -1966,7 +1987,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
}
@Override
- protected void updateRowStates() {
+ public void updateRowStates() {
super.updateRowStates();
mNotificationPanel.notifyVisibleChildrenChanged();
}
@@ -2080,6 +2101,12 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
Log.v(TAG, "DEBUG_MEDIA: insert listener, receive metadata: "
+ mMediaMetadata);
}
+ if (mediaNotification != null
+ && mediaNotification.row != null
+ && mediaNotification.row instanceof MediaExpandableNotificationRow) {
+ ((MediaExpandableNotificationRow) mediaNotification.row)
+ .setMediaController(controller);
+ }
if (mediaNotification != null) {
mMediaNotificationKey = mediaNotification.notification.getKey();
@@ -2195,7 +2222,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
}
// apply user lockscreen image
- if (backdropBitmap == null && !mNotificationPanel.hasExternalKeyguardView()) {
+ if (backdropBitmap == null && !mLiveLockScreenController.isShowingLiveLockScreenView()) {
backdropBitmap = mKeyguardWallpaper;
}
@@ -2476,6 +2503,11 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
return mMediaNotificationKey;
}
+ @Override
+ protected MediaController getCurrentMediaController() {
+ return mMediaController;
+ }
+
public boolean isScrimSrcModeEnabled() {
return mScrimSrcModeEnabled;
}
@@ -2938,7 +2970,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
setInteracting(StatusBarManager.WINDOW_STATUS_BAR, true);
}
}
- if (mBrightnessChanged && upOrCancel) {
+ if (mBrightnessChanged && upOrCancel && !isQsExpanded()) {
mBrightnessChanged = false;
if (mJustPeeked && mExpandedVisible) {
mNotificationPanel.fling(10, false);
@@ -3433,6 +3465,9 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
mStatusBarWindowManager = new StatusBarWindowManager(mContext, mKeyguardMonitor);
mStatusBarWindowManager.setShowingMedia(mKeyguardShowingMedia);
mStatusBarWindowManager.add(mStatusBarWindow, getStatusBarHeight());
+ if (mLiveLockScreenController != null) {
+ mStatusBarWindowManager.setLiveLockscreenController(mLiveLockScreenController);
+ }
}
// called by makeStatusbar and also by PhoneStatusBarView
@@ -3565,10 +3600,12 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
} else if (cyanogenmod.content.Intent.ACTION_SCREEN_CAMERA_GESTURE.equals(action)) {
boolean userSetupComplete = Settings.Secure.getInt(mContext.getContentResolver(),
Settings.Secure.USER_SETUP_COMPLETE, 0) != 0;
- if (!userSetupComplete) {
- if (DEBUG) Log.d(TAG, String.format(
- "userSetupComplete = %s, ignoring camera launch gesture.",
- userSetupComplete));
+ if (!userSetupComplete || !isDeviceProvisioned()) {
+ if (DEBUG) {
+ Log.d(TAG, String.format("userSetupComplete = $1%s, " +
+ "deviceProvisioned = $2%s, ignoring camera launch gesture.",
+ userSetupComplete, isDeviceProvisioned()));
+ }
return;
}
@@ -3661,6 +3698,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
mIconController.updateResources();
mScreenPinningRequest.onConfigurationChanged();
mNetworkController.onConfigurationChanged();
+ mStatusBarWindowManager.onConfigurationChanged(newConfig);
}
@Override
@@ -3686,6 +3724,12 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
}
}
+ public void hideHeadsUp() {
+ if (mUseHeadsUp && mHeadsUpManager != null) {
+ mHeadsUpManager.releaseAllImmediately();
+ }
+ }
+
private void setControllerUsers() {
if (mZenModeController != null) {
mZenModeController.setUserId(mCurrentUserId);
@@ -3753,7 +3797,11 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
if (mKeyguardIndicationController != null) {
mKeyguardIndicationController.cleanup();
}
+ if (mLiveLockScreenController != null) {
+ mLiveLockScreenController.cleanup();
+ }
+ mKeyguardBottomArea.cleanup();
mStatusBarWindow.removeContent(mStatusBarWindowContent);
mStatusBarWindow.clearDisappearingChildren();
@@ -3836,6 +3884,10 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
if (mState == StatusBarState.KEYGUARD) {
// this will make sure the keyguard is showing
showKeyguard();
+ // make sure to hide the notification icon area and system iconography
+ // to avoid overlap (CYNGNOS-2253)
+ mIconController.hideNotificationIconArea(false);
+ mIconController.hideSystemIconArea(false);
}
// update mLastThemeChangeTime
@@ -3854,7 +3906,9 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
removeAllViews((ViewGroup) child);
}
}
- parent.removeAllViews();
+
+ // AdapterView does not support removeAllViews so check before calling
+ if (!(parent instanceof AdapterView)) parent.removeAllViews();
}
/**
@@ -4307,8 +4361,16 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
mDraggedDownRow = null;
}
mAssistManager.onLockscreenShown();
- if (mNotificationPanel.hasExternalKeyguardView()) {
- mNotificationPanel.getExternalKeyguardView().onKeyguardShowing(
+ mKeyguardBottomArea.requestFocus();
+ try {
+ WindowManagerGlobal.getWindowManagerService()
+ .setLiveLockscreenEdgeDetector(false);
+ } catch (RemoteException e){
+ e.printStackTrace();
+ }
+ if (mLiveLockScreenController.isShowingLiveLockScreenView()) {
+ mLiveLockScreenController.onLiveLockScreenFocusChanged(false);
+ mLiveLockScreenController.getLiveLockScreenView().onKeyguardShowing(
mStatusBarKeyguardViewManager.isScreenTurnedOn());
}
}
@@ -4461,8 +4523,8 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
mNotificationPanel.onAffordanceLaunchEnded();
mNotificationPanel.animate().cancel();
mNotificationPanel.setAlpha(1f);
- if ( mNotificationPanel.getExternalKeyguardView() != null) {
- mNotificationPanel.getExternalKeyguardView().onKeyguardDismissed();
+ if (mLiveLockScreenController.isShowingLiveLockScreenView()) {
+ mLiveLockScreenController.getLiveLockScreenView().onKeyguardDismissed();
}
return staying;
}
@@ -4477,6 +4539,10 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
return mStatusBarKeyguardViewManager != null && mStatusBarKeyguardViewManager.isSecure();
}
+ public boolean isKeyguardInputRestricted() {
+ return mStatusBarKeyguardViewManager != null && mStatusBarKeyguardViewManager.isInputRestricted();
+ }
+
public long calculateGoingToFullShadeDelay() {
return mKeyguardFadingAwayDelay + mKeyguardFadingAwayDuration;
}
@@ -4552,6 +4618,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
mIconPolicy.setKeyguardShowing(false);
}
mNotificationPanel.setBarState(mState, mKeyguardFadingAway, goingToFullShade);
+ mLiveLockScreenController.setBarState(mState);
updateDozingState();
updatePublicMode();
updateStackScrollerState(goingToFullShade);
@@ -4640,24 +4707,28 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
return false;
}
- protected void showBouncer() {
- if (!mRecreating &&
- (mState == StatusBarState.KEYGUARD || mState == StatusBarState.SHADE_LOCKED)) {
+ public void showBouncer() {
+ if (!mRecreating && mNotificationPanel.mCanDismissKeyguard
+ && (mState != StatusBarState.SHADE || mLiveLockScreenController.getLiveLockScreenHasFocus())) {
mWaitingForKeyguardExit = mStatusBarKeyguardViewManager.isShowing();
mStatusBarKeyguardViewManager.dismiss();
}
}
protected void showBouncerOrFocusKeyguardExternalView() {
- if (mNotificationPanel.hasExternalKeyguardView() && !isKeyguardShowingMedia() &&
- mNotificationPanel.isExternalKeyguardViewInteractive()) {
+ if (mLiveLockScreenController.isShowingLiveLockScreenView() && !isKeyguardShowingMedia() &&
+ mLiveLockScreenController.isLiveLockScreenInteractive()) {
focusKeyguardExternalView();
} else {
showBouncer();
}
}
- protected void focusKeyguardExternalView() {
+ protected void unfocusKeyguardExternalView() {
+ mStatusBarKeyguardViewManager.setKeyguardExternalViewFocus(false);
+ }
+
+ public void focusKeyguardExternalView() {
mStatusBarView.collapseAllPanels(/*animate=*/ false, false /* delayed*/,
1.0f /* speedUpFactor */);
mStatusBarKeyguardViewManager.setKeyguardExternalViewFocus(true);
@@ -4701,6 +4772,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
clearNotificationEffects();
}
mState = state;
+ mVisualizerView.setStatusBarState(state);
mGroupManager.setStatusBarState(state);
mStatusBarWindowManager.setStatusBarState(state);
updateDozing();
@@ -4723,12 +4795,33 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
}
public void onUnlockHintStarted() {
- mKeyguardIndicationController.showTransientIndication(R.string.keyguard_unlock);
+ mKeyguardIndicationController.showTransientIndication(R.string.keyguard_unlock,
+ mNotificationPanel.shouldShowScreenOnHints() ?
+ KeyguardIndicationController.IndicationDirection.UP :
+ KeyguardIndicationController.IndicationDirection.NONE);
+ }
+
+ public void onLlsHintStarted() {
+ String llsName = mLiveLockScreenController.getLiveLockScreenName();
+ mKeyguardIndicationController.showTransientIndication(
+ mContext.getString(R.string.swipe_left_hint, llsName),
+ KeyguardIndicationController.IndicationDirection.LEFT);
+ }
+
+ public void onExpandHintStarted() {
+ mKeyguardIndicationController.showTransientIndication(R.string.expand_hint,
+ KeyguardIndicationController.IndicationDirection.DOWN);
+ }
+
+ public void onNotificationsHintStarted() {
+ mKeyguardIndicationController.showTransientIndication(R.string.swipe_right_hint,
+ KeyguardIndicationController.IndicationDirection.RIGHT);
}
public void onHintFinished() {
// Delay the reset a bit so the user can read the text.
mKeyguardIndicationController.hideTransientIndicationDelayed(HINT_RESET_DELAY_MS);
+ mKeyguardBottomArea.expand(false);
}
public void onCameraHintStarted(String hint) {
@@ -4741,19 +4834,22 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
public void onTrackingStopped(boolean expand) {
if (mState == StatusBarState.KEYGUARD || mState == StatusBarState.SHADE_LOCKED) {
- if (!expand && (!mUnlockMethodCache.canSkipBouncer() ||
- mNotificationPanel.hasExternalKeyguardView())) {
- showBouncerOrFocusKeyguardExternalView();
+ if (!expand && !mUnlockMethodCache.canSkipBouncer()) {
+ showBouncer();
}
- } else if (expand && mStatusBarWindowManager.keyguardExternalViewHasFocus()) {
- mStatusBarKeyguardViewManager.setKeyguardExternalViewFocus(false);
- setBarState(StatusBarState.KEYGUARD);
}
}
@Override
protected int getMaxKeyguardNotifications() {
- return mKeyguardMaxNotificationCount;
+ int max = mKeyguardMaxNotificationCount;
+ // When an interactive live lockscreen is showing
+ // we want to limit the number of maximum notifications
+ // by 1 so there is additional space for the user to dismiss keygard
+ if (mLiveLockScreenController.isLiveLockScreenInteractive()) {
+ max--;
+ }
+ return max;
}
public NavigationBarView getNavigationBarView() {
@@ -4911,15 +5007,15 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
mScreenTurningOn = false;
mDozeScrimController.onScreenTurnedOn();
mVisualizerView.setVisible(true);
- if (mNotificationPanel.hasExternalKeyguardView()) {
- mNotificationPanel.getExternalKeyguardView().onScreenTurnedOn();
+ if (mLiveLockScreenController.isShowingLiveLockScreenView()) {
+ mLiveLockScreenController.onScreenTurnedOn();
}
}
public void onScreenTurnedOff() {
mVisualizerView.setVisible(false);
- if (mNotificationPanel.hasExternalKeyguardView()) {
- mNotificationPanel.getExternalKeyguardView().onScreenTurnedOff();
+ if (mLiveLockScreenController.isShowingLiveLockScreenView()) {
+ mLiveLockScreenController.onScreenTurnedOff();
}
}
@@ -5326,6 +5422,14 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
return mVisualizerView;
}
+ public boolean isShowingLiveLockScreenView() {
+ return mLiveLockScreenController.isShowingLiveLockScreenView();
+ }
+
+ public void slideNotificationPanelIn() {
+ mNotificationPanel.slideLockScreenIn();
+ }
+
private final class ShadeUpdates {
private final ArraySet<String> mVisibleNotifications = new ArraySet<String>();
private final ArraySet<String> mNewVisibleNotifications = new ArraySet<String>();
@@ -5478,4 +5582,8 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
}
}
}
+
+ public boolean isAffordanceSwipeInProgress() {
+ return mNotificationPanel.isAffordanceSwipeInProgress();
+ }
}