This commit is contained in:
zaednasr 2024-09-01 15:57:43 +02:00
parent e587ae56c2
commit a3a5669227
No known key found for this signature in database
GPG key ID: 92B1DE23AD3D0E9E
4 changed files with 35 additions and 24 deletions

1
.gitignore vendored
View file

@ -1,6 +1,7 @@
*.iml
.gradle
/local.properties
/keystore.properties
/.idea
.DS_Store
/build

View file

@ -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))

View file

@ -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 = "<span style='color:#d43c3b';>${context.getString(R.string.update_ytdl)}</span>"
.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<View>(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){

8
keystore.properties Normal file
View file

@ -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