remove unused components
This commit is contained in:
parent
07caaf98d7
commit
2bd2db60b6
117 changed files with 258 additions and 648 deletions
|
|
@ -134,6 +134,7 @@ dependencies {
|
|||
implementation 'androidx.preference:preference:1.2.0'
|
||||
implementation "androidx.navigation:navigation-fragment-ktx:$navVer"
|
||||
implementation "androidx.navigation:navigation-ui-ktx:$navVer"
|
||||
implementation "androidx.navigation:navigation-dynamic-features-fragment:$navVer"
|
||||
implementation 'androidx.core:core-ktx:1.10.0'
|
||||
implementation 'androidx.test.ext:junit-ktx:1.1.5'
|
||||
implementation 'androidx.benchmark:benchmark-macro:1.1.1'
|
||||
|
|
@ -141,13 +142,13 @@ dependencies {
|
|||
androidTestImplementation "junit:junit:$junitVer"
|
||||
androidTestImplementation "androidx.test.ext:junit:$androidJunitVer"
|
||||
androidTestImplementation "androidx.test.espresso:espresso-core:$espressoVer"
|
||||
androidTestImplementation "androidx.benchmark:benchmark-macro-junit4:1.2.0-alpha13"
|
||||
androidTestImplementation "androidx.benchmark:benchmark-macro-junit4:1.2.0-alpha14"
|
||||
androidTestImplementation "androidx.test:runner:1.5.2"
|
||||
androidTestImplementation "androidx.test:core:1.5.0"
|
||||
androidTestImplementation "androidx.test:rules:1.5.0"
|
||||
androidTestImplementation "androidx.navigation:navigation-testing:$navVer"
|
||||
|
||||
implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'
|
||||
implementation "io.reactivex.rxjava2:rxandroid:2.1.1"
|
||||
implementation "com.devbrackets.android:exomedia:4.3.0"
|
||||
|
||||
implementation("androidx.cardview:cardview:1.0.0")
|
||||
|
|
@ -173,9 +174,9 @@ dependencies {
|
|||
implementation "com.squareup.retrofit2:retrofit:$retrofitVer"
|
||||
implementation "com.squareup.retrofit2:converter-gson:$retrofitVer"
|
||||
implementation "com.squareup.okhttp3:okhttp:5.0.0-alpha.10"
|
||||
implementation 'com.squareup.okhttp3:logging-interceptor:5.0.0-alpha.11'
|
||||
implementation "com.squareup.okhttp3:logging-interceptor:4.7.2"
|
||||
|
||||
implementation 'org.jetbrains.kotlinx:kotlinx-serialization-json:1.5.0'
|
||||
implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.5.0"
|
||||
implementation "com.google.android.exoplayer:exoplayer:2.18.6"
|
||||
implementation 'it.xabaras.android:recyclerview-swipedecorator:1.4'
|
||||
implementation "androidx.lifecycle:lifecycle-livedata-ktx:2.6.1"
|
||||
|
|
|
|||
|
|
@ -1,19 +1,13 @@
|
|||
package com.deniscerri.ytdlnis
|
||||
|
||||
import android.app.Application
|
||||
import android.app.UiModeManager.MODE_NIGHT_NO
|
||||
import android.app.UiModeManager.MODE_NIGHT_YES
|
||||
import android.widget.Toast
|
||||
import androidx.appcompat.app.AppCompatDelegate
|
||||
import androidx.appcompat.app.AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM
|
||||
import androidx.core.content.edit
|
||||
import androidx.preference.PreferenceManager
|
||||
import androidx.work.Configuration
|
||||
import androidx.work.WorkManager
|
||||
import com.deniscerri.ytdlnis.util.NotificationUtil
|
||||
import com.deniscerri.ytdlnis.util.UpdateUtil
|
||||
import com.google.android.material.color.DynamicColors
|
||||
import com.google.android.material.snackbar.Snackbar
|
||||
import com.yausername.aria2c.Aria2c
|
||||
import com.yausername.ffmpeg.FFmpeg
|
||||
import com.yausername.youtubedl_android.YoutubeDL
|
||||
|
|
|
|||
|
|
@ -175,6 +175,16 @@ class MainActivity : BaseActivity() {
|
|||
}
|
||||
}
|
||||
cookieViewModel.updateCookiesFile()
|
||||
// lifecycleScope.launch(Dispatchers.IO){
|
||||
// val active = downloadViewModel.getActiveDownloads()
|
||||
// if (active.isNotEmpty()){
|
||||
// val wm = WorkManager.getInstance(this@MainActivity)
|
||||
// active.forEach {
|
||||
// if (wm.getWorkInfosByTag())
|
||||
// }
|
||||
// WorkManager.getInstance(this@MainActivity).get
|
||||
// }
|
||||
// }
|
||||
val intent = intent
|
||||
handleIntents(intent)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22,7 +22,6 @@ import com.google.android.material.card.MaterialCardView
|
|||
import com.google.android.material.chip.Chip
|
||||
import com.google.android.material.progressindicator.LinearProgressIndicator
|
||||
import com.google.android.material.shape.CornerFamily
|
||||
import com.google.android.material.shape.MaterialShapeDrawable
|
||||
import com.google.android.material.shape.ShapeAppearanceModel
|
||||
import com.squareup.picasso.Picasso
|
||||
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ import com.deniscerri.ytdlnis.database.viewmodel.DownloadViewModel
|
|||
import com.deniscerri.ytdlnis.util.FileUtil
|
||||
import com.google.android.material.button.MaterialButton
|
||||
import com.squareup.picasso.Picasso
|
||||
import java.util.*
|
||||
import java.util.Locale
|
||||
|
||||
class ConfigureMultipleDownloadsAdapter(onItemClickListener: OnItemClickListener, activity: Activity) : ListAdapter<DownloadItem?, ConfigureMultipleDownloadsAdapter.ViewHolder>(AsyncDifferConfig.Builder(DIFF_CALLBACK).build()) {
|
||||
private val onItemClickListener: OnItemClickListener
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@ import android.os.Looper
|
|||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.FrameLayout
|
||||
import android.widget.ImageView
|
||||
import android.widget.TextView
|
||||
import androidx.recyclerview.widget.AsyncDifferConfig
|
||||
|
|
@ -16,13 +15,11 @@ import androidx.recyclerview.widget.ListAdapter
|
|||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.deniscerri.ytdlnis.R
|
||||
import com.deniscerri.ytdlnis.database.models.DownloadItem
|
||||
import com.deniscerri.ytdlnis.database.models.HistoryItem
|
||||
import com.deniscerri.ytdlnis.database.repository.DownloadRepository
|
||||
import com.deniscerri.ytdlnis.util.FileUtil
|
||||
import com.google.android.material.button.MaterialButton
|
||||
import com.google.android.material.card.MaterialCardView
|
||||
import com.squareup.picasso.Picasso
|
||||
import java.util.ArrayList
|
||||
|
||||
class GenericDownloadAdapter(onItemClickListener: OnItemClickListener, activity: Activity) : ListAdapter<DownloadItem?, GenericDownloadAdapter.ViewHolder>(AsyncDifferConfig.Builder(DIFF_CALLBACK).build()) {
|
||||
private val onItemClickListener: OnItemClickListener
|
||||
|
|
|
|||
|
|
@ -19,7 +19,6 @@ import androidx.recyclerview.widget.ListAdapter
|
|||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.deniscerri.ytdlnis.R
|
||||
import com.deniscerri.ytdlnis.database.models.HistoryItem
|
||||
import com.deniscerri.ytdlnis.database.models.ResultItem
|
||||
import com.deniscerri.ytdlnis.database.viewmodel.DownloadViewModel
|
||||
import com.google.android.material.button.MaterialButton
|
||||
import com.google.android.material.card.MaterialCardView
|
||||
|
|
|
|||
|
|
@ -17,7 +17,6 @@ import androidx.recyclerview.widget.DiffUtil
|
|||
import androidx.recyclerview.widget.ListAdapter
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.deniscerri.ytdlnis.R
|
||||
import com.deniscerri.ytdlnis.database.models.DownloadItem
|
||||
import com.deniscerri.ytdlnis.database.models.ResultItem
|
||||
import com.squareup.picasso.Picasso
|
||||
import java.util.*
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
package com.deniscerri.ytdlnis.database.dao
|
||||
|
||||
import androidx.lifecycle.LiveData
|
||||
import androidx.room.*
|
||||
import com.deniscerri.ytdlnis.database.models.DownloadItem
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
package com.deniscerri.ytdlnis.database.dao
|
||||
|
||||
import androidx.lifecycle.LiveData
|
||||
import androidx.room.*
|
||||
import com.deniscerri.ytdlnis.database.models.ResultItem
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
|
|
|||
|
|
@ -1,10 +1,8 @@
|
|||
package com.deniscerri.ytdlnis.database.repository
|
||||
|
||||
import androidx.lifecycle.LiveData
|
||||
import com.deniscerri.ytdlnis.database.Converters
|
||||
import com.deniscerri.ytdlnis.database.dao.DownloadDao
|
||||
import com.deniscerri.ytdlnis.database.models.DownloadItem
|
||||
import com.deniscerri.ytdlnis.database.models.ResultItem
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
||||
class DownloadRepository(private val downloadDao: DownloadDao) {
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ package com.deniscerri.ytdlnis.database.repository
|
|||
|
||||
import android.content.Context
|
||||
import android.util.Log
|
||||
import androidx.lifecycle.LiveData
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import com.deniscerri.ytdlnis.database.dao.CommandTemplateDao
|
||||
import com.deniscerri.ytdlnis.database.dao.ResultDao
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
package com.deniscerri.ytdlnis.database.viewmodel
|
||||
|
||||
import android.app.Activity
|
||||
import android.app.Application
|
||||
import android.content.Context
|
||||
import android.content.SharedPreferences
|
||||
|
|
@ -11,12 +10,23 @@ import androidx.lifecycle.LiveData
|
|||
import androidx.lifecycle.asLiveData
|
||||
import androidx.lifecycle.viewModelScope
|
||||
import androidx.preference.PreferenceManager
|
||||
import androidx.work.*
|
||||
import androidx.work.Constraints
|
||||
import androidx.work.Data
|
||||
import androidx.work.ExistingWorkPolicy
|
||||
import androidx.work.NetworkType
|
||||
import androidx.work.OneTimeWorkRequestBuilder
|
||||
import androidx.work.WorkManager
|
||||
import com.deniscerri.ytdlnis.App
|
||||
import com.deniscerri.ytdlnis.R
|
||||
import com.deniscerri.ytdlnis.database.DBManager
|
||||
import com.deniscerri.ytdlnis.database.dao.CommandTemplateDao
|
||||
import com.deniscerri.ytdlnis.database.models.*
|
||||
import com.deniscerri.ytdlnis.database.models.AudioPreferences
|
||||
import com.deniscerri.ytdlnis.database.models.CommandTemplate
|
||||
import com.deniscerri.ytdlnis.database.models.DownloadItem
|
||||
import com.deniscerri.ytdlnis.database.models.Format
|
||||
import com.deniscerri.ytdlnis.database.models.HistoryItem
|
||||
import com.deniscerri.ytdlnis.database.models.ResultItem
|
||||
import com.deniscerri.ytdlnis.database.models.VideoPreferences
|
||||
import com.deniscerri.ytdlnis.database.repository.DownloadRepository
|
||||
import com.deniscerri.ytdlnis.work.DownloadWorker
|
||||
import com.google.gson.Gson
|
||||
|
|
|
|||
|
|
@ -1,7 +1,11 @@
|
|||
package com.deniscerri.ytdlnis.database.viewmodel
|
||||
|
||||
import android.app.Application
|
||||
import androidx.lifecycle.*
|
||||
import androidx.lifecycle.AndroidViewModel
|
||||
import androidx.lifecycle.LiveData
|
||||
import androidx.lifecycle.MediatorLiveData
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import androidx.lifecycle.viewModelScope
|
||||
import com.deniscerri.ytdlnis.database.DBManager
|
||||
import com.deniscerri.ytdlnis.database.models.HistoryItem
|
||||
import com.deniscerri.ytdlnis.database.repository.HistoryRepository
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
package com.deniscerri.ytdlnis.database.viewmodel
|
||||
|
||||
import android.app.Activity
|
||||
import android.app.Application
|
||||
import android.content.SharedPreferences
|
||||
import android.util.Log
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@ package com.deniscerri.ytdlnis.receiver
|
|||
import android.content.BroadcastReceiver
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import androidx.work.WorkManager
|
||||
import com.deniscerri.ytdlnis.util.NotificationUtil
|
||||
import com.yausername.youtubedl_android.YoutubeDL
|
||||
|
||||
|
|
@ -13,9 +12,8 @@ class CancelDownloadNotificationReceiver : BroadcastReceiver() {
|
|||
val id = intent.getIntExtra("workID", 0)
|
||||
if (message != null) {
|
||||
val notificationUtil = NotificationUtil(c)
|
||||
|
||||
YoutubeDL.getInstance().destroyProcessById(id.toString())
|
||||
notificationUtil.cancelDownloadNotification(id)
|
||||
YoutubeDL.getInstance().destroyProcessById(id.toString())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -3,7 +3,6 @@ package com.deniscerri.ytdlnis.receiver
|
|||
import android.content.BroadcastReceiver
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import androidx.work.WorkManager
|
||||
import com.deniscerri.ytdlnis.util.NotificationUtil
|
||||
import com.yausername.youtubedl_android.YoutubeDL
|
||||
|
||||
|
|
@ -13,9 +12,8 @@ class PauseDownloadNotificationReceiver : BroadcastReceiver() {
|
|||
if (id != 0) {
|
||||
val title = intent.getStringExtra("title")
|
||||
val notificationUtil = NotificationUtil(c)
|
||||
YoutubeDL.getInstance().destroyProcessById(id.toString())
|
||||
|
||||
notificationUtil.cancelDownloadNotification(id)
|
||||
YoutubeDL.getInstance().destroyProcessById(id.toString())
|
||||
notificationUtil.createResumeDownload(id, title, NotificationUtil.DOWNLOAD_SERVICE_CHANNEL_ID)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@ import android.os.Build
|
|||
import android.os.Bundle
|
||||
import android.view.Window
|
||||
import android.view.WindowManager
|
||||
import android.widget.TextView
|
||||
import android.widget.Toast
|
||||
import androidx.core.view.ViewCompat
|
||||
import androidx.core.view.WindowCompat
|
||||
|
|
@ -22,7 +21,6 @@ import com.google.android.material.bottomsheet.BottomSheetDialog
|
|||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.withContext
|
||||
import kotlin.system.exitProcess
|
||||
|
||||
class ResumeActivity : BaseActivity() {
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
package com.deniscerri.ytdlnis.receiver
|
||||
|
||||
import android.Manifest
|
||||
import android.app.Activity
|
||||
import android.content.Context
|
||||
import android.content.DialogInterface
|
||||
import android.content.Intent
|
||||
|
|
@ -16,10 +15,8 @@ import android.provider.Settings
|
|||
import android.util.Log
|
||||
import android.view.Window
|
||||
import android.view.WindowManager
|
||||
import android.widget.FrameLayout
|
||||
import android.widget.TextView
|
||||
import android.widget.Toast
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.core.app.ActivityCompat
|
||||
import androidx.core.view.ViewCompat
|
||||
import androidx.core.view.WindowCompat
|
||||
|
|
|
|||
|
|
@ -15,7 +15,6 @@ import android.util.Log
|
|||
import android.view.*
|
||||
import android.view.View.*
|
||||
import android.widget.*
|
||||
import androidx.activity.OnBackPressedCallback
|
||||
import androidx.activity.addCallback
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.appcompat.view.ActionMode
|
||||
|
|
@ -27,7 +26,6 @@ import androidx.core.widget.doAfterTextChanged
|
|||
import androidx.fragment.app.Fragment
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import androidx.navigation.fragment.findNavController
|
||||
import androidx.preference.PreferenceManager
|
||||
import androidx.recyclerview.widget.GridLayoutManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
|
|
|
|||
|
|
@ -11,7 +11,6 @@ import android.view.View
|
|||
import android.view.ViewGroup
|
||||
import android.widget.Button
|
||||
import android.widget.Toast
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@ package com.deniscerri.ytdlnis.ui.downloadcard
|
|||
import android.app.Activity
|
||||
import android.content.DialogInterface
|
||||
import android.content.Intent
|
||||
import android.net.Uri
|
||||
import android.os.Bundle
|
||||
import android.text.Editable
|
||||
import android.text.TextWatcher
|
||||
|
|
|
|||
|
|
@ -27,7 +27,6 @@ import com.deniscerri.ytdlnis.database.viewmodel.DownloadViewModel
|
|||
import com.deniscerri.ytdlnis.database.viewmodel.DownloadViewModel.Type
|
||||
import com.deniscerri.ytdlnis.database.viewmodel.ResultViewModel
|
||||
import com.deniscerri.ytdlnis.receiver.ShareActivity
|
||||
import com.deniscerri.ytdlnis.ui.downloads.DownloadQueueActivity
|
||||
import com.deniscerri.ytdlnis.util.FileUtil
|
||||
import com.deniscerri.ytdlnis.util.UiUtil
|
||||
import com.google.android.material.bottomsheet.BottomSheetBehavior
|
||||
|
|
|
|||
|
|
@ -10,7 +10,11 @@ import android.graphics.Color
|
|||
import android.os.Bundle
|
||||
import android.text.format.DateFormat
|
||||
import android.util.DisplayMetrics
|
||||
import android.view.*
|
||||
import android.view.LayoutInflater
|
||||
import android.view.MenuItem
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.view.Window
|
||||
import android.widget.Button
|
||||
import android.widget.TextView
|
||||
import android.widget.Toast
|
||||
|
|
@ -45,7 +49,7 @@ import kotlinx.coroutines.launch
|
|||
import kotlinx.coroutines.runBlocking
|
||||
import kotlinx.coroutines.withContext
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.*
|
||||
import java.util.Locale
|
||||
|
||||
class DownloadMultipleBottomSheetDialog(private var results: List<ResultItem?>, private var items: MutableList<DownloadItem>) : BottomSheetDialogFragment(), ConfigureMultipleDownloadsAdapter.OnItemClickListener, View.OnClickListener,
|
||||
ConfigureDownloadBottomSheetDialog.OnDownloadItemUpdateListener {
|
||||
|
|
|
|||
|
|
@ -12,7 +12,11 @@ import android.view.LayoutInflater
|
|||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.view.inputmethod.InputMethodManager
|
||||
import android.widget.*
|
||||
import android.widget.AdapterView
|
||||
import android.widget.ArrayAdapter
|
||||
import android.widget.AutoCompleteTextView
|
||||
import android.widget.EditText
|
||||
import android.widget.TextView
|
||||
import androidx.activity.result.contract.ActivityResultContracts
|
||||
import androidx.appcompat.app.AlertDialog
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
|
|
|
|||
|
|
@ -1,44 +1,31 @@
|
|||
package com.deniscerri.ytdlnis.ui.downloadcard
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.app.Activity
|
||||
import android.app.Dialog
|
||||
import android.content.*
|
||||
import android.os.Bundle
|
||||
import android.os.Looper
|
||||
import android.text.format.DateFormat
|
||||
import android.util.DisplayMetrics
|
||||
import android.util.Log
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.view.Window
|
||||
import android.widget.*
|
||||
import androidx.constraintlayout.widget.ConstraintLayout
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.core.view.isVisible
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import androidx.preference.PreferenceManager
|
||||
import com.deniscerri.ytdlnis.R
|
||||
import com.deniscerri.ytdlnis.database.models.DownloadItem
|
||||
import com.deniscerri.ytdlnis.database.models.Format
|
||||
import com.deniscerri.ytdlnis.database.viewmodel.DownloadViewModel
|
||||
import com.deniscerri.ytdlnis.database.viewmodel.DownloadViewModel.Type
|
||||
import com.deniscerri.ytdlnis.util.FileUtil
|
||||
import com.deniscerri.ytdlnis.util.InfoUtil
|
||||
import com.deniscerri.ytdlnis.util.UiUtil
|
||||
import com.facebook.shimmer.ShimmerFrameLayout
|
||||
import com.google.android.material.bottomsheet.BottomSheetBehavior
|
||||
import com.google.android.material.bottomsheet.BottomSheetDialog
|
||||
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
|
||||
import com.google.android.material.button.MaterialButton
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.runBlocking
|
||||
import kotlinx.coroutines.withContext
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.*
|
||||
import kotlin.collections.ArrayList
|
||||
|
||||
|
||||
class FormatSelectionBottomSheetDialog(private val items: List<DownloadItem?>, private var formats: List<List<Format>>, private val listener: OnFormatClickListener) : BottomSheetDialogFragment() {
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ package com.deniscerri.ytdlnis.ui.downloadcard
|
|||
|
||||
import android.annotation.SuppressLint
|
||||
import android.app.Dialog
|
||||
import android.content.ClipboardManager
|
||||
import android.content.DialogInterface
|
||||
import android.os.Bundle
|
||||
import android.util.DisplayMetrics
|
||||
|
|
@ -11,7 +10,6 @@ import android.view.MenuItem
|
|||
import android.view.View
|
||||
import android.widget.Button
|
||||
import android.widget.TextView
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.core.widget.doAfterTextChanged
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
|
|
@ -28,7 +26,6 @@ import com.google.android.material.bottomappbar.BottomAppBar
|
|||
import com.google.android.material.bottomsheet.BottomSheetBehavior
|
||||
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
|
||||
import com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton
|
||||
import com.google.android.material.floatingactionbutton.FloatingActionButton
|
||||
import com.google.android.material.textfield.TextInputLayout
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.launch
|
||||
|
|
|
|||
|
|
@ -13,7 +13,6 @@ import android.widget.TextView
|
|||
import androidx.fragment.app.Fragment
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.recyclerview.widget.GridLayoutManager
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import androidx.work.WorkManager
|
||||
import com.deniscerri.ytdlnis.R
|
||||
|
|
@ -27,7 +26,6 @@ import com.deniscerri.ytdlnis.util.FileUtil
|
|||
import com.deniscerri.ytdlnis.util.NotificationUtil
|
||||
import com.google.android.material.progressindicator.LinearProgressIndicator
|
||||
import com.yausername.youtubedl_android.YoutubeDL
|
||||
import kotlinx.coroutines.runBlocking
|
||||
|
||||
|
||||
class ActiveDownloadsFragment() : Fragment(), ActiveDownloadAdapter.OnItemClickListener, OnClickListener {
|
||||
|
|
|
|||
|
|
@ -7,25 +7,26 @@ import android.graphics.Canvas
|
|||
import android.graphics.Color
|
||||
import android.os.Bundle
|
||||
import android.util.DisplayMetrics
|
||||
import android.view.*
|
||||
import android.view.LayoutInflater
|
||||
import android.view.Menu
|
||||
import android.view.MenuItem
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.view.Window
|
||||
import android.widget.Button
|
||||
import android.widget.TextView
|
||||
import android.widget.Toast
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.appcompat.view.ActionMode
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.core.view.forEach
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import androidx.recyclerview.widget.GridLayoutManager
|
||||
import androidx.recyclerview.widget.ItemTouchHelper
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.deniscerri.ytdlnis.MainActivity
|
||||
import com.deniscerri.ytdlnis.R
|
||||
import com.deniscerri.ytdlnis.adapter.GenericDownloadAdapter
|
||||
import com.deniscerri.ytdlnis.database.models.DownloadItem
|
||||
import com.deniscerri.ytdlnis.database.models.HistoryItem
|
||||
import com.deniscerri.ytdlnis.database.viewmodel.DownloadViewModel
|
||||
import com.deniscerri.ytdlnis.databinding.FragmentHomeBinding
|
||||
import com.deniscerri.ytdlnis.ui.downloadcard.DownloadBottomSheetDialog
|
||||
|
|
@ -38,11 +39,7 @@ import com.google.android.material.color.MaterialColors
|
|||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
import com.google.android.material.snackbar.Snackbar
|
||||
import it.xabaras.android.recyclerview.swipedecorator.RecyclerViewSwipeDecorator
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.runBlocking
|
||||
import kotlinx.coroutines.withContext
|
||||
import java.util.ArrayList
|
||||
|
||||
|
||||
class CancelledDownloadsFragment : Fragment(), GenericDownloadAdapter.OnItemClickListener {
|
||||
|
|
|
|||
|
|
@ -6,13 +6,11 @@ import android.os.Bundle
|
|||
import android.view.MenuItem
|
||||
import android.view.View
|
||||
import android.widget.Toast
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import androidx.viewpager2.widget.ViewPager2
|
||||
import androidx.work.WorkManager
|
||||
import androidx.work.await
|
||||
import com.deniscerri.ytdlnis.R
|
||||
import com.deniscerri.ytdlnis.database.repository.DownloadRepository
|
||||
import com.deniscerri.ytdlnis.database.viewmodel.DownloadViewModel
|
||||
|
|
|
|||
|
|
@ -8,7 +8,12 @@ import android.graphics.Canvas
|
|||
import android.graphics.Color
|
||||
import android.os.Bundle
|
||||
import android.util.DisplayMetrics
|
||||
import android.view.*
|
||||
import android.view.LayoutInflater
|
||||
import android.view.Menu
|
||||
import android.view.MenuItem
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.view.Window
|
||||
import android.widget.AdapterView
|
||||
import android.widget.AdapterView.OnItemClickListener
|
||||
import android.widget.Button
|
||||
|
|
@ -20,7 +25,6 @@ import androidx.fragment.app.Fragment
|
|||
import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.recyclerview.widget.GridLayoutManager
|
||||
import androidx.recyclerview.widget.ItemTouchHelper
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.deniscerri.ytdlnis.R
|
||||
import com.deniscerri.ytdlnis.adapter.GenericDownloadAdapter
|
||||
|
|
@ -39,7 +43,6 @@ import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
|||
import com.google.android.material.snackbar.Snackbar
|
||||
import it.xabaras.android.recyclerview.swipedecorator.RecyclerViewSwipeDecorator
|
||||
import kotlinx.coroutines.runBlocking
|
||||
import java.util.ArrayList
|
||||
|
||||
|
||||
class ErroredDownloadsFragment : Fragment(), GenericDownloadAdapter.OnItemClickListener, OnItemClickListener {
|
||||
|
|
|
|||
|
|
@ -13,10 +13,19 @@ import android.os.Looper
|
|||
import android.text.InputType
|
||||
import android.util.DisplayMetrics
|
||||
import android.util.Log
|
||||
import android.view.*
|
||||
import android.view.LayoutInflater
|
||||
import android.view.Menu
|
||||
import android.view.MenuItem
|
||||
import android.view.View
|
||||
import android.view.View.GONE
|
||||
import android.view.View.VISIBLE
|
||||
import android.widget.*
|
||||
import android.view.ViewGroup
|
||||
import android.view.Window
|
||||
import android.widget.Button
|
||||
import android.widget.LinearLayout
|
||||
import android.widget.RelativeLayout
|
||||
import android.widget.TextView
|
||||
import android.widget.Toast
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.appcompat.view.ActionMode
|
||||
import androidx.appcompat.widget.SearchView
|
||||
|
|
@ -26,7 +35,6 @@ import androidx.fragment.app.Fragment
|
|||
import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.recyclerview.widget.GridLayoutManager
|
||||
import androidx.recyclerview.widget.ItemTouchHelper
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.deniscerri.ytdlnis.MainActivity
|
||||
import com.deniscerri.ytdlnis.R
|
||||
|
|
@ -48,12 +56,12 @@ import com.google.android.material.chip.Chip
|
|||
import com.google.android.material.chip.ChipGroup
|
||||
import com.google.android.material.color.MaterialColors
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
import com.google.android.material.snackbar.Snackbar
|
||||
import it.xabaras.android.recyclerview.swipedecorator.RecyclerViewSwipeDecorator
|
||||
import kotlinx.coroutines.runBlocking
|
||||
import java.io.File
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.*
|
||||
import java.util.Calendar
|
||||
import java.util.Locale
|
||||
|
||||
/**
|
||||
* A fragment representing a list of Items.
|
||||
|
|
|
|||
|
|
@ -21,7 +21,6 @@ import androidx.lifecycle.ViewModelProvider
|
|||
import androidx.lifecycle.lifecycleScope
|
||||
import androidx.recyclerview.widget.GridLayoutManager
|
||||
import androidx.recyclerview.widget.ItemTouchHelper
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import androidx.work.WorkManager
|
||||
import com.deniscerri.ytdlnis.R
|
||||
|
|
@ -43,9 +42,9 @@ import it.xabaras.android.recyclerview.swipedecorator.RecyclerViewSwipeDecorator
|
|||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.runBlocking
|
||||
import kotlinx.coroutines.withContext
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.*
|
||||
import java.util.Calendar
|
||||
import java.util.Locale
|
||||
|
||||
|
||||
class QueuedDownloadsFragment : Fragment(), GenericDownloadAdapter.OnItemClickListener {
|
||||
|
|
|
|||
|
|
@ -8,8 +8,6 @@ import android.os.Bundle
|
|||
import android.view.MenuItem
|
||||
import android.view.View
|
||||
import android.widget.RelativeLayout
|
||||
import android.widget.Toast
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import androidx.recyclerview.widget.ItemTouchHelper
|
||||
|
|
|
|||
|
|
@ -12,7 +12,6 @@ import android.view.inputmethod.InputMethodManager
|
|||
import android.widget.EditText
|
||||
import android.widget.RelativeLayout
|
||||
import androidx.appcompat.app.AlertDialog
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.core.widget.doOnTextChanged
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
|
|
@ -24,12 +23,10 @@ import com.deniscerri.ytdlnis.adapter.CookieAdapter
|
|||
import com.deniscerri.ytdlnis.database.models.CookieItem
|
||||
import com.deniscerri.ytdlnis.database.viewmodel.CookieViewModel
|
||||
import com.deniscerri.ytdlnis.ui.BaseActivity
|
||||
import com.deniscerri.ytdlnis.ui.downloadcard.DownloadBottomSheetDialog
|
||||
import com.deniscerri.ytdlnis.util.FileUtil
|
||||
import com.deniscerri.ytdlnis.util.UiUtil
|
||||
import com.google.android.material.appbar.MaterialToolbar
|
||||
import com.google.android.material.chip.Chip
|
||||
import com.google.android.material.color.MaterialColors
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
import com.google.android.material.snackbar.Snackbar
|
||||
import com.google.android.material.textfield.TextInputLayout
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
package com.deniscerri.ytdlnis.ui.more
|
||||
|
||||
import android.app.Activity
|
||||
import android.content.DialogInterface
|
||||
import android.content.Intent
|
||||
import android.content.SharedPreferences
|
||||
|
|
@ -109,11 +108,13 @@ class MoreFragment : Fragment() {
|
|||
mainSharedPreferencesEditor.commit()
|
||||
}
|
||||
mainActivity.finishAndRemoveTask()
|
||||
mainActivity.finishAffinity()
|
||||
exitProcess(0)
|
||||
}
|
||||
terminateDialog.show()
|
||||
}else{
|
||||
mainActivity.finishAndRemoveTask()
|
||||
mainActivity.finishAffinity()
|
||||
exitProcess(0)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -8,23 +8,26 @@ import android.content.SharedPreferences
|
|||
import android.os.Build
|
||||
import android.os.Bundle
|
||||
import android.os.FileObserver
|
||||
import android.os.Looper
|
||||
import android.util.Log
|
||||
import android.view.MenuItem
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.view.Window
|
||||
import android.view.inputmethod.InputMethodManager
|
||||
import android.widget.*
|
||||
import android.widget.EditText
|
||||
import android.widget.ScrollView
|
||||
import android.widget.TextView
|
||||
import android.widget.Toast
|
||||
import androidx.activity.result.contract.ActivityResultContracts
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.constraintlayout.widget.ConstraintLayout
|
||||
import androidx.core.view.forEach
|
||||
import androidx.core.view.get
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import androidx.preference.PreferenceManager
|
||||
import androidx.work.*
|
||||
import androidx.work.Data
|
||||
import androidx.work.ExistingWorkPolicy
|
||||
import androidx.work.OneTimeWorkRequestBuilder
|
||||
import androidx.work.WorkInfo
|
||||
import androidx.work.WorkManager
|
||||
import com.deniscerri.ytdlnis.R
|
||||
import com.deniscerri.ytdlnis.database.viewmodel.CommandTemplateViewModel
|
||||
import com.deniscerri.ytdlnis.ui.BaseActivity
|
||||
|
|
|
|||
|
|
@ -6,7 +6,6 @@ import android.webkit.CookieManager
|
|||
import android.webkit.WebView
|
||||
import android.webkit.WebViewClient
|
||||
import android.widget.Toast
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import com.deniscerri.ytdlnis.R
|
||||
|
|
|
|||
|
|
@ -8,7 +8,6 @@ import android.os.FileObserver
|
|||
import android.view.View
|
||||
import android.widget.ScrollView
|
||||
import android.widget.TextView
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import com.deniscerri.ytdlnis.R
|
||||
import com.deniscerri.ytdlnis.ui.BaseActivity
|
||||
import com.google.android.material.appbar.MaterialToolbar
|
||||
|
|
|
|||
|
|
@ -10,7 +10,6 @@ import android.view.MenuItem
|
|||
import android.view.View
|
||||
import android.widget.RelativeLayout
|
||||
import android.widget.Toast
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.deniscerri.ytdlnis.R
|
||||
|
|
|
|||
|
|
@ -1,65 +1,22 @@
|
|||
package com.deniscerri.ytdlnis.ui.more.settings
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.app.Activity
|
||||
import android.content.Context.POWER_SERVICE
|
||||
import android.content.DialogInterface
|
||||
import android.content.Intent
|
||||
import android.content.SharedPreferences
|
||||
import android.net.Uri
|
||||
import android.os.Build.VERSION
|
||||
import android.os.Build.VERSION_CODES
|
||||
import android.os.Bundle
|
||||
import android.os.Environment
|
||||
import android.os.PowerManager
|
||||
import android.provider.Settings
|
||||
import androidx.activity.result.contract.ActivityResultContracts
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.appcompat.app.AppCompatDelegate
|
||||
import androidx.core.os.LocaleListCompat
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import androidx.preference.EditTextPreference
|
||||
import androidx.preference.ListPreference
|
||||
import androidx.preference.Preference
|
||||
import androidx.preference.PreferenceFragmentCompat
|
||||
import androidx.preference.PreferenceManager
|
||||
import androidx.preference.SeekBarPreference
|
||||
import androidx.preference.SwitchPreferenceCompat
|
||||
import androidx.work.WorkInfo
|
||||
import androidx.work.WorkManager
|
||||
import com.deniscerri.ytdlnis.BuildConfig
|
||||
import com.deniscerri.ytdlnis.MainActivity
|
||||
import com.deniscerri.ytdlnis.R
|
||||
import com.deniscerri.ytdlnis.database.models.CommandTemplate
|
||||
import com.deniscerri.ytdlnis.database.models.CookieItem
|
||||
import com.deniscerri.ytdlnis.database.models.DownloadItem
|
||||
import com.deniscerri.ytdlnis.database.models.HistoryItem
|
||||
import com.deniscerri.ytdlnis.database.models.SearchHistoryItem
|
||||
import com.deniscerri.ytdlnis.database.models.TemplateShortcut
|
||||
import com.deniscerri.ytdlnis.database.viewmodel.CommandTemplateViewModel
|
||||
import com.deniscerri.ytdlnis.database.viewmodel.CookieViewModel
|
||||
import com.deniscerri.ytdlnis.database.viewmodel.DownloadViewModel
|
||||
import com.deniscerri.ytdlnis.database.viewmodel.HistoryViewModel
|
||||
import com.deniscerri.ytdlnis.database.viewmodel.ResultViewModel
|
||||
import com.deniscerri.ytdlnis.util.FileUtil
|
||||
import com.deniscerri.ytdlnis.util.ThemeUtil
|
||||
import com.deniscerri.ytdlnis.util.UpdateUtil
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
import com.google.android.material.snackbar.Snackbar
|
||||
import com.google.gson.Gson
|
||||
import com.google.gson.JsonArray
|
||||
import com.google.gson.JsonObject
|
||||
import com.google.gson.JsonParser
|
||||
import com.yausername.youtubedl_android.YoutubeDL
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.withContext
|
||||
import kotlinx.serialization.json.Json
|
||||
import java.io.BufferedReader
|
||||
import java.io.File
|
||||
import java.io.InputStreamReader
|
||||
import java.time.LocalDateTime
|
||||
import java.util.Locale
|
||||
|
||||
|
||||
|
|
@ -88,7 +45,6 @@ class AppearanceSettingsFragment : BaseSettingsFragment() {
|
|||
}
|
||||
}
|
||||
|
||||
val preferences = PreferenceManager.getDefaultSharedPreferences(requireContext())
|
||||
language = findPreference("app_language")
|
||||
theme = findPreference("ytdlnis_theme")
|
||||
accent = findPreference("theme_accent")
|
||||
|
|
|
|||
|
|
@ -1,6 +1,14 @@
|
|||
package com.deniscerri.ytdlnis.ui.more.settings
|
||||
|
||||
import android.content.DialogInterface
|
||||
import androidx.preference.EditTextPreference
|
||||
import androidx.preference.ListPreference
|
||||
import androidx.preference.MultiSelectListPreference
|
||||
import androidx.preference.Preference
|
||||
import androidx.preference.PreferenceFragmentCompat
|
||||
import com.deniscerri.ytdlnis.R
|
||||
import com.deniscerri.ytdlnis.databinding.DialogTextPreferenceBinding
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
|
||||
|
||||
abstract class BaseSettingsFragment : PreferenceFragmentCompat() {
|
||||
|
|
@ -10,4 +18,76 @@ abstract class BaseSettingsFragment : PreferenceFragmentCompat() {
|
|||
super.onStart()
|
||||
(activity as? SettingsActivity)?.changeTopAppbarTitle(getString(title))
|
||||
}
|
||||
|
||||
//Thanks libretube
|
||||
override fun onDisplayPreferenceDialog(preference: Preference) {
|
||||
when (preference) {
|
||||
/**
|
||||
* Show a [MaterialAlertDialogBuilder] when the preference is a [ListPreference]
|
||||
*/
|
||||
is ListPreference -> {
|
||||
// get the index of the previous selected item
|
||||
val prefIndex = preference.entryValues.indexOf(preference.value)
|
||||
MaterialAlertDialogBuilder(requireContext())
|
||||
.setTitle(preference.title)
|
||||
.setSingleChoiceItems(preference.entries, prefIndex) { dialog, index ->
|
||||
// get the new ListPreference value
|
||||
val newValue = preference.entryValues[index].toString()
|
||||
// invoke the on change listeners
|
||||
if (preference.callChangeListener(newValue)) {
|
||||
preference.value = newValue
|
||||
}
|
||||
dialog.dismiss()
|
||||
}
|
||||
.setNegativeButton(R.string.cancel, null)
|
||||
.show()
|
||||
}
|
||||
is EditTextPreference -> {
|
||||
val binding = DialogTextPreferenceBinding.inflate(layoutInflater)
|
||||
binding.input.setText(preference.text)
|
||||
MaterialAlertDialogBuilder(requireContext())
|
||||
.setTitle(preference.title)
|
||||
.setView(binding.root)
|
||||
.setPositiveButton(android.R.string.ok) { _, _ ->
|
||||
val newValue = binding.input.text.toString()
|
||||
if (preference.callChangeListener(newValue)) {
|
||||
preference.text = newValue
|
||||
}
|
||||
}
|
||||
.setNegativeButton(R.string.cancel, null)
|
||||
.show()
|
||||
}
|
||||
is MultiSelectListPreference -> {
|
||||
val values = preference.entryValues
|
||||
val entries = preference.entries
|
||||
val checkedItems : ArrayList<Boolean> = arrayListOf()
|
||||
values.forEach {
|
||||
if (preference.values.contains(it)) {
|
||||
checkedItems.add(true)
|
||||
}else{
|
||||
checkedItems.add(false)
|
||||
}
|
||||
}
|
||||
MaterialAlertDialogBuilder(requireContext())
|
||||
.setTitle(preference.title)
|
||||
.setMultiChoiceItems(entries, checkedItems.toBooleanArray()) { _, which, isChecked ->
|
||||
checkedItems[which] = isChecked
|
||||
}
|
||||
.setNegativeButton(R.string.cancel, null)
|
||||
.setPositiveButton(R.string.ok) { _: DialogInterface?, _: Int ->
|
||||
preference.values.clear()
|
||||
for (i in 0 until checkedItems.size) {
|
||||
if (checkedItems[i]) {
|
||||
preference.values.add(values[i].toString())
|
||||
}
|
||||
}
|
||||
}
|
||||
.show()
|
||||
}
|
||||
/**
|
||||
* Otherwise show the normal dialog, dialogs for other preference types are not supported yet
|
||||
*/
|
||||
else -> super.onDisplayPreferenceDialog(preference)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -12,7 +12,6 @@ import androidx.preference.Preference
|
|||
import androidx.preference.PreferenceManager
|
||||
import com.deniscerri.ytdlnis.R
|
||||
import com.deniscerri.ytdlnis.util.FileUtil
|
||||
import com.deniscerri.ytdlnis.util.UpdateUtil
|
||||
import com.google.android.material.snackbar.Snackbar
|
||||
import java.io.File
|
||||
|
||||
|
|
|
|||
|
|
@ -7,6 +7,8 @@ import android.content.SharedPreferences
|
|||
import android.os.Bundle
|
||||
import android.os.Environment
|
||||
import androidx.activity.result.contract.ActivityResultContracts
|
||||
import androidx.appcompat.app.AppCompatDelegate
|
||||
import androidx.core.os.LocaleListCompat
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import androidx.navigation.fragment.findNavController
|
||||
|
|
@ -363,6 +365,8 @@ class MainSettingsFragment : PreferenceFragmentCompat() {
|
|||
}
|
||||
finalMessage.append("${getString(R.string.settings)}: ${prefs.count()}\n")
|
||||
}
|
||||
editor.commit()
|
||||
|
||||
//history restore
|
||||
if(json.has("downloads")){
|
||||
val items = json.getAsJsonArray("downloads")
|
||||
|
|
@ -399,6 +403,9 @@ class MainSettingsFragment : PreferenceFragmentCompat() {
|
|||
val item = Gson().fromJson(it.toString().replace("^\"|\"$", ""), DownloadItem::class.java)
|
||||
item.id = 0L
|
||||
cancelled.add(item)
|
||||
withContext(Dispatchers.IO){
|
||||
downloadViewModel.insert(item)
|
||||
}
|
||||
}
|
||||
if(cancelled.isNotEmpty()){
|
||||
finalMessage.append("${getString(R.string.cancelled)}: ${cancelled.count()}\n")
|
||||
|
|
@ -476,16 +483,21 @@ class MainSettingsFragment : PreferenceFragmentCompat() {
|
|||
val intent = Intent(context, MainActivity::class.java)
|
||||
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
|
||||
requireContext().startActivity(intent)
|
||||
if (context is Activity) {
|
||||
(context as Activity).finish()
|
||||
if(json.has("settings")){
|
||||
AppCompatDelegate.setApplicationLocales(LocaleListCompat.forLanguageTags(preferences.getString("app_language", "en")))
|
||||
}
|
||||
activity?.finishAffinity()
|
||||
Runtime.getRuntime().exit(0)
|
||||
}
|
||||
|
||||
// handle the negative button of the alert dialog
|
||||
builder.setNegativeButton(
|
||||
getString(R.string.cancel)
|
||||
) { _: DialogInterface?, _: Int -> }
|
||||
) { _: DialogInterface?, _: Int ->
|
||||
if(json.has("settings")){
|
||||
AppCompatDelegate.setApplicationLocales(LocaleListCompat.forLanguageTags(preferences.getString("app_language", "en")))
|
||||
}
|
||||
}
|
||||
|
||||
val dialog = builder.create()
|
||||
dialog.show()
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ package com.deniscerri.ytdlnis.ui.more.settings
|
|||
|
||||
import android.os.Bundle
|
||||
import androidx.preference.EditTextPreference
|
||||
import androidx.preference.Preference
|
||||
import com.deniscerri.ytdlnis.R
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,20 +1,14 @@
|
|||
package com.deniscerri.ytdlnis.ui.more.settings
|
||||
|
||||
import android.content.Context
|
||||
import android.content.SharedPreferences
|
||||
import android.os.Bundle
|
||||
import androidx.activity.addCallback
|
||||
import androidx.fragment.app.FragmentManager
|
||||
import androidx.fragment.app.commit
|
||||
import androidx.fragment.app.replace
|
||||
import androidx.navigation.NavController
|
||||
import androidx.navigation.fragment.NavHostFragment
|
||||
import androidx.navigation.fragment.findNavController
|
||||
import com.deniscerri.ytdlnis.MainActivity
|
||||
import com.deniscerri.ytdlnis.R
|
||||
import com.deniscerri.ytdlnis.databinding.ActivitySettingsBinding
|
||||
import com.deniscerri.ytdlnis.ui.BaseActivity
|
||||
import com.google.android.material.appbar.MaterialToolbar
|
||||
|
||||
|
||||
class SettingsActivity : BaseActivity() {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
package com.deniscerri.ytdlnis.util
|
||||
|
||||
import android.app.Activity
|
||||
import android.content.Context
|
||||
import android.content.SharedPreferences
|
||||
import android.os.Looper
|
||||
|
|
@ -23,7 +22,6 @@ import java.net.HttpURLConnection
|
|||
import java.net.URL
|
||||
import java.util.*
|
||||
import java.util.regex.Pattern
|
||||
import kotlin.collections.ArrayList
|
||||
|
||||
class InfoUtil(private val context: Context) {
|
||||
private var items: ArrayList<ResultItem?>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,10 @@
|
|||
package com.deniscerri.ytdlnis.util
|
||||
|
||||
import android.app.*
|
||||
import android.app.Notification
|
||||
import android.app.NotificationChannel
|
||||
import android.app.NotificationManager
|
||||
import android.app.PendingIntent
|
||||
import android.app.TaskStackBuilder
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.graphics.BitmapFactory
|
||||
|
|
|
|||
|
|
@ -1,7 +1,5 @@
|
|||
package com.deniscerri.ytdlnis.util
|
||||
|
||||
import android.app.Application
|
||||
import android.util.Log
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.appcompat.app.AppCompatDelegate
|
||||
import androidx.preference.PreferenceManager
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
package com.deniscerri.ytdlnis.util
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.app.Activity
|
||||
import android.content.ClipData
|
||||
import android.content.ClipboardManager
|
||||
|
|
@ -11,12 +10,10 @@ import android.text.Editable
|
|||
import android.text.TextWatcher
|
||||
import android.util.DisplayMetrics
|
||||
import android.util.Log
|
||||
import android.view.MotionEvent
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.view.Window
|
||||
import android.widget.Button
|
||||
import android.widget.EditText
|
||||
import android.widget.LinearLayout
|
||||
import android.widget.TextView
|
||||
import android.widget.Toast
|
||||
|
|
@ -26,7 +23,6 @@ import androidx.constraintlayout.widget.ConstraintLayout
|
|||
import androidx.core.content.FileProvider
|
||||
import androidx.fragment.app.FragmentManager
|
||||
import androidx.lifecycle.LifecycleOwner
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import com.deniscerri.ytdlnis.R
|
||||
import com.deniscerri.ytdlnis.database.models.CommandTemplate
|
||||
import com.deniscerri.ytdlnis.database.models.Format
|
||||
|
|
@ -43,10 +39,9 @@ import com.google.android.material.textfield.TextInputLayout
|
|||
import com.google.android.material.timepicker.MaterialTimePicker
|
||||
import com.google.android.material.timepicker.TimeFormat
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.withContext
|
||||
import java.io.File
|
||||
import java.util.*
|
||||
import java.util.Calendar
|
||||
|
||||
class UiUtil(private val fileUtil: FileUtil) {
|
||||
fun populateFormatCard(formatCard : ConstraintLayout, chosenFormat: Format){
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
package com.deniscerri.ytdlnis.util
|
||||
|
||||
import android.app.Activity
|
||||
import android.app.DownloadManager
|
||||
import android.content.Context
|
||||
import android.content.DialogInterface
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
package com.deniscerri.ytdlnis.work
|
||||
|
||||
import android.app.PendingIntent
|
||||
import android.app.Service
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.os.Handler
|
||||
|
|
@ -9,7 +8,11 @@ import android.os.Looper
|
|||
import android.util.Log
|
||||
import android.widget.Toast
|
||||
import androidx.preference.PreferenceManager
|
||||
import androidx.work.*
|
||||
import androidx.work.Data
|
||||
import androidx.work.ForegroundInfo
|
||||
import androidx.work.Worker
|
||||
import androidx.work.WorkerParameters
|
||||
import androidx.work.workDataOf
|
||||
import com.deniscerri.ytdlnis.MainActivity
|
||||
import com.deniscerri.ytdlnis.R
|
||||
import com.deniscerri.ytdlnis.database.DBManager
|
||||
|
|
@ -17,20 +20,13 @@ import com.deniscerri.ytdlnis.database.models.DownloadItem
|
|||
import com.deniscerri.ytdlnis.database.models.HistoryItem
|
||||
import com.deniscerri.ytdlnis.database.repository.DownloadRepository
|
||||
import com.deniscerri.ytdlnis.database.viewmodel.DownloadViewModel
|
||||
import com.deniscerri.ytdlnis.ui.more.downloadLogs.DownloadLogActivity
|
||||
import com.deniscerri.ytdlnis.util.FileUtil
|
||||
import com.deniscerri.ytdlnis.util.InfoUtil
|
||||
import com.deniscerri.ytdlnis.util.NotificationUtil
|
||||
import com.yausername.youtubedl_android.YoutubeDL
|
||||
import com.yausername.youtubedl_android.YoutubeDLRequest
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.async
|
||||
import kotlinx.coroutines.coroutineScope
|
||||
import kotlinx.coroutines.runBlocking
|
||||
import kotlinx.coroutines.withContext
|
||||
import java.io.File
|
||||
import java.util.*
|
||||
import kotlin.collections.ArrayList
|
||||
|
||||
|
||||
class DownloadWorker(
|
||||
|
|
@ -59,7 +55,6 @@ class DownloadWorker(
|
|||
e.printStackTrace()
|
||||
return Result.failure()
|
||||
}
|
||||
if (downloadItem.status != DownloadRepository.Status.Queued.toString()) return Result.failure()
|
||||
|
||||
Log.e(TAG, downloadItem.toString())
|
||||
|
||||
|
|
@ -135,7 +130,7 @@ class DownloadWorker(
|
|||
}
|
||||
|
||||
if (sponsorBlockFilters.isNotEmpty()) {
|
||||
val filters = java.lang.String.join(",", sponsorBlockFilters)
|
||||
val filters = java.lang.String.join(",", sponsorBlockFilters.filter { it.isNotBlank() })
|
||||
request.addOption("--sponsorblock-remove", filters)
|
||||
}
|
||||
|
||||
|
|
@ -302,7 +297,6 @@ class DownloadWorker(
|
|||
"Format: ${downloadItem.format}\n\n" +
|
||||
"Command: ${java.lang.String.join(" ", request.buildCommand())}\n\n")
|
||||
}
|
||||
|
||||
runCatching {
|
||||
YoutubeDL.getInstance().execute(request, downloadItem.id.toString()){ progress, _, line ->
|
||||
setProgressAsync(workDataOf("progress" to progress.toInt(), "output" to line.chunked(5000).first().toString(), "id" to downloadItem.id, "log" to logDownloads))
|
||||
|
|
@ -413,7 +407,6 @@ class DownloadWorker(
|
|||
super.onStopped()
|
||||
}
|
||||
|
||||
|
||||
companion object {
|
||||
var itemId: Long = 0
|
||||
const val TAG = "DownloadWorker"
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
package com.deniscerri.ytdlnis.work
|
||||
|
||||
import android.app.PendingIntent
|
||||
import android.app.Service
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.os.Handler
|
||||
|
|
@ -9,7 +8,10 @@ import android.os.Looper
|
|||
import android.util.Log
|
||||
import android.widget.Toast
|
||||
import androidx.preference.PreferenceManager
|
||||
import androidx.work.*
|
||||
import androidx.work.ForegroundInfo
|
||||
import androidx.work.Worker
|
||||
import androidx.work.WorkerParameters
|
||||
import androidx.work.workDataOf
|
||||
import com.deniscerri.ytdlnis.MainActivity
|
||||
import com.deniscerri.ytdlnis.R
|
||||
import com.deniscerri.ytdlnis.util.FileUtil
|
||||
|
|
@ -17,7 +19,6 @@ import com.deniscerri.ytdlnis.util.NotificationUtil
|
|||
import com.yausername.youtubedl_android.YoutubeDL
|
||||
import com.yausername.youtubedl_android.YoutubeDLRequest
|
||||
import java.io.File
|
||||
import java.util.*
|
||||
|
||||
|
||||
class TerminalDownloadWorker(
|
||||
|
|
|
|||
5
app/src/main/res/drawable/baseline_star_half_24.xml
Normal file
5
app/src/main/res/drawable/baseline_star_half_24.xml
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
<vector android:autoMirrored="true" android:height="24dp"
|
||||
android:viewportHeight="24"
|
||||
android:viewportWidth="24" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<path android:fillColor="?android:colorAccent" android:pathData="M22,9.24l-7.19,-0.62L12,2L9.19,8.63L2,9.24l5.46,4.73L5.82,21L12,17.27L18.18,21l-1.63,-7.03L22,9.24zM12,15.4V6.1l1.71,4.04l4.38,0.38l-3.32,2.88l1,4.28L12,15.4z"/>
|
||||
</vector>
|
||||
5
app/src/main/res/drawable/baseline_translate_24.xml
Normal file
5
app/src/main/res/drawable/baseline_translate_24.xml
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
<vector android:height="24dp"
|
||||
android:viewportHeight="24" android:viewportWidth="24"
|
||||
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<path android:fillColor="?android:colorAccent" android:pathData="M12.87,15.07l-2.54,-2.51 0.03,-0.03c1.74,-1.94 2.98,-4.17 3.71,-6.53L17,6L17,4h-7L10,2L8,2v2L1,4v1.99h11.17C11.5,7.92 10.44,9.75 9,11.35 8.07,10.32 7.3,9.19 6.69,8h-2c0.73,1.63 1.73,3.17 2.98,4.56l-5.09,5.02L4,19l5,-5 3.11,3.11 0.76,-2.04zM18.5,10h-2L12,22h2l1.12,-3h4.75L21,22h2l-4.5,-12zM15.88,17l1.62,-4.33L19.12,17h-3.24z"/>
|
||||
</vector>
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle" >
|
||||
|
||||
<gradient
|
||||
android:angle="90"
|
||||
android:endColor="?attr/cardBackgroundColor"
|
||||
android:startColor="?attr/colorSurfaceContainer"
|
||||
android:centerColor="?attr/cardBackgroundColor" />
|
||||
|
||||
<corners android:radius="0dp" />
|
||||
</shape>
|
||||
|
|
@ -3,7 +3,6 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:id="@+id/homecoordinator"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<com.google.android.material.search.SearchView
|
||||
|
|
@ -150,7 +149,6 @@
|
|||
android:orientation="vertical">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/shimmer_linear_layout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="10dp"
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:id="@+id/homecoordinator"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<com.google.android.material.search.SearchView
|
||||
|
|
@ -165,7 +164,6 @@
|
|||
android:orientation="vertical">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/shimmer_linear_layout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="10dp"
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:id="@+id/homecoordinator"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<com.google.android.material.search.SearchView
|
||||
|
|
@ -150,7 +149,6 @@
|
|||
android:orientation="vertical">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/shimmer_linear_layout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="10dp"
|
||||
|
|
|
|||
|
|
@ -1,13 +1,10 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:id="@+id/downloads_card_constraintLayout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/active_download_relative_layout"
|
||||
android:layout_width="0dp"
|
||||
android:layout_marginHorizontal="10dp"
|
||||
android:layout_height="0dp"
|
||||
|
|
@ -80,7 +77,6 @@
|
|||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
||||
<com.google.android.material.chip.ChipGroup
|
||||
android:id="@+id/linearLayout2"
|
||||
android:layout_width="24dp"
|
||||
android:layout_height="24dp"
|
||||
android:layout_gravity="center_vertical|end"
|
||||
|
|
@ -136,7 +132,6 @@
|
|||
</HorizontalScrollView>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/title_author"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:dividerPadding="5dp"
|
||||
|
|
|
|||
|
|
@ -40,7 +40,6 @@
|
|||
android:layout_height="wrap_content">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/command_selection_chips"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@
|
|||
|
||||
|
||||
<androidx.core.widget.NestedScrollView
|
||||
android:id="@+id/nestedScrollView"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
|
|
|
|||
21
app/src/main/res/layout/dialog_text_preference.xml
Normal file
21
app/src/main/res/layout/dialog_text_preference.xml
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<com.google.android.material.textfield.TextInputLayout
|
||||
android:id="@+id/inputLayout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginHorizontal="15dp"
|
||||
android:layout_marginTop="5dp"
|
||||
android:layout_marginBottom="10dp">
|
||||
|
||||
<com.google.android.material.textfield.TextInputEditText
|
||||
android:id="@+id/input"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:inputType="number" />
|
||||
</com.google.android.material.textfield.TextInputLayout>
|
||||
|
||||
</LinearLayout>
|
||||
|
|
@ -23,7 +23,6 @@
|
|||
app:menu="@menu/download_multiple_menu" />
|
||||
|
||||
<com.google.android.material.floatingactionbutton.FloatingActionButton
|
||||
android:id="@+id/edit_selected"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:visibility="gone"
|
||||
|
|
@ -34,7 +33,6 @@
|
|||
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/linearLayout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FrameLayout android:id="@+id/downloads_element_bottom_sheet"
|
||||
style="@style/Widget.Material3.BottomSheet"
|
||||
<FrameLayout style="@style/Widget.Material3.BottomSheet"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior"
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@
|
|||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/constraintLayout2"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="0dp"
|
||||
android:orientation="vertical"
|
||||
|
|
|
|||
|
|
@ -22,7 +22,6 @@
|
|||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:id="@+id/constraintLayout2"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="0dp"
|
||||
android:orientation="vertical"
|
||||
|
|
|
|||
|
|
@ -77,7 +77,6 @@
|
|||
</LinearLayout>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/audio_quality_title"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingTop="10dp"
|
||||
|
|
@ -113,7 +112,6 @@
|
|||
android:layout_height="wrap_content" />
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/adjust_audio"
|
||||
android:layout_width="match_parent"
|
||||
android:paddingHorizontal="10dp"
|
||||
android:layout_height="wrap_content"
|
||||
|
|
@ -134,7 +132,6 @@
|
|||
android:layout_height="wrap_content" >
|
||||
|
||||
<com.google.android.material.chip.ChipGroup
|
||||
android:id="@+id/chipGroup"
|
||||
android:layout_width="wrap_content"
|
||||
app:chipSpacingVertical="0dp"
|
||||
app:singleLine="true"
|
||||
|
|
@ -182,7 +179,6 @@
|
|||
android:layout_height="wrap_content" >
|
||||
|
||||
<com.google.android.material.chip.ChipGroup
|
||||
android:id="@+id/chipGroup2"
|
||||
android:layout_width="wrap_content"
|
||||
app:chipSpacingVertical="0dp"
|
||||
app:singleLine="true"
|
||||
|
|
|
|||
|
|
@ -70,7 +70,6 @@
|
|||
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/adjust_commands"
|
||||
android:layout_width="wrap_content"
|
||||
android:paddingVertical="10dp"
|
||||
android:layout_height="wrap_content"
|
||||
|
|
@ -86,7 +85,6 @@
|
|||
|
||||
|
||||
<com.google.android.material.chip.ChipGroup
|
||||
android:id="@+id/commands_chip_group"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:selectionRequired="false"
|
||||
|
|
|
|||
|
|
@ -112,7 +112,6 @@
|
|||
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/adjust_video"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
|
|
@ -132,7 +131,6 @@
|
|||
android:layout_height="wrap_content">
|
||||
|
||||
<com.google.android.material.chip.ChipGroup
|
||||
android:id="@+id/chipGroup1"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:chipSpacingVertical="0dp"
|
||||
|
|
|
|||
|
|
@ -2,11 +2,9 @@
|
|||
<androidx.coordinatorlayout.widget.CoordinatorLayout android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:id="@+id/historycoordinator"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<com.google.android.material.appbar.AppBarLayout
|
||||
android:id="@+id/history_appbarlayout"
|
||||
app:liftOnScroll="true"
|
||||
android:background="@android:color/transparent"
|
||||
android:elevation="0dp"
|
||||
|
|
@ -30,7 +28,6 @@
|
|||
app:layout_scrollFlags="scroll|enterAlways"
|
||||
android:layout_margin="10dp">
|
||||
<HorizontalScrollView
|
||||
android:id="@+id/chips_recycler_horizontalscrollview"
|
||||
android:layout_width="wrap_content"
|
||||
android:scrollbars="none"
|
||||
android:layout_height="wrap_content">
|
||||
|
|
@ -60,7 +57,6 @@
|
|||
<View style="@style/Divider.Vertical"/>
|
||||
|
||||
<com.google.android.material.chip.ChipGroup
|
||||
android:id="@+id/format_chip_group"
|
||||
android:layout_width="wrap_content"
|
||||
app:selectionRequired="false"
|
||||
app:singleSelection="true"
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:id="@+id/homecoordinator"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<com.google.android.material.search.SearchView
|
||||
|
|
@ -149,7 +148,6 @@
|
|||
android:orientation="vertical">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/shimmer_linear_layout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="10dp"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:id="@+id/history_no_results"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
|
|
|
|||
|
|
@ -1,21 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<com.google.android.material.appbar.AppBarLayout android:id="@+id/home_appbarlayout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@null"
|
||||
android:elevation="0dp"
|
||||
app:elevation="0dp"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:liftOnScroll="true"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
|
||||
<com.google.android.material.appbar.MaterialToolbar
|
||||
android:id="@+id/toolbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_scrollFlags="scroll"
|
||||
app:title="@string/app_name" />
|
||||
|
||||
</com.google.android.material.appbar.AppBarLayout>
|
||||
|
|
@ -1,5 +1,4 @@
|
|||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
<androidx.constraintlayout.widget.ConstraintLayout android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:orientation="horizontal"
|
||||
|
|
|
|||
|
|
@ -1,14 +1,11 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:id="@+id/downloads_card_constraintLayout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/downloads_relative_layout"
|
||||
android:layout_width="0dp"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
app:layout_constraintDimensionRatio="H,2.66:1"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
|
|
|
|||
|
|
@ -1,119 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout android:id="@+id/downloads_shimmer_relative_layout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="150dp"
|
||||
app:layout_constraintDimensionRatio="H,2.66:1"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<androidx.cardview.widget.CardView
|
||||
android:id="@+id/downloads_shimmer_card_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
app:cardCornerRadius="10dp"
|
||||
app:cardElevation="10dp"
|
||||
app:cardMaxElevation="12dp"
|
||||
app:cardBackgroundColor="@color/black"
|
||||
app:cardPreventCornerOverlap="true"
|
||||
android:layout_margin="10dp">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageView
|
||||
android:id="@+id/downloads_shimmer_image_view"
|
||||
android:adjustViewBounds="true"
|
||||
android:scaleType="centerCrop"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/downloads_shimmer_title"
|
||||
android:layout_width="250dp"
|
||||
android:background="@color/light_grey"
|
||||
android:layout_height="10dp"
|
||||
android:layout_marginTop="15dp"
|
||||
android:layout_marginLeft="10dp"
|
||||
android:paddingBottom="20dp"
|
||||
android:paddingLeft="20dp"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/downloads_shimmer_title2"
|
||||
android:layout_width="150dp"
|
||||
android:background="@color/light_grey"
|
||||
android:layout_height="10dp"
|
||||
android:layout_marginTop="30dp"
|
||||
android:layout_marginLeft="10dp"
|
||||
android:paddingBottom="20dp"
|
||||
android:paddingLeft="20dp"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/downloads_shimmer_bottom"
|
||||
android:layout_width="100dp"
|
||||
android:background="@color/light_grey"
|
||||
android:layout_height="10dp"
|
||||
android:layout_gravity="bottom"
|
||||
android:gravity="bottom"
|
||||
android:layout_marginBottom="10dp"
|
||||
android:layout_marginLeft="10dp"
|
||||
android:paddingBottom="20dp"
|
||||
android:paddingLeft="20dp"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/downloads_shimmer_date"
|
||||
android:layout_width="100dp"
|
||||
android:background="@color/light_grey"
|
||||
android:layout_height="10dp"
|
||||
android:layout_gravity="bottom|right"
|
||||
android:gravity="bottom"
|
||||
android:layout_marginBottom="10dp"
|
||||
android:layout_marginRight="10dp"
|
||||
android:paddingBottom="20dp"
|
||||
android:paddingLeft="20dp"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/downloads_shimmer_info_time"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:gravity="bottom|right"
|
||||
android:paddingTop="10dp"
|
||||
android:paddingRight="20dp"
|
||||
android:paddingBottom="10dp"
|
||||
android:paddingLeft="20dp"
|
||||
android:textSize="12sp"
|
||||
android:textColor="@color/white"
|
||||
android:textStyle="bold"
|
||||
android:shadowRadius="1.5"
|
||||
android:shadowDx="4"
|
||||
android:shadowDy="4"
|
||||
android:shadowColor="@color/black" />
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/downloads_shimmer_download_button_layout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:gravity="center|right"
|
||||
android:orientation="horizontal"
|
||||
android:paddingBottom="10dp"
|
||||
android:paddingLeft="20dp"
|
||||
android:paddingRight="20dp">
|
||||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
style="@style/Widget.MaterialComponents.ExtendedFloatingActionButton.Icon"
|
||||
android:id="@+id/downloads_shimmer_download_button_type"
|
||||
android:layout_width="48dp"
|
||||
android:layout_height="48dp"
|
||||
app:cornerRadius="10dp"
|
||||
android:layout_marginLeft="10dp"
|
||||
/>
|
||||
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</androidx.cardview.widget.CardView>
|
||||
</RelativeLayout>
|
||||
|
||||
|
||||
|
|
@ -1,6 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FrameLayout android:id="@+id/downloads_element_bottom_sheet"
|
||||
style="@style/Widget.Material3.BottomSheet"
|
||||
<FrameLayout style="@style/Widget.Material3.BottomSheet"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior"
|
||||
|
|
@ -18,7 +17,6 @@
|
|||
android:padding="20dp">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/linearLayout4"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
|
|
@ -77,7 +75,6 @@
|
|||
android:layout_height="wrap_content">
|
||||
|
||||
<com.google.android.material.chip.ChipGroup
|
||||
android:id="@+id/linearLayout3"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="bottom"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FrameLayout android:id="@+id/downloads_element_bottom_sheet"
|
||||
style="@style/Widget.Material3.BottomSheet"
|
||||
<FrameLayout style="@style/Widget.Material3.BottomSheet"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<com.google.android.material.chip.Chip xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:id="@+id/input_chip"
|
||||
style="@style/Widget.Material3.Chip.Input.Icon.Elevated"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
|
|
|
|||
|
|
@ -6,7 +6,6 @@
|
|||
android:layout_height="match_parent">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/textView"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/please_wait"
|
||||
|
|
|
|||
|
|
@ -1,13 +1,11 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:id="@+id/result_card_constraintLayout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/result_relative_layout"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
app:layout_constraintDimensionRatio="H,16:9"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout android:id="@+id/result_shimmer_relative_layout"
|
||||
android:layout_width="match_parent"
|
||||
<RelativeLayout android:layout_width="match_parent"
|
||||
android:layout_height="230dp"
|
||||
app:layout_constraintDimensionRatio="H,16:9"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
|
|
@ -10,7 +9,6 @@
|
|||
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<androidx.cardview.widget.CardView
|
||||
android:id="@+id/result_shimmer_card_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
app:cardCornerRadius="20dp"
|
||||
|
|
@ -22,12 +20,10 @@
|
|||
>
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageView
|
||||
android:id="@+id/result_shimmer_image_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/result_shimmer_title"
|
||||
android:layout_width="300dp"
|
||||
android:layout_height="10dp"
|
||||
android:layout_marginTop="20dp"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:id="@+id/search_suggestions_constraintLayout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
|
|
|||
|
|
@ -46,7 +46,6 @@
|
|||
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/linearLayout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<com.google.android.material.chip.Chip xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:id="@+id/suggestion_chip"
|
||||
style="@style/Widget.Material3.Chip.Suggestion.Elevated"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
|
|
|
|||
|
|
@ -36,5 +36,5 @@
|
|||
<item android:title="@string/settings"
|
||||
android:checkable="true"
|
||||
android:icon="@drawable/ic_settings"
|
||||
android:id="@+id/settingsActivity"/>
|
||||
android:id="@+id/activitySettings"/>
|
||||
</menu>
|
||||
|
|
@ -2,7 +2,6 @@
|
|||
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:id="@+id/nav_graph"
|
||||
android:label="@string/more"
|
||||
app:startDestination="@id/homeFragment">
|
||||
|
||||
|
|
@ -40,6 +39,9 @@
|
|||
<action
|
||||
android:id="@+id/action_moreFragment_to_commandTemplatesActivity"
|
||||
app:destination="@id/commandTemplatesActivity" />
|
||||
<action
|
||||
android:id="@+id/action_moreFragment_to_settingsActivity2"
|
||||
app:destination="@id/activitySettings" />
|
||||
</fragment>
|
||||
<activity
|
||||
android:id="@+id/downloadQueueActivity"
|
||||
|
|
@ -63,4 +65,9 @@
|
|||
android:name="com.deniscerri.ytdlnis.ui.more.TerminalActivity"
|
||||
android:label="activity_terminal"
|
||||
tools:layout="@layout/activity_terminal" />
|
||||
<activity
|
||||
android:id="@+id/activitySettings"
|
||||
android:name="com.deniscerri.ytdlnis.ui.more.settings.SettingsActivity"
|
||||
android:label="activity_settings"
|
||||
tools:layout="@layout/activity_settings" />
|
||||
</navigation>
|
||||
|
|
@ -1,8 +1,6 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:id="@+id/settings_nav_graph"
|
||||
app:startDestination="@id/mainSettingsFragment">
|
||||
<fragment
|
||||
android:id="@+id/appearanceSettingsFragment"
|
||||
|
|
|
|||
|
|
@ -140,7 +140,6 @@
|
|||
<string name="show_download_card">إظهار بطاقة تخصيص التحميل</string>
|
||||
<string name="download_card_summary">إعدادات لكيفية تحميل العناصر</string>
|
||||
<string name="Open_File">فتح</string>
|
||||
<string name="delete_selected">إزالة المحدَدة</string>
|
||||
<string name="delete_files_too">الحذف من الجهاز أيضًا</string>
|
||||
<string name="delete_file_too">الحذف من الجهاز أيضًا</string>
|
||||
<string name="you_are_going_to_delete_multiple_items">إزالة بعض العناصر…</string>
|
||||
|
|
@ -167,7 +166,6 @@
|
|||
<string name="access_all_directories">السماح بالوصول إلى كل المجلدات</string>
|
||||
<string name="access_all_directories_summary">السماح بتنزيل التطبيق على المجلدات المقيدة إفتراضيًا</string>
|
||||
<string name="redownload">إعادة التحميل</string>
|
||||
<string name="copy_url">نسخ الرابط</string>
|
||||
<string name="in_queue">المنتظرة</string>
|
||||
<string name="clear_cancelled">تنظيف الملغاة</string>
|
||||
<string name="clear_errored">تنظيف المتعطلة</string>
|
||||
|
|
@ -186,14 +184,11 @@
|
|||
<string name="cut">قص</string>
|
||||
<string name="new_cut">قصٌ آخر</string>
|
||||
<string name="add_template_first">يجب إنشاء قالب يحتوي أمر واحد على الأقل!</string>
|
||||
<string name="formatid_copied_to_clipboard">تم نسخ معرف التنسيق إلى الحافظة</string>
|
||||
<string name="suggested">مقترحة</string>
|
||||
<string name="select_all">تحديد الكل</string>
|
||||
<string name="share">مشاركة</string>
|
||||
<string name="cookies">ملفات تعريف الارتباط (الكوكيز)</string>
|
||||
<string name="new_cookie">كوكيز جديدة</string>
|
||||
<string name="cookie">ملف تعريف ارتباط</string>
|
||||
<string name="create_cookie">إنشاء الكوكيز</string>
|
||||
<string name="get_cookies">الحصول على الكوكيز</string>
|
||||
<string name="delete_all_cookies">حذف كل الكوكيز</string>
|
||||
<string name="confirm_delete_cookies_desc">حذف كل الكوكيز، نهائيًا</string>
|
||||
|
|
|
|||
|
|
@ -82,7 +82,6 @@
|
|||
<string name="show_download_card">Yükləmə üçün seçimlər göstər</string>
|
||||
<string name="download_card_summary">Elementləri yükləmək üçün tənzimləmələr</string>
|
||||
<string name="Open_File">Faylı Aç</string>
|
||||
<string name="delete_selected">Seçiləni Sil</string>
|
||||
<string name="you_are_going_to_delete_multiple_items">Çoxlu element silinir…</string>
|
||||
<string name="delete_file_too">Faylı cihazdan sil</string>
|
||||
<string name="delete_files_too">Faylları cihazdan sil</string>
|
||||
|
|
@ -151,7 +150,6 @@
|
|||
<string name="selected">Seçildi</string>
|
||||
<string name="access_all_directories">Bütün kataloqlara girişə icazə ver</string>
|
||||
<string name="redownload">Təkrar yüklə</string>
|
||||
<string name="copy_url">URL-i Köçür</string>
|
||||
<string name="in_queue">Növbədə</string>
|
||||
<string name="clear_cancelled">Ləğv ediləni təmizlə</string>
|
||||
<string name="access_all_directories_summary">Tətbiqin standart olaraq məhdudlaşdırılan qovluqlarda yükləməsinə icazə ver</string>
|
||||
|
|
@ -185,7 +183,6 @@
|
|||
<string name="ignore_battery_optimization">Batareya Optimallaşdırmasına Məhəl Qoyma</string>
|
||||
<string name="cut">Kəs</string>
|
||||
<string name="new_cut">Yeni Kəsik</string>
|
||||
<string name="formatid_copied_to_clipboard">Format ID buferə nüsxələndi</string>
|
||||
<string name="suggested">Təklif edilən</string>
|
||||
<string name="add_template_first">Heç olmasa, bir əmr şablonu yaratmalısınız!</string>
|
||||
<string name="select_all">Hamısın Seç</string>
|
||||
|
|
@ -193,8 +190,6 @@
|
|||
<string name="share">Paylaş</string>
|
||||
<string name="cookies">Məlumat Bazaları</string>
|
||||
<string name="new_cookie">Yeni Məlumat Baza</string>
|
||||
<string name="cookie">Məlumat Bazası</string>
|
||||
<string name="create_cookie">Məlumat Bazası Yarat</string>
|
||||
<string name="get_cookies">Məlumatlar Əldə Et</string>
|
||||
<string name="confirm_delete_cookies_desc">Bütün bazaları həmişəlik sil</string>
|
||||
<string name="download_over_metered_networks">Ölçülən Şəbəkələrlə yüklə</string>
|
||||
|
|
|
|||
|
|
@ -57,7 +57,6 @@
|
|||
<string name="download">ডাউনলোড</string>
|
||||
<string name="video_quality">ভিডিও এর ধরন</string>
|
||||
<string name="embed_subtitles">সাবটাইটেল এম্বেড করুন</string>
|
||||
<string name="delete_selected">নির্বাচিতগুলি মুছুন</string>
|
||||
<string name="you_are_going_to_delete_multiple_items">একাধিক আইটেম মুছে ফেলা হচ্ছে…</string>
|
||||
<string name="delete_file_too">ডিভাইস থেকে ফাইল মুছুন</string>
|
||||
<string name="delete_files_too">ডিভাইস থেকে ফাইল মুছুন</string>
|
||||
|
|
@ -162,7 +161,6 @@
|
|||
<string name="all_items_selected">সমস্ত আইটেম নির্বাচিত</string>
|
||||
<string name="access_all_directories">সমস্ত ডিরেক্টরিতে অ্যাক্সেসের অনুমতি দিন</string>
|
||||
<string name="redownload">পুনরায় ডাউনলোড করুন</string>
|
||||
<string name="copy_url">URL কপি করুন</string>
|
||||
<string name="in_queue">কিউ তে আছে</string>
|
||||
<string name="clear_cancelled">সাফ করুন বাতিলগুলি</string>
|
||||
<string name="clear_errored">পরিষ্কার ত্রুটি</string>
|
||||
|
|
@ -186,14 +184,11 @@
|
|||
<string name="add_template_first">আপনার কমপক্ষে একটি কমান্ড টেমপ্লেট তৈরি করা দরকার!</string>
|
||||
<string name="suggested">প্রস্তাবিত</string>
|
||||
<string name="select_all">সব নির্বাচন করুন</string>
|
||||
<string name="formatid_copied_to_clipboard">ফর্ম্যাট আইডি ক্লিপবোর্ডে কপি করা হয়েছে</string>
|
||||
<string name="update_formats_summary">ফর্ম্যাট কার্ডে ক্লিক করার সময় স্বয়ংক্রিয়ভাবে অনুপস্থিত ফর্ম্যাটগুলির জন্য অনুসন্ধান করুন৷</string>
|
||||
<string name="ignore_battery_optimization">ব্যাটারি অপ্টিমাইজেশান উপেক্ষা করুন</string>
|
||||
<string name="share">শেয়ার করুন</string>
|
||||
<string name="cookies">কুকি</string>
|
||||
<string name="new_cookie">নতুন কুকি</string>
|
||||
<string name="cookie">কুকি</string>
|
||||
<string name="create_cookie">কুকি তৈরি করুন</string>
|
||||
<string name="delete_all_cookies">সমস্ত কুকি মুছুন</string>
|
||||
<string name="confirm_delete_cookies_desc">সব কুকি স্থায়ীভাবে মুছুন</string>
|
||||
<string name="get_cookies">কুকিজ পান</string>
|
||||
|
|
|
|||
|
|
@ -56,7 +56,6 @@
|
|||
<string name="add_chapter">Kapitel hinzufügen</string>
|
||||
<string name="show_download_card">Optionen für das Herunterladen anzeigen</string>
|
||||
<string name="download_card_summary">Einstellungen für das Herunterladen von Einträgen</string>
|
||||
<string name="delete_selected">Ausgewählte löschen</string>
|
||||
<string name="you_are_going_to_delete_multiple_items">Mehrere Objekte löschen…</string>
|
||||
<string name="delete_file_too">Löschen der Datei vom Gerät</string>
|
||||
<string name="delete_files_too">Löschen der Dateien vom Gerät</string>
|
||||
|
|
@ -170,7 +169,6 @@
|
|||
<string name="dont_ask_again">Frag nicht nochmal</string>
|
||||
<string name="end">Ende</string>
|
||||
<string name="start">Start</string>
|
||||
<string name="copy_url">URL kopieren</string>
|
||||
<string name="access_all_directories">Zugriff auf alle Verzeichnisse zulassen</string>
|
||||
<string name="access_all_directories_summary">Lassen Sie die App in Verzeichnisse herunterladen, die standardmäßig eingeschränkt sind</string>
|
||||
<string name="redownload">Neu herunterladen</string>
|
||||
|
|
@ -186,14 +184,11 @@
|
|||
<string name="cut">Schnitt</string>
|
||||
<string name="new_cut">Neuer Schnitt</string>
|
||||
<string name="add_template_first">Sie müssen mindestens eine Befehlsvorlage erstellt haben!</string>
|
||||
<string name="formatid_copied_to_clipboard">Format-ID in die Zwischenablage kopiert</string>
|
||||
<string name="suggested">Empfohlen</string>
|
||||
<string name="share">Teile</string>
|
||||
<string name="cookies">Cookies</string>
|
||||
<string name="select_all">Alles Wählen</string>
|
||||
<string name="new_cookie">Neuer Cookie</string>
|
||||
<string name="cookie">Cookie</string>
|
||||
<string name="create_cookie">Cookie Erstellen</string>
|
||||
<string name="get_cookies">Cookie Erhalten</string>
|
||||
<string name="delete_all_cookies">Alle Cookies Löschen</string>
|
||||
<string name="confirm_delete_cookies_desc">Alle Cookies löschen, dauerhaft</string>
|
||||
|
|
|
|||
|
|
@ -83,7 +83,6 @@
|
|||
<string name="incognito_summary">Descargar sin agregar al historial</string>
|
||||
<string name="author">Autor</string>
|
||||
<string name="Open_File">Abrir Archivo</string>
|
||||
<string name="delete_selected">Eliminar Selección</string>
|
||||
<string name="warning">Advertencia</string>
|
||||
<string name="show_download_card">Mostrar Opciones de Descarga</string>
|
||||
<string name="download_card_summary">Ajustes de descargas</string>
|
||||
|
|
@ -146,7 +145,6 @@
|
|||
<string name="items_imported">Elementos importados</string>
|
||||
<string name="help_translate">Ayuda a la traducción</string>
|
||||
<string name="redownload">Volver a descargar</string>
|
||||
<string name="copy_url">Copiar la URL</string>
|
||||
<string name="in_queue">En espera</string>
|
||||
<string name="clear_cancelled">Borrardo Cancelado</string>
|
||||
<string name="clear_errored">Error al borrar</string>
|
||||
|
|
@ -184,12 +182,9 @@
|
|||
<string name="update_formats_summary">Busca automáticamente los formatos que faltan al hacer clic en la tarjeta de formato</string>
|
||||
<string name="ignore_battery_optimization">Ignorar la optimización de la batería</string>
|
||||
<string name="cut">Cortar</string>
|
||||
<string name="formatid_copied_to_clipboard">El identificador del formato se copió en el portapapeles</string>
|
||||
<string name="suggested">Sugerido</string>
|
||||
<string name="select_all">Seleccionar todo</string>
|
||||
<string name="share">Compartir</string>
|
||||
<string name="cookie">Cookie</string>
|
||||
<string name="create_cookie">Crear una Cookie</string>
|
||||
<string name="new_cookie">Nueva Cookie</string>
|
||||
<string name="confirm_delete_cookies_desc">Borrar permanentemente toda las cookies</string>
|
||||
<string name="add_template_first">¡Necesitas tener al menos una plantilla de comando creada!</string>
|
||||
|
|
|
|||
|
|
@ -82,7 +82,6 @@
|
|||
<string name="show_download_card">Afficher les options de téléchargement</string>
|
||||
<string name="download_card_summary">Paramètres de téléchargement des éléments</string>
|
||||
<string name="Open_File">Ouvrir le fichier</string>
|
||||
<string name="delete_selected">Supprimer la sélection</string>
|
||||
<string name="you_are_going_to_delete_multiple_items">Suppression de plusieurs éléments…</string>
|
||||
<string name="delete_file_too">Supprimer le fichier de l\'appareil</string>
|
||||
<string name="delete_files_too">Supprimer les fichiers de l\'appareil</string>
|
||||
|
|
@ -147,15 +146,12 @@
|
|||
<string name="export_from_clipboard">Exporter vers le presse-papiers</string>
|
||||
<string name="import_from_clipboard">Importer depuis le presse-papiers</string>
|
||||
<string name="help_translate_summary">Traduisez cette application dans votre langue en utilisant Weblate</string>
|
||||
<string name="cookie">Cookie</string>
|
||||
<string name="dont_ask_again">Ne plus le redemander</string>
|
||||
<string name="start">Commencer</string>
|
||||
<string name="restrict_filenames_summary">Limitez les noms de fichiers aux caractères ASCII et évitez les \"&\" et les espaces dans les noms de fichiers</string>
|
||||
<string name="get_cookies">Obtenir des cookies</string>
|
||||
<string name="formatid_copied_to_clipboard">Format ID copié dans le presse-papiers</string>
|
||||
<string name="share">Partager</string>
|
||||
<string name="cookies">Cookies</string>
|
||||
<string name="create_cookie">Créer un cookie</string>
|
||||
<string name="new_cookie">Nouveau Cookie</string>
|
||||
<string name="new_template">Nouveau modèle</string>
|
||||
<string name="adjust_templates">Ajuster les modèles</string>
|
||||
|
|
@ -191,7 +187,6 @@
|
|||
<string name="redownload">Télécharger à nouveau</string>
|
||||
<string name="preferred_download_type_summary">Onglet par défaut dans lequel la carte de téléchargement s\'ouvrira</string>
|
||||
<string name="confirm_delete_logs_desc">Supprimez définitivement la liste complète des journaux.</string>
|
||||
<string name="copy_url">Copier l\'URL</string>
|
||||
<string name="clear_temporary_files">Effacer les fichiers temporaires</string>
|
||||
<string name="ytdl_version">Version d\'yt-dlp</string>
|
||||
<string name="ignore_battery_optimization">Ignorer l’optimisation de la batterie</string>
|
||||
|
|
|
|||
|
|
@ -84,7 +84,6 @@
|
|||
<string name="api_key">Gunakan Kunci API</string>
|
||||
<string name="ytdl_version">Versi yt-dlp</string>
|
||||
<string name="Open_File">Buka Berkas</string>
|
||||
<string name="delete_selected">Hapus yang Dipilih</string>
|
||||
<string name="you_are_going_to_delete_multiple_items">Menghapus beberapa butir…</string>
|
||||
<string name="delete_file_too">Hapus berkas dari perangkat</string>
|
||||
<string name="delete_files_too">Hapus berkas-berkas dari perangkat</string>
|
||||
|
|
@ -154,7 +153,6 @@
|
|||
<string name="selected">Dipilih</string>
|
||||
<string name="all_items_selected">Semua butir dipilih</string>
|
||||
<string name="redownload">Unduh Ulang</string>
|
||||
<string name="copy_url">Salin URL</string>
|
||||
<string name="in_queue">Di Antrean</string>
|
||||
<string name="access_all_directories">Perbolehkan pengaksesan semua direktori</string>
|
||||
<string name="clear_cancelled">Kosongkan yang Dibatalkan</string>
|
||||
|
|
@ -183,11 +181,8 @@
|
|||
<string name="ignore_battery_optimization">Abaikan Pengoptimalan Baterai</string>
|
||||
<string name="cut">Potong</string>
|
||||
<string name="new_cut">Potongan Baru</string>
|
||||
<string name="formatid_copied_to_clipboard">ID format disalin ke papan klip</string>
|
||||
<string name="suggested">Dianjurkan</string>
|
||||
<string name="delete_all_cookies">Hapus Semua Kuki</string>
|
||||
<string name="create_cookie">Buat Kuki</string>
|
||||
<string name="cookie">Kuki</string>
|
||||
<string name="new_cookie">Kuki Baru</string>
|
||||
<string name="cookies">Kuki</string>
|
||||
<string name="share">Bagikan</string>
|
||||
|
|
|
|||
|
|
@ -19,7 +19,6 @@
|
|||
<string name="show_download_card">Mostra opzioni per il download</string>
|
||||
<string name="download_card_summary">Impostazioni su come scaricare gli elementi</string>
|
||||
<string name="Open_File">Apri il file</string>
|
||||
<string name="delete_selected">Elimina selezionato</string>
|
||||
<string name="delete_files_too">Elimina i file dal dispositivo</string>
|
||||
<string name="sponsorblock_intro">Introduzione</string>
|
||||
<string name="select_sponsorblock_filtering">Selezionare Filtraggio SponsorBlock</string>
|
||||
|
|
|
|||
|
|
@ -62,7 +62,6 @@
|
|||
<string name="add_chapter">チャプターを追加</string>
|
||||
<string name="show_download_card">ダウンロードオプションを表示</string>
|
||||
<string name="download_card_summary">アイテムをダウンロードする方法の設定</string>
|
||||
<string name="delete_selected">選択項目を削除</string>
|
||||
<string name="ytdl_updating_started">新しいバージョンをダウンロード中…</string>
|
||||
<string name="you_are_going_to_delete_multiple_items">複数のアイテムを削除中…</string>
|
||||
<string name="delete_file_too">デバイスからファイルを削除する</string>
|
||||
|
|
@ -129,7 +128,6 @@
|
|||
<string name="preferred_download_type">優先ダウンロード形式</string>
|
||||
<string name="selected">選択された</string>
|
||||
<string name="redownload">再ダウンロード</string>
|
||||
<string name="copy_url">コピーURL</string>
|
||||
<string name="workmanager_updated">この設定を有効にする、アプリを再起動しアクティブなダウンロードがない状態にする必要があります!</string>
|
||||
<string name="select">選択</string>
|
||||
<string name="confirm_delete_logs_desc">ログリスト全体を永久に削除する。</string>
|
||||
|
|
|
|||
|
|
@ -112,7 +112,6 @@
|
|||
<string name="access_all_directories">Atļaut piekļuvi visiem direktorijiem</string>
|
||||
<string name="access_all_directories_summary">Ļaut lietotnei lejupielādēt no direktorijiem, kas pēc noklusējuma ir ierobežoti</string>
|
||||
<string name="redownload">Atkārtoti Lejupielādēt</string>
|
||||
<string name="copy_url">Kopēt URL</string>
|
||||
<string name="in_queue">Rindā</string>
|
||||
<string name="clear_cancelled">Notīrīt Atceltos</string>
|
||||
<string name="split_by_chapters">Sadalīt Pēc Sadaļām</string>
|
||||
|
|
@ -156,7 +155,6 @@
|
|||
<string name="Open_File">Atvērt Failu</string>
|
||||
<string name="show_download_card">Rādīt Lejupielādes Opcijas</string>
|
||||
<string name="download_card_summary">Iestatījumi, kā lejupielādēt vienumus</string>
|
||||
<string name="delete_selected">Dzēst Atlasīto</string>
|
||||
<string name="edit_selected">Rediģēt atlasīto</string>
|
||||
<string name="you_are_going_to_delete_multiple_items">Dzēš vairākus elementus…</string>
|
||||
<string name="defaultValue">Noklusējums</string>
|
||||
|
|
@ -191,12 +189,9 @@
|
|||
<string name="share">Koplietot</string>
|
||||
<string name="cookies">Sīkfaili</string>
|
||||
<string name="new_cookie">Jauns Sīkfails</string>
|
||||
<string name="cookie">Sīkfails</string>
|
||||
<string name="create_cookie">Izveidot Sīkfailu</string>
|
||||
<string name="get_cookies">Iegūt Sīkfailus</string>
|
||||
<string name="delete_all_cookies">Dzēst Visus Sīkfailus</string>
|
||||
<string name="confirm_delete_cookies_desc">Neatgriezeniski dzēst visas sīkdatnes</string>
|
||||
<string name="formatid_copied_to_clipboard">Formāta ID kopēts starpliktuvē</string>
|
||||
<string name="metered_network_download_start_info">Lejupielādes strādnieks sāks pēc tam, kad būsiet pieslēgti neierobežotam tīklam</string>
|
||||
<string name="invert_selected">Invertēt Atlasīto</string>
|
||||
<string name="save_subs">Saglabāt Subtitrus</string>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="delete_selected">Slett valgte</string>
|
||||
<string name="directories">Mapper</string>
|
||||
<string name="music_directory">Musikkmappe</string>
|
||||
<string name="video_directory">Videomappe</string>
|
||||
|
|
@ -126,7 +125,6 @@
|
|||
<string name="enable_mtime_summary">Sett «HTTP Last-Modified»-hode som siste endringstid</string>
|
||||
<string name="running">Kjører</string>
|
||||
<string name="create_template">Opprett mal</string>
|
||||
<string name="copy_url">Kopier nettadresse</string>
|
||||
<string name="in_queue">I kø</string>
|
||||
<string name="cancelled">Kansellert</string>
|
||||
<string name="errored">Feilaktig</string>
|
||||
|
|
@ -183,7 +181,6 @@
|
|||
<string name="link_you_copied">Lenke du kopierte</string>
|
||||
<string name="cut">Klipp ut</string>
|
||||
<string name="new_cut">Nytt utklipp</string>
|
||||
<string name="formatid_copied_to_clipboard">Format-ID kopiert til utklippstavlen</string>
|
||||
<string name="select_all">Velg alle</string>
|
||||
<string name="share">Del</string>
|
||||
<string name="kill_app">Avslutt program</string>
|
||||
|
|
@ -191,8 +188,6 @@
|
|||
<string name="suggested">Foreslått</string>
|
||||
<string name="cookies">Informasjonskapsler</string>
|
||||
<string name="new_cookie">Ny informasjonskapsel</string>
|
||||
<string name="cookie">Informasjonskapsel</string>
|
||||
<string name="create_cookie">Opprett informasjonskapsel</string>
|
||||
<string name="confirm_delete_cookies_desc">Slett informasjonskapslene for godt</string>
|
||||
<string name="download_over_metered_networks">Nedlasting på kvotebaserte nettverk</string>
|
||||
<string name="invert_selected">Inverter utvalg</string>
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue