* commit '526e4b41550fa70e08cfcfc7bfbc2aa88a9f71d7': Disable factory reset for secondary users
This commit is contained in:
@@ -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);
|
||||||
}
|
}
|
||||||
|
@@ -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,7 +105,9 @@ public class PrivacySettings extends SettingsPreferenceFragment implements
|
|||||||
super.onResume();
|
super.onResume();
|
||||||
|
|
||||||
// Refresh UI
|
// Refresh UI
|
||||||
updateToggles();
|
if (mEnabled) {
|
||||||
|
updateToggles();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
@@ -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));
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user