From 1eef60c6e828e0da9559ac255bdeb93b7df60fcb Mon Sep 17 00:00:00 2001 From: khanhduytran0 Date: Thu, 19 Nov 2020 09:54:09 +0700 Subject: [PATCH] Changes - Add language updater scripts - [Custom controls] fix startup error --- .github/workflows/android.yml | 4 ++++ README.md | 12 ++++++++++++ .../net/kdt/pojavlaunch/PojavLoginActivity.java | 13 ++++++------- .../pojavlaunch/customcontrols/ControlButton.java | 2 ++ scripts/languagelist_updater.bat | 12 ++++++------ 5 files changed, 30 insertions(+), 13 deletions(-) diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index 58694aafd..f7a1fd637 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -14,9 +14,13 @@ jobs: java-version: 1.8 - name: Build APK with Gradle run: | + chmod +x scripts/languagelist_updater.sh + bash scripts/languagelist_updater.sh + mkdir -p out chmod +x gradlew ./gradlew clean assembleDebug + mv app/build/outputs/apk/debug/app-debug.apk out/app-debug.apk # mv app/build/intermediates/merged_native_libs/debug/out/lib out/debug_lib diff --git a/README.md b/README.md index 252d9c318..676658c09 100644 --- a/README.md +++ b/README.md @@ -15,6 +15,18 @@ Architectures: - For x86 (i\*86): **working**. - For x86_64 (amd64): **working**. +## Building +- Because languages are auto added by Crowdin, so need to run language list generator before build. In this directory, run: +``` +# On Linux, Mac OS: +chmod +x scripts/languagelist_updater.sh +bash scripts/languagelist_updater.sh + +# On Windows: +scripts\languagelist_updater.bat +``` +- Then, build use Android Studio. + ## Current status - [x] **Removed** ~~BinaryExecutor: execute `java` binary, no `JNIInvocation`.~~ - [x] **Temporary removed** ~~JVDroid OpenJDK 11 (32 and 64-bit ARM and x86). Partial, no error `can't lock mutex`, but now exit with none output.~~ diff --git a/app/src/main/java/net/kdt/pojavlaunch/PojavLoginActivity.java b/app/src/main/java/net/kdt/pojavlaunch/PojavLoginActivity.java index 2c393965b..0fcf16d16 100644 --- a/app/src/main/java/net/kdt/pojavlaunch/PojavLoginActivity.java +++ b/app/src/main/java/net/kdt/pojavlaunch/PojavLoginActivity.java @@ -212,15 +212,14 @@ public class PojavLoginActivity extends AppCompatActivity langAdapter.add(new DisplayableLocale(Locale.getDefault(), defaultLangChar)); langAdapter.add(new DisplayableLocale(Locale.ENGLISH)); - // TODO better way to read language list try { - ZipFile thisApk = new ZipFile(getApplicationInfo().publicSourceDir); - Enumeration thisEntries = thisApk.entries(); - while (thisEntries.hasMoreElements()) { - File currFile = new File("/" + ((ZipEntry) thisEntries.nextElement()).getName()); + BufferedReader reader = new BufferedReader(new InputStreamReader(getAssets().open("language_list.txt"))); + String line; + while ((line = reader.readLine()) != null) { + File currFile = new File("/" + line); System.out.println(currFile.getAbsolutePath()); - if (currFile.getAbsolutePath().startsWith("/res/values-") && currFile.getName().startsWith("values-")) { - // TODO use regex + if (currFile.getAbsolutePath().contains("/values-") || currFile.getName().startsWith("values-")) { + // TODO use regex(?) Locale thisLocale = new Locale(currFile.getName().replace("values-", "").replace("-r", "-")); langAdapter.add(new DisplayableLocale(thisLocale)); } diff --git a/app/src/main/java/net/kdt/pojavlaunch/customcontrols/ControlButton.java b/app/src/main/java/net/kdt/pojavlaunch/customcontrols/ControlButton.java index c2a581741..624a70be4 100644 --- a/app/src/main/java/net/kdt/pojavlaunch/customcontrols/ControlButton.java +++ b/app/src/main/java/net/kdt/pojavlaunch/customcontrols/ControlButton.java @@ -46,6 +46,8 @@ public class ControlButton extends Button implements OnLongClickListener, OnTouc public void setProperties(ControlData properties, boolean changePos) { mProperties = properties; + properties.update(); + // com.android.internal.R.string.delete // android.R.string. setText(properties.name); diff --git a/scripts/languagelist_updater.bat b/scripts/languagelist_updater.bat index a91993df1..85b34cb3f 100644 --- a/scripts/languagelist_updater.bat +++ b/scripts/languagelist_updater.bat @@ -1,8 +1,8 @@ -#!/bin/bash -# TODO -THISDIR = `dirname $0` -LANGFILE = $THISDIR/../app/src/main/assets/language_list.txt +@echo off -rm $LANGFILE -ls $THISDIR/../app/src/main/res/values-* >> $LANGFILE +set thisdir = "%~dp0" +set langfile = %thisdir%\..\app\src\main\assets\language_list.txt + +rm %langfile% +dir %thisdir%\..\app\src\main\res\values-* /s /b > %langfile%