Show local manga size
This commit is contained in:
@@ -6,7 +6,7 @@ import androidx.annotation.DrawableRes
|
|||||||
import com.google.android.material.chip.Chip
|
import com.google.android.material.chip.Chip
|
||||||
import org.koitharu.kotatsu.utils.ext.getThemeColor
|
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,
|
fun create(convertView: Chip? = null, text: CharSequence, @DrawableRes iconRes: Int = 0,
|
||||||
tag: Any? = null, onClickListener: View.OnClickListener? = null): Chip {
|
tag: Any? = null, onClickListener: View.OnClickListener? = null): Chip {
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package org.koitharu.kotatsu.ui.details
|
|||||||
|
|
||||||
import android.text.Spanned
|
import android.text.Spanned
|
||||||
import android.view.View
|
import android.view.View
|
||||||
|
import androidx.core.net.toUri
|
||||||
import androidx.core.text.parseAsHtml
|
import androidx.core.text.parseAsHtml
|
||||||
import androidx.core.view.isVisible
|
import androidx.core.view.isVisible
|
||||||
import coil.api.load
|
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.main.list.favourites.categories.select.FavouriteCategoriesDialog
|
||||||
import org.koitharu.kotatsu.ui.reader.ReaderActivity
|
import org.koitharu.kotatsu.ui.reader.ReaderActivity
|
||||||
import org.koitharu.kotatsu.ui.search.MangaSearchSheet
|
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.addChips
|
||||||
import org.koitharu.kotatsu.utils.ext.showPopupMenu
|
import org.koitharu.kotatsu.utils.ext.showPopupMenu
|
||||||
import org.koitharu.kotatsu.utils.ext.textAndVisible
|
import org.koitharu.kotatsu.utils.ext.textAndVisible
|
||||||
|
import org.koitharu.kotatsu.utils.ext.toFileOrNull
|
||||||
import kotlin.math.roundToInt
|
import kotlin.math.roundToInt
|
||||||
|
|
||||||
class MangaDetailsFragment : BaseFragment(R.layout.fragment_details), MangaDetailsView,
|
class MangaDetailsFragment : BaseFragment(R.layout.fragment_details), MangaDetailsView,
|
||||||
@@ -67,6 +70,16 @@ class MangaDetailsFragment : BaseFragment(R.layout.fragment_details), MangaDetai
|
|||||||
onClickListener = this@MangaDetailsFragment
|
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)
|
imageView_favourite.setOnClickListener(this)
|
||||||
button_read.setOnClickListener(this)
|
button_read.setOnClickListener(this)
|
||||||
button_read.setOnLongClickListener(this)
|
button_read.setOnLongClickListener(this)
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package org.koitharu.kotatsu.utils.ext
|
package org.koitharu.kotatsu.utils.ext
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
|
import android.net.Uri
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import android.os.Environment
|
import android.os.Environment
|
||||||
import android.os.storage.StorageManager
|
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)
|
Environment.isExternalStorageRemovable(this) -> context.getString(R.string.external_storage)
|
||||||
else -> null
|
else -> null
|
||||||
}
|
}
|
||||||
} ?: context.getString(R.string.other_storage)
|
} ?: context.getString(R.string.other_storage)
|
||||||
|
|
||||||
|
fun Uri.toFileOrNull() = if (scheme == "file") path?.let(::File) else null
|
||||||
11
app/src/main/res/drawable/ic_chip_storage.xml
Normal file
11
app/src/main/res/drawable/ic_chip_storage.xml
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
<vector
|
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="12dp"
|
||||||
|
android:height="12dp"
|
||||||
|
android:tint="?android:textColorPrimary"
|
||||||
|
android:viewportWidth="24"
|
||||||
|
android:viewportHeight="24">
|
||||||
|
<path
|
||||||
|
android:fillColor="@android:color/white"
|
||||||
|
android:pathData="M18,4v16L6,20L6,8.83L10.83,4L18,4m0,-2h-8L4,8v12c0,1.1 0.9,2 2,2h12c1.1,0 2,-0.9 2,-2L20,4c0,-1.1 -0.9,-2 -2,-2zM9,7h2v4L9,11zM12,7h2v4h-2zM15,7h2v4h-2z" />
|
||||||
|
</vector>
|
||||||
Reference in New Issue
Block a user