Merge "InputSettings: Define order of items in Physical keyboards screen." into nyc-dev
diff --git a/res/values/themes.xml b/res/values/themes.xml
index 427e11f..ef9e1e0 100644
--- a/res/values/themes.xml
+++ b/res/values/themes.xml
@@ -302,10 +302,16 @@
         <item name="suwMarginSides">@dimen/suw_layout_margin_sides</item>
     </style>
 
-    <style name="FallbackHome" parent="@android:style/Theme.Material.Wallpaper.NoTitleBar">
-        <item name="android:windowTranslucentStatus">true</item>
-        <item name="android:windowTranslucentNavigation">true</item>
-        <item name="android:windowAnimationStyle">@null</item>
+    <style name="FallbackHome" parent="@android:style/Theme.DeviceDefault.Light.NoActionBar">
+        <item name="android:windowBackground">@android:color/transparent</item>
+        <item name="android:colorBackgroundCacheHint">@null</item>
+        <item name="android:windowShowWallpaper">true</item>
+        <item name="android:windowNoTitle">true</item>
+        <item name="android:windowTranslucentStatus">false</item>
+        <item name="android:windowTranslucentNavigation">false</item>
+        <item name="android:windowDrawsSystemBarBackgrounds">true</item>
+        <item name="android:statusBarColor">#00000000</item>
+        <item name="android:navigationBarColor">#00000000</item>
     </style>
 
 </resources>
diff --git a/src/com/android/settings/FallbackHome.java b/src/com/android/settings/FallbackHome.java
index d3e6482..deb01a1 100644
--- a/src/com/android/settings/FallbackHome.java
+++ b/src/com/android/settings/FallbackHome.java
@@ -26,6 +26,7 @@
 import android.os.Handler;
 import android.os.Message;
 import android.os.UserManager;
+import android.provider.Settings;
 import android.util.Log;
 
 import java.util.Objects;
@@ -36,6 +37,14 @@
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
+
+        // Set ourselves totally black before the device is provisioned so that
+        // we don't flash the wallpaper before SUW
+        if (Settings.Global.getInt(getContentResolver(),
+                Settings.Global.DEVICE_PROVISIONED, 0) == 0) {
+            setTheme(android.R.style.Theme_Black_NoTitleBar_Fullscreen);
+        }
+
         registerReceiver(mReceiver, new IntentFilter(Intent.ACTION_USER_UNLOCKED));
         maybeFinish();
     }
diff --git a/src/com/android/settings/ManagedProfileSetup.java b/src/com/android/settings/ManagedProfileSetup.java
index 677bdf1..ac012b0 100644
--- a/src/com/android/settings/ManagedProfileSetup.java
+++ b/src/com/android/settings/ManagedProfileSetup.java
@@ -32,6 +32,7 @@
 import static android.content.pm.PackageManager.GET_ACTIVITIES;
 import static android.content.pm.PackageManager.GET_META_DATA;
 import static android.content.pm.PackageManager.GET_RESOLVED_FILTER;
