|
@@ -22,7 +22,9 @@ import android.view.KeyEvent
|
|
import android.view.Menu
|
|
import android.view.Menu
|
|
import android.view.MenuItem
|
|
import android.view.MenuItem
|
|
import android.view.MotionEvent
|
|
import android.view.MotionEvent
|
|
|
|
+import android.view.View
|
|
import android.view.View.LAYER_TYPE_HARDWARE
|
|
import android.view.View.LAYER_TYPE_HARDWARE
|
|
|
|
+import android.view.Window
|
|
import android.view.WindowManager
|
|
import android.view.WindowManager
|
|
import android.view.animation.Animation
|
|
import android.view.animation.Animation
|
|
import android.view.animation.AnimationUtils
|
|
import android.view.animation.AnimationUtils
|
|
@@ -39,6 +41,8 @@ import androidx.lifecycle.lifecycleScope
|
|
import com.davemorrissey.labs.subscaleview.SubsamplingScaleImageView
|
|
import com.davemorrissey.labs.subscaleview.SubsamplingScaleImageView
|
|
import com.google.android.material.shape.MaterialShapeDrawable
|
|
import com.google.android.material.shape.MaterialShapeDrawable
|
|
import com.google.android.material.slider.Slider
|
|
import com.google.android.material.slider.Slider
|
|
|
|
+import com.google.android.material.transition.platform.MaterialContainerTransform
|
|
|
|
+import com.google.android.material.transition.platform.MaterialContainerTransformSharedElementCallback
|
|
import dev.chrisbanes.insetter.applyInsetter
|
|
import dev.chrisbanes.insetter.applyInsetter
|
|
import eu.kanade.tachiyomi.R
|
|
import eu.kanade.tachiyomi.R
|
|
import eu.kanade.tachiyomi.data.database.models.Chapter
|
|
import eu.kanade.tachiyomi.data.database.models.Chapter
|
|
@@ -105,6 +109,8 @@ class ReaderActivity : BaseRxActivity<ReaderActivityBinding, ReaderPresenter>()
|
|
|
|
|
|
private const val ENABLED_BUTTON_IMAGE_ALPHA = 255
|
|
private const val ENABLED_BUTTON_IMAGE_ALPHA = 255
|
|
private const val DISABLED_BUTTON_IMAGE_ALPHA = 64
|
|
private const val DISABLED_BUTTON_IMAGE_ALPHA = 64
|
|
|
|
+
|
|
|
|
+ const val SHARED_ELEMENT_NAME = "reader_shared_element_root"
|
|
}
|
|
}
|
|
|
|
|
|
private val preferences: PreferencesHelper by injectLazy()
|
|
private val preferences: PreferencesHelper by injectLazy()
|
|
@@ -150,6 +156,17 @@ class ReaderActivity : BaseRxActivity<ReaderActivityBinding, ReaderPresenter>()
|
|
*/
|
|
*/
|
|
override fun onCreate(savedInstanceState: Bundle?) {
|
|
override fun onCreate(savedInstanceState: Bundle?) {
|
|
applyAppTheme(preferences)
|
|
applyAppTheme(preferences)
|
|
|
|
+
|
|
|
|
+ // Setup shared element transitions
|
|
|
|
+ window.requestFeature(Window.FEATURE_ACTIVITY_TRANSITIONS)
|
|
|
|
+ findViewById<View>(android.R.id.content).transitionName = SHARED_ELEMENT_NAME
|
|
|
|
+ setEnterSharedElementCallback(MaterialContainerTransformSharedElementCallback())
|
|
|
|
+ window.sharedElementEnterTransition = buildContainerTransform(true)
|
|
|
|
+ window.sharedElementReturnTransition = buildContainerTransform(false)
|
|
|
|
+
|
|
|
|
+ // Postpone custom transition until manga ready
|
|
|
|
+ postponeEnterTransition()
|
|
|
|
+
|
|
super.onCreate(savedInstanceState)
|
|
super.onCreate(savedInstanceState)
|
|
|
|
|
|
binding = ReaderActivityBinding.inflate(layoutInflater)
|
|
binding = ReaderActivityBinding.inflate(layoutInflater)
|
|
@@ -295,6 +312,12 @@ class ReaderActivity : BaseRxActivity<ReaderActivityBinding, ReaderPresenter>()
|
|
return handled || super.dispatchGenericMotionEvent(event)
|
|
return handled || super.dispatchGenericMotionEvent(event)
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ private fun buildContainerTransform(entering: Boolean): MaterialContainerTransform {
|
|
|
|
+ return MaterialContainerTransform(this, entering).apply {
|
|
|
|
+ addTarget(android.R.id.content)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* Initializes the reader menu. It sets up click listeners and the initial visibility.
|
|
* Initializes the reader menu. It sets up click listeners and the initial visibility.
|
|
*/
|
|
*/
|
|
@@ -613,6 +636,8 @@ class ReaderActivity : BaseRxActivity<ReaderActivityBinding, ReaderPresenter>()
|
|
}
|
|
}
|
|
}
|
|
}
|
|
binding.readerContainer.addView(loadingIndicator)
|
|
binding.readerContainer.addView(loadingIndicator)
|
|
|
|
+
|
|
|
|
+ startPostponedEnterTransition()
|
|
}
|
|
}
|
|
|
|
|
|
private fun showReadingModeToast(mode: Int) {
|
|
private fun showReadingModeToast(mode: Int) {
|