diff options
author | Chia-chi Yeh <chiachi@android.com> | 2012-01-23 18:33:26 -0800 |
---|---|---|
committer | Chia-chi Yeh <chiachi@android.com> | 2012-01-23 18:33:26 -0800 |
commit | ae380fb89dedaa03597d031370a18aa153a6a645 (patch) | |
tree | 131f1b0038dd25d80323a72fb9ab015e1d34133c /packages/VpnDialogs/src | |
parent | eda775cc89b862e0637af132d78168e1b28820f8 (diff) | |
download | frameworks_base-ae380fb89dedaa03597d031370a18aa153a6a645.zip frameworks_base-ae380fb89dedaa03597d031370a18aa153a6a645.tar.gz frameworks_base-ae380fb89dedaa03597d031370a18aa153a6a645.tar.bz2 |
VpnDialogs: fix screen flickering when popping up dialogs.
Bug: 5699057
Change-Id: Iad1b32cafa32f98b27b6c96a63e1e9d97908983a
Diffstat (limited to 'packages/VpnDialogs/src')
-rw-r--r-- | packages/VpnDialogs/src/com/android/vpndialogs/ConfirmDialog.java | 46 | ||||
-rw-r--r-- | packages/VpnDialogs/src/com/android/vpndialogs/ManageDialog.java | 55 |
2 files changed, 37 insertions, 64 deletions
diff --git a/packages/VpnDialogs/src/com/android/vpndialogs/ConfirmDialog.java b/packages/VpnDialogs/src/com/android/vpndialogs/ConfirmDialog.java index c7b4a5f..13d8019 100644 --- a/packages/VpnDialogs/src/com/android/vpndialogs/ConfirmDialog.java +++ b/packages/VpnDialogs/src/com/android/vpndialogs/ConfirmDialog.java @@ -16,8 +16,6 @@ package com.android.vpndialogs; -import android.app.Activity; -import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; @@ -32,15 +30,16 @@ import android.widget.CompoundButton; import android.widget.ImageView; import android.widget.TextView; -public class ConfirmDialog extends Activity implements CompoundButton.OnCheckedChangeListener, - DialogInterface.OnClickListener, DialogInterface.OnDismissListener { +import com.android.internal.app.AlertActivity; + +public class ConfirmDialog extends AlertActivity implements + CompoundButton.OnCheckedChangeListener, DialogInterface.OnClickListener { private static final String TAG = "VpnConfirm"; private String mPackage; private IConnectivityManager mService; - private AlertDialog mDialog; private Button mButton; @Override @@ -67,18 +66,17 @@ public class ConfirmDialog extends Activity implements CompoundButton.OnCheckedC getString(R.string.prompt, app.loadLabel(pm))); ((CompoundButton) view.findViewById(R.id.check)).setOnCheckedChangeListener(this); - mDialog = new AlertDialog.Builder(this) - .setIcon(android.R.drawable.ic_dialog_alert) - .setTitle(android.R.string.dialog_alert_title) - .setView(view) - .setPositiveButton(android.R.string.ok, this) - .setNegativeButton(android.R.string.cancel, this) - .setCancelable(false) - .create(); - mDialog.setOnDismissListener(this); - mDialog.show(); - - mButton = mDialog.getButton(DialogInterface.BUTTON_POSITIVE); + mAlertParams.mIconId = android.R.drawable.ic_dialog_alert; + mAlertParams.mTitle = getText(android.R.string.dialog_alert_title); + mAlertParams.mPositiveButtonText = getText(android.R.string.ok); + mAlertParams.mPositiveButtonListener = this; + mAlertParams.mNegativeButtonText = getText(android.R.string.cancel); + mAlertParams.mNegativeButtonListener = this; + mAlertParams.mView = view; + setupAlert(); + + getWindow().setCloseOnTouchOutside(false); + mButton = mAlert.getButton(DialogInterface.BUTTON_POSITIVE); mButton.setEnabled(false); } catch (Exception e) { Log.e(TAG, "onResume", e); @@ -87,12 +85,7 @@ public class ConfirmDialog extends Activity implements CompoundButton.OnCheckedC } @Override - protected void onPause() { - super.onPause(); - if (mDialog != null) { - mDialog.setOnDismissListener(null); - mDialog.dismiss(); - } + public void onBackPressed() { } @Override @@ -103,16 +96,11 @@ public class ConfirmDialog extends Activity implements CompoundButton.OnCheckedC @Override public void onClick(DialogInterface dialog, int which) { try { - if (which == AlertDialog.BUTTON_POSITIVE && mService.prepareVpn(null, mPackage)) { + if (which == DialogInterface.BUTTON_POSITIVE && mService.prepareVpn(null, mPackage)) { setResult(RESULT_OK); } } catch (Exception e) { Log.e(TAG, "onClick", e); } } - - @Override - public void onDismiss(DialogInterface dialog) { - finish(); - } } diff --git a/packages/VpnDialogs/src/com/android/vpndialogs/ManageDialog.java b/packages/VpnDialogs/src/com/android/vpndialogs/ManageDialog.java index 7fb1417..2de0251 100644 --- a/packages/VpnDialogs/src/com/android/vpndialogs/ManageDialog.java +++ b/packages/VpnDialogs/src/com/android/vpndialogs/ManageDialog.java @@ -16,8 +16,6 @@ package com.android.vpndialogs; -import android.app.Activity; -import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; @@ -35,20 +33,20 @@ import android.widget.CompoundButton; import android.widget.ImageView; import android.widget.TextView; +import com.android.internal.app.AlertActivity; import com.android.internal.net.VpnConfig; import java.io.DataInputStream; import java.io.FileInputStream; -public class ManageDialog extends Activity implements Handler.Callback, - DialogInterface.OnClickListener, DialogInterface.OnDismissListener { +public class ManageDialog extends AlertActivity implements + DialogInterface.OnClickListener, Handler.Callback { private static final String TAG = "VpnManage"; private VpnConfig mConfig; private IConnectivityManager mService; - private AlertDialog mDialog; private TextView mDuration; private TextView mDataTransmitted; private TextView mDataReceived; @@ -80,31 +78,24 @@ public class ManageDialog extends Activity implements Handler.Callback, mDataReceived = (TextView) view.findViewById(R.id.data_received); if (mConfig.user.equals(VpnConfig.LEGACY_VPN)) { - mDialog = new AlertDialog.Builder(this) - .setIcon(android.R.drawable.ic_dialog_info) - .setTitle(R.string.legacy_title) - .setView(view) - .setNeutralButton(R.string.disconnect, this) - .setNegativeButton(android.R.string.cancel, this) - .create(); + mAlertParams.mIconId = android.R.drawable.ic_dialog_info; + mAlertParams.mTitle = getText(R.string.legacy_title); } else { PackageManager pm = getPackageManager(); ApplicationInfo app = pm.getApplicationInfo(mConfig.user, 0); - mDialog = new AlertDialog.Builder(this) - .setIcon(app.loadIcon(pm)) - .setTitle(app.loadLabel(pm)) - .setView(view) - .setNeutralButton(R.string.disconnect, this) - .setNegativeButton(android.R.string.cancel, this) - .create(); + mAlertParams.mIcon = app.loadIcon(pm); + mAlertParams.mTitle = app.loadLabel(pm); } - if (mConfig.configureIntent != null) { - mDialog.setButton(DialogInterface.BUTTON_POSITIVE, - getText(R.string.configure), this); + mAlertParams.mPositiveButtonText = getText(R.string.configure); + mAlertParams.mPositiveButtonListener = this; } - mDialog.setOnDismissListener(this); - mDialog.show(); + mAlertParams.mNeutralButtonText = getText(R.string.disconnect); + mAlertParams.mNeutralButtonListener = this; + mAlertParams.mNegativeButtonText = getText(android.R.string.cancel); + mAlertParams.mNegativeButtonListener = this; + mAlertParams.mView = view; + setupAlert(); if (mHandler == null) { mHandler = new Handler(this); @@ -119,18 +110,17 @@ public class ManageDialog extends Activity implements Handler.Callback, @Override protected void onPause() { super.onPause(); - if (mDialog != null) { - mDialog.setOnDismissListener(null); - mDialog.dismiss(); + if (!isFinishing()) { + finish(); } } @Override public void onClick(DialogInterface dialog, int which) { try { - if (which == AlertDialog.BUTTON_POSITIVE) { + if (which == DialogInterface.BUTTON_POSITIVE) { mConfig.configureIntent.send(); - } else if (which == AlertDialog.BUTTON_NEUTRAL) { + } else if (which == DialogInterface.BUTTON_NEUTRAL) { mService.prepareVpn(mConfig.user, VpnConfig.LEGACY_VPN); } } catch (Exception e) { @@ -140,15 +130,10 @@ public class ManageDialog extends Activity implements Handler.Callback, } @Override - public void onDismiss(DialogInterface dialog) { - finish(); - } - - @Override public boolean handleMessage(Message message) { mHandler.removeMessages(0); - if (mDialog.isShowing()) { + if (!isFinishing()) { if (mConfig.startTime != 0) { long seconds = (SystemClock.elapsedRealtime() - mConfig.startTime) / 1000; mDuration.setText(String.format("%02d:%02d:%02d", |