diff --git a/appbase/build.properties b/appbase/build.properties index 2d7d52b..bf134a9 100644 --- a/appbase/build.properties +++ b/appbase/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Sat May 23 21:03:59 HKT 2026 +#Sat May 23 21:29:59 HKT 2026 stageCount=21 libraryProject=libappbase baseVersion=15.20 publishVersion=15.20.20 -buildCount=6 +buildCount=10 baseBetaVersion=15.20.21 diff --git a/libappbase/build.properties b/libappbase/build.properties index 2d7d52b..bf134a9 100644 --- a/libappbase/build.properties +++ b/libappbase/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Sat May 23 21:03:59 HKT 2026 +#Sat May 23 21:29:59 HKT 2026 stageCount=21 libraryProject=libappbase baseVersion=15.20 publishVersion=15.20.20 -buildCount=6 +buildCount=10 baseBetaVersion=15.20.21 diff --git a/libappbase/src/main/java/cc/winboll/studio/libappbase/views/DebugSwitchInfoImageView.java b/libappbase/src/main/java/cc/winboll/studio/libappbase/views/DebugSwitchInfoImageView.java index 840ce2f..72679ed 100644 --- a/libappbase/src/main/java/cc/winboll/studio/libappbase/views/DebugSwitchInfoImageView.java +++ b/libappbase/src/main/java/cc/winboll/studio/libappbase/views/DebugSwitchInfoImageView.java @@ -1,18 +1,21 @@ package cc.winboll.studio.libappbase.views; +import android.app.AlertDialog; +import android.content.ClipData; +import android.content.ClipboardManager; import android.content.Context; +import android.content.DialogInterface; import android.content.SharedPreferences; import android.util.AttributeSet; import android.view.View; import android.widget.ImageView; -import android.widget.Toast; import java.util.UUID; import cc.winboll.studio.libappbase.GlobalApplication; /** * @Author 豆包&ZhanGSKen * @Date 2026/04/06 19:32 - * @Describe 具有调试模式切换功能的应用Logo控件,连续点击10次弹出提示 + * @Describe 应用Logo控件,连续点击6次弹出调试Token对话框,支持复制与重置 */ public class DebugSwitchInfoImageView extends ImageView { @@ -21,7 +24,7 @@ public class DebugSwitchInfoImageView extends ImageView { // 连续点击计数 private int mClickCount = 0; // 目标点击次数 - private static final int TARGET_CLICK_COUNT = 10; + private static final int TARGET_CLICK_COUNT = 7; private static String mDebugToken = null; private static final String SP_DEBUG_TOKEN = "debug_token_prefs"; @@ -43,6 +46,51 @@ public class DebugSwitchInfoImageView extends ImageView { return mDebugToken; } + public static void resetDebugToken() { + Context context = GlobalApplication.getInstance(); + if (context != null) { + mDebugToken = UUID.randomUUID().toString(); + SharedPreferences sp = context.getSharedPreferences(SP_DEBUG_TOKEN, Context.MODE_PRIVATE); + sp.edit().putString(KEY_DEBUG_TOKEN, mDebugToken).apply(); + } + } + + private void showDebugTokenDialog() { + final AlertDialog dialog = new AlertDialog.Builder(getContext()).create(); + dialog.setTitle("调试Token"); + dialog.setMessage(getDebugToken()); + dialog.setCanceledOnTouchOutside(true); + dialog.setButton(DialogInterface.BUTTON_POSITIVE, "复制到剪贴板", (DialogInterface.OnClickListener) null); + dialog.setButton(DialogInterface.BUTTON_NEUTRAL, "重置", (DialogInterface.OnClickListener) null); + dialog.setButton(DialogInterface.BUTTON_NEGATIVE, "关闭", (DialogInterface.OnClickListener) null); + dialog.setOnShowListener(new DialogInterface.OnShowListener() { + @Override + public void onShow(DialogInterface d) { + dialog.getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + ClipboardManager cm = (ClipboardManager) getContext().getSystemService(Context.CLIPBOARD_SERVICE); + cm.setPrimaryClip(ClipData.newPlainText("DebugToken", getDebugToken())); + } + }); + dialog.getButton(AlertDialog.BUTTON_NEUTRAL).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + resetDebugToken(); + dialog.setMessage(getDebugToken()); + } + }); + dialog.getButton(AlertDialog.BUTTON_NEGATIVE).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + dialog.dismiss(); + } + }); + } + }); + dialog.show(); + } + public DebugSwitchInfoImageView(Context context) { super(context); init(); @@ -68,13 +116,9 @@ public class DebugSwitchInfoImageView extends ImageView { @Override public void onClick(View v) { mClickCount++; - if (mClickCount == TARGET_CLICK_COUNT) { - // 达到10次,弹出Toast - Toast.makeText(getContext(), "连续点击已达到10次,现在开启应用调试功能。", Toast.LENGTH_SHORT).show(); - GlobalApplication.setIsDebugging(true); - GlobalApplication.saveDebugStatus(GlobalApplication.getInstance()); - // 重置计数,可再次触发 + if (mClickCount >= TARGET_CLICK_COUNT) { mClickCount = 0; + showDebugTokenDialog(); } } });