From 4589d00a7947f5d8703555465efd73ae06dbf535 Mon Sep 17 00:00:00 2001 From: aayush262 Date: Sat, 30 Dec 2023 17:20:00 +0530 Subject: [PATCH] Changes * new nest button for settings * full language name in language selector * tv banner * hide lang selector if there is one language only * and some small changes --- app/src/main/AndroidManifest.xml | 2 +- .../download/manga/OfflineMangaFragment.kt | 2 + .../ani/dantotsu/home/AnimePageAdapter.kt | 2 - .../ani/dantotsu/home/MangaPageAdapter.kt | 3 - .../dantotsu/media/anime/AnimeWatchAdapter.kt | 123 ++++++---- .../dantotsu/media/manga/MangaReadAdapter.kt | 217 ++++++++++------- .../ani/dantotsu/others/LanguageMapper.kt | 30 ++- .../others/imagesearch/ImageSearchActivity.kt | 2 + .../res/drawable-v24/ic_banner_foreground.xml | 67 ------ .../main/res/drawable/ic_round_filter_24.xml | 4 + .../main/res/layout/activity_image_search.xml | 4 +- app/src/main/res/layout/dialog_layout.xml | 225 ++++++++++++++++++ app/src/main/res/layout/item_anime_watch.xml | 98 +++----- .../main/res/mipmap-anydpi-v26/ic_banner.xml | 2 +- app/src/main/res/mipmap-xhdpi/ic_banner.png | Bin 5245 -> 21750 bytes .../res/mipmap-xhdpi/ic_banner_foreground.png | Bin 0 -> 21750 bytes app/src/main/res/values/style.xml | 2 +- 17 files changed, 503 insertions(+), 280 deletions(-) delete mode 100644 app/src/main/res/drawable-v24/ic_banner_foreground.xml create mode 100644 app/src/main/res/drawable/ic_round_filter_24.xml create mode 100644 app/src/main/res/layout/dialog_layout.xml create mode 100644 app/src/main/res/mipmap-xhdpi/ic_banner_foreground.png diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 8ab6c3ca..c0a14ae7 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -47,7 +47,7 @@ = Build.VERSION_CODES.P) { val displayCutout = activity?.window?.decorView?.rootWindowInsets?.displayCutout diff --git a/app/src/main/java/ani/dantotsu/home/AnimePageAdapter.kt b/app/src/main/java/ani/dantotsu/home/AnimePageAdapter.kt index 732ac43f..d843b2dc 100644 --- a/app/src/main/java/ani/dantotsu/home/AnimePageAdapter.kt +++ b/app/src/main/java/ani/dantotsu/home/AnimePageAdapter.kt @@ -75,8 +75,6 @@ class AnimePageAdapter : RecyclerView.Adapter { diff --git a/app/src/main/java/ani/dantotsu/media/anime/AnimeWatchAdapter.kt b/app/src/main/java/ani/dantotsu/media/anime/AnimeWatchAdapter.kt index ea30fa58..c7923c91 100644 --- a/app/src/main/java/ani/dantotsu/media/anime/AnimeWatchAdapter.kt +++ b/app/src/main/java/ani/dantotsu/media/anime/AnimeWatchAdapter.kt @@ -1,23 +1,28 @@ package ani.dantotsu.media.anime import android.annotation.SuppressLint +import android.content.Context import android.content.Intent import android.net.Uri import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.ArrayAdapter +import android.widget.ImageButton import android.widget.ImageView import android.widget.LinearLayout +import androidx.appcompat.app.AlertDialog import androidx.core.content.ContextCompat import androidx.lifecycle.lifecycleScope import androidx.recyclerview.widget.RecyclerView import ani.dantotsu.* import ani.dantotsu.databinding.ItemAnimeWatchBinding import ani.dantotsu.databinding.ItemChipBinding +import ani.dantotsu.databinding.DialogLayoutBinding import ani.dantotsu.media.Media import ani.dantotsu.media.MediaDetailsActivity import ani.dantotsu.media.SourceSearchDialogFragment +import ani.dantotsu.others.LanguageMapper import ani.dantotsu.parsers.AnimeSources import ani.dantotsu.parsers.DynamicAnimeParser import ani.dantotsu.parsers.WatchSources @@ -27,6 +32,7 @@ import com.google.android.material.chip.Chip import kotlinx.coroutines.MainScope import kotlinx.coroutines.launch + class AnimeWatchAdapter( private val media: Media, private val fragment: AnimeWatchFragment, @@ -40,6 +46,8 @@ class AnimeWatchAdapter( val bind = ItemAnimeWatchBinding.inflate(LayoutInflater.from(parent.context), parent, false) return ViewHolder(bind) } + private var nestedDialog: AlertDialog? = null + @SuppressLint("SetTextI18n") override fun onBindViewHolder(holder: ViewHolder, position: Int) { @@ -147,8 +155,9 @@ class AnimeWatchAdapter( } } + //Icons - //Subscription + //subscribe subscribe = MediaDetailsActivity.PopImageButton( fragment.lifecycleScope, binding.animeSourceSubscribe, @@ -167,44 +176,71 @@ class AnimeWatchAdapter( openSettings(fragment.requireContext(), getChannelId(true, media.id)) } - //Icons - var reversed = media.selected!!.recyclerReversed - var style = media.selected!!.recyclerStyle ?: fragment.uiSettings.animeDefaultView - binding.animeSourceTop.rotation = if (reversed) -90f else 90f - binding.animeSourceTop.setOnClickListener { - reversed = !reversed - binding.animeSourceTop.rotation = if (reversed) -90f else 90f - fragment.onIconPressed(style, reversed) - } - var selected = when (style) { - 0 -> binding.animeSourceList - 1 -> binding.animeSourceGrid - 2 -> binding.animeSourceCompact - else -> binding.animeSourceList - } - selected.alpha = 1f - fun selected(it: ImageView) { - selected.alpha = 0.33f - selected = it + //Nested Button + binding.animeNestedButton.setOnClickListener { + val dialogView = + LayoutInflater.from(fragment.requireContext()).inflate(R.layout.dialog_layout, null) + val dialogBinding = DialogLayoutBinding.bind(dialogView) + + var reversed = media.selected!!.recyclerReversed + var style = media.selected!!.recyclerStyle ?: fragment.uiSettings.animeDefaultView + dialogBinding.animeSourceTop.rotation = if (reversed) -90f else 90f + dialogBinding.sortText.text = if (reversed) "Down to Up" else "Up to Down" + dialogBinding.animeSourceTop.setOnClickListener { + reversed = !reversed + dialogBinding.animeSourceTop.rotation = if (reversed) -90f else 90f + dialogBinding.sortText.text = if (reversed) "Down to Up" else "Up to Down" + } + //Grids + var selected = when (style) { + 0 -> dialogBinding.animeSourceList + 1 -> dialogBinding.animeSourceGrid + 2 -> dialogBinding.animeSourceCompact + else -> dialogBinding.animeSourceList + } + when (style) { + 0 -> dialogBinding.layoutText.text = "List" + 1 -> dialogBinding.layoutText.text = "Grid" + 2 -> dialogBinding.layoutText.text = "Compact" + else -> dialogBinding.animeSourceList + } selected.alpha = 1f + fun selected(it: ImageButton) { + selected.alpha = 0.33f + selected = it + selected.alpha = 1f + } + dialogBinding.animeSourceList.setOnClickListener { + selected(it as ImageButton) + style = 0 + dialogBinding.layoutText.text = "List" + } + dialogBinding.animeSourceGrid.setOnClickListener { + selected(it as ImageButton) + style = 1 + dialogBinding.layoutText.text = "Grid" + } + dialogBinding.animeSourceCompact.setOnClickListener { + selected(it as ImageButton) + style = 2 + dialogBinding.layoutText.text = "Compact" + } + + //hidden + dialogBinding.animeScanlatorContainer.visibility = View.GONE + dialogBinding.animeDownloadContainer.visibility = View.GONE + + nestedDialog = AlertDialog.Builder(fragment.requireContext() , R.style.MyPopup) + .setTitle("Options") + .setView(dialogView) + .setPositiveButton("OK") { _, _ -> + fragment.onIconPressed(style, reversed) + } + .setNegativeButton("Cancel") { _, _ -> + } + .create() + nestedDialog?.show() } - binding.animeSourceList.setOnClickListener { - selected(it as ImageView) - style = 0 - fragment.onIconPressed(style, reversed) - } - binding.animeSourceGrid.setOnClickListener { - selected(it as ImageView) - style = 1 - fragment.onIconPressed(style, reversed) - } - binding.animeSourceCompact.setOnClickListener { - selected(it as ImageView) - style = 2 - fragment.onIconPressed(style, reversed) - } - binding.animeScanlatorTop.visibility = View.GONE - binding.animeDownloadTop.visibility = View.GONE //Episode Handling handleEpisodes() } @@ -351,12 +387,15 @@ class AnimeWatchAdapter( parser.extension.sources.firstOrNull()?.lang ?: "Unknown" ) } - binding?.animeSourceLanguage?.setAdapter( - ArrayAdapter( - fragment.requireContext(), - R.layout.item_dropdown, - parser.extension.sources.map { it.lang }) + val adapter = ArrayAdapter( + fragment.requireContext(), + R.layout.item_dropdown, + parser.extension.sources.map { LanguageMapper.mapLanguageCodeToName(it.lang) } ) + val items = adapter.count + if (items < 2) binding?.animeSourceLanguageContainer?.visibility = View.GONE else binding?.animeSourceLanguageContainer?.visibility = View.VISIBLE + + binding?.animeSourceLanguage?.setAdapter(adapter) } } diff --git a/app/src/main/java/ani/dantotsu/media/manga/MangaReadAdapter.kt b/app/src/main/java/ani/dantotsu/media/manga/MangaReadAdapter.kt index 342dfe20..274d41d4 100644 --- a/app/src/main/java/ani/dantotsu/media/manga/MangaReadAdapter.kt +++ b/app/src/main/java/ani/dantotsu/media/manga/MangaReadAdapter.kt @@ -2,12 +2,14 @@ package ani.dantotsu.media.manga import android.annotation.SuppressLint import android.app.AlertDialog +import android.content.Context import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.view.WindowManager import android.widget.ArrayAdapter import android.widget.CheckBox +import android.widget.ImageButton import android.widget.ImageView import android.widget.LinearLayout import android.widget.NumberPicker @@ -15,12 +17,14 @@ import androidx.core.content.ContextCompat import androidx.lifecycle.lifecycleScope import androidx.recyclerview.widget.RecyclerView import ani.dantotsu.* +import ani.dantotsu.databinding.DialogLayoutBinding import ani.dantotsu.databinding.ItemAnimeWatchBinding import ani.dantotsu.databinding.ItemChipBinding import ani.dantotsu.media.Media import ani.dantotsu.media.MediaDetailsActivity import ani.dantotsu.media.SourceSearchDialogFragment import ani.dantotsu.media.anime.handleProgress +import ani.dantotsu.others.LanguageMapper import ani.dantotsu.parsers.DynamicMangaParser import ani.dantotsu.parsers.MangaReadSources import ani.dantotsu.parsers.MangaSources @@ -30,6 +34,7 @@ import com.google.android.material.chip.Chip import kotlinx.coroutines.MainScope import kotlinx.coroutines.launch + class MangaReadAdapter( private val media: Media, private val fragment: MangaReadFragment, @@ -46,7 +51,7 @@ class MangaReadAdapter( val bind = ItemAnimeWatchBinding.inflate(LayoutInflater.from(parent.context), parent, false) return ViewHolder(bind) } - + private var nestedDialog: androidx.appcompat.app.AlertDialog? = null @SuppressLint("SetTextI18n") override fun onBindViewHolder(holder: ViewHolder, position: Int) { val binding = holder.binding @@ -117,7 +122,7 @@ class MangaReadAdapter( } } - //Subscription + //Grids subscribe = MediaDetailsActivity.PopImageButton( fragment.lifecycleScope, binding.animeSourceSubscribe, @@ -136,98 +141,127 @@ class MangaReadAdapter( openSettings(fragment.requireContext(), getChannelId(true, media.id)) } - //Icons - binding.animeSourceGrid.visibility = View.GONE - var reversed = media.selected!!.recyclerReversed - var style = media.selected!!.recyclerStyle ?: fragment.uiSettings.mangaDefaultView - binding.animeSourceTop.rotation = if (reversed) -90f else 90f - binding.animeSourceTop.setOnClickListener { - reversed = !reversed - binding.animeSourceTop.rotation = if (reversed) -90f else 90f - fragment.onIconPressed(style, reversed) - } + binding.animeNestedButton.setOnClickListener { - binding.animeScanlatorTop.setOnClickListener { val dialogView = - LayoutInflater.from(currContext()).inflate(R.layout.custom_dialog_layout, null) - val checkboxContainer = dialogView.findViewById(R.id.checkboxContainer) + LayoutInflater.from(fragment.requireContext()).inflate(R.layout.dialog_layout, null) + val dialogBinding = DialogLayoutBinding.bind(dialogView) - // Dynamically add checkboxes - options.forEach { option -> - val checkBox = CheckBox(currContext()).apply { - text = option - } - //set checked if it's already selected - if (media.selected!!.scanlators != null) { - checkBox.isChecked = media.selected!!.scanlators?.contains(option) != true - scanlatorSelectionListener?.onScanlatorsSelected() - } else { - checkBox.isChecked = true - } - checkboxContainer.addView(checkBox) + var reversed = media.selected!!.recyclerReversed + var style = media.selected!!.recyclerStyle ?: fragment.uiSettings.animeDefaultView + dialogBinding.animeSourceTop.rotation = if (reversed) -90f else 90f + dialogBinding.sortText.text = if (reversed) "Down to Up" else "Up to Down" + dialogBinding.animeSourceTop.setOnClickListener { + reversed = !reversed + dialogBinding.animeSourceTop.rotation = if (reversed) -90f else 90f + dialogBinding.sortText.text = if (reversed) "Down to Up" else "Up to Down" } - // Create AlertDialog - val dialog = AlertDialog.Builder(currContext(), R.style.MyPopup) - .setView(dialogView) - .setPositiveButton("OK") { dialog, which -> - //add unchecked to hidden - hiddenScanlators.clear() - for (i in 0 until checkboxContainer.childCount) { - val checkBox = checkboxContainer.getChildAt(i) as CheckBox - if (!checkBox.isChecked) { - hiddenScanlators.add(checkBox.text.toString()) - } - } - fragment.onScanlatorChange(hiddenScanlators) - scanlatorSelectionListener?.onScanlatorsSelected() - } - .setNegativeButton("Cancel", null) - .show() - dialog.window?.setDimAmount(0.8f) - } - - binding.animeDownloadTop.setOnClickListener { - //Alert dialog asking for the number of chapters to download - val alertDialog = AlertDialog.Builder(currContext(), R.style.MyPopup) - alertDialog.setTitle("Multi Chapter Downloader") - alertDialog.setMessage("Enter the number of chapters to download") - val input = NumberPicker(currContext()) - input.minValue = 1 - input.maxValue = 20 - input.value = 1 - alertDialog.setView(input) - alertDialog.setPositiveButton("OK") { dialog, which -> - fragment.multiDownload(input.value) + //Grids + dialogBinding.animeSourceGrid.visibility = View.GONE + var selected = when (style) { + 0 -> dialogBinding.animeSourceList + 1 -> dialogBinding.animeSourceCompact + else -> dialogBinding.animeSourceList + } + when (style) { + 0 -> dialogBinding.layoutText.text = "List" + 1 -> dialogBinding.layoutText.text = "Compact" + else -> dialogBinding.animeSourceList } - alertDialog.setNegativeButton("Cancel") { dialog, _ -> dialog.cancel() } - val dialog = alertDialog.show() - dialog.window?.setDimAmount(0.8f) - } - - var selected = when (style) { - 0 -> binding.animeSourceList - 1 -> binding.animeSourceCompact - else -> binding.animeSourceList - } - selected.alpha = 1f - fun selected(it: ImageView) { - selected.alpha = 0.33f - selected = it selected.alpha = 1f - } - binding.animeSourceList.setOnClickListener { - selected(it as ImageView) - style = 0 - fragment.onIconPressed(style, reversed) - } - binding.animeSourceCompact.setOnClickListener { - selected(it as ImageView) - style = 1 - fragment.onIconPressed(style, reversed) - } + fun selected(it: ImageButton) { + selected.alpha = 0.33f + selected = it + selected.alpha = 1f + } + dialogBinding.animeSourceList.setOnClickListener { + selected(it as ImageButton) + style = 0 + dialogBinding.layoutText.text = "List" + } + dialogBinding.animeSourceCompact.setOnClickListener { + selected(it as ImageButton) + style = 1 + dialogBinding.layoutText.text = "Compact" + } + //Multi download + dialogBinding.downloadNo.text = "0" + dialogBinding.animeDownloadTop.setOnClickListener { + //Alert dialog asking for the number of chapters to download + val alertDialog = AlertDialog.Builder(currContext(), R.style.MyPopup) + alertDialog.setTitle("Multi Chapter Downloader") + alertDialog.setMessage("Enter the number of chapters to download") + val input = NumberPicker(currContext()) + input.minValue = 1 + input.maxValue = 20 + input.value = 1 + alertDialog.setView(input) + alertDialog.setPositiveButton("OK") { dialog, which -> + dialogBinding.downloadNo.text = "${input.value}" + } + alertDialog.setNegativeButton("Cancel") { dialog, _ -> dialog.cancel() } + val dialog = alertDialog.show() + dialog.window?.setDimAmount(0.8f) + } + + //Scanlator + dialogBinding.animeScanlatorTop.setOnClickListener { + val dialogView2 = + LayoutInflater.from(currContext()).inflate(R.layout.custom_dialog_layout, null) + val checkboxContainer = dialogView2.findViewById(R.id.checkboxContainer) + + // Dynamically add checkboxes + options.forEach { option -> + val checkBox = CheckBox(currContext()).apply { + text = option + } + //set checked if it's already selected + if (media.selected!!.scanlators != null) { + checkBox.isChecked = media.selected!!.scanlators?.contains(option) != true + scanlatorSelectionListener?.onScanlatorsSelected() + } else { + checkBox.isChecked = true + } + checkboxContainer.addView(checkBox) + } + + // Create AlertDialog + val dialog = AlertDialog.Builder(currContext(), R.style.MyPopup) + .setView(dialogView2) + .setPositiveButton("OK") { dialog, which -> + //add unchecked to hidden + hiddenScanlators.clear() + for (i in 0 until checkboxContainer.childCount) { + val checkBox = checkboxContainer.getChildAt(i) as CheckBox + if (!checkBox.isChecked) { + hiddenScanlators.add(checkBox.text.toString()) + } + } + fragment.onScanlatorChange(hiddenScanlators) + scanlatorSelectionListener?.onScanlatorsSelected() + } + .setNegativeButton("Cancel", null) + .show() + dialog.window?.setDimAmount(0.8f) + } + + nestedDialog = androidx.appcompat.app.AlertDialog.Builder(fragment.requireContext() , R.style.MyPopup) + .setTitle("Options") + .setView(dialogView) + .setPositiveButton("OK") { _, _ -> + fragment.onIconPressed(style, reversed) + if (dialogBinding.downloadNo.text != "0"){ + fragment.multiDownload(dialogBinding.downloadNo.text.toString().toInt()) + } + } + .setNegativeButton("Cancel") { _, _ -> + } + .create() + nestedDialog?.show() + } //Chapter Handling handleChapters() } @@ -385,12 +419,15 @@ class MangaReadAdapter( parser.extension.sources.firstOrNull()?.lang ?: "Unknown" ) } - binding?.animeSourceLanguage?.setAdapter( - ArrayAdapter( - fragment.requireContext(), - R.layout.item_dropdown, - parser.extension.sources.map { it.lang }) + val adapter = ArrayAdapter( + fragment.requireContext(), + R.layout.item_dropdown, + parser.extension.sources.map { LanguageMapper.mapLanguageCodeToName(it.lang) } ) + val items = adapter.count + if (items < 2) binding?.animeSourceLanguageContainer?.visibility = View.GONE else binding?.animeSourceLanguageContainer?.visibility = View.VISIBLE + + binding?.animeSourceLanguage?.setAdapter(adapter) } } diff --git a/app/src/main/java/ani/dantotsu/others/LanguageMapper.kt b/app/src/main/java/ani/dantotsu/others/LanguageMapper.kt index 25f8f6a4..48f6df75 100644 --- a/app/src/main/java/ani/dantotsu/others/LanguageMapper.kt +++ b/app/src/main/java/ani/dantotsu/others/LanguageMapper.kt @@ -24,7 +24,35 @@ class LanguageMapper { "vi" -> "Vietnamese" "zh" -> "Chinese" "zh-Hans" -> "Chinese (Simplified)" - else -> "" + "es-419" -> "Spanish (Latin America)" + "hu" -> "Hungarian" + "zh-habt" -> "Chinese (Hakka)" + "zh-hant" -> "Chinese (Traditional)" + "ca" -> "Catalan" + "bg" -> "Bulgarian" + "fa" -> "Persian" + "mn" -> "Mongolian" + "ro" -> "Romanian" + "he" -> "Hebrew" + "ms" -> "Malay" + "tl" -> "Tagalog" + "hi" -> "Hindi" + "my" -> "Burmese" + "cs" -> "Czech" + "pt" -> "Portuguese" + "nl" -> "Dutch" + "sv" -> "Swedish" + "bn" -> "Bengali" + "no" -> "Norwegian" + "el" -> "Greek" + "sr" -> "Serbian" + "da" -> "Danish" + "lt" -> "Lithuanian" + "ml" -> "Malayalam" + "mr" -> "Marathi" + "ta" -> "Tamil" + "te" -> "Telugu" + else -> code } } diff --git a/app/src/main/java/ani/dantotsu/others/imagesearch/ImageSearchActivity.kt b/app/src/main/java/ani/dantotsu/others/imagesearch/ImageSearchActivity.kt index 1e38fc0e..75be1465 100644 --- a/app/src/main/java/ani/dantotsu/others/imagesearch/ImageSearchActivity.kt +++ b/app/src/main/java/ani/dantotsu/others/imagesearch/ImageSearchActivity.kt @@ -14,6 +14,7 @@ import ani.dantotsu.App.Companion.context import ani.dantotsu.R import ani.dantotsu.connections.anilist.Anilist import ani.dantotsu.databinding.ActivityImageSearchBinding +import ani.dantotsu.initActivity import ani.dantotsu.media.MediaDetailsActivity import ani.dantotsu.others.LangSet import ani.dantotsu.themes.ThemeManager @@ -49,6 +50,7 @@ class ImageSearchActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) LangSet.setLocale(this) + initActivity(this) ThemeManager(this).applyTheme() binding = ActivityImageSearchBinding.inflate(layoutInflater) setContentView(binding.root) diff --git a/app/src/main/res/drawable-v24/ic_banner_foreground.xml b/app/src/main/res/drawable-v24/ic_banner_foreground.xml deleted file mode 100644 index e26ad38f..00000000 --- a/app/src/main/res/drawable-v24/ic_banner_foreground.xml +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_round_filter_24.xml b/app/src/main/res/drawable/ic_round_filter_24.xml new file mode 100644 index 00000000..c5b85484 --- /dev/null +++ b/app/src/main/res/drawable/ic_round_filter_24.xml @@ -0,0 +1,4 @@ + + + diff --git a/app/src/main/res/layout/activity_image_search.xml b/app/src/main/res/layout/activity_image_search.xml index 775ebf93..760a0b6e 100644 --- a/app/src/main/res/layout/activity_image_search.xml +++ b/app/src/main/res/layout/activity_image_search.xml @@ -2,8 +2,8 @@ xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" - android:layout_height="fill_parent" - android:fitsSystemWindows="true"> + android:layout_height="match_parent" + android:paddingTop="32dp"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/item_anime_watch.xml b/app/src/main/res/layout/item_anime_watch.xml index 70f66744..1834403a 100644 --- a/app/src/main/res/layout/item_anime_watch.xml +++ b/app/src/main/res/layout/item_anime_watch.xml @@ -90,12 +90,12 @@ @@ -107,7 +107,7 @@ - @@ -186,19 +177,26 @@ - + android:orientation="horizontal"> + + - - - - - - - - - diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_banner.xml b/app/src/main/res/mipmap-anydpi-v26/ic_banner.xml index a0a0dece..cf3108b3 100644 --- a/app/src/main/res/mipmap-anydpi-v26/ic_banner.xml +++ b/app/src/main/res/mipmap-anydpi-v26/ic_banner.xml @@ -1,5 +1,5 @@ - + \ No newline at end of file diff --git a/app/src/main/res/mipmap-xhdpi/ic_banner.png b/app/src/main/res/mipmap-xhdpi/ic_banner.png index 8f8c3cad591ce5469d999f9f9cdf231ac6589944..89d36cbdbd69039406687ce34f17fb03167bb1b2 100644 GIT binary patch literal 21750 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 L`njxgN@xNA*Bd~A literal 5245 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 diff --git a/app/src/main/res/mipmap-xhdpi/ic_banner_foreground.png b/app/src/main/res/mipmap-xhdpi/ic_banner_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..1bcf6a7a568dc1ad5c66b505c6d0edcd10ce06ae GIT binary patch literal 21750 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

ki1( zwmy>Dtjz6t$)$*2-B-{dDY%}2?QmklO2xSP!#|V~PD*Ut*IqUMLh-fhm#6kR*}6|m z+7fpD+|v&Qe1hse{)s_G$GukZ>C`=Y{V`3`^+2%Vy7vm9$EH1%i>U5-cVSKb3WuKA zXD(EkL^Axn_u+(%;-`%VFPyvhF4yE%EMI@$mE2{AnA^TgP&AX_y&LfG`IU{OpUq2* zgSs+epSI09Dg9W@cuQ=~M6a6>S4|{%+WJ5{9S;^9Nn*K>U?8*c#u{tTfu9K(ULPJN zWS%SjPz#z=XiHmYd32@Xtk0mM``DZ}U!3#kion@QK4s7epplt+g;^XR=D`b~v+5*x v+;u=xFoy-Z&;Bv~f5!gvdyl{0|1-XOzf;}1_;V8j0|SGntDnm{r-UW|Hxo)W literal 0 HcmV?d00001 diff --git a/app/src/main/res/values/style.xml b/app/src/main/res/values/style.xml index 63ac05e8..e2c009ee 100644 --- a/app/src/main/res/values/style.xml +++ b/app/src/main/res/values/style.xml @@ -65,7 +65,7 @@ ?attr/colorOnBackground ?attr/colorSurface wrap_content - wrap_content + match_parent @drawable/shape_corner_16dp true true