fix the navbar behavior

This commit is contained in:
Bnyro 2022-09-26 18:41:41 +02:00
parent 0b1f59b99b
commit 48b3a916b7
6 changed files with 27 additions and 26 deletions

View File

@ -7,8 +7,8 @@ import com.github.libretube.R
import com.github.libretube.databinding.ActivityNointernetBinding import com.github.libretube.databinding.ActivityNointernetBinding
import com.github.libretube.ui.base.BaseActivity import com.github.libretube.ui.base.BaseActivity
import com.github.libretube.ui.fragments.DownloadsFragment import com.github.libretube.ui.fragments.DownloadsFragment
import com.github.libretube.util.NavigationHelper
import com.github.libretube.util.NetworkHelper import com.github.libretube.util.NetworkHelper
import com.github.libretube.util.ThemeHelper
import com.google.android.material.snackbar.Snackbar import com.google.android.material.snackbar.Snackbar
class NoInternetActivity : BaseActivity() { class NoInternetActivity : BaseActivity() {
@ -21,7 +21,7 @@ class NoInternetActivity : BaseActivity() {
// retry button // retry button
binding.retryButton.setOnClickListener { binding.retryButton.setOnClickListener {
if (NetworkHelper.isNetworkAvailable(this)) { if (NetworkHelper.isNetworkAvailable(this)) {
ThemeHelper.restartMainActivity(this) NavigationHelper.restartMainActivity(this)
} else { } else {
Snackbar.make(binding.root, R.string.turnInternetOn, Snackbar.LENGTH_LONG).show() Snackbar.make(binding.root, R.string.turnInternetOn, Snackbar.LENGTH_LONG).show()
} }

View File

@ -9,7 +9,7 @@ import com.github.libretube.R
import com.github.libretube.constants.IntentData import com.github.libretube.constants.IntentData
import com.github.libretube.extensions.TAG import com.github.libretube.extensions.TAG
import com.github.libretube.ui.base.BaseActivity import com.github.libretube.ui.base.BaseActivity
import com.github.libretube.util.ThemeHelper import com.github.libretube.util.NavigationHelper
class RouterActivity : BaseActivity() { class RouterActivity : BaseActivity() {
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
@ -23,7 +23,7 @@ class RouterActivity : BaseActivity() {
handleSendText(uri!!) handleSendText(uri!!)
} else { } else {
// start app as normal if URI not in host list // start app as normal if URI not in host list
ThemeHelper.restartMainActivity(this) NavigationHelper.restartMainActivity(this)
} }
} }

View File

@ -4,7 +4,7 @@ import android.app.Dialog
import android.os.Bundle import android.os.Bundle
import androidx.fragment.app.DialogFragment import androidx.fragment.app.DialogFragment
import com.github.libretube.R import com.github.libretube.R
import com.github.libretube.util.ThemeHelper import com.github.libretube.util.NavigationHelper
import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.dialog.MaterialAlertDialogBuilder
class RequireRestartDialog : DialogFragment() { class RequireRestartDialog : DialogFragment() {
@ -15,7 +15,7 @@ class RequireRestartDialog : DialogFragment() {
.setMessage(R.string.require_restart_message) .setMessage(R.string.require_restart_message)
.setPositiveButton(R.string.okay) { _, _ -> .setPositiveButton(R.string.okay) { _, _ ->
activity?.recreate() activity?.recreate()
ThemeHelper.restartMainActivity(requireContext()) NavigationHelper.restartMainActivity(requireContext())
} }
.setNegativeButton(R.string.cancel, null) .setNegativeButton(R.string.cancel, null)
.show() .show()

View File

@ -90,6 +90,6 @@ object NavBarHelper {
).icon = menuItem.icon ).icon = menuItem.icon
} }
} }
return navBarItems[0].id return navBarItems.filter { it.isEnabled }[0].id
} }
} }

View File

@ -1,6 +1,9 @@
package com.github.libretube.util package com.github.libretube.util
import android.app.NotificationManager
import android.content.Context import android.content.Context
import android.content.Intent
import android.content.pm.PackageManager
import android.os.Bundle import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.core.os.bundleOf import androidx.core.os.bundleOf
@ -66,4 +69,21 @@ object NavigationHelper {
activity.navController.navigate(R.id.playlistFragment, bundle) activity.navController.navigate(R.id.playlistFragment, bundle)
} }
} }
/**
* Needed due to different MainActivity Aliases because of the app icons
*/
fun restartMainActivity(context: Context) {
// kill player notification
val nManager = context
.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
nManager.cancelAll()
// start a new Intent of the app
val pm: PackageManager = context.packageManager
val intent = pm.getLaunchIntentForPackage(context.packageName)
intent?.flags = Intent.FLAG_ACTIVITY_CLEAR_TASK
context.startActivity(intent)
// kill the old application
android.os.Process.killProcess(android.os.Process.myPid())
}
} }

View File

@ -1,10 +1,8 @@
package com.github.libretube.util package com.github.libretube.util
import android.app.Activity import android.app.Activity
import android.app.NotificationManager
import android.content.ComponentName import android.content.ComponentName
import android.content.Context import android.content.Context
import android.content.Intent
import android.content.pm.PackageManager import android.content.pm.PackageManager
import android.text.Spanned import android.text.Spanned
import android.util.TypedValue import android.util.TypedValue
@ -128,23 +126,6 @@ object ThemeHelper {
) )
} }
/**
* Needed due to different MainActivity Aliases because of the app icons
*/
fun restartMainActivity(context: Context) {
// kill player notification
val nManager = context
.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
nManager.cancelAll()
// start a new Intent of the app
val pm: PackageManager = context.packageManager
val intent = pm.getLaunchIntentForPackage(context.packageName)
intent?.flags = Intent.FLAG_ACTIVITY_CLEAR_TASK
context.startActivity(intent)
// kill the old application
android.os.Process.killProcess(android.os.Process.myPid())
}
/** /**
* Get a color by a resource code * Get a color by a resource code
*/ */