Loading services/core/java/com/android/server/power/AttentionDetector.java +9 −8 Original line number Diff line number Diff line Loading @@ -40,6 +40,7 @@ import android.util.StatsLog; import com.android.internal.annotations.VisibleForTesting; import com.android.server.LocalServices; import com.android.server.wm.WindowManagerInternal; import java.io.PrintWriter; import java.util.concurrent.atomic.AtomicBoolean; Loading Loading @@ -101,6 +102,9 @@ public class AttentionDetector { @VisibleForTesting protected AttentionManagerInternal mAttentionManager; @VisibleForTesting protected WindowManagerInternal mWindowManager; @VisibleForTesting protected PackageManager mPackageManager; Loading Loading @@ -142,6 +146,7 @@ public class AttentionDetector { mPackageManager = context.getPackageManager(); mContentResolver = context.getContentResolver(); mAttentionManager = LocalServices.getService(AttentionManagerInternal.class); mWindowManager = LocalServices.getService(WindowManagerInternal.class); mMaximumExtensionMillis = context.getResources().getInteger( com.android.internal.R.integer.config_attentionMaximumExtension); mMaxAttentionApiTimeoutMillis = context.getResources().getInteger( Loading @@ -165,14 +170,10 @@ public class AttentionDetector { } public long updateUserActivity(long nextScreenDimming) { if (nextScreenDimming == mLastActedOnNextScreenDimming) { return nextScreenDimming; } if (!mIsSettingEnabled) { return nextScreenDimming; } if (!isAttentionServiceSupported()) { if (nextScreenDimming == mLastActedOnNextScreenDimming || !mIsSettingEnabled || !isAttentionServiceSupported() || mWindowManager.isKeyguardShowingAndNotOccluded()) { return nextScreenDimming; } Loading services/tests/servicestests/src/com/android/server/power/AttentionDetectorTest.java +15 −0 Original line number Diff line number Diff line Loading @@ -42,6 +42,8 @@ import android.service.attention.AttentionService; import android.test.AndroidTestCase; import android.test.suitebuilder.annotation.SmallTest; import com.android.server.wm.WindowManagerInternal; import org.junit.After; import org.junit.Before; import org.junit.Test; Loading @@ -57,6 +59,8 @@ public class AttentionDetectorTest extends AndroidTestCase { @Mock private AttentionManagerInternal mAttentionManagerInternal; @Mock private WindowManagerInternal mWindowManagerInternal; @Mock private Runnable mOnUserAttention; private TestableAttentionDetector mAttentionDetector; private long mAttentionTimeout; Loading @@ -71,6 +75,7 @@ public class AttentionDetectorTest extends AndroidTestCase { PackageManager.PERMISSION_GRANTED); when(mAttentionManagerInternal.checkAttention(anyLong(), any())) .thenReturn(true); when(mWindowManagerInternal.isKeyguardShowingAndNotOccluded()).thenReturn(false); mAttentionDetector = new TestableAttentionDetector(); mAttentionDetector.onWakefulnessChangeStarted(PowerManagerInternal.WAKEFULNESS_AWAKE); mAttentionDetector.setAttentionServiceSupported(true); Loading Loading @@ -116,6 +121,15 @@ public class AttentionDetectorTest extends AndroidTestCase { assertThat(mNextDimming).isEqualTo(when); } @Test public void testOnUserActivity_doesntCheckIfInLockscreen() { when(mWindowManagerInternal.isKeyguardShowingAndNotOccluded()).thenReturn(true); long when = registerAttention(); verify(mAttentionManagerInternal, never()).checkAttention(anyLong(), any()); assertThat(mNextDimming).isEqualTo(when); } @Test public void testOnUserActivity_doesntCheckIfNotSufficientPermissions() { when(mPackageManager.checkPermission(any(), any())).thenReturn( Loading Loading @@ -299,6 +313,7 @@ public class AttentionDetectorTest extends AndroidTestCase { TestableAttentionDetector() { super(AttentionDetectorTest.this.mOnUserAttention, new Object()); mAttentionManager = mAttentionManagerInternal; mWindowManager = mWindowManagerInternal; mPackageManager = AttentionDetectorTest.this.mPackageManager; mContentResolver = getContext().getContentResolver(); mMaximumExtensionMillis = 10000L; Loading Loading
services/core/java/com/android/server/power/AttentionDetector.java +9 −8 Original line number Diff line number Diff line Loading @@ -40,6 +40,7 @@ import android.util.StatsLog; import com.android.internal.annotations.VisibleForTesting; import com.android.server.LocalServices; import com.android.server.wm.WindowManagerInternal; import java.io.PrintWriter; import java.util.concurrent.atomic.AtomicBoolean; Loading Loading @@ -101,6 +102,9 @@ public class AttentionDetector { @VisibleForTesting protected AttentionManagerInternal mAttentionManager; @VisibleForTesting protected WindowManagerInternal mWindowManager; @VisibleForTesting protected PackageManager mPackageManager; Loading Loading @@ -142,6 +146,7 @@ public class AttentionDetector { mPackageManager = context.getPackageManager(); mContentResolver = context.getContentResolver(); mAttentionManager = LocalServices.getService(AttentionManagerInternal.class); mWindowManager = LocalServices.getService(WindowManagerInternal.class); mMaximumExtensionMillis = context.getResources().getInteger( com.android.internal.R.integer.config_attentionMaximumExtension); mMaxAttentionApiTimeoutMillis = context.getResources().getInteger( Loading @@ -165,14 +170,10 @@ public class AttentionDetector { } public long updateUserActivity(long nextScreenDimming) { if (nextScreenDimming == mLastActedOnNextScreenDimming) { return nextScreenDimming; } if (!mIsSettingEnabled) { return nextScreenDimming; } if (!isAttentionServiceSupported()) { if (nextScreenDimming == mLastActedOnNextScreenDimming || !mIsSettingEnabled || !isAttentionServiceSupported() || mWindowManager.isKeyguardShowingAndNotOccluded()) { return nextScreenDimming; } Loading
services/tests/servicestests/src/com/android/server/power/AttentionDetectorTest.java +15 −0 Original line number Diff line number Diff line Loading @@ -42,6 +42,8 @@ import android.service.attention.AttentionService; import android.test.AndroidTestCase; import android.test.suitebuilder.annotation.SmallTest; import com.android.server.wm.WindowManagerInternal; import org.junit.After; import org.junit.Before; import org.junit.Test; Loading @@ -57,6 +59,8 @@ public class AttentionDetectorTest extends AndroidTestCase { @Mock private AttentionManagerInternal mAttentionManagerInternal; @Mock private WindowManagerInternal mWindowManagerInternal; @Mock private Runnable mOnUserAttention; private TestableAttentionDetector mAttentionDetector; private long mAttentionTimeout; Loading @@ -71,6 +75,7 @@ public class AttentionDetectorTest extends AndroidTestCase { PackageManager.PERMISSION_GRANTED); when(mAttentionManagerInternal.checkAttention(anyLong(), any())) .thenReturn(true); when(mWindowManagerInternal.isKeyguardShowingAndNotOccluded()).thenReturn(false); mAttentionDetector = new TestableAttentionDetector(); mAttentionDetector.onWakefulnessChangeStarted(PowerManagerInternal.WAKEFULNESS_AWAKE); mAttentionDetector.setAttentionServiceSupported(true); Loading Loading @@ -116,6 +121,15 @@ public class AttentionDetectorTest extends AndroidTestCase { assertThat(mNextDimming).isEqualTo(when); } @Test public void testOnUserActivity_doesntCheckIfInLockscreen() { when(mWindowManagerInternal.isKeyguardShowingAndNotOccluded()).thenReturn(true); long when = registerAttention(); verify(mAttentionManagerInternal, never()).checkAttention(anyLong(), any()); assertThat(mNextDimming).isEqualTo(when); } @Test public void testOnUserActivity_doesntCheckIfNotSufficientPermissions() { when(mPackageManager.checkPermission(any(), any())).thenReturn( Loading Loading @@ -299,6 +313,7 @@ public class AttentionDetectorTest extends AndroidTestCase { TestableAttentionDetector() { super(AttentionDetectorTest.this.mOnUserAttention, new Object()); mAttentionManager = mAttentionManagerInternal; mWindowManager = mWindowManagerInternal; mPackageManager = AttentionDetectorTest.this.mPackageManager; mContentResolver = getContext().getContentResolver(); mMaximumExtensionMillis = 10000L; Loading