Skip to content

Commit b57a719

Browse files
Update Kotlin and add R8 plugin in Gradle config (#46)
1 parent 8e5e6b4 commit b57a719

File tree

90 files changed

+1019
-393
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

90 files changed

+1019
-393
lines changed

.github/workflows/release.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ jobs:
8989
with:
9090
distribution: 'temurin'
9191
java-version: '17'
92+
cache: gradle
9293

9394
# Flutter Pub Get
9495
- name: Flutter Pub Get
@@ -113,7 +114,7 @@ jobs:
113114
- name: Build Android
114115
if: matrix.target == 'Android'
115116
run: |
116-
flutter build apk --release
117+
flutter build apk --release --verbose
117118
flutter build apk --release --split-per-abi
118119
cd build/app/outputs/flutter-apk
119120
mv app-release.apk CloudOTP-${{ steps.get_version.outputs.version }}-android-universal.apk

android/app/build.gradle

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,13 @@ android {
3939
}
4040

4141
kotlinOptions {
42-
jvmTarget = '1.8'
42+
jvmTarget = '17'
43+
}
44+
45+
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach {
46+
kotlinOptions {
47+
jvmTarget = "17"
48+
}
4349
}
4450

4551
defaultConfig {
@@ -62,7 +68,6 @@ android {
6268
buildTypes {
6369
release {
6470
signingConfig signingConfigs.release
65-
// useProguard true
6671
minifyEnabled true
6772
shrinkResources true
6873
zipAlignEnabled true
@@ -74,6 +79,10 @@ android {
7479
}
7580
}
7681

82+
kotlin {
83+
jvmToolchain(17)
84+
}
85+
7786
flutter {
7887
source '../..'
7988
}

android/app/proguard-rules.pro

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,14 @@
1111

1212
-keepattributes *Annotation*
1313

14-
-keepattributes SourceFile,LineNumberTable
14+
-dontwarn com.google.android.play.core.splitcompat.SplitCompatApplication
15+
-dontwarn com.google.android.play.core.splitinstall.SplitInstallException
16+
-dontwarn com.google.android.play.core.splitinstall.SplitInstallManager
17+
-dontwarn com.google.android.play.core.splitinstall.SplitInstallManagerFactory
18+
-dontwarn com.google.android.play.core.splitinstall.SplitInstallRequest$Builder
19+
-dontwarn com.google.android.play.core.splitinstall.SplitInstallRequest
20+
-dontwarn com.google.android.play.core.splitinstall.SplitInstallSessionState
21+
-dontwarn com.google.android.play.core.splitinstall.SplitInstallStateUpdatedListener
22+
-dontwarn com.google.android.play.core.tasks.OnFailureListener
23+
-dontwarn com.google.android.play.core.tasks.OnSuccessListener
24+
-dontwarn com.google.android.play.core.tasks.Task

android/build.gradle

Lines changed: 26 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,20 @@
1-
//buildscript {
2-
// ext.kotlin_version = '1.8.10'
3-
// repositories {
4-
// google()
5-
// mavenCentral()
6-
// }
7-
// dependencies {
8-
// classpath 'com.android.tools.build:gradle:7.3.1'
9-
// classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
10-
// }
11-
//}
1+
buildscript {
2+
ext.kotlin_version = '2.1.10'
3+
repositories {
4+
google()
5+
mavenCentral()
6+
}
7+
dependencies {
8+
classpath 'com.android.tools.build:gradle:8.0.2'
9+
// classpath 'com.android.tools:r8:1.6.82'
10+
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
11+
}
12+
}
1213

1314
allprojects {
1415
repositories {
15-
// maven { url 'https://maven.aliyun.com/repository/google' }
16-
// maven { url 'https://maven.aliyun.com/repository/jcenter' }
1716
google()
1817
mavenCentral()
19-
// maven { url 'https://jitpack.io' }
20-
// maven { url "https://maven.google.com" }
21-
// maven { url 'https://maven.aliyun.com/repository/public' }
22-
// maven { url 'https://maven.aliyun.com/repository/central' }
23-
// maven { url 'https://maven.aliyun.com/nexus/content/groups/public' }
24-
// maven { url 'https://maven.aliyun.com/repository/flutter-plugin' }
25-
// maven { url "https://download.flutter.io" }
2618
}
2719
}
2820

@@ -32,6 +24,20 @@ subprojects {
3224
android {
3325
compileSdkVersion 34
3426
}
27+
if (it.plugins.hasPlugin('com.android.library') || it.plugins.hasPlugin('com.android.application')) {
28+
it.android {
29+
compileOptions {
30+
sourceCompatibility JavaVersion.VERSION_17
31+
targetCompatibility JavaVersion.VERSION_17
32+
}
33+
}
34+
35+
it.tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach {
36+
kotlinOptions {
37+
jvmTarget = "17"
38+
}
39+
}
40+
}
3541
}
3642
}
3743
subprojects {

android/gradle.properties

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,5 @@ org.gradle.jvmargs=-Xmx4096m
22
org.gradle.parallel=true
33
android.useAndroidX=true
44
android.enableJetifier=true
5+
kotlin.version=2.1.10
6+
org.gradle.jvm.toolchain=17

android/gradle/wrapper/gradle-wrapper.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
33
zipStoreBase=GRADLE_USER_HOME
44
zipStorePath=wrapper/dists
5-
distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.3-all.zip
5+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-all.zip

android/settings.gradle

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,17 @@ pluginManagement {
1414
mavenCentral()
1515
gradlePluginPortal()
1616
}
17+
18+
plugins {
19+
id("org.jetbrains.kotlin.jvm") version "2.1.10"
20+
id("org.jetbrains.kotlin.android") version "2.1.10"
21+
}
1722
}
1823

1924
plugins {
2025
id "dev.flutter.flutter-plugin-loader" version "1.0.0"
21-
id "com.android.application" version "7.3.1" apply false
22-
id "org.jetbrains.kotlin.android" version "2.1.0" apply false
26+
id "com.android.application" version "8.0.2" apply false
27+
id "org.jetbrains.kotlin.android" version "2.1.10" apply false
2328
}
2429

2530
include ":app"

lib/Database/database_manager.dart

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -124,8 +124,8 @@ class DatabaseManager {
124124
await _database!.rawQuery("SELECT sqlcipher_export('tmp')");
125125
await _database!.rawQuery("DETACH DATABASE tmp");
126126
return true;
127-
} catch (e) {
128-
ILogger.error("Failed to change database password", e);
127+
} catch (e, t) {
128+
ILogger.error("Failed to change database password", e, t);
129129
return false;
130130
}
131131
}
@@ -143,9 +143,7 @@ class DatabaseManager {
143143
"Configure database with cipher successfully. Result is $res");
144144
} else {
145145
ILogger.error(
146-
"Failed to configure database with cipher, perhaps the sqlcipher dynamic library was not loaded.",
147-
res,
148-
);
146+
"Failed to configure database with cipher, perhaps the sqlcipher dynamic library was not loaded. Result is $res");
149147
}
150148
}
151149
}
@@ -265,7 +263,11 @@ class DatabaseManager {
265263
if (Platform.isLinux || Platform.isAndroid) {
266264
try {
267265
lib = DynamicLibrary.open('libsqlcipher.so');
268-
} catch (e) {
266+
} catch (e, t) {
267+
ILogger.error(
268+
"Failed to load libsqlcipher.so, perhaps the library is not installed or not in the correct path.",
269+
e,
270+
t);
269271
if (Platform.isAndroid) {
270272
final appIdAsBytes = File('/proc/self/cmdline').readAsBytesSync();
271273
final endOfAppId = max(appIdAsBytes.indexOf(0), 0);
@@ -284,7 +286,8 @@ class DatabaseManager {
284286
lib = DynamicLibrary.open('sqlite_sqlcipher.dll');
285287
}
286288
return lib;
287-
} catch (e) {
289+
} catch (e, t) {
290+
ILogger.error("Failed to load sqlcipher dynamic library", e, t);
288291
return null;
289292
}
290293
}

lib/Database/token_category_binding_dao.dart

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ import 'package:cloudotp/Models/opt_token.dart';
1919
import 'package:cloudotp/Models/token_category_binding.dart';
2020
import 'package:sqflite_sqlcipher/sqflite.dart';
2121

22-
import '../Utils/utils.dart';
2322
import 'database_manager.dart';
2423

2524
class BindingDao {

lib/Models/token_category.dart

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ import 'dart:convert';
1818
import 'package:awesome_chewie/awesome_chewie.dart';
1919

2020
import '../Database/token_category_binding_dao.dart';
21-
import '../Utils/utils.dart';
2221
import 'Proto/TokenCategory/token_category_payload.pb.dart';
2322
import 'opt_token.dart';
2423

0 commit comments

Comments
 (0)