mirror of
https://github.com/mihonapp/mihon.git
synced 2024-12-25 02:18:24 +01:00
Reorganize layouts by feature
This commit is contained in:
parent
c7686323b7
commit
ca2236958a
@ -30,9 +30,8 @@ import eu.kanade.tachiyomi.ui.manga.MangaController
|
|||||||
import eu.kanade.tachiyomi.util.*
|
import eu.kanade.tachiyomi.util.*
|
||||||
import eu.kanade.tachiyomi.widget.AutofitRecyclerView
|
import eu.kanade.tachiyomi.widget.AutofitRecyclerView
|
||||||
import eu.kanade.tachiyomi.widget.DrawerSwipeCloseListener
|
import eu.kanade.tachiyomi.widget.DrawerSwipeCloseListener
|
||||||
import kotlinx.android.synthetic.main.activity_main.*
|
import kotlinx.android.synthetic.main.main_activity.*
|
||||||
import kotlinx.android.synthetic.main.fragment_catalogue.view.*
|
import kotlinx.android.synthetic.main.catalogue_controller.view.*
|
||||||
import kotlinx.android.synthetic.main.toolbar.*
|
|
||||||
import rx.Observable
|
import rx.Observable
|
||||||
import rx.Subscription
|
import rx.Subscription
|
||||||
import rx.android.schedulers.AndroidSchedulers
|
import rx.android.schedulers.AndroidSchedulers
|
||||||
@ -117,7 +116,7 @@ open class CatalogueController(bundle: Bundle? = null) :
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun inflateView(inflater: LayoutInflater, container: ViewGroup): View {
|
override fun inflateView(inflater: LayoutInflater, container: ViewGroup): View {
|
||||||
return inflater.inflate(R.layout.fragment_catalogue, container, false)
|
return inflater.inflate(R.layout.catalogue_controller, container, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onViewCreated(view: View, savedViewState: Bundle?) {
|
override fun onViewCreated(view: View, savedViewState: Bundle?) {
|
||||||
@ -133,7 +132,7 @@ open class CatalogueController(bundle: Bundle? = null) :
|
|||||||
|
|
||||||
val spinnerAdapter = ArrayAdapter(themedContext,
|
val spinnerAdapter = ArrayAdapter(themedContext,
|
||||||
android.R.layout.simple_spinner_item, presenter.sources)
|
android.R.layout.simple_spinner_item, presenter.sources)
|
||||||
spinnerAdapter.setDropDownViewResource(R.layout.spinner_item)
|
spinnerAdapter.setDropDownViewResource(R.layout.common_spinner_item)
|
||||||
|
|
||||||
val onItemSelected: (Int) -> Unit = { position ->
|
val onItemSelected: (Int) -> Unit = { position ->
|
||||||
val source = spinnerAdapter.getItem(position)
|
val source = spinnerAdapter.getItem(position)
|
||||||
@ -232,7 +231,7 @@ open class CatalogueController(bundle: Bundle? = null) :
|
|||||||
addItemDecoration(DividerItemDecoration(context, DividerItemDecoration.VERTICAL))
|
addItemDecoration(DividerItemDecoration(context, DividerItemDecoration.VERTICAL))
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
(view.catalogue_view.inflate(R.layout.recycler_autofit) as AutofitRecyclerView).apply {
|
(view.catalogue_view.inflate(R.layout.catalogue_recycler_autofit) as AutofitRecyclerView).apply {
|
||||||
numColumnsSubscription = getColumnsPreferenceForCurrentOrientation().asObservable()
|
numColumnsSubscription = getColumnsPreferenceForCurrentOrientation().asObservable()
|
||||||
.doOnNext { spanCount = it }
|
.doOnNext { spanCount = it }
|
||||||
.skip(1)
|
.skip(1)
|
||||||
@ -242,7 +241,7 @@ open class CatalogueController(bundle: Bundle? = null) :
|
|||||||
(layoutManager as GridLayoutManager).spanSizeLookup = object : GridLayoutManager.SpanSizeLookup() {
|
(layoutManager as GridLayoutManager).spanSizeLookup = object : GridLayoutManager.SpanSizeLookup() {
|
||||||
override fun getSpanSize(position: Int): Int {
|
override fun getSpanSize(position: Int): Int {
|
||||||
return when (adapter?.getItemViewType(position)) {
|
return when (adapter?.getItemViewType(position)) {
|
||||||
R.layout.item_catalogue_grid, null -> 1
|
R.layout.catalogue_grid_item, null -> 1
|
||||||
else -> spanCount
|
else -> spanCount
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,7 +6,7 @@ import com.bumptech.glide.load.engine.DiskCacheStrategy
|
|||||||
import eu.davidea.flexibleadapter.FlexibleAdapter
|
import eu.davidea.flexibleadapter.FlexibleAdapter
|
||||||
import eu.kanade.tachiyomi.data.database.models.Manga
|
import eu.kanade.tachiyomi.data.database.models.Manga
|
||||||
import eu.kanade.tachiyomi.widget.StateImageViewTarget
|
import eu.kanade.tachiyomi.widget.StateImageViewTarget
|
||||||
import kotlinx.android.synthetic.main.item_catalogue_grid.view.*
|
import kotlinx.android.synthetic.main.catalogue_grid_item.view.*
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class used to hold the displayed data of a manga in the catalogue, like the cover or the title.
|
* Class used to hold the displayed data of a manga in the catalogue, like the cover or the title.
|
||||||
|
@ -11,12 +11,12 @@ import eu.kanade.tachiyomi.R
|
|||||||
import eu.kanade.tachiyomi.data.database.models.Manga
|
import eu.kanade.tachiyomi.data.database.models.Manga
|
||||||
import eu.kanade.tachiyomi.util.inflate
|
import eu.kanade.tachiyomi.util.inflate
|
||||||
import eu.kanade.tachiyomi.widget.AutofitRecyclerView
|
import eu.kanade.tachiyomi.widget.AutofitRecyclerView
|
||||||
import kotlinx.android.synthetic.main.item_catalogue_grid.view.*
|
import kotlinx.android.synthetic.main.catalogue_grid_item.view.*
|
||||||
|
|
||||||
class CatalogueItem(val manga: Manga) : AbstractFlexibleItem<CatalogueHolder>() {
|
class CatalogueItem(val manga: Manga) : AbstractFlexibleItem<CatalogueHolder>() {
|
||||||
|
|
||||||
override fun getLayoutRes(): Int {
|
override fun getLayoutRes(): Int {
|
||||||
return R.layout.item_catalogue_grid
|
return R.layout.catalogue_grid_item
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun createViewHolder(adapter: FlexibleAdapter<*>,
|
override fun createViewHolder(adapter: FlexibleAdapter<*>,
|
||||||
@ -24,7 +24,7 @@ class CatalogueItem(val manga: Manga) : AbstractFlexibleItem<CatalogueHolder>()
|
|||||||
parent: ViewGroup): CatalogueHolder {
|
parent: ViewGroup): CatalogueHolder {
|
||||||
|
|
||||||
if (parent is AutofitRecyclerView) {
|
if (parent is AutofitRecyclerView) {
|
||||||
val view = parent.inflate(R.layout.item_catalogue_grid).apply {
|
val view = parent.inflate(R.layout.catalogue_grid_item).apply {
|
||||||
card.layoutParams = FrameLayout.LayoutParams(
|
card.layoutParams = FrameLayout.LayoutParams(
|
||||||
MATCH_PARENT, parent.itemWidth / 3 * 4)
|
MATCH_PARENT, parent.itemWidth / 3 * 4)
|
||||||
gradient.layoutParams = FrameLayout.LayoutParams(
|
gradient.layoutParams = FrameLayout.LayoutParams(
|
||||||
@ -32,7 +32,7 @@ class CatalogueItem(val manga: Manga) : AbstractFlexibleItem<CatalogueHolder>()
|
|||||||
}
|
}
|
||||||
return CatalogueGridHolder(view, adapter)
|
return CatalogueGridHolder(view, adapter)
|
||||||
} else {
|
} else {
|
||||||
val view = parent.inflate(R.layout.item_catalogue_list)
|
val view = parent.inflate(R.layout.catalogue_list_item)
|
||||||
return CatalogueListHolder(view, adapter)
|
return CatalogueListHolder(view, adapter)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,7 +6,7 @@ import com.bumptech.glide.load.engine.DiskCacheStrategy
|
|||||||
import eu.davidea.flexibleadapter.FlexibleAdapter
|
import eu.davidea.flexibleadapter.FlexibleAdapter
|
||||||
import eu.kanade.tachiyomi.data.database.models.Manga
|
import eu.kanade.tachiyomi.data.database.models.Manga
|
||||||
import eu.kanade.tachiyomi.util.getResourceColor
|
import eu.kanade.tachiyomi.util.getResourceColor
|
||||||
import kotlinx.android.synthetic.main.item_catalogue_list.view.*
|
import kotlinx.android.synthetic.main.catalogue_list_item.view.*
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class used to hold the displayed data of a manga in the catalogue, like the cover or the title.
|
* Class used to hold the displayed data of a manga in the catalogue, like the cover or the title.
|
||||||
|
@ -17,7 +17,7 @@ class ProgressItem : AbstractFlexibleItem<ProgressItem.Holder>() {
|
|||||||
var loadMore = true
|
var loadMore = true
|
||||||
|
|
||||||
override fun getLayoutRes(): Int {
|
override fun getLayoutRes(): Int {
|
||||||
return R.layout.progress_item
|
return R.layout.catalogue_progress_item
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun createViewHolder(adapter: FlexibleAdapter<IFlexible<*>>, inflater: LayoutInflater, parent: ViewGroup): Holder {
|
override fun createViewHolder(adapter: FlexibleAdapter<IFlexible<*>>, inflater: LayoutInflater, parent: ViewGroup): Holder {
|
||||||
|
@ -30,7 +30,7 @@ open class SelectItem(val filter: Filter.Select<*>) : AbstractFlexibleItem<Selec
|
|||||||
spinner.prompt = filter.name
|
spinner.prompt = filter.name
|
||||||
spinner.adapter = ArrayAdapter<Any>(holder.itemView.context,
|
spinner.adapter = ArrayAdapter<Any>(holder.itemView.context,
|
||||||
android.R.layout.simple_spinner_item, filter.values).apply {
|
android.R.layout.simple_spinner_item, filter.values).apply {
|
||||||
setDropDownViewResource(R.layout.spinner_item)
|
setDropDownViewResource(R.layout.common_spinner_item)
|
||||||
}
|
}
|
||||||
spinner.onItemSelectedListener = IgnoreFirstSpinnerListener { position ->
|
spinner.onItemSelectedListener = IgnoreFirstSpinnerListener { position ->
|
||||||
filter.state = position
|
filter.state = position
|
||||||
|
@ -7,7 +7,7 @@ import com.amulyakhare.textdrawable.TextDrawable
|
|||||||
import com.amulyakhare.textdrawable.util.ColorGenerator
|
import com.amulyakhare.textdrawable.util.ColorGenerator
|
||||||
import eu.davidea.viewholders.FlexibleViewHolder
|
import eu.davidea.viewholders.FlexibleViewHolder
|
||||||
import eu.kanade.tachiyomi.data.database.models.Category
|
import eu.kanade.tachiyomi.data.database.models.Category
|
||||||
import kotlinx.android.synthetic.main.item_edit_categories.view.*
|
import kotlinx.android.synthetic.main.categories_item.view.*
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holder used to display category items.
|
* Holder used to display category items.
|
||||||
|
@ -22,7 +22,7 @@ class CategoryItem(val category: Category) : AbstractFlexibleItem<CategoryHolder
|
|||||||
* Returns the layout resource for this item.
|
* Returns the layout resource for this item.
|
||||||
*/
|
*/
|
||||||
override fun getLayoutRes(): Int {
|
override fun getLayoutRes(): Int {
|
||||||
return R.layout.item_edit_categories
|
return R.layout.categories_item
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -54,7 +54,7 @@ class DownloadAdapter : RecyclerView.Adapter<DownloadHolder>() {
|
|||||||
* @return a new view holder for a manga.
|
* @return a new view holder for a manga.
|
||||||
*/
|
*/
|
||||||
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): DownloadHolder {
|
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): DownloadHolder {
|
||||||
val view = parent.inflate(R.layout.item_download)
|
val view = parent.inflate(R.layout.download_item)
|
||||||
return DownloadHolder(view)
|
return DownloadHolder(view)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@ import eu.kanade.tachiyomi.data.download.DownloadService
|
|||||||
import eu.kanade.tachiyomi.data.download.model.Download
|
import eu.kanade.tachiyomi.data.download.model.Download
|
||||||
import eu.kanade.tachiyomi.source.model.Page
|
import eu.kanade.tachiyomi.source.model.Page
|
||||||
import eu.kanade.tachiyomi.ui.base.controller.NucleusController
|
import eu.kanade.tachiyomi.ui.base.controller.NucleusController
|
||||||
import kotlinx.android.synthetic.main.activity_download_manager.view.*
|
import kotlinx.android.synthetic.main.download_controller.view.*
|
||||||
import rx.Observable
|
import rx.Observable
|
||||||
import rx.Subscription
|
import rx.Subscription
|
||||||
import rx.android.schedulers.AndroidSchedulers
|
import rx.android.schedulers.AndroidSchedulers
|
||||||
@ -41,7 +41,7 @@ class DownloadController : NucleusController<DownloadPresenter>() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun inflateView(inflater: LayoutInflater, container: ViewGroup): View {
|
override fun inflateView(inflater: LayoutInflater, container: ViewGroup): View {
|
||||||
return inflater.inflate(R.layout.activity_download_manager, container, false)
|
return inflater.inflate(R.layout.download_controller, container, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun createPresenter(): DownloadPresenter {
|
override fun createPresenter(): DownloadPresenter {
|
||||||
|
@ -3,11 +3,11 @@ package eu.kanade.tachiyomi.ui.download
|
|||||||
import android.support.v7.widget.RecyclerView
|
import android.support.v7.widget.RecyclerView
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import eu.kanade.tachiyomi.data.download.model.Download
|
import eu.kanade.tachiyomi.data.download.model.Download
|
||||||
import kotlinx.android.synthetic.main.item_download.view.*
|
import kotlinx.android.synthetic.main.download_item.view.*
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class used to hold the data of a download.
|
* Class used to hold the data of a download.
|
||||||
* All the elements from the layout file "item_download" are available in this class.
|
* All the elements from the layout file "download_item" are available in this class.
|
||||||
*
|
*
|
||||||
* @param view the inflated view for this holder.
|
* @param view the inflated view for this holder.
|
||||||
* @constructor creates a new download holder.
|
* @constructor creates a new download holder.
|
||||||
|
@ -32,7 +32,7 @@ class LibraryAdapter(private val controller: LibraryController) : RecyclerViewPa
|
|||||||
* @return a new view.
|
* @return a new view.
|
||||||
*/
|
*/
|
||||||
override fun createView(container: ViewGroup): View {
|
override fun createView(container: ViewGroup): View {
|
||||||
val view = container.inflate(R.layout.item_library_category2) as LibraryCategoryView
|
val view = container.inflate(R.layout.library_category) as LibraryCategoryView
|
||||||
view.onCreate(controller)
|
view.onCreate(controller)
|
||||||
return view
|
return view
|
||||||
}
|
}
|
||||||
|
@ -16,13 +16,12 @@ import eu.kanade.tachiyomi.util.inflate
|
|||||||
import eu.kanade.tachiyomi.util.plusAssign
|
import eu.kanade.tachiyomi.util.plusAssign
|
||||||
import eu.kanade.tachiyomi.util.toast
|
import eu.kanade.tachiyomi.util.toast
|
||||||
import eu.kanade.tachiyomi.widget.AutofitRecyclerView
|
import eu.kanade.tachiyomi.widget.AutofitRecyclerView
|
||||||
import kotlinx.android.synthetic.main.item_library_category.view.*
|
import kotlinx.android.synthetic.main.library_category.view.*
|
||||||
import rx.subscriptions.CompositeSubscription
|
import rx.subscriptions.CompositeSubscription
|
||||||
import uy.kohesive.injekt.injectLazy
|
import uy.kohesive.injekt.injectLazy
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fragment containing the library manga for a certain category.
|
* Fragment containing the library manga for a certain category.
|
||||||
* Uses R.layout.fragment_library_category.
|
|
||||||
*/
|
*/
|
||||||
class LibraryCategoryView @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null) :
|
class LibraryCategoryView @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null) :
|
||||||
FrameLayout(context, attrs),
|
FrameLayout(context, attrs),
|
||||||
|
@ -36,7 +36,7 @@ import eu.kanade.tachiyomi.ui.manga.MangaController
|
|||||||
import eu.kanade.tachiyomi.util.inflate
|
import eu.kanade.tachiyomi.util.inflate
|
||||||
import eu.kanade.tachiyomi.util.toast
|
import eu.kanade.tachiyomi.util.toast
|
||||||
import eu.kanade.tachiyomi.widget.DrawerSwipeCloseListener
|
import eu.kanade.tachiyomi.widget.DrawerSwipeCloseListener
|
||||||
import kotlinx.android.synthetic.main.activity_main.*
|
import kotlinx.android.synthetic.main.main_activity.*
|
||||||
import kotlinx.android.synthetic.main.library_controller.view.*
|
import kotlinx.android.synthetic.main.library_controller.view.*
|
||||||
import rx.Subscription
|
import rx.Subscription
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
|
@ -5,7 +5,7 @@ import com.bumptech.glide.Glide
|
|||||||
import com.bumptech.glide.load.engine.DiskCacheStrategy
|
import com.bumptech.glide.load.engine.DiskCacheStrategy
|
||||||
import eu.davidea.flexibleadapter.FlexibleAdapter
|
import eu.davidea.flexibleadapter.FlexibleAdapter
|
||||||
import eu.kanade.tachiyomi.data.database.models.Manga
|
import eu.kanade.tachiyomi.data.database.models.Manga
|
||||||
import kotlinx.android.synthetic.main.item_catalogue_grid.view.*
|
import kotlinx.android.synthetic.main.catalogue_grid_item.view.*
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class used to hold the displayed data of a manga in the library, like the cover or the title.
|
* Class used to hold the displayed data of a manga in the library, like the cover or the title.
|
||||||
|
@ -12,12 +12,12 @@ import eu.kanade.tachiyomi.R
|
|||||||
import eu.kanade.tachiyomi.data.database.models.Manga
|
import eu.kanade.tachiyomi.data.database.models.Manga
|
||||||
import eu.kanade.tachiyomi.util.inflate
|
import eu.kanade.tachiyomi.util.inflate
|
||||||
import eu.kanade.tachiyomi.widget.AutofitRecyclerView
|
import eu.kanade.tachiyomi.widget.AutofitRecyclerView
|
||||||
import kotlinx.android.synthetic.main.item_catalogue_grid.view.*
|
import kotlinx.android.synthetic.main.catalogue_grid_item.view.*
|
||||||
|
|
||||||
class LibraryItem(val manga: Manga) : AbstractFlexibleItem<LibraryHolder>(), IFilterable {
|
class LibraryItem(val manga: Manga) : AbstractFlexibleItem<LibraryHolder>(), IFilterable {
|
||||||
|
|
||||||
override fun getLayoutRes(): Int {
|
override fun getLayoutRes(): Int {
|
||||||
return R.layout.item_catalogue_grid
|
return R.layout.catalogue_grid_item
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun createViewHolder(adapter: FlexibleAdapter<*>,
|
override fun createViewHolder(adapter: FlexibleAdapter<*>,
|
||||||
@ -25,7 +25,7 @@ class LibraryItem(val manga: Manga) : AbstractFlexibleItem<LibraryHolder>(), IFi
|
|||||||
parent: ViewGroup): LibraryHolder {
|
parent: ViewGroup): LibraryHolder {
|
||||||
|
|
||||||
return if (parent is AutofitRecyclerView) {
|
return if (parent is AutofitRecyclerView) {
|
||||||
val view = parent.inflate(R.layout.item_catalogue_grid).apply {
|
val view = parent.inflate(R.layout.catalogue_grid_item).apply {
|
||||||
val coverHeight = parent.itemWidth / 3 * 4
|
val coverHeight = parent.itemWidth / 3 * 4
|
||||||
card.layoutParams = FrameLayout.LayoutParams(MATCH_PARENT, coverHeight)
|
card.layoutParams = FrameLayout.LayoutParams(MATCH_PARENT, coverHeight)
|
||||||
gradient.layoutParams = FrameLayout.LayoutParams(
|
gradient.layoutParams = FrameLayout.LayoutParams(
|
||||||
@ -33,7 +33,7 @@ class LibraryItem(val manga: Manga) : AbstractFlexibleItem<LibraryHolder>(), IFi
|
|||||||
}
|
}
|
||||||
LibraryGridHolder(view, adapter)
|
LibraryGridHolder(view, adapter)
|
||||||
} else {
|
} else {
|
||||||
val view = parent.inflate(R.layout.item_catalogue_list)
|
val view = parent.inflate(R.layout.catalogue_list_item)
|
||||||
LibraryListHolder(view, adapter)
|
LibraryListHolder(view, adapter)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,7 @@ import com.bumptech.glide.Glide
|
|||||||
import com.bumptech.glide.load.engine.DiskCacheStrategy
|
import com.bumptech.glide.load.engine.DiskCacheStrategy
|
||||||
import eu.davidea.flexibleadapter.FlexibleAdapter
|
import eu.davidea.flexibleadapter.FlexibleAdapter
|
||||||
import eu.kanade.tachiyomi.data.database.models.Manga
|
import eu.kanade.tachiyomi.data.database.models.Manga
|
||||||
import kotlinx.android.synthetic.main.item_catalogue_list.view.*
|
import kotlinx.android.synthetic.main.catalogue_list_item.view.*
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class used to hold the displayed data of a manga in the library, like the cover or the title.
|
* Class used to hold the displayed data of a manga in the library, like the cover or the title.
|
||||||
|
@ -25,8 +25,7 @@ import eu.kanade.tachiyomi.ui.manga.MangaController
|
|||||||
import eu.kanade.tachiyomi.ui.recent_updates.RecentChaptersController
|
import eu.kanade.tachiyomi.ui.recent_updates.RecentChaptersController
|
||||||
import eu.kanade.tachiyomi.ui.recently_read.RecentlyReadController
|
import eu.kanade.tachiyomi.ui.recently_read.RecentlyReadController
|
||||||
import eu.kanade.tachiyomi.ui.setting.SettingsMainController
|
import eu.kanade.tachiyomi.ui.setting.SettingsMainController
|
||||||
import kotlinx.android.synthetic.main.activity_main.*
|
import kotlinx.android.synthetic.main.main_activity.*
|
||||||
import kotlinx.android.synthetic.main.toolbar.*
|
|
||||||
import uy.kohesive.injekt.injectLazy
|
import uy.kohesive.injekt.injectLazy
|
||||||
|
|
||||||
|
|
||||||
@ -64,7 +63,7 @@ class MainActivity : BaseActivity() {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
setContentView(R.layout.activity_main)
|
setContentView(R.layout.main_activity)
|
||||||
|
|
||||||
setSupportActionBar(toolbar)
|
setSupportActionBar(toolbar)
|
||||||
|
|
||||||
|
@ -30,7 +30,7 @@ import eu.kanade.tachiyomi.ui.manga.chapter.ChaptersController
|
|||||||
import eu.kanade.tachiyomi.ui.manga.info.MangaInfoController
|
import eu.kanade.tachiyomi.ui.manga.info.MangaInfoController
|
||||||
import eu.kanade.tachiyomi.ui.manga.track.TrackController
|
import eu.kanade.tachiyomi.ui.manga.track.TrackController
|
||||||
import eu.kanade.tachiyomi.util.toast
|
import eu.kanade.tachiyomi.util.toast
|
||||||
import kotlinx.android.synthetic.main.activity_main.*
|
import kotlinx.android.synthetic.main.main_activity.*
|
||||||
import kotlinx.android.synthetic.main.manga_controller.view.*
|
import kotlinx.android.synthetic.main.manga_controller.view.*
|
||||||
import uy.kohesive.injekt.Injekt
|
import uy.kohesive.injekt.Injekt
|
||||||
import uy.kohesive.injekt.api.get
|
import uy.kohesive.injekt.api.get
|
||||||
|
@ -6,7 +6,7 @@ import eu.davidea.viewholders.FlexibleViewHolder
|
|||||||
import eu.kanade.tachiyomi.R
|
import eu.kanade.tachiyomi.R
|
||||||
import eu.kanade.tachiyomi.data.database.models.Manga
|
import eu.kanade.tachiyomi.data.database.models.Manga
|
||||||
import eu.kanade.tachiyomi.data.download.model.Download
|
import eu.kanade.tachiyomi.data.download.model.Download
|
||||||
import kotlinx.android.synthetic.main.item_chapter.view.*
|
import kotlinx.android.synthetic.main.chapters_item.view.*
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
class ChapterHolder(
|
class ChapterHolder(
|
||||||
|
@ -24,7 +24,7 @@ class ChapterItem(val chapter: Chapter, val manga: Manga) : AbstractFlexibleItem
|
|||||||
get() = status == Download.DOWNLOADED
|
get() = status == Download.DOWNLOADED
|
||||||
|
|
||||||
override fun getLayoutRes(): Int {
|
override fun getLayoutRes(): Int {
|
||||||
return R.layout.item_chapter
|
return R.layout.chapters_item
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun createViewHolder(adapter: FlexibleAdapter<*>,
|
override fun createViewHolder(adapter: FlexibleAdapter<*>,
|
||||||
|
@ -25,7 +25,7 @@ import eu.kanade.tachiyomi.ui.reader.ReaderActivity
|
|||||||
import eu.kanade.tachiyomi.util.getCoordinates
|
import eu.kanade.tachiyomi.util.getCoordinates
|
||||||
import eu.kanade.tachiyomi.util.snack
|
import eu.kanade.tachiyomi.util.snack
|
||||||
import eu.kanade.tachiyomi.util.toast
|
import eu.kanade.tachiyomi.util.toast
|
||||||
import kotlinx.android.synthetic.main.fragment_manga_chapters.view.*
|
import kotlinx.android.synthetic.main.chapters_controller.view.*
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
|
|
||||||
class ChaptersController : NucleusController<ChaptersPresenter>(),
|
class ChaptersController : NucleusController<ChaptersPresenter>(),
|
||||||
@ -65,7 +65,7 @@ class ChaptersController : NucleusController<ChaptersPresenter>(),
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun inflateView(inflater: LayoutInflater, container: ViewGroup): View {
|
override fun inflateView(inflater: LayoutInflater, container: ViewGroup): View {
|
||||||
return inflater.inflate(R.layout.fragment_manga_chapters, container, false)
|
return inflater.inflate(R.layout.chapters_controller, container, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onViewCreated(view: View, savedViewState: Bundle?) {
|
override fun onViewCreated(view: View, savedViewState: Bundle?) {
|
||||||
|
@ -32,7 +32,7 @@ import jp.wasabeef.glide.transformations.CropCircleTransformation
|
|||||||
import jp.wasabeef.glide.transformations.CropSquareTransformation
|
import jp.wasabeef.glide.transformations.CropSquareTransformation
|
||||||
import jp.wasabeef.glide.transformations.MaskTransformation
|
import jp.wasabeef.glide.transformations.MaskTransformation
|
||||||
import jp.wasabeef.glide.transformations.RoundedCornersTransformation
|
import jp.wasabeef.glide.transformations.RoundedCornersTransformation
|
||||||
import kotlinx.android.synthetic.main.fragment_manga_info.view.*
|
import kotlinx.android.synthetic.main.manga_info_controller.view.*
|
||||||
import rx.Observable
|
import rx.Observable
|
||||||
import rx.android.schedulers.AndroidSchedulers
|
import rx.android.schedulers.AndroidSchedulers
|
||||||
import rx.schedulers.Schedulers
|
import rx.schedulers.Schedulers
|
||||||
@ -42,7 +42,7 @@ import java.text.DecimalFormat
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Fragment that shows manga information.
|
* Fragment that shows manga information.
|
||||||
* Uses R.layout.fragment_manga_info.
|
* Uses R.layout.manga_info_controller.
|
||||||
* UI related actions should be called from here.
|
* UI related actions should be called from here.
|
||||||
*/
|
*/
|
||||||
class MangaInfoController : NucleusController<MangaInfoPresenter>(),
|
class MangaInfoController : NucleusController<MangaInfoPresenter>(),
|
||||||
@ -65,7 +65,7 @@ class MangaInfoController : NucleusController<MangaInfoPresenter>(),
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun inflateView(inflater: LayoutInflater, container: ViewGroup): View {
|
override fun inflateView(inflater: LayoutInflater, container: ViewGroup): View {
|
||||||
return inflater.inflate(R.layout.fragment_manga_info, container, false)
|
return inflater.inflate(R.layout.manga_info_controller, container, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onViewCreated(view: View, savedViewState: Bundle?) {
|
override fun onViewCreated(view: View, savedViewState: Bundle?) {
|
||||||
|
@ -36,7 +36,7 @@ class SetTrackChaptersDialog<T> : DialogController
|
|||||||
|
|
||||||
val dialog = MaterialDialog.Builder(activity!!)
|
val dialog = MaterialDialog.Builder(activity!!)
|
||||||
.title(R.string.chapters)
|
.title(R.string.chapters)
|
||||||
.customView(R.layout.dialog_track_chapters, false)
|
.customView(R.layout.track_chapters_dialog, false)
|
||||||
.positiveText(android.R.string.ok)
|
.positiveText(android.R.string.ok)
|
||||||
.negativeText(android.R.string.cancel)
|
.negativeText(android.R.string.cancel)
|
||||||
.onPositive { dialog, _ ->
|
.onPositive { dialog, _ ->
|
||||||
|
@ -36,7 +36,7 @@ class SetTrackScoreDialog<T> : DialogController
|
|||||||
|
|
||||||
val dialog = MaterialDialog.Builder(activity!!)
|
val dialog = MaterialDialog.Builder(activity!!)
|
||||||
.title(R.string.score)
|
.title(R.string.score)
|
||||||
.customView(R.layout.dialog_track_score, false)
|
.customView(R.layout.track_score_dialog, false)
|
||||||
.positiveText(android.R.string.ok)
|
.positiveText(android.R.string.ok)
|
||||||
.negativeText(android.R.string.cancel)
|
.negativeText(android.R.string.cancel)
|
||||||
.onPositive { dialog, _ ->
|
.onPositive { dialog, _ ->
|
||||||
|
@ -26,7 +26,7 @@ class TrackAdapter(controller: TrackController) : RecyclerView.Adapter<TrackHold
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): TrackHolder {
|
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): TrackHolder {
|
||||||
val view = parent.inflate(R.layout.item_track)
|
val view = parent.inflate(R.layout.track_item)
|
||||||
return TrackHolder(view, this)
|
return TrackHolder(view, this)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@ import eu.kanade.tachiyomi.data.database.models.Track
|
|||||||
import eu.kanade.tachiyomi.ui.base.controller.NucleusController
|
import eu.kanade.tachiyomi.ui.base.controller.NucleusController
|
||||||
import eu.kanade.tachiyomi.ui.manga.MangaController
|
import eu.kanade.tachiyomi.ui.manga.MangaController
|
||||||
import eu.kanade.tachiyomi.util.toast
|
import eu.kanade.tachiyomi.util.toast
|
||||||
import kotlinx.android.synthetic.main.fragment_track.view.*
|
import kotlinx.android.synthetic.main.track_controller.view.*
|
||||||
|
|
||||||
class TrackController : NucleusController<TrackPresenter>(),
|
class TrackController : NucleusController<TrackPresenter>(),
|
||||||
TrackAdapter.OnRowClickListener,
|
TrackAdapter.OnRowClickListener,
|
||||||
@ -26,7 +26,7 @@ class TrackController : NucleusController<TrackPresenter>(),
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun inflateView(inflater: LayoutInflater, container: ViewGroup): View {
|
override fun inflateView(inflater: LayoutInflater, container: ViewGroup): View {
|
||||||
return inflater.inflate(R.layout.fragment_track, container, false)
|
return inflater.inflate(R.layout.track_controller, container, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onViewCreated(view: View, savedViewState: Bundle?) {
|
override fun onViewCreated(view: View, savedViewState: Bundle?) {
|
||||||
|
@ -4,7 +4,7 @@ import android.annotation.SuppressLint
|
|||||||
import android.support.v7.widget.RecyclerView
|
import android.support.v7.widget.RecyclerView
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import eu.kanade.tachiyomi.R
|
import eu.kanade.tachiyomi.R
|
||||||
import kotlinx.android.synthetic.main.item_track.view.*
|
import kotlinx.android.synthetic.main.track_item.view.*
|
||||||
|
|
||||||
class TrackHolder(view: View, adapter: TrackAdapter) : RecyclerView.ViewHolder(view) {
|
class TrackHolder(view: View, adapter: TrackAdapter) : RecyclerView.ViewHolder(view) {
|
||||||
|
|
||||||
|
@ -7,11 +7,11 @@ import android.widget.ArrayAdapter
|
|||||||
import eu.kanade.tachiyomi.R
|
import eu.kanade.tachiyomi.R
|
||||||
import eu.kanade.tachiyomi.data.database.models.Track
|
import eu.kanade.tachiyomi.data.database.models.Track
|
||||||
import eu.kanade.tachiyomi.util.inflate
|
import eu.kanade.tachiyomi.util.inflate
|
||||||
import kotlinx.android.synthetic.main.item_track_search.view.*
|
import kotlinx.android.synthetic.main.track_search_item.view.*
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
class TrackSearchAdapter(context: Context)
|
class TrackSearchAdapter(context: Context)
|
||||||
: ArrayAdapter<Track>(context, R.layout.item_track_search, ArrayList<Track>()) {
|
: ArrayAdapter<Track>(context, R.layout.track_search_item, ArrayList<Track>()) {
|
||||||
|
|
||||||
override fun getView(position: Int, view: View?, parent: ViewGroup): View {
|
override fun getView(position: Int, view: View?, parent: ViewGroup): View {
|
||||||
var v = view
|
var v = view
|
||||||
@ -20,7 +20,7 @@ class TrackSearchAdapter(context: Context)
|
|||||||
// Check if an existing view is being reused, otherwise inflate the view
|
// Check if an existing view is being reused, otherwise inflate the view
|
||||||
val holder: TrackSearchHolder // view lookup cache stored in tag
|
val holder: TrackSearchHolder // view lookup cache stored in tag
|
||||||
if (v == null) {
|
if (v == null) {
|
||||||
v = parent.inflate(R.layout.item_track_search)
|
v = parent.inflate(R.layout.track_search_item)
|
||||||
holder = TrackSearchHolder(v)
|
holder = TrackSearchHolder(v)
|
||||||
v.tag = holder
|
v.tag = holder
|
||||||
} else {
|
} else {
|
||||||
|
@ -12,7 +12,7 @@ import eu.kanade.tachiyomi.data.track.TrackManager
|
|||||||
import eu.kanade.tachiyomi.data.track.TrackService
|
import eu.kanade.tachiyomi.data.track.TrackService
|
||||||
import eu.kanade.tachiyomi.ui.base.controller.DialogController
|
import eu.kanade.tachiyomi.ui.base.controller.DialogController
|
||||||
import eu.kanade.tachiyomi.util.plusAssign
|
import eu.kanade.tachiyomi.util.plusAssign
|
||||||
import kotlinx.android.synthetic.main.dialog_track_search.view.*
|
import kotlinx.android.synthetic.main.track_search_dialog.view.*
|
||||||
import rx.Subscription
|
import rx.Subscription
|
||||||
import rx.android.schedulers.AndroidSchedulers
|
import rx.android.schedulers.AndroidSchedulers
|
||||||
import rx.subscriptions.CompositeSubscription
|
import rx.subscriptions.CompositeSubscription
|
||||||
@ -51,7 +51,7 @@ class TrackSearchDialog : DialogController {
|
|||||||
|
|
||||||
override fun onCreateDialog(savedState: Bundle?): Dialog {
|
override fun onCreateDialog(savedState: Bundle?): Dialog {
|
||||||
val dialog = MaterialDialog.Builder(activity!!)
|
val dialog = MaterialDialog.Builder(activity!!)
|
||||||
.customView(R.layout.dialog_track_search, false)
|
.customView(R.layout.track_search_dialog, false)
|
||||||
.positiveText(android.R.string.ok)
|
.positiveText(android.R.string.ok)
|
||||||
.negativeText(android.R.string.cancel)
|
.negativeText(android.R.string.cancel)
|
||||||
.onPositive { _, _ -> onPositiveButtonClick() }
|
.onPositive { _, _ -> onPositiveButtonClick() }
|
||||||
|
@ -33,7 +33,7 @@ import eu.kanade.tachiyomi.util.plusAssign
|
|||||||
import eu.kanade.tachiyomi.util.toast
|
import eu.kanade.tachiyomi.util.toast
|
||||||
import eu.kanade.tachiyomi.widget.SimpleAnimationListener
|
import eu.kanade.tachiyomi.widget.SimpleAnimationListener
|
||||||
import eu.kanade.tachiyomi.widget.SimpleSeekBarListener
|
import eu.kanade.tachiyomi.widget.SimpleSeekBarListener
|
||||||
import kotlinx.android.synthetic.main.activity_reader.*
|
import kotlinx.android.synthetic.main.reader_activity.*
|
||||||
import me.zhanghai.android.systemuihelper.SystemUiHelper
|
import me.zhanghai.android.systemuihelper.SystemUiHelper
|
||||||
import me.zhanghai.android.systemuihelper.SystemUiHelper.*
|
import me.zhanghai.android.systemuihelper.SystemUiHelper.*
|
||||||
import nucleus.factory.RequiresPresenter
|
import nucleus.factory.RequiresPresenter
|
||||||
@ -92,7 +92,7 @@ class ReaderActivity : BaseRxActivity<ReaderPresenter>() {
|
|||||||
|
|
||||||
override fun onCreate(savedState: Bundle?) {
|
override fun onCreate(savedState: Bundle?) {
|
||||||
super.onCreate(savedState)
|
super.onCreate(savedState)
|
||||||
setContentView(R.layout.activity_reader)
|
setContentView(R.layout.reader_activity)
|
||||||
|
|
||||||
if (savedState == null && SharedData.get(ReaderEvent::class.java) == null) {
|
if (savedState == null && SharedData.get(ReaderEvent::class.java) == null) {
|
||||||
finish()
|
finish()
|
||||||
|
@ -13,7 +13,7 @@ import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
|||||||
import eu.kanade.tachiyomi.data.preference.getOrDefault
|
import eu.kanade.tachiyomi.data.preference.getOrDefault
|
||||||
import eu.kanade.tachiyomi.util.plusAssign
|
import eu.kanade.tachiyomi.util.plusAssign
|
||||||
import eu.kanade.tachiyomi.widget.SimpleSeekBarListener
|
import eu.kanade.tachiyomi.widget.SimpleSeekBarListener
|
||||||
import kotlinx.android.synthetic.main.dialog_reader_custom_filter.view.*
|
import kotlinx.android.synthetic.main.reader_custom_filter_dialog.view.*
|
||||||
import rx.Subscription
|
import rx.Subscription
|
||||||
import rx.android.schedulers.AndroidSchedulers
|
import rx.android.schedulers.AndroidSchedulers
|
||||||
import rx.subscriptions.CompositeSubscription
|
import rx.subscriptions.CompositeSubscription
|
||||||
@ -65,7 +65,7 @@ class ReaderCustomFilterDialog : DialogFragment() {
|
|||||||
*/
|
*/
|
||||||
override fun onCreateDialog(savedState: Bundle?): Dialog {
|
override fun onCreateDialog(savedState: Bundle?): Dialog {
|
||||||
val dialog = MaterialDialog.Builder(activity)
|
val dialog = MaterialDialog.Builder(activity)
|
||||||
.customView(R.layout.dialog_reader_custom_filter, false)
|
.customView(R.layout.reader_custom_filter_dialog, false)
|
||||||
.positiveText(android.R.string.ok)
|
.positiveText(android.R.string.ok)
|
||||||
.build()
|
.build()
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@ import eu.kanade.tachiyomi.data.preference.PreferencesHelper
|
|||||||
import eu.kanade.tachiyomi.data.preference.getOrDefault
|
import eu.kanade.tachiyomi.data.preference.getOrDefault
|
||||||
import eu.kanade.tachiyomi.util.plusAssign
|
import eu.kanade.tachiyomi.util.plusAssign
|
||||||
import eu.kanade.tachiyomi.widget.IgnoreFirstSpinnerListener
|
import eu.kanade.tachiyomi.widget.IgnoreFirstSpinnerListener
|
||||||
import kotlinx.android.synthetic.main.dialog_reader_settings.view.*
|
import kotlinx.android.synthetic.main.reader_settings_dialog.view.*
|
||||||
import rx.Observable
|
import rx.Observable
|
||||||
import rx.android.schedulers.AndroidSchedulers
|
import rx.android.schedulers.AndroidSchedulers
|
||||||
import rx.subscriptions.CompositeSubscription
|
import rx.subscriptions.CompositeSubscription
|
||||||
@ -26,7 +26,7 @@ class ReaderSettingsDialog : DialogFragment() {
|
|||||||
override fun onCreateDialog(savedState: Bundle?): Dialog {
|
override fun onCreateDialog(savedState: Bundle?): Dialog {
|
||||||
val dialog = MaterialDialog.Builder(activity)
|
val dialog = MaterialDialog.Builder(activity)
|
||||||
.title(R.string.label_settings)
|
.title(R.string.label_settings)
|
||||||
.customView(R.layout.dialog_reader_settings, true)
|
.customView(R.layout.reader_settings_dialog, true)
|
||||||
.positiveText(android.R.string.ok)
|
.positiveText(android.R.string.ok)
|
||||||
.build()
|
.build()
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@ import android.view.View
|
|||||||
import eu.kanade.tachiyomi.R
|
import eu.kanade.tachiyomi.R
|
||||||
import eu.kanade.tachiyomi.source.model.Page
|
import eu.kanade.tachiyomi.source.model.Page
|
||||||
import eu.kanade.tachiyomi.ui.reader.ReaderActivity
|
import eu.kanade.tachiyomi.ui.reader.ReaderActivity
|
||||||
import kotlinx.android.synthetic.main.page_decode_error.view.*
|
import kotlinx.android.synthetic.main.reader_page_decode_error.view.*
|
||||||
|
|
||||||
class PageDecodeErrorLayout(
|
class PageDecodeErrorLayout(
|
||||||
val view: View,
|
val view: View,
|
||||||
|
@ -16,8 +16,7 @@ import eu.kanade.tachiyomi.ui.reader.viewer.base.PageDecodeErrorLayout
|
|||||||
import eu.kanade.tachiyomi.ui.reader.viewer.pager.horizontal.RightToLeftReader
|
import eu.kanade.tachiyomi.ui.reader.viewer.pager.horizontal.RightToLeftReader
|
||||||
import eu.kanade.tachiyomi.ui.reader.viewer.pager.vertical.VerticalReader
|
import eu.kanade.tachiyomi.ui.reader.viewer.pager.vertical.VerticalReader
|
||||||
import eu.kanade.tachiyomi.util.inflate
|
import eu.kanade.tachiyomi.util.inflate
|
||||||
import kotlinx.android.synthetic.main.chapter_image.view.*
|
import kotlinx.android.synthetic.main.reader_pager_item.view.*
|
||||||
import kotlinx.android.synthetic.main.item_pager_reader.view.*
|
|
||||||
import rx.Observable
|
import rx.Observable
|
||||||
import rx.Subscription
|
import rx.Subscription
|
||||||
import rx.android.schedulers.AndroidSchedulers
|
import rx.android.schedulers.AndroidSchedulers
|
||||||
@ -259,7 +258,7 @@ class PageView @JvmOverloads constructor(context: Context, attrs: AttributeSet?
|
|||||||
|
|
||||||
val activity = reader.activity as ReaderActivity
|
val activity = reader.activity as ReaderActivity
|
||||||
|
|
||||||
val layout = inflate(R.layout.page_decode_error)
|
val layout = inflate(R.layout.reader_page_decode_error)
|
||||||
PageDecodeErrorLayout(layout, page, activity.readerTheme, {
|
PageDecodeErrorLayout(layout, page, activity.readerTheme, {
|
||||||
if (reader.isAdded) {
|
if (reader.isAdded) {
|
||||||
activity.presenter.retryPage(page)
|
activity.presenter.retryPage(page)
|
||||||
|
@ -23,7 +23,7 @@ class PagerReaderAdapter(private val reader: PagerReader) : ViewPagerAdapter() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun createView(container: ViewGroup, position: Int): View {
|
override fun createView(container: ViewGroup, position: Int): View {
|
||||||
val view = container.inflate(R.layout.item_pager_reader) as PageView
|
val view = container.inflate(R.layout.reader_pager_item) as PageView
|
||||||
view.initialize(reader, pages[position])
|
view.initialize(reader, pages[position])
|
||||||
return view
|
return view
|
||||||
}
|
}
|
||||||
|
@ -51,7 +51,7 @@ class WebtoonAdapter(val fragment: WebtoonReader) : RecyclerView.Adapter<Webtoon
|
|||||||
* @return a new view holder for a manga.
|
* @return a new view holder for a manga.
|
||||||
*/
|
*/
|
||||||
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): WebtoonHolder {
|
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): WebtoonHolder {
|
||||||
val v = parent.inflate(R.layout.item_webtoon_reader)
|
val v = parent.inflate(R.layout.reader_webtoon_item)
|
||||||
return WebtoonHolder(v, this)
|
return WebtoonHolder(v, this)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -14,8 +14,7 @@ import eu.kanade.tachiyomi.source.model.Page
|
|||||||
import eu.kanade.tachiyomi.ui.reader.ReaderActivity
|
import eu.kanade.tachiyomi.ui.reader.ReaderActivity
|
||||||
import eu.kanade.tachiyomi.ui.reader.viewer.base.PageDecodeErrorLayout
|
import eu.kanade.tachiyomi.ui.reader.viewer.base.PageDecodeErrorLayout
|
||||||
import eu.kanade.tachiyomi.util.inflate
|
import eu.kanade.tachiyomi.util.inflate
|
||||||
import kotlinx.android.synthetic.main.chapter_image.view.*
|
import kotlinx.android.synthetic.main.reader_webtoon_item.view.*
|
||||||
import kotlinx.android.synthetic.main.item_webtoon_reader.view.*
|
|
||||||
import rx.Observable
|
import rx.Observable
|
||||||
import rx.Subscription
|
import rx.Subscription
|
||||||
import rx.android.schedulers.AndroidSchedulers
|
import rx.android.schedulers.AndroidSchedulers
|
||||||
@ -25,7 +24,7 @@ import java.util.concurrent.TimeUnit
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Holder for webtoon reader for a single page of a chapter.
|
* Holder for webtoon reader for a single page of a chapter.
|
||||||
* All the elements from the layout file "item_webtoon_reader" are available in this class.
|
* All the elements from the layout file "reader_webtoon_item" are available in this class.
|
||||||
*
|
*
|
||||||
* @param view the inflated view for this holder.
|
* @param view the inflated view for this holder.
|
||||||
* @param adapter the adapter handling this holder.
|
* @param adapter the adapter handling this holder.
|
||||||
@ -287,7 +286,7 @@ class WebtoonHolder(private val view: View, private val adapter: WebtoonAdapter)
|
|||||||
val page = page ?: return
|
val page = page ?: return
|
||||||
if (decodeErrorLayout != null || !webtoonReader.isAdded) return
|
if (decodeErrorLayout != null || !webtoonReader.isAdded) return
|
||||||
|
|
||||||
val layout = (view as ViewGroup).inflate(R.layout.page_decode_error)
|
val layout = (view as ViewGroup).inflate(R.layout.reader_page_decode_error)
|
||||||
PageDecodeErrorLayout(layout, page, readerActivity.readerTheme, {
|
PageDecodeErrorLayout(layout, page, readerActivity.readerTheme, {
|
||||||
if (webtoonReader.isAdded) {
|
if (webtoonReader.isAdded) {
|
||||||
readerActivity.presenter.retryPage(page)
|
readerActivity.presenter.retryPage(page)
|
||||||
|
@ -14,7 +14,7 @@ import java.util.*
|
|||||||
class DateItem(val date: Date) : AbstractHeaderItem<DateItem.Holder>() {
|
class DateItem(val date: Date) : AbstractHeaderItem<DateItem.Holder>() {
|
||||||
|
|
||||||
override fun getLayoutRes(): Int {
|
override fun getLayoutRes(): Int {
|
||||||
return R.layout.item_recent_chapter_section
|
return R.layout.recent_chapters_section_item
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun createViewHolder(adapter: FlexibleAdapter<*>, inflater: LayoutInflater, parent: ViewGroup): Holder {
|
override fun createViewHolder(adapter: FlexibleAdapter<*>, inflater: LayoutInflater, parent: ViewGroup): Holder {
|
||||||
|
@ -9,7 +9,7 @@ import eu.kanade.tachiyomi.R
|
|||||||
import eu.kanade.tachiyomi.data.download.model.Download
|
import eu.kanade.tachiyomi.data.download.model.Download
|
||||||
import eu.kanade.tachiyomi.util.getResourceColor
|
import eu.kanade.tachiyomi.util.getResourceColor
|
||||||
import jp.wasabeef.glide.transformations.CropCircleTransformation
|
import jp.wasabeef.glide.transformations.CropCircleTransformation
|
||||||
import kotlinx.android.synthetic.main.item_recent_chapters.view.*
|
import kotlinx.android.synthetic.main.recent_chapters_item.view.*
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holder that contains chapter item
|
* Holder that contains chapter item
|
||||||
|
@ -24,7 +24,7 @@ class RecentChapterItem(val chapter: Chapter, val manga: Manga, header: DateItem
|
|||||||
get() = status == Download.DOWNLOADED
|
get() = status == Download.DOWNLOADED
|
||||||
|
|
||||||
override fun getLayoutRes(): Int {
|
override fun getLayoutRes(): Int {
|
||||||
return R.layout.item_recent_chapters
|
return R.layout.recent_chapters_item
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun createViewHolder(adapter: FlexibleAdapter<*>,
|
override fun createViewHolder(adapter: FlexibleAdapter<*>,
|
||||||
|
@ -21,12 +21,12 @@ import eu.kanade.tachiyomi.ui.base.controller.popControllerWithTag
|
|||||||
import eu.kanade.tachiyomi.ui.manga.MangaController
|
import eu.kanade.tachiyomi.ui.manga.MangaController
|
||||||
import eu.kanade.tachiyomi.ui.reader.ReaderActivity
|
import eu.kanade.tachiyomi.ui.reader.ReaderActivity
|
||||||
import eu.kanade.tachiyomi.util.toast
|
import eu.kanade.tachiyomi.util.toast
|
||||||
import kotlinx.android.synthetic.main.fragment_recent_chapters.view.*
|
import kotlinx.android.synthetic.main.recent_chapters_controller.view.*
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fragment that shows recent chapters.
|
* Fragment that shows recent chapters.
|
||||||
* Uses [R.layout.fragment_recent_chapters].
|
* Uses [R.layout.recent_chapters_controller].
|
||||||
* UI related actions should be called from here.
|
* UI related actions should be called from here.
|
||||||
*/
|
*/
|
||||||
class RecentChaptersController : NucleusController<RecentChaptersPresenter>(),
|
class RecentChaptersController : NucleusController<RecentChaptersPresenter>(),
|
||||||
@ -58,7 +58,7 @@ class RecentChaptersController : NucleusController<RecentChaptersPresenter>(),
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun inflateView(inflater: LayoutInflater, container: ViewGroup): View {
|
override fun inflateView(inflater: LayoutInflater, container: ViewGroup): View {
|
||||||
return inflater.inflate(R.layout.fragment_recent_chapters, container, false)
|
return inflater.inflate(R.layout.recent_chapters_controller, container, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -16,7 +16,7 @@ import eu.kanade.tachiyomi.ui.base.controller.NucleusController
|
|||||||
import eu.kanade.tachiyomi.ui.manga.MangaController
|
import eu.kanade.tachiyomi.ui.manga.MangaController
|
||||||
import eu.kanade.tachiyomi.ui.reader.ReaderActivity
|
import eu.kanade.tachiyomi.ui.reader.ReaderActivity
|
||||||
import eu.kanade.tachiyomi.util.toast
|
import eu.kanade.tachiyomi.util.toast
|
||||||
import kotlinx.android.synthetic.main.fragment_recently_read.view.*
|
import kotlinx.android.synthetic.main.recently_read_controller.view.*
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fragment that shows recently read manga.
|
* Fragment that shows recently read manga.
|
||||||
@ -45,7 +45,7 @@ class RecentlyReadController : NucleusController<RecentlyReadPresenter>(),
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun inflateView(inflater: LayoutInflater, container: ViewGroup): View {
|
override fun inflateView(inflater: LayoutInflater, container: ViewGroup): View {
|
||||||
return inflater.inflate(R.layout.fragment_recently_read, container, false)
|
return inflater.inflate(R.layout.recently_read_controller, container, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -6,7 +6,7 @@ import com.bumptech.glide.load.engine.DiskCacheStrategy
|
|||||||
import eu.davidea.viewholders.FlexibleViewHolder
|
import eu.davidea.viewholders.FlexibleViewHolder
|
||||||
import eu.kanade.tachiyomi.R
|
import eu.kanade.tachiyomi.R
|
||||||
import eu.kanade.tachiyomi.data.database.models.MangaChapterHistory
|
import eu.kanade.tachiyomi.data.database.models.MangaChapterHistory
|
||||||
import kotlinx.android.synthetic.main.item_recently_read.view.*
|
import kotlinx.android.synthetic.main.recently_read_item.view.*
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -11,7 +11,7 @@ import eu.kanade.tachiyomi.util.inflate
|
|||||||
class RecentlyReadItem(val mch: MangaChapterHistory) : AbstractFlexibleItem<RecentlyReadHolder>() {
|
class RecentlyReadItem(val mch: MangaChapterHistory) : AbstractFlexibleItem<RecentlyReadHolder>() {
|
||||||
|
|
||||||
override fun getLayoutRes(): Int {
|
override fun getLayoutRes(): Int {
|
||||||
return R.layout.item_recently_read
|
return R.layout.recently_read_item
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun createViewHolder(adapter: FlexibleAdapter<*>,
|
override fun createViewHolder(adapter: FlexibleAdapter<*>,
|
||||||
|
@ -24,7 +24,7 @@ class CustomLayoutFilePickerFragment : FilePickerFragment() {
|
|||||||
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
|
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
|
||||||
when (viewType) {
|
when (viewType) {
|
||||||
LogicHandler.VIEWTYPE_DIR -> {
|
LogicHandler.VIEWTYPE_DIR -> {
|
||||||
val view = parent.inflate(R.layout.listitem_dir)
|
val view = parent.inflate(R.layout.common_listitem_dir)
|
||||||
return DirViewHolder(view)
|
return DirViewHolder(view)
|
||||||
}
|
}
|
||||||
else -> return super.onCreateViewHolder(parent, viewType)
|
else -> return super.onCreateViewHolder(parent, viewType)
|
||||||
|
@ -6,13 +6,13 @@ import android.util.AttributeSet
|
|||||||
import android.widget.LinearLayout
|
import android.widget.LinearLayout
|
||||||
import eu.kanade.tachiyomi.R
|
import eu.kanade.tachiyomi.R
|
||||||
import eu.kanade.tachiyomi.util.inflate
|
import eu.kanade.tachiyomi.util.inflate
|
||||||
import kotlinx.android.synthetic.main.dialog_with_checkbox.view.*
|
import kotlinx.android.synthetic.main.common_dialog_with_checkbox.view.*
|
||||||
|
|
||||||
class DialogCheckboxView @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null) :
|
class DialogCheckboxView @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null) :
|
||||||
LinearLayout(context, attrs) {
|
LinearLayout(context, attrs) {
|
||||||
|
|
||||||
init {
|
init {
|
||||||
addView(inflate(R.layout.dialog_with_checkbox))
|
addView(inflate(R.layout.common_dialog_with_checkbox))
|
||||||
}
|
}
|
||||||
|
|
||||||
fun setDescription(@StringRes id: Int){
|
fun setDescription(@StringRes id: Int){
|
||||||
|
@ -7,13 +7,13 @@ import android.widget.RelativeLayout
|
|||||||
import eu.kanade.tachiyomi.R
|
import eu.kanade.tachiyomi.R
|
||||||
import eu.kanade.tachiyomi.util.getResourceColor
|
import eu.kanade.tachiyomi.util.getResourceColor
|
||||||
import eu.kanade.tachiyomi.util.setVectorCompat
|
import eu.kanade.tachiyomi.util.setVectorCompat
|
||||||
import kotlinx.android.synthetic.main.view_empty.view.*
|
import kotlinx.android.synthetic.main.common_view_empty.view.*
|
||||||
|
|
||||||
class EmptyView @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null) :
|
class EmptyView @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null) :
|
||||||
RelativeLayout (context, attrs) {
|
RelativeLayout (context, attrs) {
|
||||||
|
|
||||||
init {
|
init {
|
||||||
inflate(context, R.layout.view_empty, this)
|
inflate(context, R.layout.common_view_empty, this)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -5,13 +5,13 @@ import android.support.v7.preference.Preference
|
|||||||
import android.support.v7.preference.PreferenceViewHolder
|
import android.support.v7.preference.PreferenceViewHolder
|
||||||
import android.util.AttributeSet
|
import android.util.AttributeSet
|
||||||
import eu.kanade.tachiyomi.R
|
import eu.kanade.tachiyomi.R
|
||||||
import kotlinx.android.synthetic.main.preference_widget_imageview.view.*
|
import kotlinx.android.synthetic.main.pref_widget_imageview.view.*
|
||||||
|
|
||||||
class LoginPreference @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null) :
|
class LoginPreference @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null) :
|
||||||
Preference(context, attrs) {
|
Preference(context, attrs) {
|
||||||
|
|
||||||
init {
|
init {
|
||||||
widgetLayoutResource = R.layout.preference_widget_imageview
|
widgetLayoutResource = R.layout.pref_widget_imageview
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onBindViewHolder(holder: PreferenceViewHolder) {
|
override fun onBindViewHolder(holder: PreferenceViewHolder) {
|
||||||
|
@ -1,18 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<android.support.design.widget.CoordinatorLayout
|
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:fitsSystemWindows="true">
|
|
||||||
|
|
||||||
<include layout="@layout/toolbar"/>
|
|
||||||
|
|
||||||
<com.bluelinelabs.conductor.ChangeHandlerFrameLayout
|
|
||||||
android:id="@+id/controller_container"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
app:layout_behavior="@string/appbar_scrolling_view_behavior"
|
|
||||||
/>
|
|
||||||
|
|
||||||
</android.support.design.widget.CoordinatorLayout>
|
|
@ -1,42 +0,0 @@
|
|||||||
<android.support.design.widget.CoordinatorLayout
|
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
|
||||||
tools:context="eu.kanade.tachiyomi.ui.manga.MangaActivity"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:fitsSystemWindows="true">
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:orientation="vertical">
|
|
||||||
|
|
||||||
<android.support.design.widget.AppBarLayout
|
|
||||||
android:id="@+id/appbar"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content">
|
|
||||||
|
|
||||||
<include layout="@layout/toolbar"/>
|
|
||||||
|
|
||||||
<android.support.design.widget.TabLayout
|
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
|
||||||
android:id="@+id/tabs"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:theme="@style/Theme.ActionBar.Tab"
|
|
||||||
app:tabGravity="fill"
|
|
||||||
app:tabIndicatorColor="@android:color/white"/>
|
|
||||||
|
|
||||||
</android.support.design.widget.AppBarLayout>
|
|
||||||
|
|
||||||
<android.support.v4.view.ViewPager
|
|
||||||
android:id="@+id/view_pager"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="0px"
|
|
||||||
android:layout_weight="1"/>
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
</android.support.design.widget.CoordinatorLayout>
|
|
@ -1,33 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<android.support.design.widget.CoordinatorLayout
|
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:fitsSystemWindows="true">
|
|
||||||
|
|
||||||
<LinearLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:orientation="vertical">
|
|
||||||
|
|
||||||
<android.support.design.widget.AppBarLayout
|
|
||||||
android:id="@+id/appbar"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content">
|
|
||||||
|
|
||||||
<include layout="@layout/toolbar"/>
|
|
||||||
|
|
||||||
</android.support.design.widget.AppBarLayout>
|
|
||||||
|
|
||||||
<FrameLayout
|
|
||||||
android:id="@+id/settings_content"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
app:layout_behavior="@string/appbar_scrolling_view_behavior">
|
|
||||||
|
|
||||||
</FrameLayout>
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
||||||
|
|
||||||
</android.support.design.widget.CoordinatorLayout>
|
|
@ -7,4 +7,4 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:columnWidth="140dp"
|
android:columnWidth="140dp"
|
||||||
tools:listitem="@layout/item_catalogue_grid" />
|
tools:listitem="@layout/catalogue_grid_item" />
|
@ -10,7 +10,7 @@
|
|||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:id="@+id/recycler"
|
android:id="@+id/recycler"
|
||||||
android:choiceMode="multipleChoice"
|
android:choiceMode="multipleChoice"
|
||||||
tools:listitem="@layout/item_edit_categories"
|
tools:listitem="@layout/categories_item"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<android.support.design.widget.FloatingActionButton
|
<android.support.design.widget.FloatingActionButton
|
||||||
|
@ -1,6 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<com.davemorrissey.labs.subscaleview.SubsamplingScaleImageView
|
|
||||||
android:id="@+id/image_view"
|
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent"/>
|
|
@ -29,7 +29,7 @@
|
|||||||
android:layout_marginLeft="16dp"
|
android:layout_marginLeft="16dp"
|
||||||
android:layout_marginRight="16dp"
|
android:layout_marginRight="16dp"
|
||||||
android:descendantFocusability="blocksDescendants"
|
android:descendantFocusability="blocksDescendants"
|
||||||
tools:listitem="@layout/item_chapter">
|
tools:listitem="@layout/chapters_item">
|
||||||
|
|
||||||
</android.support.v7.widget.RecyclerView>
|
</android.support.v7.widget.RecyclerView>
|
||||||
|
|
@ -10,7 +10,7 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:id="@+id/recycler"
|
android:id="@+id/recycler"
|
||||||
tools:listitem="@layout/item_download"/>
|
tools:listitem="@layout/download_item"/>
|
||||||
|
|
||||||
<eu.kanade.tachiyomi.widget.EmptyView
|
<eu.kanade.tachiyomi.widget.EmptyView
|
||||||
android:id="@+id/empty_view"
|
android:id="@+id/empty_view"
|
@ -1,21 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:orientation="vertical"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:gravity="center">
|
|
||||||
|
|
||||||
<Button
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:id="@+id/backup_button"
|
|
||||||
android:layout_marginBottom="16dp"
|
|
||||||
android:text="@string/backup"/>
|
|
||||||
|
|
||||||
<Button
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:id="@+id/restore_button"
|
|
||||||
android:text="@string/restore"/>
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
@ -1,16 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
|
||||||
android:orientation="vertical"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent">
|
|
||||||
|
|
||||||
<android.support.v7.widget.RecyclerView
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:id="@+id/recycler"
|
|
||||||
tools:listitem="@layout/item_download">
|
|
||||||
|
|
||||||
</android.support.v7.widget.RecyclerView>
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
@ -1,11 +0,0 @@
|
|||||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:orientation="vertical">
|
|
||||||
|
|
||||||
<android.support.v4.view.ViewPager
|
|
||||||
android:id="@+id/view_pager"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent"/>
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
@ -1,14 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<FrameLayout
|
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent">
|
|
||||||
|
|
||||||
<android.support.v4.widget.SwipeRefreshLayout
|
|
||||||
android:id="@+id/swipe_refresh"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent">
|
|
||||||
|
|
||||||
</android.support.v4.widget.SwipeRefreshLayout>
|
|
||||||
|
|
||||||
</FrameLayout>
|
|
@ -1,14 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<eu.kanade.tachiyomi.ui.library.LibraryCategoryView
|
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent">
|
|
||||||
|
|
||||||
<android.support.v4.widget.SwipeRefreshLayout
|
|
||||||
android:id="@+id/swipe_refresh"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent">
|
|
||||||
|
|
||||||
</android.support.v4.widget.SwipeRefreshLayout>
|
|
||||||
|
|
||||||
</eu.kanade.tachiyomi.ui.library.LibraryCategoryView>
|
|
@ -7,4 +7,4 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:columnWidth="140dp"
|
android:columnWidth="140dp"
|
||||||
tools:listitem="@layout/item_catalogue_grid" />
|
tools:listitem="@layout/catalogue_grid_item" />
|
||||||
|
@ -5,4 +5,4 @@
|
|||||||
android:id="@+id/library_list"
|
android:id="@+id/library_list"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
tools:listitem="@layout/item_catalogue_list" />
|
tools:listitem="@layout/catalogue_list_item" />
|
||||||
|
@ -18,7 +18,13 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content">
|
android:layout_height="wrap_content">
|
||||||
|
|
||||||
<include layout="@layout/toolbar"/>
|
<android.support.v7.widget.Toolbar
|
||||||
|
android:id="@+id/toolbar"
|
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="?attr/actionBarSize"
|
||||||
|
android:background="?attr/colorPrimary"
|
||||||
|
android:theme="?attr/actionBarTheme"/>
|
||||||
|
|
||||||
<android.support.design.widget.TabLayout
|
<android.support.design.widget.TabLayout
|
||||||
android:id="@+id/tabs"
|
android:id="@+id/tabs"
|
@ -29,7 +29,10 @@
|
|||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<include layout="@layout/chapter_image"/>
|
<com.davemorrissey.labs.subscaleview.SubsamplingScaleImageView
|
||||||
|
android:id="@+id/image_view"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"/>
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
@ -30,7 +30,11 @@
|
|||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<include layout="@layout/chapter_image"/>
|
<com.davemorrissey.labs.subscaleview.SubsamplingScaleImageView
|
||||||
|
android:id="@+id/image_view"
|
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"/>
|
||||||
|
|
||||||
<FrameLayout
|
<FrameLayout
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
@ -15,7 +15,7 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:descendantFocusability="blocksDescendants"
|
android:descendantFocusability="blocksDescendants"
|
||||||
tools:listitem="@layout/item_recent_chapters"/>
|
tools:listitem="@layout/recent_chapters_item"/>
|
||||||
|
|
||||||
<eu.kanade.tachiyomi.widget.EmptyView
|
<eu.kanade.tachiyomi.widget.EmptyView
|
||||||
android:id="@+id/empty_view"
|
android:id="@+id/empty_view"
|
@ -11,7 +11,7 @@
|
|||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:layout_marginBottom="4dp"
|
android:layout_marginBottom="4dp"
|
||||||
android:layout_marginTop="4dp"
|
android:layout_marginTop="4dp"
|
||||||
tools:listitem="@layout/item_recently_read">
|
tools:listitem="@layout/recently_read_item">
|
||||||
|
|
||||||
</android.support.v7.widget.RecyclerView>
|
</android.support.v7.widget.RecyclerView>
|
||||||
|
|
@ -1,8 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<android.support.v7.widget.Toolbar
|
|
||||||
android:id="@+id/toolbar"
|
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="?attr/actionBarSize"
|
|
||||||
android:background="?attr/colorPrimary"
|
|
||||||
android:theme="?attr/actionBarTheme"/>
|
|
@ -18,7 +18,7 @@
|
|||||||
android:id="@+id/track_recycler"
|
android:id="@+id/track_recycler"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
tools:listitem="@layout/item_track"/>
|
tools:listitem="@layout/track_item"/>
|
||||||
|
|
||||||
</android.support.v4.widget.SwipeRefreshLayout>
|
</android.support.v4.widget.SwipeRefreshLayout>
|
||||||
|
|
Loading…
Reference in New Issue
Block a user