From a3a5669227ec8181ed05f9da3df9e5b446d6832d Mon Sep 17 00:00:00 2001 From: zaednasr <75589932+zaednasr@users.noreply.github.com> Date: Sun, 1 Sep 2024 15:57:43 +0200 Subject: [PATCH] test --- .gitignore | 1 + app/build.gradle | 2 +- .../java/com/deniscerri/ytdl/util/UiUtil.kt | 48 ++++++++++--------- keystore.properties | 8 ++++ 4 files changed, 35 insertions(+), 24 deletions(-) create mode 100644 keystore.properties diff --git a/.gitignore b/.gitignore index 3b4b454b..68fa944b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ *.iml .gradle /local.properties +/keystore.properties /.idea .DS_Store /build diff --git a/app/build.gradle b/app/build.gradle index 317b33fe..97aaa623 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -27,7 +27,7 @@ android { compileSdk 34 try { - def propertiesFile = rootProject.file("local.properties") + def propertiesFile = rootProject.file("keystore.properties") if(propertiesFile.text != ""){ properties.load(new FileInputStream(propertiesFile)) diff --git a/app/src/main/java/com/deniscerri/ytdl/util/UiUtil.kt b/app/src/main/java/com/deniscerri/ytdl/util/UiUtil.kt index bcefc6d5..a9d50b5b 100644 --- a/app/src/main/java/com/deniscerri/ytdl/util/UiUtil.kt +++ b/app/src/main/java/com/deniscerri/ytdl/util/UiUtil.kt @@ -6,13 +6,10 @@ import android.animation.ValueAnimator import android.annotation.SuppressLint import android.app.Activity import android.content.ClipData -import android.content.ClipData.Item import android.content.ClipboardManager import android.content.Context import android.content.DialogInterface import android.content.Intent -import android.content.res.ColorStateList -import android.graphics.Canvas import android.net.Uri import android.os.Build import android.text.Editable @@ -37,36 +34,26 @@ import androidx.annotation.OptIn import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.content.res.AppCompatResources -import androidx.cardview.widget.CardView -import androidx.compose.ui.graphics.Color import androidx.constraintlayout.widget.ConstraintLayout -import androidx.core.content.FileProvider +import androidx.core.text.HtmlCompat +import androidx.core.text.parseAsHtml import androidx.core.view.isVisible import androidx.core.widget.doOnTextChanged -import androidx.documentfile.provider.DocumentFile import androidx.fragment.app.FragmentManager import androidx.lifecycle.LifecycleOwner import androidx.preference.PreferenceManager -import androidx.recyclerview.widget.GridLayoutManager -import androidx.recyclerview.widget.ItemTouchHelper -import androidx.recyclerview.widget.RecyclerView import com.afollestad.materialdialogs.utils.MDUtil.getStringArray +import com.deniscerri.ytdl.MainActivity import com.deniscerri.ytdl.R import com.deniscerri.ytdl.database.models.CommandTemplate import com.deniscerri.ytdl.database.models.DownloadItem import com.deniscerri.ytdl.database.models.Format import com.deniscerri.ytdl.database.models.HistoryItem -import com.deniscerri.ytdl.database.models.RestoreAppDataItem import com.deniscerri.ytdl.database.models.TemplateShortcut import com.deniscerri.ytdl.database.repository.DownloadRepository import com.deniscerri.ytdl.database.viewmodel.CommandTemplateViewModel import com.deniscerri.ytdl.database.viewmodel.DownloadViewModel -import com.deniscerri.ytdl.database.viewmodel.HistoryViewModel -import com.deniscerri.ytdl.database.viewmodel.ResultViewModel -import com.deniscerri.ytdl.ui.adapter.AlreadyExistsAdapter -import com.deniscerri.ytdl.ui.downloadcard.ConfigureDownloadBottomSheetDialog import com.deniscerri.ytdl.ui.downloadcard.VideoCutListener -import com.deniscerri.ytdl.util.Extensions.enableFastScroll import com.deniscerri.ytdl.util.Extensions.enableTextHighlight import com.deniscerri.ytdl.util.Extensions.getMediaDuration import com.deniscerri.ytdl.util.Extensions.toStringDuration @@ -75,7 +62,6 @@ import com.deniscerri.ytdl.util.extractors.YTDLPUtil import com.google.android.material.badge.BadgeDrawable import com.google.android.material.badge.BadgeUtils import com.google.android.material.badge.ExperimentalBadgeUtils -import com.google.android.material.bottomappbar.BottomAppBar import com.google.android.material.bottomsheet.BottomSheetBehavior import com.google.android.material.bottomsheet.BottomSheetDialog import com.google.android.material.button.MaterialButton @@ -91,21 +77,18 @@ import com.google.android.material.materialswitch.MaterialSwitch import com.google.android.material.snackbar.Snackbar import com.google.android.material.textfield.TextInputLayout import com.google.android.material.textfield.TextInputLayout.END_ICON_NONE -import com.google.android.material.textfield.TextInputLayout.EndIconMode import com.google.android.material.timepicker.MaterialTimePicker import com.google.android.material.timepicker.TimeFormat +import com.yausername.youtubedl_android.YoutubeDL import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.runBlocking import kotlinx.coroutines.withContext -import kotlinx.serialization.json.JsonObject import java.io.File import java.text.SimpleDateFormat import java.util.Calendar import java.util.Locale -import java.util.Queue -import java.util.function.Predicate object UiUtil { @@ -1588,9 +1571,12 @@ object UiUtil { fun handleNoResults(context: Activity, message: String, continueAnyway: Boolean = false, continued: () -> Unit, closed: () -> Unit) { + val updateYTDLP = "${context.getString(R.string.update_ytdl)}" + .parseAsHtml(HtmlCompat.FROM_HTML_MODE_COMPACT) + val errDialog = MaterialAlertDialogBuilder(context) .setTitle(R.string.no_results) - .setMessage(message) + .setMessage(message + "\n\n" + updateYTDLP) errDialog.setPositiveButton(R.string.copy_log) { d:DialogInterface?, _:Int -> val clipboard: ClipboardManager = context.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager @@ -1608,7 +1594,23 @@ object UiUtil { closed() } - errDialog.show() + val dialog = errDialog.show() + dialog.findViewById(android.R.id.message)?.setOnClickListener { + dialog.cancel() + CoroutineScope(Dispatchers.IO).launch { + val res = UpdateUtil(context).updateYoutubeDL() + if (res == YoutubeDL.UpdateStatus.DONE) { + val version = YoutubeDL.getInstance().version(context) + withContext(Dispatchers.Main){ + Toast.makeText(context, context.getString(R.string.ytld_update_success) + " [${version}]", Toast.LENGTH_LONG).show() + } + }else { + withContext(Dispatchers.Main) { + Toast.makeText(context, context.getString(R.string.you_are_in_latest_version), Toast.LENGTH_SHORT).show() + } + } + } + } } fun showErrorDialog(context: Context, it: String){ diff --git a/keystore.properties b/keystore.properties new file mode 100644 index 00000000..c684a2a0 --- /dev/null +++ b/keystore.properties @@ -0,0 +1,8 @@ +## This file must *NOT* be checked into Version Control Systems, +# as it contains information specific to your local configuration. +# +# Location of the SDK. This is only used by Gradle. +# For customization when using a Version Control System, please read the +# header note. +#Wed Nov 23 15:28:54 CET 2022 +signingConfig.storeFile=C\:/Users/denis/androidkeystore/androidstudio.jks