Hide esos setting if no app provides esos functionality

When user disables OEM app that provides esos, the setting is hidden as
well.

See more details on bug.

Bug: 178654110
Test: robotests
Change-Id: I7a0763381d3321124f4208a58bb8e10cf884f7c1
This commit is contained in:
Fan Zhang
2021-01-28 01:28:42 +00:00
parent 7c041874ce
commit 6a8f11b2cf
2 changed files with 47 additions and 15 deletions

View File

@@ -62,7 +62,7 @@ public class EmergencyGestureEntrypointPreferenceController extends BasePreferen
@Override
public void updateState(Preference preference) {
super.updateState(preference);
final boolean canHandleClicks = !mUseCustomIntent || mIntent != null;
final boolean canHandleClicks = canHandleClicks();
if (preference != null) {
preference.setEnabled(canHandleClicks);
}
@@ -86,6 +86,9 @@ public class EmergencyGestureEntrypointPreferenceController extends BasePreferen
if (!isConfigEnabled) {
return UNSUPPORTED_ON_DEVICE;
}
if (!canHandleClicks()) {
return UNSUPPORTED_ON_DEVICE;
}
return AVAILABLE;
}
@@ -117,6 +120,13 @@ public class EmergencyGestureEntrypointPreferenceController extends BasePreferen
return mUseCustomIntent;
}
/**
* Whether or not this setting can react to user click
*/
private boolean canHandleClicks() {
return !mUseCustomIntent || mIntent != null;
}
private boolean canResolveIntent(Intent intent) {
final ResolveInfo resolveActivity = mContext.getPackageManager()
.resolveActivity(intent, 0);