Bladeren bron

Fix manga title disappearing in toolbar when pushing another controller

arkon 4 jaren geleden
bovenliggende
commit
12ff37d052
1 gewijzigde bestanden met toevoegingen van 23 en 13 verwijderingen
  1. 23 13
      app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaController.kt

+ 23 - 13
app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaController.kt

@@ -14,6 +14,9 @@ import android.view.View
 import android.view.ViewGroup
 import androidx.appcompat.app.AppCompatActivity
 import androidx.appcompat.view.ActionMode
+import androidx.core.graphics.blue
+import androidx.core.graphics.green
+import androidx.core.graphics.red
 import androidx.core.view.isVisible
 import androidx.recyclerview.widget.ConcatAdapter
 import androidx.recyclerview.widget.LinearLayoutManager
@@ -122,7 +125,6 @@ class MangaController :
     private val coverCache: CoverCache by injectLazy()
 
     private val toolbarTextColor by lazy { view!!.context.getResourceColor(R.attr.colorOnPrimary) }
-    private var toolbarTextAlpha = 255
 
     private var mangaInfoAdapter: MangaInfoHeaderAdapter? = null
     private var chaptersHeaderAdapter: MangaChaptersHeaderAdapter? = null
@@ -157,6 +159,19 @@ class MangaController :
         setHasOptionsMenu(true)
     }
 
+    override fun getTitle(): String? {
+        return manga?.title
+    }
+
+    override fun onChangeStarted(handler: ControllerChangeHandler, type: ControllerChangeType) {
+        super.onChangeStarted(handler, type)
+
+        // Hide toolbar title on enter
+        if (type.isEnter) {
+            updateToolbarTitleAlpha()
+        }
+    }
+
     override fun onChangeEnded(handler: ControllerChangeHandler, type: ControllerChangeType) {
         super.onChangeEnded(handler, type)
         if (manga == null || source == null) {
@@ -204,7 +219,6 @@ class MangaController :
             // Delayed in case we need to jump to chapters
             binding.recycler.post {
                 updateToolbarTitleAlpha()
-                setTitle(manga?.title)
             }
         }
 
@@ -243,18 +257,14 @@ class MangaController :
             else -> min(binding.recycler.computeVerticalScrollOffset(), 255)
         }
 
-        if (calculatedAlpha != toolbarTextAlpha) {
-            toolbarTextAlpha = calculatedAlpha
-
-            activity?.toolbar?.setTitleTextColor(
-                Color.argb(
-                    toolbarTextAlpha,
-                    Color.red(toolbarTextColor),
-                    Color.green(toolbarTextColor),
-                    Color.blue(toolbarTextColor)
-                )
+        activity?.toolbar?.setTitleTextColor(
+            Color.argb(
+                calculatedAlpha,
+                toolbarTextColor.red,
+                toolbarTextColor.green,
+                toolbarTextColor.blue
             )
-        }
+        )
     }
 
     private fun updateFilterIconState() {