浏览代码

Upgrade support library. Switch gradle build tools and AS to 2.0. Adapt code to new support lib

len 9 年之前
父节点
当前提交
67c4781376
共有 26 个文件被更改,包括 40 次插入59 次删除
  1. 3 3
      app/build.gradle
  2. 4 4
      app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt
  3. 4 5
      app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/ChaptersFragment.kt
  4. 1 2
      app/src/main/java/eu/kanade/tachiyomi/ui/manga/info/MangaInfoFragment.kt
  5. 1 1
      app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonReader.kt
  6. 1 1
      app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsGeneralFragment.kt
  7. 9 0
      app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsNestedFragment.kt
  8. 1 1
      app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsSourcesFragment.kt
  9. 1 1
      app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsSyncFragment.kt
  10. 8 9
      app/src/main/java/eu/kanade/tachiyomi/util/ImageViewExtensions.kt
  11. 4 7
      app/src/main/java/eu/kanade/tachiyomi/widget/preference/LoginPreference.kt
  12. 二进制
      app/src/main/res/drawable-hdpi/reader_background_checkbox_selected.png
  13. 二进制
      app/src/main/res/drawable-hdpi/reader_background_checkbox_unselected.png
  14. 二进制
      app/src/main/res/drawable-ldpi/reader_background_checkbox_selected.png
  15. 二进制
      app/src/main/res/drawable-ldpi/reader_background_checkbox_unselected.png
  16. 二进制
      app/src/main/res/drawable-mdpi/reader_background_checkbox_selected.png
  17. 二进制
      app/src/main/res/drawable-mdpi/reader_background_checkbox_unselected.png
  18. 二进制
      app/src/main/res/drawable-xxhdpi/reader_background_checkbox_selected.png
  19. 二进制
      app/src/main/res/drawable-xxhdpi/reader_background_checkbox_unselected.png
  20. 二进制
      app/src/main/res/drawable-xxxhdpi/reader_background_checkbox_selected.png
  21. 二进制
      app/src/main/res/drawable-xxxhdpi/reader_background_checkbox_unselected.png
  22. 0 9
      app/src/main/res/drawable/ic_reader_background_checkbox_black_24dp.xml
  23. 0 9
      app/src/main/res/drawable/ic_reader_background_checkbox_white_24dp.xml
  24. 2 2
      app/src/main/res/drawable/reader_background_checkbox.xml
  25. 0 4
      app/src/main/res/layout/reader_popup.xml
  26. 1 1
      build.gradle

+ 3 - 3
app/build.gradle

