Merge "Hides screen attention when attention service is not avaliable."
This commit is contained in:
@@ -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;
|
||||
@@ -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(
|
||||
|
Reference in New Issue
Block a user