diff options
Diffstat (limited to 'src/com/android')
4 files changed, 39 insertions, 3 deletions
diff --git a/src/com/android/settings/ManagedProfileSetup.java b/src/com/android/settings/ManagedProfileSetup.java index 1b3c83876..198abe0bf 100644 --- a/src/com/android/settings/ManagedProfileSetup.java +++ b/src/com/android/settings/ManagedProfileSetup.java @@ -22,6 +22,7 @@ import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; +import android.util.Log; import android.os.UserHandle; import android.os.UserManager; @@ -37,6 +38,7 @@ import static android.content.pm.PackageManager.GET_RESOLVED_FILTER; * adds cross-profile intent filters for the appropriate Settings activities). */ public class ManagedProfileSetup extends BroadcastReceiver { + private static final String TAG = "Settings"; private static final String PRIMARY_PROFILE_SETTING = "com.android.settings.PRIMARY_PROFILE_CONTROLLED"; @@ -46,7 +48,8 @@ public class ManagedProfileSetup extends BroadcastReceiver { if (!Utils.isManagedProfile(um)) { return; } - + Log.i(TAG, "Received broadcast: " + broadcast.getAction() + + ". Setting up intent forwarding for managed profile."); final PackageManager pm = context.getPackageManager(); // Clear any previous intent forwarding we set up pm.clearCrossProfileIntentFilters(UserHandle.myUserId()); diff --git a/src/com/android/settings/accounts/AccountSettings.java b/src/com/android/settings/accounts/AccountSettings.java index 2eb89b0a2..891fdbb19 100644 --- a/src/com/android/settings/accounts/AccountSettings.java +++ b/src/com/android/settings/accounts/AccountSettings.java @@ -137,7 +137,7 @@ public class AccountSettings extends SettingsPreferenceFragment currentProfile.getIdentifier())); menu.findItem(R.id.account_settings_menu_auto_sync_personal).setVisible(false); menu.findItem(R.id.account_settings_menu_auto_sync_work).setVisible(false); - } else { + } else if (mProfiles.size() > 1) { // We assume there's only one managed profile, otherwise UI needs to change final UserHandle managedProfile = mProfiles.valueAt(1).userInfo.getUserHandle(); @@ -152,6 +152,8 @@ public class AccountSettings extends SettingsPreferenceFragment .setChecked(ContentResolver.getMasterSyncAutomaticallyAsUser( managedProfile.getIdentifier())); menu.findItem(R.id.account_settings_menu_auto_sync).setVisible(false); + } else { + Log.w(TAG, "Method onPrepareOptionsMenu called before mProfiles was initialized"); } } diff --git a/src/com/android/settings/wifi/AdvancedWifiSettings.java b/src/com/android/settings/wifi/AdvancedWifiSettings.java index 236aecd17..a57097bb4 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, diff --git a/src/com/android/settings/wifi/SavedAccessPointsWifiSettings.java b/src/com/android/settings/wifi/SavedAccessPointsWifiSettings.java index a91d153f2..10c86dc93 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; @@ -159,6 +174,20 @@ public class SavedAccessPointsWifiSettings extends SettingsPreferenceFragment } @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) { mWifiManager.forget(mSelectedAccessPoint.networkId, null); |