remove unused components

This commit is contained in:
deniscerri 2023-05-14 22:14:12 +02:00
parent 07caaf98d7
commit 2bd2db60b6
No known key found for this signature in database
GPG key ID: 95C43D517D830350
117 changed files with 258 additions and 648 deletions

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View 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()

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

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

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -46,7 +46,6 @@
<LinearLayout
android:id="@+id/linearLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -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 \"&amp;\" 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 loptimisation de la batterie</string>

View file

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

View file

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

View file

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

View file

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

View file

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