pull/83/head
kunfei 5 years ago
parent 4f65b80efc
commit 4768161e25
  1. 13
      app/src/main/java/io/legado/app/ui/importbook/ImportBookAdapter.kt
  2. 16
      app/src/main/java/io/legado/app/utils/StringUtils.kt
  3. 3
      app/src/main/res/layout/item_import_book.xml

@ -5,10 +5,14 @@ import androidx.documentfile.provider.DocumentFile
import io.legado.app.R
import io.legado.app.base.adapter.ItemViewHolder
import io.legado.app.base.adapter.SimpleRecyclerAdapter
import io.legado.app.constant.AppConst
import io.legado.app.utils.StringUtils
import io.legado.app.utils.gone
import io.legado.app.utils.invisible
import io.legado.app.utils.visible
import kotlinx.android.synthetic.main.item_import_book.view.*
import org.jetbrains.anko.sdk27.listeners.onClick
import java.util.*
class ImportBookAdapter(context: Context, val callBack: CallBack) :
@ -20,9 +24,18 @@ class ImportBookAdapter(context: Context, val callBack: CallBack) :
if (item.isDirectory) {
iv_icon.visible()
cb_select.invisible()
ll_brief.gone()
tv_sub_count.visible()
tv_sub_count.text =
context.getString(R.string.nb_file_sub_count, item.listFiles().size)
} else {
iv_icon.invisible()
cb_select.visible()
ll_brief.visible()
tv_sub_count.gone()
tv_tag.text = item.name?.substringAfterLast(".")
tv_size.text = StringUtils.toSize(item.length())
tv_date.text = AppConst.DATE_FORMAT.format(Date(item.lastModified()))
}
tv_name.text = item.name
onClick {

@ -2,12 +2,15 @@ package io.legado.app.utils
import android.annotation.SuppressLint
import android.text.TextUtils.isEmpty
import java.text.DecimalFormat
import java.text.ParseException
import java.text.SimpleDateFormat
import java.util.*
import java.util.regex.Matcher
import java.util.regex.Pattern
import kotlin.math.abs
import kotlin.math.log10
import kotlin.math.pow
object StringUtils {
private const val HOUR_OF_DAY = 24
@ -97,6 +100,19 @@ object StringUtils {
return ""
}
fun toSize(length: Long): String {
if (length <= 0) return "0"
val units = arrayOf("b", "kb", "M", "G", "T")
//计算单位的,原理是利用lg,公式是 lg(1024^n) = nlg(1024),最后 nlg(1024)/lg(1024) = n。
//计算单位的,原理是利用lg,公式是 lg(1024^n) = nlg(1024),最后 nlg(1024)/lg(1024) = n。
val digitGroups =
(log10(length.toDouble()) / log10(1024.0)).toInt()
//计算原理是,size/单位值。单位值指的是:比如说b = 1024,KB = 1024^2
//计算原理是,size/单位值。单位值指的是:比如说b = 1024,KB = 1024^2
return DecimalFormat("#,##0.##")
.format(length / 1024.0.pow(digitGroups.toDouble())) + " " + units[digitGroups]
}
@SuppressLint("DefaultLocale")
fun toFirstCapital(str: String): String {
return str.substring(0, 1).toUpperCase() + str.substring(1)

@ -62,6 +62,9 @@
android:paddingStart="5dp"
android:paddingEnd="5dp"
android:text="TXT"
android:maxLines="1"
android:maxWidth="50dp"
app:abt_radius="2dp"
tools:ignore="HardcodedText,RtlHardcoded" />
<TextView

Loading…
Cancel
Save