Skip to content

Commit bbbcda5

Browse files
committed
feat: update android
1 parent 8578f1e commit bbbcda5

File tree

8 files changed

+54
-13
lines changed

8 files changed

+54
-13
lines changed

project/android/app/build.gradle.kts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ android {
3131
defaultConfig {
3232
applicationId = "com.zeromake.onscripter"
3333
minSdk = 16
34+
//noinspection ExpiredTargetSdkVersion
35+
targetSdk = 24
3436
versionCode = 1
3537
versionName = "1.0.0"
3638
localVersionName?.let {
@@ -71,10 +73,18 @@ android {
7173
jniLibs.srcDirs("libs")
7274
}
7375
}
76+
compileOptions {
77+
sourceCompatibility = JavaVersion.VERSION_17
78+
targetCompatibility = JavaVersion.VERSION_17
79+
}
7480
}
7581

7682
dependencies {
7783
implementation(project(":XXPermissions"))
84+
// implementation("com.github.getActivity:DeviceCompat:2.3")
85+
// implementation("com.github.getActivity:XXPermissions:28.0")
86+
// implementation("androidx.appcompat:appcompat:1.7.1")
87+
// implementation(platform("org.jetbrains.kotlin:kotlin-bom:2.2.0"))
7888
// implementation("com.android.support:support-annotations:28.0.0")
7989
// implementation("androidx.core:core:1.9.0")
8090
// implementation("com.squareup.picasso:picasso:2.8")

project/android/app/src/main/java/com/zeromake/onscripter/Globals.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,10 @@ public class Globals {
55
public static String CurrentDirectoryPath = null;
66
public static String[] CurrentDirectoryPathArray = null;
77
public static String[] CurrentDirectoryValidPathArray = null;
8-
public static final String[] CURRENT_DIRECTORY_PATH_TEMPLATE_ARRAY = new String[]{"${SDCARD}/mine", "${SDCARD}/ons"};
8+
public static final String[] CURRENT_DIRECTORY_PATH_TEMPLATE_ARRAY = new String[]{
9+
"${SDCARD}/mine",
10+
"${SDCARD}/ons",
11+
};
912
public static boolean CurrentGameRunning = false;
1013

1114
public static String[] FallbackDirectoryPathArray = new String[]{
@@ -19,6 +22,7 @@ public class Globals {
1922
"/mnt/usbdisk",
2023
"/sdcard",
2124
"/sdcard/sd",
25+
"/storage/self/primary",
2226
"/storage/sdcard",
2327
"/storage/sdcard0",
2428
"/storage/sdcard1",

project/android/app/src/main/java/com/zeromake/onscripter/MainActivity.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,10 @@ public void onGranted(List<String> permissions, boolean all) {
137137
@Override
138138
public void onDenied(List<String> permissions, boolean never) {
139139
Toast.makeText(MainActivity.this, "权限申请失败", Toast.LENGTH_SHORT).show();
140+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
141+
Intent intent = new Intent(android.provider.Settings.ACTION_MANAGE_ALL_FILES_ACCESS_PERMISSION);
142+
startActivity(intent);
143+
}
140144
}
141145

142146
public void setting() {

project/android/app/src/main/java/com/zeromake/onscripter/Settings.java

Lines changed: 29 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import android.app.Activity;
44
import android.content.SharedPreferences;
5+
import android.os.Build;
56
import android.os.Environment;
67

78
import com.nostra13.universalimageloader.core.DisplayImageOptions;
@@ -18,13 +19,13 @@ public class Settings {
1819
private Settings() {
1920
}
2021

21-
public static void LoadGlobals(Activity activity, boolean reload) {
22+
public static void LoadGlobals(Activity activity, boolean reload) {
2223
if (globalsSettingsLoaded && !reload) {
2324
return;
2425
}
2526
SharedPreferences sharedPreferences = activity.getSharedPreferences("pref", 0);
2627
Globals.CurrentDirectoryPathForLauncher = sharedPreferences.getString("CurrentDirectoryPathForLauncher", Globals.CurrentDirectoryPathForLauncher);
27-
setupCurrentDirectory();
28+
setupCurrentDirectory(activity);
2829
globalsSettingsLoaded = true;
2930
}
3031

@@ -37,7 +38,7 @@ public static void SaveGlobals(Activity activity) {
3738
edit.apply();
3839
}
3940

40-
private static void setupCurrentDirectory() {
41+
private static void setupCurrentDirectory(Activity activity) {
4142
if (Globals.CurrentDirectoryPathForLauncher != null) {
4243
if (Globals.CurrentDirectoryPathForLauncher.isEmpty()) {
4344
Globals.CurrentDirectoryPathForLauncher = null;
@@ -53,7 +54,7 @@ private static void setupCurrentDirectory() {
5354
TreeSet<String> treeSet = new TreeSet<>();
5455
TreeSet<String> validDirectory = new TreeSet<>();
5556
validDirectory.add(Environment.getExternalStorageDirectory().getAbsolutePath());
56-
for (String inlineSd: Globals.FallbackDirectoryPathArray) {
57+
for (String inlineSd : Globals.FallbackDirectoryPathArray) {
5758
File inlineSdF = new File(inlineSd);
5859
if (inlineSdF.exists() && inlineSdF.isDirectory() && inlineSdF.canRead()) {
5960
validDirectory.add(inlineSd);
@@ -88,6 +89,27 @@ private static void setupCurrentDirectory() {
8889
if (str8 != null) {
8990
validEnvDirectory.addAll(Arrays.asList(str8.split(";")));
9091
}
92+
// 通过 getExternalFilesDirs 获取外置sd卡路径
93+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
94+
File[] list = activity.getExternalFilesDirs(null);
95+
for (File f : list) {
96+
String str = f.getAbsolutePath();
97+
String[] dirs = str.split("/");
98+
if (dirs.length < 3) continue;
99+
String dirName = dirs[2];
100+
String rootName = dirs[1];
101+
// 仅支持 storage 下的适配
102+
if (!rootName.equals("storage")) continue;
103+
if (dirName.equals("emulated") || dirName.equals("self")) {
104+
continue;
105+
}
106+
String item = "/" + rootName + "/" + dirName;
107+
if (!new File(item).exists()) continue;
108+
validEnvDirectory.add(item);
109+
// 回退也添加上该路径
110+
validDirectory.add(item);
111+
}
112+
}
91113

92114
for (String str : Globals.CURRENT_DIRECTORY_PATH_TEMPLATE_ARRAY) {
93115
if (!str.contains("${SDCARD}")) {
@@ -97,7 +119,7 @@ private static void setupCurrentDirectory() {
97119
for (String inlineSd : validDirectory) {
98120
treeSet.add(str.replace("${SDCARD}", inlineSd));
99121
}
100-
for (String envSd: validEnvDirectory) {
122+
for (String envSd : validEnvDirectory) {
101123
treeSet.add(str.replace("${SDCARD}", envSd));
102124
}
103125
}
@@ -122,7 +144,7 @@ private static void setupCurrentDirectory() {
122144

123145
public static DisplayImageOptions getDisplayImageOptions() {
124146
return new DisplayImageOptions.Builder()
125-
.cacheInMemory(true)//是否进行内存缓存
126-
.build();
147+
.cacheInMemory(true)//是否进行内存缓存
148+
.build();
127149
}
128150
}

project/android/app/src/main/java/org/libsdl/app/SDLActivity.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ public class SDLActivity extends Activity implements View.OnSystemUiVisibilityCh
6161
private static final String TAG = "SDL";
6262
private static final int SDL_MAJOR_VERSION = 2;
6363
private static final int SDL_MINOR_VERSION = 32;
64-
private static final int SDL_MICRO_VERSION = 0;
64+
private static final int SDL_MICRO_VERSION = 10;
6565
/*
6666
// Display InputType.SOURCE/CLASS of events and devices
6767
//
@@ -311,7 +311,7 @@ public static void initialize() {
311311
mNextNativeState = NativeState.INIT;
312312
mCurrentNativeState = NativeState.INIT;
313313
}
314-
314+
315315
protected SDLSurface createSDLSurface(Context context) {
316316
return new SDLSurface(context);
317317
}

project/android/build.gradle.kts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
plugins {
2-
id("com.android.application") version "8.7.0" apply false
3-
id("com.android.library") version "8.7.0" apply false
2+
id("com.android.application") version "8.13.2" apply false
3+
id("com.android.library") version "8.13.2" apply false
44
// id("org.jetbrains.kotlin.android") version "1.7.22" apply false
55
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#Tue Dec 06 13:44:19 CST 2022
22
distributionBase=GRADLE_USER_HOME
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip
44
distributionPath=wrapper/dists
55
zipStorePath=wrapper/dists
66
zipStoreBase=GRADLE_USER_HOME

project/android/settings.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ dependencyResolutionManagement {
1010
repositories {
1111
google()
1212
mavenCentral()
13+
maven { url = uri("https://jitpack.io") }
1314
}
1415
}
1516
rootProject.name = "onscripter"

0 commit comments

Comments
 (0)