Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bbca2cef authored by Chia-chi Yeh's avatar Chia-chi Yeh Committed by Android (Google) Code Review
Browse files

Merge "VpnDialogs: fix screen flickering when popping up dialogs."

parents d4e34d61 ae380fb8
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -5,7 +5,7 @@
    <application android:label="VpnDialogs"
            android:allowBackup="false" >
        <activity android:name=".ConfirmDialog"
                android:theme="@style/transparent">
                android:theme="@*android:style/Theme.Holo.Dialog.Alert">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.DEFAULT"/>
@@ -13,7 +13,7 @@
        </activity>

        <activity android:name=".ManageDialog"
                android:theme="@style/transparent"
                android:theme="@*android:style/Theme.Holo.Dialog.Alert"
                android:noHistory="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
+0 −7
Original line number Diff line number Diff line
@@ -15,13 +15,6 @@
-->

<resources>

    <style name="transparent">
        <item name="android:windowBackground">@android:color/transparent</item>
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowIsFloating">true</item>
    </style>

    <style name="label">
        <item name="android:gravity">center_vertical|right</item>
        <item name="android:paddingRight">2mm</item>
+17 −29
Original line number Diff line number Diff line
@@ -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();
    }
}
+20 −35
Original line number Diff line number Diff line
@@ -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) {
@@ -139,16 +129,11 @@ 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",