From 08c2c3a962d65c5ff63acad3f0c5a9272001e467 Mon Sep 17 00:00:00 2001 From: alperozturk Date: Wed, 5 Jun 2024 16:41:42 +0200 Subject: [PATCH] Use jetpack lifecycle Signed-off-by: alperozturk --- app/build.gradle | 3 ++- .../client/jobs/transfer/FileTransferService.kt | 17 ++++++++--------- .../java/com/nextcloud/model/AppLifecycle.kt | 12 ------------ .../main/java/com/owncloud/android/MainApp.java | 13 ------------- gradle/verification-metadata.xml | 12 ++++++++++++ 5 files changed, 22 insertions(+), 35 deletions(-) delete mode 100644 app/src/main/java/com/nextcloud/model/AppLifecycle.kt diff --git a/app/build.gradle b/app/build.gradle index 239572dcf431..3c7976984c71 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -291,7 +291,8 @@ dependencies { implementation 'androidx.webkit:webkit:1.11.0' implementation 'androidx.cardview:cardview:1.0.0' implementation 'androidx.exifinterface:exifinterface:1.3.7' - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.7.0" + implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.1" + implementation "androidx.lifecycle:lifecycle-service:2.8.1" implementation "androidx.work:work-runtime:$workRuntime" implementation "androidx.work:work-runtime-ktx:$workRuntime" implementation "androidx.fragment:fragment-ktx:1.7.1" diff --git a/app/src/main/java/com/nextcloud/client/jobs/transfer/FileTransferService.kt b/app/src/main/java/com/nextcloud/client/jobs/transfer/FileTransferService.kt index 399435d2f867..0930649c4530 100644 --- a/app/src/main/java/com/nextcloud/client/jobs/transfer/FileTransferService.kt +++ b/app/src/main/java/com/nextcloud/client/jobs/transfer/FileTransferService.kt @@ -7,10 +7,11 @@ */ package com.nextcloud.client.jobs.transfer -import android.app.Service import android.content.Context import android.content.Intent import android.os.IBinder +import androidx.lifecycle.Lifecycle +import androidx.lifecycle.LifecycleService import com.nextcloud.client.account.User import com.nextcloud.client.core.AsyncRunner import com.nextcloud.client.core.LocalBinder @@ -23,10 +24,8 @@ import com.nextcloud.client.logger.Logger import com.nextcloud.client.network.ClientFactory import com.nextcloud.client.network.ConnectivityService import com.nextcloud.client.notifications.AppNotificationManager -import com.nextcloud.model.AppLifecycle import com.nextcloud.utils.ForegroundServiceHelper import com.nextcloud.utils.extensions.getParcelableArgument -import com.owncloud.android.MainApp import com.owncloud.android.datamodel.FileDataStorageManager import com.owncloud.android.datamodel.ForegroundServiceType import com.owncloud.android.datamodel.UploadsStorageManager @@ -34,7 +33,7 @@ import dagger.android.AndroidInjection import javax.inject.Inject import javax.inject.Named -class FileTransferService : Service() { +class FileTransferService : LifecycleService() { companion object { const val TAG = "DownloaderService" @@ -98,12 +97,12 @@ class FileTransferService : Service() { AndroidInjection.inject(this) } - override fun onStartCommand(intent: Intent, flags: Int, startId: Int): Int { - if (intent.action != ACTION_TRANSFER) { + override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int { + if (intent == null || intent.action != ACTION_TRANSFER) { return START_NOT_STICKY } - if (!isRunning && MainApp.getAppLifeCycle() == AppLifecycle.Foreground) { + if (!isRunning && lifecycle.currentState == Lifecycle.State.STARTED) { ForegroundServiceHelper.startService( this, AppNotificationManager.TRANSFER_NOTIFICATION_ID, @@ -121,8 +120,8 @@ class FileTransferService : Service() { return START_NOT_STICKY } - override fun onBind(intent: Intent?): IBinder? { - val user = intent?.getParcelableArgument(EXTRA_USER, User::class.java) ?: return null + override fun onBind(intent: Intent): IBinder? { + val user = intent.getParcelableArgument(EXTRA_USER, User::class.java) ?: return null return Binder(getTransferManager(user), this) } diff --git a/app/src/main/java/com/nextcloud/model/AppLifecycle.kt b/app/src/main/java/com/nextcloud/model/AppLifecycle.kt deleted file mode 100644 index 07194bf77861..000000000000 --- a/app/src/main/java/com/nextcloud/model/AppLifecycle.kt +++ /dev/null @@ -1,12 +0,0 @@ -/* - * Nextcloud - Android Client - * - * SPDX-FileCopyrightText: 2024 Your Name - * SPDX-License-Identifier: AGPL-3.0-or-later - */ - -package com.nextcloud.model - -enum class AppLifecycle { - Foreground, Background -} diff --git a/app/src/main/java/com/owncloud/android/MainApp.java b/app/src/main/java/com/owncloud/android/MainApp.java index 42821f2d32bf..f8088eaae4ee 100644 --- a/app/src/main/java/com/owncloud/android/MainApp.java +++ b/app/src/main/java/com/owncloud/android/MainApp.java @@ -58,7 +58,6 @@ import com.nextcloud.client.preferences.AppPreferences; import com.nextcloud.client.preferences.AppPreferencesImpl; import com.nextcloud.client.preferences.DarkMode; -import com.nextcloud.model.AppLifecycle; import com.nextcloud.utils.extensions.ContextExtensionsKt; import com.nmc.android.ui.LauncherActivity; import com.owncloud.android.authentication.AuthenticatorActivity; @@ -376,22 +375,10 @@ public void onCreate() { registerGlobalPassCodeProtection(); } - private static AppLifecycle lifecycle = AppLifecycle.Foreground; - - public static AppLifecycle getAppLifeCycle() { - return lifecycle; - } - - private void setAppLifeCycle(AppLifecycle appLifecycle) { - lifecycle = appLifecycle; - } - private final LifecycleEventObserver lifecycleEventObserver = ((lifecycleOwner, event) -> { if (event == Lifecycle.Event.ON_START) { - setAppLifeCycle(AppLifecycle.Foreground); Log_OC.d(TAG, "APP IN FOREGROUND"); } else if (event == Lifecycle.Event.ON_STOP) { - setAppLifeCycle(AppLifecycle.Background); passCodeManager.setCanAskPin(true); Log_OC.d(TAG, "APP IN BACKGROUND"); } else if (event == Lifecycle.Event.ON_RESUME) { diff --git a/gradle/verification-metadata.xml b/gradle/verification-metadata.xml index 98aab442482a..67b6f034de66 100644 --- a/gradle/verification-metadata.xml +++ b/gradle/verification-metadata.xml @@ -235,7 +235,9 @@ + + @@ -1808,6 +1810,11 @@ + + + + + @@ -6579,6 +6586,11 @@ + + + + +