mirror of
https://github.com/tachiyomiorg/tachiyomi.git
synced 2024-11-10 10:27:48 +01:00
Strip out no longer used tracker start/end date code
Unfortunately MAL was the only one that supported it in the app, but the official API doesn't support it, so now no trackers have it.
This commit is contained in:
parent
450bef278b
commit
6e7fefb8b2
14 changed files with 10 additions and 226 deletions
|
@ -22,9 +22,9 @@ data class BackupTracking(
|
||||||
@ProtoNumber(8) var score: Float = 0F,
|
@ProtoNumber(8) var score: Float = 0F,
|
||||||
@ProtoNumber(9) var status: Int = 0,
|
@ProtoNumber(9) var status: Int = 0,
|
||||||
// startedReadingDate is called startReadTime in 1.x
|
// startedReadingDate is called startReadTime in 1.x
|
||||||
@ProtoNumber(10) var startedReadingDate: Long = 0,
|
// @ProtoNumber(10) var startedReadingDate: Long = 0,
|
||||||
// finishedReadingDate is called endReadTime in 1.x
|
// finishedReadingDate is called endReadTime in 1.x
|
||||||
@ProtoNumber(11) var finishedReadingDate: Long = 0,
|
// @ProtoNumber(11) var finishedReadingDate: Long = 0,
|
||||||
) {
|
) {
|
||||||
fun getTrackingImpl(): TrackImpl {
|
fun getTrackingImpl(): TrackImpl {
|
||||||
return TrackImpl().apply {
|
return TrackImpl().apply {
|
||||||
|
@ -37,8 +37,6 @@ data class BackupTracking(
|
||||||
total_chapters = this@BackupTracking.totalChapters
|
total_chapters = this@BackupTracking.totalChapters
|
||||||
score = this@BackupTracking.score
|
score = this@BackupTracking.score
|
||||||
status = this@BackupTracking.status
|
status = this@BackupTracking.status
|
||||||
started_reading_date = this@BackupTracking.startedReadingDate
|
|
||||||
finished_reading_date = this@BackupTracking.finishedReadingDate
|
|
||||||
tracking_url = this@BackupTracking.trackingUrl
|
tracking_url = this@BackupTracking.trackingUrl
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -56,8 +54,6 @@ data class BackupTracking(
|
||||||
totalChapters = track.total_chapters,
|
totalChapters = track.total_chapters,
|
||||||
score = track.score,
|
score = track.score,
|
||||||
status = track.status,
|
status = track.status,
|
||||||
startedReadingDate = track.started_reading_date,
|
|
||||||
finishedReadingDate = track.finished_reading_date,
|
|
||||||
trackingUrl = track.tracking_url
|
trackingUrl = track.tracking_url
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
@ -56,8 +56,10 @@ class TrackPutResolver : DefaultPutResolver<Track>() {
|
||||||
put(COL_STATUS, obj.status)
|
put(COL_STATUS, obj.status)
|
||||||
put(COL_TRACKING_URL, obj.tracking_url)
|
put(COL_TRACKING_URL, obj.tracking_url)
|
||||||
put(COL_SCORE, obj.score)
|
put(COL_SCORE, obj.score)
|
||||||
put(COL_START_DATE, obj.started_reading_date)
|
|
||||||
put(COL_FINISH_DATE, obj.finished_reading_date)
|
// These aren't used anymore
|
||||||
|
put(COL_START_DATE, 0)
|
||||||
|
put(COL_FINISH_DATE, 0)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -75,8 +77,6 @@ class TrackGetResolver : DefaultGetResolver<Track>() {
|
||||||
status = cursor.getInt(cursor.getColumnIndex(COL_STATUS))
|
status = cursor.getInt(cursor.getColumnIndex(COL_STATUS))
|
||||||
score = cursor.getFloat(cursor.getColumnIndex(COL_SCORE))
|
score = cursor.getFloat(cursor.getColumnIndex(COL_SCORE))
|
||||||
tracking_url = cursor.getString(cursor.getColumnIndex(COL_TRACKING_URL))
|
tracking_url = cursor.getString(cursor.getColumnIndex(COL_TRACKING_URL))
|
||||||
started_reading_date = cursor.getLong(cursor.getColumnIndex(COL_START_DATE))
|
|
||||||
finished_reading_date = cursor.getLong(cursor.getColumnIndex(COL_FINISH_DATE))
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -24,18 +24,12 @@ interface Track : Serializable {
|
||||||
|
|
||||||
var status: Int
|
var status: Int
|
||||||
|
|
||||||
var started_reading_date: Long
|
|
||||||
|
|
||||||
var finished_reading_date: Long
|
|
||||||
|
|
||||||
var tracking_url: String
|
var tracking_url: String
|
||||||
|
|
||||||
fun copyPersonalFrom(other: Track) {
|
fun copyPersonalFrom(other: Track) {
|
||||||
last_chapter_read = other.last_chapter_read
|
last_chapter_read = other.last_chapter_read
|
||||||
score = other.score
|
score = other.score
|
||||||
status = other.status
|
status = other.status
|
||||||
started_reading_date = other.started_reading_date
|
|
||||||
finished_reading_date = other.finished_reading_date
|
|
||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
|
|
|
@ -22,10 +22,6 @@ class TrackImpl : Track {
|
||||||
|
|
||||||
override var status: Int = 0
|
override var status: Int = 0
|
||||||
|
|
||||||
override var started_reading_date: Long = 0
|
|
||||||
|
|
||||||
override var finished_reading_date: Long = 0
|
|
||||||
|
|
||||||
override var tracking_url: String = ""
|
override var tracking_url: String = ""
|
||||||
|
|
||||||
override fun equals(other: Any?): Boolean {
|
override fun equals(other: Any?): Boolean {
|
||||||
|
|
|
@ -23,9 +23,6 @@ abstract class TrackService(val id: Int) {
|
||||||
// Name of the manga sync service to display
|
// Name of the manga sync service to display
|
||||||
abstract val name: String
|
abstract val name: String
|
||||||
|
|
||||||
// Application and remote support for reading dates
|
|
||||||
open val supportsReadingDates: Boolean = false
|
|
||||||
|
|
||||||
@DrawableRes
|
@DrawableRes
|
||||||
abstract fun getLogo(): Int
|
abstract fun getLogo(): Int
|
||||||
|
|
||||||
|
|
|
@ -24,10 +24,6 @@ class TrackSearch : Track {
|
||||||
|
|
||||||
override var status: Int = 0
|
override var status: Int = 0
|
||||||
|
|
||||||
override var started_reading_date: Long = 0
|
|
||||||
|
|
||||||
override var finished_reading_date: Long = 0
|
|
||||||
|
|
||||||
override lateinit var tracking_url: String
|
override lateinit var tracking_url: String
|
||||||
|
|
||||||
var cover_url: String = ""
|
var cover_url: String = ""
|
||||||
|
|
|
@ -76,6 +76,7 @@ class MyAnimeList(private val context: Context, id: Int) : TrackService(id) {
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun bind(track: Track): Observable<Track> {
|
override fun bind(track: Track): Observable<Track> {
|
||||||
|
// TODO: change this to call add and update like the other trackers?
|
||||||
return runAsObservable { api.getListItem(track) }
|
return runAsObservable { api.getListItem(track) }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,85 +0,0 @@
|
||||||
package eu.kanade.tachiyomi.ui.manga.track
|
|
||||||
|
|
||||||
import android.app.Dialog
|
|
||||||
import android.os.Bundle
|
|
||||||
import androidx.core.os.bundleOf
|
|
||||||
import com.afollestad.materialdialogs.MaterialDialog
|
|
||||||
import com.afollestad.materialdialogs.datetime.datePicker
|
|
||||||
import com.bluelinelabs.conductor.Controller
|
|
||||||
import eu.kanade.tachiyomi.R
|
|
||||||
import eu.kanade.tachiyomi.data.database.models.Track
|
|
||||||
import eu.kanade.tachiyomi.data.track.TrackManager
|
|
||||||
import eu.kanade.tachiyomi.ui.base.controller.DialogController
|
|
||||||
import uy.kohesive.injekt.Injekt
|
|
||||||
import uy.kohesive.injekt.api.get
|
|
||||||
import java.util.Calendar
|
|
||||||
|
|
||||||
class SetTrackReadingDatesDialog<T> : DialogController
|
|
||||||
where T : Controller, T : SetTrackReadingDatesDialog.Listener {
|
|
||||||
|
|
||||||
private val item: TrackItem
|
|
||||||
|
|
||||||
private val dateToUpdate: ReadingDate
|
|
||||||
|
|
||||||
constructor(target: T, dateToUpdate: ReadingDate, item: TrackItem) : super(
|
|
||||||
bundleOf(KEY_ITEM_TRACK to item.track)
|
|
||||||
) {
|
|
||||||
targetController = target
|
|
||||||
this.item = item
|
|
||||||
this.dateToUpdate = dateToUpdate
|
|
||||||
}
|
|
||||||
|
|
||||||
@Suppress("unused")
|
|
||||||
constructor(bundle: Bundle) : super(bundle) {
|
|
||||||
val track = bundle.getSerializable(KEY_ITEM_TRACK) as Track
|
|
||||||
val service = Injekt.get<TrackManager>().getService(track.sync_id)!!
|
|
||||||
item = TrackItem(track, service)
|
|
||||||
dateToUpdate = ReadingDate.Start
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onCreateDialog(savedViewState: Bundle?): Dialog {
|
|
||||||
val listener = (targetController as? Listener)
|
|
||||||
|
|
||||||
return MaterialDialog(activity!!)
|
|
||||||
.title(
|
|
||||||
when (dateToUpdate) {
|
|
||||||
ReadingDate.Start -> R.string.track_started_reading_date
|
|
||||||
ReadingDate.Finish -> R.string.track_finished_reading_date
|
|
||||||
}
|
|
||||||
)
|
|
||||||
.datePicker(currentDate = getCurrentDate()) { _, date ->
|
|
||||||
listener?.setReadingDate(item, dateToUpdate, date.timeInMillis)
|
|
||||||
}
|
|
||||||
.neutralButton(R.string.action_remove) {
|
|
||||||
listener?.setReadingDate(item, dateToUpdate, 0L)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun getCurrentDate(): Calendar {
|
|
||||||
// Today if no date is set, otherwise the already set date
|
|
||||||
return Calendar.getInstance().apply {
|
|
||||||
item.track?.let {
|
|
||||||
val date = when (dateToUpdate) {
|
|
||||||
ReadingDate.Start -> it.started_reading_date
|
|
||||||
ReadingDate.Finish -> it.finished_reading_date
|
|
||||||
}
|
|
||||||
if (date != 0L) {
|
|
||||||
timeInMillis = date
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
interface Listener {
|
|
||||||
fun setReadingDate(item: TrackItem, type: ReadingDate, date: Long)
|
|
||||||
}
|
|
||||||
|
|
||||||
enum class ReadingDate {
|
|
||||||
Start,
|
|
||||||
Finish
|
|
||||||
}
|
|
||||||
|
|
||||||
companion object {
|
|
||||||
private const val KEY_ITEM_TRACK = "SetTrackReadingDatesDialog.item.track"
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -43,7 +43,5 @@ class TrackAdapter(controller: TrackController) : RecyclerView.Adapter<TrackHold
|
||||||
fun onStatusClick(position: Int)
|
fun onStatusClick(position: Int)
|
||||||
fun onChaptersClick(position: Int)
|
fun onChaptersClick(position: Int)
|
||||||
fun onScoreClick(position: Int)
|
fun onScoreClick(position: Int)
|
||||||
fun onStartDateClick(position: Int)
|
|
||||||
fun onFinishDateClick(position: Int)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,8 +27,7 @@ class TrackController :
|
||||||
TrackAdapter.OnClickListener,
|
TrackAdapter.OnClickListener,
|
||||||
SetTrackStatusDialog.Listener,
|
SetTrackStatusDialog.Listener,
|
||||||
SetTrackChaptersDialog.Listener,
|
SetTrackChaptersDialog.Listener,
|
||||||
SetTrackScoreDialog.Listener,
|
SetTrackScoreDialog.Listener {
|
||||||
SetTrackReadingDatesDialog.Listener {
|
|
||||||
|
|
||||||
constructor(manga: Manga?) : super(
|
constructor(manga: Manga?) : super(
|
||||||
bundleOf(MANGA_EXTRA to (manga?.id ?: 0))
|
bundleOf(MANGA_EXTRA to (manga?.id ?: 0))
|
||||||
|
@ -155,20 +154,6 @@ class TrackController :
|
||||||
SetTrackScoreDialog(this, item).showDialog(router)
|
SetTrackScoreDialog(this, item).showDialog(router)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onStartDateClick(position: Int) {
|
|
||||||
val item = adapter?.getItem(position) ?: return
|
|
||||||
if (item.track == null) return
|
|
||||||
|
|
||||||
SetTrackReadingDatesDialog(this, SetTrackReadingDatesDialog.ReadingDate.Start, item).showDialog(router)
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onFinishDateClick(position: Int) {
|
|
||||||
val item = adapter?.getItem(position) ?: return
|
|
||||||
if (item.track == null) return
|
|
||||||
|
|
||||||
SetTrackReadingDatesDialog(this, SetTrackReadingDatesDialog.ReadingDate.Finish, item).showDialog(router)
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun setStatus(item: TrackItem, selection: Int) {
|
override fun setStatus(item: TrackItem, selection: Int) {
|
||||||
presenter.setStatus(item, selection)
|
presenter.setStatus(item, selection)
|
||||||
binding.swipeRefresh.isRefreshing = true
|
binding.swipeRefresh.isRefreshing = true
|
||||||
|
@ -184,14 +169,6 @@ class TrackController :
|
||||||
binding.swipeRefresh.isRefreshing = true
|
binding.swipeRefresh.isRefreshing = true
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun setReadingDate(item: TrackItem, type: SetTrackReadingDatesDialog.ReadingDate, date: Long) {
|
|
||||||
when (type) {
|
|
||||||
SetTrackReadingDatesDialog.ReadingDate.Start -> presenter.setStartDate(item, date)
|
|
||||||
SetTrackReadingDatesDialog.ReadingDate.Finish -> presenter.setFinishDate(item, date)
|
|
||||||
}
|
|
||||||
binding.swipeRefresh.isRefreshing = true
|
|
||||||
}
|
|
||||||
|
|
||||||
private companion object {
|
private companion object {
|
||||||
const val MANGA_EXTRA = "manga"
|
const val MANGA_EXTRA = "manga"
|
||||||
const val TAG_SEARCH_CONTROLLER = "track_search_controller"
|
const val TAG_SEARCH_CONTROLLER = "track_search_controller"
|
||||||
|
|
|
@ -6,16 +6,11 @@ import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
||||||
import eu.kanade.tachiyomi.databinding.TrackItemBinding
|
import eu.kanade.tachiyomi.databinding.TrackItemBinding
|
||||||
import eu.kanade.tachiyomi.ui.base.holder.BaseViewHolder
|
import eu.kanade.tachiyomi.ui.base.holder.BaseViewHolder
|
||||||
import uy.kohesive.injekt.injectLazy
|
import uy.kohesive.injekt.injectLazy
|
||||||
import java.text.DateFormat
|
|
||||||
|
|
||||||
class TrackHolder(private val binding: TrackItemBinding, adapter: TrackAdapter) : BaseViewHolder(binding.root) {
|
class TrackHolder(private val binding: TrackItemBinding, adapter: TrackAdapter) : BaseViewHolder(binding.root) {
|
||||||
|
|
||||||
private val preferences: PreferencesHelper by injectLazy()
|
private val preferences: PreferencesHelper by injectLazy()
|
||||||
|
|
||||||
private val dateFormat: DateFormat by lazy {
|
|
||||||
preferences.dateFormat()
|
|
||||||
}
|
|
||||||
|
|
||||||
init {
|
init {
|
||||||
val listener = adapter.rowClickListener
|
val listener = adapter.rowClickListener
|
||||||
|
|
||||||
|
@ -29,8 +24,6 @@ class TrackHolder(private val binding: TrackItemBinding, adapter: TrackAdapter)
|
||||||
binding.trackStatus.setOnClickListener { listener.onStatusClick(bindingAdapterPosition) }
|
binding.trackStatus.setOnClickListener { listener.onStatusClick(bindingAdapterPosition) }
|
||||||
binding.trackChapters.setOnClickListener { listener.onChaptersClick(bindingAdapterPosition) }
|
binding.trackChapters.setOnClickListener { listener.onChaptersClick(bindingAdapterPosition) }
|
||||||
binding.trackScore.setOnClickListener { listener.onScoreClick(bindingAdapterPosition) }
|
binding.trackScore.setOnClickListener { listener.onScoreClick(bindingAdapterPosition) }
|
||||||
binding.trackStartDate.setOnClickListener { listener.onStartDateClick(bindingAdapterPosition) }
|
|
||||||
binding.trackFinishDate.setOnClickListener { listener.onFinishDateClick(bindingAdapterPosition) }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressLint("SetTextI18n")
|
@SuppressLint("SetTextI18n")
|
||||||
|
@ -49,18 +42,6 @@ class TrackHolder(private val binding: TrackItemBinding, adapter: TrackAdapter)
|
||||||
if (track.total_chapters > 0) track.total_chapters else "-"
|
if (track.total_chapters > 0) track.total_chapters else "-"
|
||||||
binding.trackStatus.text = item.service.getStatus(track.status)
|
binding.trackStatus.text = item.service.getStatus(track.status)
|
||||||
binding.trackScore.text = if (track.score == 0f) "-" else item.service.displayScore(track)
|
binding.trackScore.text = if (track.score == 0f) "-" else item.service.displayScore(track)
|
||||||
|
|
||||||
if (item.service.supportsReadingDates) {
|
|
||||||
binding.trackStartDate.text =
|
|
||||||
if (track.started_reading_date != 0L) dateFormat.format(track.started_reading_date) else "-"
|
|
||||||
binding.trackFinishDate.text =
|
|
||||||
if (track.finished_reading_date != 0L) dateFormat.format(track.finished_reading_date) else "-"
|
|
||||||
} else {
|
|
||||||
binding.bottomDivider.isVisible = false
|
|
||||||
binding.vertDivider3.isVisible = false
|
|
||||||
binding.trackStartDate.isVisible = false
|
|
||||||
binding.trackFinishDate.isVisible = false
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -145,16 +145,4 @@ class TrackPresenter(
|
||||||
}
|
}
|
||||||
updateRemote(track, item.service)
|
updateRemote(track, item.service)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun setStartDate(item: TrackItem, date: Long) {
|
|
||||||
val track = item.track!!
|
|
||||||
track.started_reading_date = date
|
|
||||||
updateRemote(track, item.service)
|
|
||||||
}
|
|
||||||
|
|
||||||
fun setFinishDate(item: TrackItem, date: Long) {
|
|
||||||
val track = item.track!!
|
|
||||||
track.finished_reading_date = date
|
|
||||||
updateRemote(track, item.service)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -105,7 +105,7 @@
|
||||||
android:layout_marginBottom="8dp"
|
android:layout_marginBottom="8dp"
|
||||||
android:alpha="0.25"
|
android:alpha="0.25"
|
||||||
android:background="?android:attr/textColorHint"
|
android:background="?android:attr/textColorHint"
|
||||||
app:layout_constraintBottom_toTopOf="@+id/bottom_divider"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintEnd_toStartOf="@+id/track_chapters"
|
app:layout_constraintEnd_toStartOf="@+id/track_chapters"
|
||||||
app:layout_constraintStart_toEndOf="@+id/track_status"
|
app:layout_constraintStart_toEndOf="@+id/track_status"
|
||||||
app:layout_constraintTop_toTopOf="parent" />
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
@ -133,7 +133,7 @@
|
||||||
android:layout_marginBottom="8dp"
|
android:layout_marginBottom="8dp"
|
||||||
android:alpha="0.25"
|
android:alpha="0.25"
|
||||||
android:background="?android:attr/textColorHint"
|
android:background="?android:attr/textColorHint"
|
||||||
app:layout_constraintBottom_toTopOf="@+id/bottom_divider"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintEnd_toStartOf="@+id/track_score"
|
app:layout_constraintEnd_toStartOf="@+id/track_score"
|
||||||
app:layout_constraintStart_toEndOf="@+id/track_chapters"
|
app:layout_constraintStart_toEndOf="@+id/track_chapters"
|
||||||
app:layout_constraintTop_toTopOf="parent" />
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
@ -153,59 +153,6 @@
|
||||||
app:layout_constraintTop_toBottomOf="@+id/top_divider"
|
app:layout_constraintTop_toBottomOf="@+id/top_divider"
|
||||||
tools:text="10" />
|
tools:text="10" />
|
||||||
|
|
||||||
<View
|
|
||||||
android:id="@+id/bottom_divider"
|
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="1dp"
|
|
||||||
android:alpha="0.25"
|
|
||||||
android:background="?android:attr/textColorHint"
|
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
|
||||||
app:layout_constraintTop_toBottomOf="@+id/track_score" />
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/track_start_date"
|
|
||||||
style="@style/TextAppearance.Regular.Body1.Secondary"
|
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:background="@drawable/list_item_selector"
|
|
||||||
android:ellipsize="end"
|
|
||||||
android:gravity="center"
|
|
||||||
android:maxLines="1"
|
|
||||||
android:padding="16dp"
|
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
|
||||||
app:layout_constraintEnd_toStartOf="@+id/vert_divider_3"
|
|
||||||
app:layout_constraintTop_toBottomOf="@+id/bottom_divider"
|
|
||||||
tools:text="4/16/2020" />
|
|
||||||
|
|
||||||
<View
|
|
||||||
android:id="@+id/vert_divider_3"
|
|
||||||
android:layout_width="1dp"
|
|
||||||
android:layout_height="0dp"
|
|
||||||
android:layout_marginTop="8dp"
|
|
||||||
android:layout_marginBottom="8dp"
|
|
||||||
android:alpha="0.25"
|
|
||||||
android:background="?android:attr/textColorHint"
|
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
|
||||||
app:layout_constraintStart_toEndOf="@+id/track_start_date"
|
|
||||||
app:layout_constraintEnd_toStartOf="@+id/track_finish_date"
|
|
||||||
app:layout_constraintTop_toTopOf="@+id/bottom_divider" />
|
|
||||||
|
|
||||||
<TextView
|
|
||||||
android:id="@+id/track_finish_date"
|
|
||||||
style="@style/TextAppearance.Regular.Body1.Secondary"
|
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:background="@drawable/list_item_selector"
|
|
||||||
android:ellipsize="end"
|
|
||||||
android:gravity="center"
|
|
||||||
android:maxLines="1"
|
|
||||||
android:padding="16dp"
|
|
||||||
app:layout_constraintStart_toEndOf="@+id/vert_divider_3"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
|
||||||
app:layout_constraintTop_toBottomOf="@+id/bottom_divider"
|
|
||||||
tools:text="4/16/2020" />
|
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
|
@ -564,8 +564,6 @@
|
||||||
<string name="status">Status</string>
|
<string name="status">Status</string>
|
||||||
<string name="track_status">Status</string>
|
<string name="track_status">Status</string>
|
||||||
<string name="track_start_date">Started</string>
|
<string name="track_start_date">Started</string>
|
||||||
<string name="track_started_reading_date">Started reading date</string>
|
|
||||||
<string name="track_finished_reading_date">Finished reading date</string>
|
|
||||||
<string name="track_type">Type</string>
|
<string name="track_type">Type</string>
|
||||||
<string name="track_author">Author</string>
|
<string name="track_author">Author</string>
|
||||||
<string name="error_invalid_date_supplied">Invalid date supplied</string>
|
<string name="error_invalid_date_supplied">Invalid date supplied</string>
|
||||||
|
|
Loading…
Reference in a new issue