Replace more Kotlin synthetics
This commit is contained in:
@@ -9,16 +9,8 @@ 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.databinding.TrackSearchItemBinding
|
||||
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
|
||||
import kotlinx.android.synthetic.main.track_search_item.view.track_search_start_result
|
||||
import kotlinx.android.synthetic.main.track_search_item.view.track_search_status
|
||||
import kotlinx.android.synthetic.main.track_search_item.view.track_search_status_result
|
||||
import kotlinx.android.synthetic.main.track_search_item.view.track_search_summary
|
||||
import kotlinx.android.synthetic.main.track_search_item.view.track_search_title
|
||||
import kotlinx.android.synthetic.main.track_search_item.view.track_search_type
|
||||
import kotlinx.android.synthetic.main.track_search_item.view.track_search_type_result
|
||||
|
||||
class TrackSearchAdapter(context: Context) :
|
||||
ArrayAdapter<TrackSearch>(context, R.layout.track_search_item, mutableListOf<TrackSearch>()) {
|
||||
@@ -49,37 +41,39 @@ class TrackSearchAdapter(context: Context) :
|
||||
|
||||
class TrackSearchHolder(private val view: View) {
|
||||
|
||||
private val binding = TrackSearchItemBinding.bind(view)
|
||||
|
||||
fun onSetValues(track: TrackSearch) {
|
||||
view.track_search_title.text = track.title
|
||||
view.track_search_summary.text = track.summary
|
||||
GlideApp.with(view.context).clear(view.track_search_cover)
|
||||
binding.trackSearchTitle.text = track.title
|
||||
binding.trackSearchSummary.text = track.summary
|
||||
GlideApp.with(view.context).clear(binding.trackSearchCover)
|
||||
if (!track.cover_url.isEmpty()) {
|
||||
GlideApp.with(view.context)
|
||||
.load(track.cover_url)
|
||||
.diskCacheStrategy(DiskCacheStrategy.RESOURCE)
|
||||
.centerCrop()
|
||||
.into(view.track_search_cover)
|
||||
.into(binding.trackSearchCover)
|
||||
}
|
||||
|
||||
if (track.publishing_status.isBlank()) {
|
||||
view.track_search_status.isVisible = false
|
||||
view.track_search_status_result.isVisible = false
|
||||
binding.trackSearchStatus.isVisible = false
|
||||
binding.trackSearchStatusResult.isVisible = false
|
||||
} else {
|
||||
view.track_search_status_result.text = track.publishing_status.capitalize()
|
||||
binding.trackSearchStatusResult.text = track.publishing_status.capitalize()
|
||||
}
|
||||
|
||||
if (track.publishing_type.isBlank()) {
|
||||
view.track_search_type.isVisible = false
|
||||
view.track_search_type_result.isVisible = false
|
||||
binding.trackSearchType.isVisible = false
|
||||
binding.trackSearchTypeResult.isVisible = false
|
||||
} else {
|
||||
view.track_search_type_result.text = track.publishing_type.capitalize()
|
||||
binding.trackSearchTypeResult.text = track.publishing_type.capitalize()
|
||||
}
|
||||
|
||||
if (track.start_date.isBlank()) {
|
||||
view.track_search_start.isVisible = false
|
||||
view.track_search_start_result.isVisible = false
|
||||
binding.trackSearchStart.isVisible = false
|
||||
binding.trackSearchStartResult.isVisible = false
|
||||
} else {
|
||||
view.track_search_start_result.text = track.start_date
|
||||
binding.trackSearchStartResult.text = track.start_date
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package eu.kanade.tachiyomi.ui.manga.track
|
||||
|
||||
import android.app.Dialog
|
||||
import android.os.Bundle
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import androidx.core.os.bundleOf
|
||||
import androidx.core.view.isInvisible
|
||||
@@ -13,10 +14,8 @@ import eu.kanade.tachiyomi.data.database.models.Track
|
||||
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.databinding.TrackSearchDialogBinding
|
||||
import eu.kanade.tachiyomi.ui.base.controller.DialogController
|
||||
import kotlinx.android.synthetic.main.track_search_dialog.view.progress
|
||||
import kotlinx.android.synthetic.main.track_search_dialog.view.track_search
|
||||
import kotlinx.android.synthetic.main.track_search_dialog.view.track_search_list
|
||||
import kotlinx.coroutines.flow.debounce
|
||||
import kotlinx.coroutines.flow.filter
|
||||
import kotlinx.coroutines.flow.launchIn
|
||||
@@ -29,7 +28,7 @@ import java.util.concurrent.TimeUnit
|
||||
|
||||
class TrackSearchDialog : DialogController {
|
||||
|
||||
private var dialogView: View? = null
|
||||
private var binding: TrackSearchDialogBinding? = null
|
||||
|
||||
private var adapter: TrackSearchAdapter? = null
|
||||
|
||||
@@ -53,13 +52,13 @@ class TrackSearchDialog : DialogController {
|
||||
}
|
||||
|
||||
override fun onCreateDialog(savedViewState: Bundle?): Dialog {
|
||||
binding = TrackSearchDialogBinding.inflate(LayoutInflater.from(activity!!))
|
||||
val dialog = MaterialDialog(activity!!)
|
||||
.customView(R.layout.track_search_dialog)
|
||||
.customView(view = binding!!.root)
|
||||
.positiveButton(android.R.string.ok) { onPositiveButtonClick() }
|
||||
.negativeButton(android.R.string.cancel)
|
||||
.neutralButton(R.string.action_remove) { onRemoveButtonClick() }
|
||||
|
||||
dialogView = dialog.view
|
||||
onViewCreated(dialog.view, savedViewState)
|
||||
|
||||
return dialog
|
||||
@@ -69,12 +68,12 @@ class TrackSearchDialog : DialogController {
|
||||
// Create adapter
|
||||
val adapter = TrackSearchAdapter(view.context)
|
||||
this.adapter = adapter
|
||||
view.track_search_list.adapter = adapter
|
||||
binding!!.trackSearchList.adapter = adapter
|
||||
|
||||
// Set listeners
|
||||
selectedItem = null
|
||||
|
||||
view.track_search_list.itemClicks()
|
||||
binding!!.trackSearchList.itemClicks()
|
||||
.onEach { position ->
|
||||
selectedItem = adapter.getItem(position)
|
||||
}
|
||||
@@ -83,20 +82,20 @@ class TrackSearchDialog : DialogController {
|
||||
// Do an initial search based on the manga's title
|
||||
if (savedState == null) {
|
||||
val title = trackController.presenter.manga.title
|
||||
view.track_search.append(title)
|
||||
binding!!.trackSearch.append(title)
|
||||
search(title)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onDestroyView(view: View) {
|
||||
super.onDestroyView(view)
|
||||
dialogView = null
|
||||
binding = null
|
||||
adapter = null
|
||||
}
|
||||
|
||||
override fun onAttach(view: View) {
|
||||
super.onAttach(view)
|
||||
dialogView!!.track_search.textChanges()
|
||||
binding!!.trackSearch.textChanges()
|
||||
.debounce(TimeUnit.SECONDS.toMillis(1))
|
||||
.filter { it.isNotBlank() }
|
||||
.onEach { search(it.toString()) }
|
||||
@@ -104,24 +103,24 @@ class TrackSearchDialog : DialogController {
|
||||
}
|
||||
|
||||
private fun search(query: String) {
|
||||
val view = dialogView ?: return
|
||||
view.progress.isVisible = true
|
||||
view.track_search_list.isInvisible = true
|
||||
val binding = binding ?: return
|
||||
binding.progress.isVisible = true
|
||||
binding.trackSearchList.isInvisible = true
|
||||
trackController.presenter.search(query, service)
|
||||
}
|
||||
|
||||
fun onSearchResults(results: List<TrackSearch>) {
|
||||
selectedItem = null
|
||||
val view = dialogView ?: return
|
||||
view.progress.isInvisible = true
|
||||
view.track_search_list.isVisible = true
|
||||
val binding = binding ?: return
|
||||
binding.progress.isInvisible = true
|
||||
binding.trackSearchList.isVisible = true
|
||||
adapter?.setItems(results)
|
||||
}
|
||||
|
||||
fun onSearchResultsError() {
|
||||
val view = dialogView ?: return
|
||||
view.progress.isVisible = true
|
||||
view.track_search_list.isInvisible = true
|
||||
val binding = binding ?: return
|
||||
binding.progress.isVisible = true
|
||||
binding.trackSearchList.isInvisible = true
|
||||
adapter?.setItems(emptyList())
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user