From 499be1e1cb3d48b1dc31c9f02ef86594eab44606 Mon Sep 17 00:00:00 2001 From: Bnyro Date: Sun, 16 Oct 2022 14:20:56 +0200 Subject: [PATCH 1/4] fix the playback speed sheet --- .../libretube/ui/sheets/PlaybackSpeedSheet.kt | 18 +++++++++++++++--- .../libretube/ui/views/CustomExoPlayerView.kt | 7 +------ 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/com/github/libretube/ui/sheets/PlaybackSpeedSheet.kt b/app/src/main/java/com/github/libretube/ui/sheets/PlaybackSpeedSheet.kt index 099641ba5..43f28e6b2 100644 --- a/app/src/main/java/com/github/libretube/ui/sheets/PlaybackSpeedSheet.kt +++ b/app/src/main/java/com/github/libretube/ui/sheets/PlaybackSpeedSheet.kt @@ -6,10 +6,12 @@ import android.view.View import android.view.ViewGroup import androidx.fragment.app.FragmentManager import com.github.libretube.databinding.PlaybackBottomSheetBinding +import com.google.android.exoplayer2.PlaybackParameters +import com.google.android.exoplayer2.Player import com.google.android.material.bottomsheet.BottomSheetDialogFragment class PlaybackSpeedSheet( - private val onChange: (speed: Float, pitch: Float) -> Unit + private val player: Player ) : BottomSheetDialogFragment() { private lateinit var binding: PlaybackBottomSheetBinding @@ -25,15 +27,25 @@ class PlaybackSpeedSheet( override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) + binding.speed.value = player.playbackParameters.speed + binding.pitch.value = player.playbackParameters.pitch + binding.speed.addOnChangeListener { _, value, _ -> - onChange.invoke(value, binding.pitch.value) + onChange(value, binding.pitch.value) } binding.pitch.addOnChangeListener { _, value, _ -> - onChange.invoke(binding.speed.value, value) + onChange(binding.speed.value, value) } } + private fun onChange(speed: Float, pitch: Float) { + player.playbackParameters = PlaybackParameters( + speed, + pitch + ) + } + fun show(fragmentManager: FragmentManager) = show( fragmentManager, null diff --git a/app/src/main/java/com/github/libretube/ui/views/CustomExoPlayerView.kt b/app/src/main/java/com/github/libretube/ui/views/CustomExoPlayerView.kt index dd46b2ceb..eee4a48d1 100644 --- a/app/src/main/java/com/github/libretube/ui/views/CustomExoPlayerView.kt +++ b/app/src/main/java/com/github/libretube/ui/views/CustomExoPlayerView.kt @@ -322,12 +322,7 @@ internal class CustomExoPlayerView( } private fun onPlaybackSpeedClicked() { - PlaybackSpeedSheet { speed, pitch -> - player?.playbackParameters = PlaybackParameters( - speed, - pitch - ) - }.show(childFragmentManager) + player?.let { PlaybackSpeedSheet(it).show(childFragmentManager) } } private fun onResizeModeClicked() { From 18a8ec2e3fa47a7632efb7a57fdb1f10e478f927 Mon Sep 17 00:00:00 2001 From: Bnyro Date: Sun, 16 Oct 2022 18:30:15 +0200 Subject: [PATCH 2/4] fix refreshing after login --- .../libretube/ui/dialogs/DeleteAccountDialog.kt | 11 ++++------- .../com/github/libretube/ui/dialogs/LoginDialog.kt | 3 ++- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/github/libretube/ui/dialogs/DeleteAccountDialog.kt b/app/src/main/java/com/github/libretube/ui/dialogs/DeleteAccountDialog.kt index fda1a495d..2fc799793 100644 --- a/app/src/main/java/com/github/libretube/ui/dialogs/DeleteAccountDialog.kt +++ b/app/src/main/java/com/github/libretube/ui/dialogs/DeleteAccountDialog.kt @@ -54,13 +54,10 @@ class DeleteAccountDialog : DialogFragment() { return@launchWhenCreated } Toast.makeText(context, R.string.success, Toast.LENGTH_SHORT).show() - logout() - val restartDialog = RequireRestartDialog() - restartDialog.show(childFragmentManager, RequireRestartDialog::class.java.name) + + PreferenceHelper.setToken("") + activity?.recreate() + dialog?.dismiss() } } - - private fun logout() { - PreferenceHelper.setToken("") - } } diff --git a/app/src/main/java/com/github/libretube/ui/dialogs/LoginDialog.kt b/app/src/main/java/com/github/libretube/ui/dialogs/LoginDialog.kt index 0f319860c..62ff2e5c8 100644 --- a/app/src/main/java/com/github/libretube/ui/dialogs/LoginDialog.kt +++ b/app/src/main/java/com/github/libretube/ui/dialogs/LoginDialog.kt @@ -79,8 +79,9 @@ class LoginDialog : DialogFragment() { Toast.makeText(context, R.string.loggedIn, Toast.LENGTH_SHORT).show() PreferenceHelper.setToken(response.token!!) PreferenceHelper.setUsername(login.username!!) - dialog?.dismiss() + activity?.recreate() + dialog?.dismiss() } } } From ae829f8c54e416ec59cdb7d5a2784e87032dc3c6 Mon Sep 17 00:00:00 2001 From: Bnyro Date: Sun, 16 Oct 2022 18:39:44 +0200 Subject: [PATCH 3/4] login/register cleanup --- .../libretube/ui/dialogs/LoginDialog.kt | 93 ++++++++----------- 1 file changed, 39 insertions(+), 54 deletions(-) diff --git a/app/src/main/java/com/github/libretube/ui/dialogs/LoginDialog.kt b/app/src/main/java/com/github/libretube/ui/dialogs/LoginDialog.kt index 62ff2e5c8..27b4e539d 100644 --- a/app/src/main/java/com/github/libretube/ui/dialogs/LoginDialog.kt +++ b/app/src/main/java/com/github/libretube/ui/dialogs/LoginDialog.kt @@ -8,6 +8,7 @@ import androidx.fragment.app.DialogFragment import androidx.lifecycle.lifecycleScope import com.github.libretube.R import com.github.libretube.api.RetrofitInstance +import com.github.libretube.api.obj.Login import com.github.libretube.databinding.DialogLoginBinding import com.github.libretube.extensions.TAG import com.github.libretube.util.PreferenceHelper @@ -23,27 +24,22 @@ class LoginDialog : DialogFragment() { binding = DialogLoginBinding.inflate(layoutInflater) binding.login.setOnClickListener { - if (binding.username.text.toString() != "" && binding.password.text.toString() != "") { - val login = - com.github.libretube.api.obj.Login( - binding.username.text.toString(), - binding.password.text.toString() - ) - login(login) + if (isInsertionValid()) { + signIn( + binding.username.text.toString(), + binding.password.text.toString() + ) } else { Toast.makeText(context, R.string.empty, Toast.LENGTH_SHORT).show() } } binding.register.setOnClickListener { - if ( - binding.username.text.toString() != "" && - binding.password.text.toString() != "" - ) { - val login = com.github.libretube.api.obj.Login( + if (isInsertionValid()) { + signIn( binding.username.text.toString(), - binding.password.text.toString() + binding.password.text.toString(), + true ) - register(login) } else { Toast.makeText(context, R.string.empty, Toast.LENGTH_SHORT).show() } @@ -56,12 +52,20 @@ class LoginDialog : DialogFragment() { .show() } - private fun login(login: com.github.libretube.api.obj.Login) { + private fun isInsertionValid(): Boolean { + return binding.username.text.toString() != "" && binding.password.text.toString() != "" + } + + private fun signIn(username: String, password: String, createNewAccount: Boolean = false) { + val login = Login(username, password) lifecycleScope.launchWhenCreated { val response = try { - RetrofitInstance.authApi.login(login) + if (createNewAccount) { + RetrofitInstance.authApi.register(login) + } else { + RetrofitInstance.authApi.login(login) + } } catch (e: IOException) { - println(e) Log.e(TAG(), "IOException, you might not have internet connection") Toast.makeText(context, R.string.unknown_error, Toast.LENGTH_SHORT).show() return@launchWhenCreated @@ -70,50 +74,31 @@ class LoginDialog : DialogFragment() { Toast.makeText(context, R.string.server_error, Toast.LENGTH_SHORT).show() return@launchWhenCreated } catch (e: Exception) { - Log.e(TAG(), "dafaq?$e") return@launchWhenCreated } + if (response.error != null) { Toast.makeText(context, response.error, Toast.LENGTH_SHORT).show() - } else if (response.token != null) { - Toast.makeText(context, R.string.loggedIn, Toast.LENGTH_SHORT).show() - PreferenceHelper.setToken(response.token!!) - PreferenceHelper.setUsername(login.username!!) - - activity?.recreate() - dialog?.dismiss() + return@launchWhenCreated } + if (response.token == null) return@launchWhenCreated + + Toast.makeText( + context, + if (createNewAccount) R.string.registered else R.string.loggedIn, + Toast.LENGTH_SHORT + ).show() + + PreferenceHelper.setToken(response.token!!) + PreferenceHelper.setUsername(login.username!!) + + activity?.recreate() + dialog?.dismiss() } } - private fun register(login: com.github.libretube.api.obj.Login) { - fun run() { - lifecycleScope.launchWhenCreated { - val response = try { - RetrofitInstance.authApi.register(login) - } catch (e: IOException) { - println(e) - Log.e(TAG(), "IOException, you might not have internet connection") - Toast.makeText(context, R.string.unknown_error, Toast.LENGTH_SHORT).show() - return@launchWhenCreated - } catch (e: HttpException) { - Log.e(TAG(), "HttpException, unexpected response") - Toast.makeText(context, R.string.server_error, Toast.LENGTH_SHORT).show() - return@launchWhenCreated - } catch (e: Exception) { - Log.e(TAG(), "dafaq?$e") - return@launchWhenCreated - } - if (response.error != null) { - Toast.makeText(context, response.error, Toast.LENGTH_SHORT).show() - } else if (response.token != null) { - Toast.makeText(context, R.string.registered, Toast.LENGTH_SHORT).show() - PreferenceHelper.setToken(response.token!!) - PreferenceHelper.setUsername(login.username!!) - dialog?.dismiss() - } - } - } - run() + private fun finish() { + activity?.recreate() + dialog?.dismiss() } } From 499607830ea4119cd669dc978f2c3c377f9f6eb1 Mon Sep 17 00:00:00 2001 From: Bnyro Date: Sun, 16 Oct 2022 18:44:17 +0200 Subject: [PATCH 4/4] remove unused code --- .../java/com/github/libretube/ui/dialogs/LoginDialog.kt | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/app/src/main/java/com/github/libretube/ui/dialogs/LoginDialog.kt b/app/src/main/java/com/github/libretube/ui/dialogs/LoginDialog.kt index 27b4e539d..8f8a52605 100644 --- a/app/src/main/java/com/github/libretube/ui/dialogs/LoginDialog.kt +++ b/app/src/main/java/com/github/libretube/ui/dialogs/LoginDialog.kt @@ -92,13 +92,8 @@ class LoginDialog : DialogFragment() { PreferenceHelper.setToken(response.token!!) PreferenceHelper.setUsername(login.username!!) - activity?.recreate() dialog?.dismiss() + activity?.recreate() } } - - private fun finish() { - activity?.recreate() - dialog?.dismiss() - } }