From 0788a52652c6aaf21d0d3e2f7a9fbe7981bdefe6 Mon Sep 17 00:00:00 2001 From: ZhanGSKen Date: Thu, 30 Apr 2026 22:54:44 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E7=B3=BB=E7=BB=9F?= =?UTF-8?q?=E7=9B=B8=E5=86=8C=E5=85=A5=E5=8F=A3=E5=8F=8A=E9=87=8D=E7=BD=AE?= =?UTF-8?q?=E9=BB=98=E8=AE=A4=E6=89=93=E5=BC=80=E6=96=B9=E5=BC=8F=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 【功能更新】 1. 系统相册按钮: - 工具栏新增“系统相册”菜单项 (ic_cover)。 - 点击后通过 Intent 调用系统默认相册。 2. 重置按钮: - 工具栏新增“重置”菜单项 (ic_cover_reset)。 - 清除图库 ACTION_VIEW 的默认打开记录,恢复应用选择框。 - 兼容处理:API <= 30 自动清除,API > 30 提示适配限制说明。 【代码变更】 - MainActivity.java: 新增 action_gallery 与 action_reset_gallery 响应逻辑,包含异常捕获。 - menu_main.xml: 注册两个新菜单项。 - strings.xml: 新增 "system_gallery", "reset_gallery" 字符串资源。 【其他新增】 - 新增 ColorPaletteDialog 类及 dialog_color_palette.xml 布局。 - 新增 styles.xml 样式 ColorPaletteDialog。 - 新增重置图标资源 ic_cover_reset.xml。 - 更新 build.properties 版本配置。 --- gallery/build.properties | 4 +- .../winboll/studio/gallery/MainActivity.java | 27 +++++++++++- .../gallery/dialog/ColorPaletteDialog.java | 44 +++++++++++++++++++ .../src/main/res/drawable/ic_cover_reset.xml | 21 +++++++++ .../main/res/layout/dialog_color_palette.xml | 16 +++++++ gallery/src/main/res/menu/menu_main.xml | 12 +++++ gallery/src/main/res/values/strings.xml | 2 + gallery/src/main/res/values/styles.xml | 5 +++ 8 files changed, 128 insertions(+), 3 deletions(-) create mode 100644 gallery/src/main/java/cc/winboll/studio/gallery/dialog/ColorPaletteDialog.java create mode 100644 gallery/src/main/res/drawable/ic_cover_reset.xml create mode 100644 gallery/src/main/res/layout/dialog_color_palette.xml diff --git a/gallery/build.properties b/gallery/build.properties index bc1f7dc..439ccf4 100644 --- a/gallery/build.properties +++ b/gallery/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Tue Apr 28 17:22:34 GMT 2026 +#Thu Apr 30 22:39:56 CST 2026 stageCount=10 libraryProject= baseVersion=15.0 publishVersion=15.0.9 -buildCount=18 +buildCount=46 baseBetaVersion=15.0.10 diff --git a/gallery/src/main/java/cc/winboll/studio/gallery/MainActivity.java b/gallery/src/main/java/cc/winboll/studio/gallery/MainActivity.java index a90e6dc..655413b 100644 --- a/gallery/src/main/java/cc/winboll/studio/gallery/MainActivity.java +++ b/gallery/src/main/java/cc/winboll/studio/gallery/MainActivity.java @@ -289,7 +289,32 @@ private void loadAlbums() { @Override public boolean onOptionsItemSelected(@NonNull MenuItem item) { int id = item.getItemId(); - if (id == R.id.action_settings) { + if (id == R.id.action_gallery) { + Intent intent = new Intent(Intent.ACTION_VIEW, MediaStore.Images.Media.EXTERNAL_CONTENT_URI); + startActivity(intent); + return true; + } else if (id == R.id.action_reset_gallery) { + // 清除 图库/ACTION_VIEW 图片 Uri 的默认打开记录 + PackageManager pm = getPackageManager(); + + // 构建和你跳转一模一样的 Intent + Intent clearIntent = new Intent(Intent.ACTION_VIEW, MediaStore.Images.Media.EXTERNAL_CONTENT_URI); + + try { + // 仅在 API <= 30 时执行重置操作 + if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.R) { + String mimeType = clearIntent.resolveType(getContentResolver()); + pm.clearPackagePreferredActivities(mimeType); + Toast.makeText(this, "已清除默认打开方式", Toast.LENGTH_SHORT).show(); + } else { + // API > 30 时,弹出提示说明适配限制 + Toast.makeText(this, "应用开发资源有限,本应用适配目标安卓版本为 (" + Build.VERSION_CODES.R + ")。", Toast.LENGTH_LONG).show(); + } + } catch (SecurityException e) { + Toast.makeText(this, "需要授予重置默认应用权限,请在系统设置中开启", Toast.LENGTH_LONG).show(); + } + return true; + } else if (id == R.id.action_settings) { startActivity(new Intent(this, SettingsActivity.class)); return true; } else if (id == R.id.action_about) { diff --git a/gallery/src/main/java/cc/winboll/studio/gallery/dialog/ColorPaletteDialog.java b/gallery/src/main/java/cc/winboll/studio/gallery/dialog/ColorPaletteDialog.java new file mode 100644 index 0000000..ce5e959 --- /dev/null +++ b/gallery/src/main/java/cc/winboll/studio/gallery/dialog/ColorPaletteDialog.java @@ -0,0 +1,44 @@ +package cc.winboll.studio.gallery.dialog; + +import android.app.Dialog; +import android.content.Context; +import android.os.Bundle; +import android.view.WindowManager; +import android.widget.TextView; +import androidx.annotation.NonNull; +import cc.winboll.studio.gallery.R; + +/** + * 颜色表对话框 + * 继承于普通对话框类,使用视图文件 + */ +public class ColorPaletteDialog extends Dialog { + + public ColorPaletteDialog(@NonNull Context context) { + super(context, R.style.ColorPaletteDialog); + } + + public ColorPaletteDialog(@NonNull Context context, int themeResId) { + super(context, themeResId); + } + + @Override + protected void onCreate(Bundle savedInstanceState) { + // super.onCreate(savedInstanceState); + setContentView(R.layout.dialog_color_palette); + + TextView titleText = findViewById(R.id.title_text); + + WindowManager.LayoutParams params = getWindow().getAttributes(); + params.width = WindowManager.LayoutParams.MATCH_PARENT; + getWindow().setAttributes(params); + } + + public void setTitle(String title) { + + } + + public interface OnColorItemClick { + void onColorClick(int color); + } +} diff --git a/gallery/src/main/res/drawable/ic_cover_reset.xml b/gallery/src/main/res/drawable/ic_cover_reset.xml new file mode 100644 index 0000000..5042df5 --- /dev/null +++ b/gallery/src/main/res/drawable/ic_cover_reset.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/gallery/src/main/res/layout/dialog_color_palette.xml b/gallery/src/main/res/layout/dialog_color_palette.xml new file mode 100644 index 0000000..14ec990 --- /dev/null +++ b/gallery/src/main/res/layout/dialog_color_palette.xml @@ -0,0 +1,16 @@ + + + + + + \ No newline at end of file diff --git a/gallery/src/main/res/menu/menu_main.xml b/gallery/src/main/res/menu/menu_main.xml index 1264d7a..e2f9267 100644 --- a/gallery/src/main/res/menu/menu_main.xml +++ b/gallery/src/main/res/menu/menu_main.xml @@ -2,6 +2,18 @@ + + + + No Debug Log Debug log message + 系统相册 + 重置 diff --git a/gallery/src/main/res/values/styles.xml b/gallery/src/main/res/values/styles.xml index 0eb88fe..0049172 100644 --- a/gallery/src/main/res/values/styles.xml +++ b/gallery/src/main/res/values/styles.xml @@ -8,4 +8,9 @@ @color/colorAccent + +