From 7eb83716c5be8ce3531a8c90dd71dd14ea380768 Mon Sep 17 00:00:00 2001 From: Bnyro Date: Sat, 13 Aug 2022 23:19:07 +0200 Subject: [PATCH] cleanup --- .../libretube/activities/MainActivity.kt | 140 +++++++++--------- .../libretube/database/DatabaseHelper.kt | 11 ++ 2 files changed, 82 insertions(+), 69 deletions(-) diff --git a/app/src/main/java/com/github/libretube/activities/MainActivity.kt b/app/src/main/java/com/github/libretube/activities/MainActivity.kt index 901945509..f30fa8ecb 100644 --- a/app/src/main/java/com/github/libretube/activities/MainActivity.kt +++ b/app/src/main/java/com/github/libretube/activities/MainActivity.kt @@ -89,77 +89,79 @@ class MainActivity : BaseActivity() { if (!ConnectionHelper.isNetworkAvailable(this)) { val noInternetIntent = Intent(this, NoInternetActivity::class.java) startActivity(noInternetIntent) - } else { - binding = ActivityMainBinding.inflate(layoutInflater) - setContentView(binding.root) - - // set the action bar for the activity - setSupportActionBar(binding.toolbar) - - navController = findNavController(R.id.fragment) - binding.bottomNav.setupWithNavController(navController) - - // gets the surface color of the bottom navigation view - val color = SurfaceColors.getColorForElevation(this, 10F) - - // sets the navigation bar color to the previously calculated color - window.navigationBarColor = color - - // hide the trending page if enabled - val hideTrendingPage = - PreferenceHelper.getBoolean(PreferenceKeys.HIDE_TRENDING_PAGE, false) - if (hideTrendingPage) binding.bottomNav.menu.findItem(R.id.homeFragment).isVisible = - false - - // save start tab fragment id - startFragmentId = - when (PreferenceHelper.getString(PreferenceKeys.DEFAULT_TAB, "home")) { - "home" -> R.id.homeFragment - "subscriptions" -> R.id.subscriptionsFragment - "library" -> R.id.libraryFragment - else -> R.id.homeFragment - } - - // set default tab as start fragment - navController.graph.setStartDestination(startFragmentId) - - // navigate to the default fragment - navController.navigate(startFragmentId) - - val labelVisibilityMode = when ( - PreferenceHelper.getString(PreferenceKeys.LABEL_VISIBILITY, "always") - ) { - "always" -> NavigationBarView.LABEL_VISIBILITY_LABELED - "selected" -> NavigationBarView.LABEL_VISIBILITY_SELECTED - "never" -> NavigationBarView.LABEL_VISIBILITY_UNLABELED - else -> NavigationBarView.LABEL_VISIBILITY_AUTO - } - binding.bottomNav.labelVisibilityMode = labelVisibilityMode - - binding.bottomNav.setOnApplyWindowInsetsListener(null) - - 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 -> { - navController.navigate(R.id.subscriptionsFragment) - } - R.id.libraryFragment -> { - navController.navigate(R.id.libraryFragment) - } - } - false - } - - binding.toolbar.title = ThemeHelper.getStyledAppName(this) + finish() + return } + binding = ActivityMainBinding.inflate(layoutInflater) + setContentView(binding.root) + + // set the action bar for the activity + setSupportActionBar(binding.toolbar) + + navController = findNavController(R.id.fragment) + binding.bottomNav.setupWithNavController(navController) + + // gets the surface color of the bottom navigation view + val color = SurfaceColors.getColorForElevation(this, 10F) + + // sets the navigation bar color to the previously calculated color + window.navigationBarColor = color + + // hide the trending page if enabled + val hideTrendingPage = + PreferenceHelper.getBoolean(PreferenceKeys.HIDE_TRENDING_PAGE, false) + if (hideTrendingPage) binding.bottomNav.menu.findItem(R.id.homeFragment).isVisible = + false + + // save start tab fragment id + startFragmentId = + when (PreferenceHelper.getString(PreferenceKeys.DEFAULT_TAB, "home")) { + "home" -> R.id.homeFragment + "subscriptions" -> R.id.subscriptionsFragment + "library" -> R.id.libraryFragment + else -> R.id.homeFragment + } + + // set default tab as start fragment + navController.graph.setStartDestination(startFragmentId) + + // navigate to the default fragment + navController.navigate(startFragmentId) + + val labelVisibilityMode = when ( + PreferenceHelper.getString(PreferenceKeys.LABEL_VISIBILITY, "always") + ) { + "always" -> NavigationBarView.LABEL_VISIBILITY_LABELED + "selected" -> NavigationBarView.LABEL_VISIBILITY_SELECTED + "never" -> NavigationBarView.LABEL_VISIBILITY_UNLABELED + else -> NavigationBarView.LABEL_VISIBILITY_AUTO + } + binding.bottomNav.labelVisibilityMode = labelVisibilityMode + + binding.bottomNav.setOnApplyWindowInsetsListener(null) + + 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 -> { + navController.navigate(R.id.subscriptionsFragment) + } + R.id.libraryFragment -> { + navController.navigate(R.id.libraryFragment) + } + } + false + } + + binding.toolbar.title = ThemeHelper.getStyledAppName(this) + /** * handle error logs */ diff --git a/app/src/main/java/com/github/libretube/database/DatabaseHelper.kt b/app/src/main/java/com/github/libretube/database/DatabaseHelper.kt index 8e927d8d3..2d16e674a 100644 --- a/app/src/main/java/com/github/libretube/database/DatabaseHelper.kt +++ b/app/src/main/java/com/github/libretube/database/DatabaseHelper.kt @@ -3,6 +3,8 @@ package com.github.libretube.database import com.github.libretube.obj.Streams import com.github.libretube.obj.WatchHistoryItem import com.github.libretube.obj.WatchPosition +import com.github.libretube.preferences.PreferenceHelper +import com.github.libretube.preferences.PreferenceKeys import com.github.libretube.util.toID object DatabaseHelper { @@ -19,6 +21,15 @@ object DatabaseHelper { ) Thread { DatabaseHolder.database.watchHistoryDao().insertAll(watchHistoryItem) + val maxHistorySize = PreferenceHelper.getString(PreferenceKeys.WATCH_HISTORY_SIZE, "unlimited") + if (maxHistorySize == "unlimited") return@Thread + + // delete the first watch history entry if the limit is reached + val watchHistory = DatabaseHolder.database.watchHistoryDao().getAll() + if (watchHistory.size > maxHistorySize.toInt()) { + DatabaseHolder.database.watchHistoryDao() + .delete(watchHistory.first()) + } }.start() }