+import static android.content.pm.PackageManager.MATCH_DISABLED_COMPONENTS;
 
 /**
  * Listens to {@link Intent.ACTION_BOOT_COMPLETED} and {@link Intent.ACTION_PRE_BOOT_COMPLETED}
@@ -63,7 +64,7 @@
 
         // Resolves activities for the managed profile (which we're running as)
         List<ResolveInfo> resolvedIntents = pm.queryIntentActivities(intent,
-                GET_ACTIVITIES | GET_META_DATA | GET_RESOLVED_FILTER);
+                GET_ACTIVITIES | GET_META_DATA | GET_RESOLVED_FILTER | MATCH_DISABLED_COMPONENTS);
         final int count = resolvedIntents.size();
         for (int i = 0; i < count; i++) {
             ResolveInfo info = resolvedIntents.get(i);
diff --git a/src/com/android/settings/datausage/AppDataUsage.java b/src/com/android/settings/datausage/AppDataUsage.java
index 0e44a9d..7e9be3f 100644
--- a/src/com/android/settings/datausage/AppDataUsage.java
+++ b/src/com/android/settings/datausage/AppDataUsage.java
@@ -40,8 +40,6 @@
 import android.util.ArraySet;
 import android.view.View;
 import android.widget.AdapterView;
-
-import com.android.internal.logging.MetricsLogger;
 import com.android.internal.logging.MetricsProto.MetricsEvent;
 import com.android.settings.AppHeader;
 import com.android.settings.R;
@@ -52,7 +50,6 @@
 import com.android.settingslib.net.ChartDataLoader;
 import com.android.settingslib.net.UidDetailProvider;
 
-import static android.net.NetworkPolicyManager.POLICY_NONE;
 import static android.net.NetworkPolicyManager.POLICY_REJECT_METERED_BACKGROUND;
 
 public class AppDataUsage extends DataUsageBase implements Preference.OnPreferenceChangeListener,
@@ -209,7 +206,9 @@
     @Override
     public void onResume() {
         super.onResume();
-        mDataSaverBackend.addListener(this);
+        if (mDataSaverBackend != null) {
+            mDataSaverBackend.addListener(this);
+        }
         mPolicy = services.mPolicyEditor.getPolicy(mTemplate);
         getLoaderManager().restartLoader(LOADER_CHART_DATA,
                 ChartDataLoader.buildArgs(mTemplate, mAppItem), mChartDataCallbacks);
@@ -219,7 +218,9 @@
     @Override
     public void onPause() {
         super.onPause();
-        mDataSaverBackend.remListener(this);
+        if (mDataSaverBackend != null) {
+            mDataSaverBackend.remListener(this);
+        }
     }
 
     @Override
diff --git a/src/com/android/settings/datausage/BillingCycleSettings.java b/src/com/android/settings/datausage/BillingCycleSettings.java
index be05af7..a17c8fc 100644
--- a/src/com/android/settings/datausage/BillingCycleSettings.java
+++ b/src/com/android/settings/datausage/BillingCycleSettings.java
@@ -173,11 +173,13 @@
 
 
             final LayoutInflater dialogInflater = LayoutInflater.from(context);
+            final boolean isLimit = getArguments().getBoolean(EXTRA_LIMIT);
             mView = dialogInflater.inflate(R.layout.data_usage_bytes_editor, null, false);
             setupPicker((EditText) mView.findViewById(R.id.bytes),
                     (Spinner) mView.findViewById(R.id.size_spinner));
             return new AlertDialog.Builder(context)
-                    .setTitle(R.string.data_usage_warning_editor_title)
+                    .setTitle(isLimit ? R.string.data_usage_limit_editor_title
+                            : R.string.data_usage_warning_editor_title)
                     .setView(mView)
                     .setPositiveButton(R.string.data_usage_cycle_editor_positive, this)
                     .create();
diff --git a/src/com/android/settings/print/PrintSettingsFragment.java b/src/com/android/settings/print/PrintSettingsFragment.java
index c1fbfbb..82a18ee 100644
--- a/src/com/android/settings/print/PrintSettingsFragment.java
+++ b/src/com/android/settings/print/PrintSettingsFragment.java
@@ -201,7 +201,6 @@
                 ComponentName componentName = service.getComponentName();
                 preference.setKey(componentName.flattenToString());
 
-                preference.setOrder(Math.min(ORDER_LAST - 1, componentName.hashCode()));
                 preference.setFragment(PrintServiceSettingsFragment.class.getName());
                 preference.setPersistent(false);
 
diff --git a/src/com/android/settings/vpn2/AppDialogFragment.java b/src/com/android/settings/vpn2/AppDialogFragment.java
index 004ad80..097001a 100644
--- a/src/com/android/settings/vpn2/AppDialogFragment.java
+++ b/src/com/android/settings/vpn2/AppDialogFragment.java
@@ -138,7 +138,7 @@
         final int userId = UserHandle.getUserId(mPackageInfo.applicationInfo.uid);
         try {
             if (mPackageInfo.packageName.equals(getConnectedPackage(mService, userId))) {
-                mService.setAlwaysOnVpnPackage(userId, null);
+                mService.setAlwaysOnVpnPackage(userId, null, /* lockdownEnabled */ false);
                 mService.prepareVpn(mPackageInfo.packageName, VpnConfig.LEGACY_VPN, userId);
             }
         } catch (RemoteException e) {
diff --git a/src/com/android/settings/vpn2/AppManagementFragment.java b/src/com/android/settings/vpn2/AppManagementFragment.java
index f8e30f9..8ad64d4 100644
--- a/src/com/android/settings/vpn2/AppManagementFragment.java
+++ b/src/com/android/settings/vpn2/AppManagementFragment.java
@@ -176,7 +176,8 @@
         if (mUserId == UserHandle.USER_SYSTEM) {
             VpnUtils.clearLockdownVpn(getContext());
         }
-        mConnectivityManager.setAlwaysOnVpnPackageForUser(mUserId, isEnabled ? mPackageName : null);
+        mConnectivityManager.setAlwaysOnVpnPackageForUser(mUserId, isEnabled ? mPackageName : null,
+                /* lockdownEnabled */ false);
         if (isEnabled && !isVpnAlwaysOn()) {
             CannotConnectFragment.show(this, mVpnLabel);
         }
diff --git a/src/com/android/settings/vpn2/ConfigDialogFragment.java b/src/com/android/settings/vpn2/ConfigDialogFragment.java
index 5e4a7d9..0dbaa9a 100644
--- a/src/com/android/settings/vpn2/ConfigDialogFragment.java
+++ b/src/com/android/settings/vpn2/ConfigDialogFragment.java
@@ -153,7 +153,8 @@
             }
 
             final ConnectivityManager conn = ConnectivityManager.from(getActivity());
-            conn.setAlwaysOnVpnPackageForUser(UserHandle.myUserId(), null);
+            conn.setAlwaysOnVpnPackageForUser(UserHandle.myUserId(), null,
+                    /* lockdownEnabled */ false);
             VpnUtils.setLockdownVpn(getContext(), profile.key);
         } else {
             // update only if lockdown vpn has been changed