From c2cf25685304363bac33387c996e364a0f958434 Mon Sep 17 00:00:00 2001 From: PauloftheWest Date: Mon, 18 Aug 2014 11:49:09 -0700 Subject: [PATCH 1/5] Fixed a bug were AdvanceWifiSettings would crash on resume. Bug: 17059286 Change-Id: I9c2b03806a45c739cfb4edf64a1518d60e74cdf5 --- src/com/android/settings/wifi/AdvancedWifiSettings.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/com/android/settings/wifi/AdvancedWifiSettings.java b/src/com/android/settings/wifi/AdvancedWifiSettings.java index 236aecd17f9..a57097bb421 100644 --- a/src/com/android/settings/wifi/AdvancedWifiSettings.java +++ b/src/com/android/settings/wifi/AdvancedWifiSettings.java @@ -135,7 +135,9 @@ public class AdvancedWifiSettings extends SettingsPreferenceFragment wifiAssistant.setOnPreferenceChangeListener(this); wifiAssistant.setChecked(checked); } else { - getPreferenceScreen().removePreference(wifiAssistant); + if (wifiAssistant != null) { + getPreferenceScreen().removePreference(wifiAssistant); + } } Intent wifiDirectIntent = new Intent(context, From 3280dc144f18a406cca3c1b5292a3031e0b470e7 Mon Sep 17 00:00:00 2001 From: PauloftheWest Date: Mon, 18 Aug 2014 09:25:03 -0700 Subject: [PATCH 2/5] Fixed a crash when rotating a saved networks dialog. Bug: 16972819 Change-Id: I83d00df974f8c6692697d59ea71e93f193fa5066 --- .../wifi/SavedAccessPointsWifiSettings.java | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/src/com/android/settings/wifi/SavedAccessPointsWifiSettings.java b/src/com/android/settings/wifi/SavedAccessPointsWifiSettings.java index a91d153f2bd..10c86dc93eb 100644 --- a/src/com/android/settings/wifi/SavedAccessPointsWifiSettings.java +++ b/src/com/android/settings/wifi/SavedAccessPointsWifiSettings.java @@ -53,6 +53,9 @@ public class SavedAccessPointsWifiSettings extends SettingsPreferenceFragment private Bundle mAccessPointSavedState; private AccessPoint mSelectedAccessPoint; + // Instance state key + private static final String SAVE_DIALOG_ACCESS_POINT_STATE = "wifi_ap_state"; + @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -69,6 +72,13 @@ public class SavedAccessPointsWifiSettings extends SettingsPreferenceFragment public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); mWifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE); + + if (savedInstanceState != null) { + if (savedInstanceState.containsKey(SAVE_DIALOG_ACCESS_POINT_STATE)) { + mAccessPointSavedState = + savedInstanceState.getBundle(SAVE_DIALOG_ACCESS_POINT_STATE); + } + } } private void initPreferences() { @@ -150,6 +160,11 @@ public class SavedAccessPointsWifiSettings extends SettingsPreferenceFragment public Dialog onCreateDialog(int dialogId) { switch (dialogId) { case WifiSettings.WIFI_DIALOG_ID: + if (mDlgAccessPoint == null) { // For re-launch from saved state + mDlgAccessPoint = new AccessPoint(getActivity(), mAccessPointSavedState); + // Reset the saved access point data + mAccessPointSavedState = null; + } mSelectedAccessPoint = mDlgAccessPoint; mDialog = new WifiDialog(getActivity(), this, mDlgAccessPoint, false); return mDialog; @@ -158,6 +173,20 @@ public class SavedAccessPointsWifiSettings extends SettingsPreferenceFragment return super.onCreateDialog(dialogId); } + @Override + public void onSaveInstanceState(Bundle outState) { + super.onSaveInstanceState(outState); + + // If the dialog is showing, save its state. + if (mDialog != null && mDialog.isShowing()) { + if (mDlgAccessPoint != null) { + mAccessPointSavedState = new Bundle(); + mDlgAccessPoint.saveWifiState(mAccessPointSavedState); + outState.putBundle(SAVE_DIALOG_ACCESS_POINT_STATE, mAccessPointSavedState); + } + } + } + @Override public void onClick(DialogInterface dialogInterface, int button) { if (button == WifiDialog.BUTTON_FORGET && mSelectedAccessPoint != null) { From 94c0181c8f50d199b17771a9444303986d85f742 Mon Sep 17 00:00:00 2001 From: Amith Yamasani Date: Mon, 18 Aug 2014 16:42:43 -0700 Subject: [PATCH 3/5] Update strings for guest removal affordance and dialog Exit guest -> Remove guest etc. Bug: 16495144 Change-Id: Ieb44e886ea537682a6922046c0f63cef1456c6d8 --- res/values/strings.xml | 8 +++++--- src/com/android/settings/users/UserSettings.java | 4 ++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index 077f571abbd..0c9d28ca159 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -5257,11 +5257,13 @@ Guest - Exit guest + Remove guest - Exiting guest session? + Remove guest? - Ending the guest session will remove local data. + All apps and data in this session will be deleted. + + Remove Allow phone calls diff --git a/src/com/android/settings/users/UserSettings.java b/src/com/android/settings/users/UserSettings.java index 9ad34a91c96..726fc00b3f6 100644 --- a/src/com/android/settings/users/UserSettings.java +++ b/src/com/android/settings/users/UserSettings.java @@ -630,14 +630,14 @@ public class UserSettings extends SettingsPreferenceFragment Dialog dlg = new AlertDialog.Builder(context) .setTitle(R.string.user_exit_guest_confirm_title) .setMessage(R.string.user_exit_guest_confirm_message) - .setPositiveButton(android.R.string.yes, + .setPositiveButton(R.string.user_exit_guest_dialog_remove, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { exitGuest(); } }) - .setNegativeButton(android.R.string.no, null) + .setNegativeButton(android.R.string.cancel, null) .create(); return dlg; } From b18e2423667b132d8de428fdbdb32572a1befe62 Mon Sep 17 00:00:00 2001 From: Lifu Tang Date: Mon, 18 Aug 2014 16:46:48 -0700 Subject: [PATCH 4/5] Set switch to the correct enabling state - Fix b/16951708 Change-Id: I4f9a2a374a771fd353fca436a0d34644f9bc8320 --- src/com/android/settings/widget/SwitchBar.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/android/settings/widget/SwitchBar.java b/src/com/android/settings/widget/SwitchBar.java index e24d83fc65e..c15ac41f768 100644 --- a/src/com/android/settings/widget/SwitchBar.java +++ b/src/com/android/settings/widget/SwitchBar.java @@ -124,7 +124,7 @@ public class SwitchBar extends LinearLayout implements CompoundButton.OnCheckedC public void setEnabled(boolean enabled) { super.setEnabled(enabled); mTextView.setEnabled(enabled); - mSwitch.setEnabled(false); + mSwitch.setEnabled(enabled); } public final ToggleSwitch getSwitch() { From 1ac37a41991fae97729699468d536959e350bc11 Mon Sep 17 00:00:00 2001 From: Sander Alewijnse Date: Tue, 19 Aug 2014 18:07:47 +0100 Subject: [PATCH 5/5] Add extra to home settings starting intent. If intent contains a specific extra the picker will be retricted to launchers that support managed profiles no matter whether there are managed profiles present. Bug:15099904 Change-Id: I31ab74afee7b5a790cb7aa621fff72f640fcedaf --- src/com/android/settings/HomeSettings.java | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/com/android/settings/HomeSettings.java b/src/com/android/settings/HomeSettings.java index 817c61acc0e..2ac93c642d9 100644 --- a/src/com/android/settings/HomeSettings.java +++ b/src/com/android/settings/HomeSettings.java @@ -19,6 +19,7 @@ package com.android.settings; import java.util.ArrayList; import java.util.List; +import android.app.Activity; import android.app.ActivityManager; import android.content.BroadcastReceiver; import android.content.ComponentName; @@ -59,6 +60,10 @@ import com.android.settings.search.SearchIndexableRaw; public class HomeSettings extends SettingsPreferenceFragment implements Indexable { static final String TAG = "HomeSettings"; + // Boolean extra, indicates only launchers that support managed profiles should be shown. + // Note: must match the constant defined in ManagedProvisioning + private static final String EXTRA_SUPPORT_MANAGED_PROFILES = "support_managed_profiles"; + static final int REQUESTING_UNINSTALL = 10; public static final String HOME_PREFS = "home_prefs"; @@ -118,6 +123,8 @@ public class HomeSettings extends SettingsPreferenceFragment implements Indexabl mPm.replacePreferredActivity(mHomeFilter, IntentFilter.MATCH_CATEGORY_EMPTY, mHomeComponentSet, newHome.activityName); + + getActivity().setResult(Activity.RESULT_OK); } void uninstallApp(HomeAppPreference pref) { @@ -175,7 +182,10 @@ public class HomeSettings extends SettingsPreferenceFragment implements Indexabl mPrefs = new ArrayList(); mHomeComponentSet = new ComponentName[homeActivities.size()]; int prefIndex = 0; - boolean hasManagedProfile = hasManagedProfile(); + boolean supportManagedProfilesExtra = + getActivity().getIntent().getBooleanExtra(EXTRA_SUPPORT_MANAGED_PROFILES, false); + boolean mustSupportManagedProfile = hasManagedProfile() + || supportManagedProfilesExtra; for (int i = 0; i < homeActivities.size(); i++) { final ResolveInfo candidate = homeActivities.get(i); final ActivityInfo info = candidate.activityInfo; @@ -186,7 +196,7 @@ public class HomeSettings extends SettingsPreferenceFragment implements Indexabl CharSequence name = info.loadLabel(mPm); HomeAppPreference pref; - if (hasManagedProfile && !launcherHasManagedProfilesFeature(candidate)) { + if (mustSupportManagedProfile && !launcherHasManagedProfilesFeature(candidate)) { pref = new HomeAppPreference(context, activityName, prefIndex, icon, name, this, info, false /* not enabled */, getResources().getString(R.string.home_work_profile_not_supported)); @@ -207,6 +217,10 @@ public class HomeSettings extends SettingsPreferenceFragment implements Indexabl } if (mCurrentHome != null) { + if (mCurrentHome.isEnabled()) { + getActivity().setResult(Activity.RESULT_OK); + } + new Handler().post(new Runnable() { public void run() { mCurrentHome.setChecked(true);