From 98a3a1107b2820bbb3cbd9631062eec748957475 Mon Sep 17 00:00:00 2001 From: aayush262 <99584765+aayush2622@users.noreply.github.com> Date: Sun, 31 Dec 2023 12:55:03 +0530 Subject: [PATCH] =?UTF-8?q?Title=F0=9F=98=82=F0=9F=98=82=20(#109)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * small changes * 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 * import fix * alter dialog * wont refresh if nothing is changed --- app/src/main/AndroidManifest.xml | 2 +- .../download/manga/OfflineMangaFragment.kt | 3 + .../ani/dantotsu/download/video/Helper.kt | 2 +- .../ani/dantotsu/home/AnimePageAdapter.kt | 2 - .../ani/dantotsu/home/MangaPageAdapter.kt | 3 - .../dantotsu/media/anime/AnimeWatchAdapter.kt | 128 ++++++---- .../media/anime/CustomCastThemeFactory.kt | 4 +- .../dantotsu/media/manga/MangaReadAdapter.kt | 222 ++++++++++------- .../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 +- 19 files changed, 516 insertions(+), 284 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/download/video/Helper.kt b/app/src/main/java/ani/dantotsu/download/video/Helper.kt index 8d8b52c6..48909107 100644 --- a/app/src/main/java/ani/dantotsu/download/video/Helper.kt +++ b/app/src/main/java/ani/dantotsu/download/video/Helper.kt @@ -246,7 +246,7 @@ object Helper { .queryDownload(title, episode, DownloadedType.Type.ANIME) if (downloadCheck) { - AlertDialog.Builder(context) + AlertDialog.Builder(context , R.style.MyPopup) .setTitle("Download Exists") .setMessage("A download for this episode already exists. Do you want to overwrite it?") .setPositiveButton("Yes") { _, _ -> 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..c6a2240a 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,76 @@ 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 run = false + 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" + run = true + } + //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" + run = true + } + dialogBinding.animeSourceGrid.setOnClickListener { + selected(it as ImageButton) + style = 1 + dialogBinding.layoutText.text = "Grid" + run = true + } + dialogBinding.animeSourceCompact.setOnClickListener { + selected(it as ImageButton) + style = 2 + dialogBinding.layoutText.text = "Compact" + run = true + } + + //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") { _, _ -> + if (run) 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 +392,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 > 1) binding?.animeSourceLanguageContainer?.visibility = View.VISIBLE else binding?.animeSourceLanguageContainer?.visibility = View.GONE + + binding?.animeSourceLanguage?.setAdapter(adapter) } } diff --git a/app/src/main/java/ani/dantotsu/media/anime/CustomCastThemeFactory.kt b/app/src/main/java/ani/dantotsu/media/anime/CustomCastThemeFactory.kt index 850072b8..72239043 100644 --- a/app/src/main/java/ani/dantotsu/media/anime/CustomCastThemeFactory.kt +++ b/app/src/main/java/ani/dantotsu/media/anime/CustomCastThemeFactory.kt @@ -31,7 +31,7 @@ class CustomMediaRouterChooserDialogFragment: MediaRouteChooserDialogFragment() context: Context, savedInstanceState: Bundle? ): MediaRouteChooserDialog = - MediaRouteChooserDialog(context) + MediaRouteChooserDialog(context, R.style.MyPopup) } class CustomMediaRouteControllerDialogFragment: MediaRouteControllerDialogFragment() { @@ -39,5 +39,5 @@ class CustomMediaRouteControllerDialogFragment: MediaRouteControllerDialogFragme context: Context, savedInstanceState: Bundle? ): MediaRouteControllerDialog = - MediaRouteControllerDialog(context, R.style.ThemeOverlay_Dantotsu_MediaRouter) + MediaRouteControllerDialog(context, R.style.MyPopup) } \ No newline at end of file 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..8aa03489 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: 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,130 @@ 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 run = false + 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" + run = true } - // 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" + run = true + } + dialogBinding.animeSourceCompact.setOnClickListener { + selected(it as ImageButton) + style = 1 + dialogBinding.layoutText.text = "Compact" + run = true + } + //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 = AlertDialog.Builder(fragment.requireContext() , R.style.MyPopup) + .setTitle("Options") + .setView(dialogView) + .setPositiveButton("OK") { _, _ -> + if(run) 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 +422,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 > 1) binding?.animeSourceLanguageContainer?.visibility = View.VISIBLE else binding?.animeSourceLanguageContainer?.visibility = View.GONE + + 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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 D*Bd~A literal 5245 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 ISi9i=0%3ODF8}}l 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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 IM6N<$f;SUNHUIzs 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