Loading src/com/android/settings/display/AdaptiveSleepPreferenceController.java +18 −0 Original line number Diff line number Diff line Loading @@ -17,8 +17,12 @@ import static android.provider.Settings.Secure.ADAPTIVE_SLEEP; import android.Manifest; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.provider.Settings; import android.service.attention.AttentionService; import android.text.TextUtils; import com.android.settings.R; import com.android.settings.core.TogglePreferenceController; Loading Loading @@ -62,10 +66,24 @@ public class AdaptiveSleepPreferenceController extends TogglePreferenceControlle public static int isControllerAvailable(Context context) { return context.getResources().getBoolean( com.android.internal.R.bool.config_adaptive_sleep_available) && isAttentionServiceAvailable(context) ? AVAILABLE_UNSEARCHABLE : UNSUPPORTED_ON_DEVICE; } private static boolean isAttentionServiceAvailable(Context context) { final PackageManager packageManager = context.getPackageManager(); final String resolvePackage = packageManager.getAttentionServicePackageName(); if (TextUtils.isEmpty(resolvePackage)) { return false; } final Intent intent = new Intent(AttentionService.SERVICE_INTERFACE).setPackage( resolvePackage); final ResolveInfo resolveInfo = packageManager.resolveService(intent, PackageManager.MATCH_SYSTEM_ONLY); return resolveInfo != null && resolveInfo.serviceInfo != null; } static boolean hasSufficientPermission(PackageManager packageManager) { final String attentionPackage = packageManager.getAttentionServicePackageName(); return attentionPackage != null && packageManager.checkPermission( Loading tests/robotests/src/com/android/settings/display/AdaptiveSleepPreferenceControllerTest.java +14 −1 Original line number Diff line number Diff line Loading @@ -16,17 +16,22 @@ package com.android.settings.display; import static android.provider.Settings.System.ADAPTIVE_SLEEP; import static android.provider.Settings.Secure.ADAPTIVE_SLEEP; import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_DEVICE; import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.isA; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.when; import android.content.ContentResolver; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.provider.Settings; Loading Loading @@ -75,6 +80,14 @@ public class AdaptiveSleepPreferenceControllerTest { when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference); } @Test public void isControllerAvailable_ServiceUnavailable_returnUnsupported() { doReturn(null).when(mPackageManager).resolveService(isA(Intent.class), anyInt()); assertThat(AdaptiveSleepPreferenceController.isControllerAvailable(mContext)).isEqualTo( UNSUPPORTED_ON_DEVICE); } @Test public void onPreferenceChange_turnOn_returnOn() { mController.onPreferenceChange(null, true); Loading Loading
src/com/android/settings/display/AdaptiveSleepPreferenceController.java +18 −0 Original line number Diff line number Diff line Loading @@ -17,8 +17,12 @@ import static android.provider.Settings.Secure.ADAPTIVE_SLEEP; import android.Manifest; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.provider.Settings; import android.service.attention.AttentionService; import android.text.TextUtils; import com.android.settings.R; import com.android.settings.core.TogglePreferenceController; Loading Loading @@ -62,10 +66,24 @@ public class AdaptiveSleepPreferenceController extends TogglePreferenceControlle public static int isControllerAvailable(Context context) { return context.getResources().getBoolean( com.android.internal.R.bool.config_adaptive_sleep_available) && isAttentionServiceAvailable(context) ? AVAILABLE_UNSEARCHABLE : UNSUPPORTED_ON_DEVICE; } private static boolean isAttentionServiceAvailable(Context context) { final PackageManager packageManager = context.getPackageManager(); final String resolvePackage = packageManager.getAttentionServicePackageName(); if (TextUtils.isEmpty(resolvePackage)) { return false; } final Intent intent = new Intent(AttentionService.SERVICE_INTERFACE).setPackage( resolvePackage); final ResolveInfo resolveInfo = packageManager.resolveService(intent, PackageManager.MATCH_SYSTEM_ONLY); return resolveInfo != null && resolveInfo.serviceInfo != null; } static boolean hasSufficientPermission(PackageManager packageManager) { final String attentionPackage = packageManager.getAttentionServicePackageName(); return attentionPackage != null && packageManager.checkPermission( Loading
tests/robotests/src/com/android/settings/display/AdaptiveSleepPreferenceControllerTest.java +14 −1 Original line number Diff line number Diff line Loading @@ -16,17 +16,22 @@ package com.android.settings.display; import static android.provider.Settings.System.ADAPTIVE_SLEEP; import static android.provider.Settings.Secure.ADAPTIVE_SLEEP; import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_DEVICE; import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.isA; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.when; import android.content.ContentResolver; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.provider.Settings; Loading Loading @@ -75,6 +80,14 @@ public class AdaptiveSleepPreferenceControllerTest { when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference); } @Test public void isControllerAvailable_ServiceUnavailable_returnUnsupported() { doReturn(null).when(mPackageManager).resolveService(isA(Intent.class), anyInt()); assertThat(AdaptiveSleepPreferenceController.isControllerAvailable(mContext)).isEqualTo( UNSUPPORTED_ON_DEVICE); } @Test public void onPreferenceChange_turnOn_returnOn() { mController.onPreferenceChange(null, true); Loading