summaryrefslogtreecommitdiffstats
path: root/services/core/java/com/android/server/wm
diff options
context:
space:
mode:
authord34d <clark@cyngn.com>2016-05-09 09:27:55 -0700
committerClark Scheff <clark@cyngn.com>2016-05-16 08:54:23 -0700
commitad97956f82215357c50158b2384d527a96cce0d1 (patch)
tree7813a32c63622867e466230bd7f0e31216e454e2 /services/core/java/com/android/server/wm
parent20cb552a18faf9db89a7f92cb5c5a041a28216e2 (diff)
downloadframeworks_base-ad97956f82215357c50158b2384d527a96cce0d1.zip
frameworks_base-ad97956f82215357c50158b2384d527a96cce0d1.tar.gz
frameworks_base-ad97956f82215357c50158b2384d527a96cce0d1.tar.bz2
Expose lock screen blurring as a setting [2/2]
This will provide control over blurring since the current implementation assumes it is always on provided the device config specifies it supports blur. Change-Id: If6d1f1290473df20bda7e96e42571285bd2d8967 TICKET: CYNGNOS-2610
Diffstat (limited to 'services/core/java/com/android/server/wm')
-rw-r--r--services/core/java/com/android/server/wm/WindowAnimator.java47
1 files changed, 41 insertions, 6 deletions
diff --git a/services/core/java/com/android/server/wm/WindowAnimator.java b/services/core/java/com/android/server/wm/WindowAnimator.java
index 5de1837..1ff209b 100644
--- a/services/core/java/com/android/server/wm/WindowAnimator.java
+++ b/services/core/java/com/android/server/wm/WindowAnimator.java
@@ -30,6 +30,8 @@ import static com.android.server.wm.WindowManagerService.LayoutFields.SET_ORIENT
import static com.android.server.wm.WindowManagerService.LayoutFields.SET_WALLPAPER_ACTION_PENDING;
import android.content.Context;
+import android.database.ContentObserver;
+import android.os.Handler;
import android.os.RemoteException;
import android.util.Slog;
import android.util.SparseArray;
@@ -44,6 +46,8 @@ import android.view.Choreographer;
import com.android.server.wm.WindowManagerService.LayoutFields;
+import cyanogenmod.providers.CMSettings;
+
import java.io.PrintWriter;
import java.util.ArrayList;
@@ -98,7 +102,7 @@ public class WindowAnimator {
/** Use one animation for all entering activities after keyguard is dismissed. */
Animation mPostKeyguardExitAnimation;
- private final boolean mBlurUiEnabled;
+ private boolean mKeyguardBlurEnabled;
// forceHiding states.
static final int KEYGUARD_NOT_SHOWN = 0;
@@ -120,9 +124,14 @@ public class WindowAnimator {
mContext = service.mContext;
mPolicy = service.mPolicy;
- mBlurUiEnabled = mContext.getResources().getBoolean(
+ boolean blurUiEnabled = mContext.getResources().getBoolean(
com.android.internal.R.bool.config_ui_blur_enabled);
+ if (blurUiEnabled) {
+ SettingsObserver observer = new SettingsObserver(new Handler());
+ observer.observe(mContext);
+ }
+
mAnimationFrameCallback = new Choreographer.FrameCallback() {
public void doFrame(long frameTimeNs) {
synchronized (mService.mWindowMap) {
@@ -223,7 +232,7 @@ public class WindowAnimator {
// Only hide windows if the keyguard is active and not animating away.
boolean keyguardOn = mPolicy.isKeyguardShowingOrOccluded()
- && (mForceHiding != KEYGUARD_ANIMATING_OUT && !mBlurUiEnabled);
+ && (mForceHiding != KEYGUARD_ANIMATING_OUT && !mKeyguardBlurEnabled);
return keyguardOn && !allowWhenLocked && (win.getDisplayId() == Display.DEFAULT_DISPLAY);
}
@@ -232,7 +241,7 @@ public class WindowAnimator {
final WindowList windows = mService.getWindowListLocked(displayId);
- if (mKeyguardGoingAway && !mBlurUiEnabled) {
+ if (mKeyguardGoingAway && !mKeyguardBlurEnabled) {
for (int i = windows.size() - 1; i >= 0; i--) {
WindowState win = windows.get(i);
if (!mPolicy.isKeyguardHostWindow(win.mAttrs)) {
@@ -247,7 +256,7 @@ public class WindowAnimator {
// Create a new animation to delay until keyguard is gone on its own.
winAnimator.mAnimation = new AlphaAnimation(1.0f, 1.0f);
winAnimator.mAnimation.setDuration(
- mBlurUiEnabled ? 0 : KEYGUARD_ANIM_TIMEOUT_MS);
+ mKeyguardBlurEnabled ? 0 : KEYGUARD_ANIM_TIMEOUT_MS);
winAnimator.mAnimationIsEntrance = false;
winAnimator.mAnimationStartTime = -1;
winAnimator.mKeyguardGoingAwayAnimation = true;
@@ -337,7 +346,7 @@ public class WindowAnimator {
if (nowAnimating && win.mWinAnimator.mKeyguardGoingAwayAnimation) {
mForceHiding = KEYGUARD_ANIMATING_OUT;
} else {
- mForceHiding = win.isDrawnLw() && !mBlurUiEnabled ?
+ mForceHiding = win.isDrawnLw() && !mKeyguardBlurEnabled ?
KEYGUARD_SHOWN : KEYGUARD_NOT_SHOWN;
}
}
@@ -890,4 +899,30 @@ public class WindowAnimator {
private class DisplayContentsAnimator {
ScreenRotationAnimation mScreenRotationAnimation = null;
}
+
+ private class SettingsObserver extends ContentObserver {
+ public SettingsObserver(Handler handler) {
+ super(handler);
+ }
+
+ public void observe(Context context) {
+ context.getContentResolver().registerContentObserver(
+ CMSettings.Secure.getUriFor(CMSettings.Secure.LOCK_SCREEN_BLUR_ENABLED),
+ false,
+ this);
+
+ onChange(true);
+ }
+
+ public void unobserve(Context context) {
+ context.getContentResolver().unregisterContentObserver(this);
+ }
+
+ @Override
+ public void onChange(boolean selfChange) {
+ // default to being enabled since we are here because the blur config was set to true
+ mKeyguardBlurEnabled = CMSettings.Secure.getInt(mContext.getContentResolver(),
+ CMSettings.Secure.LOCK_SCREEN_BLUR_ENABLED, 1) == 1;
+ }
+ }
}