From 33bb60baadd3a4da42badd55c8e0b0e05177b4ce Mon Sep 17 00:00:00 2001 From: Finnley Somdahl <87634197+rebelonion@users.noreply.github.com> Date: Fri, 12 Jan 2024 22:41:49 -0600 Subject: [PATCH] download settings --- .../ani/dantotsu/settings/SettingsActivity.kt | 60 ++++- app/src/main/res/layout/activity_settings.xml | 244 +++++++++++++----- app/src/main/res/values/strings.xml | 4 + 3 files changed, 244 insertions(+), 64 deletions(-) diff --git a/app/src/main/java/ani/dantotsu/settings/SettingsActivity.kt b/app/src/main/java/ani/dantotsu/settings/SettingsActivity.kt index d20afc39..6ee80542 100644 --- a/app/src/main/java/ani/dantotsu/settings/SettingsActivity.kt +++ b/app/src/main/java/ani/dantotsu/settings/SettingsActivity.kt @@ -15,15 +15,21 @@ import android.widget.ArrayAdapter import android.widget.TextView import android.widget.Toast import androidx.activity.OnBackPressedCallback +import androidx.annotation.OptIn import androidx.appcompat.app.AppCompatActivity import androidx.core.content.ContextCompat import androidx.core.view.updateLayoutParams import androidx.lifecycle.lifecycleScope +import androidx.media3.common.util.UnstableApi +import androidx.media3.exoplayer.offline.DownloadService import ani.dantotsu.* import ani.dantotsu.connections.anilist.Anilist import ani.dantotsu.connections.discord.Discord import ani.dantotsu.connections.mal.MAL import ani.dantotsu.databinding.ActivitySettingsBinding +import ani.dantotsu.download.DownloadedType +import ani.dantotsu.download.DownloadsManager +import ani.dantotsu.download.video.ExoplayerDownloadService import ani.dantotsu.others.AppUpdater import ani.dantotsu.others.CustomBottomDialog import ani.dantotsu.others.LangSet @@ -61,7 +67,7 @@ class SettingsActivity : AppCompatActivity(), SimpleDialog.OnDialogResultListen private val networkPreferences = Injekt.get() private var cursedCounter = 0 - @SuppressLint("SetTextI18n") + @OptIn(UnstableApi::class) @SuppressLint("SetTextI18n") override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) LangSet.setLocale(this) @@ -242,6 +248,58 @@ class SettingsActivity : AppCompatActivity(), SimpleDialog.OnDialogResultListen dialog.window?.setDimAmount(0.8f) } + binding.purgeAnimeDownloads.setOnClickListener { + val dialog = AlertDialog.Builder(this, R.style.MyPopup) + .setTitle("Purge Anime Downloads") + .setMessage("Are you sure you want to purge all anime downloads?") + .setPositiveButton("Yes") { dialog, _ -> + val downloadsManager = Injekt.get() + downloadsManager.purgeDownloads(DownloadedType.Type.ANIME) + DownloadService.sendRemoveAllDownloads(this, ExoplayerDownloadService::class.java, false) + dialog.dismiss() + } + .setNegativeButton("No") { dialog, _ -> + dialog.dismiss() + } + .create() + dialog.window?.setDimAmount(0.8f) + dialog.show() + } + + binding.purgeMangaDownloads.setOnClickListener { + val dialog = AlertDialog.Builder(this, R.style.MyPopup) + .setTitle("Purge Manga Downloads") + .setMessage("Are you sure you want to purge all manga downloads?") + .setPositiveButton("Yes") { dialog, _ -> + val downloadsManager = Injekt.get() + downloadsManager.purgeDownloads(DownloadedType.Type.MANGA) + dialog.dismiss() + } + .setNegativeButton("No") { dialog, _ -> + dialog.dismiss() + } + .create() + dialog.window?.setDimAmount(0.8f) + dialog.show() + } + + binding.purgeNovelDownloads.setOnClickListener { + val dialog = AlertDialog.Builder(this, R.style.MyPopup) + .setTitle("Purge Novel Downloads") + .setMessage("Are you sure you want to purge all novel downloads?") + .setPositiveButton("Yes") { dialog, _ -> + val downloadsManager = Injekt.get() + downloadsManager.purgeDownloads(DownloadedType.Type.NOVEL) + dialog.dismiss() + } + .setNegativeButton("No") { dialog, _ -> + dialog.dismiss() + } + .create() + dialog.window?.setDimAmount(0.8f) + dialog.show() + } + binding.settingsForceLegacyInstall.isChecked = extensionInstaller.get() == BasePreferences.ExtensionInstaller.LEGACY binding.settingsForceLegacyInstall.setOnCheckedChangeListener { _, isChecked -> diff --git a/app/src/main/res/layout/activity_settings.xml b/app/src/main/res/layout/activity_settings.xml index 4cddd728..ba6b8cfc 100644 --- a/app/src/main/res/layout/activity_settings.xml +++ b/app/src/main/res/layout/activity_settings.xml @@ -225,11 +225,12 @@ + android:padding="16dp" + android:text="Requires Android 12+" + android:textColor="?attr/colorSecondary" /> + + android:text="@string/custom_theme" /> + app:srcCompat="@drawable/ic_anilist" + app:tint="?attr/colorPrimary" /> + android:textColor="?attr/colorSecondary" + android:textSize="16sp" /> + app:srcCompat="@drawable/ic_myanimelist" + app:tint="?attr/colorPrimary" /> + android:textColor="?attr/colorSecondary" + android:textSize="16sp" /> + android:textColor="?attr/colorSecondary" + android:textSize="16sp" /> + + + + +