diff options
| author | 2019-04-30 22:37:27 +0000 | |
|---|---|---|
| committer | 2019-04-30 22:37:27 +0000 | |
| commit | eafecea0ff552fc9b1b893b438edb633c3db86ea (patch) | |
| tree | 853705397fa24c167d392bb45990defa67b574aa | |
| parent | ae05e55db5c789d0d50963f69e6459cfa4aebbf9 (diff) | |
| parent | d7221351c674098d10968dc6c56ce67159b8137f (diff) | |
Merge "Do not show padlock when charging" into qt-dev
4 files changed, 41 insertions, 5 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/Dependency.java b/packages/SystemUI/src/com/android/systemui/Dependency.java index 1feb63d884fd..4b6306ad8fc0 100644 --- a/packages/SystemUI/src/com/android/systemui/Dependency.java +++ b/packages/SystemUI/src/com/android/systemui/Dependency.java @@ -35,6 +35,7 @@ import com.android.systemui.appops.AppOpsController; import com.android.systemui.assist.AssistManager; import com.android.systemui.bubbles.BubbleController; import com.android.systemui.colorextraction.SysuiColorExtractor; +import com.android.systemui.dock.DockManager; import com.android.systemui.fragments.FragmentService; import com.android.systemui.keyguard.ScreenLifecycle; import com.android.systemui.keyguard.WakefulnessLifecycle; @@ -296,6 +297,7 @@ public class Dependency extends SystemUI { @Inject Lazy<PackageManagerWrapper> mPackageManagerWrapper; @Inject Lazy<SensorPrivacyController> mSensorPrivacyController; @Inject Lazy<DumpController> mDumpController; + @Inject Lazy<DockManager> mDockManager; @Inject public Dependency() { @@ -470,6 +472,7 @@ public class Dependency extends SystemUI { mProviders.put(PackageManagerWrapper.class, mPackageManagerWrapper::get); mProviders.put(SensorPrivacyController.class, mSensorPrivacyController::get); mProviders.put(DumpController.class, mDumpController::get); + mProviders.put(DockManager.class, mDockManager::get); // TODO(b/118592525): to support multi-display , we start to add something which is // per-display, while others may be global. I think it's time to add diff --git a/packages/SystemUI/src/com/android/systemui/SystemUIFactory.java b/packages/SystemUI/src/com/android/systemui/SystemUIFactory.java index ffb5e810fb29..f9926f3550ec 100644 --- a/packages/SystemUI/src/com/android/systemui/SystemUIFactory.java +++ b/packages/SystemUI/src/com/android/systemui/SystemUIFactory.java @@ -34,6 +34,7 @@ import com.android.keyguard.KeyguardUpdateMonitor; import com.android.keyguard.ViewMediatorCallback; import com.android.systemui.assist.AssistManager; import com.android.systemui.classifier.FalsingManager; +import com.android.systemui.dock.DockManager; import com.android.systemui.fragments.FragmentService; import com.android.systemui.keyguard.DismissCallbackRegistry; import com.android.systemui.plugins.statusbar.StatusBarStateController; @@ -179,6 +180,13 @@ public class SystemUIFactory { @Singleton @Provides + @Nullable + public DockManager provideDockManager(Context context) { + return null; + } + + @Singleton + @Provides public NotificationEntryManager provideNotificationEntryManager(Context context) { return new NotificationEntryManager(context); } diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeFactory.java b/packages/SystemUI/src/com/android/systemui/doze/DozeFactory.java index 060765495f48..5196ec639453 100644 --- a/packages/SystemUI/src/com/android/systemui/doze/DozeFactory.java +++ b/packages/SystemUI/src/com/android/systemui/doze/DozeFactory.java @@ -27,7 +27,6 @@ import android.os.Handler; import com.android.keyguard.KeyguardUpdateMonitor; import com.android.systemui.Dependency; import com.android.systemui.R; -import com.android.systemui.SysUiServiceProvider; import com.android.systemui.SystemUIApplication; import com.android.systemui.classifier.FalsingManager; import com.android.systemui.dock.DockManager; @@ -46,7 +45,7 @@ public class DozeFactory { Context context = dozeService; SensorManager sensorManager = Dependency.get(AsyncSensorManager.class); AlarmManager alarmManager = context.getSystemService(AlarmManager.class); - DockManager dockManager = SysUiServiceProvider.getComponent(context, DockManager.class); + DockManager dockManager = Dependency.get(DockManager.class); DozeHost host = getHost(dozeService); AmbientDisplayConfiguration config = new AmbientDisplayConfiguration(context); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockIcon.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockIcon.java index 586e82c612c8..a831a5d29a79 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockIcon.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/LockIcon.java @@ -31,10 +31,13 @@ import android.util.AttributeSet; import android.view.ViewGroup; import android.view.accessibility.AccessibilityNodeInfo; +import androidx.annotation.Nullable; + import com.android.internal.graphics.ColorUtils; import com.android.keyguard.KeyguardUpdateMonitor; import com.android.keyguard.KeyguardUpdateMonitorCallback; import com.android.systemui.R; +import com.android.systemui.dock.DockManager; import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.statusbar.KeyguardAffordanceView; import com.android.systemui.statusbar.policy.AccessibilityController; @@ -62,6 +65,7 @@ public class LockIcon extends KeyguardAffordanceView implements OnUserInfoChange private final UnlockMethodCache mUnlockMethodCache; private final KeyguardUpdateMonitor mKeyguardUpdateMonitor; private final AccessibilityController mAccessibilityController; + private final DockManager mDockManager; private int mLastState = 0; private boolean mTransientBiometricsError; @@ -72,13 +76,26 @@ public class LockIcon extends KeyguardAffordanceView implements OnUserInfoChange private boolean mPulsing; private boolean mDozing; private boolean mBouncerVisible; + private boolean mDocked; private boolean mLastDozing; private boolean mLastPulsing; private boolean mLastBouncerVisible; private int mIconColor; + private float mDozeAmount; private final Runnable mDrawOffTimeout = () -> update(true /* forceUpdate */); - private float mDozeAmount; + private final DockManager.DockEventListener mDockEventListener = + new DockManager.DockEventListener() { + @Override + public void onEvent(int event) { + boolean docked = event == DockManager.STATE_DOCKED + || event == DockManager.STATE_DOCKED_HIDE; + if (docked != mDocked) { + mDocked = docked; + update(true /* force */); + } + } + }; private final KeyguardUpdateMonitorCallback mUpdateMonitorCallback = new KeyguardUpdateMonitorCallback() { @@ -115,7 +132,8 @@ public class LockIcon extends KeyguardAffordanceView implements OnUserInfoChange public LockIcon(@Named(VIEW_CONTEXT) Context context, AttributeSet attrs, StatusBarStateController statusBarStateController, ConfigurationController configurationController, - AccessibilityController accessibilityController) { + AccessibilityController accessibilityController, + @Nullable DockManager dockManager) { super(context, attrs); mContext = context; mUnlockMethodCache = UnlockMethodCache.getInstance(context); @@ -123,6 +141,7 @@ public class LockIcon extends KeyguardAffordanceView implements OnUserInfoChange mAccessibilityController = accessibilityController; mConfigurationController = configurationController; mStatusBarStateController = statusBarStateController; + mDockManager = dockManager; } @Override @@ -132,6 +151,9 @@ public class LockIcon extends KeyguardAffordanceView implements OnUserInfoChange mConfigurationController.addCallback(this); mKeyguardUpdateMonitor.registerCallback(mUpdateMonitorCallback); mUnlockMethodCache.addListener(this); + if (mDockManager != null) { + mDockManager.addListener(mDockEventListener); + } onThemeChanged(); } @@ -142,6 +164,9 @@ public class LockIcon extends KeyguardAffordanceView implements OnUserInfoChange mConfigurationController.removeCallback(this); mKeyguardUpdateMonitor.removeCallback(mUpdateMonitorCallback); mUnlockMethodCache.removeListener(this); + if (mDockManager != null) { + mDockManager.removeListener(mDockEventListener); + } } @Override @@ -237,7 +262,8 @@ public class LockIcon extends KeyguardAffordanceView implements OnUserInfoChange mLastBouncerVisible = mBouncerVisible; } - setVisibility(mDozing && !mPulsing ? INVISIBLE : VISIBLE); + boolean invisible = mDozing && (!mPulsing || mDocked); + setVisibility(invisible ? INVISIBLE : VISIBLE); updateClickability(); } |