diff --git a/app/src/main/java/com/gh/common/util/DialogUtils.java b/app/src/main/java/com/gh/common/util/DialogUtils.java index 33b038b6e0..7b7b543925 100644 --- a/app/src/main/java/com/gh/common/util/DialogUtils.java +++ b/app/src/main/java/com/gh/common/util/DialogUtils.java @@ -38,6 +38,7 @@ import com.gh.gamecenter.WebActivity; import com.gh.gamecenter.kuaichuan.WifiMgr; import com.gh.gamecenter.kuaichuan.view.KcSelectGameActivity; import com.halo.assistant.HaloApp; +import com.lightgame.utils.AppManager; import com.lightgame.utils.Utils; import java.io.File; @@ -50,12 +51,12 @@ import java.util.Map; public class DialogUtils { - private static boolean isShow = false; - public static Dialog showWaitDialog(Context context, String msg) { + context = checkDialogContext(context); + Dialog dialog = new Dialog(context); View view = View.inflate(context, R.layout.set_wait_dialog, null); - TextView message = (TextView) view.findViewById(R.id.set_wait_message); + TextView message = view.findViewById(R.id.set_wait_message); message.setText(msg); dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); dialog.setContentView(view); @@ -74,27 +75,23 @@ public class DialogUtils { WifiMgr.getInstance(activity).disconnectCurrentNetwork(); // 断开当前WiFi -// int heightPixels = getContext().getResources().getDisplayMetrics().heightPixels; -// int widthPixels = getContext().getResources().getDisplayMetrics().widthPixels; - int filesCount = mapList.size(); int filesSize = 0; int sendTime = 0; View view = View.inflate(activity, R.layout.dialog_kuaichuan, null); - final LinearLayout mShareLl = (LinearLayout) view.findViewById(R.id.kuaichuan_dialog_ll); - final LinearLayout mShareBottomLl = (LinearLayout) view.findViewById(R.id.kuaichuan_dialog_share_rl); - LinearLayout shareIconLl = (LinearLayout) view.findViewById(R.id.kuaichuan_icon_ll); - ImageView qrCode = (ImageView) view.findViewById(R.id.kuaichuan_qrcode); - TextView dateTv = (TextView) view.findViewById(R.id.kuaichuan_dialog_date); - TextView countTv = (TextView) view.findViewById(R.id.kuaichuan_send_count); - TextView sizeTv = (TextView) view.findViewById(R.id.kuaichuan_send_size); - TextView speedTv = (TextView) view.findViewById(R.id.kuaichuan_send_speed); - TextView timeCount = (TextView) view.findViewById(R.id.kuaichuan_time_count); - TextView timeTv = (TextView) view.findViewById(R.id.kuaichuan_time_tv); - TextView sendCountTv = (TextView) view.findViewById(R.id.dialog_send_tv); - ImageView closeIv = (ImageView) view.findViewById(R.id.kuaichuan_dialog_colse); -// content.setLayoutParams(new LinearLayout.LayoutParams((int)(((float)heightPixels)*0.85), (int)((float)widthPixels*0.81))); + final LinearLayout mShareLl = view.findViewById(R.id.kuaichuan_dialog_ll); + final LinearLayout mShareBottomLl = view.findViewById(R.id.kuaichuan_dialog_share_rl); + LinearLayout shareIconLl = view.findViewById(R.id.kuaichuan_icon_ll); + ImageView qrCode = view.findViewById(R.id.kuaichuan_qrcode); + TextView dateTv = view.findViewById(R.id.kuaichuan_dialog_date); + TextView countTv = view.findViewById(R.id.kuaichuan_send_count); + TextView sizeTv = view.findViewById(R.id.kuaichuan_send_size); + TextView speedTv = view.findViewById(R.id.kuaichuan_send_speed); + TextView timeCount = view.findViewById(R.id.kuaichuan_time_count); + TextView timeTv = view.findViewById(R.id.kuaichuan_time_tv); + TextView sendCountTv = view.findViewById(R.id.dialog_send_tv); + ImageView closeIv = view.findViewById(R.id.kuaichuan_dialog_colse); final Dialog dialog = new Dialog(activity); dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); @@ -196,24 +193,16 @@ public class DialogUtils { countTv.setText(filesCount + "个"); // 延迟操作,等待截图部分绘制完成 - handler.postDelayed(new Runnable() { - @Override - public void run() { - mShareLl.setDrawingCacheEnabled(true); - mShareLl.buildDrawingCache(); - Bitmap drawingCache = mShareLl.getDrawingCache(); - saveBitmap(drawingCache, activity, picName); - MessageShareUtils.getInstance(activity).showShareWindows(activity, mShareBottomLl, drawingCache, picName, 2); - mShareBottomLl.setVisibility(View.VISIBLE); - } + handler.postDelayed(() -> { + mShareLl.setDrawingCacheEnabled(true); + mShareLl.buildDrawingCache(); + Bitmap drawingCache = mShareLl.getDrawingCache(); + saveBitmap(drawingCache, activity, picName); + MessageShareUtils.getInstance(activity).showShareWindows(activity, mShareBottomLl, drawingCache, picName, 2); + mShareBottomLl.setVisibility(View.VISIBLE); }, 200); - closeIv.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - dialog.cancel(); - } - }); + closeIv.setOnClickListener(v -> dialog.cancel()); } public static void saveBitmap(Bitmap bm, Activity activity, String picName) { @@ -233,108 +222,81 @@ public class DialogUtils { } public static void showInstallHintDialog(Context context, final ConfirmListener cmListener) { - + context = checkDialogContext(context); final Dialog dialog = new Dialog(context); View view = View.inflate(context, R.layout.dialog_install_hint, null); // 标题 - TextView alertdialog_title = (TextView) view.findViewById(R.id.installhint_title); + TextView alertdialog_title = view.findViewById(R.id.installhint_title); alertdialog_title.setText("重要提示"); Spanned content = Html.fromHtml("如果您使用的是" + "华为" + "或" + "OPPO" + "手机,安装游戏时请选择“" + "继续安装" + "”(记住不要选择“官方推荐”或“软件商店安装”)"); // 内容 - TextView alertdialog_content = (TextView) view.findViewById(R.id.installhint_content); + TextView alertdialog_content = view.findViewById(R.id.installhint_content); alertdialog_content.setText(content); // 确定按钮 - TextView installhint_confirm = (TextView) view.findViewById(R.id.installhint_confirm); + TextView installhint_confirm = view.findViewById(R.id.installhint_confirm); installhint_confirm.setText("知道了"); - final ImageView installhint_unselect = (ImageView) view.findViewById(R.id.installhint_unselect); - final ImageView installhint_select = (ImageView) view.findViewById(R.id.installhint_select); + final ImageView installhint_unselect = view.findViewById(R.id.installhint_unselect); + final ImageView installhint_select = view.findViewById(R.id.installhint_select); - LinearLayout installhint_unselect_ll = (LinearLayout) view.findViewById(R.id.installhint_unselect_ll); + LinearLayout installhint_unselect_ll = view.findViewById(R.id.installhint_unselect_ll); - installhint_unselect_ll.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - if (installhint_unselect.getVisibility() == View.GONE) { - installhint_unselect.setVisibility(View.VISIBLE); - installhint_select.setVisibility(View.GONE); - } else { - installhint_unselect.setVisibility(View.GONE); - installhint_select.setVisibility(View.VISIBLE); - } + installhint_unselect_ll.setOnClickListener(v -> { + if (installhint_unselect.getVisibility() == View.GONE) { + installhint_unselect.setVisibility(View.VISIBLE); + installhint_select.setVisibility(View.GONE); + } else { + installhint_unselect.setVisibility(View.GONE); + installhint_select.setVisibility(View.VISIBLE); } }); - installhint_confirm.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - dialog.dismiss(); - if (installhint_select.getVisibility() == View.VISIBLE) { - if (cmListener != null) { - cmListener.onConfirm(); - } + installhint_confirm.setOnClickListener(v -> { + dialog.dismiss(); + if (installhint_select.getVisibility() == View.VISIBLE) { + if (cmListener != null) { + cmListener.onConfirm(); } } }); - dialog.setOnDismissListener(new Dialog.OnDismissListener() { - @Override - public void onDismiss(DialogInterface dialog) { - isShow = false; - } - }); - dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); dialog.setContentView(view); dialog.show(); } public static void showHintDialog(Context context, String title, CharSequence msg, String confirm) { + context = checkDialogContext(context); + final Dialog dialog = new Dialog(context); View view = View.inflate(context, R.layout.common_hintdialog, null); - TextView hintdialog_title = (TextView) view.findViewById(R.id.tv_dialog_hint_title); + TextView hintdialog_title = view.findViewById(R.id.tv_dialog_hint_title); hintdialog_title.setText(title); // 内容 - TextView hintdialog_content = (TextView) view.findViewById(R.id.tv_dialog_hint_content); + TextView hintdialog_content = view.findViewById(R.id.tv_dialog_hint_content); hintdialog_content.setText(msg); - TextView hintdialog_confirm = (TextView) view.findViewById(R.id.tv_dialog_hint_confirm); + TextView hintdialog_confirm = view.findViewById(R.id.tv_dialog_hint_confirm); hintdialog_confirm.setText(confirm); - hintdialog_confirm.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - dialog.cancel(); - } - }); + hintdialog_confirm.setOnClickListener(v -> dialog.cancel()); dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); dialog.setContentView(view); dialog.show(); } - public static void showHijackDialog(final Context context) { - showWarningDialog(context, "警告", "您当前网络环境异常,下载地址已被替换(网络劫持),请更换网络环境进行下载。", - new ConfirmListener() { - @Override - public void onConfirm() { - // 跳转wifi管理界面 - context.startActivity(IntentUtils.getWifiIntent()); - } - }); - } - public static void showWarningDialog(Context context, String title, CharSequence msg, final ConfirmListener listener) { if (!(context instanceof Activity)) { return; @@ -352,12 +314,7 @@ public class DialogUtils { public static void showQqSessionDialog(final Context context, final String qq) { showWarningDialog(context, "警告", "您当前网络环境异常,下载地址可能被运营商恶意替换(网络劫持)" + ",如多次下载失败,请联系客服获取正确的下载地址(客服QQ:" + qq + ")" - , "取消", "前往QQ", new ConfirmListener() { - @Override - public void onConfirm() { - DirectUtils.directToQqConversation(context, qq); - } - }, null); + , "取消", "前往QQ", () -> DirectUtils.directToQqConversation(context, qq), null); } public static void checkDownload(Context context, String size, CheckDownloadCallBack callBack) { @@ -453,6 +410,7 @@ public class DialogUtils { */ public static Dialog showAlertDialog(Context context, String title, CharSequence message , String positive, String negative, final ConfirmListener cmListener, final CancelListener clListener) { + context = checkDialogContext(context); final Dialog dialog = new Dialog(context, R.style.GhAlertDialog); @@ -471,24 +429,18 @@ public class DialogUtils { negativeTv.setText(negative); positiveTv.setText(positive); - negativeTv.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - if (clListener != null) { - clListener.onCancel(); - } - dialog.dismiss(); + negativeTv.setOnClickListener(view -> { + if (clListener != null) { + clListener.onCancel(); } + dialog.dismiss(); }); - positiveTv.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - if (cmListener != null) { - cmListener.onConfirm(); - } - dialog.dismiss(); + positiveTv.setOnClickListener(view -> { + if (cmListener != null) { + cmListener.onConfirm(); } + dialog.dismiss(); }); dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); @@ -499,6 +451,7 @@ public class DialogUtils { public static Dialog showAlertDialog(Context context, String title, Spanned message , String positive, String negative, final ConfirmListener cmListener, final CancelListener clListener) { + context = checkDialogContext(context); final Dialog dialog = new Dialog(context, R.style.GhAlertDialog); @@ -512,24 +465,18 @@ public class DialogUtils { negativeTv.setText(negative); positiveTv.setText(positive); - negativeTv.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - if (clListener != null) { - clListener.onCancel(); - } - dialog.dismiss(); + negativeTv.setOnClickListener(view -> { + if (clListener != null) { + clListener.onCancel(); } + dialog.dismiss(); }); - positiveTv.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - if (cmListener != null) { - cmListener.onConfirm(); - } - dialog.dismiss(); + positiveTv.setOnClickListener(view -> { + if (cmListener != null) { + cmListener.onConfirm(); } + dialog.dismiss(); }); dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); @@ -540,6 +487,7 @@ public class DialogUtils { public static Dialog showDialogWithHtmlContent(Context context, String title, String content , String positive, String negative, final ConfirmListener cmListener, final CancelListener clListener) { + context = checkDialogContext(context); final Dialog dialog = new Dialog(context, R.style.GhAlertDialog); @@ -586,6 +534,7 @@ public class DialogUtils { public static void showCancelAlertDialog(Context context, String title, CharSequence message , String positive, String negative, final ConfirmListener cmListener, final CancelListener clListener) { + context = checkDialogContext(context); final Dialog dialog = new Dialog(context, R.style.GhAlertDialog); @@ -601,24 +550,18 @@ public class DialogUtils { negativeTv.setTextColor(ContextCompat.getColor(context, R.color.hint)); positiveTv.setText(positive); - negativeTv.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - if (clListener != null) { - clListener.onCancel(); - } - dialog.dismiss(); + negativeTv.setOnClickListener(view -> { + if (clListener != null) { + clListener.onCancel(); } + dialog.dismiss(); }); - positiveTv.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - if (cmListener != null) { - cmListener.onConfirm(); - } - dialog.dismiss(); + positiveTv.setOnClickListener(view -> { + if (cmListener != null) { + cmListener.onConfirm(); } + dialog.dismiss(); }); dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); @@ -633,7 +576,7 @@ public class DialogUtils { */ public static void showCancelListenerDialog(Context context, String title, CharSequence message , String positive, String negative, final ConfirmListener cmListener, final CancelListener clListener) { - + context = checkDialogContext(context); final Dialog dialog = new Dialog(context, R.style.GhAlertDialog); @@ -659,24 +602,18 @@ public class DialogUtils { } }); - positiveTv.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - if (cmListener != null) { - cmListener.onConfirm(); - } - dialog.dismiss(); + positiveTv.setOnClickListener(view -> { + if (cmListener != null) { + cmListener.onConfirm(); } + dialog.dismiss(); }); dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); dialog.setContentView(contentView); - dialog.setOnCancelListener(new DialogInterface.OnCancelListener() { - @Override - public void onCancel(DialogInterface dialogInterface) { - if (clListener != null) - clListener.onCancel(); - } + dialog.setOnCancelListener(dialogInterface -> { + if (clListener != null) + clListener.onCancel(); }); dialog.show(); @@ -690,6 +627,7 @@ public class DialogUtils { */ public static void showPermissionDialog(Context context, String title, CharSequence message , String positive, String negative, final ConfirmListener cmListener, final CancelListener clListener) { + context = checkDialogContext(context); final Dialog dialog = new Dialog(context, R.style.GhAlertDialog); @@ -705,24 +643,18 @@ public class DialogUtils { negativeTv.setTextColor(ContextCompat.getColor(context, R.color.hint)); positiveTv.setText(positive); - negativeTv.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - if (clListener != null) { - clListener.onCancel(); - } - dialog.dismiss(); + negativeTv.setOnClickListener(view -> { + if (clListener != null) { + clListener.onCancel(); } + dialog.dismiss(); }); - positiveTv.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - if (cmListener != null) { - cmListener.onConfirm(); - } - dialog.dismiss(); + positiveTv.setOnClickListener(view -> { + if (cmListener != null) { + cmListener.onConfirm(); } + dialog.dismiss(); }); dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); @@ -737,6 +669,7 @@ public class DialogUtils { */ public static void showForceDialog(Context context, String title, CharSequence message , String positive, String negative, final ConfirmListener cmListener, final CancelListener clListener) { + context = checkDialogContext(context); final Dialog dialog = new Dialog(context, R.style.GhAlertDialog); @@ -751,24 +684,18 @@ public class DialogUtils { negativeTv.setText(negative); positiveTv.setText(positive); - negativeTv.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - if (clListener != null) { - clListener.onCancel(); - } - dialog.dismiss(); + negativeTv.setOnClickListener(view -> { + if (clListener != null) { + clListener.onCancel(); } + dialog.dismiss(); }); - positiveTv.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View view) { - if (cmListener != null) { - cmListener.onConfirm(); - } - dialog.dismiss(); + positiveTv.setOnClickListener(view -> { + if (cmListener != null) { + cmListener.onConfirm(); } + dialog.dismiss(); }); dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); @@ -791,12 +718,9 @@ public class DialogUtils { AlertDialog alertDialog = new AlertDialog.Builder(context, R.style.GhAlertDialog) .setTitle("请确定手机号:") .setMessage(phoneNum) - .setPositiveButton("确认", new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - if (cmListener != null) { - cmListener.onConfirm(); - } + .setPositiveButton("确认", (dialog, which) -> { + if (cmListener != null) { + cmListener.onConfirm(); } }) .setNegativeButton("取消", null) @@ -823,6 +747,8 @@ public class DialogUtils { public static void showSignDialog(Context context, String title, CharSequence message, CharSequence message2 , String positive, final ConfirmListener cmListener) { + context = checkDialogContext(context); + final Dialog dialog = new Dialog(context); View contentView = LayoutInflater.from(context).inflate(R.layout.dialog_sign, null); @@ -852,9 +778,11 @@ public class DialogUtils { } public static void showLowVersionDialog(Context context) { - final Dialog dialog = new Dialog(context, R.style.GhAlertDialog); + final Context activityContext = checkDialogContext(context); - View contentView = LayoutInflater.from(context).inflate(R.layout.dialog_alert, null); + final Dialog dialog = new Dialog(activityContext, R.style.GhAlertDialog); + + View contentView = LayoutInflater.from(activityContext).inflate(R.layout.dialog_alert, null); TextView contentTv = contentView.findViewById(R.id.dialog_content); TextView titleTv = contentView.findViewById(R.id.dialog_title); TextView negativeTv = contentView.findViewById(R.id.dialog_negative); @@ -868,7 +796,7 @@ public class DialogUtils { negativeTv.setOnClickListener(view -> dialog.dismiss()); positiveTv.setOnClickListener(view -> { - context.startActivity(AboutActivity.getIntent(context, true)); + activityContext.startActivity(AboutActivity.getIntent(activityContext, true)); dialog.dismiss(); }); @@ -898,6 +826,8 @@ public class DialogUtils { List options, List disabledOptions, OptionCallback callback) { + context = checkDialogContext(context); + Dialog dialog = new Dialog(context); LinearLayout container = new LinearLayout(context); @@ -945,6 +875,7 @@ public class DialogUtils { String positive, final CancelListener clListener, final ConfirmListener cmListener) { + context = checkDialogContext(context); final Dialog dialog = new Dialog(context, R.style.GhAlertDialog); @@ -994,6 +925,7 @@ public class DialogUtils { } public static void showPrivacyPolicyDialog(Context context, String content) { + final Context activityContext = checkDialogContext(context); String privacyPolicyContent; if (TextUtils.isEmpty(content)) { @@ -1009,9 +941,9 @@ public class DialogUtils { privacyPolicyContent = content; } - final Dialog dialog = new Dialog(context, R.style.GhAlertDialog); + final Dialog dialog = new Dialog(activityContext, R.style.GhAlertDialog); - View contentView = LayoutInflater.from(context).inflate(R.layout.dialog_privacy_policy, null); + View contentView = LayoutInflater.from(activityContext).inflate(R.layout.dialog_privacy_policy, null); TextView contentTv = contentView.findViewById(R.id.dialog_content); TextView titleTv = contentView.findViewById(R.id.dialog_title); TextView positiveTv = contentView.findViewById(R.id.dialog_positive); @@ -1023,14 +955,14 @@ public class DialogUtils { @Override public void updateDrawState(@NonNull TextPaint ds) { super.updateDrawState(ds); - ds.setColor(ContextCompat.getColor(context, R.color.theme)); + ds.setColor(ContextCompat.getColor(activityContext, R.color.theme)); ds.setUnderlineText(false); } @Override public void onClick(@NonNull View widget) { - Intent intent = WebActivity.getPrivacyPolicyIntent(context); - context.startActivity(intent); + Intent intent = WebActivity.getPrivacyPolicyIntent(activityContext); + activityContext.startActivity(intent); } }, skipText.length() - 4, skipText.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); @@ -1048,6 +980,23 @@ public class DialogUtils { dialog.show(); } + /** + * @param context may be is application context + * + * @return activity context + */ + public static Context checkDialogContext(Context context) { + if (context == null) { + throw new NullPointerException("dialog context is null"); + } + + if (context instanceof Activity) { + return context; + } + + return AppManager.getInstance().currentActivity(); + } + public interface ConfirmListener { void onConfirm(); }