Minor Improvements (#405)

This commit is contained in:
Bram van de Kerkhof 2016-07-28 01:01:56 +02:00 committed by GitHub
parent f21a030cf8
commit 9cf5a4cac0
9 changed files with 67 additions and 59 deletions

View file

@ -55,9 +55,9 @@ class CategoryActivity : BaseRxActivity<CategoryPresenter>(), ActionMode.Callbac
}
}
override fun onCreate(savedInstanceState: Bundle?) {
override fun onCreate(savedState: Bundle?) {
setAppTheme()
super.onCreate(savedInstanceState)
super.onCreate(savedState)
// Inflate activity_edit_categories.xml.
setContentView(R.layout.activity_edit_categories)

View file

@ -18,8 +18,6 @@ import eu.kanade.tachiyomi.ui.base.adapter.FlexibleViewHolder
import eu.kanade.tachiyomi.ui.base.fragment.BaseFragment
import eu.kanade.tachiyomi.ui.manga.MangaActivity
import eu.kanade.tachiyomi.util.toast
import kotlinx.android.synthetic.main.fragment_catalogue.*
import kotlinx.android.synthetic.main.fragment_library.*
import kotlinx.android.synthetic.main.fragment_library_category.*
import rx.Subscription
import uy.kohesive.injekt.injectLazy
@ -69,7 +67,7 @@ class LibraryCategoryFragment : BaseFragment(), FlexibleViewHolder.OnListItemCli
/**
* display mode
*/
private var displayAsList: Boolean = false;
private var displayAsList: Boolean = false
companion object {
/**
@ -109,6 +107,8 @@ class LibraryCategoryFragment : BaseFragment(), FlexibleViewHolder.OnListItemCli
library_list.adapter = adapter
library_list.layoutManager = LinearLayoutManager(activity)
if (libraryFragment.actionMode != null) {
setSelectionMode(FlexibleAdapter.MODE_MULTI)
}
@ -119,7 +119,7 @@ class LibraryCategoryFragment : BaseFragment(), FlexibleViewHolder.OnListItemCli
// Set again the adapter to recalculate the covers height
.subscribe { recycler.adapter = adapter }
searchSubscription = libraryPresenter.searchSubject.subscribe { text ->
searchSubscription = libraryPresenter.searchSubject?.subscribe { text ->
adapter.searchText = text
adapter.updateDataSet()
}
@ -179,7 +179,7 @@ class LibraryCategoryFragment : BaseFragment(), FlexibleViewHolder.OnListItemCli
libraryMangaSubscription = libraryPresenter.libraryMangaSubject
.subscribe { onNextLibraryManga(it) }
?.subscribe { onNextLibraryManga(it) }
}
@ -247,7 +247,7 @@ class LibraryCategoryFragment : BaseFragment(), FlexibleViewHolder.OnListItemCli
*
* @param manga the manga to open.
*/
protected fun openManga(manga: Manga) {
private fun openManga(manga: Manga) {
// Notify the presenter a manga is being opened.
libraryPresenter.onOpenManga()

View file

@ -138,7 +138,7 @@ class LibraryFragment : BaseRxFragment<LibraryPresenter>(), ActionMode.Callback
if (savedState != null) {
activeCategory = savedState.getInt(CATEGORY_KEY)
query = savedState.getString(QUERY_KEY)
presenter.searchSubject.onNext(query)
presenter.searchSubject?.onNext(query)
} else {
activeCategory = presenter.preferences.lastUsedCategory().getOrDefault()
}
@ -283,7 +283,7 @@ class LibraryFragment : BaseRxFragment<LibraryPresenter>(), ActionMode.Callback
// Notify the subject the query has changed.
if (isResumed) {
presenter.searchSubject.onNext(query)
presenter.searchSubject?.onNext(query)
}
}
@ -311,7 +311,7 @@ class LibraryFragment : BaseRxFragment<LibraryPresenter>(), ActionMode.Callback
view_pager.post { if (isAdded) tabs.setScrollPosition(view_pager.currentItem, 0f, true) }
// Send the manga map to child fragments after the adapter is updated.
presenter.libraryMangaSubject.onNext(LibraryMangaEvent(mangaMap))
presenter.libraryMangaSubject?.onNext(LibraryMangaEvent(mangaMap))
}
/**

View file

@ -1,11 +1,8 @@
package eu.kanade.tachiyomi.ui.library
import android.view.View
import com.bumptech.glide.Glide
import com.bumptech.glide.load.engine.DiskCacheStrategy
import eu.kanade.tachiyomi.data.database.models.Manga
import eu.kanade.tachiyomi.ui.base.adapter.FlexibleViewHolder
import kotlinx.android.synthetic.main.item_catalogue_grid.view.*
/**
* Generic class used to hold the displayed data of a manga in the library.

View file

@ -30,24 +30,28 @@ class LibraryListHolder(private val view: View,
*/
override fun onSetValues(manga: Manga) {
// Update the title of the manga.
view.title.text = manga.title
itemView.title.text = manga.title
// Update the unread count and its visibility.
with(view.unread_text) {
with(itemView.unread_text) {
visibility = if (manga.unread > 0) View.VISIBLE else View.GONE
text = manga.unread.toString()
}
// Create thumbnail onclick to simulate long click
itemView.thumbnail.setOnClickListener {
// Simulate long click on this view to enter selection mode
onLongClick(itemView)
}
// Update the cover.
Glide.clear(view.thumbnail)
Glide.with(view.context)
Glide.clear(itemView.thumbnail)
Glide.with(itemView.context)
.load(manga)
.diskCacheStrategy(DiskCacheStrategy.RESULT)
.centerCrop()
.dontAnimate()
.into(view.thumbnail)
.into(itemView.thumbnail)
}
}

View file

@ -39,12 +39,12 @@ class LibraryPresenter : BasePresenter<LibraryFragment>() {
/**
* Search query of the library.
*/
val searchSubject = BehaviorSubject.create<String>()
val searchSubject: BehaviorSubject<String>? = BehaviorSubject.create<String>()
/**
* Subject to notify the library's viewpager for updates.
*/
val libraryMangaSubject = BehaviorSubject.create<LibraryMangaEvent>()
val libraryMangaSubject: BehaviorSubject<LibraryMangaEvent>? = BehaviorSubject.create<LibraryMangaEvent>()
/**
* Database.
@ -247,7 +247,7 @@ class LibraryPresenter : BasePresenter<LibraryFragment>() {
*
* @param mangas the list of manga.
*/
fun getCommonCategories(mangas: List<Manga>) = mangas.toSet()
fun getCommonCategories(mangas: List<Manga>): Collection<Category> = mangas.toSet()
.map { db.getCategoriesForManga(it).executeAsBlocking() }
.reduce { set1: Iterable<Category>, set2 -> set1.intersect(set2) }
@ -307,7 +307,6 @@ class LibraryPresenter : BasePresenter<LibraryFragment>() {
* Changes the active display mode.
*/
fun swapDisplayMode() {
var currentMode: Boolean = displayAsList
preferences.libraryAsList().set(!displayAsList)
}

View file

@ -27,6 +27,7 @@
android:id="@+id/library_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="@dimen/material_component_lists_padding_above_list"
tools:listitem="@layout/item_library_list"/>
</ViewSwitcher>

View file

@ -2,34 +2,41 @@
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="?android:listPreferredItemHeightSmall"
android:layout_height="@dimen/material_component_lists_single_line_with_avatar_height"
android:background="?attr/selectable_list_drawable">
<de.hdodenhof.circleimageview.CircleImageView
android:id="@+id/thumbnail"
android:layout_width="32dp"
android:layout_height="32dp"
android:src="@drawable/icon"
android:layout_gravity="center_vertical|left"
android:paddingLeft="6dp"/>
android:layout_width="@dimen/material_component_text_fields_icon_height"
android:layout_height="@dimen/material_component_text_fields_icon_height"
android:layout_gravity="center_vertical"
android:paddingEnd="0dp"
android:paddingLeft="@dimen/material_component_lists_icon_left_padding"
android:paddingRight="0dp"
android:paddingStart="@dimen/material_component_lists_icon_left_padding"
android:src="@drawable/icon"/>
<TextView
android:id="@+id/title"
style="@style/TextAppearance.Regular.Body1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:paddingLeft="38dp"
android:text="Sample name"/>
android:id="@+id/title"
style="@style/TextAppearance.Regular.SubHeading"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:paddingEnd="0dp"
android:paddingLeft="@dimen/material_component_lists_text_left_padding"
android:paddingRight="0dp"
android:paddingStart="@dimen/material_component_lists_text_left_padding"/>
<TextView
android:id="@+id/unread_text"
style="@style/TextAppearance.Regular.Caption"
android:textColor="@color/material_grey_500"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|right"
android:paddingRight="9dp"
android:visibility="gone"/>
android:id="@+id/unread_text"
style="@style/TextAppearance.Regular.Caption.Hint"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|end"
android:paddingEnd="@dimen/material_component_lists_right_padding"
android:paddingLeft="0dp"
android:paddingRight="@dimen/material_component_lists_right_padding"
android:paddingStart="0dp"
android:visibility="gone"/>
</FrameLayout>

View file

@ -2,10 +2,17 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" tools:context=".MainActivity">
<item
android:id="@+id/action_search"
android:icon="@drawable/ic_search_white_24dp"
android:title="@string/action_search"
app:actionViewClass="android.support.v7.widget.SearchView"
app:showAsAction="collapseActionView|ifRoom"/>
<item
android:id="@+id/action_filter"
android:title="@string/action_filter"
android:icon="@drawable/ic_filter_list_white_24dp"
android:title="@string/action_filter"
app:showAsAction="ifRoom">
<menu>
<item
@ -23,22 +30,15 @@
</item>
<item
android:id="@+id/action_search"
android:title="@string/action_search"
android:icon="@drawable/ic_search_white_24dp"
app:showAsAction="collapseActionView|ifRoom"
app:actionViewClass="android.support.v7.widget.SearchView" />
android:id="@+id/action_update_library"
android:icon="@drawable/ic_refresh_white_24dp"
android:title="@string/action_update_library"
app:showAsAction="ifRoom" />
<item
android:id="@+id/action_library_display_mode"
android:title="Display Mode"
app:showAsAction="always"/>
<item
android:id="@+id/action_update_library"
android:title="@string/action_update_library"
android:icon="@drawable/ic_refresh_white_24dp"
app:showAsAction="ifRoom" />
android:title="@string/action_display_mode"
app:showAsAction="never"/>
<item
android:id="@+id/action_edit_categories"