@@ -25,12 +25,12 @@ ext {
 }
 
 def includeUpdater() {
-    return hasProperty("include_updater");
+    return hasProperty("include_updater")
 }
 
 android {
     compileSdkVersion 23
-    buildToolsVersion "23.0.2"
+    buildToolsVersion "23.0.3"
     publishNonDefault true
 
     defaultConfig {
@@ -88,7 +88,7 @@ kapt {
 }
 
 dependencies {
-    final SUPPORT_LIBRARY_VERSION = '23.2.1'
+    final SUPPORT_LIBRARY_VERSION = '23.3.0'
     final DAGGER_VERSION = '2.2'
     final OKHTTP_VERSION = '3.2.0'
     final RETROFIT_VERSION = '2.0.1'

+ 4 - 4
app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt

@@ -17,7 +17,7 @@ import eu.kanade.tachiyomi.ui.library.LibraryFragment
 import eu.kanade.tachiyomi.ui.recent.RecentChaptersFragment
 import eu.kanade.tachiyomi.ui.setting.SettingsActivity
 import eu.kanade.tachiyomi.util.getResourceColor
-import eu.kanade.tachiyomi.util.setDrawableCompat
+import eu.kanade.tachiyomi.util.setVectorCompat
 import kotlinx.android.synthetic.main.activity_main.*
 import kotlinx.android.synthetic.main.toolbar.*
 
@@ -57,7 +57,7 @@ class MainActivity : BaseActivity() {
         // Set behavior of Navigation drawer
         nav_view.setNavigationItemSelectedListener { item ->
             // Make information view invisible
-            image_view.setDrawableCompat(null)
+            image_view.setImageResource(android.R.color.transparent)
             text_label.text = ""
 
             when (item.itemId) {
@@ -93,10 +93,10 @@ class MainActivity : BaseActivity() {
 
     fun updateEmptyView(show: Boolean, textResource: Int, drawable: Int) {
         if (show) {
-            image_view.setDrawableCompat(drawable)
+            image_view.setVectorCompat(drawable, theme.getResourceColor(android.R.attr.textColorHint))
             text_label.text = getString(textResource)
         } else {
-            image_view.setDrawableCompat(null)
+            image_view.setImageResource(android.R.color.transparent)
             text_label.text = ""
         }
     }

+ 4 - 5
app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/ChaptersFragment.kt

@@ -77,9 +77,8 @@ class ChaptersFragment : BaseRxFragment<ChaptersPresenter>(), ActionMode.Callbac
             val chapter = presenter.getNextUnreadChapter()
             if (chapter != null) {
                 // Create animation listener
-                var revealAnimationListener: Animator.AnimatorListener = object : AnimatorListenerAdapter() {
-                    override fun onAnimationEnd(animation: Animator) {
-                        // On done open chapter
+                val revealAnimationListener: Animator.AnimatorListener = object : AnimatorListenerAdapter() {
+                    override fun onAnimationStart(animation: Animator?) {
                         openChapter(chapter, true)
                     }
                 }
@@ -109,7 +108,7 @@ class ChaptersFragment : BaseRxFragment<ChaptersPresenter>(), ActionMode.Callbac
         // Check if animation view is visible
         if (reveal_view.visibility == View.VISIBLE) {
             // Show the unReveal effect
-            var coordinates = fab.getCoordinates()
+            val coordinates = fab.getCoordinates()
             reveal_view.hideRevealEffect(coordinates.x, coordinates.y, 1920)
         }
         super.onResume()
@@ -184,7 +183,7 @@ class ChaptersFragment : BaseRxFragment<ChaptersPresenter>(), ActionMode.Callbac
     val isCatalogueManga: Boolean
         get() = (activity as MangaActivity).isCatalogueManga
 
-    protected fun openChapter(chapter: Chapter, hasAnimation: Boolean = false) {
+    fun openChapter(chapter: Chapter, hasAnimation: Boolean = false) {
         presenter.onOpenChapter(chapter)
         val intent = ReaderActivity.newIntent(activity)
         if (hasAnimation) {

+ 1 - 2
app/src/main/java/eu/kanade/tachiyomi/ui/manga/info/MangaInfoFragment.kt

@@ -8,7 +8,6 @@ import eu.kanade.tachiyomi.R
 import eu.kanade.tachiyomi.data.database.models.Manga
 import eu.kanade.tachiyomi.data.source.base.Source
 import eu.kanade.tachiyomi.ui.base.fragment.BaseRxFragment
-import eu.kanade.tachiyomi.util.setDrawableCompat
 import kotlinx.android.synthetic.main.fragment_manga_info.*
 import nucleus.factory.RequiresPresenter
 
@@ -137,7 +136,7 @@ class MangaInfoFragment : BaseRxFragment<MangaInfoPresenter>() {
     private fun setFavoriteDrawable(isFavorite: Boolean) {
         // Set the Favorite drawable to the correct one.
         // Border drawable if false, filled drawable if true.
-        fab_favorite.setDrawableCompat(if (isFavorite)
+        fab_favorite.setImageResource(if (isFavorite)
             R.drawable.ic_bookmark_white_24dp
         else
             R.drawable.ic_bookmark_border_white_24dp)

+ 1 - 1
app/src/main/java/eu/kanade/tachiyomi/ui/reader/viewer/webtoon/WebtoonReader.kt

@@ -110,7 +110,7 @@ class WebtoonReader : BaseReader() {
     }
 
     override fun onSaveInstanceState(outState: Bundle) {
-        val savedPosition = pages[layoutManager.findFirstVisibleItemPosition()].pageNumber
+        val savedPosition = pages.getOrNull(layoutManager.findFirstVisibleItemPosition())?.pageNumber ?: 0
         outState.putInt(SAVED_POSITION, savedPosition)
         super.onSaveInstanceState(outState)
     }

+ 1 - 1
app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsGeneralFragment.kt

@@ -74,7 +74,7 @@ class SettingsGeneralFragment : SettingsNestedFragment() {
         if (preference === columnsPreference) {
             val fragment = LibraryColumnsDialog.newInstance(preference)
             fragment.setTargetFragment(this, 0)
-            fragment.show(childFragmentManager, null)
+            fragment.show(fragmentManagerCompat, null)
         } else {
             super.onDisplayPreferenceDialog(preference)
         }

+ 9 - 0
app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsNestedFragment.kt

@@ -1,5 +1,7 @@
 package eu.kanade.tachiyomi.ui.setting
 
+import android.app.FragmentManager
+import android.os.Build
 import android.os.Bundle
 import android.support.v14.preference.PreferenceFragment
 import eu.kanade.tachiyomi.data.preference.PreferencesHelper
@@ -40,4 +42,11 @@ open class SettingsNestedFragment : PreferenceFragment() {
 
     val preferences: PreferencesHelper
         get() = settingsActivity.preferences
+
+    val fragmentManagerCompat: FragmentManager
+        get() = if (Build.VERSION.SDK_INT >= 17) {
+            childFragmentManager
+        } else {
+            fragmentManager
+        }
 }

+ 1 - 1
app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsSourcesFragment.kt

@@ -71,7 +71,7 @@ class SettingsSourcesFragment : SettingsNestedFragment() {
             setOnPreferenceClickListener {
                 val fragment = SourceLoginDialog.newInstance(source)
                 fragment.setTargetFragment(this@SettingsSourcesFragment, SOURCE_CHANGE_REQUEST)
-                fragment.show(childFragmentManager, null)
+                fragment.show(fragmentManagerCompat, null)
                 true
             }
 

+ 1 - 1
app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsSyncFragment.kt

@@ -33,7 +33,7 @@ class SettingsSyncFragment : SettingsNestedFragment() {
                 setOnPreferenceClickListener {
                     val fragment = MangaSyncLoginDialog.newInstance(sync)
                     fragment.setTargetFragment(this@SettingsSyncFragment, SYNC_CHANGE_REQUEST)
-                    fragment.show(childFragmentManager, null)
+                    fragment.show(fragmentManagerCompat, null)
                     true
                 }
             }

+ 8 - 9
app/src/main/java/eu/kanade/tachiyomi/util/ImageViewExtensions.kt

@@ -1,21 +1,20 @@
 package eu.kanade.tachiyomi.util
 
 import android.support.annotation.DrawableRes
+import android.support.graphics.drawable.VectorDrawableCompat
 import android.support.v4.content.ContextCompat
 import android.support.v4.graphics.drawable.DrawableCompat
 import android.widget.ImageView
 
 /**
- * Set a drawable on a [ImageView] using [ContextCompat] for backwards compatibility.
+ * Set a vector on a [ImageView].
  *
  * @param drawable id of drawable resource
  */
-fun ImageView.setDrawableCompat(@DrawableRes drawable: Int?) {
-    if (drawable != null) {
-        var drawable = ContextCompat.getDrawable(context, drawable)
-        DrawableCompat.setTint(drawable,this.context.theme.getResourceColor(android.R.attr.textColorHint))
-        setImageDrawable(drawable)
-    } else {
-        setImageResource(android.R.color.transparent)
+fun ImageView.setVectorCompat(@DrawableRes drawable: Int, tint: Int? = null) {
+    val vector = VectorDrawableCompat.create(resources, drawable, context.theme)
+    if (tint != null) {
+        vector?.setTint(tint)
     }
-}
+    setImageDrawable(vector)
+}

+ 4 - 7
app/src/main/java/eu/kanade/tachiyomi/widget/preference/LoginPreference.kt

@@ -18,13 +18,10 @@ class LoginPreference @JvmOverloads constructor(context: Context, attrs: Attribu
     override fun onBindViewHolder(holder: PreferenceViewHolder) {
         super.onBindViewHolder(holder)
 
-        with(holder.itemView.image_view) {
-            if (getPersistedString("").isNullOrEmpty()) {
-                setImageResource(android.R.color.transparent)
-            } else {
-                setImageDrawable(ContextCompat.getDrawable(context, R.drawable.ic_done_green_24dp))
-            }
-        }
+        holder.itemView.image_view.setImageResource(if (getPersistedString("").isNullOrEmpty())
+            android.R.color.transparent
+        else
+            R.drawable.ic_done_green_24dp)
     }
 
     override public fun notifyChanged() {

二进制
app/src/main/res/drawable-hdpi/reader_background_checkbox_selected.png


二进制
app/src/main/res/drawable-hdpi/reader_background_checkbox_unselected.png


二进制
app/src/main/res/drawable-ldpi/reader_background_checkbox_selected.png


二进制
app/src/main/res/drawable-ldpi/reader_background_checkbox_unselected.png


二进制
app/src/main/res/drawable-mdpi/reader_background_checkbox_selected.png


二进制
app/src/main/res/drawable-mdpi/reader_background_checkbox_unselected.png


二进制
app/src/main/res/drawable-xxhdpi/reader_background_checkbox_selected.png


二进制
app/src/main/res/drawable-xxhdpi/reader_background_checkbox_unselected.png


二进制
app/src/main/res/drawable-xxxhdpi/reader_background_checkbox_selected.png


二进制
app/src/main/res/drawable-xxxhdpi/reader_background_checkbox_unselected.png


+ 0 - 9
app/src/main/res/drawable/ic_reader_background_checkbox_black_24dp.xml

@@ -1,9 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-        android:width="24dp"
-        android:height="24dp"
-        android:viewportWidth="24.0"
-        android:viewportHeight="24.0">
-    <path
-        android:fillColor="#FF000000"
-        android:pathData="M19,3H5C3.9,3,3,3.9,3,5v14c0,1.1,0.9,2,2,2h14c1.1,0,2-0.9,2-2V5C21,3.9,20.1,3,19,3z"/>
-</vector>

+ 0 - 9
app/src/main/res/drawable/ic_reader_background_checkbox_white_24dp.xml

@@ -1,9 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-        android:width="24dp"
-        android:height="24dp"
-        android:viewportWidth="24.0"
-        android:viewportHeight="24.0">
-    <path
-        android:fillColor="#FFFFFFFF"
-        android:pathData="M19,3H5C3.9,3,3,3.9,3,5v14c0,1.1,0.9,2,2,2h14c1.1,0,2-0.9,2-2V5C21,3.9,20.1,3,19,3z"/>
-</vector>

+ 2 - 2
app/src/main/res/drawable/reader_background_checkbox.xml

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
 <selector xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:state_checked="true" android:drawable="@drawable/ic_reader_background_checkbox_black_24dp" />
-    <item android:drawable="@drawable/ic_reader_background_checkbox_white_24dp" />
+    <item android:state_checked="true" android:drawable="@drawable/reader_background_checkbox_selected" />
+    <item android:drawable="@drawable/reader_background_checkbox_unselected" />
 </selector>

+ 0 - 4
app/src/main/res/layout/reader_popup.xml

@@ -39,10 +39,6 @@
         android:layout_width="wrap_content"
         android:layout_height="36dp"
         android:gravity="center"
-        android:paddingLeft="4dp"
-        android:paddingRight="4dp"
-        android:layout_marginLeft="4dp"
-        android:layout_marginStart="4dp"
         android:text="@string/pref_reader_theme"/>
 
     <android.support.v7.widget.AppCompatCheckBox

+ 1 - 1
build.gradle

@@ -6,7 +6,7 @@ buildscript {
         jcenter()
     }
     dependencies {
-        classpath 'com.android.tools.build:gradle:2.1.0-alpha4'
+        classpath 'com.android.tools.build:gradle:2.0.0'
         classpath 'com.github.ben-manes:gradle-versions-plugin:0.12.0'
         // NOTE: Do not place your application dependencies here; they belong
         // in the individual module build.gradle files