From 2771c492740f75ae33d7c48092f923fe11195bf9 Mon Sep 17 00:00:00 2001 From: ShirosakiMio <852468399@qq.com> Date: Sat, 24 Aug 2024 20:28:21 +0800 Subject: [PATCH 1/7] [feature] Custom cursor --- .../com/tungsten/fcl/control/GameMenu.java | 9 ++++ .../fcl/ui/setting/LauncherSettingPage.java | 31 ++++++++++++ .../com/tungsten/fcl/util/AndroidUtils.java | 16 +++++++ .../com/tungsten/fcl/util/RequestCodes.java | 2 + .../main/res/layout/page_launcher_setting.xml | 47 +++++++++++++++++++ FCL/src/main/res/values-zh/strings.xml | 1 + FCL/src/main/res/values/strings.xml | 1 + 7 files changed, 107 insertions(+) diff --git a/FCL/src/main/java/com/tungsten/fcl/control/GameMenu.java b/FCL/src/main/java/com/tungsten/fcl/control/GameMenu.java index 02fde7a0..b1f7f13e 100644 --- a/FCL/src/main/java/com/tungsten/fcl/control/GameMenu.java +++ b/FCL/src/main/java/com/tungsten/fcl/control/GameMenu.java @@ -1,5 +1,8 @@ package com.tungsten.fcl.control; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.graphics.drawable.BitmapDrawable; import android.util.Log; import android.view.LayoutInflater; import android.view.View; @@ -555,6 +558,12 @@ public class GameMenu implements MenuCallback, View.OnClickListener { initRightMenu(); viewManager.setup(); + + if (new File(FCLPath.FILES_DIR, "cursor.png").exists()) { + Bitmap bitmap = BitmapFactory.decodeFile(new File(FCLPath.FILES_DIR, "cursor.png").getAbsolutePath()); + BitmapDrawable drawable = new BitmapDrawable(getActivity().getResources(), bitmap); + getCursor().setImageDrawable(drawable); + } } @Override diff --git a/FCL/src/main/java/com/tungsten/fcl/ui/setting/LauncherSettingPage.java b/FCL/src/main/java/com/tungsten/fcl/ui/setting/LauncherSettingPage.java index 78e7446c..115e6de0 100644 --- a/FCL/src/main/java/com/tungsten/fcl/ui/setting/LauncherSettingPage.java +++ b/FCL/src/main/java/com/tungsten/fcl/ui/setting/LauncherSettingPage.java @@ -67,9 +67,11 @@ public class LauncherSettingPage extends FCLCommonPage implements View.OnClickLi private FCLButton theme; private FCLButton ltBackground; private FCLButton dkBackground; + private FCLButton cursor; private FCLButton resetTheme; private FCLButton resetLtBackground; private FCLButton resetDkBackground; + private FCLButton resetCursor; private FCLSwitch ignoreNotch; private FCLSeekBar animationSpeed; private FCLTextView animationSpeedText; @@ -94,9 +96,11 @@ public class LauncherSettingPage extends FCLCommonPage implements View.OnClickLi theme = findViewById(R.id.theme); ltBackground = findViewById(R.id.background_lt); dkBackground = findViewById(R.id.background_dk); + cursor = findViewById(R.id.cursor); resetTheme = findViewById(R.id.reset_theme); resetLtBackground = findViewById(R.id.reset_background_lt); resetDkBackground = findViewById(R.id.reset_background_dk); + resetCursor = findViewById(R.id.reset_cursor); ignoreNotch = findViewById(R.id.ignore_notch); animationSpeed = findViewById(R.id.animation_speed); animationSpeedText = findViewById(R.id.animation_speed_text); @@ -113,9 +117,11 @@ public class LauncherSettingPage extends FCLCommonPage implements View.OnClickLi theme.setOnClickListener(this); ltBackground.setOnClickListener(this); dkBackground.setOnClickListener(this); + cursor.setOnClickListener(this); resetTheme.setOnClickListener(this); resetLtBackground.setOnClickListener(this); resetDkBackground.setOnClickListener(this); + resetCursor.setOnClickListener(this); ArrayList languageList = new ArrayList<>(); languageList.add(getContext().getString(R.string.settings_launcher_language_system)); @@ -311,6 +317,28 @@ public class LauncherSettingPage extends FCLCommonPage implements View.OnClickLi } })); } + if(v == cursor) { + FileBrowser.Builder builder = new FileBrowser.Builder(getContext()); + builder.setLibMode(LibMode.FILE_CHOOSER); + builder.setSelectionMode(SelectionMode.SINGLE_SELECTION); + ArrayList suffix = new ArrayList<>(); + suffix.add(".png"); + builder.setSuffix(suffix); + builder.create().browse(getActivity(), RequestCodes.SELECT_CURSOR_CODE, ((requestCode, resultCode, data) -> { + if (requestCode == RequestCodes.SELECT_CURSOR_CODE && resultCode == Activity.RESULT_OK && data != null) { + String path = FileBrowser.getSelectedFiles(data).get(0); + Uri uri = Uri.parse(path); + if (AndroidUtils.isDocUri(uri)) { + AndroidUtils.copyFile(getActivity(), uri, new File(FCLPath.FILES_DIR, "cursor.png")); + } else { + try { + FileUtils.copyFile(new File(path), new File(FCLPath.FILES_DIR, "cursor.png")); + } catch (IOException ignore) { + } + } + } + })); + } if (v == resetTheme) { ThemeEngine.getInstance().applyAndSave(getContext(), ThemeEngine.getWallpaperColor(getContext()), false); } @@ -330,6 +358,9 @@ public class LauncherSettingPage extends FCLCommonPage implements View.OnClickLi Schedulers.androidUIThread().execute(() -> ThemeEngine.getInstance().applyAndSave(getContext(), ((MainActivity) getActivity()).bind.background, null, null)); }).start(); } + if (v == resetCursor) { + new File(FCLPath.FILES_DIR, "cursor.png").delete(); + } } @Override diff --git a/FCL/src/main/java/com/tungsten/fcl/util/AndroidUtils.java b/FCL/src/main/java/com/tungsten/fcl/util/AndroidUtils.java index eff66ca9..44e9c76a 100644 --- a/FCL/src/main/java/com/tungsten/fcl/util/AndroidUtils.java +++ b/FCL/src/main/java/com/tungsten/fcl/util/AndroidUtils.java @@ -146,6 +146,22 @@ public class AndroidUtils { return dest.getAbsolutePath(); } + public static String copyFile(Activity activity, Uri uri, File dest) { + try { + InputStream inputStream = activity.getContentResolver().openInputStream(uri); + if (inputStream == null) { + throw new IOException("Failed to open content stream"); + } + try (FileOutputStream outputStream = new FileOutputStream(dest)) { + IOUtils.copyTo(inputStream, outputStream); + } + inputStream.close(); + } catch (Exception e) { + + } + return dest.getAbsolutePath(); + } + public static boolean isDocUri(Uri uri) { return Objects.equals(uri.getScheme(), ContentResolver.SCHEME_FILE) || Objects.equals(uri.getScheme(),ContentResolver.SCHEME_CONTENT); } diff --git a/FCL/src/main/java/com/tungsten/fcl/util/RequestCodes.java b/FCL/src/main/java/com/tungsten/fcl/util/RequestCodes.java index 8e247cd3..9f6708c3 100644 --- a/FCL/src/main/java/com/tungsten/fcl/util/RequestCodes.java +++ b/FCL/src/main/java/com/tungsten/fcl/util/RequestCodes.java @@ -35,4 +35,6 @@ public class RequestCodes { public static final int SELECT_DATAPACK_CODE = 750; public static final int SELECT_LAUNCHER_BACKGROUND_CODE = 800; + + public static final int SELECT_CURSOR_CODE = 850; } diff --git a/FCL/src/main/res/layout/page_launcher_setting.xml b/FCL/src/main/res/layout/page_launcher_setting.xml index 7fa84c3f..61b416d9 100644 --- a/FCL/src/main/res/layout/page_launcher_setting.xml +++ b/FCL/src/main/res/layout/page_launcher_setting.xml @@ -313,6 +313,53 @@ + + + + + + + + + + + + + + 主题 亮色模式启动器背景图片 暗色模式启动器背景图片 + 鼠标图片 忽略刘海屏 动画速度 diff --git a/FCL/src/main/res/values/strings.xml b/FCL/src/main/res/values/strings.xml index 7b0ede99..5d5c15a2 100644 --- a/FCL/src/main/res/values/strings.xml +++ b/FCL/src/main/res/values/strings.xml @@ -797,6 +797,7 @@ Theme Light Mode Launcher Background Dark Mode Launcher Background + Cursor Picture Ignore Notch Animation Speed From 3a245cd806fb2cd36b225a3159dde8c583b3a7e6 Mon Sep 17 00:00:00 2001 From: ShirosakiMio <852468399@qq.com> Date: Sun, 25 Aug 2024 09:52:05 +0800 Subject: [PATCH 2/7] Update LibFilter.java --- .../src/main/java/com/tungsten/fclcore/util/LibFilter.java | 6 ------ 1 file changed, 6 deletions(-) diff --git a/FCLCore/src/main/java/com/tungsten/fclcore/util/LibFilter.java b/FCLCore/src/main/java/com/tungsten/fclcore/util/LibFilter.java index b78750e5..2d2a8dd1 100644 --- a/FCLCore/src/main/java/com/tungsten/fclcore/util/LibFilter.java +++ b/FCLCore/src/main/java/com/tungsten/fclcore/util/LibFilter.java @@ -44,12 +44,6 @@ public class LibFilter { } else { newLibraries.add(JNA_5_13); } - } else if (library.getName().startsWith("com.github.oshi:oshi-core:")) { - if (Integer.parseInt(version[0]) != 6 || Integer.parseInt(version[1]) != 2) { - newLibraries.add(library); - } else { - newLibraries.add(OSHI_6_3); - } } else { newLibraries.add(library); } From d3805ecd2704454f5211ae7b4312113413d5b094 Mon Sep 17 00:00:00 2001 From: ShirosakiMio <852468399@qq.com> Date: Tue, 27 Aug 2024 09:38:12 +0800 Subject: [PATCH 3/7] Revert "Update LibFilter.java" & fix This reverts commit 3a245cd806fb2cd36b225a3159dde8c583b3a7e6. --- .../com/tungsten/fclcore/util/LibFilter.java | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/FCLCore/src/main/java/com/tungsten/fclcore/util/LibFilter.java b/FCLCore/src/main/java/com/tungsten/fclcore/util/LibFilter.java index 2d2a8dd1..8d909735 100644 --- a/FCLCore/src/main/java/com/tungsten/fclcore/util/LibFilter.java +++ b/FCLCore/src/main/java/com/tungsten/fclcore/util/LibFilter.java @@ -18,10 +18,16 @@ public class LibFilter { "{\n" + " \"name\": \"net.java.dev.jna:jna:5.13.0\"\n" + "}"; - private static final String OSHI_6_3_STRING = - "{\n" + - " \"name\": \"com.github.oshi:oshi-core:6.3.0\"\n" + - "}"; + private static final String OSHI_6_3_STRING = "{\n" + + " \"name\": \"com.github.oshi:oshi-core:6.3.0\",\n" + + " \"downloads\": {\n" + + " \"artifact\": {\n" + + " \"path\": \"com/github/oshi/oshi-core/6.3.0/oshi-core-6.3.0.jar\",\n" + + " \"sha1\": \"9e98cf55be371cafdb9c70c35d04ec2a8c2b42ac\",\n" + + " \"url\": \"https://repo1.maven.org/maven2/com/github/oshi/oshi-core/6.3.0/oshi-core-6.3.0.jar\"\n" + + " }\n" + + " }\n" + + " }"; private static final Library ASM_ALL_5_2 = GSON.fromJson(ASM_ALL_5_2_STRING, Library.class); private static final Library JNA_5_13 = GSON.fromJson(JNA_5_13_STRING, Library.class); @@ -44,6 +50,12 @@ public class LibFilter { } else { newLibraries.add(JNA_5_13); } + } else if (library.getName().startsWith("com.github.oshi:oshi-core:")) { + if (Integer.parseInt(version[0]) != 6 || Integer.parseInt(version[1]) != 2) { + newLibraries.add(library); + } else { + newLibraries.add(OSHI_6_3); + } } else { newLibraries.add(library); } From 16537023f2ba90024f6abd5246bb4d9d98f8844a Mon Sep 17 00:00:00 2001 From: ShirosakiMio <852468399@qq.com> Date: Tue, 27 Aug 2024 09:43:39 +0800 Subject: [PATCH 4/7] 1.1.7.7 --- FCL/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/FCL/build.gradle b/FCL/build.gradle index f5776d1e..f522b534 100644 --- a/FCL/build.gradle +++ b/FCL/build.gradle @@ -44,8 +44,8 @@ android { applicationId "com.tungsten.fcl" minSdk 26 targetSdk 34 - versionCode 1176 - versionName "1.1.7.6" + versionCode 1177 + versionName "1.1.7.7" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } From bb30a0ba3642dc032ef1cdf35cc30835fcbe018c Mon Sep 17 00:00:00 2001 From: ShirosakiMio <852468399@qq.com> Date: Tue, 27 Aug 2024 09:57:07 +0800 Subject: [PATCH 5/7] Update version_map.json --- version_map.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/version_map.json b/version_map.json index 6a083614..8c17a334 100644 --- a/version_map.json +++ b/version_map.json @@ -1,20 +1,20 @@ [ { "type": "release", - "versionCode": 1176, - "versionName": "1.1.7.6", - "date": "2024.08.23", + "versionCode": 1177, + "versionName": "1.1.7.7", + "date": "2024.08.27", "description": [ { "lang": "en", - "text": "Fix some fatal error.\nAdd some features. \nSee github for details." + "text": "1.Fix oshi core.\n2.Fix windows scale.\n3.Add custom cursor.\n4.Fix some bug.\nSee github for more details." }, { "lang": "zh_CN", - "text": "FCL 1.1.7.6更新内容(若启动器内下载缓慢请使用网盘下载,64位的请下载arm64,不知道该下哪个的请下载all)\n1.修复微软登录时的错误提示\n2.修复neoforge整合包版本错误\n3.修复手动选择整合包时的整合包为非正常格式时无法安装的bug\n4.可手动选择执行jar文件使用的java\n5.同步部分HMCL Core,修复些许bug" + "text": "FCL 1.1.7.7更新内容(若启动器内下载缓慢请使用网盘下载,64位的请下载arm64,不知道该下哪个的请下载all)\n1.修复oshi core\n2.修复窗口缩放\n3.添加自定义光标\n4.添加更多动画效果" } ], - "netdiskUrl": "https://pan.quark.cn/s/04bc07022a7d", - "url": "https://github.com/FCL-Team/FoldCraftLauncher/releases/download/1.1.7.6/FCL-release-1.1.7.6-all.apk" + "netdiskUrl": "https://pan.quark.cn/s/5fac965e464b", + "url": "https://github.com/FCL-Team/FoldCraftLauncher/releases/download/1.1.7.7/FCL-release-1.1.7.7-all.apk" } ] From 8572dde7ae4973b6f7211cd110846b541729a79a Mon Sep 17 00:00:00 2001 From: ShirosakiMio <852468399@qq.com> Date: Tue, 27 Aug 2024 17:37:40 +0800 Subject: [PATCH 6/7] fix #558 --- FCL/src/main/java/com/tungsten/fcl/activity/MainActivity.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/FCL/src/main/java/com/tungsten/fcl/activity/MainActivity.kt b/FCL/src/main/java/com/tungsten/fcl/activity/MainActivity.kt index 240caeea..6a5e5fed 100644 --- a/FCL/src/main/java/com/tungsten/fcl/activity/MainActivity.kt +++ b/FCL/src/main/java/com/tungsten/fcl/activity/MainActivity.kt @@ -230,7 +230,9 @@ class MainActivity : FCLActivity(), OnSelectListener, View.OnClickListener { } override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean { - _uiManager?.onBackPressed() + if (event?.keyCode == KeyEvent.KEYCODE_BACK) { + _uiManager?.onBackPressed() + } return true } From 18233e117751c43531c9a02bff3996e206456525 Mon Sep 17 00:00:00 2001 From: ShirosakiMio <852468399@qq.com> Date: Wed, 28 Aug 2024 08:40:26 +0800 Subject: [PATCH 7/7] fix microsoft login error #395 #444 --- FCL/src/main/res/values-fa/strings.xml | 2 -- FCL/src/main/res/values-pt-rBR/strings.xml | 2 -- FCL/src/main/res/values-ru/strings.xml | 2 -- FCL/src/main/res/values/strings.xml | 2 -- 4 files changed, 8 deletions(-) diff --git a/FCL/src/main/res/values-fa/strings.xml b/FCL/src/main/res/values-fa/strings.xml index 8453140e..dcfb4906 100644 --- a/FCL/src/main/res/values-fa/strings.xml +++ b/FCL/src/main/res/values-fa/strings.xml @@ -1,8 +1,6 @@ Fold Craft Launcher - null - بدون مجوز ذخیره سازی، لطفاً به Fold Craft Launcher اجازه دهید. اعطا کردن مجوز ذخیره مورد نیاز است diff --git a/FCL/src/main/res/values-pt-rBR/strings.xml b/FCL/src/main/res/values-pt-rBR/strings.xml index d88615ba..480a84a8 100644 --- a/FCL/src/main/res/values-pt-rBR/strings.xml +++ b/FCL/src/main/res/values-pt-rBR/strings.xml @@ -1,8 +1,6 @@ Fold Craft Launcher - null - Sem permissão de armazenamento, por favor conceda a permissão ao Fold Craft Launcher. Grant Permission to store needed diff --git a/FCL/src/main/res/values-ru/strings.xml b/FCL/src/main/res/values-ru/strings.xml index 0c436a43..07d08ab5 100644 --- a/FCL/src/main/res/values-ru/strings.xml +++ b/FCL/src/main/res/values-ru/strings.xml @@ -1,8 +1,6 @@ Fold Craft Launcher - null - Нет доступа к хранилищу, предоствьте разрешение приложению Fold Craft Launcher в настройках. Grant Permission to store needed diff --git a/FCL/src/main/res/values/strings.xml b/FCL/src/main/res/values/strings.xml index 5d5c15a2..4cd7f4fa 100644 --- a/FCL/src/main/res/values/strings.xml +++ b/FCL/src/main/res/values/strings.xml @@ -1,8 +1,6 @@ Fold Craft Launcher - null - No storage permission, please grant Fold Craft Launcher the permission. Grant Permission to store needed