diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/core/util/BufferedObserver.kt b/app/src/main/kotlin/org/koitharu/kotatsu/core/util/BufferedObserver.kt deleted file mode 100644 index ccebce668..000000000 --- a/app/src/main/kotlin/org/koitharu/kotatsu/core/util/BufferedObserver.kt +++ /dev/null @@ -1,6 +0,0 @@ -package org.koitharu.kotatsu.core.util - -fun interface BufferedObserver { - - fun onChanged(t: T, previous: T?) -} diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/core/util/FileUtil.java b/app/src/main/kotlin/org/koitharu/kotatsu/core/util/FileUtil.java deleted file mode 100644 index 9bda23a7e..000000000 --- a/app/src/main/kotlin/org/koitharu/kotatsu/core/util/FileUtil.java +++ /dev/null @@ -1,117 +0,0 @@ -package org.koitharu.kotatsu.core.util; - -import android.annotation.TargetApi; -import android.content.Context; -import android.net.Uri; -import android.os.Build; -import android.os.storage.StorageManager; -import android.os.storage.StorageVolume; -import android.provider.DocumentsContract; - -import androidx.annotation.Nullable; - -import java.io.File; -import java.lang.reflect.Array; -import java.lang.reflect.Method; -import java.util.List; - -public final class FileUtil { - - private static final String PRIMARY_VOLUME_NAME = "primary"; - - @Nullable - public static String getFullPathFromTreeUri(@Nullable final Uri treeUri, Context con) { - if (treeUri == null) return null; - String volumePath = getVolumePath(getVolumeIdFromTreeUri(treeUri), con); - if (volumePath == null) return File.separator; - if (volumePath.endsWith(File.separator)) - volumePath = volumePath.substring(0, volumePath.length() - 1); - - String documentPath = getDocumentPathFromTreeUri(treeUri); - if (documentPath.endsWith(File.separator)) - documentPath = documentPath.substring(0, documentPath.length() - 1); - - if (documentPath.length() > 0) { - if (documentPath.startsWith(File.separator)) - return volumePath + documentPath; - else - return volumePath + File.separator + documentPath; - } else return volumePath; - } - - - private static String getVolumePath(final String volumeId, Context context) { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { - return getVolumePathForAndroid11AndAbove(volumeId, context); - } else - return getVolumePathBeforeAndroid11(volumeId, context); - } - - - private static String getVolumePathBeforeAndroid11(final String volumeId, Context context) { - try { - StorageManager mStorageManager = (StorageManager) context.getSystemService(Context.STORAGE_SERVICE); - Class storageVolumeClazz = Class.forName("android.os.storage.StorageVolume"); - Method getVolumeList = mStorageManager.getClass().getMethod("getVolumeList"); - Method getUuid = storageVolumeClazz.getMethod("getUuid"); - Method getPath = storageVolumeClazz.getMethod("getPath"); - Method isPrimary = storageVolumeClazz.getMethod("isPrimary"); - Object result = getVolumeList.invoke(mStorageManager); - - final int length = Array.getLength(result); - for (int i = 0; i < length; i++) { - Object storageVolumeElement = Array.get(result, i); - String uuid = (String) getUuid.invoke(storageVolumeElement); - Boolean primary = (Boolean) isPrimary.invoke(storageVolumeElement); - - if (primary && PRIMARY_VOLUME_NAME.equals(volumeId)) // primary volume? - return (String) getPath.invoke(storageVolumeElement); - - if (uuid != null && uuid.equals(volumeId)) // other volumes? - return (String) getPath.invoke(storageVolumeElement); - } - // not found. - return null; - } catch (Exception ex) { - return null; - } - } - - @TargetApi(Build.VERSION_CODES.R) - private static String getVolumePathForAndroid11AndAbove(final String volumeId, Context context) { - try { - StorageManager mStorageManager = (StorageManager) context.getSystemService(Context.STORAGE_SERVICE); - List storageVolumes = mStorageManager.getStorageVolumes(); - for (StorageVolume storageVolume : storageVolumes) { - // primary volume? - if (storageVolume.isPrimary() && PRIMARY_VOLUME_NAME.equals(volumeId)) - return storageVolume.getDirectory().getPath(); - - // other volumes? - String uuid = storageVolume.getUuid(); - if (uuid != null && uuid.equals(volumeId)) - return storageVolume.getDirectory().getPath(); - - } - // not found. - return null; - } catch (Exception ex) { - return null; - } - } - - private static String getVolumeIdFromTreeUri(final Uri treeUri) { - final String docId = DocumentsContract.getTreeDocumentId(treeUri); - final String[] split = docId.split(":"); - if (split.length > 0) return split[0]; - else return null; - } - - - private static String getDocumentPathFromTreeUri(final Uri treeUri) { - final String docId = DocumentsContract.getTreeDocumentId(treeUri); - final String[] split = docId.split(":"); - if ((split.length >= 2) && (split[1] != null)) return split[1]; - else return File.separator; - } -} diff --git a/app/src/main/kotlin/org/koitharu/kotatsu/details/ui/MangaDetailsAdapter.kt b/app/src/main/kotlin/org/koitharu/kotatsu/details/ui/MangaDetailsAdapter.kt deleted file mode 100644 index 03cf1d76c..000000000 --- a/app/src/main/kotlin/org/koitharu/kotatsu/details/ui/MangaDetailsAdapter.kt +++ /dev/null @@ -1,16 +0,0 @@ -package org.koitharu.kotatsu.details.ui - -import androidx.fragment.app.Fragment -import androidx.fragment.app.FragmentActivity -import androidx.viewpager2.adapter.FragmentStateAdapter - -class MangaDetailsAdapter(activity: FragmentActivity) : FragmentStateAdapter(activity) { - - override fun getItemCount() = 2 - - override fun createFragment(position: Int): Fragment = when (position) { - 0 -> DetailsFragment() - 1 -> ChaptersFragment() - else -> throw IndexOutOfBoundsException("No fragment for position $position") - } -} \ No newline at end of file