From 48b3a916b7dcc21e7d16d1323e1c55852e097df4 Mon Sep 17 00:00:00 2001 From: Bnyro Date: Mon, 26 Sep 2022 18:41:41 +0200 Subject: [PATCH 1/3] fix the navbar behavior --- .../ui/activities/NoInternetActivity.kt | 4 ++-- .../libretube/ui/activities/RouterActivity.kt | 4 ++-- .../ui/dialogs/RequireRestartDialog.kt | 4 ++-- .../com/github/libretube/util/NavBarHelper.kt | 2 +- .../github/libretube/util/NavigationHelper.kt | 20 +++++++++++++++++++ .../com/github/libretube/util/ThemeHelper.kt | 19 ------------------ 6 files changed, 27 insertions(+), 26 deletions(-) diff --git a/app/src/main/java/com/github/libretube/ui/activities/NoInternetActivity.kt b/app/src/main/java/com/github/libretube/ui/activities/NoInternetActivity.kt index 36bf69499..c41e129ae 100644 --- a/app/src/main/java/com/github/libretube/ui/activities/NoInternetActivity.kt +++ b/app/src/main/java/com/github/libretube/ui/activities/NoInternetActivity.kt @@ -7,8 +7,8 @@ import com.github.libretube.R import com.github.libretube.databinding.ActivityNointernetBinding import com.github.libretube.ui.base.BaseActivity import com.github.libretube.ui.fragments.DownloadsFragment +import com.github.libretube.util.NavigationHelper import com.github.libretube.util.NetworkHelper -import com.github.libretube.util.ThemeHelper import com.google.android.material.snackbar.Snackbar class NoInternetActivity : BaseActivity() { @@ -21,7 +21,7 @@ class NoInternetActivity : BaseActivity() { // retry button binding.retryButton.setOnClickListener { if (NetworkHelper.isNetworkAvailable(this)) { - ThemeHelper.restartMainActivity(this) + NavigationHelper.restartMainActivity(this) } else { Snackbar.make(binding.root, R.string.turnInternetOn, Snackbar.LENGTH_LONG).show() } diff --git a/app/src/main/java/com/github/libretube/ui/activities/RouterActivity.kt b/app/src/main/java/com/github/libretube/ui/activities/RouterActivity.kt index 46ff87634..2b9efd799 100644 --- a/app/src/main/java/com/github/libretube/ui/activities/RouterActivity.kt +++ b/app/src/main/java/com/github/libretube/ui/activities/RouterActivity.kt @@ -9,7 +9,7 @@ import com.github.libretube.R import com.github.libretube.constants.IntentData import com.github.libretube.extensions.TAG import com.github.libretube.ui.base.BaseActivity -import com.github.libretube.util.ThemeHelper +import com.github.libretube.util.NavigationHelper class RouterActivity : BaseActivity() { override fun onCreate(savedInstanceState: Bundle?) { @@ -23,7 +23,7 @@ class RouterActivity : BaseActivity() { handleSendText(uri!!) } else { // start app as normal if URI not in host list - ThemeHelper.restartMainActivity(this) + NavigationHelper.restartMainActivity(this) } } diff --git a/app/src/main/java/com/github/libretube/ui/dialogs/RequireRestartDialog.kt b/app/src/main/java/com/github/libretube/ui/dialogs/RequireRestartDialog.kt index 26ef14fc6..51b952828 100644 --- a/app/src/main/java/com/github/libretube/ui/dialogs/RequireRestartDialog.kt +++ b/app/src/main/java/com/github/libretube/ui/dialogs/RequireRestartDialog.kt @@ -4,7 +4,7 @@ import android.app.Dialog import android.os.Bundle import androidx.fragment.app.DialogFragment import com.github.libretube.R -import com.github.libretube.util.ThemeHelper +import com.github.libretube.util.NavigationHelper import com.google.android.material.dialog.MaterialAlertDialogBuilder class RequireRestartDialog : DialogFragment() { @@ -15,7 +15,7 @@ class RequireRestartDialog : DialogFragment() { .setMessage(R.string.require_restart_message) .setPositiveButton(R.string.okay) { _, _ -> activity?.recreate() - ThemeHelper.restartMainActivity(requireContext()) + NavigationHelper.restartMainActivity(requireContext()) } .setNegativeButton(R.string.cancel, null) .show() diff --git a/app/src/main/java/com/github/libretube/util/NavBarHelper.kt b/app/src/main/java/com/github/libretube/util/NavBarHelper.kt index f29aae643..3a478996e 100644 --- a/app/src/main/java/com/github/libretube/util/NavBarHelper.kt +++ b/app/src/main/java/com/github/libretube/util/NavBarHelper.kt @@ -90,6 +90,6 @@ object NavBarHelper { ).icon = menuItem.icon } } - return navBarItems[0].id + return navBarItems.filter { it.isEnabled }[0].id } } diff --git a/app/src/main/java/com/github/libretube/util/NavigationHelper.kt b/app/src/main/java/com/github/libretube/util/NavigationHelper.kt index 125ac01c2..4de4d8c2a 100644 --- a/app/src/main/java/com/github/libretube/util/NavigationHelper.kt +++ b/app/src/main/java/com/github/libretube/util/NavigationHelper.kt @@ -1,6 +1,9 @@ package com.github.libretube.util +import android.app.NotificationManager import android.content.Context +import android.content.Intent +import android.content.pm.PackageManager import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import androidx.core.os.bundleOf @@ -66,4 +69,21 @@ object NavigationHelper { 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()) + } } diff --git a/app/src/main/java/com/github/libretube/util/ThemeHelper.kt b/app/src/main/java/com/github/libretube/util/ThemeHelper.kt index 72387f93b..524ffabc6 100644 --- a/app/src/main/java/com/github/libretube/util/ThemeHelper.kt +++ b/app/src/main/java/com/github/libretube/util/ThemeHelper.kt @@ -1,10 +1,8 @@ package com.github.libretube.util import android.app.Activity -import android.app.NotificationManager import android.content.ComponentName import android.content.Context -import android.content.Intent import android.content.pm.PackageManager import android.text.Spanned 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 */ From e2eb1310699b0be6da287da99404170e3defcbf4 Mon Sep 17 00:00:00 2001 From: Bnyro Date: Mon, 26 Sep 2022 18:50:57 +0200 Subject: [PATCH 2/3] add more items to navbar --- .../libretube/ui/activities/MainActivity.kt | 21 +++++++------------ .../com/github/libretube/util/NavBarHelper.kt | 3 ++- app/src/main/res/menu/bottom_menu.xml | 14 +++++++++++++ 3 files changed, 24 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/com/github/libretube/ui/activities/MainActivity.kt b/app/src/main/java/com/github/libretube/ui/activities/MainActivity.kt index 99a7f3af2..24092e33b 100644 --- a/app/src/main/java/com/github/libretube/ui/activities/MainActivity.kt +++ b/app/src/main/java/com/github/libretube/ui/activities/MainActivity.kt @@ -106,20 +106,15 @@ class MainActivity : BaseActivity() { binding.bottomNav.setOnItemSelectedListener { // clear backstack if it's the start fragment if (startFragmentId == it.itemId) navController.backQueue.clear() - // set menu item on click listeners - removeSearchFocus() - when (it.itemId) { - R.id.homeFragment -> { - navController.navigate(R.id.homeFragment) - } - R.id.subscriptionsFragment -> { - binding.bottomNav.removeBadge(R.id.subscriptionsFragment) - navController.navigate(R.id.subscriptionsFragment) - } - R.id.libraryFragment -> { - navController.navigate(R.id.libraryFragment) - } + + if (it.itemId == R.id.subscriptionsFragment) { + binding.bottomNav.removeBadge(R.id.subscriptionsFragment) } + + removeSearchFocus() + + // navigate to the selected fragment + navController.navigate(it.itemId) false } diff --git a/app/src/main/java/com/github/libretube/util/NavBarHelper.kt b/app/src/main/java/com/github/libretube/util/NavBarHelper.kt index 3a478996e..6190982fa 100644 --- a/app/src/main/java/com/github/libretube/util/NavBarHelper.kt +++ b/app/src/main/java/com/github/libretube/util/NavBarHelper.kt @@ -37,7 +37,8 @@ object NavBarHelper { defaultNavBarItems.add( NavBarItem( it.itemId, - it.title.toString() + it.title.toString(), + it.isEnabled ) ) } diff --git a/app/src/main/res/menu/bottom_menu.xml b/app/src/main/res/menu/bottom_menu.xml index f5badbc88..131a9a0ad 100644 --- a/app/src/main/res/menu/bottom_menu.xml +++ b/app/src/main/res/menu/bottom_menu.xml @@ -5,13 +5,27 @@ android:id="@+id/homeFragment" android:icon="@drawable/ic_home" android:title="@string/startpage" /> + + + + + + \ No newline at end of file From 03701818da3e291ab7595ff87284bf3fb6bc8dd1 Mon Sep 17 00:00:00 2001 From: Bnyro Date: Mon, 26 Sep 2022 18:55:10 +0200 Subject: [PATCH 3/3] move navigation bar settings to appearance --- .../libretube/ui/preferences/AppearanceSettings.kt | 10 ++++++++++ .../github/libretube/ui/preferences/GeneralSettings.kt | 9 --------- app/src/main/res/layout/dialog_navbar_options.xml | 2 +- app/src/main/res/xml/appearance_settings.xml | 6 ++++++ app/src/main/res/xml/general_settings.xml | 9 --------- 5 files changed, 17 insertions(+), 19 deletions(-) diff --git a/app/src/main/java/com/github/libretube/ui/preferences/AppearanceSettings.kt b/app/src/main/java/com/github/libretube/ui/preferences/AppearanceSettings.kt index 7be32162a..799a2d63d 100644 --- a/app/src/main/java/com/github/libretube/ui/preferences/AppearanceSettings.kt +++ b/app/src/main/java/com/github/libretube/ui/preferences/AppearanceSettings.kt @@ -12,6 +12,7 @@ import com.github.libretube.R import com.github.libretube.constants.PreferenceKeys import com.github.libretube.ui.activities.SettingsActivity import com.github.libretube.ui.base.BasePreferenceFragment +import com.github.libretube.ui.dialogs.NavBarOptionsDialog import com.github.libretube.ui.dialogs.RequireRestartDialog import com.github.libretube.util.PreferenceHelper import com.github.libretube.util.ThemeHelper @@ -59,6 +60,15 @@ class AppearanceSettings : BasePreferenceFragment() { true } + val navBarOptions = findPreference(PreferenceKeys.NAVBAR_ITEMS) + navBarOptions?.setOnPreferenceClickListener { + NavBarOptionsDialog().show( + childFragmentManager, + null + ) + true + } + val systemCaptionStyle = findPreference(PreferenceKeys.SYSTEM_CAPTION_STYLE) val captionSettings = findPreference(PreferenceKeys.CAPTION_SETTINGS) diff --git a/app/src/main/java/com/github/libretube/ui/preferences/GeneralSettings.kt b/app/src/main/java/com/github/libretube/ui/preferences/GeneralSettings.kt index 90810156b..1a2445f61 100644 --- a/app/src/main/java/com/github/libretube/ui/preferences/GeneralSettings.kt +++ b/app/src/main/java/com/github/libretube/ui/preferences/GeneralSettings.kt @@ -39,15 +39,6 @@ class GeneralSettings : BasePreferenceFragment() { true } - val navBarOptions = findPreference(PreferenceKeys.NAVBAR_ITEMS) - navBarOptions?.setOnPreferenceClickListener { - NavBarOptionsDialog().show( - childFragmentManager, - null - ) - true - } - val breakReminder = findPreference(PreferenceKeys.BREAK_REMINDER_TOGGLE) val breakReminderTime = findPreference(PreferenceKeys.BREAK_REMINDER) diff --git a/app/src/main/res/layout/dialog_navbar_options.xml b/app/src/main/res/layout/dialog_navbar_options.xml index 9c7d17286..0f8eca75f 100644 --- a/app/src/main/res/layout/dialog_navbar_options.xml +++ b/app/src/main/res/layout/dialog_navbar_options.xml @@ -2,7 +2,7 @@ + android:paddingTop="20dp"> + + + diff --git a/app/src/main/res/xml/general_settings.xml b/app/src/main/res/xml/general_settings.xml index 0f3572997..423f831c8 100644 --- a/app/src/main/res/xml/general_settings.xml +++ b/app/src/main/res/xml/general_settings.xml @@ -38,15 +38,6 @@ - - - - - -