test
This commit is contained in:
parent
e587ae56c2
commit
a3a5669227
4 changed files with 35 additions and 24 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -1,6 +1,7 @@
|
||||||
*.iml
|
*.iml
|
||||||
.gradle
|
.gradle
|
||||||
/local.properties
|
/local.properties
|
||||||
|
/keystore.properties
|
||||||
/.idea
|
/.idea
|
||||||
.DS_Store
|
.DS_Store
|
||||||
/build
|
/build
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,7 @@ android {
|
||||||
compileSdk 34
|
compileSdk 34
|
||||||
|
|
||||||
try {
|
try {
|
||||||
def propertiesFile = rootProject.file("local.properties")
|
def propertiesFile = rootProject.file("keystore.properties")
|
||||||
if(propertiesFile.text != ""){
|
if(propertiesFile.text != ""){
|
||||||
properties.load(new FileInputStream(propertiesFile))
|
properties.load(new FileInputStream(propertiesFile))
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,13 +6,10 @@ import android.animation.ValueAnimator
|
||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
import android.app.Activity
|
import android.app.Activity
|
||||||
import android.content.ClipData
|
import android.content.ClipData
|
||||||
import android.content.ClipData.Item
|
|
||||||
import android.content.ClipboardManager
|
import android.content.ClipboardManager
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.DialogInterface
|
import android.content.DialogInterface
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.content.res.ColorStateList
|
|
||||||
import android.graphics.Canvas
|
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import android.text.Editable
|
import android.text.Editable
|
||||||
|
|
@ -37,36 +34,26 @@ import androidx.annotation.OptIn
|
||||||
import androidx.appcompat.app.AlertDialog
|
import androidx.appcompat.app.AlertDialog
|
||||||
import androidx.appcompat.app.AppCompatActivity
|
import androidx.appcompat.app.AppCompatActivity
|
||||||
import androidx.appcompat.content.res.AppCompatResources
|
import androidx.appcompat.content.res.AppCompatResources
|
||||||
import androidx.cardview.widget.CardView
|
|
||||||
import androidx.compose.ui.graphics.Color
|
|
||||||
import androidx.constraintlayout.widget.ConstraintLayout
|
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.view.isVisible
|
||||||
import androidx.core.widget.doOnTextChanged
|
import androidx.core.widget.doOnTextChanged
|
||||||
import androidx.documentfile.provider.DocumentFile
|
|
||||||
import androidx.fragment.app.FragmentManager
|
import androidx.fragment.app.FragmentManager
|
||||||
import androidx.lifecycle.LifecycleOwner
|
import androidx.lifecycle.LifecycleOwner
|
||||||
import androidx.preference.PreferenceManager
|
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.afollestad.materialdialogs.utils.MDUtil.getStringArray
|
||||||
|
import com.deniscerri.ytdl.MainActivity
|
||||||
import com.deniscerri.ytdl.R
|
import com.deniscerri.ytdl.R
|
||||||
import com.deniscerri.ytdl.database.models.CommandTemplate
|
import com.deniscerri.ytdl.database.models.CommandTemplate
|
||||||
import com.deniscerri.ytdl.database.models.DownloadItem
|
import com.deniscerri.ytdl.database.models.DownloadItem
|
||||||
import com.deniscerri.ytdl.database.models.Format
|
import com.deniscerri.ytdl.database.models.Format
|
||||||
import com.deniscerri.ytdl.database.models.HistoryItem
|
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.models.TemplateShortcut
|
||||||
import com.deniscerri.ytdl.database.repository.DownloadRepository
|
import com.deniscerri.ytdl.database.repository.DownloadRepository
|
||||||
import com.deniscerri.ytdl.database.viewmodel.CommandTemplateViewModel
|
import com.deniscerri.ytdl.database.viewmodel.CommandTemplateViewModel
|
||||||
import com.deniscerri.ytdl.database.viewmodel.DownloadViewModel
|
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.ui.downloadcard.VideoCutListener
|
||||||
import com.deniscerri.ytdl.util.Extensions.enableFastScroll
|
|
||||||
import com.deniscerri.ytdl.util.Extensions.enableTextHighlight
|
import com.deniscerri.ytdl.util.Extensions.enableTextHighlight
|
||||||
import com.deniscerri.ytdl.util.Extensions.getMediaDuration
|
import com.deniscerri.ytdl.util.Extensions.getMediaDuration
|
||||||
import com.deniscerri.ytdl.util.Extensions.toStringDuration
|
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.BadgeDrawable
|
||||||
import com.google.android.material.badge.BadgeUtils
|
import com.google.android.material.badge.BadgeUtils
|
||||||
import com.google.android.material.badge.ExperimentalBadgeUtils
|
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.BottomSheetBehavior
|
||||||
import com.google.android.material.bottomsheet.BottomSheetDialog
|
import com.google.android.material.bottomsheet.BottomSheetDialog
|
||||||
import com.google.android.material.button.MaterialButton
|
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.snackbar.Snackbar
|
||||||
import com.google.android.material.textfield.TextInputLayout
|
import com.google.android.material.textfield.TextInputLayout
|
||||||
import com.google.android.material.textfield.TextInputLayout.END_ICON_NONE
|
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.MaterialTimePicker
|
||||||
import com.google.android.material.timepicker.TimeFormat
|
import com.google.android.material.timepicker.TimeFormat
|
||||||
|
import com.yausername.youtubedl_android.YoutubeDL
|
||||||
import kotlinx.coroutines.CoroutineScope
|
import kotlinx.coroutines.CoroutineScope
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import kotlinx.coroutines.runBlocking
|
import kotlinx.coroutines.runBlocking
|
||||||
import kotlinx.coroutines.withContext
|
import kotlinx.coroutines.withContext
|
||||||
import kotlinx.serialization.json.JsonObject
|
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.text.SimpleDateFormat
|
import java.text.SimpleDateFormat
|
||||||
import java.util.Calendar
|
import java.util.Calendar
|
||||||
import java.util.Locale
|
import java.util.Locale
|
||||||
import java.util.Queue
|
|
||||||
import java.util.function.Predicate
|
|
||||||
|
|
||||||
|
|
||||||
object UiUtil {
|
object UiUtil {
|
||||||
|
|
@ -1588,9 +1571,12 @@ object UiUtil {
|
||||||
|
|
||||||
|
|
||||||
fun handleNoResults(context: Activity, message: String, continueAnyway: Boolean = false, continued: () -> Unit, closed: () -> Unit) {
|
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)
|
val errDialog = MaterialAlertDialogBuilder(context)
|
||||||
.setTitle(R.string.no_results)
|
.setTitle(R.string.no_results)
|
||||||
.setMessage(message)
|
.setMessage(message + "\n\n" + updateYTDLP)
|
||||||
|
|
||||||
errDialog.setPositiveButton(R.string.copy_log) { d:DialogInterface?, _:Int ->
|
errDialog.setPositiveButton(R.string.copy_log) { d:DialogInterface?, _:Int ->
|
||||||
val clipboard: ClipboardManager = context.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
|
val clipboard: ClipboardManager = context.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
|
||||||
|
|
@ -1608,7 +1594,23 @@ object UiUtil {
|
||||||
closed()
|
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){
|
fun showErrorDialog(context: Context, it: String){
|
||||||
|
|
|
||||||
8
keystore.properties
Normal file
8
keystore.properties
Normal 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
|
||||||
Loading…
Reference in a new issue