You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
99 lines
3.1 KiB
Java
99 lines
3.1 KiB
Java
package com.rehome.dywoa.vpn;
|
|
|
|
|
|
import android.app.Activity;
|
|
import android.app.AlertDialog;
|
|
import android.content.DialogInterface;
|
|
import android.graphics.Color;
|
|
import android.widget.Button;
|
|
|
|
import com.rehome.dywoa.R;
|
|
import com.sangfor.sdk.entry.SFLaunchInfo;
|
|
|
|
|
|
/**
|
|
* 是否给子应用授权弹窗
|
|
*/
|
|
public class AuthSessionDialog {
|
|
|
|
private Activity mActivity;
|
|
|
|
private DialogClickListener mClickListener;
|
|
|
|
private AlertDialog mDialog;
|
|
private SFLaunchInfo mSFLaunchInfo;
|
|
|
|
public void setClickListener(DialogClickListener clickListener) {
|
|
mClickListener = clickListener;
|
|
}
|
|
|
|
public AuthSessionDialog(Activity activity, SFLaunchInfo launchInfo) {
|
|
mActivity = activity;
|
|
mSFLaunchInfo = launchInfo;
|
|
}
|
|
|
|
public void show() {
|
|
if (mDialog == null) {
|
|
String hostAppName = AppInfoUtils.getApplicationName(mActivity);
|
|
String subAppName = AppInfoUtils.getApplicationName(mActivity, mSFLaunchInfo.getPackageName());
|
|
String dialogMessage = String.format(mActivity.getString(R.string.request_session_can_you_agree), subAppName, hostAppName);
|
|
|
|
mDialog = new AlertDialog.Builder(mActivity)
|
|
.setMessage(dialogMessage)
|
|
.setCancelable(false)
|
|
.setPositiveButton(mActivity.getString(R.string.agree), new DialogInterface.OnClickListener() {
|
|
@Override
|
|
public void onClick(DialogInterface dialog, int which) {
|
|
dismiss();
|
|
|
|
if (mClickListener != null) {
|
|
mClickListener.onPositiveClick(mSFLaunchInfo);
|
|
}
|
|
}
|
|
})
|
|
.setNegativeButton(mActivity.getString(R.string.disagree), new DialogInterface.OnClickListener() {
|
|
@Override
|
|
public void onClick(DialogInterface dialog, int which) {
|
|
dismiss();
|
|
|
|
if (mClickListener != null) {
|
|
mClickListener.onNegativeClick(mSFLaunchInfo);
|
|
}
|
|
}
|
|
})
|
|
.create();
|
|
}
|
|
|
|
mDialog.show();
|
|
//确定按钮
|
|
Button btnPos = mDialog.getButton(DialogInterface.BUTTON_POSITIVE);
|
|
//取消按钮
|
|
Button btnNeg = mDialog.getButton(DialogInterface.BUTTON_NEGATIVE);
|
|
btnPos.setTextColor(Color.BLACK);
|
|
btnNeg.setTextColor(Color.BLACK);
|
|
}
|
|
|
|
public void dismiss() {
|
|
if (mDialog != null && mDialog.isShowing()) {
|
|
mDialog.dismiss();
|
|
}
|
|
}
|
|
|
|
public boolean isShowing() {
|
|
if (mDialog != null) {
|
|
return mDialog.isShowing();
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
public SFLaunchInfo getSFLaunchInfo() {
|
|
return mSFLaunchInfo;
|
|
}
|
|
|
|
public interface DialogClickListener {
|
|
void onPositiveClick(SFLaunchInfo launchInfo);
|
|
void onNegativeClick(SFLaunchInfo launchInfo);
|
|
}
|
|
}
|