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

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);
}
}