From 3e400c630aac83c11445c2e6d31b073f5d59c610 Mon Sep 17 00:00:00 2001 From: Patrick Lang Date: Thu, 19 Jan 2023 18:28:54 +0100 Subject: [PATCH 01/12] Added automatic pro version for installs before 2023-01-19 --- .../huawei/java/at/techbee/jtx/flavored/BillingManager.kt | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/app/src/huawei/java/at/techbee/jtx/flavored/BillingManager.kt b/app/src/huawei/java/at/techbee/jtx/flavored/BillingManager.kt index a293e9c6a..9e6eb514d 100644 --- a/app/src/huawei/java/at/techbee/jtx/flavored/BillingManager.kt +++ b/app/src/huawei/java/at/techbee/jtx/flavored/BillingManager.kt @@ -16,6 +16,7 @@ import android.util.Log import androidx.lifecycle.LifecycleObserver import androidx.lifecycle.MutableLiveData import at.techbee.jtx.util.DateTimeUtils +import at.techbee.jtx.util.getPackageInfoCompat import com.huawei.hms.iap.Iap import com.huawei.hms.iap.IapApiException import com.huawei.hms.iap.entity.* @@ -59,11 +60,9 @@ class BillingManager : override fun initialise(context: Context) { - /* val firstInstall = context.packageManager?.getPackageInfoCompat(context.packageName, 0)?.firstInstallTime ?: System.currentTimeMillis() - if(firstInstall < 1674514800000L) + if(firstInstall < 1674082800000L) return - */ if (billingPrefs == null) billingPrefs = context.getSharedPreferences(PREFS_BILLING, Context.MODE_PRIVATE) From 82d0a5268a970ba062f03cf2161b9d9581cae4d7 Mon Sep 17 00:00:00 2001 From: Patrick Lang Date: Mon, 13 Feb 2023 13:26:54 +0100 Subject: [PATCH 02/12] added tools:replace="android:allowBackup" for huawei --- app/src/main/AndroidManifest.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index b3948dcd3..45c31702b 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -75,8 +75,10 @@ + Date: Fri, 17 Mar 2023 22:35:20 +0100 Subject: [PATCH 03/12] Added update check for Huawei flavor --- app/build.gradle | 5 ++- .../jtx/flavored/UpdateCheckManager.kt | 45 +++++++++++++++++++ .../main/java/at/techbee/jtx/MainActivity2.kt | 2 + .../flavored/UpdateCheckManagerDefinition.kt | 18 ++++++++ 4 files changed, 68 insertions(+), 2 deletions(-) create mode 100644 app/src/huawei/java/at/techbee/jtx/flavored/UpdateCheckManager.kt create mode 100644 app/src/main/java/at/techbee/jtx/flavored/UpdateCheckManagerDefinition.kt diff --git a/app/build.gradle b/app/build.gradle index dc167b8c4..826b8f687 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -29,8 +29,8 @@ android { buildConfigField "long", "buildTime", System.currentTimeMillis() + "L" minSdkVersion 21 targetSdkVersion 33 - versionCode 203000022 - versionName "2.03.00-rc22" // keep -release as a suffix also for release, build flavor adds the suffix e.g. .gplay (e.g. 1.00.00-rc0.gplay) + versionCode 203000023 + versionName "2.03.00-rc23" // keep -release as a suffix also for release, build flavor adds the suffix e.g. .gplay (e.g. 1.00.00-rc0.gplay) buildConfigField "String", "versionCodename", "\"Peace begins with a smile\"" multiDexEnabled true vectorDrawables.useSupportLibrary = true @@ -262,6 +262,7 @@ dependencies { // Huawei billing huaweiImplementation "com.huawei.hms:iap:$version_huawei_iap" + huaweiImplementation 'com.huawei.hms:appservice:6.8.0.300' // Google Maps gplayImplementation "com.google.maps.android:maps-compose:2.11.1" diff --git a/app/src/huawei/java/at/techbee/jtx/flavored/UpdateCheckManager.kt b/app/src/huawei/java/at/techbee/jtx/flavored/UpdateCheckManager.kt new file mode 100644 index 000000000..a6eb50331 --- /dev/null +++ b/app/src/huawei/java/at/techbee/jtx/flavored/UpdateCheckManager.kt @@ -0,0 +1,45 @@ +/* + * Copyright (c) Techbee e.U. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the GNU Public License v3.0 + * which accompanies this distribution, and is available at + * http://www.gnu.org/licenses/gpl.html + */ + +package at.techbee.jtx.flavored + +import android.app.Activity +import android.content.Intent +import android.os.Build +import androidx.compose.runtime.mutableStateOf +import com.huawei.hms.jos.JosApps +import com.huawei.updatesdk.service.appmgr.bean.ApkUpgradeInfo +import com.huawei.updatesdk.service.otaupdate.CheckUpdateCallBack +import com.huawei.updatesdk.service.otaupdate.UpdateKey + + +class UpdateCheckManager(val activity: Activity) : UpdateCheckManagerDefinition { + + override var isForcedUpdateAvailable = mutableStateOf(false) + + override fun checkForUpdates() { + val client = JosApps.getAppUpdateClient(activity) + client.checkAppUpdate(activity, object: CheckUpdateCallBack { + override fun onUpdateInfo(intent: Intent?) { + if (intent != null) { + val info = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + intent.getSerializableExtra(UpdateKey.INFO, ApkUpgradeInfo::class.java) + } else { + intent.getSerializableExtra(UpdateKey.INFO) as ApkUpgradeInfo + } + if(intent.getBooleanExtra(UpdateKey.MUST_UPDATE, false)) + JosApps.getAppUpdateClient(activity).showUpdateDialog(activity, info, false) + } + } + override fun onMarketInstallInfo(p0: Intent?) { } + override fun onMarketStoreError(p0: Int) { } + override fun onUpdateStoreError(p0: Int) { } + }) + } + +} \ No newline at end of file diff --git a/app/src/main/java/at/techbee/jtx/MainActivity2.kt b/app/src/main/java/at/techbee/jtx/MainActivity2.kt index 134f5a7e6..ba28f7ccc 100644 --- a/app/src/main/java/at/techbee/jtx/MainActivity2.kt +++ b/app/src/main/java/at/techbee/jtx/MainActivity2.kt @@ -37,6 +37,7 @@ import at.techbee.jtx.database.Module import at.techbee.jtx.database.properties.Attachment import at.techbee.jtx.flavored.BillingManager import at.techbee.jtx.flavored.JtxReviewManager +import at.techbee.jtx.flavored.UpdateCheckManager import at.techbee.jtx.ui.GlobalStateHolder import at.techbee.jtx.ui.about.AboutScreen import at.techbee.jtx.ui.about.AboutViewModel @@ -115,6 +116,7 @@ class MainActivity2 : AppCompatActivity() { TimeZoneRegistryFactory.getInstance().createRegistry() // necessary for ical4j createNotificationChannel() // Register Notification Channel for Reminders BillingManager.getInstance().initialise(this) + UpdateCheckManager(this).checkForUpdates() setContent { val isProPurchased = BillingManager.getInstance().isProPurchased.observeAsState(false) diff --git a/app/src/main/java/at/techbee/jtx/flavored/UpdateCheckManagerDefinition.kt b/app/src/main/java/at/techbee/jtx/flavored/UpdateCheckManagerDefinition.kt new file mode 100644 index 000000000..f2a3531ad --- /dev/null +++ b/app/src/main/java/at/techbee/jtx/flavored/UpdateCheckManagerDefinition.kt @@ -0,0 +1,18 @@ +/* + * Copyright (c) Techbee e.U. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the GNU Public License v3.0 + * which accompanies this distribution, and is available at + * http://www.gnu.org/licenses/gpl.html + */ + +package at.techbee.jtx.flavored + +import androidx.compose.runtime.MutableState + +interface UpdateCheckManagerDefinition { + + var isForcedUpdateAvailable: MutableState + + fun checkForUpdates() +} \ No newline at end of file From f898dfeafccbc7671c0231a7168fd2666cc3cdb8 Mon Sep 17 00:00:00 2001 From: Patrick Lang Date: Mon, 20 Mar 2023 13:37:22 +0100 Subject: [PATCH 04/12] Fixed issue in updatemanager --- app/build.gradle | 4 ++-- .../java/at/techbee/jtx/flavored/UpdateCheckManager.kt | 5 +---- .../at/techbee/jtx/flavored/UpdateCheckManagerDefinition.kt | 4 ---- 3 files changed, 3 insertions(+), 10 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 826b8f687..140960759 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -29,8 +29,8 @@ android { buildConfigField "long", "buildTime", System.currentTimeMillis() + "L" minSdkVersion 21 targetSdkVersion 33 - versionCode 203000023 - versionName "2.03.00-rc23" // keep -release as a suffix also for release, build flavor adds the suffix e.g. .gplay (e.g. 1.00.00-rc0.gplay) + versionCode 203000024 + versionName "2.03.00-rc24" // keep -release as a suffix also for release, build flavor adds the suffix e.g. .gplay (e.g. 1.00.00-rc0.gplay) buildConfigField "String", "versionCodename", "\"Peace begins with a smile\"" multiDexEnabled true vectorDrawables.useSupportLibrary = true diff --git a/app/src/huawei/java/at/techbee/jtx/flavored/UpdateCheckManager.kt b/app/src/huawei/java/at/techbee/jtx/flavored/UpdateCheckManager.kt index a6eb50331..bc1d98396 100644 --- a/app/src/huawei/java/at/techbee/jtx/flavored/UpdateCheckManager.kt +++ b/app/src/huawei/java/at/techbee/jtx/flavored/UpdateCheckManager.kt @@ -11,7 +11,6 @@ package at.techbee.jtx.flavored import android.app.Activity import android.content.Intent import android.os.Build -import androidx.compose.runtime.mutableStateOf import com.huawei.hms.jos.JosApps import com.huawei.updatesdk.service.appmgr.bean.ApkUpgradeInfo import com.huawei.updatesdk.service.otaupdate.CheckUpdateCallBack @@ -20,8 +19,6 @@ import com.huawei.updatesdk.service.otaupdate.UpdateKey class UpdateCheckManager(val activity: Activity) : UpdateCheckManagerDefinition { - override var isForcedUpdateAvailable = mutableStateOf(false) - override fun checkForUpdates() { val client = JosApps.getAppUpdateClient(activity) client.checkAppUpdate(activity, object: CheckUpdateCallBack { @@ -30,7 +27,7 @@ class UpdateCheckManager(val activity: Activity) : UpdateCheckManagerDefinition val info = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { intent.getSerializableExtra(UpdateKey.INFO, ApkUpgradeInfo::class.java) } else { - intent.getSerializableExtra(UpdateKey.INFO) as ApkUpgradeInfo + intent.getSerializableExtra(UpdateKey.INFO) as ApkUpgradeInfo? } if(intent.getBooleanExtra(UpdateKey.MUST_UPDATE, false)) JosApps.getAppUpdateClient(activity).showUpdateDialog(activity, info, false) diff --git a/app/src/main/java/at/techbee/jtx/flavored/UpdateCheckManagerDefinition.kt b/app/src/main/java/at/techbee/jtx/flavored/UpdateCheckManagerDefinition.kt index f2a3531ad..422397daf 100644 --- a/app/src/main/java/at/techbee/jtx/flavored/UpdateCheckManagerDefinition.kt +++ b/app/src/main/java/at/techbee/jtx/flavored/UpdateCheckManagerDefinition.kt @@ -8,11 +8,7 @@ package at.techbee.jtx.flavored -import androidx.compose.runtime.MutableState - interface UpdateCheckManagerDefinition { - var isForcedUpdateAvailable: MutableState - fun checkForUpdates() } \ No newline at end of file From 534746e80df013f7df1417d0e1d467129ab69fa5 Mon Sep 17 00:00:00 2001 From: Patrick Lang Date: Sun, 16 Apr 2023 09:58:21 +0200 Subject: [PATCH 05/12] Added UpdateCheckManager stubs for other flavors --- .../jtx/flavored/UpdateCheckManager.kt | 20 +++++++++++++++++++ .../jtx/flavored/UpdateCheckManager.kt | 19 ++++++++++++++++++ .../jtx/flavored/UpdateCheckManager.kt | 19 ++++++++++++++++++ .../jtx/flavored/UpdateCheckManager.kt | 20 +++++++++++++++++++ 4 files changed, 78 insertions(+) create mode 100644 app/src/amazon/java/at/techbee/jtx/flavored/UpdateCheckManager.kt create mode 100644 app/src/generic/java/at/techbee/jtx/flavored/UpdateCheckManager.kt create mode 100644 app/src/gplay/java/at/techbee/jtx/flavored/UpdateCheckManager.kt create mode 100644 app/src/ose/java/at/techbee/jtx/flavored/UpdateCheckManager.kt diff --git a/app/src/amazon/java/at/techbee/jtx/flavored/UpdateCheckManager.kt b/app/src/amazon/java/at/techbee/jtx/flavored/UpdateCheckManager.kt new file mode 100644 index 000000000..87095831d --- /dev/null +++ b/app/src/amazon/java/at/techbee/jtx/flavored/UpdateCheckManager.kt @@ -0,0 +1,20 @@ +/* + * Copyright (c) Techbee e.U. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the GNU Public License v3.0 + * which accompanies this distribution, and is available at + * http://www.gnu.org/licenses/gpl.html + */ + +package at.techbee.jtx.flavored + +import android.app.Activity + + + +class UpdateCheckManager(val activity: Activity) : UpdateCheckManagerDefinition { + + override fun checkForUpdates() { + // currently only used in HUAWEI + } +} \ No newline at end of file diff --git a/app/src/generic/java/at/techbee/jtx/flavored/UpdateCheckManager.kt b/app/src/generic/java/at/techbee/jtx/flavored/UpdateCheckManager.kt new file mode 100644 index 000000000..7f034f907 --- /dev/null +++ b/app/src/generic/java/at/techbee/jtx/flavored/UpdateCheckManager.kt @@ -0,0 +1,19 @@ +/* + * Copyright (c) Techbee e.U. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the GNU Public License v3.0 + * which accompanies this distribution, and is available at + * http://www.gnu.org/licenses/gpl.html + */ + +package at.techbee.jtx.flavored + +import android.app.Activity + + +class UpdateCheckManager(val activity: Activity) : UpdateCheckManagerDefinition { + + override fun checkForUpdates() { + // currently only used in HUAWEI + } +} \ No newline at end of file diff --git a/app/src/gplay/java/at/techbee/jtx/flavored/UpdateCheckManager.kt b/app/src/gplay/java/at/techbee/jtx/flavored/UpdateCheckManager.kt new file mode 100644 index 000000000..7f034f907 --- /dev/null +++ b/app/src/gplay/java/at/techbee/jtx/flavored/UpdateCheckManager.kt @@ -0,0 +1,19 @@ +/* + * Copyright (c) Techbee e.U. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the GNU Public License v3.0 + * which accompanies this distribution, and is available at + * http://www.gnu.org/licenses/gpl.html + */ + +package at.techbee.jtx.flavored + +import android.app.Activity + + +class UpdateCheckManager(val activity: Activity) : UpdateCheckManagerDefinition { + + override fun checkForUpdates() { + // currently only used in HUAWEI + } +} \ No newline at end of file diff --git a/app/src/ose/java/at/techbee/jtx/flavored/UpdateCheckManager.kt b/app/src/ose/java/at/techbee/jtx/flavored/UpdateCheckManager.kt new file mode 100644 index 000000000..87095831d --- /dev/null +++ b/app/src/ose/java/at/techbee/jtx/flavored/UpdateCheckManager.kt @@ -0,0 +1,20 @@ +/* + * Copyright (c) Techbee e.U. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the GNU Public License v3.0 + * which accompanies this distribution, and is available at + * http://www.gnu.org/licenses/gpl.html + */ + +package at.techbee.jtx.flavored + +import android.app.Activity + + + +class UpdateCheckManager(val activity: Activity) : UpdateCheckManagerDefinition { + + override fun checkForUpdates() { + // currently only used in HUAWEI + } +} \ No newline at end of file From ba6cbe9f59e8a6c11e73797a7afd1b908f85ffb4 Mon Sep 17 00:00:00 2001 From: Patrick Lang Date: Sun, 16 Apr 2023 18:23:18 +0200 Subject: [PATCH 06/12] [BUG] Widget crashes when group by status or classification is selected Closes #471 --- .../techbee/jtx/widgets/ListWidgetContent.kt | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/at/techbee/jtx/widgets/ListWidgetContent.kt b/app/src/main/java/at/techbee/jtx/widgets/ListWidgetContent.kt index 617a78a00..e5f39c345 100644 --- a/app/src/main/java/at/techbee/jtx/widgets/ListWidgetContent.kt +++ b/app/src/main/java/at/techbee/jtx/widgets/ListWidgetContent.kt @@ -10,7 +10,6 @@ package at.techbee.jtx.widgets import android.content.Intent import androidx.compose.runtime.Composable -import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import androidx.glance.GlanceModifier @@ -22,8 +21,18 @@ import androidx.glance.appwidget.action.actionRunCallback import androidx.glance.appwidget.action.actionStartActivity import androidx.glance.appwidget.cornerRadius import androidx.glance.appwidget.lazy.LazyColumn -import androidx.glance.layout.* -import androidx.glance.text.* +import androidx.glance.layout.Alignment +import androidx.glance.layout.Column +import androidx.glance.layout.Row +import androidx.glance.layout.fillMaxHeight +import androidx.glance.layout.fillMaxWidth +import androidx.glance.layout.padding +import androidx.glance.layout.size +import androidx.glance.text.FontStyle +import androidx.glance.text.FontWeight +import androidx.glance.text.Text +import androidx.glance.text.TextAlign +import androidx.glance.text.TextStyle import androidx.glance.unit.ColorProvider import at.techbee.jtx.MainActivity2 import at.techbee.jtx.R @@ -105,10 +114,8 @@ fun ListWidgetContent( val groupedList = sortedList.groupBy { when (listWidgetConfig.groupBy) { - GroupBy.STATUS -> Status.values().find { status -> status.status == it.status }?.stringResource?.let { stringRes -> stringResource(id = stringRes) } ?: it.status - ?: stringResource(id = R.string.status_no_status) - GroupBy.CLASSIFICATION -> Classification.values().find { classif -> classif.classification == it.classification }?.stringResource?.let { stringRes -> stringResource(id = stringRes) } - ?: it.classification ?: stringResource(id = R.string.classification_no_classification) + GroupBy.STATUS -> Status.values().firstOrNull { status -> status.status == it.status }?.stringResource?.let { stringRes -> context.getString(stringRes) } ?: it.status ?: context.getString(R.string.status_no_status) + GroupBy.CLASSIFICATION -> Classification.values().firstOrNull { classif -> classif.classification == it.classification }?.stringResource?.let { stringRes -> context.getString(stringRes) } ?: it.classification ?: context.getString(R.string.classification_no_classification) GroupBy.ACCOUNT -> it.accountName ?:"" GroupBy.COLLECTION -> it.collectionDisplayName ?:"" GroupBy.PRIORITY -> { From 7b31d72c8f120969b364f4698c57122b60f28475 Mon Sep 17 00:00:00 2001 From: Patrick Lang Date: Wed, 10 May 2023 10:09:06 +0200 Subject: [PATCH 07/12] Updated versions --- app/build.gradle | 6 +++--- build.gradle | 6 +++--- ical4android | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 4c9e19993..2a087fb13 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,7 +12,7 @@ apply plugin: "kotlin-android" apply plugin: "kotlin-parcelize" apply plugin: "kotlin-kapt" apply plugin: "kotlinx-serialization" -//apply plugin: "com.huawei.agconnect" +apply plugin: "com.huawei.agconnect" def localPropertiesFile = rootProject.file('local.properties') @@ -255,8 +255,8 @@ dependencies { amazonImplementation "com.google.android.gms:play-services-location:21.0.1" // Huawei billing - //huaweiImplementation "com.huawei.hms:iap:$version_huawei_iap" - huaweiImplementation 'com.huawei.hms:appservice:6.8.0.300' + huaweiImplementation "com.huawei.hms:iap:$version_huawei_iap" + huaweiImplementation "com.huawei.hms:appservice:6.10.0.300" // Google Maps diff --git a/build.gradle b/build.gradle index ade362049..96ea266b4 100644 --- a/build.gradle +++ b/build.gradle @@ -30,7 +30,7 @@ buildscript { version_review = "2.0.1" version_compose = "1.4.3" version_about_libraries = "10.6.3" - version_huawei = "1.8.1.300" + version_huawei = "1.9.0.300" version_huawei_iap = "6.10.0.300" version_accompanist = "0.30.1" version_osmdroid = "6.1.16" @@ -44,7 +44,7 @@ buildscript { maven { url "https://plugins.gradle.org/m2/" } // Huawei - only for use in Huawei branch - //maven { url 'https://developer.huawei.com/repo/' } + maven { url 'https://developer.huawei.com/repo/' } } dependencies { @@ -53,7 +53,7 @@ buildscript { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$version_kotlin" classpath "org.jetbrains.kotlin:kotlin-serialization:$version_kotlin" // Huawei - only for use in Huawei branch - //classpath "com.huawei.agconnect:agcp:$version_huawei" + classpath "com.huawei.agconnect:agcp:$version_huawei" } } diff --git a/ical4android b/ical4android index 0133bea8e..fa53d4cd9 160000 --- a/ical4android +++ b/ical4android @@ -1 +1 @@ -Subproject commit 0133bea8ea1c985d7cde52a9df5026ab486f0f2a +Subproject commit fa53d4cd9b5c8987e464ec1f4317733f35dc2f45 From 834dd9b731fd8686ab8b2286aa2a33dc8cac4d30 Mon Sep 17 00:00:00 2001 From: Patrick Lang Date: Mon, 12 Jun 2023 21:08:34 +0200 Subject: [PATCH 08/12] added fix for huawei --- gradle.properties | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gradle.properties b/gradle.properties index 9d20e6191..e8e93f8c5 100644 --- a/gradle.properties +++ b/gradle.properties @@ -25,3 +25,5 @@ android.nonTransitiveRClass=true android.nonFinalResIds=true android.enableR8.fullMode=false +#Special for Huawei because AGP 8.0 is not supported +apmsInstrumentationEnabled=false \ No newline at end of file From c20a3c6426dc15c78e4c89b6bbf4c7a9b6fffdd7 Mon Sep 17 00:00:00 2001 From: Patrick Lang <72232737+patrickunterwegs@users.noreply.github.com> Date: Tue, 13 Jun 2023 10:47:03 +0200 Subject: [PATCH 09/12] Update android-tests-huawei.yml --- .github/workflows/android-tests-huawei.yml | 58 ++++++++++++++++------ 1 file changed, 42 insertions(+), 16 deletions(-) diff --git a/.github/workflows/android-tests-huawei.yml b/.github/workflows/android-tests-huawei.yml index 8869d0851..bfb07200b 100644 --- a/.github/workflows/android-tests-huawei.yml +++ b/.github/workflows/android-tests-huawei.yml @@ -6,30 +6,56 @@ on: jobs: test_on_emulator: name: Tests with emulator - runs-on: privileged - container: - image: ghcr.io/bitfireat/docker-android-ci:main - options: --privileged - env: - ANDROID_HOME: /sdk - ANDROID_AVD_HOME: /root/.android/avd + runs-on: ubuntu-latest-4-cores + strategy: + matrix: + api-level: [ 31 ] steps: - uses: actions/checkout@v3 with: submodules: true - - uses: gradle/wrapper-validation-action@v1 + - uses: actions/setup-java@v3 + with: + distribution: temurin + java-version: 17 + - uses: gradle/gradle-build-action@v2 + + - name: Enable KVM group perms + run: | + echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules + sudo udevadm control --reload-rules + sudo udevadm trigger --name-match=kvm - - name: Cache gradle dependencies + - name: Cache AVD and APKs uses: actions/cache@v3 + id: avd-cache with: - key: ${{ runner.os }} path: | - ~/.gradle/caches - ~/.gradle/wrapper - - name: Start emulator - run: start-emulator.sh - - name: Run connected tests - run: ./gradlew app:connectedHuaweiDebugAndroidTest + ~/.android/avd/* + ~/.android/adb* + key: avd-${{ matrix.api-level }} + + - name: Create AVD and generate snapshot for caching + if: steps.avd-cache.outputs.cache-hit != 'true' + uses: reactivecircus/android-emulator-runner@v2 + with: + api-level: ${{ matrix.api-level }} + arch: x86_64 + force-avd-creation: false + emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none + disable-animations: false + script: echo "Generated AVD snapshot for caching." + + - name: Run tests + uses: reactivecircus/android-emulator-runner@v2 + with: + api-level: ${{ matrix.api-level }} + arch: x86_64 + force-avd-creation: false + emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none + disable-animations: true + script: ./gradlew app:connectedHuaweiDebugAndroidTest + - name: Archive results if: always() uses: actions/upload-artifact@v3 From 842658a068057c17dc3002940316a0c1d8572479 Mon Sep 17 00:00:00 2001 From: Patrick Lang <72232737+patrickunterwegs@users.noreply.github.com> Date: Wed, 5 Jun 2024 21:06:11 +0200 Subject: [PATCH 10/12] release notes update --- fastlane/metadata/android/en-US/changelogs/207090015.txt | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 fastlane/metadata/android/en-US/changelogs/207090015.txt diff --git a/fastlane/metadata/android/en-US/changelogs/207090015.txt b/fastlane/metadata/android/en-US/changelogs/207090015.txt new file mode 100644 index 000000000..2aa946530 --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/207090015.txt @@ -0,0 +1,4 @@ +* Fixed task duplication when changing collections +* Fixed potential crashes when adding a subtask +* Fixed broken alarms +* Upgraded widget (including layout changes to comply with default widgets) \ No newline at end of file From 2043fd22925d3f877263a48c3ff7cff6d0916135 Mon Sep 17 00:00:00 2001 From: Patrick Lang <72232737+patrickunterwegs@users.noreply.github.com> Date: Wed, 5 Jun 2024 21:07:42 +0200 Subject: [PATCH 11/12] Disabled configuration cache for huawei --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index ecadab41f..542a1841e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,7 +4,7 @@ org.gradle.jvmargs=-Xmx4g -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true # configuration cache [https://docs.gradle.org/current/userguide/configuration_cache.html] -org.gradle.configuration-cache=true +#org.gradle.configuration-cache=true #org.gradle.configuration-cache.problems=warn # https://docs.gradle.org/current/userguide/build_cache.html From 06fd0b94fb23a2f20cd892eaee1acc49ad1945a3 Mon Sep 17 00:00:00 2001 From: Patrick Lang <72232737+patrickunterwegs@users.noreply.github.com> Date: Wed, 5 Jun 2024 21:07:51 +0200 Subject: [PATCH 12/12] Huawei version updates --- build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index 178c3730a..b796efc4a 100644 --- a/build.gradle +++ b/build.gradle @@ -30,8 +30,8 @@ buildscript { version_review = "2.0.1" version_compose = "1.6.7" version_about_libraries = "11.2.0" - version_huawei = "1.9.0.300" - version_huawei_iap = "6.10.0.300" + version_huawei = "1.9.1.302" + version_huawei_iap = "6.13.0.300" version_accompanist = "0.34.0" version_osmdroid = "6.1.18" }