From 662f79b1d6a025a2b2e2835f1a3e9d535edae02c Mon Sep 17 00:00:00 2001 From: MohitMaliFtechiz Date: Fri, 26 May 2023 14:17:11 +0530 Subject: [PATCH 1/2] Fixed deprecated constructor of FileObserver --- .../java/org/kiwix/kiwixmobile/zimManager/Fat32Checker.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/kiwix/kiwixmobile/zimManager/Fat32Checker.kt b/app/src/main/java/org/kiwix/kiwixmobile/zimManager/Fat32Checker.kt index 1efd55125..3e681400c 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/zimManager/Fat32Checker.kt +++ b/app/src/main/java/org/kiwix/kiwixmobile/zimManager/Fat32Checker.kt @@ -62,8 +62,8 @@ class Fat32Checker constructor( ) } - private fun fileObserver(it: String?): FileObserver { - return object : FileObserver(it, MOVED_FROM or DELETE) { + private fun fileObserver(it: String): FileObserver { + return object : FileObserver(File(it), MOVED_FROM or DELETE) { override fun onEvent(event: Int, path: String?) { requestCheckSystemFileType.onNext(Unit) } From 0ac73a924589a93d4c801a799cd4ad7e2b3894c8 Mon Sep 17 00:00:00 2001 From: MohitMaliFtechiz Date: Fri, 26 May 2023 16:41:04 +0530 Subject: [PATCH 2/2] Fixed application crash on android 21 * FileObserver(File(path), Int) constructor is supported starting from Android 24. In versions prior to Android 24, this new constructor is not supported by the Android OS. --- .../kiwixmobile/zimManager/Fat32Checker.kt | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/org/kiwix/kiwixmobile/zimManager/Fat32Checker.kt b/app/src/main/java/org/kiwix/kiwixmobile/zimManager/Fat32Checker.kt index 3e681400c..ce53d6739 100644 --- a/app/src/main/java/org/kiwix/kiwixmobile/zimManager/Fat32Checker.kt +++ b/app/src/main/java/org/kiwix/kiwixmobile/zimManager/Fat32Checker.kt @@ -18,6 +18,7 @@ package org.kiwix.kiwixmobile.zimManager import android.annotation.SuppressLint +import android.os.Build import android.os.FileObserver import io.reactivex.Flowable import io.reactivex.functions.BiFunction @@ -63,11 +64,19 @@ class Fat32Checker constructor( } private fun fileObserver(it: String): FileObserver { - return object : FileObserver(File(it), MOVED_FROM or DELETE) { - override fun onEvent(event: Int, path: String?) { - requestCheckSystemFileType.onNext(Unit) - } - }.apply { startWatching() } + return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + return object : FileObserver(File(it), MOVED_FROM or DELETE) { + override fun onEvent(event: Int, path: String?) { + requestCheckSystemFileType.onNext(Unit) + } + }.apply { startWatching() } + } else { + object : FileObserver(it, FileObserver.MOVED_FROM or FileObserver.DELETE) { + override fun onEvent(event: Int, path: String?) { + requestCheckSystemFileType.onNext(Unit) + } + }.apply { startWatching() } + } } private fun toFileSystemState(it: String) =