diff --git a/app/build.gradle b/app/build.gradle index 700fb55d5a..b2e59c6c9a 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -33,14 +33,14 @@ def includeUpdater() { } android { - compileSdkVersion 24 - buildToolsVersion "24.0.2" + compileSdkVersion 25 + buildToolsVersion "25.0.0" publishNonDefault true defaultConfig { applicationId "eu.kanade.tachiyomi" minSdkVersion 16 - targetSdkVersion 24 + targetSdkVersion 25 testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" versionCode 13 versionName "0.3.2" @@ -97,7 +97,7 @@ dependencies { compile 'com.github.inorichi:ReactiveNetwork:69092ed' // Android support library - final support_library_version = '24.2.1' + final support_library_version = '25.0.0' compile "com.android.support:support-v4:$support_library_version" compile "com.android.support:appcompat-v7:$support_library_version" compile "com.android.support:cardview-v7:$support_library_version" @@ -112,11 +112,11 @@ dependencies { // ReactiveX compile 'io.reactivex:rxandroid:1.2.1' - compile 'io.reactivex:rxjava:1.2.1' + compile 'io.reactivex:rxjava:1.2.2' compile 'com.f2prateek.rx.preferences:rx-preferences:1.0.2' // Network client - compile "com.squareup.okhttp3:okhttp:3.4.1" + compile "com.squareup.okhttp3:okhttp:3.4.2" // REST final retrofit_version = '2.1.0' @@ -125,10 +125,10 @@ dependencies { compile "com.squareup.retrofit2:adapter-rxjava:$retrofit_version" // IO - compile 'com.squareup.okio:okio:1.10.0' + compile 'com.squareup.okio:okio:1.11.0' // JSON - compile 'com.google.code.gson:gson:2.7' + compile 'com.google.code.gson:gson:2.8.0' compile 'com.github.salomonbrys.kotson:kotson:2.4.0' // YAML @@ -141,7 +141,7 @@ dependencies { compile 'com.jakewharton:disklrucache:2.0.2' // Parse HTML - compile 'org.jsoup:jsoup:1.9.2' + compile 'org.jsoup:jsoup:1.10.1' // Changelog compile 'com.github.gabrielemariotti.changeloglib:changelog:2.1.0' @@ -176,7 +176,7 @@ dependencies { compile 'eu.davidea:flexible-adapter:4.2.0' compile 'com.nononsenseapps:filepicker:2.5.2' compile 'com.github.amulyakhare:TextDrawable:558677e' - compile 'com.afollestad.material-dialogs:core:0.9.0.2' + compile 'com.afollestad.material-dialogs:core:0.9.1.0' compile 'net.xpece.android:support-preference:1.0.3' compile 'me.zhanghai.android.systemuihelper:library:1.0.0' compile 'de.hdodenhof:circleimageview:2.1.0' @@ -185,9 +185,11 @@ dependencies { testCompile 'junit:junit:4.12' testCompile 'org.assertj:assertj-core:1.7.1' testCompile 'org.mockito:mockito-core:1.10.19' - testCompile 'org.robolectric:robolectric:3.1.2' - testCompile 'org.robolectric:shadows-multidex:3.1.2' - testCompile 'org.robolectric:shadows-play-services:3.1.2' + + final robolectric_version = '3.1.4' + testCompile "org.robolectric:robolectric:$robolectric_version" + testCompile "org.robolectric:shadows-multidex:$robolectric_version" + testCompile "org.robolectric:shadows-play-services:$robolectric_version" compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/catalogue/CatalogueFragment.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/catalogue/CatalogueFragment.kt index f9c37e2b78..5fc11962c9 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/catalogue/CatalogueFragment.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/catalogue/CatalogueFragment.kt @@ -3,10 +3,7 @@ package eu.kanade.tachiyomi.ui.catalogue import android.content.res.Configuration import android.os.Bundle import android.support.design.widget.Snackbar -import android.support.v7.widget.GridLayoutManager -import android.support.v7.widget.LinearLayoutManager -import android.support.v7.widget.SearchView -import android.support.v7.widget.Toolbar +import android.support.v7.widget.* import android.view.* import android.view.animation.AnimationUtils import android.widget.ArrayAdapter @@ -21,10 +18,8 @@ import eu.kanade.tachiyomi.ui.base.adapter.FlexibleViewHolder import eu.kanade.tachiyomi.ui.base.fragment.BaseRxFragment import eu.kanade.tachiyomi.ui.main.MainActivity import eu.kanade.tachiyomi.ui.manga.MangaActivity -import eu.kanade.tachiyomi.util.getResourceDrawable import eu.kanade.tachiyomi.util.snack import eu.kanade.tachiyomi.util.toast -import eu.kanade.tachiyomi.widget.DividerItemDecoration import eu.kanade.tachiyomi.widget.EndlessScrollListener import eu.kanade.tachiyomi.widget.IgnoreFirstSpinnerListener import kotlinx.android.synthetic.main.fragment_catalogue.* @@ -149,9 +144,7 @@ open class CatalogueFragment : BaseRxFragment(), FlexibleVie catalogue_list.adapter = adapter catalogue_list.layoutManager = llm catalogue_list.addOnScrollListener(listScrollListener) - catalogue_list.addItemDecoration( - DividerItemDecoration(context.theme.getResourceDrawable(R.attr.divider_drawable))) - + catalogue_list.addItemDecoration(DividerItemDecoration(context, DividerItemDecoration.VERTICAL)) if (presenter.isListMode) { switcher.showNext() } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/ChaptersFragment.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/ChaptersFragment.kt index 318beec435..fdf5a0747f 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/ChaptersFragment.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/ChaptersFragment.kt @@ -6,6 +6,7 @@ import android.content.Intent import android.os.Bundle import android.support.v4.app.DialogFragment import android.support.v7.view.ActionMode +import android.support.v7.widget.DividerItemDecoration import android.support.v7.widget.LinearLayoutManager import android.view.* import com.afollestad.materialdialogs.MaterialDialog @@ -19,10 +20,8 @@ import eu.kanade.tachiyomi.ui.base.fragment.BaseRxFragment import eu.kanade.tachiyomi.ui.manga.MangaActivity import eu.kanade.tachiyomi.ui.reader.ReaderActivity import eu.kanade.tachiyomi.util.getCoordinates -import eu.kanade.tachiyomi.util.getResourceDrawable import eu.kanade.tachiyomi.util.toast import eu.kanade.tachiyomi.widget.DeletingChaptersDialog -import eu.kanade.tachiyomi.widget.DividerItemDecoration import kotlinx.android.synthetic.main.fragment_manga_chapters.* import nucleus.factory.RequiresPresenter import timber.log.Timber @@ -67,8 +66,7 @@ class ChaptersFragment : BaseRxFragment(), ActionMode.Callbac recycler.adapter = adapter recycler.layoutManager = LinearLayoutManager(activity) - recycler.addItemDecoration(DividerItemDecoration( - context.theme.getResourceDrawable(R.attr.divider_drawable))) + recycler.addItemDecoration(DividerItemDecoration(context, DividerItemDecoration.VERTICAL)) recycler.setHasFixedSize(true) swipe_refresh.setOnRefreshListener { fetchChapters() } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/recent_updates/RecentChaptersFragment.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/recent_updates/RecentChaptersFragment.kt index c59cd7f71d..d3a6a325cc 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/recent_updates/RecentChaptersFragment.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/recent_updates/RecentChaptersFragment.kt @@ -3,6 +3,7 @@ package eu.kanade.tachiyomi.ui.recent_updates import android.os.Bundle import android.support.v4.app.DialogFragment import android.support.v7.view.ActionMode +import android.support.v7.widget.DividerItemDecoration import android.support.v7.widget.LinearLayoutManager import android.view.* import com.afollestad.materialdialogs.MaterialDialog @@ -13,9 +14,7 @@ import eu.kanade.tachiyomi.ui.base.adapter.FlexibleViewHolder import eu.kanade.tachiyomi.ui.base.fragment.BaseRxFragment import eu.kanade.tachiyomi.ui.main.MainActivity import eu.kanade.tachiyomi.ui.reader.ReaderActivity -import eu.kanade.tachiyomi.util.getResourceDrawable import eu.kanade.tachiyomi.widget.DeletingChaptersDialog -import eu.kanade.tachiyomi.widget.DividerItemDecoration import kotlinx.android.synthetic.main.fragment_recent_chapters.* import nucleus.factory.RequiresPresenter import timber.log.Timber @@ -69,7 +68,7 @@ class RecentChaptersFragment override fun onViewCreated(view: View, savedState: Bundle?) { // Init RecyclerView and adapter recycler.layoutManager = LinearLayoutManager(activity) - recycler.addItemDecoration(DividerItemDecoration(context.theme.getResourceDrawable(R.attr.divider_drawable))) + recycler.addItemDecoration(DividerItemDecoration(context, DividerItemDecoration.VERTICAL)) recycler.setHasFixedSize(true) adapter = RecentChaptersAdapter(this) recycler.adapter = adapter diff --git a/app/src/main/java/eu/kanade/tachiyomi/widget/DividerItemDecoration.kt b/app/src/main/java/eu/kanade/tachiyomi/widget/DividerItemDecoration.kt deleted file mode 100644 index d752ac6fb4..0000000000 --- a/app/src/main/java/eu/kanade/tachiyomi/widget/DividerItemDecoration.kt +++ /dev/null @@ -1,83 +0,0 @@ -package eu.kanade.tachiyomi.widget - -import android.content.Context -import android.graphics.Canvas -import android.graphics.Rect -import android.graphics.drawable.Drawable -import android.support.v7.widget.LinearLayoutManager -import android.support.v7.widget.RecyclerView -import android.util.AttributeSet -import android.view.View - -class DividerItemDecoration : RecyclerView.ItemDecoration { - - private val divider: Drawable? - - constructor(context: Context, attrs: AttributeSet) { - val a = context.obtainStyledAttributes(attrs, intArrayOf(android.R.attr.listDivider)) - divider = a.getDrawable(0) - a.recycle() - } - - constructor(divider: Drawable) { - this.divider = divider - } - - override fun getItemOffsets(outRect: Rect, view: View, parent: RecyclerView, state: RecyclerView.State?) { - super.getItemOffsets(outRect, view, parent, state) - if (divider == null) return - if (parent.getChildPosition(view) < 1) return - - if (getOrientation(parent) == LinearLayoutManager.VERTICAL) - outRect.top = divider.intrinsicHeight - else - outRect.left = divider.intrinsicWidth - } - - override fun onDrawOver(c: Canvas, parent: RecyclerView, state: RecyclerView.State?) { - if (divider == null) { - super.onDrawOver(c, parent, state) - return - } - - if (getOrientation(parent) == LinearLayoutManager.VERTICAL) { - val left = parent.paddingLeft - val right = parent.width - parent.paddingRight - val childCount = parent.childCount - val dividerHeight = divider.intrinsicHeight - - for (i in 1..childCount - 1) { - val child = parent.getChildAt(i) - val params = child.layoutParams as RecyclerView.LayoutParams - val ty = (child.translationY + 0.5f).toInt() - val top = child.top - params.topMargin + ty - val bottom = top + dividerHeight - divider.setBounds(left, top, right, bottom) - divider.draw(c) - } - } else { //horizontal - val top = parent.paddingTop - val bottom = parent.height - parent.paddingBottom - val childCount = parent.childCount - - for (i in 1..childCount - 1) { - val child = parent.getChildAt(i) - val params = child.layoutParams as RecyclerView.LayoutParams - val size = divider.intrinsicWidth - val left = child.left - params.leftMargin - val right = left + size - divider.setBounds(left, top, right, bottom) - divider.draw(c) - } - } - } - - private fun getOrientation(parent: RecyclerView): Int { - if (parent.layoutManager is LinearLayoutManager) { - val layoutManager = parent.layoutManager as LinearLayoutManager - return layoutManager.orientation - } else - throw IllegalStateException("DividerItemDecoration can only be used with a LinearLayoutManager.") - } - -} \ No newline at end of file diff --git a/app/src/main/java/eu/kanade/tachiyomi/widget/PreCachingLayoutManager.kt b/app/src/main/java/eu/kanade/tachiyomi/widget/PreCachingLayoutManager.kt index f742a0e578..82c6160984 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/widget/PreCachingLayoutManager.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/widget/PreCachingLayoutManager.kt @@ -6,6 +6,10 @@ import android.support.v7.widget.RecyclerView class PreCachingLayoutManager(context: Context) : LinearLayoutManager(context) { + init { + isItemPrefetchEnabled = false + } + companion object { const val DEFAULT_EXTRA_LAYOUT_SPACE = 600 } diff --git a/app/src/main/res/values/attrs.xml b/app/src/main/res/values/attrs.xml index 0d37df9c39..3d4b09c757 100644 --- a/app/src/main/res/values/attrs.xml +++ b/app/src/main/res/values/attrs.xml @@ -1,13 +1,11 @@ - + - @@ -25,7 +23,6 @@ - diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index bbf56979d1..3039d40b8c 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -22,6 +22,7 @@ @color/backgroundLight ?colorAccent @color/dividerLight + @drawable/line_divider_light true @@ -33,7 +34,6 @@ @drawable/list_item_selector_light @drawable/library_item_selector_light - @drawable/line_divider_light @color/textColorPrimaryLight @color/dialogLight ?colorAccent @@ -60,6 +60,7 @@ @color/backgroundDark ?colorAccent @color/dividerDark + @drawable/line_divider_dark true @@ -73,7 +74,6 @@ @style/Theme.Widget.NavigationView.Dark @drawable/list_item_selector_dark @drawable/library_item_selector_dark - @drawable/line_divider_dark @color/textColorPrimaryDark @color/dialogDark ?colorAccent