diff --git a/app/src/main/java/com/deniscerri/ytdlnis/MainActivity.kt b/app/src/main/java/com/deniscerri/ytdlnis/MainActivity.kt index da811618..951191ec 100644 --- a/app/src/main/java/com/deniscerri/ytdlnis/MainActivity.kt +++ b/app/src/main/java/com/deniscerri/ytdlnis/MainActivity.kt @@ -29,6 +29,7 @@ import androidx.navigation.fragment.NavHostFragment import androidx.navigation.fragment.findNavController import androidx.navigation.ui.setupWithNavController import com.deniscerri.ytdlnis.database.viewmodel.CookieViewModel +import com.deniscerri.ytdlnis.database.viewmodel.DownloadViewModel import com.deniscerri.ytdlnis.database.viewmodel.ResultViewModel import com.deniscerri.ytdlnis.ui.BaseActivity import com.deniscerri.ytdlnis.ui.HomeFragment @@ -36,6 +37,7 @@ import com.deniscerri.ytdlnis.ui.downloads.DownloadQueueActivity import com.deniscerri.ytdlnis.ui.more.settings.SettingsActivity import com.deniscerri.ytdlnis.util.ThemeUtil import com.deniscerri.ytdlnis.util.UpdateUtil +import com.google.android.exoplayer2.offline.Download import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.elevation.SurfaceColors import com.google.android.material.navigation.NavigationBarView @@ -57,6 +59,7 @@ class MainActivity : BaseActivity() { private lateinit var preferences: SharedPreferences private lateinit var resultViewModel: ResultViewModel private lateinit var cookieViewModel: CookieViewModel + private lateinit var downloadViewModel: DownloadViewModel private lateinit var navigationView: View private lateinit var navHostFragment : NavHostFragment @@ -68,6 +71,7 @@ class MainActivity : BaseActivity() { context = baseContext resultViewModel = ViewModelProvider(this)[ResultViewModel::class.java] cookieViewModel = ViewModelProvider(this)[CookieViewModel::class.java] + downloadViewModel = ViewModelProvider(this)[DownloadViewModel::class.java] preferences = context.getSharedPreferences("root_preferences", MODE_PRIVATE) if (preferences.getBoolean("incognito", false)){ @@ -127,6 +131,19 @@ class MainActivity : BaseActivity() { } } } + + val activeDownloadsBadge = (navigationView as NavigationBarView).getOrCreateBadge(R.id.historyFragment) + downloadViewModel.activeDownloadsCount.observe(this){ + if (it == 0) { + activeDownloadsBadge.isVisible = false + activeDownloadsBadge.clearNumber() + } + else { + activeDownloadsBadge.isVisible = true + activeDownloadsBadge.number = it + } + } + window.navigationBarColor = SurfaceColors.SURFACE_2.getColor(this) } if (navigationView is NavigationView){ (navigationView as NavigationView).setCheckedItem(graph.startDestinationId) @@ -160,8 +177,6 @@ class MainActivity : BaseActivity() { true } } - window.navigationBarColor = SurfaceColors.SURFACE_2.getColor(this) - cookieViewModel.updateCookiesFile() val intent = intent handleIntents(intent) diff --git a/app/src/main/java/com/deniscerri/ytdlnis/database/dao/DownloadDao.kt b/app/src/main/java/com/deniscerri/ytdlnis/database/dao/DownloadDao.kt index 416dd7f5..0f4681c8 100644 --- a/app/src/main/java/com/deniscerri/ytdlnis/database/dao/DownloadDao.kt +++ b/app/src/main/java/com/deniscerri/ytdlnis/database/dao/DownloadDao.kt @@ -13,6 +13,9 @@ interface DownloadDao { @Query("SELECT * FROM downloads WHERE status='Active'") fun getActiveDownloads() : LiveData> + @Query("SELECT COUNT(*) FROM downloads WHERE status='Active'") + fun getActiveDownloadsCount() : LiveData + @Query("SELECT * FROM downloads WHERE status='Active'") fun getActiveDownloadsList() : List diff --git a/app/src/main/java/com/deniscerri/ytdlnis/database/repository/DownloadRepository.kt b/app/src/main/java/com/deniscerri/ytdlnis/database/repository/DownloadRepository.kt index 6603a308..5cab3019 100644 --- a/app/src/main/java/com/deniscerri/ytdlnis/database/repository/DownloadRepository.kt +++ b/app/src/main/java/com/deniscerri/ytdlnis/database/repository/DownloadRepository.kt @@ -9,6 +9,7 @@ import com.deniscerri.ytdlnis.database.models.ResultItem class DownloadRepository(private val downloadDao: DownloadDao) { val allDownloads : LiveData> = downloadDao.getAllDownloads() val activeDownloads : LiveData> = downloadDao.getActiveDownloads() + val activeDownloadsCount : LiveData = downloadDao.getActiveDownloadsCount() val queuedDownloads : LiveData> = downloadDao.getQueuedDownloads() val cancelledDownloads : LiveData> = downloadDao.getCancelledDownloads() val erroredDownloads : LiveData> = downloadDao.getErroredDownloads() diff --git a/app/src/main/java/com/deniscerri/ytdlnis/database/viewmodel/DownloadViewModel.kt b/app/src/main/java/com/deniscerri/ytdlnis/database/viewmodel/DownloadViewModel.kt index c5c84316..96372aae 100644 --- a/app/src/main/java/com/deniscerri/ytdlnis/database/viewmodel/DownloadViewModel.kt +++ b/app/src/main/java/com/deniscerri/ytdlnis/database/viewmodel/DownloadViewModel.kt @@ -33,6 +33,7 @@ class DownloadViewModel(private val application: Application) : AndroidViewModel val allDownloads : LiveData> val queuedDownloads : LiveData> val activeDownloads : LiveData> + val activeDownloadsCount : LiveData val cancelledDownloads : LiveData> val erroredDownloads : LiveData> val processingDownloads : LiveData> @@ -54,6 +55,7 @@ class DownloadViewModel(private val application: Application) : AndroidViewModel allDownloads = repository.allDownloads queuedDownloads = repository.queuedDownloads activeDownloads = repository.activeDownloads + activeDownloadsCount = repository.activeDownloadsCount processingDownloads = repository.processingDownloads cancelledDownloads = repository.cancelledDownloads erroredDownloads = repository.erroredDownloads diff --git a/app/src/main/res/layout/filter_chip.xml b/app/src/main/res/layout/filter_chip.xml index 55b77da2..ed8b103b 100644 --- a/app/src/main/res/layout/filter_chip.xml +++ b/app/src/main/res/layout/filter_chip.xml @@ -3,5 +3,4 @@ style="@style/Widget.Material3.Chip.Filter" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:theme="@style/Theme.Material3.DayNight" /> diff --git a/app/src/main/res/layout/suggestion_chip.xml b/app/src/main/res/layout/suggestion_chip.xml index a0993259..8912dabd 100644 --- a/app/src/main/res/layout/suggestion_chip.xml +++ b/app/src/main/res/layout/suggestion_chip.xml @@ -4,5 +4,4 @@ style="@style/Widget.Material3.Chip.Suggestion.Elevated" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:theme="@style/Theme.Material3.DayNight" />