Merge "Hide emergency app settings on non-voice deivces"

This commit is contained in:
Adrian Roos
2015-04-08 14:50:20 +00:00
committed by Android (Google) Code Review
3 changed files with 40 additions and 3 deletions

View File

@@ -37,6 +37,7 @@ import android.os.ServiceManager;
import android.os.UserHandle; import android.os.UserHandle;
import android.preference.Preference; import android.preference.Preference;
import android.preference.Preference.OnPreferenceClickListener; import android.preference.Preference.OnPreferenceClickListener;
import android.provider.SearchIndexableResource;
import android.util.Log; import android.util.Log;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
@@ -49,12 +50,14 @@ import com.android.settings.applications.ApplicationsState.AppEntry;
import com.android.settings.applications.ApplicationsState.Callbacks; import com.android.settings.applications.ApplicationsState.Callbacks;
import com.android.settings.applications.ApplicationsState.Session; import com.android.settings.applications.ApplicationsState.Session;
import com.android.settings.applications.PermissionsInfo.Callback; import com.android.settings.applications.PermissionsInfo.Callback;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.search.Indexable;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
public class AdvancedAppSettings extends SettingsPreferenceFragment implements Callbacks, public class AdvancedAppSettings extends SettingsPreferenceFragment implements Callbacks,
DialogInterface.OnClickListener, DialogInterface.OnDismissListener, Callback { DialogInterface.OnClickListener, DialogInterface.OnDismissListener, Callback, Indexable {
static final String TAG = "AdvancedAppSettings"; static final String TAG = "AdvancedAppSettings";
static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG); static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
@@ -63,6 +66,7 @@ public class AdvancedAppSettings extends SettingsPreferenceFragment implements C
private static final String KEY_ALL_APPS = "all_apps"; private static final String KEY_ALL_APPS = "all_apps";
private static final String KEY_APP_DOMAIN_URLS = "domain_urls"; private static final String KEY_APP_DOMAIN_URLS = "domain_urls";
private static final String KEY_RESET_ALL = "reset_all"; private static final String KEY_RESET_ALL = "reset_all";
private static final String KEY_DEFAULT_EMERGENCY_APP = "default_emergency_app";
private static final String EXTRA_RESET_DIALOG = "resetDialog"; private static final String EXTRA_RESET_DIALOG = "resetDialog";
private ApplicationsState mApplicationsState; private ApplicationsState mApplicationsState;
@@ -111,6 +115,10 @@ public class AdvancedAppSettings extends SettingsPreferenceFragment implements C
mNpm = NetworkPolicyManager.from(getActivity()); mNpm = NetworkPolicyManager.from(getActivity());
mAom = (AppOpsManager)getActivity().getSystemService(Context.APP_OPS_SERVICE); mAom = (AppOpsManager)getActivity().getSystemService(Context.APP_OPS_SERVICE);
mHandler = new Handler(getActivity().getMainLooper()); mHandler = new Handler(getActivity().getMainLooper());
if (!DefaultEmergencyPreference.isAvailable(getActivity())) {
removePreference(KEY_DEFAULT_EMERGENCY_APP);
}
} }
private void updateUI() { private void updateUI() {
@@ -295,4 +303,25 @@ public class AdvancedAppSettings extends SettingsPreferenceFragment implements C
mPermissionsInfo.getRuntimePermAppsCount())); mPermissionsInfo.getRuntimePermAppsCount()));
} }
public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
new BaseSearchIndexProvider() {
@Override
public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
boolean enabled) {
ArrayList<SearchIndexableResource> result = new ArrayList<>(1);
SearchIndexableResource sir = new SearchIndexableResource(context);
sir.xmlResId = R.xml.advanced_apps;
result.add(sir);
return result;
}
@Override
public List<String> getNonIndexableKeys(Context context) {
ArrayList<String> result = new ArrayList<>(1);
if (!DefaultEmergencyPreference.isAvailable(context)) {
result.add(KEY_DEFAULT_EMERGENCY_APP);
}
return result;
}
};
} }

View File

@@ -46,8 +46,11 @@ public class DefaultEmergencyPreference extends ListPreference {
public DefaultEmergencyPreference(Context context, AttributeSet attrs) { public DefaultEmergencyPreference(Context context, AttributeSet attrs) {
super(context, attrs); super(context, attrs);
mContentResolver = context.getContentResolver(); mContentResolver = context.getContentResolver();
if (isAvailable(context)) {
load(); load();
} }
}
@Override @Override
protected Parcelable onSaveInstanceState() { protected Parcelable onSaveInstanceState() {
@@ -149,6 +152,11 @@ public class DefaultEmergencyPreference extends ListPreference {
return packages; return packages;
} }
public static boolean isAvailable(Context context) {
return context.getResources().getBoolean(
com.android.internal.R.bool.config_voice_capable);
}
private static boolean isSystemApp(PackageInfo info) { private static boolean isSystemApp(PackageInfo info) {
return info.applicationInfo != null return info.applicationInfo != null
&& (info.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0; && (info.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0;

View File

@@ -209,7 +209,7 @@ public final class SearchIndexableResources {
sResMap.put(AdvancedAppSettings.class.getName(), sResMap.put(AdvancedAppSettings.class.getName(),
new SearchIndexableResource( new SearchIndexableResource(
Ranking.getRankForClassName(AdvancedAppSettings.class.getName()), Ranking.getRankForClassName(AdvancedAppSettings.class.getName()),
R.xml.advanced_apps, NO_DATA_RES_ID,
AdvancedAppSettings.class.getName(), AdvancedAppSettings.class.getName(),
R.drawable.ic_settings_applications)); R.drawable.ic_settings_applications));