Loading packages/SystemUI/src/com/android/systemui/statusbar/RemoteInputController.java +15 −3 Original line number Diff line number Diff line Loading @@ -30,11 +30,11 @@ import java.util.ArrayList; public class RemoteInputController { private final ArrayList<WeakReference<NotificationData.Entry>> mRemoteInputs = new ArrayList<>(); private final StatusBarWindowManager mStatusBarWindowManager; private final ArrayList<Callback> mCallbacks = new ArrayList<>(3); private final HeadsUpManager mHeadsUpManager; public RemoteInputController(StatusBarWindowManager sbwm, HeadsUpManager headsUpManager) { mStatusBarWindowManager = sbwm; addCallback(sbwm); mHeadsUpManager = headsUpManager; } Loading @@ -59,8 +59,12 @@ public class RemoteInputController { } private void apply(NotificationData.Entry entry) { mStatusBarWindowManager.setRemoteInputActive(isRemoteInputActive()); mHeadsUpManager.setRemoteInputActive(entry, isRemoteInputActive(entry)); boolean remoteInputActive = isRemoteInputActive(); int N = mCallbacks.size(); for (int i = 0; i < N; i++) { mCallbacks.get(i).onRemoteInputActive(remoteInputActive); } } /** Loading Loading @@ -99,4 +103,12 @@ public class RemoteInputController { } public void addCallback(Callback callback) { Preconditions.checkNotNull(callback); mCallbacks.add(callback); } public interface Callback { void onRemoteInputActive(boolean active); } } packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java +1 −0 Original line number Diff line number Diff line Loading @@ -1086,6 +1086,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, mKeyguardIndicationController.setStatusBarKeyguardViewManager( mStatusBarKeyguardViewManager); mFingerprintUnlockController.setStatusBarKeyguardViewManager(mStatusBarKeyguardViewManager); mRemoteInputController.addCallback(mStatusBarKeyguardViewManager); mKeyguardViewMediatorCallback = keyguardViewMediator.getViewMediatorCallback(); } Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java +19 −5 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ import com.android.internal.widget.LockPatternUtils; import com.android.keyguard.KeyguardUpdateMonitor; import com.android.keyguard.ViewMediatorCallback; import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.RemoteInputController; import static com.android.keyguard.KeyguardHostView.OnDismissAction; Loading @@ -40,7 +41,7 @@ import static com.android.keyguard.KeyguardHostView.OnDismissAction; * which is in turn, reported to this class by the current * {@link com.android.keyguard.KeyguardViewBase}. */ public class StatusBarKeyguardViewManager { public class StatusBarKeyguardViewManager implements RemoteInputController.Callback { // When hiding the Keyguard with timing supplied from WindowManager, better be early than late. private static final long HIDE_TIMING_CORRECTION_MS = -3 * 16; Loading Loading @@ -69,12 +70,15 @@ public class StatusBarKeyguardViewManager { private KeyguardBouncer mBouncer; private boolean mShowing; private boolean mOccluded; private boolean mRemoteInputActive; private boolean mFirstUpdate = true; private boolean mLastShowing; private boolean mLastOccluded; private boolean mLastBouncerShowing; private boolean mLastBouncerDismissible; private boolean mLastRemoteInputActive; private OnDismissAction mAfterKeyguardGoneAction; private boolean mDeviceWillWakeUp; private boolean mDeferScrimFadeOut; Loading Loading @@ -199,6 +203,12 @@ public class StatusBarKeyguardViewManager { mPhoneStatusBar.onScreenTurnedOn(); } @Override public void onRemoteInputActive(boolean active) { mRemoteInputActive = active; updateStates(); } public void onScreenTurnedOff() { mScreenTurnedOn = false; } Loading Loading @@ -429,18 +439,21 @@ public class StatusBarKeyguardViewManager { boolean occluded = mOccluded; boolean bouncerShowing = mBouncer.isShowing(); boolean bouncerDismissible = !mBouncer.isFullscreenBouncer(); boolean remoteInputActive = mRemoteInputActive; if ((bouncerDismissible || !showing) != (mLastBouncerDismissible || !mLastShowing) if ((bouncerDismissible || !showing || remoteInputActive) != (mLastBouncerDismissible || !mLastShowing || mLastRemoteInputActive) || mFirstUpdate) { if (bouncerDismissible || !showing) { if (bouncerDismissible || !showing || remoteInputActive) { mContainer.setSystemUiVisibility(vis & ~View.STATUS_BAR_DISABLE_BACK); } else { mContainer.setSystemUiVisibility(vis | View.STATUS_BAR_DISABLE_BACK); } } boolean navBarVisible = (!(showing && !occluded) || bouncerShowing); boolean lastNavBarVisible = (!(mLastShowing && !mLastOccluded) || mLastBouncerShowing); boolean navBarVisible = (!(showing && !occluded) || bouncerShowing || remoteInputActive); boolean lastNavBarVisible = (!(mLastShowing && !mLastOccluded) || mLastBouncerShowing || mLastRemoteInputActive); if (navBarVisible != lastNavBarVisible || mFirstUpdate) { if (mPhoneStatusBar.getNavigationBarView() != null) { if (navBarVisible) { Loading Loading @@ -477,6 +490,7 @@ public class StatusBarKeyguardViewManager { mLastOccluded = occluded; mLastBouncerShowing = bouncerShowing; mLastBouncerDismissible = bouncerDismissible; mLastRemoteInputActive = remoteInputActive; mPhoneStatusBar.onKeyguardViewManagerStatesUpdated(); } Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowManager.java +4 −2 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ import android.view.WindowManager; import com.android.keyguard.R; import com.android.systemui.keyguard.KeyguardViewMediator; import com.android.systemui.statusbar.BaseStatusBar; import com.android.systemui.statusbar.RemoteInputController; import com.android.systemui.statusbar.StatusBarState; import java.io.FileDescriptor; Loading @@ -39,7 +40,7 @@ import java.lang.reflect.Field; /** * Encapsulates all logic for the status bar window state management. */ public class StatusBarWindowManager { public class StatusBarWindowManager implements RemoteInputController.Callback { private final Context mContext; private final WindowManager mWindowManager; Loading Loading @@ -292,7 +293,8 @@ public class StatusBarWindowManager { apply(mCurrentState); } public void setRemoteInputActive(boolean remoteInputActive) { @Override public void onRemoteInputActive(boolean remoteInputActive) { mCurrentState.remoteInputActive = remoteInputActive; apply(mCurrentState); } Loading Loading
packages/SystemUI/src/com/android/systemui/statusbar/RemoteInputController.java +15 −3 Original line number Diff line number Diff line Loading @@ -30,11 +30,11 @@ import java.util.ArrayList; public class RemoteInputController { private final ArrayList<WeakReference<NotificationData.Entry>> mRemoteInputs = new ArrayList<>(); private final StatusBarWindowManager mStatusBarWindowManager; private final ArrayList<Callback> mCallbacks = new ArrayList<>(3); private final HeadsUpManager mHeadsUpManager; public RemoteInputController(StatusBarWindowManager sbwm, HeadsUpManager headsUpManager) { mStatusBarWindowManager = sbwm; addCallback(sbwm); mHeadsUpManager = headsUpManager; } Loading @@ -59,8 +59,12 @@ public class RemoteInputController { } private void apply(NotificationData.Entry entry) { mStatusBarWindowManager.setRemoteInputActive(isRemoteInputActive()); mHeadsUpManager.setRemoteInputActive(entry, isRemoteInputActive(entry)); boolean remoteInputActive = isRemoteInputActive(); int N = mCallbacks.size(); for (int i = 0; i < N; i++) { mCallbacks.get(i).onRemoteInputActive(remoteInputActive); } } /** Loading Loading @@ -99,4 +103,12 @@ public class RemoteInputController { } public void addCallback(Callback callback) { Preconditions.checkNotNull(callback); mCallbacks.add(callback); } public interface Callback { void onRemoteInputActive(boolean active); } }
packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java +1 −0 Original line number Diff line number Diff line Loading @@ -1086,6 +1086,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, mKeyguardIndicationController.setStatusBarKeyguardViewManager( mStatusBarKeyguardViewManager); mFingerprintUnlockController.setStatusBarKeyguardViewManager(mStatusBarKeyguardViewManager); mRemoteInputController.addCallback(mStatusBarKeyguardViewManager); mKeyguardViewMediatorCallback = keyguardViewMediator.getViewMediatorCallback(); } Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarKeyguardViewManager.java +19 −5 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ import com.android.internal.widget.LockPatternUtils; import com.android.keyguard.KeyguardUpdateMonitor; import com.android.keyguard.ViewMediatorCallback; import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.RemoteInputController; import static com.android.keyguard.KeyguardHostView.OnDismissAction; Loading @@ -40,7 +41,7 @@ import static com.android.keyguard.KeyguardHostView.OnDismissAction; * which is in turn, reported to this class by the current * {@link com.android.keyguard.KeyguardViewBase}. */ public class StatusBarKeyguardViewManager { public class StatusBarKeyguardViewManager implements RemoteInputController.Callback { // When hiding the Keyguard with timing supplied from WindowManager, better be early than late. private static final long HIDE_TIMING_CORRECTION_MS = -3 * 16; Loading Loading @@ -69,12 +70,15 @@ public class StatusBarKeyguardViewManager { private KeyguardBouncer mBouncer; private boolean mShowing; private boolean mOccluded; private boolean mRemoteInputActive; private boolean mFirstUpdate = true; private boolean mLastShowing; private boolean mLastOccluded; private boolean mLastBouncerShowing; private boolean mLastBouncerDismissible; private boolean mLastRemoteInputActive; private OnDismissAction mAfterKeyguardGoneAction; private boolean mDeviceWillWakeUp; private boolean mDeferScrimFadeOut; Loading Loading @@ -199,6 +203,12 @@ public class StatusBarKeyguardViewManager { mPhoneStatusBar.onScreenTurnedOn(); } @Override public void onRemoteInputActive(boolean active) { mRemoteInputActive = active; updateStates(); } public void onScreenTurnedOff() { mScreenTurnedOn = false; } Loading Loading @@ -429,18 +439,21 @@ public class StatusBarKeyguardViewManager { boolean occluded = mOccluded; boolean bouncerShowing = mBouncer.isShowing(); boolean bouncerDismissible = !mBouncer.isFullscreenBouncer(); boolean remoteInputActive = mRemoteInputActive; if ((bouncerDismissible || !showing) != (mLastBouncerDismissible || !mLastShowing) if ((bouncerDismissible || !showing || remoteInputActive) != (mLastBouncerDismissible || !mLastShowing || mLastRemoteInputActive) || mFirstUpdate) { if (bouncerDismissible || !showing) { if (bouncerDismissible || !showing || remoteInputActive) { mContainer.setSystemUiVisibility(vis & ~View.STATUS_BAR_DISABLE_BACK); } else { mContainer.setSystemUiVisibility(vis | View.STATUS_BAR_DISABLE_BACK); } } boolean navBarVisible = (!(showing && !occluded) || bouncerShowing); boolean lastNavBarVisible = (!(mLastShowing && !mLastOccluded) || mLastBouncerShowing); boolean navBarVisible = (!(showing && !occluded) || bouncerShowing || remoteInputActive); boolean lastNavBarVisible = (!(mLastShowing && !mLastOccluded) || mLastBouncerShowing || mLastRemoteInputActive); if (navBarVisible != lastNavBarVisible || mFirstUpdate) { if (mPhoneStatusBar.getNavigationBarView() != null) { if (navBarVisible) { Loading Loading @@ -477,6 +490,7 @@ public class StatusBarKeyguardViewManager { mLastOccluded = occluded; mLastBouncerShowing = bouncerShowing; mLastBouncerDismissible = bouncerDismissible; mLastRemoteInputActive = remoteInputActive; mPhoneStatusBar.onKeyguardViewManagerStatesUpdated(); } Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowManager.java +4 −2 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ import android.view.WindowManager; import com.android.keyguard.R; import com.android.systemui.keyguard.KeyguardViewMediator; import com.android.systemui.statusbar.BaseStatusBar; import com.android.systemui.statusbar.RemoteInputController; import com.android.systemui.statusbar.StatusBarState; import java.io.FileDescriptor; Loading @@ -39,7 +40,7 @@ import java.lang.reflect.Field; /** * Encapsulates all logic for the status bar window state management. */ public class StatusBarWindowManager { public class StatusBarWindowManager implements RemoteInputController.Callback { private final Context mContext; private final WindowManager mWindowManager; Loading Loading @@ -292,7 +293,8 @@ public class StatusBarWindowManager { apply(mCurrentState); } public void setRemoteInputActive(boolean remoteInputActive) { @Override public void onRemoteInputActive(boolean remoteInputActive) { mCurrentState.remoteInputActive = remoteInputActive; apply(mCurrentState); } Loading