merge in mnc-release history after reset to mnc-dev
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 0ffaf58..3bea360 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -4593,7 +4593,8 @@
<string name="backup_erase_dialog_title"></string>
<!-- Dialog title for confirmation to erase backup data from server -->
<string name="backup_erase_dialog_message">Stop backing up your Wi\u2011Fi passwords, bookmarks, other settings, and app data, plus erase all copies on Google servers?</string>
-
+ <!-- Dialog title for confirmation to erase full backup data from server -->
+ <string name="fullbackup_erase_dialog_message">Stop backing up device data (such as Wi-Fi passwords and call history) and app data (such as settings and files stored by apps), plus erase all copies on Google Drive?</string>
<!-- Device admin settings screen --><skip />
<!-- Device admin settings activity title -->
<string name="device_admin_settings_title">Device administration settings</string>
diff --git a/src/com/android/settings/DevelopmentSettings.java b/src/com/android/settings/DevelopmentSettings.java
index dbbf6ba..1ef1dd9 100644
--- a/src/com/android/settings/DevelopmentSettings.java
+++ b/src/com/android/settings/DevelopmentSettings.java
@@ -190,7 +190,7 @@
private static String DEFAULT_LOG_RING_BUFFER_SIZE_IN_BYTES = "262144"; // 256K
- private static final int[] MOCK_LOCATOIN_APP_OPS = new int[] {AppOpsManager.OP_MOCK_LOCATION};
+ private static final int[] MOCK_LOCATION_APP_OPS = new int[] {AppOpsManager.OP_MOCK_LOCATION};
private static final String MULTI_WINDOW_SYSTEM_PROPERTY = "persist.sys.debug.multi_window";
private IWindowManager mWindowManager;
@@ -698,7 +698,7 @@
AppOpsManager appOpsManager = (AppOpsManager) getSystemService(Context.APP_OPS_SERVICE);
// Disable the app op of the previous mock location app if such.
- List<PackageOps> packageOps = appOpsManager.getPackagesForOps(MOCK_LOCATOIN_APP_OPS);
+ List<PackageOps> packageOps = appOpsManager.getPackagesForOps(MOCK_LOCATION_APP_OPS);
if (packageOps != null) {
// Should be one but in case we are in a bad state due to use of command line tools.
for (PackageOps packageOp : packageOps) {
@@ -764,7 +764,7 @@
private void updateMockLocation() {
AppOpsManager appOpsManager = (AppOpsManager) getSystemService(Context.APP_OPS_SERVICE);
- List<PackageOps> packageOps = appOpsManager.getPackagesForOps(MOCK_LOCATOIN_APP_OPS);
+ List<PackageOps> packageOps = appOpsManager.getPackagesForOps(MOCK_LOCATION_APP_OPS);
if (packageOps != null) {
for (PackageOps packageOp : packageOps) {
if (packageOp.getOps().get(0).getMode() == AppOpsManager.MODE_ALLOWED) {
diff --git a/src/com/android/settings/deviceinfo/StorageWizardFormatProgress.java b/src/com/android/settings/deviceinfo/StorageWizardFormatProgress.java
index 9ab714a..e2e6dbe 100644
--- a/src/com/android/settings/deviceinfo/StorageWizardFormatProgress.java
+++ b/src/com/android/settings/deviceinfo/StorageWizardFormatProgress.java
@@ -55,12 +55,23 @@
new PartitionTask().execute();
}
- public class PartitionTask extends AsyncTask<Void, Void, Exception> {
+ public class PartitionTask extends AsyncTask<Void, Integer, Exception> {
@Override
protected Exception doInBackground(Void... params) {
try {
if (mFormatPrivate) {
mStorage.partitionPrivate(mDisk.getId());
+ publishProgress(40);
+
+ final long internalBench = mStorage.benchmark(null);
+ publishProgress(60);
+
+ final VolumeInfo privateVol = findFirstVolume(VolumeInfo.TYPE_PRIVATE);
+ final long privateBench = mStorage.benchmark(privateVol.id);
+
+ // TODO: plumb through to user when below threshold
+ final float pct = (float) internalBench / (float) privateBench;
+ Log.d(TAG, "New volume is " + pct + "x the speed of internal");
} else {
mStorage.partitionPublic(mDisk.getId());
}
@@ -71,6 +82,11 @@
}
@Override
+ protected void onProgressUpdate(Integer... progress) {
+ setCurrentProgress(progress[0]);
+ }
+
+ @Override
protected void onPostExecute(Exception e) {
final Context context = StorageWizardFormatProgress.this;
if (e == null) {
diff --git a/src/com/android/settings/wifi/SavedAccessPointsWifiSettings.java b/src/com/android/settings/wifi/SavedAccessPointsWifiSettings.java
index 1444ad5..2d200b5 100644
--- a/src/com/android/settings/wifi/SavedAccessPointsWifiSettings.java
+++ b/src/com/android/settings/wifi/SavedAccessPointsWifiSettings.java
@@ -147,7 +147,7 @@
mSelectedAccessPoint = mDlgAccessPoint;
// Hide forget button if config editing is locked down
- final boolean hideForgetButton = WifiSettings.isCreatorDeviceOwner(getActivity(),
+ final boolean hideForgetButton = WifiSettings.isEditabilityLockedDown(getActivity(),
mDlgAccessPoint.getConfig());
mDialog = new WifiDialog(getActivity(), this, mDlgAccessPoint,
false /* not editting */, true /* hide the submit button */,
diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java
index 0c28db3..97612a9 100644
--- a/src/com/android/settings/wifi/WifiSettings.java
+++ b/src/com/android/settings/wifi/WifiSettings.java
@@ -43,6 +43,7 @@
import android.os.Bundle;
import android.os.RemoteException;
import android.os.UserHandle;
+import android.os.UserManager;
import android.preference.Preference;
import android.preference.PreferenceScreen;
import android.text.Spannable;
@@ -439,8 +440,8 @@
}
WifiConfiguration config = mSelectedAccessPoint.getConfig();
- // Device Owner created configs are uneditable
- if (isCreatorDeviceOwner(getActivity(), config)) {
+ // Some configs are ineditable
+ if (isEditabilityLockedDown(getActivity(), config)) {
return;
}
@@ -522,7 +523,7 @@
private void showDialog(AccessPoint accessPoint, boolean edit) {
if (accessPoint != null) {
WifiConfiguration config = accessPoint.getConfig();
- if (isCreatorDeviceOwner(getActivity(), config) && accessPoint.isActive()) {
+ if (isEditabilityLockedDown(getActivity(), config) && accessPoint.isActive()) {
final int userId = UserHandle.getUserId(config.creatorUid);
final PackageManager pm = getActivity().getPackageManager();
final IPackageManager ipm = AppGlobals.getPackageManager();
@@ -575,7 +576,7 @@
}
// If it's null, fine, it's for Add Network
mSelectedAccessPoint = ap;
- final boolean hideForget = (ap == null || isCreatorDeviceOwner(getActivity(),
+ final boolean hideForget = (ap == null || isEditabilityLockedDown(getActivity(),
ap.getConfig()));
mDialog = new WifiDialog(getActivity(), this, ap, mDlgEdit,
/* no hide submit/connect */ false,
@@ -913,11 +914,11 @@
};
/**
- * Returns the true if the app that created this config is the device owner of the device.
+ * Returns true if the config is not editable/removable except by its creating Device Owner.
* @param config The WiFi config.
- * @return creator package name or null if creator package is not device owner.
+ * @return true if the config is not editable/removable except by its creating Device Owner.
*/
- static boolean isCreatorDeviceOwner(Context context, WifiConfiguration config) {
+ static boolean isEditabilityLockedDown(Context context, WifiConfiguration config) {
if (config == null) {
return false;
}
@@ -927,6 +928,10 @@
if (deviceOwnerPackageName == null) {
return false;
}
+ UserManager um = UserManager.get(context);
+ if (um.hasUserRestriction(UserManager.DISALLOW_CONFIG_WIFI)) {
+ return false;
+ }
final PackageManager pm = context.getPackageManager();
try {
final int deviceOwnerUid = pm.getPackageUid(deviceOwnerPackageName,