Replace custom visibility extension functions

This commit is contained in:
arkon
2020-07-25 11:55:47 -04:00
parent bdc441a5be
commit 9e51d82154
33 changed files with 187 additions and 230 deletions
@@ -14,6 +14,7 @@ import android.view.View
import android.view.ViewGroup
import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.view.ActionMode
import androidx.core.view.isVisible
import androidx.recyclerview.widget.ConcatAdapter
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
@@ -65,10 +66,8 @@ import eu.kanade.tachiyomi.util.hasCustomCover
import eu.kanade.tachiyomi.util.system.getResourceColor
import eu.kanade.tachiyomi.util.system.toast
import eu.kanade.tachiyomi.util.view.getCoordinates
import eu.kanade.tachiyomi.util.view.gone
import eu.kanade.tachiyomi.util.view.shrinkOnScroll
import eu.kanade.tachiyomi.util.view.snack
import eu.kanade.tachiyomi.util.view.visible
import kotlin.math.min
import kotlinx.android.synthetic.main.main_activity.root_coordinator
import kotlinx.android.synthetic.main.main_activity.toolbar
@@ -316,7 +315,7 @@ class MangaController :
if (view == null) return
// Check if animation view is visible
if (binding.revealView.visibility == View.VISIBLE) {
if (binding.revealView.isVisible) {
// Show the unreveal effect
actionFab?.getCoordinates()?.let { coordinates ->
binding.revealView.hideRevealEffect(coordinates.x, coordinates.y, 1920)
@@ -804,7 +803,7 @@ class MangaController :
// Hide FAB to avoid interfering with the bottom action toolbar
// actionFab?.hide()
actionFab?.gone()
actionFab?.isVisible = false
}
return false
}
@@ -839,7 +838,7 @@ class MangaController :
// TODO: there seems to be a bug in MaterialComponents where the [ExtendedFloatingActionButton]
// fails to show up properly
// actionFab?.show()
actionFab?.visible()
actionFab?.isVisible = true
}
override fun onDetach(view: View) {
@@ -4,11 +4,11 @@ import android.text.SpannableString
import android.text.SpannableStringBuilder
import android.text.style.ForegroundColorSpan
import android.view.View
import androidx.core.view.isVisible
import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.data.database.models.Manga
import eu.kanade.tachiyomi.data.download.model.Download
import eu.kanade.tachiyomi.ui.base.holder.BaseFlexibleViewHolder
import eu.kanade.tachiyomi.util.view.visibleIf
import java.util.Date
import kotlinx.android.synthetic.main.chapters_item.bookmark_icon
import kotlinx.android.synthetic.main.chapters_item.chapter_description
@@ -40,7 +40,7 @@ class ChapterHolder(
chapter_title.setTextColor(chapterColor)
chapter_description.setTextColor(chapterColor)
bookmark_icon.visibleIf { chapter.bookmark }
bookmark_icon.isVisible = chapter.bookmark
val descriptions = mutableListOf<CharSequence>()
@@ -22,11 +22,8 @@ import eu.kanade.tachiyomi.source.model.SManga
import eu.kanade.tachiyomi.source.online.HttpSource
import eu.kanade.tachiyomi.ui.manga.MangaController
import eu.kanade.tachiyomi.util.system.copyToClipboard
import eu.kanade.tachiyomi.util.view.gone
import eu.kanade.tachiyomi.util.view.setChips
import eu.kanade.tachiyomi.util.view.setTooltip
import eu.kanade.tachiyomi.util.view.visible
import eu.kanade.tachiyomi.util.view.visibleIf
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.ExperimentalCoroutinesApi
@@ -105,7 +102,7 @@ class MangaInfoHeaderAdapter(
with(binding.btnTracking) {
if (trackManager.hasLoggedServices()) {
visible()
isVisible = true
if (trackCount > 0) {
setIconResource(R.drawable.ic_done_24dp)
@@ -121,18 +118,18 @@ class MangaInfoHeaderAdapter(
.onEach { controller.onTrackingClick() }
.launchIn(scope)
} else {
gone()
isVisible = false
}
}
if (controller.presenter.source is HttpSource) {
binding.btnWebview.visible()
binding.btnWebview.isVisible = true
binding.btnWebview.clicks()
.onEach { controller.openMangaInWebView() }
.launchIn(scope)
binding.btnWebview.setTooltip(R.string.action_open_in_web_view)
binding.btnShare.visible()
binding.btnShare.isVisible = true
binding.btnShare.clicks()
.onEach { controller.shareManga() }
.launchIn(scope)
@@ -291,7 +288,7 @@ class MangaInfoHeaderAdapter(
binding.mangaGenresTagsCompactChips.setChips(manga.getGenres(), controller::performSearch)
binding.mangaGenresTagsFullChips.setChips(manga.getGenres(), controller::performSearch)
} else {
binding.mangaGenresTagsWrapper.gone()
binding.mangaGenresTagsWrapper.isVisible = false
}
// Handle showing more or less info
@@ -308,10 +305,10 @@ class MangaInfoHeaderAdapter(
}
private fun showMangaInfo(visible: Boolean) {
binding.mangaSummaryLabel.visibleIf { visible }
binding.mangaSummary.visibleIf { visible }
binding.mangaGenresTagsWrapper.visibleIf { visible }
binding.mangaInfoToggle.visibleIf { visible }
binding.mangaSummaryLabel.isVisible = visible
binding.mangaSummary.isVisible = visible
binding.mangaGenresTagsWrapper.isVisible = visible
binding.mangaInfoToggle.isVisible = visible
}
private fun toggleMangaInfo(context: Context) {
@@ -348,8 +345,8 @@ class MangaInfoHeaderAdapter(
}
}
binding.mangaGenresTagsCompact.visibleIf { isExpanded }
binding.mangaGenresTagsFullChips.visibleIf { !isExpanded }
binding.mangaGenresTagsCompact.isVisible = isExpanded
binding.mangaGenresTagsFullChips.isVisible = !isExpanded
}
/**
@@ -1,11 +1,10 @@
package eu.kanade.tachiyomi.ui.manga.track
import android.annotation.SuppressLint
import androidx.core.view.isVisible
import eu.kanade.tachiyomi.data.preference.PreferencesHelper
import eu.kanade.tachiyomi.databinding.TrackItemBinding
import eu.kanade.tachiyomi.ui.base.holder.BaseViewHolder
import eu.kanade.tachiyomi.util.view.gone
import eu.kanade.tachiyomi.util.view.visibleIf
import java.text.DateFormat
import uy.kohesive.injekt.injectLazy
@@ -40,10 +39,10 @@ class TrackHolder(private val binding: TrackItemBinding, adapter: TrackAdapter)
binding.trackLogo.setImageResource(item.service.getLogo())
binding.logoContainer.setBackgroundColor(item.service.getLogoColor())
binding.trackSet.visibleIf { track == null }
binding.trackTitle.visibleIf { track != null }
binding.trackSet.isVisible = track == null
binding.trackTitle.isVisible = track != null
binding.trackDetails.visibleIf { track != null }
binding.trackDetails.isVisible = track != null
if (track != null) {
binding.trackTitle.text = track.title
binding.trackChapters.text = "${track.last_chapter_read}/" +
@@ -57,10 +56,10 @@ class TrackHolder(private val binding: TrackItemBinding, adapter: TrackAdapter)
binding.trackFinishDate.text =
if (track.finished_reading_date != 0L) dateFormat.format(track.finished_reading_date) else "-"
} else {
binding.bottomDivider.gone()
binding.vertDivider3.gone()
binding.trackStartDate.gone()
binding.trackFinishDate.gone()
binding.bottomDivider.isVisible = false
binding.vertDivider3.isVisible = false
binding.trackStartDate.isVisible = false
binding.trackFinishDate.isVisible = false
}
}
}
@@ -4,11 +4,11 @@ import android.content.Context
import android.view.View
import android.view.ViewGroup
import android.widget.ArrayAdapter
import androidx.core.view.isVisible
import com.bumptech.glide.load.engine.DiskCacheStrategy
import eu.kanade.tachiyomi.R
import eu.kanade.tachiyomi.data.glide.GlideApp
import eu.kanade.tachiyomi.data.track.model.TrackSearch
import eu.kanade.tachiyomi.util.view.gone
import eu.kanade.tachiyomi.util.view.inflate
import kotlinx.android.synthetic.main.track_search_item.view.track_search_cover
import kotlinx.android.synthetic.main.track_search_item.view.track_search_start
@@ -62,22 +62,22 @@ class TrackSearchAdapter(context: Context) :
}
if (track.publishing_status.isBlank()) {
view.track_search_status.gone()
view.track_search_status_result.gone()
view.track_search_status.isVisible = false
view.track_search_status_result.isVisible = false
} else {
view.track_search_status_result.text = track.publishing_status.capitalize()
}
if (track.publishing_type.isBlank()) {
view.track_search_type.gone()
view.track_search_type_result.gone()
view.track_search_type.isVisible = false
view.track_search_type_result.isVisible = false
} else {
view.track_search_type_result.text = track.publishing_type.capitalize()
}
if (track.start_date.isBlank()) {
view.track_search_start.gone()
view.track_search_start_result.gone()
view.track_search_start.isVisible = false
view.track_search_start_result.isVisible = false
} else {
view.track_search_start_result.text = track.start_date
}
@@ -3,6 +3,8 @@ package eu.kanade.tachiyomi.ui.manga.track
import android.app.Dialog
import android.os.Bundle
import android.view.View
import androidx.core.view.isInvisible
import androidx.core.view.isVisible
import com.afollestad.materialdialogs.MaterialDialog
import com.afollestad.materialdialogs.customview.customView
import eu.kanade.tachiyomi.R
@@ -11,8 +13,6 @@ import eu.kanade.tachiyomi.data.track.TrackManager
import eu.kanade.tachiyomi.data.track.TrackService
import eu.kanade.tachiyomi.data.track.model.TrackSearch
import eu.kanade.tachiyomi.ui.base.controller.DialogController
import eu.kanade.tachiyomi.util.view.invisible
import eu.kanade.tachiyomi.util.view.visible
import java.util.concurrent.TimeUnit
import kotlinx.android.synthetic.main.track_search_dialog.view.progress
import kotlinx.android.synthetic.main.track_search_dialog.view.track_search
@@ -108,23 +108,23 @@ class TrackSearchDialog : DialogController {
private fun search(query: String) {
val view = dialogView ?: return
view.progress.visible()
view.track_search_list.invisible()
view.progress.isVisible = true
view.track_search_list.isInvisible = true
trackController.presenter.search(query, service)
}
fun onSearchResults(results: List<TrackSearch>) {
selectedItem = null
val view = dialogView ?: return
view.progress.invisible()
view.track_search_list.visible()
view.progress.isInvisible = true
view.track_search_list.isVisible = true
adapter?.setItems(results)
}
fun onSearchResultsError() {
val view = dialogView ?: return
view.progress.visible()
view.track_search_list.invisible()
view.progress.isVisible = true
view.track_search_list.isInvisible = true
adapter?.setItems(emptyList())
}