Merge "Default apps setting for managed profile"
This commit is contained in:
@@ -24,6 +24,7 @@ import android.content.pm.PackageInfo;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.pm.ResolveInfo;
|
||||
import android.os.AsyncTask;
|
||||
import android.os.UserManager;
|
||||
import android.provider.Settings;
|
||||
import android.telephony.TelephonyManager;
|
||||
import android.text.TextUtils;
|
||||
@@ -31,6 +32,7 @@ import android.util.ArraySet;
|
||||
import android.util.AttributeSet;
|
||||
|
||||
import com.android.settings.AppListPreference;
|
||||
import com.android.settings.Utils;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
@@ -135,7 +137,8 @@ public class DefaultEmergencyPreference extends AppListPreference {
|
||||
|
||||
public static boolean isAvailable(Context context) {
|
||||
return isCapable(context)
|
||||
&& context.getPackageManager().resolveActivity(QUERY_INTENT, 0) != null;
|
||||
&& context.getPackageManager().resolveActivity(QUERY_INTENT, 0) != null
|
||||
&& !Utils.isManagedProfile(UserManager.get(context)) ;
|
||||
}
|
||||
|
||||
public static boolean isCapable(Context context) {
|
||||
|
@@ -25,6 +25,7 @@ import android.content.Intent;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.pm.ResolveInfo;
|
||||
import android.content.pm.ServiceInfo;
|
||||
import android.os.UserManager;
|
||||
import android.provider.Settings;
|
||||
import android.service.notification.NotificationAssistantService;
|
||||
import android.util.AttributeSet;
|
||||
@@ -34,6 +35,7 @@ import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.Utils;
|
||||
import com.android.settings.notification.ManagedServiceSettings;
|
||||
|
||||
public class DefaultNotificationAssistantPreference extends AppListPreference {
|
||||
@@ -108,4 +110,8 @@ public class DefaultNotificationAssistantPreference extends AppListPreference {
|
||||
c.emptyText = R.string.no_notification_listeners;
|
||||
return c;
|
||||
}
|
||||
|
||||
public static boolean isAvailable(Context context) {
|
||||
return !Utils.isManagedProfile(UserManager.get(context));
|
||||
}
|
||||
}
|
||||
|
@@ -17,6 +17,7 @@ package com.android.settings.applications;
|
||||
|
||||
import android.content.ComponentName;
|
||||
import android.content.Context;
|
||||
import android.os.UserManager;
|
||||
import android.telephony.TelephonyManager;
|
||||
import android.text.TextUtils;
|
||||
import android.util.AttributeSet;
|
||||
@@ -24,6 +25,7 @@ import android.util.AttributeSet;
|
||||
import com.android.internal.telephony.SmsApplication;
|
||||
import com.android.internal.telephony.SmsApplication.SmsApplicationData;
|
||||
import com.android.settings.AppListPreference;
|
||||
import com.android.settings.Utils;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Objects;
|
||||
@@ -69,7 +71,7 @@ public class DefaultSmsPreference extends AppListPreference {
|
||||
public static boolean isAvailable(Context context) {
|
||||
TelephonyManager tm =
|
||||
(TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
|
||||
return tm.isSmsCapable();
|
||||
return tm.isSmsCapable() && !Utils.isManagedProfile(UserManager.get(context));
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -18,9 +18,11 @@ package com.android.settings.applications;
|
||||
|
||||
import android.app.AlertDialog;
|
||||
import android.content.ComponentName;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.os.UserManager;
|
||||
import android.provider.Settings;
|
||||
import android.support.v14.preference.SwitchPreference;
|
||||
import android.support.v7.preference.Preference;
|
||||
@@ -28,6 +30,7 @@ import android.support.v7.preference.Preference;
|
||||
import com.android.internal.logging.MetricsProto.MetricsEvent;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.SettingsPreferenceFragment;
|
||||
import com.android.settings.Utils;
|
||||
import com.android.settings.voice.VoiceInputListPreference;
|
||||
|
||||
/**
|
||||
@@ -175,4 +178,8 @@ public class ManageAssist extends SettingsPreferenceFragment
|
||||
mDefaultAssitPref.setValue(assistPackage);
|
||||
updateUi();
|
||||
}
|
||||
|
||||
public static boolean isAvailable(Context context) {
|
||||
return !Utils.isManagedProfile(UserManager.get(context));
|
||||
}
|
||||
}
|
||||
|
@@ -26,6 +26,7 @@ import android.os.Handler;
|
||||
import android.os.UserHandle;
|
||||
import android.os.UserManager;
|
||||
import android.provider.SearchIndexableResource;
|
||||
import android.provider.Settings;
|
||||
import android.support.v7.preference.Preference;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
@@ -33,29 +34,32 @@ import android.util.Log;
|
||||
import com.android.internal.content.PackageMonitor;
|
||||
import com.android.internal.logging.MetricsProto.MetricsEvent;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.SettingsPreferenceFragment;
|
||||
import com.android.settings.search.BaseSearchIndexProvider;
|
||||
import com.android.settings.search.Index;
|
||||
import com.android.settings.search.Indexable;
|
||||
import com.android.settings.utils.ProfileSettingsPreferenceFragment;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
public class ManageDefaultApps extends SettingsPreferenceFragment
|
||||
public class ManageDefaultApps extends ProfileSettingsPreferenceFragment
|
||||
implements Preference.OnPreferenceClickListener, Indexable {
|
||||
|
||||
private static final String TAG = ManageDefaultApps.class.getSimpleName();
|
||||
|
||||
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_PHONE_APP = "default_phone_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_DEFAULT_NOTIFICATION_ASST = "default_notification_asst_app";
|
||||
|
||||
private DefaultBrowserPreference mDefaultBrowserPreference;
|
||||
private PackageManager mPm;
|
||||
private int myUserId;
|
||||
|
||||
|
||||
private static final long DELAY_UPDATE_BROWSER_MILLIS = 500;
|
||||
|
||||
private final Handler mHandler = new Handler();
|
||||
@@ -130,6 +134,7 @@ public class ManageDefaultApps extends SettingsPreferenceFragment
|
||||
mPm = getPackageManager();
|
||||
myUserId = UserHandle.myUserId();
|
||||
|
||||
|
||||
mDefaultBrowserPreference = (DefaultBrowserPreference) findPreference(KEY_DEFAULT_BROWSER);
|
||||
mDefaultBrowserPreference.setOnPreferenceChangeListener(
|
||||
new Preference.OnPreferenceChangeListener() {
|
||||
@@ -151,7 +156,7 @@ public class ManageDefaultApps extends SettingsPreferenceFragment
|
||||
}
|
||||
return result;
|
||||
}
|
||||
});
|
||||
});
|
||||
final boolean isRestrictedUser = UserManager.get(getActivity())
|
||||
.getUserInfo(myUserId).isRestricted();
|
||||
|
||||
@@ -169,6 +174,14 @@ public class ManageDefaultApps extends SettingsPreferenceFragment
|
||||
removePreference(KEY_DEFAULT_EMERGENCY_APP);
|
||||
}
|
||||
|
||||
if (!ManageAssist.isAvailable(getActivity())) {
|
||||
removePreference(KEY_ASSIST_AND_VOICE_INPUT);
|
||||
}
|
||||
|
||||
if (!DefaultNotificationAssistantPreference.isAvailable(getActivity())) {
|
||||
removePreference(KEY_DEFAULT_NOTIFICATION_ASST);
|
||||
}
|
||||
|
||||
if (DefaultEmergencyPreference.isCapable(getActivity())) {
|
||||
Index.getInstance(getActivity()).updateFromClassNameResource(
|
||||
ManageDefaultApps.class.getName(), true, true);
|
||||
@@ -200,31 +213,36 @@ public class ManageDefaultApps extends SettingsPreferenceFragment
|
||||
}
|
||||
|
||||
public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
|
||||
new BaseSearchIndexProvider() {
|
||||
@Override
|
||||
public List<SearchIndexableResource> getXmlResourcesToIndex(
|
||||
Context context, boolean enabled) {
|
||||
SearchIndexableResource sir = new SearchIndexableResource(context);
|
||||
sir.xmlResId = R.xml.default_apps;
|
||||
return Arrays.asList(sir);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> getNonIndexableKeys(Context context) {
|
||||
final ArrayList<String> result = new ArrayList<String>();
|
||||
|
||||
// Remove SMS Application if the device does not support SMS
|
||||
final boolean isRestrictedUser = UserManager.get(context)
|
||||
.getUserInfo(UserHandle.myUserId()).isRestricted();
|
||||
if (!DefaultSmsPreference.isAvailable(context) || isRestrictedUser) {
|
||||
result.add(KEY_SMS_APPLICATION);
|
||||
new BaseSearchIndexProvider() {
|
||||
@Override
|
||||
public List<SearchIndexableResource> getXmlResourcesToIndex(
|
||||
Context context, boolean enabled) {
|
||||
SearchIndexableResource sir = new SearchIndexableResource(context);
|
||||
sir.xmlResId = R.xml.default_apps;
|
||||
return Arrays.asList(sir);
|
||||
}
|
||||
|
||||
if (!DefaultEmergencyPreference.isAvailable(context)) {
|
||||
result.add(KEY_DEFAULT_EMERGENCY_APP);
|
||||
}
|
||||
@Override
|
||||
public List<String> getNonIndexableKeys(Context context) {
|
||||
final ArrayList<String> result = new ArrayList<String>();
|
||||
|
||||
// Remove SMS Application if the device does not support SMS
|
||||
final boolean isRestrictedUser = UserManager.get(context)
|
||||
.getUserInfo(UserHandle.myUserId()).isRestricted();
|
||||
if (!DefaultSmsPreference.isAvailable(context) || isRestrictedUser) {
|
||||
result.add(KEY_SMS_APPLICATION);
|
||||
}
|
||||
|
||||
if (!DefaultEmergencyPreference.isAvailable(context)) {
|
||||
result.add(KEY_DEFAULT_EMERGENCY_APP);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
};
|
||||
|
||||
protected String getIntentActionString() {
|
||||
return Settings.ACTION_MANAGE_DEFAULT_APPS_SETTINGS;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
Reference in New Issue
Block a user