mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-10-31 14:27:57 +01:00 
			
		
		
		
	Minor cleanup of wakelocks, extension ID backup
(cherry picked from commit b4c7992726)
# Conflicts:
#	app/src/main/java/eu/kanade/tachiyomi/util/system/ContextExtensions.kt
			
			
This commit is contained in:
		| @@ -9,6 +9,7 @@ import android.os.IBinder | ||||
| import android.os.PowerManager | ||||
| import com.hippo.unifile.UniFile | ||||
| import eu.kanade.tachiyomi.data.notification.Notifications | ||||
| import eu.kanade.tachiyomi.util.system.acquireWakeLock | ||||
| import eu.kanade.tachiyomi.util.system.isServiceRunning | ||||
|  | ||||
| /** | ||||
| @@ -73,10 +74,7 @@ class BackupCreateService : Service() { | ||||
|  | ||||
|         startForeground(Notifications.ID_BACKUP_PROGRESS, notifier.showBackupProgress().build()) | ||||
|  | ||||
|         wakeLock = (getSystemService(Context.POWER_SERVICE) as PowerManager).newWakeLock( | ||||
|             PowerManager.PARTIAL_WAKE_LOCK, "${javaClass.name}:WakeLock" | ||||
|         ) | ||||
|         wakeLock.acquire() | ||||
|         wakeLock = acquireWakeLock(javaClass.name) | ||||
|     } | ||||
|  | ||||
|     override fun stopService(name: Intent?): Boolean { | ||||
|   | ||||
| @@ -46,6 +46,7 @@ import eu.kanade.tachiyomi.data.database.models.Track | ||||
| import eu.kanade.tachiyomi.data.database.models.TrackImpl | ||||
| import eu.kanade.tachiyomi.data.preference.PreferencesHelper | ||||
| import eu.kanade.tachiyomi.data.track.TrackManager | ||||
| import eu.kanade.tachiyomi.source.LocalSource | ||||
| import eu.kanade.tachiyomi.source.Source | ||||
| import eu.kanade.tachiyomi.source.SourceManager | ||||
| import eu.kanade.tachiyomi.source.online.all.EHentai | ||||
| @@ -133,8 +134,10 @@ class BackupManager(val context: Context, version: Int = CURRENT_VERSION) { | ||||
|                 mangaEntries.add(backupMangaObject(manga, flags)) | ||||
|  | ||||
|                 // Maintain set of extensions/sources used (excludes local source) | ||||
|                 if (manga.source != 0L && sourceManager.get(manga.source) != null) { | ||||
|                     extensions.add("${manga.source}:${sourceManager.get(manga.source)!!.name}") | ||||
|                 if (manga.source != LocalSource.ID) { | ||||
|                     sourceManager.get(manga.source)?.let { | ||||
|                         extensions.add("${manga.source}:${it.name}") | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|  | ||||
|   | ||||
| @@ -32,6 +32,7 @@ import eu.kanade.tachiyomi.data.database.models.TrackImpl | ||||
| import eu.kanade.tachiyomi.data.notification.Notifications | ||||
| import eu.kanade.tachiyomi.data.track.TrackManager | ||||
| import eu.kanade.tachiyomi.source.Source | ||||
| import eu.kanade.tachiyomi.util.system.acquireWakeLock | ||||
| import eu.kanade.tachiyomi.util.system.isServiceRunning | ||||
| import exh.EXHMigrations | ||||
| import exh.eh.EHentaiThrottleManager | ||||
| @@ -135,10 +136,7 @@ class BackupRestoreService : Service() { | ||||
|  | ||||
|         startForeground(Notifications.ID_RESTORE_PROGRESS, notifier.showRestoreProgress().build()) | ||||
|  | ||||
|         wakeLock = (getSystemService(Context.POWER_SERVICE) as PowerManager).newWakeLock( | ||||
|             PowerManager.PARTIAL_WAKE_LOCK, "${javaClass.name}:WakeLock" | ||||
|         ) | ||||
|         wakeLock.acquire() | ||||
|         wakeLock = acquireWakeLock(javaClass.name) | ||||
|     } | ||||
|  | ||||
|     override fun stopService(name: Intent?): Boolean { | ||||
|   | ||||
| @@ -16,9 +16,9 @@ import eu.kanade.tachiyomi.R | ||||
| import eu.kanade.tachiyomi.data.notification.Notifications | ||||
| import eu.kanade.tachiyomi.data.preference.PreferencesHelper | ||||
| import eu.kanade.tachiyomi.util.lang.plusAssign | ||||
| import eu.kanade.tachiyomi.util.system.acquireWakeLock | ||||
| import eu.kanade.tachiyomi.util.system.connectivityManager | ||||
| import eu.kanade.tachiyomi.util.system.notification | ||||
| import eu.kanade.tachiyomi.util.system.powerManager | ||||
| import eu.kanade.tachiyomi.util.system.toast | ||||
| import rx.android.schedulers.AndroidSchedulers | ||||
| import rx.schedulers.Schedulers | ||||
| @@ -70,9 +70,7 @@ class DownloadService : Service() { | ||||
|     /** | ||||
|      * Wake lock to prevent the device to enter sleep mode. | ||||
|      */ | ||||
|     private val wakeLock by lazy { | ||||
|         powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "DownloadService:WakeLock") | ||||
|     } | ||||
|     private lateinit var wakeLock: PowerManager.WakeLock | ||||
|  | ||||
|     /** | ||||
|      * Subscriptions to store while the service is running. | ||||
| @@ -85,6 +83,7 @@ class DownloadService : Service() { | ||||
|     override fun onCreate() { | ||||
|         super.onCreate() | ||||
|         startForeground(Notifications.ID_DOWNLOAD_CHAPTER, getPlaceholderNotification()) | ||||
|         wakeLock = acquireWakeLock(javaClass.name) | ||||
|         runningRelay.call(true) | ||||
|         subscriptions = CompositeSubscription() | ||||
|         listenDownloaderState() | ||||
|   | ||||
| @@ -35,6 +35,7 @@ import eu.kanade.tachiyomi.source.online.HttpSource | ||||
| import eu.kanade.tachiyomi.ui.main.MainActivity | ||||
| import eu.kanade.tachiyomi.util.chapter.syncChaptersWithSource | ||||
| import eu.kanade.tachiyomi.util.lang.chop | ||||
| import eu.kanade.tachiyomi.util.system.acquireWakeLock | ||||
| import eu.kanade.tachiyomi.util.system.isServiceRunning | ||||
| import eu.kanade.tachiyomi.util.system.notification | ||||
| import eu.kanade.tachiyomi.util.system.notificationBuilder | ||||
| @@ -183,11 +184,10 @@ class LibraryUpdateService( | ||||
|      */ | ||||
|     override fun onCreate() { | ||||
|         super.onCreate() | ||||
|  | ||||
|         startForeground(Notifications.ID_LIBRARY_PROGRESS, progressNotificationBuilder.build()) | ||||
|         wakeLock = (getSystemService(Context.POWER_SERVICE) as PowerManager).newWakeLock( | ||||
|             PowerManager.PARTIAL_WAKE_LOCK, "LibraryUpdateService:WakeLock" | ||||
|         ) | ||||
|         wakeLock.acquire() | ||||
|  | ||||
|         wakeLock = acquireWakeLock(javaClass.name) | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|   | ||||
| @@ -18,6 +18,7 @@ import eu.kanade.tachiyomi.network.newCallWithProgress | ||||
| import eu.kanade.tachiyomi.util.lang.launchIO | ||||
| import eu.kanade.tachiyomi.util.storage.getUriCompat | ||||
| import eu.kanade.tachiyomi.util.storage.saveTo | ||||
| import eu.kanade.tachiyomi.util.system.acquireWakeLock | ||||
| import eu.kanade.tachiyomi.util.system.isServiceRunning | ||||
| import java.io.File | ||||
| import timber.log.Timber | ||||
| @@ -40,10 +41,7 @@ class UpdaterService : Service() { | ||||
|  | ||||
|         startForeground(Notifications.ID_UPDATER, notifier.onDownloadStarted().build()) | ||||
|  | ||||
|         wakeLock = (getSystemService(Context.POWER_SERVICE) as PowerManager).newWakeLock( | ||||
|             PowerManager.PARTIAL_WAKE_LOCK, "${javaClass.name}:WakeLock" | ||||
|         ) | ||||
|         wakeLock.acquire() | ||||
|         wakeLock = acquireWakeLock(javaClass.name) | ||||
|     } | ||||
|  | ||||
|     /** | ||||
| @@ -143,11 +141,10 @@ class UpdaterService : Service() { | ||||
|             context.isServiceRunning(UpdaterService::class.java) | ||||
|  | ||||
|         /** | ||||
|          * Make a backup from library | ||||
|          * Downloads a new update and let the user install the new version from a notification. | ||||
|          * | ||||
|          * @param context context of application | ||||
|          * @param uri path of Uri | ||||
|          * @param flags determines what to backup | ||||
|          * @param context the application context. | ||||
|          * @param url the url to the new update. | ||||
|          */ | ||||
|         fun start(context: Context, url: String, title: String = context.getString(R.string.app_name)) { | ||||
|             if (!isRunning(context)) { | ||||
|   | ||||
| @@ -3,12 +3,10 @@ package eu.kanade.tachiyomi.ui.setting | ||||
| import android.annotation.SuppressLint | ||||
| import android.app.Dialog | ||||
| import android.content.ActivityNotFoundException | ||||
| import android.content.Context.POWER_SERVICE | ||||
| import android.content.Intent | ||||
| import android.net.Uri | ||||
| import android.os.Build | ||||
| import android.os.Bundle | ||||
| import android.os.PowerManager | ||||
| import android.provider.Settings | ||||
| import androidx.core.text.HtmlCompat | ||||
| import androidx.preference.PreferenceScreen | ||||
| @@ -34,6 +32,7 @@ import eu.kanade.tachiyomi.util.preference.preferenceCategory | ||||
| import eu.kanade.tachiyomi.util.preference.summaryRes | ||||
| import eu.kanade.tachiyomi.util.preference.switchPreference | ||||
| import eu.kanade.tachiyomi.util.preference.titleRes | ||||
| import eu.kanade.tachiyomi.util.system.powerManager | ||||
| import eu.kanade.tachiyomi.util.system.toast | ||||
| import exh.debug.SettingsDebugController | ||||
| import exh.log.EHLogLevel | ||||
| @@ -98,8 +97,7 @@ class SettingsAdvancedController : SettingsController() { | ||||
|  | ||||
|                 onClick { | ||||
|                     val packageName: String = context.packageName | ||||
|                     val pm = context.getSystemService(POWER_SERVICE) as PowerManager? | ||||
|                     if (!pm!!.isIgnoringBatteryOptimizations(packageName)) { | ||||
|                     if (!context.powerManager.isIgnoringBatteryOptimizations(packageName)) { | ||||
|                         try { | ||||
|                             val intent = Intent().apply { | ||||
|                                 action = Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS | ||||
|   | ||||
| @@ -3,9 +3,7 @@ package eu.kanade.tachiyomi.util.system | ||||
| import android.app.ActivityManager | ||||
| import android.app.Notification | ||||
| import android.app.NotificationManager | ||||
| import android.app.job.JobScheduler | ||||
| import android.content.BroadcastReceiver | ||||
| import android.content.ClipboardManager | ||||
| import android.content.Context | ||||
| import android.content.Intent | ||||
| import android.content.IntentFilter | ||||
| @@ -14,7 +12,6 @@ import android.content.res.Resources | ||||
| import android.graphics.Color | ||||
| import android.net.ConnectivityManager | ||||
| import android.net.Uri | ||||
| import android.net.wifi.WifiManager | ||||
| import android.os.PowerManager | ||||
| import android.widget.Toast | ||||
| import androidx.annotation.AttrRes | ||||
| @@ -158,18 +155,13 @@ val Context.powerManager: PowerManager | ||||
|     get() = getSystemService(Context.POWER_SERVICE) as PowerManager | ||||
|  | ||||
| /** | ||||
|  * Property to get the wifi manager from the context. | ||||
|  * Convenience method to acquire a partial wake lock. | ||||
|  */ | ||||
| val Context.wifiManager: WifiManager | ||||
|     get() = applicationContext.getSystemService(Context.WIFI_SERVICE) as WifiManager | ||||
|  | ||||
| // --> EH | ||||
| val Context.clipboardManager: ClipboardManager | ||||
|     get() = applicationContext.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager | ||||
|  | ||||
| val Context.jobScheduler: JobScheduler | ||||
|     get() = applicationContext.getSystemService(Context.JOB_SCHEDULER_SERVICE) as JobScheduler | ||||
| // <-- EH | ||||
| fun Context.acquireWakeLock(tag: String): PowerManager.WakeLock { | ||||
|     val wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "$tag:WakeLock") | ||||
|     wakeLock.acquire() | ||||
|     return wakeLock | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * Function used to send a local broadcast asynchronous | ||||
|   | ||||
| @@ -6,7 +6,6 @@ import eu.kanade.tachiyomi.data.database.DatabaseHelper | ||||
| import eu.kanade.tachiyomi.data.database.tables.MangaTable | ||||
| import eu.kanade.tachiyomi.data.preference.PreferencesHelper | ||||
| import eu.kanade.tachiyomi.source.SourceManager | ||||
| import eu.kanade.tachiyomi.util.system.jobScheduler | ||||
| import exh.EH_SOURCE_ID | ||||
| import exh.EXHMigrations | ||||
| import exh.EXH_SOURCE_ID | ||||
| @@ -16,6 +15,7 @@ import exh.metadata.metadata.base.getFlatMetadataForManga | ||||
| import exh.metadata.metadata.base.insertFlatMetadata | ||||
| import exh.util.await | ||||
| import exh.util.cancellable | ||||
| import exh.util.jobScheduler | ||||
| import kotlinx.coroutines.flow.asFlow | ||||
| import kotlinx.coroutines.flow.mapNotNull | ||||
| import kotlinx.coroutines.flow.toList | ||||
|   | ||||
| @@ -20,7 +20,6 @@ import eu.kanade.tachiyomi.data.preference.getOrDefault | ||||
| import eu.kanade.tachiyomi.source.SourceManager | ||||
| import eu.kanade.tachiyomi.source.online.all.EHentai | ||||
| import eu.kanade.tachiyomi.util.chapter.syncChaptersWithSource | ||||
| import eu.kanade.tachiyomi.util.system.jobScheduler | ||||
| import exh.EH_SOURCE_ID | ||||
| import exh.EXH_SOURCE_ID | ||||
| import exh.debug.DebugToggles | ||||
| @@ -30,6 +29,7 @@ import exh.metadata.metadata.base.getFlatMetadataForManga | ||||
| import exh.metadata.metadata.base.insertFlatMetadata | ||||
| import exh.util.await | ||||
| import exh.util.cancellable | ||||
| import exh.util.jobScheduler | ||||
| import kotlin.coroutines.CoroutineContext | ||||
| import kotlinx.coroutines.CoroutineScope | ||||
| import kotlinx.coroutines.Dispatchers | ||||
|   | ||||
| @@ -15,7 +15,6 @@ import eu.kanade.tachiyomi.source.online.all.EHentai | ||||
| import eu.kanade.tachiyomi.util.lang.launchUI | ||||
| import eu.kanade.tachiyomi.util.system.powerManager | ||||
| import eu.kanade.tachiyomi.util.system.toast | ||||
| import eu.kanade.tachiyomi.util.system.wifiManager | ||||
| import exh.EH_SOURCE_ID | ||||
| import exh.EXH_SOURCE_ID | ||||
| import exh.GalleryAddEvent | ||||
| @@ -24,6 +23,7 @@ import exh.eh.EHentaiThrottleManager | ||||
| import exh.eh.EHentaiUpdateWorker | ||||
| import exh.util.ignore | ||||
| import exh.util.trans | ||||
| import exh.util.wifiManager | ||||
| import kotlin.concurrent.thread | ||||
| import okhttp3.FormBody | ||||
| import okhttp3.Request | ||||
|   | ||||
							
								
								
									
										18
									
								
								app/src/main/java/exh/util/ContextExtensions.kt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								app/src/main/java/exh/util/ContextExtensions.kt
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | ||||
| package exh.util | ||||
|  | ||||
| import android.app.job.JobScheduler | ||||
| import android.content.ClipboardManager | ||||
| import android.content.Context | ||||
| import android.net.wifi.WifiManager | ||||
|  | ||||
| /** | ||||
|  * Property to get the wifi manager from the context. | ||||
|  */ | ||||
| val Context.wifiManager: WifiManager | ||||
|     get() = applicationContext.getSystemService(Context.WIFI_SERVICE) as WifiManager | ||||
|  | ||||
| val Context.clipboardManager: ClipboardManager | ||||
|     get() = applicationContext.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager | ||||
|  | ||||
| val Context.jobScheduler: JobScheduler | ||||
|     get() = applicationContext.getSystemService(Context.JOB_SCHEDULER_SERVICE) as JobScheduler | ||||
		Reference in New Issue
	
	Block a user