From 15d67918ff166a84bfd1a4f9ad8ab721217c3149 Mon Sep 17 00:00:00 2001 From: qinglong Date: Mon, 25 May 2026 22:00:01 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=88=E5=B9=B6=20APPBase=20=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- appbase/build.properties | 10 ++-- libappbase/build.properties | 10 ++-- .../studio/libappbase/views/AboutView.java | 59 ++++++++++++++++++- .../res/layout-night/layout_about_view.xml | 3 +- .../src/main/res/layout/layout_about_view.xml | 3 +- 5 files changed, 70 insertions(+), 15 deletions(-) diff --git a/appbase/build.properties b/appbase/build.properties index bf134a9..68642b1 100644 --- a/appbase/build.properties +++ b/appbase/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Sat May 23 21:29:59 HKT 2026 -stageCount=21 +#Tue May 12 09:17:15 HKT 2026 +stageCount=10 libraryProject=libappbase baseVersion=15.20 -publishVersion=15.20.20 -buildCount=10 -baseBetaVersion=15.20.21 +publishVersion=15.20.9 +buildCount=0 +baseBetaVersion=15.20.10 diff --git a/libappbase/build.properties b/libappbase/build.properties index bf134a9..f2d536c 100644 --- a/libappbase/build.properties +++ b/libappbase/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Sat May 23 21:29:59 HKT 2026 -stageCount=21 +#Sun May 24 09:53:05 HKT 2026 +stageCount=22 libraryProject=libappbase baseVersion=15.20 -publishVersion=15.20.20 -buildCount=10 -baseBetaVersion=15.20.21 +publishVersion=15.20.21 +buildCount=0 +baseBetaVersion=15.20.22 diff --git a/libappbase/src/main/java/cc/winboll/studio/libappbase/views/AboutView.java b/libappbase/src/main/java/cc/winboll/studio/libappbase/views/AboutView.java index 7dafdd8..633bd04 100644 --- a/libappbase/src/main/java/cc/winboll/studio/libappbase/views/AboutView.java +++ b/libappbase/src/main/java/cc/winboll/studio/libappbase/views/AboutView.java @@ -1,6 +1,8 @@ package cc.winboll.studio.libappbase.views; +import android.app.AlertDialog; import android.content.Context; +import android.content.DialogInterface; import android.content.Intent; import android.content.pm.PackageManager; import android.net.Uri; @@ -12,6 +14,7 @@ import android.widget.ImageButton; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; +import android.widget.Toast; import cc.winboll.studio.libappbase.GlobalApplication; import cc.winboll.studio.libappbase.LogUtils; import cc.winboll.studio.libappbase.R; @@ -79,7 +82,7 @@ public class AboutView extends LinearLayout { private TextView tvAppDesc; private LinearLayout llFunctionContainer; private ImageButton ibSebugStepOver; - private ImageButton ibSigngetDialog; + private ImageButton ibDebugUnlock; private ImageButton ibWinBoLLHostDialog; // ===================================== 构造方法(按参数从少到多排序) ===================================== @@ -193,12 +196,12 @@ public class AboutView extends LinearLayout { llFunctionContainer = findViewById(R.id.ll_function_container); // 功能按钮绑定 ibSebugStepOver = findViewById(R.id.ib_debug_step_over); - ibSigngetDialog = findViewById(R.id.ib_signgetdialog); + ibDebugUnlock = findViewById(R.id.ib_debug_unlock); ibWinBoLLHostDialog = findViewById(R.id.ib_winbollhostdialog); // 调试按钮统一只在调试模式显示 ibWinBoLLHostDialog.setVisibility(GlobalApplication.isDebugging() ? View.VISIBLE : View.GONE); - //ibSigngetDialog.setVisibility(GlobalApplication.isDebugging() ? View.VISIBLE : View.GONE); + //ibDebugUnlock.setVisibility(GlobalApplication.isDebugging() ? View.VISIBLE : View.GONE); ibSebugStepOver.setVisibility(GlobalApplication.isDebugging() ? View.VISIBLE : View.GONE); // 绑定按钮点击事件 @@ -310,6 +313,47 @@ public class AboutView extends LinearLayout { LogUtils.d(TAG, "initAboutPageView():视图组装完成,功能项加载完毕"); } + // ===================================== 调试解锁弹窗 ===================================== + private void showDebugUnlockDialog() { + final AlertDialog dialog = new AlertDialog.Builder(mContext).create(); + dialog.setTitle("应用调试解锁"); + dialog.setCanceledOnTouchOutside(true); + + final EditText etToken = new EditText(mContext); + etToken.setHint("请输入调试Token"); + dialog.setView(etToken); + + dialog.setButton(DialogInterface.BUTTON_POSITIVE, "调试解锁", (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) { + String inputToken = etToken.getText().toString().trim(); + String savedToken = DebugSwitchInfoImageView.getDebugToken(); + if (savedToken != null && savedToken.equals(inputToken)) { + GlobalApplication.setIsDebugging(true); + GlobalApplication.saveDebugStatus(GlobalApplication.getInstance()); + Toast.makeText(mContext, "调试解锁成功,重启应用后生效", Toast.LENGTH_SHORT).show(); + } else { + Toast.makeText(mContext, "调试Token不匹配", Toast.LENGTH_SHORT).show(); + dialog.dismiss(); + } + } + }); + dialog.getButton(AlertDialog.BUTTON_NEGATIVE).setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + dialog.dismiss(); + } + }); + } + }); + dialog.show(); + } + // ===================================== 内部工具/事件方法 ===================================== /** * 绑定功能按钮点击事件,处理正版校验、调试地址配置弹窗唤起 @@ -335,6 +379,15 @@ public class AboutView extends LinearLayout { new DebugHostDialog(mContext).show(); } }); + + // 应用调试解锁按钮 + ibDebugUnlock.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + LogUtils.d(TAG, "ibDebugUnlock onClick:弹出调试解锁对话框"); + showDebugUnlockDialog(); + } + }); LogUtils.d(TAG, "setBtnClickListener():功能按钮点击事件绑定完成"); } diff --git a/libappbase/src/main/res/layout-night/layout_about_view.xml b/libappbase/src/main/res/layout-night/layout_about_view.xml index 14185d1..09db2eb 100644 --- a/libappbase/src/main/res/layout-night/layout_about_view.xml +++ b/libappbase/src/main/res/layout-night/layout_about_view.xml @@ -81,7 +81,8 @@ android:layout_width="48dp" android:layout_height="48dp" android:src="@drawable/ic_key" - android:id="@+id/ib_signgetdialog" + android:id="@+id/ib_debug_unlock" + android:contentDescription="应用调试解锁" android:scaleType="fitCenter" android:adjustViewBounds="true" android:background="@null"/> diff --git a/libappbase/src/main/res/layout/layout_about_view.xml b/libappbase/src/main/res/layout/layout_about_view.xml index 14185d1..09db2eb 100644 --- a/libappbase/src/main/res/layout/layout_about_view.xml +++ b/libappbase/src/main/res/layout/layout_about_view.xml @@ -81,7 +81,8 @@ android:layout_width="48dp" android:layout_height="48dp" android:src="@drawable/ic_key" - android:id="@+id/ib_signgetdialog" + android:id="@+id/ib_debug_unlock" + android:contentDescription="应用调试解锁" android:scaleType="fitCenter" android:adjustViewBounds="true" android:background="@null"/>