diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadService.kt b/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadService.kt index 0e287e0b5c..e725d10502 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadService.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadService.kt @@ -1,5 +1,6 @@ package eu.kanade.tachiyomi.data.download +import android.app.Activity import android.app.Notification import android.app.Service import android.content.Context @@ -16,6 +17,7 @@ import com.jakewharton.rxrelay.BehaviorRelay import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.data.notification.Notifications import eu.kanade.tachiyomi.data.preference.PreferencesHelper +import eu.kanade.tachiyomi.ui.main.MainActivity import eu.kanade.tachiyomi.util.lang.plusAssign import eu.kanade.tachiyomi.util.system.connectivityManager import eu.kanade.tachiyomi.util.system.isServiceRunning @@ -46,6 +48,7 @@ class DownloadService : Service() { * @param context the application context. */ fun start(context: Context) { + MainActivity.setDownloadBadge(true) val intent = Intent(context, DownloadService::class.java) if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) { context.startService(intent) @@ -60,6 +63,7 @@ class DownloadService : Service() { * @param context the application context. */ fun stop(context: Context) { + MainActivity.setDownloadBadge(false) context.stopService(Intent(context, DownloadService::class.java)) } @@ -124,7 +128,7 @@ class DownloadService : Service() { * Not used. */ override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int { - return Service.START_NOT_STICKY + return START_NOT_STICKY } /** diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/download/Downloader.kt b/app/src/main/java/eu/kanade/tachiyomi/data/download/Downloader.kt index 058ac5acb4..c8dd261f37 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/download/Downloader.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/download/Downloader.kt @@ -14,6 +14,7 @@ import eu.kanade.tachiyomi.source.SourceManager import eu.kanade.tachiyomi.source.model.Page import eu.kanade.tachiyomi.source.online.HttpSource import eu.kanade.tachiyomi.source.online.fetchAllImageUrlsFromPageList +import eu.kanade.tachiyomi.ui.main.MainActivity import eu.kanade.tachiyomi.util.lang.RetryWithDelay import eu.kanade.tachiyomi.util.lang.plusAssign import eu.kanade.tachiyomi.util.storage.DiskUtil @@ -90,6 +91,7 @@ class Downloader( launchNow { val chapters = async { store.restore() } queue.addAll(chapters.await()) + MainActivity.setDownloadBadge(queue.isNotEmpty()) } } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/download/DownloadHolder.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/download/DownloadHolder.kt index d62fd0a8cb..25ec7422b6 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/download/DownloadHolder.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/download/DownloadHolder.kt @@ -1,7 +1,7 @@ package eu.kanade.tachiyomi.ui.download import android.view.View -import android.widget.PopupMenu +import androidx.appcompat.widget.PopupMenu import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.data.download.model.Download import eu.kanade.tachiyomi.ui.base.holder.BaseFlexibleViewHolder diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryController.kt index f418cd5689..088256ab75 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryController.kt @@ -1,6 +1,5 @@ package eu.kanade.tachiyomi.ui.library -import android.app.DownloadManager import android.content.Context import android.content.res.Configuration import android.graphics.Color @@ -42,7 +41,6 @@ import eu.kanade.tachiyomi.ui.base.controller.SecondaryDrawerController import eu.kanade.tachiyomi.ui.base.controller.TabbedController import eu.kanade.tachiyomi.ui.base.controller.withFadeTransaction import eu.kanade.tachiyomi.ui.category.CategoryController -import eu.kanade.tachiyomi.ui.download.DownloadController import eu.kanade.tachiyomi.ui.main.MainActivity import eu.kanade.tachiyomi.ui.manga.MangaController import eu.kanade.tachiyomi.ui.migration.MigrationController @@ -438,8 +436,6 @@ class LibraryController( val searchView = searchItem.actionView as SearchView searchView.queryHint = resources?.getString(R.string.search_hint) - menu.findItem(R.id.action_downloads).isVisible = MainActivity.bottomNav && - presenter.hasPendingDownloads() searchItem.collapseActionView() if (query.isNotEmpty()) { searchItem.expandActionView() @@ -486,9 +482,6 @@ class LibraryController( R.id.action_edit_categories -> { router.pushController(CategoryController().withFadeTransaction()) } - R.id.action_downloads -> { - router.pushController(DownloadController().withFadeTransaction()) - } R.id.action_source_migration -> { router.pushController(MigrationController().withFadeTransaction()) } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt index 40c24f1059..f70dad6f4a 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/LibraryPresenter.kt @@ -101,8 +101,6 @@ class LibraryPresenter( subscribeLibrary() } - fun hasPendingDownloads() = downloadManager.hasQueue() - /** * Subscribes to library if needed. */ diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt index a9bfa71e1f..a05568da51 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt @@ -27,9 +27,11 @@ import com.bluelinelabs.conductor.Router import com.bluelinelabs.conductor.RouterTransaction import com.bluelinelabs.conductor.changehandler.FadeChangeHandler import com.bluelinelabs.conductor.changehandler.SimpleSwapChangeHandler +import com.google.android.material.bottomnavigation.BottomNavigationView import com.google.android.material.snackbar.Snackbar import eu.kanade.tachiyomi.Migrations import eu.kanade.tachiyomi.R +import eu.kanade.tachiyomi.data.download.DownloadManager import eu.kanade.tachiyomi.data.notification.NotificationReceiver import eu.kanade.tachiyomi.data.preference.PreferencesHelper import eu.kanade.tachiyomi.data.preference.getOrDefault @@ -48,10 +50,11 @@ import eu.kanade.tachiyomi.ui.library.LibraryController import eu.kanade.tachiyomi.ui.manga.MangaController import eu.kanade.tachiyomi.ui.recent_updates.RecentChaptersController import eu.kanade.tachiyomi.ui.recently_read.RecentlyReadController +import eu.kanade.tachiyomi.ui.setting.SettingsDownloadController import eu.kanade.tachiyomi.ui.setting.SettingsMainController +import eu.kanade.tachiyomi.util.system.getResourceColor import eu.kanade.tachiyomi.util.system.launchUI import eu.kanade.tachiyomi.util.view.doOnApplyWindowInsets -import eu.kanade.tachiyomi.util.system.getResourceColor import eu.kanade.tachiyomi.util.view.gone import eu.kanade.tachiyomi.util.view.marginBottom import eu.kanade.tachiyomi.util.view.marginTop @@ -59,13 +62,14 @@ import eu.kanade.tachiyomi.util.view.updateLayoutParams import eu.kanade.tachiyomi.util.view.updatePadding import eu.kanade.tachiyomi.util.view.updatePaddingRelative import eu.kanade.tachiyomi.util.view.visible -import eu.kanade.tachiyomi.util.system.openInBrowser import kotlinx.android.synthetic.main.main_activity.* import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.delay import kotlinx.coroutines.launch import timber.log.Timber +import uy.kohesive.injekt.Injekt +import uy.kohesive.injekt.api.get import uy.kohesive.injekt.injectLazy import java.util.Date import java.util.concurrent.TimeUnit @@ -146,9 +150,7 @@ open class MainActivity : BaseActivity() { R.id.nav_drawer_recently_read -> setRoot(RecentlyReadController(), id) R.id.nav_drawer_catalogues -> setRoot(CatalogueController(), id) R.id.nav_drawer_extensions -> setRoot(ExtensionController(), id) - R.id.nav_drawer_downloads -> { - router.pushController(DownloadController().withFadeTransaction()) - } + R.id.nav_drawer_downloads -> setRoot(DownloadController(), id) R.id.nav_drawer_settings -> setRoot(SettingsMainController(), id) } //navigationView.selectedItemId = id @@ -197,6 +199,7 @@ open class MainActivity : BaseActivity() { val content: ViewGroup = findViewById(R.id.main_content) bottomNav = preferences.useBottonNav().getOrDefault() + bottomNavView = navigationView content.fitsSystemWindows = !bottomNav if (!bottomNav) { container.systemUiVisibility = @@ -365,7 +368,7 @@ open class MainActivity : BaseActivity() { extUpdateText.visible() val badge = navigationView.getOrCreateBadge(R.id.nav_drawer_settings) badge.number = updates - badge.backgroundColor = getResourceColor(R.attr.colorAccent) + badge.backgroundColor = getResourceColor(R.attr.badgeColor) badge.badgeTextColor = Color.WHITE } else { @@ -379,6 +382,8 @@ open class MainActivity : BaseActivity() { super.onResume() bottomNav = preferences.useBottonNav().getOrDefault() getExtensionUpdates() + bottomNavView = navigationView + setDownloadBadge(Injekt.get().hasQueue()) val useBiometrics = preferences.useBiometrics().getOrDefault() if (useBiometrics && BiometricManager.from(this) .canAuthenticate() == BiometricManager.BIOMETRIC_SUCCESS) { @@ -393,6 +398,10 @@ open class MainActivity : BaseActivity() { preferences.useBiometrics().set(false) } + override fun onPause() { + super.onPause() + bottomNavView = null + } private fun getExtensionUpdates() { if (Date().time >= preferences.lastExtCheck().getOrDefault() + @@ -464,6 +473,7 @@ open class MainActivity : BaseActivity() { override fun onDestroy() { super.onDestroy() + bottomNavView = null nav_view?.setNavigationItemSelectedListener(null) toolbar?.setNavigationOnClickListener(null) } @@ -529,22 +539,28 @@ open class MainActivity : BaseActivity() { } } R.id.nav_drawer_downloads -> { - if (router.backstack.isEmpty()) { - setRoot(LibraryController(), R.id.nav_drawer_library) - router.pushController(RouterTransaction.with(DownloadController()) - .pushChangeHandler(SimpleSwapChangeHandler()) - .popChangeHandler(FadeChangeHandler())) + if (router.backstackSize > 1) { + router.popToRoot() + } + + if (bottomNav) { + navigationView.selectedItemId = R.id.nav_drawer_settings + val newBackstack = listOf( + RouterTransaction.with(SettingsMainController()), + RouterTransaction.with(SettingsDownloadController()), + RouterTransaction.with(DownloadController())) + + router.setBackstack(newBackstack, FadeChangeHandler()) } else { - router.pushController(DownloadController().withFadeTransaction()) + nav_view.setCheckedItem(R.id.nav_drawer_settings) + setRoot(DownloadController(), id) } + } R.id.nav_drawer_settings -> { setRoot(SettingsMainController(), id) } - R.id.nav_drawer_help -> { - openInBrowser(URL_HELP) - } } } } @@ -650,6 +666,33 @@ open class MainActivity : BaseActivity() { var bottomNav = false internal set + + internal var bottomNavView:BottomNavigationView? = null + + fun setDownloadBadge(downloading: Boolean) { + if (!bottomNav) return + val badge = bottomNavView?.getOrCreateBadge(R.id.nav_drawer_settings) ?: return + val downloadManager = Injekt.get() + val hasQueue = downloading || downloadManager.hasQueue() + if (hasQueue) { + badge.clearNumber() + badge.backgroundColor = bottomNavView?.context?.getResourceColor(R.attr + .badgeColor) ?: Color.BLACK + } + else + { + val updates = Injekt.get().extensionUpdatesCount().getOrDefault() + if (updates > 0) { + badge.number = updates + badge.backgroundColor = bottomNavView?.context?.getResourceColor(R.attr + .badgeColor) ?: Color.BLACK + badge.badgeTextColor = Color.WHITE + } + else { + bottomNavView?.removeBadge(R.id.nav_drawer_settings) + } + } + } } } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/main/SearchActivity.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/main/SearchActivity.kt index 969220aaf7..5c0dcb4076 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/main/SearchActivity.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/main/SearchActivity.kt @@ -182,6 +182,7 @@ class SearchActivity: MainActivity() { override fun onResume() { super.onResume() bottomNav = false + bottomNavView = null } override fun handleIntentAction(intent: Intent): Boolean { diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/ChapterHolder.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/ChapterHolder.kt index fa5945db49..fb91361ef2 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/ChapterHolder.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/chapter/ChapterHolder.kt @@ -1,7 +1,7 @@ package eu.kanade.tachiyomi.ui.manga.chapter import android.view.View -import android.widget.PopupMenu +import androidx.appcompat.widget.PopupMenu import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.data.database.models.Manga import eu.kanade.tachiyomi.data.download.model.Download diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/migration/manga/process/MigrationProcessHolder.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/migration/manga/process/MigrationProcessHolder.kt index 835f34a560..edd7f2be06 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/migration/manga/process/MigrationProcessHolder.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/migration/manga/process/MigrationProcessHolder.kt @@ -1,7 +1,7 @@ package eu.kanade.tachiyomi.ui.migration.manga.process import android.view.View -import android.widget.PopupMenu +import androidx.appcompat.widget.PopupMenu import com.bumptech.glide.load.engine.DiskCacheStrategy import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.data.database.DatabaseHelper diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/recent_updates/RecentChapterHolder.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/recent_updates/RecentChapterHolder.kt index 9f40d31dd4..5fae722396 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/recent_updates/RecentChapterHolder.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/recent_updates/RecentChapterHolder.kt @@ -1,7 +1,7 @@ package eu.kanade.tachiyomi.ui.recent_updates import android.view.View -import android.widget.PopupMenu +import androidx.appcompat.widget.PopupMenu import com.bumptech.glide.load.engine.DiskCacheStrategy import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.data.download.model.Download diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/PreferenceDSL.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/PreferenceDSL.kt index 58245c9be8..961b324875 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/PreferenceDSL.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/PreferenceDSL.kt @@ -9,6 +9,7 @@ import com.afollestad.materialdialogs.list.listItems import com.afollestad.materialdialogs.list.listItemsSingleChoice import eu.kanade.tachiyomi.data.preference.PreferencesHelper import eu.kanade.tachiyomi.data.preference.getOrDefault +import eu.kanade.tachiyomi.widget.preference.DownloadQueuePreference import eu.kanade.tachiyomi.widget.preference.ExtensionPreference import eu.kanade.tachiyomi.widget.preference.IntListMatPreference import eu.kanade.tachiyomi.widget.preference.IntListPreference @@ -34,6 +35,12 @@ inline fun PreferenceGroup.extensionPreference(block: (@DSL Preference).() -> Un return initThenAdd(ExtensionPreference(context), block) } +inline fun PreferenceGroup.downloadQueuePreference(block: (@DSL Preference).() -> Unit): + DownloadQueuePreference { + return initThenAdd(DownloadQueuePreference(context), block) +} + + inline fun PreferenceGroup.switchPreference(block: (@DSL SwitchPreferenceCompat).() -> Unit): SwitchPreferenceCompat { return initThenAdd(SwitchPreferenceCompat(context), block) } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsDownloadController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsDownloadController.kt index 83a548c566..35ab0cca4b 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsDownloadController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsDownloadController.kt @@ -11,12 +11,15 @@ import androidx.core.content.ContextCompat import androidx.preference.PreferenceScreen import com.afollestad.materialdialogs.MaterialDialog import com.afollestad.materialdialogs.list.listItemsSingleChoice +import com.bluelinelabs.conductor.RouterTransaction import com.hippo.unifile.UniFile import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.data.database.DatabaseHelper import eu.kanade.tachiyomi.data.preference.PreferencesHelper import eu.kanade.tachiyomi.data.preference.getOrDefault import eu.kanade.tachiyomi.ui.base.controller.DialogController +import eu.kanade.tachiyomi.ui.base.controller.withFadeTransaction +import eu.kanade.tachiyomi.ui.download.DownloadController import eu.kanade.tachiyomi.util.system.getFilePicker import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get @@ -31,6 +34,13 @@ class SettingsDownloadController : SettingsController() { override fun setupPreferenceScreen(screen: PreferenceScreen) = with(screen) { titleRes = R.string.pref_category_downloads + downloadQueuePreference { + titleRes = R.string.label_download_queue + onClick { + router.pushController(DownloadController().withFadeTransaction()) + } + } + preference { key = Keys.downloadsDirectory titleRes = R.string.pref_download_directory diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsMainController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsMainController.kt index 0d983133ad..ead3466652 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsMainController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsMainController.kt @@ -49,7 +49,7 @@ class SettingsMainController : SettingsController() { titleRes = R.string.pref_category_reader onClick { navigateTo(SettingsReaderController()) } } - preference { + downloadQueuePreference { iconRes = R.drawable.ic_file_download_black_24dp iconTint = tintColor titleRes = R.string.pref_category_downloads diff --git a/app/src/main/java/eu/kanade/tachiyomi/widget/preference/DownloadQueuePreference.kt b/app/src/main/java/eu/kanade/tachiyomi/widget/preference/DownloadQueuePreference.kt new file mode 100644 index 0000000000..9414d4713c --- /dev/null +++ b/app/src/main/java/eu/kanade/tachiyomi/widget/preference/DownloadQueuePreference.kt @@ -0,0 +1,45 @@ +package eu.kanade.tachiyomi.widget.preference + +import android.content.Context +import androidx.preference.Preference +import androidx.preference.PreferenceViewHolder +import android.util.AttributeSet +import eu.kanade.tachiyomi.R +import eu.kanade.tachiyomi.data.download.DownloadManager +import eu.kanade.tachiyomi.data.preference.PreferencesHelper +import eu.kanade.tachiyomi.data.preference.getOrDefault +import eu.kanade.tachiyomi.util.view.gone +import eu.kanade.tachiyomi.util.view.visible +import kotlinx.android.synthetic.main.preference_update_text.view.* +import uy.kohesive.injekt.Injekt +import uy.kohesive.injekt.api.get + +class DownloadQueuePreference @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null) : + Preference(context, attrs) { + + init { + widgetLayoutResource = R.layout.preference_update_text + } + + override fun onBindViewHolder(holder: PreferenceViewHolder) { + super.onBindViewHolder(holder) + + val extUpdateText = holder.itemView.textView + + val updates = Injekt.get().queue.size + if (updates > 0) { + extUpdateText.text = context.resources.getQuantityString(R.plurals + .downloads_pending, updates, updates) + extUpdateText.visible() + } + else { + extUpdateText.text = null + extUpdateText.gone() + } + } + + public override fun notifyChanged() { + super.notifyChanged() + } + +} diff --git a/app/src/main/java/eu/kanade/tachiyomi/widget/preference/LoginCheckBoxPreference.kt b/app/src/main/java/eu/kanade/tachiyomi/widget/preference/LoginCheckBoxPreference.kt index 62e1765a6a..460cc377cd 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/widget/preference/LoginCheckBoxPreference.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/widget/preference/LoginCheckBoxPreference.kt @@ -51,7 +51,7 @@ class LoginCheckBoxPreference @JvmOverloads constructor( } // Make method public - override public fun notifyChanged() { + public override fun notifyChanged() { super.notifyChanged() } diff --git a/app/src/main/res/menu/library.xml b/app/src/main/res/menu/library.xml index b0a884cf71..08229f2ae5 100644 --- a/app/src/main/res/menu/library.xml +++ b/app/src/main/res/menu/library.xml @@ -17,12 +17,6 @@ android:title="@string/action_filter" app:showAsAction="ifRoom"/> - - - + + + #212121 #212121 @color/md_white_1000_38 + #3399FF @color/md_white_1000 @color/md_white_1000_70 diff --git a/app/src/main/res/values-night/themes.xml b/app/src/main/res/values-night/themes.xml index da41c02c96..051259f364 100644 --- a/app/src/main/res/values-night/themes.xml +++ b/app/src/main/res/values-night/themes.xml @@ -16,6 +16,7 @@ diff --git a/app/src/main/res/values/attrs.xml b/app/src/main/res/values/attrs.xml index 5ea5bed5b5..375dc54412 100644 --- a/app/src/main/res/values/attrs.xml +++ b/app/src/main/res/values/attrs.xml @@ -31,4 +31,5 @@ + diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 97a16d9ab3..bf721d3b9c 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -31,6 +31,7 @@ @color/md_white_1000_50 @color/md_black_1000_12 #B3FFFFFF + @color/material_red_accent_700 @color/colorAccent #212121 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 2f1e810776..4455254bf3 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -20,13 +20,17 @@ Selected: %1$d Source migration Extensions + Extension info + Help + Unlock to access Library Update available %d updates available - Extension info - Help - Unlock to access Library + + 1 in queue + %d in queue + Filter diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index d50be6cdad..ada3142326 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -45,6 +45,7 @@ @color/snackbarBackground @color/textColorPrimaryInverse @color/md_white_1000 + @color/badgeColor @android:color/transparent #B3000000 @@ -66,6 +67,7 @@ @style/ThemeOverlay.AppCompat.DayNight.ActionBar @color/colorPrimary @color/colorPrimaryInactive + @color/colorAccent