am 526e4b41: am c1dc8752: Merge "Disable factory reset for secondary users" into lmp-dev

* commit '526e4b41550fa70e08cfcfc7bfbc2aa88a9f71d7':
  Disable factory reset for secondary users
This commit is contained in:
Amith Yamasani
2014-10-23 22:10:38 +00:00
committed by Android Git Automerger
3 changed files with 59 additions and 4 deletions

View File

@@ -28,6 +28,7 @@ import android.content.res.Resources;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import android.os.Bundle; import android.os.Bundle;
import android.os.Environment; import android.os.Environment;
import android.os.Process;
import android.os.SystemProperties; import android.os.SystemProperties;
import android.os.UserManager; import android.os.UserManager;
import android.preference.Preference; import android.preference.Preference;
@@ -234,7 +235,8 @@ public class MasterClear extends Fragment {
@Override @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) { Bundle savedInstanceState) {
if (UserManager.get(getActivity()).hasUserRestriction( if (!Process.myUserHandle().isOwner()
|| UserManager.get(getActivity()).hasUserRestriction(
UserManager.DISALLOW_FACTORY_RESET)) { UserManager.DISALLOW_FACTORY_RESET)) {
return inflater.inflate(R.layout.master_clear_disallowed_screen, null); return inflater.inflate(R.layout.master_clear_disallowed_screen, null);
} }

View File

@@ -24,15 +24,24 @@ import android.content.Context;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.os.Process;
import android.os.RemoteException; import android.os.RemoteException;
import android.os.ServiceManager; import android.os.ServiceManager;
import android.os.UserHandle;
import android.os.UserManager; import android.os.UserManager;
import android.preference.Preference; import android.preference.Preference;
import android.preference.Preference.OnPreferenceChangeListener; import android.preference.Preference.OnPreferenceChangeListener;
import android.preference.PreferenceScreen; import android.preference.PreferenceScreen;
import android.preference.SwitchPreference; import android.preference.SwitchPreference;
import android.provider.SearchIndexableResource;
import android.provider.Settings; import android.provider.Settings;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.search.Indexable.SearchIndexProvider;
import java.util.ArrayList;
import java.util.List;
/** /**
* Gesture lock pattern settings. * Gesture lock pattern settings.
*/ */
@@ -51,6 +60,7 @@ public class PrivacySettings extends SettingsPreferenceFragment implements
private SwitchPreference mAutoRestore; private SwitchPreference mAutoRestore;
private Dialog mConfirmDialog; private Dialog mConfirmDialog;
private PreferenceScreen mConfigure; private PreferenceScreen mConfigure;
private boolean mEnabled;
private static final int DIALOG_ERASE_BACKUP = 2; private static final int DIALOG_ERASE_BACKUP = 2;
private int mDialogType; private int mDialogType;
@@ -58,9 +68,14 @@ public class PrivacySettings extends SettingsPreferenceFragment implements
@Override @Override
public void onCreate(Bundle savedInstanceState) { public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
// Don't allow any access if this is a secondary user
mEnabled = Process.myUserHandle().isOwner();
if (!mEnabled) {
return;
}
addPreferencesFromResource(R.xml.privacy_settings); addPreferencesFromResource(R.xml.privacy_settings);
final PreferenceScreen screen = getPreferenceScreen(); final PreferenceScreen screen = getPreferenceScreen();
mBackupManager = IBackupManager.Stub.asInterface( mBackupManager = IBackupManager.Stub.asInterface(
ServiceManager.getService(Context.BACKUP_SERVICE)); ServiceManager.getService(Context.BACKUP_SERVICE));
@@ -90,8 +105,10 @@ public class PrivacySettings extends SettingsPreferenceFragment implements
super.onResume(); super.onResume();
// Refresh UI // Refresh UI
if (mEnabled) {
updateToggles(); updateToggles();
} }
}
@Override @Override
public void onStop() { public void onStop() {
@@ -233,4 +250,40 @@ public class PrivacySettings extends SettingsPreferenceFragment implements
protected int getHelpResource() { protected int getHelpResource() {
return R.string.help_url_backup_reset; return R.string.help_url_backup_reset;
} }
/**
* For Search.
*/
public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
new PrivacySearchIndexProvider();
private static class PrivacySearchIndexProvider extends BaseSearchIndexProvider {
boolean mIsPrimary;
public PrivacySearchIndexProvider() {
super();
mIsPrimary = UserHandle.myUserId() == UserHandle.USER_OWNER;
}
@Override
public List<SearchIndexableResource> getXmlResourcesToIndex(
Context context, boolean enabled) {
List<SearchIndexableResource> result = new ArrayList<SearchIndexableResource>();
// For non-primary user, no backup or reset is available
if (!mIsPrimary) {
return result;
}
SearchIndexableResource sir = new SearchIndexableResource(context);
sir.xmlResId = R.xml.privacy_settings;
result.add(sir);
return result;
}
}
} }

View File

@@ -232,7 +232,7 @@ public final class SearchIndexableResources {
sResMap.put(PrivacySettings.class.getName(), sResMap.put(PrivacySettings.class.getName(),
new SearchIndexableResource( new SearchIndexableResource(
Ranking.getRankForClassName(PrivacySettings.class.getName()), Ranking.getRankForClassName(PrivacySettings.class.getName()),
R.xml.privacy_settings, NO_DATA_RES_ID,
PrivacySettings.class.getName(), PrivacySettings.class.getName(),
R.drawable.ic_settings_backup)); R.drawable.ic_settings_backup));