From c1c2b11bd8c4518c358b3642d9237c83427fd49b Mon Sep 17 00:00:00 2001 From: Koitharu Date: Wed, 20 May 2020 19:31:17 +0300 Subject: [PATCH] Show local manga size --- .../org/koitharu/kotatsu/ui/common/ChipsFactory.kt | 2 +- .../kotatsu/ui/details/MangaDetailsFragment.kt | 13 +++++++++++++ .../java/org/koitharu/kotatsu/utils/ext/FileExt.kt | 5 ++++- app/src/main/res/drawable/ic_chip_storage.xml | 11 +++++++++++ 4 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 app/src/main/res/drawable/ic_chip_storage.xml diff --git a/app/src/main/java/org/koitharu/kotatsu/ui/common/ChipsFactory.kt b/app/src/main/java/org/koitharu/kotatsu/ui/common/ChipsFactory.kt index 0de8abf3b..1b8a773ae 100644 --- a/app/src/main/java/org/koitharu/kotatsu/ui/common/ChipsFactory.kt +++ b/app/src/main/java/org/koitharu/kotatsu/ui/common/ChipsFactory.kt @@ -6,7 +6,7 @@ import androidx.annotation.DrawableRes import com.google.android.material.chip.Chip import org.koitharu.kotatsu.utils.ext.getThemeColor -class ChipsFactory(private val context: Context) { +class ChipsFactory(val context: Context) { fun create(convertView: Chip? = null, text: CharSequence, @DrawableRes iconRes: Int = 0, tag: Any? = null, onClickListener: View.OnClickListener? = null): Chip { diff --git a/app/src/main/java/org/koitharu/kotatsu/ui/details/MangaDetailsFragment.kt b/app/src/main/java/org/koitharu/kotatsu/ui/details/MangaDetailsFragment.kt index acd0cbb98..a46756884 100644 --- a/app/src/main/java/org/koitharu/kotatsu/ui/details/MangaDetailsFragment.kt +++ b/app/src/main/java/org/koitharu/kotatsu/ui/details/MangaDetailsFragment.kt @@ -2,6 +2,7 @@ package org.koitharu.kotatsu.ui.details import android.text.Spanned import android.view.View +import androidx.core.net.toUri import androidx.core.text.parseAsHtml import androidx.core.view.isVisible import coil.api.load @@ -16,9 +17,11 @@ import org.koitharu.kotatsu.ui.common.BaseFragment import org.koitharu.kotatsu.ui.main.list.favourites.categories.select.FavouriteCategoriesDialog import org.koitharu.kotatsu.ui.reader.ReaderActivity import org.koitharu.kotatsu.ui.search.MangaSearchSheet +import org.koitharu.kotatsu.utils.FileSizeUtils import org.koitharu.kotatsu.utils.ext.addChips import org.koitharu.kotatsu.utils.ext.showPopupMenu import org.koitharu.kotatsu.utils.ext.textAndVisible +import org.koitharu.kotatsu.utils.ext.toFileOrNull import kotlin.math.roundToInt class MangaDetailsFragment : BaseFragment(R.layout.fragment_details), MangaDetailsView, @@ -67,6 +70,16 @@ class MangaDetailsFragment : BaseFragment(R.layout.fragment_details), MangaDetai onClickListener = this@MangaDetailsFragment ) } + manga.url.toUri().toFileOrNull()?.let { f -> + chips_tags.addChips(listOf(f)) { + create( + text = FileSizeUtils.formatBytes(context, it.length()), + iconRes = R.drawable.ic_chip_storage, + tag = it, + onClickListener = this@MangaDetailsFragment + ) + } + } imageView_favourite.setOnClickListener(this) button_read.setOnClickListener(this) button_read.setOnLongClickListener(this) diff --git a/app/src/main/java/org/koitharu/kotatsu/utils/ext/FileExt.kt b/app/src/main/java/org/koitharu/kotatsu/utils/ext/FileExt.kt index 6b2e38276..812c33971 100644 --- a/app/src/main/java/org/koitharu/kotatsu/utils/ext/FileExt.kt +++ b/app/src/main/java/org/koitharu/kotatsu/utils/ext/FileExt.kt @@ -1,6 +1,7 @@ package org.koitharu.kotatsu.utils.ext import android.content.Context +import android.net.Uri import android.os.Build import android.os.Environment import android.os.storage.StorageManager @@ -45,4 +46,6 @@ fun File.getStorageName(context: Context): String = safe { Environment.isExternalStorageRemovable(this) -> context.getString(R.string.external_storage) else -> null } -} ?: context.getString(R.string.other_storage) \ No newline at end of file +} ?: context.getString(R.string.other_storage) + +fun Uri.toFileOrNull() = if (scheme == "file") path?.let(::File) else null \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_chip_storage.xml b/app/src/main/res/drawable/ic_chip_storage.xml new file mode 100644 index 000000000..6e8a580b1 --- /dev/null +++ b/app/src/main/res/drawable/ic_chip_storage.xml @@ -0,0 +1,11 @@ + + +