diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadManager.kt b/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadManager.kt index aafbfa65e3..bbd0e0a299 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadManager.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/download/DownloadManager.kt @@ -96,6 +96,7 @@ class DownloadManager(val context: Context) { fun clearQueue(isNotification: Boolean = false) { deletePendingDownloads(*downloader.queue.toTypedArray()) downloader.clearQueue(isNotification) + DownloadService.callListeners(false) } /** 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 ce5da66453..423455290d 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 @@ -50,10 +50,10 @@ class DownloadService : Service() { listeners.remove(listener) } - fun callListeners() { + fun callListeners(downloading: Boolean? = null) { val downloadManager: DownloadManager by injectLazy() listeners.forEach { - it.downloadStatusChanged(downloadManager.hasQueue()) + it.downloadStatusChanged(downloading ?: downloadManager.hasQueue()) } } /** @@ -133,7 +133,7 @@ class DownloadService : Service() { runningRelay.call(false) subscriptions.unsubscribe() downloadManager.stopDownloads() - callListeners() + callListeners(downloadManager.hasQueue()) wakeLock.releaseIfNeeded() super.onDestroy() } 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 069a8b78b0..9c1e0c90cb 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,7 +14,6 @@ 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 diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/FilterBottomSheet.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/FilterBottomSheet.kt index 072d5a55b0..8ca1520f0f 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/FilterBottomSheet.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/FilterBottomSheet.kt @@ -1,13 +1,10 @@ package eu.kanade.tachiyomi.ui.library import android.content.Context -import android.transition.AutoTransition -import android.transition.TransitionManager import android.util.AttributeSet import android.view.View import android.widget.LinearLayout import com.google.android.material.bottomsheet.BottomSheetBehavior -import com.google.android.material.bottomsheet.BottomSheetDialog import eu.kanade.tachiyomi.R import eu.kanade.tachiyomi.data.database.DatabaseHelper import eu.kanade.tachiyomi.data.database.models.Category @@ -19,7 +16,6 @@ import eu.kanade.tachiyomi.util.system.dpToPx import eu.kanade.tachiyomi.util.system.launchUI import eu.kanade.tachiyomi.util.view.inflate import kotlinx.android.synthetic.main.filter_bottom_sheet.view.* -import kotlinx.android.synthetic.main.filter_buttons.view.* import kotlinx.coroutines.CoroutineStart import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.GlobalScope @@ -27,11 +23,11 @@ import kotlinx.coroutines.launch import uy.kohesive.injekt.Injekt import uy.kohesive.injekt.api.get import uy.kohesive.injekt.injectLazy -import java.util.Locale import kotlin.math.roundToInt class FilterBottomSheet @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null) - : LinearLayout(context, attrs) { + : LinearLayout(context, attrs), + FilterTagGroupListener { /** * Preferences helper. @@ -52,13 +48,13 @@ class FilterBottomSheet @JvmOverloads constructor(context: Context, attrs: Attri var lastCategory:Category? = null - val filterItems:List by lazy { + private val filterItems:MutableList by lazy { val list = mutableListOf() + if (Injekt.get().getCategories().executeAsBlocking().isNotEmpty()) + list.add(categories) list.add(downloaded) list.add(unread) list.add(completed) - if (Injekt.get().getCategories().executeAsBlocking().isNotEmpty()) - list.add(categories) if (Injekt.get().hasLoggedServices()) list.add(tracked) list @@ -94,14 +90,18 @@ class FilterBottomSheet @JvmOverloads constructor(context: Context, attrs: Attri title.alpha = progress } - override fun onStateChanged(p0: View, p1: Int) { - + override fun onStateChanged(p0: View, state: Int) { + if (state == BottomSheetBehavior.STATE_COLLAPSED) { + reSortViews() + } } }) topbar.viewTreeObserver.addOnGlobalLayoutListener { sheetBehavior.peekHeight = topbar.height if (sheetBehavior.state == BottomSheetBehavior.STATE_COLLAPSED) { pager?.setPadding(0, 0, 0, topbar.height) + sortText.alpha = 1f + title.alpha = 0f } else { updateRootPadding() @@ -139,9 +139,10 @@ class FilterBottomSheet @JvmOverloads constructor(context: Context, attrs: Attri } } - fun moveTitleMargin(downloading: Boolean) { - (sortText.layoutParams as? MarginLayoutParams)?.rightMargin = - (if (downloading) 40 else 8).dpToPx + fun adjustTitleMargin(downloading: Boolean) { + val params = sortText.layoutParams as? MarginLayoutParams ?: return + params.rightMargin = (if (downloading) 80 else 8).dpToPx + sortText.layoutParams = params } fun updateRootPadding(progress: Float? = null) { @@ -174,6 +175,10 @@ class FilterBottomSheet @JvmOverloads constructor(context: Context, attrs: Attri private fun getFilters(): List { val filters = mutableListOf() + val categoriesOn = preferences.showCategories().getOrDefault() + if (!categoriesOn) { + filters.add(R.string.hiding_categories) + } var filter = preferences.filterDownloaded().getOrDefault() if (filter > 0) { filters.add(if (filter == 1) R.string.action_filter_downloaded else R.string @@ -192,10 +197,6 @@ class FilterBottomSheet @JvmOverloads constructor(context: Context, attrs: Attri filters.add(if (filter == 1) R.string.completed else R.string .ongoing) } - val categoriesOn = preferences.showCategories().getOrDefault() - if (!categoriesOn) { - filters.add(R.string.hiding_categories) - } filter = preferences.filterTracked().getOrDefault() if (filter > 0) { filters.add(if (filter == 1) R.string.action_filter_tracked else R.string @@ -212,38 +213,28 @@ class FilterBottomSheet @JvmOverloads constructor(context: Context, attrs: Attri fun createTags() { categories = inflate(R.layout.filter_buttons) as FilterTagGroup categories.setup(this, R.string.hide_categories) - categories.firstButton.isActivated = !preferences.showCategories().getOrDefault() - categories.onItemClicked = { view, index -> onFilterClicked(view, index) } downloaded = inflate(R.layout.filter_buttons) as FilterTagGroup downloaded.setup(this, R.string.action_filter_downloaded, R.string.action_filter_not_downloaded) - downloaded.setState(preferences.filterDownloaded()) - downloaded.onItemClicked = { view, index -> onFilterClicked(view, index) } completed = inflate(R.layout.filter_buttons) as FilterTagGroup completed.setup(this, R.string.completed, R.string.ongoing) - completed.setState(preferences.filterCompleted()) - completed.onItemClicked = { view, index -> onFilterClicked(view, index) } unread = inflate(R.layout.filter_buttons) as FilterTagGroup unread.setup(this, R.string.action_filter_not_started, R.string.action_filter_in_progress, R.string.action_filter_read) - unread.setState(preferences.filterUnread()) - unread.onItemClicked = { view, index -> onFilterClicked(view, index) } tracked = inflate(R.layout.filter_buttons) as FilterTagGroup tracked.setup(this, R.string.action_filter_tracked, R.string.action_filter_not_tracked) - tracked.setState(preferences.filterTracked()) - tracked.onItemClicked = { view, index -> onFilterClicked(view, index) } filterItems.forEach { filterLayout.addView(it) } - checkForWebtoons() + checkForManwha() } - private fun checkForWebtoons() { + private fun checkForManwha() { GlobalScope.launch(Dispatchers.IO, CoroutineStart.DEFAULT) { val db:DatabaseHelper by injectLazy() val librryManga = db.getLibraryMangas().executeAsBlocking() @@ -255,55 +246,65 @@ class FilterBottomSheet @JvmOverloads constructor(context: Context, attrs: Attri R.string.manga, R.string.manwha ) - mangaType.setState(preferences.filterMangaType()) - mangaType.onItemClicked = { view, index -> onFilterClicked(view, index) } this@FilterBottomSheet.mangaType = mangaType filterLayout.addView(mangaType) + filterItems.add(mangaType) } } + launchUI { + categories.setState(!preferences.showCategories().getOrDefault()) + downloaded.setState(preferences.filterDownloaded()) + completed.setState(preferences.filterCompleted()) + unread.setState(preferences.filterUnread()) + tracked.setState(preferences.filterTracked()) + mangaType?.setState(preferences.filterMangaType()) + reSortViews() + } + } } - private fun onFilterClicked(view: View, index: Int) { - /*val transition = AutoTransition() - transition.duration = 150 - TransitionManager.beginDelayedTransition(this, transition)*/ - /*f (index > -1) { - filterScrollView.scrollX = 0 - filterLayout.removeView(view) - filterLayout.addView(view, 0) + override fun onFilterClicked(view: FilterTagGroup, index: Int, updatePreference:Boolean) { + if (updatePreference) { + when (view) { + categories -> { + preferences.showCategories().set(index != 0) + onGroupClicked(ACTION_REFRESH) + } + downloaded -> { + preferences.filterDownloaded().set(index + 1) + onGroupClicked(ACTION_FILTER) + } + unread -> { + preferences.filterUnread().set(index + 1) + onGroupClicked(ACTION_FILTER) + } + completed -> { + preferences.filterCompleted().set(index + 1) + onGroupClicked(ACTION_FILTER) + } + tracked -> { + preferences.filterTracked().set(index + 1) + onGroupClicked(ACTION_FILTER) + } + mangaType -> { + preferences.filterMangaType().set(index + 1) + onGroupClicked(ACTION_FILTER) + } + } + updateTitle() } - else{ - filterLayout.removeView(view) - filterLayout.addView(view, items.indexOf(view as FilterTagGroup)) - }*/ - when (view) { - categories -> { - preferences.showCategories().set(index != 0) - onGroupClicked(ACTION_REFRESH) - } - downloaded -> { - preferences.filterDownloaded().set(index + 1) - onGroupClicked(ACTION_FILTER) - } - unread -> { - preferences.filterUnread().set(index + 1) - onGroupClicked(ACTION_FILTER) - } - completed -> { - preferences.filterCompleted().set(index + 1) - onGroupClicked(ACTION_FILTER) - } - tracked -> { - preferences.filterTracked().set(index + 1) - onGroupClicked(ACTION_FILTER) - } - mangaType -> { - preferences.filterMangaType().set(index + 1) - onGroupClicked(ACTION_FILTER) - } + } + + fun reSortViews() { + filterLayout.removeAllViews() + filterItems.filter { it.isActivated }.forEach { + filterLayout.addView(it) } - updateTitle() + filterItems.filterNot { it.isActivated }.forEach { + filterLayout.addView(it) + } + filterScrollView.scrollTo(0, 0) } companion object { diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/library/FilterTagGroup.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/library/FilterTagGroup.kt index 6ff22941dc..171204b1f2 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/library/FilterTagGroup.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/library/FilterTagGroup.kt @@ -1,12 +1,12 @@ package eu.kanade.tachiyomi.ui.library import android.content.Context -import android.transition.AutoTransition -import android.transition.TransitionManager import android.util.AttributeSet import android.view.View import android.view.ViewGroup +import android.widget.HorizontalScrollView import android.widget.LinearLayout +import androidx.transition.Transition import com.f2prateek.rx.preferences.Preference import eu.kanade.tachiyomi.data.preference.getOrDefault import eu.kanade.tachiyomi.util.system.dpToPx @@ -17,11 +17,19 @@ import kotlinx.android.synthetic.main.filter_buttons.view.* class FilterTagGroup@JvmOverloads constructor(context: Context, attrs: AttributeSet? = null): LinearLayout (context, attrs) { - var onItemClicked: (View, Int) -> Unit = { _, _ -> } + private var listener:FilterTagGroupListener? = null + + var itemCount = 0 + private set - private var itemCount = 0 private var root:ViewGroup? = null + private val buttons by lazy { arrayOf(firstButton, secondButton, thirdButton) } + + override fun isActivated(): Boolean { + return buttons.any { it.isActivated } + } + fun setup(root: ViewGroup, firstText: Int, secondText: Int? = null, thirdText: Int? = null) { val text1 = context.getString(firstText) val text2 = if (secondText != null) context.getString(secondText) else null @@ -31,6 +39,7 @@ class FilterTagGroup@JvmOverloads constructor(context: Context, attrs: Attribute fun setup(root: ViewGroup, firstText: String, secondText: String? = null, thirdText: String? = null) { + listener = root as? FilterTagGroupListener (layoutParams as? MarginLayoutParams)?.rightMargin = 5.dpToPx (layoutParams as? MarginLayoutParams)?.leftMargin = 5.dpToPx firstButton.text = firstText @@ -65,11 +74,23 @@ class FilterTagGroup@JvmOverloads constructor(context: Context, attrs: Attribute toggleButton(index, false) } + fun setState(enabled: Boolean) { + if (enabled) + toggleButton(0, false) + } + private fun toggleButton(index: Int, callBack: Boolean = true) { if (itemCount == 0) return + if (callBack) { + val transition = androidx.transition.AutoTransition() + transition.duration = 150 + androidx.transition.TransitionManager.beginDelayedTransition( + parent.parent as ViewGroup, transition + ) + } if (itemCount == 1) { firstButton.isActivated = !firstButton.isActivated - if (callBack) onItemClicked(this, if (firstButton.isActivated) index else -1) + listener?.onFilterClicked(this, if (firstButton.isActivated) index else -1, callBack) return } val buttons = mutableListOf(firstButton, secondButton) @@ -77,20 +98,18 @@ class FilterTagGroup@JvmOverloads constructor(context: Context, attrs: Attribute buttons.add(thirdButton) val mainButton = buttons[index] buttons.remove(mainButton) - val transition = AutoTransition() - transition.duration = 150 - TransitionManager.beginDelayedTransition(root, transition) + if (mainButton.isActivated) { mainButton.isActivated = false separator1.visible() - if (callBack) onItemClicked(this, -1) + listener?.onFilterClicked(this, -1, callBack) if (itemCount >= 3) separator2.visible() buttons.forEach{ it.visible() } } else { mainButton.isActivated = true - if (callBack) onItemClicked(this, index) + listener?.onFilterClicked(this, index, callBack) buttons.forEach{ it.gone() } separator1.gone() if (itemCount >= 3) { @@ -98,4 +117,8 @@ class FilterTagGroup@JvmOverloads constructor(context: Context, attrs: Attribute } } } +} + +interface FilterTagGroupListener { + fun onFilterClicked(view: FilterTagGroup, index: Int, updatePreference:Boolean) } \ No newline at end of file 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 0851be8da2..3ddd218f19 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 @@ -238,10 +238,6 @@ class LibraryController( shadow.gone() shadow2.gone() } - fab.scaleX = 0f - fab.scaleY = 0f - fab.isClickable = false - fab.isFocusable = false } fun enableReorderItems(category: Category) { @@ -276,6 +272,7 @@ class LibraryController( activity?.tabs?.setupWithViewPager(library_pager) presenter.subscribeLibrary() DownloadService.addListener(this) + DownloadService.callListeners() } } @@ -295,6 +292,7 @@ class LibraryController( fab.animate().scaleX(scale).scaleY(scale).setDuration(200).start() fab.isClickable = downloading fab.isFocusable = downloading + bottom_sheet.adjustTitleMargin(downloading) } } override fun onDetach(view: View) { 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 a2800bbb42..d243950ffd 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 @@ -536,13 +536,12 @@ open class MainActivity : BaseActivity(), DownloadServiceListener { } 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()) + navigationView.selectedItemId = R.id.nav_drawer_library + if (router.backstack.firstOrNull()?.controller() is LibraryController) + router.popToRoot() + else + setRoot(LibraryController(), R.id.nav_drawer_library) + router.pushController(DownloadController().withFadeTransaction()) } else { nav_view.setCheckedItem(R.id.nav_drawer_settings) 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 961b324875..446b0bf952 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 @@ -4,20 +4,10 @@ import android.app.Activity import androidx.vectordrawable.graphics.drawable.VectorDrawableCompat import androidx.core.graphics.drawable.DrawableCompat import androidx.preference.* -import com.afollestad.materialdialogs.MaterialDialog -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 import eu.kanade.tachiyomi.widget.preference.ListMatPreference import eu.kanade.tachiyomi.widget.preference.MultiListMatPreference -import uy.kohesive.injekt.Injekt -import uy.kohesive.injekt.api.get -import uy.kohesive.injekt.injectLazy @DslMarker @Target(AnnotationTarget.TYPE) @@ -35,11 +25,6 @@ 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 35ab0cca4b..a1d7e0eac6 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 @@ -34,13 +34,6 @@ 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 ead3466652..0d983133ad 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()) } } - downloadQueuePreference { + preference { 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 deleted file mode 100644 index 9414d4713c..0000000000 --- a/app/src/main/java/eu/kanade/tachiyomi/widget/preference/DownloadQueuePreference.kt +++ /dev/null @@ -1,45 +0,0 @@ -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/res/layout/filter_bottom_sheet.xml b/app/src/main/res/layout/filter_bottom_sheet.xml index bf84106e41..b88bcc467f 100644 --- a/app/src/main/res/layout/filter_bottom_sheet.xml +++ b/app/src/main/res/layout/filter_bottom_sheet.xml @@ -70,6 +70,7 @@ @android:color/transparent #B3000000 + @color/colorAccent @color/textColorPrimary