Merge "Home default setting should not shown in managed profile settings" into nyc-dev
This commit is contained in:
30
src/com/android/settings/PreferenceAvailabilityProvider.java
Normal file
30
src/com/android/settings/PreferenceAvailabilityProvider.java
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2016 The Android Open Source Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.android.settings;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Interface for classes whose instances can provide the availability of the preference.
|
||||||
|
*/
|
||||||
|
public interface PreferenceAvailabilityProvider {
|
||||||
|
/**
|
||||||
|
* @return the availability of the preference. Please make sure the availability in managed
|
||||||
|
* profile is taken into account.
|
||||||
|
*/
|
||||||
|
boolean isAvailable(Context context);
|
||||||
|
}
|
@@ -25,6 +25,7 @@ import android.os.UserHandle;
|
|||||||
import android.util.AttributeSet;
|
import android.util.AttributeSet;
|
||||||
|
|
||||||
import com.android.settings.AppListPreference;
|
import com.android.settings.AppListPreference;
|
||||||
|
import com.android.settings.PreferenceAvailabilityProvider;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -72,4 +73,11 @@ public class DefaultBrowserPreference extends AppListPreference {
|
|||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static class AvailabilityProvider implements PreferenceAvailabilityProvider {
|
||||||
|
@Override
|
||||||
|
public boolean isAvailable(Context context) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -32,6 +32,7 @@ import android.util.ArraySet;
|
|||||||
import android.util.AttributeSet;
|
import android.util.AttributeSet;
|
||||||
|
|
||||||
import com.android.settings.AppListPreference;
|
import com.android.settings.AppListPreference;
|
||||||
|
import com.android.settings.PreferenceAvailabilityProvider;
|
||||||
import com.android.settings.Utils;
|
import com.android.settings.Utils;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -51,10 +52,7 @@ public class DefaultEmergencyPreference extends AppListPreference {
|
|||||||
public DefaultEmergencyPreference(Context context, AttributeSet attrs) {
|
public DefaultEmergencyPreference(Context context, AttributeSet attrs) {
|
||||||
super(context, attrs);
|
super(context, attrs);
|
||||||
mContentResolver = context.getContentResolver();
|
mContentResolver = context.getContentResolver();
|
||||||
|
load();
|
||||||
if (isAvailable(context)) {
|
|
||||||
load();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -135,13 +133,7 @@ public class DefaultEmergencyPreference extends AppListPreference {
|
|||||||
return packages;
|
return packages;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean isAvailable(Context context) {
|
private static boolean isCapable(Context context) {
|
||||||
return isCapable(context)
|
|
||||||
&& context.getPackageManager().resolveActivity(QUERY_INTENT, 0) != null
|
|
||||||
&& !Utils.isManagedProfile(UserManager.get(context)) ;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static boolean isCapable(Context context) {
|
|
||||||
return TelephonyManager.EMERGENCY_ASSISTANCE_ENABLED
|
return TelephonyManager.EMERGENCY_ASSISTANCE_ENABLED
|
||||||
&& context.getResources().getBoolean(
|
&& context.getResources().getBoolean(
|
||||||
com.android.internal.R.bool.config_voice_capable);
|
com.android.internal.R.bool.config_voice_capable);
|
||||||
@@ -151,4 +143,13 @@ public class DefaultEmergencyPreference extends AppListPreference {
|
|||||||
return info.applicationInfo != null
|
return info.applicationInfo != null
|
||||||
&& (info.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0;
|
&& (info.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static class AvailabilityProvider implements PreferenceAvailabilityProvider {
|
||||||
|
@Override
|
||||||
|
public boolean isAvailable(Context context) {
|
||||||
|
return isCapable(context)
|
||||||
|
&& context.getPackageManager().resolveActivity(QUERY_INTENT, 0) != null
|
||||||
|
&& !Utils.isManagedProfile(UserManager.get(context));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -26,8 +26,11 @@ import android.content.pm.UserInfo;
|
|||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.UserManager;
|
import android.os.UserManager;
|
||||||
import android.util.AttributeSet;
|
import android.util.AttributeSet;
|
||||||
|
|
||||||
import com.android.settings.AppListPreference;
|
import com.android.settings.AppListPreference;
|
||||||
|
import com.android.settings.PreferenceAvailabilityProvider;
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
|
import com.android.settings.Utils;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -115,4 +118,10 @@ public class DefaultHomePreference extends AppListPreference {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static class AvailabilityProvider implements PreferenceAvailabilityProvider {
|
||||||
|
@Override
|
||||||
|
public boolean isAvailable(Context context) {
|
||||||
|
return !Utils.isManagedProfile(UserManager.get(context));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -34,6 +34,7 @@ import android.util.Slog;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.android.settings.PreferenceAvailabilityProvider;
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.Utils;
|
import com.android.settings.Utils;
|
||||||
import com.android.settings.notification.ManagedServiceSettings;
|
import com.android.settings.notification.ManagedServiceSettings;
|
||||||
@@ -111,7 +112,10 @@ public class DefaultNotificationAssistantPreference extends AppListPreference {
|
|||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean isAvailable(Context context) {
|
public static class AvailabilityProvider implements PreferenceAvailabilityProvider {
|
||||||
return !Utils.isManagedProfile(UserManager.get(context));
|
@Override
|
||||||
|
public boolean isAvailable(Context context) {
|
||||||
|
return !Utils.isManagedProfile(UserManager.get(context));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -25,6 +25,8 @@ import android.text.TextUtils;
|
|||||||
import android.util.AttributeSet;
|
import android.util.AttributeSet;
|
||||||
|
|
||||||
import com.android.settings.AppListPreference;
|
import com.android.settings.AppListPreference;
|
||||||
|
import com.android.settings.PreferenceAvailabilityProvider;
|
||||||
|
import com.android.settings.Utils;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
@@ -36,9 +38,7 @@ public class DefaultPhonePreference extends AppListPreference {
|
|||||||
super(context, attrs);
|
super(context, attrs);
|
||||||
|
|
||||||
mContext = context.getApplicationContext();
|
mContext = context.getApplicationContext();
|
||||||
if (isAvailable(context)) {
|
loadDialerApps();
|
||||||
loadDialerApps();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -65,15 +65,19 @@ public class DefaultPhonePreference extends AppListPreference {
|
|||||||
return DefaultDialerManager.getDefaultDialerApplication(getContext());
|
return DefaultDialerManager.getDefaultDialerApplication(getContext());
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean isAvailable(Context context) {
|
public static class AvailabilityProvider implements PreferenceAvailabilityProvider {
|
||||||
final TelephonyManager tm =
|
@Override
|
||||||
(TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
|
public boolean isAvailable(Context context) {
|
||||||
if (!tm.isVoiceCapable()) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
final UserManager um =
|
final TelephonyManager tm =
|
||||||
(UserManager) context.getSystemService(Context.USER_SERVICE);
|
(TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
|
||||||
return !um.hasUserRestriction(UserManager.DISALLOW_OUTGOING_CALLS);
|
if (!tm.isVoiceCapable()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
final UserManager um =
|
||||||
|
(UserManager) context.getSystemService(Context.USER_SERVICE);
|
||||||
|
return !um.hasUserRestriction(UserManager.DISALLOW_OUTGOING_CALLS);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -17,6 +17,7 @@ package com.android.settings.applications;
|
|||||||
|
|
||||||
import android.content.ComponentName;
|
import android.content.ComponentName;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.os.UserHandle;
|
||||||
import android.os.UserManager;
|
import android.os.UserManager;
|
||||||
import android.telephony.TelephonyManager;
|
import android.telephony.TelephonyManager;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
@@ -25,6 +26,7 @@ import android.util.AttributeSet;
|
|||||||
import com.android.internal.telephony.SmsApplication;
|
import com.android.internal.telephony.SmsApplication;
|
||||||
import com.android.internal.telephony.SmsApplication.SmsApplicationData;
|
import com.android.internal.telephony.SmsApplication.SmsApplicationData;
|
||||||
import com.android.settings.AppListPreference;
|
import com.android.settings.AppListPreference;
|
||||||
|
import com.android.settings.PreferenceAvailabilityProvider;
|
||||||
import com.android.settings.Utils;
|
import com.android.settings.Utils;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
@@ -68,10 +70,18 @@ public class DefaultSmsPreference extends AppListPreference {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean isAvailable(Context context) {
|
public static class AvailabilityProvider implements PreferenceAvailabilityProvider {
|
||||||
TelephonyManager tm =
|
@Override
|
||||||
(TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
|
public boolean isAvailable(Context context) {
|
||||||
return tm.isSmsCapable() && !Utils.isManagedProfile(UserManager.get(context));
|
boolean isRestrictedUser =
|
||||||
|
UserManager.get(context)
|
||||||
|
.getUserInfo(UserHandle.myUserId()).isRestricted();
|
||||||
|
TelephonyManager tm =
|
||||||
|
(TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
|
||||||
|
return !isRestrictedUser
|
||||||
|
&& tm.isSmsCapable()
|
||||||
|
&& !Utils.isManagedProfile(UserManager.get(context));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -28,6 +28,7 @@ import android.support.v14.preference.SwitchPreference;
|
|||||||
import android.support.v7.preference.Preference;
|
import android.support.v7.preference.Preference;
|
||||||
|
|
||||||
import com.android.internal.logging.MetricsProto.MetricsEvent;
|
import com.android.internal.logging.MetricsProto.MetricsEvent;
|
||||||
|
import com.android.settings.PreferenceAvailabilityProvider;
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.SettingsPreferenceFragment;
|
import com.android.settings.SettingsPreferenceFragment;
|
||||||
import com.android.settings.Utils;
|
import com.android.settings.Utils;
|
||||||
@@ -179,7 +180,10 @@ public class ManageAssist extends SettingsPreferenceFragment
|
|||||||
updateUi();
|
updateUi();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean isAvailable(Context context) {
|
public static class AvailabilityProvider implements PreferenceAvailabilityProvider {
|
||||||
return !Utils.isManagedProfile(UserManager.get(context));
|
@Override
|
||||||
|
public boolean isAvailable(Context context) {
|
||||||
|
return !Utils.isManagedProfile(UserManager.get(context));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -24,15 +24,17 @@ import android.net.Uri;
|
|||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.UserHandle;
|
import android.os.UserHandle;
|
||||||
import android.os.UserManager;
|
|
||||||
import android.provider.SearchIndexableResource;
|
import android.provider.SearchIndexableResource;
|
||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
|
import android.support.v4.util.ArrayMap;
|
||||||
import android.support.v7.preference.Preference;
|
import android.support.v7.preference.Preference;
|
||||||
|
import android.support.v7.preference.PreferenceScreen;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
import com.android.internal.content.PackageMonitor;
|
import com.android.internal.content.PackageMonitor;
|
||||||
import com.android.internal.logging.MetricsProto.MetricsEvent;
|
import com.android.internal.logging.MetricsProto.MetricsEvent;
|
||||||
|
import com.android.settings.PreferenceAvailabilityProvider;
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.search.BaseSearchIndexProvider;
|
import com.android.settings.search.BaseSearchIndexProvider;
|
||||||
import com.android.settings.search.Index;
|
import com.android.settings.search.Index;
|
||||||
@@ -48,18 +50,23 @@ public class ManageDefaultApps extends ProfileSettingsPreferenceFragment
|
|||||||
|
|
||||||
private static final String TAG = ManageDefaultApps.class.getSimpleName();
|
private static final String TAG = ManageDefaultApps.class.getSimpleName();
|
||||||
|
|
||||||
|
private static final String KEY_DEFAULT_HOME = "default_home";
|
||||||
private static final String KEY_ASSIST_AND_VOICE_INPUT = "assist_and_voice_input";
|
private static final String KEY_ASSIST_AND_VOICE_INPUT = "assist_and_voice_input";
|
||||||
private static final String KEY_DEFAULT_BROWSER = "default_browser";
|
private static final String KEY_DEFAULT_BROWSER = "default_browser";
|
||||||
private static final String KEY_DEFAULT_PHONE_APP = "default_phone_app";
|
private static final String KEY_DEFAULT_PHONE_APP = "default_phone_app";
|
||||||
private static final String KEY_DEFAULT_EMERGENCY_APP = "default_emergency_app";
|
private static final String KEY_DEFAULT_EMERGENCY_APP = "default_emergency_app";
|
||||||
private static final String KEY_SMS_APPLICATION = "default_sms_app";
|
private static final String KEY_SMS_APPLICATION = "default_sms_app";
|
||||||
private static final String KEY_DEFAULT_NOTIFICATION_ASST = "default_notification_asst_app";
|
private static final String KEY_DEFAULT_NOTIFICATION_ASST = "default_notification_asst_app";
|
||||||
|
private static final String[] PREFERENCE_KEYS = new String[] {
|
||||||
|
KEY_DEFAULT_HOME, KEY_ASSIST_AND_VOICE_INPUT, KEY_DEFAULT_BROWSER,
|
||||||
|
KEY_DEFAULT_PHONE_APP, KEY_DEFAULT_EMERGENCY_APP, KEY_SMS_APPLICATION,
|
||||||
|
KEY_DEFAULT_NOTIFICATION_ASST
|
||||||
|
};
|
||||||
|
|
||||||
private DefaultBrowserPreference mDefaultBrowserPreference;
|
private DefaultBrowserPreference mDefaultBrowserPreference;
|
||||||
private PackageManager mPm;
|
private PackageManager mPm;
|
||||||
private int myUserId;
|
private int myUserId;
|
||||||
|
|
||||||
|
|
||||||
private static final long DELAY_UPDATE_BROWSER_MILLIS = 500;
|
private static final long DELAY_UPDATE_BROWSER_MILLIS = 500;
|
||||||
|
|
||||||
private final Handler mHandler = new Handler();
|
private final Handler mHandler = new Handler();
|
||||||
@@ -140,6 +147,7 @@ public class ManageDefaultApps extends ProfileSettingsPreferenceFragment
|
|||||||
new Preference.OnPreferenceChangeListener() {
|
new Preference.OnPreferenceChangeListener() {
|
||||||
@Override
|
@Override
|
||||||
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
public boolean onPreferenceChange(Preference preference, Object newValue) {
|
||||||
|
|
||||||
if (newValue == null) {
|
if (newValue == null) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -157,35 +165,65 @@ public class ManageDefaultApps extends ProfileSettingsPreferenceFragment
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
final boolean isRestrictedUser = UserManager.get(getActivity())
|
|
||||||
.getUserInfo(myUserId).isRestricted();
|
|
||||||
|
|
||||||
// Restricted users cannot currently read/write SMS.
|
updatePreferenceVisibility();
|
||||||
// Remove SMS Application if the device does not support SMS
|
// Update the index.
|
||||||
if (isRestrictedUser || !DefaultSmsPreference.isAvailable(getActivity())) {
|
Index.getInstance(getActivity()).updateFromClassNameResource(
|
||||||
removePreference(KEY_SMS_APPLICATION);
|
ManageDefaultApps.class.getName(), true, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!DefaultPhonePreference.isAvailable(getActivity())) {
|
/**
|
||||||
removePreference(KEY_DEFAULT_PHONE_APP);
|
* Iterate all preferences and hide it if it is unavailable.
|
||||||
|
*/
|
||||||
|
private void updatePreferenceVisibility() {
|
||||||
|
PreferenceScreen preferenceScreen = getPreferenceScreen();
|
||||||
|
int count = preferenceScreen.getPreferenceCount();
|
||||||
|
List<String> preferenceKeys = new ArrayList<>();
|
||||||
|
for (int i = 0; i < count; i++) {
|
||||||
|
String preferenceKey = preferenceScreen.getPreference(i).getKey();
|
||||||
|
if (!TextUtils.isEmpty(preferenceKey)) {
|
||||||
|
preferenceKeys.add(preferenceKey);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
for (String preferenceKey : preferenceKeys) {
|
||||||
|
boolean isAvailable = getPreferenceAvailability(getContext(), preferenceKey);
|
||||||
|
if (!isAvailable) {
|
||||||
|
Preference preference = preferenceScreen.findPreference(preferenceKey);
|
||||||
|
preferenceScreen.removePreference(preference);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (!DefaultEmergencyPreference.isAvailable(getActivity())) {
|
/**
|
||||||
removePreference(KEY_DEFAULT_EMERGENCY_APP);
|
* Get availability of preference from {@link PreferenceAvailabilityProvider}.
|
||||||
}
|
*/
|
||||||
|
private static boolean getPreferenceAvailability(Context context,
|
||||||
|
String preferenceKey) {
|
||||||
|
// Consider the preference is unavailable if no corresponding provider is found.
|
||||||
|
PreferenceAvailabilityProvider provider = getPreferenceAvailabilityProvider(preferenceKey);
|
||||||
|
return (provider == null) ? false : provider.isAvailable(context);
|
||||||
|
}
|
||||||
|
|
||||||
if (!ManageAssist.isAvailable(getActivity())) {
|
private static PreferenceAvailabilityProvider getPreferenceAvailabilityProvider(
|
||||||
removePreference(KEY_ASSIST_AND_VOICE_INPUT);
|
String preferenceKey) {
|
||||||
}
|
switch (preferenceKey) {
|
||||||
|
case KEY_ASSIST_AND_VOICE_INPUT:
|
||||||
if (!DefaultNotificationAssistantPreference.isAvailable(getActivity())) {
|
return new ManageAssist.AvailabilityProvider();
|
||||||
removePreference(KEY_DEFAULT_NOTIFICATION_ASST);
|
case KEY_DEFAULT_BROWSER:
|
||||||
}
|
return new DefaultBrowserPreference.AvailabilityProvider();
|
||||||
|
case KEY_DEFAULT_EMERGENCY_APP:
|
||||||
if (DefaultEmergencyPreference.isCapable(getActivity())) {
|
return new DefaultEmergencyPreference.AvailabilityProvider();
|
||||||
Index.getInstance(getActivity()).updateFromClassNameResource(
|
case KEY_DEFAULT_HOME:
|
||||||
ManageDefaultApps.class.getName(), true, true);
|
return new DefaultHomePreference.AvailabilityProvider();
|
||||||
|
case KEY_DEFAULT_NOTIFICATION_ASST:
|
||||||
|
return new DefaultNotificationAssistantPreference.AvailabilityProvider();
|
||||||
|
case KEY_DEFAULT_PHONE_APP:
|
||||||
|
return new DefaultPhonePreference.AvailabilityProvider();
|
||||||
|
case KEY_SMS_APPLICATION:
|
||||||
|
return new DefaultSmsPreference.AvailabilityProvider();
|
||||||
}
|
}
|
||||||
|
Log.w(TAG, "getPreferenceAvailabilityProvider: Cannot find provider for " + preferenceKey);
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -224,19 +262,14 @@ public class ManageDefaultApps extends ProfileSettingsPreferenceFragment
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<String> getNonIndexableKeys(Context context) {
|
public List<String> getNonIndexableKeys(Context context) {
|
||||||
final ArrayList<String> result = new ArrayList<String>();
|
// Iterate all preferences to see which is not available.
|
||||||
|
final ArrayList<String> result = new ArrayList<>();
|
||||||
// Remove SMS Application if the device does not support SMS
|
for (String key : PREFERENCE_KEYS) {
|
||||||
final boolean isRestrictedUser = UserManager.get(context)
|
boolean isAvailable = getPreferenceAvailability(context, key);
|
||||||
.getUserInfo(UserHandle.myUserId()).isRestricted();
|
if (!isAvailable) {
|
||||||
if (!DefaultSmsPreference.isAvailable(context) || isRestrictedUser) {
|
result.add(key);
|
||||||
result.add(KEY_SMS_APPLICATION);
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!DefaultEmergencyPreference.isAvailable(context)) {
|
|
||||||
result.add(KEY_DEFAULT_EMERGENCY_APP);
|
|
||||||
}
|
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
Reference in New Issue
Block a user