am 0c74ea6c: am 3aabfca4: Merge "Fixed a crash when rotating a WPS dialog." into lmp-dev

* commit '0c74ea6cc58054e8bfb74ee1eda4453ac10567ce':
  Fixed a crash when rotating a WPS dialog.
This commit is contained in:
PauloftheWest
2014-09-26 15:04:41 +00:00
committed by Android Git Automerger

View File

@@ -16,6 +16,8 @@
package com.android.settings.wifi; package com.android.settings.wifi;
import android.app.Dialog;
import android.app.DialogFragment;
import android.content.BroadcastReceiver; import android.content.BroadcastReceiver;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
@@ -151,8 +153,8 @@ public class AdvancedWifiSettings extends SettingsPreferenceFragment
Preference wpsPushPref = findPreference(KEY_WPS_PUSH); Preference wpsPushPref = findPreference(KEY_WPS_PUSH);
wpsPushPref.setOnPreferenceClickListener(new OnPreferenceClickListener() { wpsPushPref.setOnPreferenceClickListener(new OnPreferenceClickListener() {
public boolean onPreferenceClick(Preference arg0) { public boolean onPreferenceClick(Preference arg0) {
WpsDialog wpsDialog = new WpsDialog(context, WpsInfo.PBC); WpsFragment wpsFragment = new WpsFragment(WpsInfo.PBC);
wpsDialog.show(); wpsFragment.show(getFragmentManager(), KEY_WPS_PUSH);
return true; return true;
} }
}); });
@@ -161,8 +163,8 @@ public class AdvancedWifiSettings extends SettingsPreferenceFragment
Preference wpsPinPref = findPreference(KEY_WPS_PIN); Preference wpsPinPref = findPreference(KEY_WPS_PIN);
wpsPinPref.setOnPreferenceClickListener(new OnPreferenceClickListener(){ wpsPinPref.setOnPreferenceClickListener(new OnPreferenceClickListener(){
public boolean onPreferenceClick(Preference arg0) { public boolean onPreferenceClick(Preference arg0) {
WpsDialog wpsDialog = new WpsDialog(context, WpsInfo.DISPLAY); WpsFragment wpsFragment = new WpsFragment(WpsInfo.DISPLAY);
wpsDialog.show(); wpsFragment.show(getFragmentManager(), KEY_WPS_PIN);
return true; return true;
} }
}); });
@@ -315,4 +317,24 @@ public class AdvancedWifiSettings extends SettingsPreferenceFragment
wifiIpAddressPref.setSelectable(false); wifiIpAddressPref.setSelectable(false);
} }
/* Wrapper class for the WPS dialog to properly handle life cycle events like rotation. */
public static class WpsFragment extends DialogFragment {
private static int mWpsSetup;
// Public default constructor is required for rotation.
public WpsFragment() {
super();
}
public WpsFragment(int wpsSetup) {
super();
mWpsSetup = wpsSetup;
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
return new WpsDialog(getActivity(), mWpsSetup);
}
}
} }