diff --git a/app/src/main/java/org/koitharu/kotatsu/tracker/TrackerModule.kt b/app/src/main/java/org/koitharu/kotatsu/tracker/TrackerModule.kt index a4bdd5230..a08495f54 100644 --- a/app/src/main/java/org/koitharu/kotatsu/tracker/TrackerModule.kt +++ b/app/src/main/java/org/koitharu/kotatsu/tracker/TrackerModule.kt @@ -1,6 +1,5 @@ package org.koitharu.kotatsu.tracker -import org.koin.android.ext.koin.androidContext import org.koin.androidx.viewmodel.dsl.viewModel import org.koin.dsl.module import org.koitharu.kotatsu.tracker.domain.TrackingRepository @@ -11,5 +10,5 @@ val trackerModule single { TrackingRepository(get()) } - viewModel { FeedViewModel(androidContext(), get()) } + viewModel { FeedViewModel(get()) } } \ No newline at end of file diff --git a/app/src/main/java/org/koitharu/kotatsu/tracker/ui/FeedFragment.kt b/app/src/main/java/org/koitharu/kotatsu/tracker/ui/FeedFragment.kt index 510fe083b..a98bf12ad 100644 --- a/app/src/main/java/org/koitharu/kotatsu/tracker/ui/FeedFragment.kt +++ b/app/src/main/java/org/koitharu/kotatsu/tracker/ui/FeedFragment.kt @@ -4,7 +4,9 @@ import android.os.Bundle import android.view.* import androidx.core.graphics.Insets import androidx.core.view.updatePadding +import androidx.recyclerview.widget.RecyclerView import com.google.android.material.dialog.MaterialAlertDialogBuilder +import com.google.android.material.divider.MaterialDividerItemDecoration import com.google.android.material.snackbar.Snackbar import org.koin.android.ext.android.get import org.koin.androidx.viewmodel.ext.android.viewModel @@ -50,6 +52,9 @@ class FeedFragment : BaseFragment(), PaginationScrollListen adapter = feedAdapter setHasFixedSize(true) addOnScrollListener(PaginationScrollListener(4, this@FeedFragment)) + val dividerDecoration = MaterialDividerItemDecoration(context, RecyclerView.VERTICAL) + dividerDecoration.setDividerInsetStartResource(context, R.dimen.feed_dividers_offset) + addItemDecoration(dividerDecoration) } viewModel.content.observe(viewLifecycleOwner, this::onListChanged) diff --git a/app/src/main/java/org/koitharu/kotatsu/tracker/ui/FeedViewModel.kt b/app/src/main/java/org/koitharu/kotatsu/tracker/ui/FeedViewModel.kt index d0bee70ce..b86f62919 100644 --- a/app/src/main/java/org/koitharu/kotatsu/tracker/ui/FeedViewModel.kt +++ b/app/src/main/java/org/koitharu/kotatsu/tracker/ui/FeedViewModel.kt @@ -1,6 +1,5 @@ package org.koitharu.kotatsu.tracker.ui -import android.content.Context import androidx.lifecycle.MutableLiveData import androidx.lifecycle.viewModelScope import kotlinx.coroutines.Dispatchers @@ -22,7 +21,6 @@ import org.koitharu.kotatsu.utils.ext.asLiveDataDistinct import org.koitharu.kotatsu.utils.ext.mapItems class FeedViewModel( - context: Context, private val repository: TrackingRepository ) : BaseViewModel() { @@ -34,7 +32,7 @@ class FeedViewModel( val onFeedCleared = SingleLiveEvent() val content = combine( logList.filterNotNull().mapItems { - it.toFeedItem(context.resources) + it.toFeedItem() }, hasNextPage ) { list, isHasNextPage -> diff --git a/app/src/main/java/org/koitharu/kotatsu/tracker/ui/adapter/FeedItemAD.kt b/app/src/main/java/org/koitharu/kotatsu/tracker/ui/adapter/FeedItemAD.kt index 2e3bdf446..feacf2079 100644 --- a/app/src/main/java/org/koitharu/kotatsu/tracker/ui/adapter/FeedItemAD.kt +++ b/app/src/main/java/org/koitharu/kotatsu/tracker/ui/adapter/FeedItemAD.kt @@ -12,6 +12,7 @@ import org.koitharu.kotatsu.list.ui.model.ListModel import org.koitharu.kotatsu.tracker.ui.model.FeedItem import org.koitharu.kotatsu.utils.ext.enqueueWith import org.koitharu.kotatsu.utils.ext.newImageRequest +import org.koitharu.kotatsu.utils.ext.textAndVisible fun feedItemAD( coil: ImageLoader, @@ -39,6 +40,11 @@ fun feedItemAD( binding.textViewTitle.text = item.title binding.badge.text = item.subtitle binding.textViewChapters.text = item.chapters + binding.textViewTruncated.textAndVisible = if (item.truncated > 0) { + getString(R.string._and_x_more, item.truncated) + } else { + null + } } onViewRecycled { diff --git a/app/src/main/java/org/koitharu/kotatsu/tracker/ui/model/FeedItem.kt b/app/src/main/java/org/koitharu/kotatsu/tracker/ui/model/FeedItem.kt index c3992b9f0..1c07b34d8 100644 --- a/app/src/main/java/org/koitharu/kotatsu/tracker/ui/model/FeedItem.kt +++ b/app/src/main/java/org/koitharu/kotatsu/tracker/ui/model/FeedItem.kt @@ -9,5 +9,6 @@ data class FeedItem( val title: String, val subtitle: String, val chapters: CharSequence, - val manga: Manga + val manga: Manga, + val truncated: Int, ) : ListModel \ No newline at end of file diff --git a/app/src/main/java/org/koitharu/kotatsu/tracker/ui/model/ListModelConversionExt.kt b/app/src/main/java/org/koitharu/kotatsu/tracker/ui/model/ListModelConversionExt.kt index 29ebb4790..f4552b9a7 100644 --- a/app/src/main/java/org/koitharu/kotatsu/tracker/ui/model/ListModelConversionExt.kt +++ b/app/src/main/java/org/koitharu/kotatsu/tracker/ui/model/ListModelConversionExt.kt @@ -1,19 +1,15 @@ package org.koitharu.kotatsu.tracker.ui.model -import android.content.res.Resources -import org.koitharu.kotatsu.R import org.koitharu.kotatsu.core.model.TrackingLogItem -fun TrackingLogItem.toFeedItem(resources: Resources): FeedItem { - val chaptersString = if (chapters.size > MAX_CHAPTERS) { +fun TrackingLogItem.toFeedItem(): FeedItem { + val truncate = chapters.size > MAX_CHAPTERS + val chaptersString = if (truncate) { chapters.joinToString( separator = "\n", limit = MAX_CHAPTERS - 1, - truncated = resources.getString( - R.string._and_x_more, - chapters.size - MAX_CHAPTERS + 1 - ) - ) + truncated = "", + ).trimEnd() } else { chapters.joinToString("\n") } @@ -23,7 +19,8 @@ fun TrackingLogItem.toFeedItem(resources: Resources): FeedItem { title = manga.title, subtitle = chapters.size.toString(), chapters = chaptersString, - manga = manga + manga = manga, + truncated = chapters.size - MAX_CHAPTERS + 1, ) } diff --git a/app/src/main/res/layout/item_tracklog.xml b/app/src/main/res/layout/item_tracklog.xml index b94f681b4..744c29889 100644 --- a/app/src/main/res/layout/item_tracklog.xml +++ b/app/src/main/res/layout/item_tracklog.xml @@ -6,8 +6,8 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:background="?attr/selectableItemBackground" - android:paddingStart="8dp" - android:paddingEnd="8dp"> + android:paddingVertical="6dp" + android:paddingHorizontal="8dp"> + + \ No newline at end of file diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index 6e4900beb..0f4b7d260 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -25,6 +25,7 @@ 36dp 48dp 16dp + 72dp 22sp