compileSdkVersion 33 and library updates

* core-ktx 1.8.0 -> 1.9.0
* appcompat 1.5.0 -> 1.5.1
* navigation-fragment-ktx 2.5.1 -> 2.5.2
* navigation-ui-ktx 2.5.1 -> 2.5.2
This commit is contained in:
Jannik 2022-09-14 20:33:08 +02:00
parent 85b17d7a76
commit ebd96f9849
Signed by: Seil0
GPG Key ID: E8459F3723C52C24
7 changed files with 33 additions and 35 deletions

View File

@ -5,7 +5,7 @@ plugins {
} }
android { android {
compileSdkVersion 32 compileSdkVersion 33
buildToolsVersion "30.0.3" buildToolsVersion "30.0.3"
defaultConfig { defaultConfig {
@ -51,12 +51,12 @@ dependencies {
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4' implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4'
implementation 'org.jetbrains.kotlinx:kotlinx-serialization-json:1.3.3' implementation 'org.jetbrains.kotlinx:kotlinx-serialization-json:1.3.3'
implementation 'androidx.core:core-ktx:1.8.0' implementation 'androidx.core:core-ktx:1.9.0'
implementation 'androidx.core:core-splashscreen:1.0.0' implementation 'androidx.core:core-splashscreen:1.0.0'
implementation 'androidx.appcompat:appcompat:1.5.0' implementation 'androidx.appcompat:appcompat:1.5.1'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4' implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
implementation 'androidx.navigation:navigation-fragment-ktx:2.5.1' implementation 'androidx.navigation:navigation-fragment-ktx:2.5.2'
implementation 'androidx.navigation:navigation-ui-ktx:2.5.1' implementation 'androidx.navigation:navigation-ui-ktx:2.5.2'
implementation 'androidx.security:security-crypto:1.1.0-alpha03' implementation 'androidx.security:security-crypto:1.1.0-alpha03'
implementation 'androidx.legacy:legacy-support-v4:1.0.0' implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.5.1' implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.5.1'

View File

@ -26,6 +26,7 @@ import android.content.Intent
import android.os.Bundle import android.os.Bundle
import android.util.Log import android.util.Log
import android.view.MenuItem import android.view.MenuItem
import androidx.activity.addCallback
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
@ -78,16 +79,14 @@ class MainActivity : AppCompatActivity(), NavigationBarView.OnItemSelectedListen
supportFragmentManager.commit { supportFragmentManager.commit {
replace(R.id.nav_host_fragment, activeBaseFragment, activeBaseFragment.javaClass.simpleName) replace(R.id.nav_host_fragment, activeBaseFragment, activeBaseFragment.javaClass.simpleName)
} }
}
override fun onBackPressed() { onBackPressedDispatcher.addCallback {
if (supportFragmentManager.backStackEntryCount > 0) { if (supportFragmentManager.backStackEntryCount > 0) {
supportFragmentManager.popBackStack() supportFragmentManager.popBackStack()
} else {
if (activeBaseFragment !is HomeFragment) {
binding.navView.selectedItemId = R.id.navigation_home
} else { } else {
super.onBackPressed() if (activeBaseFragment !is HomeFragment) {
binding.navView.selectedItemId = R.id.navigation_home
}
} }
} }
} }

View File

@ -3,13 +3,14 @@ package org.mosad.teapod.ui.activity.onboarding
import android.content.Intent import android.content.Intent
import android.os.Bundle import android.os.Bundle
import android.view.View import android.view.View
import androidx.activity.addCallback
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentActivity import androidx.fragment.app.FragmentActivity
import androidx.viewpager2.adapter.FragmentStateAdapter import androidx.viewpager2.adapter.FragmentStateAdapter
import com.google.android.material.tabs.TabLayoutMediator import com.google.android.material.tabs.TabLayoutMediator
import org.mosad.teapod.ui.activity.main.MainActivity
import org.mosad.teapod.databinding.ActivityOnboardingBinding import org.mosad.teapod.databinding.ActivityOnboardingBinding
import org.mosad.teapod.ui.activity.main.MainActivity
class OnboardingActivity : AppCompatActivity() { class OnboardingActivity : AppCompatActivity() {
@ -35,13 +36,11 @@ class OnboardingActivity : AppCompatActivity() {
if (fragments.size <= 1) { if (fragments.size <= 1) {
binding.tabLayout.visibility = View.GONE binding.tabLayout.visibility = View.GONE
} }
}
override fun onBackPressed() { onBackPressedDispatcher.addCallback {
if (binding.viewPager.currentItem == 0) { if (binding.viewPager.currentItem != 0) {
super.onBackPressed() binding.viewPager.currentItem = binding.viewPager.currentItem - 1
} else { }
binding.viewPager.currentItem = binding.viewPager.currentItem - 1
} }
} }

View File

@ -307,9 +307,9 @@ class PlayerActivity : AppCompatActivity() {
} }
// TODO add metaDB ending_start support // TODO add metaDB ending_start support
// if remaining time < 20 sec, a next ep is set, autoplay is enabled and not in pip: // if remaining time > 1 and < 20 sec, a next ep is set, autoplay is enabled
// show next ep button // and not in pip: show next ep button
if (remainingTime in 1..20000) { if (remainingTime in 1000..20000) {
if (!btnNextEpIsVisible && hasNextEpisode() && Preferences.autoplay && !isInPiPMode()) { if (!btnNextEpIsVisible && hasNextEpisode() && Preferences.autoplay && !isInPiPMode()) {
showButtonNextEp() showButtonNextEp()
} }
@ -471,7 +471,7 @@ class PlayerActivity : AppCompatActivity() {
playerBinding.buttonNextEp.animate() playerBinding.buttonNextEp.animate()
.alpha(0.0f) .alpha(0.0f)
.setListener(object : AnimatorListenerAdapter() { .setListener(object : AnimatorListenerAdapter() {
override fun onAnimationEnd(animation: Animator?) { override fun onAnimationEnd(animation: Animator) {
super.onAnimationEnd(animation) super.onAnimationEnd(animation)
playerBinding.buttonNextEp.isVisible = false playerBinding.buttonNextEp.isVisible = false
} }
@ -491,7 +491,7 @@ class PlayerActivity : AppCompatActivity() {
playerBinding.buttonSkipOp.animate() playerBinding.buttonSkipOp.animate()
.alpha(0.0f) .alpha(0.0f)
.setListener(object : AnimatorListenerAdapter() { .setListener(object : AnimatorListenerAdapter() {
override fun onAnimationEnd(animation: Animator?) { override fun onAnimationEnd(animation: Animator) {
super.onAnimationEnd(animation) super.onAnimationEnd(animation)
playerBinding.buttonSkipOp.isVisible = false playerBinding.buttonSkipOp.isVisible = false
} }
@ -523,7 +523,7 @@ class PlayerActivity : AppCompatActivity() {
/** /**
* on single tap hide or show the controls * on single tap hide or show the controls
*/ */
override fun onSingleTapConfirmed(e: MotionEvent?): Boolean { override fun onSingleTapConfirmed(e: MotionEvent): Boolean {
if (!isInPiPMode()) { if (!isInPiPMode()) {
if (controller.isVisible) controller.hide() else controller.show() if (controller.isVisible) controller.hide() else controller.show()
} }
@ -534,8 +534,8 @@ class PlayerActivity : AppCompatActivity() {
/** /**
* on double tap rewind or forward * on double tap rewind or forward
*/ */
override fun onDoubleTap(e: MotionEvent?): Boolean { override fun onDoubleTap(e: MotionEvent): Boolean {
val eventPosX = e?.x?.toInt() ?: 0 val eventPosX = e.x.toInt()
val viewCenterX = playerBinding.videoView.measuredWidth / 2 val viewCenterX = playerBinding.videoView.measuredWidth / 2
// if the event position is on the left side rewind, if it's on the right forward // if the event position is on the left side rewind, if it's on the right forward
@ -547,14 +547,14 @@ class PlayerActivity : AppCompatActivity() {
/** /**
* not used * not used
*/ */
override fun onDoubleTapEvent(e: MotionEvent?): Boolean { override fun onDoubleTapEvent(e: MotionEvent): Boolean {
return true return true
} }
/** /**
* on long press toggle pause/play * on long press toggle pause/play
*/ */
override fun onLongPress(e: MotionEvent?) { override fun onLongPress(e: MotionEvent) {
model.togglePausePlay() model.togglePausePlay()
} }

View File

@ -28,7 +28,7 @@ class FastForwardButton(context: Context, attrs: AttributeSet?): FrameLayout(con
repeatCount = 1 repeatCount = 1
repeatMode = ObjectAnimator.REVERSE repeatMode = ObjectAnimator.REVERSE
addListener(object : AnimatorListenerAdapter() { addListener(object : AnimatorListenerAdapter() {
override fun onAnimationStart(animation: Animator?) { override fun onAnimationStart(animation: Animator) {
binding.imageButton.isEnabled = false // disable button binding.imageButton.isEnabled = false // disable button
binding.imageButton.setBackgroundResource(R.drawable.ic_baseline_forward_24) binding.imageButton.setBackgroundResource(R.drawable.ic_baseline_forward_24)
} }
@ -39,7 +39,7 @@ class FastForwardButton(context: Context, attrs: AttributeSet?): FrameLayout(con
duration = animationDuration duration = animationDuration
addListener(object : AnimatorListenerAdapter() { addListener(object : AnimatorListenerAdapter() {
// the label animation takes longer then the button animation, reset stuff in here // the label animation takes longer then the button animation, reset stuff in here
override fun onAnimationEnd(animation: Animator?) { override fun onAnimationEnd(animation: Animator) {
binding.imageButton.isEnabled = true // enable button binding.imageButton.isEnabled = true // enable button
binding.imageButton.setBackgroundResource(R.drawable.ic_baseline_forward_10_24) binding.imageButton.setBackgroundResource(R.drawable.ic_baseline_forward_10_24)

View File

@ -28,7 +28,7 @@ class RewindButton(context: Context, attrs: AttributeSet): FrameLayout(context,
repeatCount = 1 repeatCount = 1
repeatMode = ObjectAnimator.REVERSE repeatMode = ObjectAnimator.REVERSE
addListener(object : AnimatorListenerAdapter() { addListener(object : AnimatorListenerAdapter() {
override fun onAnimationStart(animation: Animator?) { override fun onAnimationStart(animation: Animator) {
binding.imageButton.isEnabled = false // disable button binding.imageButton.isEnabled = false // disable button
binding.imageButton.setBackgroundResource(R.drawable.ic_baseline_rewind_24) binding.imageButton.setBackgroundResource(R.drawable.ic_baseline_rewind_24)
} }
@ -38,7 +38,7 @@ class RewindButton(context: Context, attrs: AttributeSet): FrameLayout(context,
labelAnimation = ObjectAnimator.ofFloat(binding.textView, View.TRANSLATION_X, -35f).apply { labelAnimation = ObjectAnimator.ofFloat(binding.textView, View.TRANSLATION_X, -35f).apply {
duration = animationDuration duration = animationDuration
addListener(object : AnimatorListenerAdapter() { addListener(object : AnimatorListenerAdapter() {
override fun onAnimationEnd(animation: Animator?) { override fun onAnimationEnd(animation: Animator) {
binding.imageButton.isEnabled = true // enable button binding.imageButton.isEnabled = true // enable button
binding.imageButton.setBackgroundResource(R.drawable.ic_baseline_rewind_10_24) binding.imageButton.setBackgroundResource(R.drawable.ic_baseline_rewind_10_24)

View File

@ -1,7 +1,7 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules. // Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript { buildscript {
ext.kotlin_version = "1.7.10" ext.kotlin_version = "1.7.10"
ext.ktor_version = "2.1.0" ext.ktor_version = "2.1.1"
ext.exo_version = "2.17.1" ext.exo_version = "2.17.1"
repositories { repositories {
google() google()