Fix WPS dialog reset while device orientation change
Fixed WPS dialog reset to default upon device orientation change by restoring instance state cherry-picked from partner:klp-wireless-dev SHA1 a85fb02ba1357cde3017e5e0705d3792332bf999 Bug: 13231785 Change-Id: Ic63b14da9d0d9856150214bfc194f6dfcb431087
This commit is contained in:
@@ -27,7 +27,6 @@ import android.net.wifi.WifiManager;
|
|||||||
import android.net.wifi.WpsInfo;
|
import android.net.wifi.WpsInfo;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.Message;
|
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.widget.Button;
|
import android.widget.Button;
|
||||||
import android.widget.ProgressBar;
|
import android.widget.ProgressBar;
|
||||||
@@ -45,6 +44,8 @@ import com.android.settings.R;
|
|||||||
public class WpsDialog extends AlertDialog {
|
public class WpsDialog extends AlertDialog {
|
||||||
|
|
||||||
private final static String TAG = "WpsDialog";
|
private final static String TAG = "WpsDialog";
|
||||||
|
private static final String DIALOG_STATE = "android:dialogState";
|
||||||
|
private static final String DIALOG_MSG_STRING = "android:dialogMsg";
|
||||||
|
|
||||||
private View mView;
|
private View mView;
|
||||||
private TextView mTextView;
|
private TextView mTextView;
|
||||||
@@ -64,6 +65,7 @@ public class WpsDialog extends AlertDialog {
|
|||||||
|
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
private Handler mHandler = new Handler();
|
private Handler mHandler = new Handler();
|
||||||
|
private String mMsgString = "";
|
||||||
|
|
||||||
private enum DialogState {
|
private enum DialogState {
|
||||||
WPS_INIT,
|
WPS_INIT,
|
||||||
@@ -128,6 +130,25 @@ public class WpsDialog extends AlertDialog {
|
|||||||
handleEvent(context, intent);
|
handleEvent(context, intent);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
setCanceledOnTouchOutside(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Bundle onSaveInstanceState () {
|
||||||
|
Bundle bundle = super.onSaveInstanceState();
|
||||||
|
bundle.putString(DIALOG_STATE, mDialogState.toString());
|
||||||
|
bundle.putString(DIALOG_MSG_STRING, mMsgString.toString());
|
||||||
|
return bundle;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onRestoreInstanceState(Bundle savedInstanceState) {
|
||||||
|
if (savedInstanceState != null) {
|
||||||
|
super.onRestoreInstanceState(savedInstanceState);
|
||||||
|
DialogState dialogState = mDialogState.valueOf(savedInstanceState.getString(DIALOG_STATE));
|
||||||
|
String msg = savedInstanceState.getString(DIALOG_MSG_STRING);
|
||||||
|
updateDialog(dialogState, msg);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -207,6 +228,7 @@ public class WpsDialog extends AlertDialog {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
mDialogState = state;
|
mDialogState = state;
|
||||||
|
mMsgString = msg;
|
||||||
|
|
||||||
mHandler.post(new Runnable() {
|
mHandler.post(new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
|
Reference in New Issue
Block a user