added telegram and discord links in more section

This commit is contained in:
Denis Çerri 2023-03-11 22:26:05 +01:00
parent 4f6e2e29b7
commit 673ad23c73
No known key found for this signature in database
GPG key ID: 95C43D517D830350
9 changed files with 154 additions and 44 deletions

View file

@ -330,8 +330,9 @@
</option>
<option name="values">
<map>
<entry key="outputName" value="baseline_video_file_24" />
<entry key="sourceFile" value="C:\Users\denis\Desktop\adaptiveproduct_youtube_foreground_color_108 (1).svg" />
<entry key="assetSourceType" value="FILE" />
<entry key="outputName" value="ic_telegram" />
<entry key="sourceFile" value="C:\Users\denis\Desktop\FREKUENCA\icons8-discord.svg" />
</map>
</option>
</PersistentState>

View file

@ -71,7 +71,7 @@ class CommandTemplatesActivity : AppCompatActivity(), TemplatesAdapter.OnItemCli
withContext(Dispatchers.IO){
val count = commandTemplateViewModel.importFromClipboard()
runOnUiThread{
Toast.makeText(this@CommandTemplatesActivity, "$count items imported!", Toast.LENGTH_LONG).show()
Toast.makeText(this@CommandTemplatesActivity, "${getString(R.string.items_imported)} (${count})", Toast.LENGTH_LONG).show()
}
}

View file

@ -1,20 +1,19 @@
package com.deniscerri.ytdlnis.ui.more.settings
import android.content.Context
import android.content.res.Configuration
import android.os.Build
import android.content.SharedPreferences
import android.os.Bundle
import android.os.LocaleList
import androidx.appcompat.app.AppCompatActivity
import androidx.fragment.app.FragmentManager
import com.deniscerri.ytdlnis.R
import com.google.android.material.appbar.MaterialToolbar
import java.util.*
class SettingsActivity : AppCompatActivity() {
private var fm: FragmentManager? = null
private var topAppBar: MaterialToolbar? = null
private lateinit var sharedPreferences: SharedPreferences
private lateinit var editor: SharedPreferences.Editor
var context: Context? = null
public override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
@ -27,34 +26,4 @@ class SettingsActivity : AppCompatActivity() {
.replace(R.id.settings_frame_layout, SettingsFragment())
.commit()
}
fun setLocale(l: String){
val locale = Locale(l)
Locale.setDefault(locale)
val config: Configuration = this.resources.configuration
if (Build.VERSION.SDK_INT >= 24){
Locale.setDefault(locale)
config.setLocales(LocaleList(locale))
this.resources.updateConfiguration(config, this.resources.displayMetrics)
onConfigurationChanged(config)
}else{
Locale.setDefault(locale)
config.locale = locale
config.setLayoutDirection(locale)
this.resources.updateConfiguration(config, this.resources.displayMetrics)
onConfigurationChanged(config)
}
restartActivity()
}
private fun restartActivity() {
// val intent = intent
// finish()
// startActivity(Intent(this, MainActivity::class.java))
recreate()
}
}

View file

@ -1,14 +1,17 @@
package com.deniscerri.ytdlnis.ui.more.settings
import android.app.Activity
import android.content.ClipboardManager
import android.content.Intent
import android.net.Uri
import android.os.Build
import android.os.Bundle
import android.os.Environment
import android.provider.Settings
import android.util.Log
import android.widget.Toast
import androidx.activity.result.contract.ActivityResultContracts
import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.app.AppCompatDelegate
import androidx.core.os.LocaleListCompat
import androidx.preference.*
@ -16,6 +19,9 @@ import com.deniscerri.ytdlnis.BuildConfig
import com.deniscerri.ytdlnis.R
import com.deniscerri.ytdlnis.util.FileUtil
import com.deniscerri.ytdlnis.util.UpdateUtil
import kotlinx.serialization.decodeFromString
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.*
import java.util.*
class SettingsFragment : PreferenceFragmentCompat() {
@ -47,9 +53,15 @@ class SettingsFragment : PreferenceFragmentCompat() {
private var updateYTDL: Preference? = null
private var updateNightlyYTDL: SwitchPreferenceCompat? = null
private var updateApp: SwitchPreferenceCompat? = null
private var exportPreferences : Preference? = null
private var importPreferences : Preference? = null
private var version: Preference? = null
private var updateUtil: UpdateUtil? = null
private var fileUtil: FileUtil? = null
private val jsonFormat = Json { prettyPrint = true }
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
setPreferencesFromResource(R.xml.root_preferences, rootKey)
updateUtil = UpdateUtil(requireContext())
@ -76,7 +88,7 @@ class SettingsFragment : PreferenceFragmentCompat() {
limitRate = findPreference("limit_rate")
aria2 = findPreference("aria2")
logDownloads = findPreference("log_downloads")
sponsorblockFilters = findPreference("sponsorblock_filter")
sponsorblockFilters = findPreference("sponsorblock_filters")
mtime = findPreference("mtime")
embedSubtitles = findPreference("embed_subtitles")
filenameTemplate = findPreference("file_name_template")
@ -90,6 +102,8 @@ class SettingsFragment : PreferenceFragmentCompat() {
updateYTDL = findPreference("update_ytdl")
updateNightlyYTDL = findPreference("nightly_ytdl")
updateApp = findPreference("update_app")
exportPreferences = findPreference("export_preferences")
importPreferences = findPreference("import_preferences")
version = findPreference("version")
version!!.summary = BuildConfig.VERSION_NAME
@ -359,6 +373,75 @@ class SettingsFragment : PreferenceFragmentCompat() {
editor.apply()
true
}
// exportPreferences!!.onPreferenceClickListener =
// Preference.OnPreferenceClickListener {
// val prefs = preferences.all
// val json = buildJsonObject {
// putJsonArray("YTDLnis_Preferences") {
// prefs.forEach {
// add(buildJsonObject {
// put("key", it.key)
// put("value", it.value.toString())
// put("type", it.value!!::class.simpleName)
// })
// }
// }
// }
// val string = jsonFormat.encodeToString(json)
// val clipboard: ClipboardManager =
// requireContext().getSystemService(AppCompatActivity.CLIPBOARD_SERVICE) as ClipboardManager
// clipboard.setText(string)
// true
// }
// importPreferences!!.onPreferenceClickListener =
// Preference.OnPreferenceClickListener {
// val clipboard = requireContext().getSystemService(AppCompatActivity.CLIPBOARD_SERVICE) as ClipboardManager
// val clip = clipboard.primaryClip!!.getItemAt(0).text.toString()
// try{
// val preferencesKeys = preferences.all.map { it.key }
// var count = 0
// jsonFormat.decodeFromString<JsonObject>(clip).run {
// val prefs = this.jsonObject["YTDLnis_Preferences"]!!.jsonArray
// prefs.forEach {
// val key : String = it.jsonObject["key"].toString().replace("\"", "")
// if (preferencesKeys.contains(key)){
// when(it.jsonObject["type"].toString().replace("\"", "")){
// "String" -> {
// val value = it.jsonObject["value"].toString().replace("\"", "")
// Log.e("aa", value.toString())
// editor.putString(key, value)
// editor.apply()
// }
// "Boolean" -> {
// val value = it.jsonObject["value"].toString().replace("\"", "").toBoolean()
// Log.e("aa", value.toString())
// editor.putBoolean(key, value)
// editor.apply()
// }
// "Int" -> {
// val value = it.jsonObject["value"].toString().replace("\"", "").toInt()
// Log.e("aa", value.toString())
// editor.putInt(key, value)
// editor.apply()
// }
// "HashSet" -> {
// val value = hashSetOf(it.jsonObject["value"].toString().replace("(\")|(\\[)|(])".toRegex(), ""))
// Log.e("aa", value.toString())
// editor.putStringSet(key, value)
// editor.apply()
// }
// }
// count++
// }
// }
// }
// Toast.makeText(requireContext(), "${getString(R.string.items_imported)} (${count})", Toast.LENGTH_LONG).show()
// }catch (e: Exception){
// e.printStackTrace()
// }
//
// true
// }
version!!.onPreferenceClickListener =
Preference.OnPreferenceClickListener {
if (!updateUtil!!.updateApp()) {

View file

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="50"
android:viewportHeight="50">
<path
android:fillColor="?android:colorAccent"
android:pathData="M41.625,10.77C37.645,7.566 31.348,7.023 31.078,7.004C30.66,6.969 30.262,7.203 30.09,7.59C30.074,7.613 29.938,7.93 29.785,8.422C32.418,8.867 35.652,9.762 38.578,11.578C39.047,11.867 39.191,12.484 38.902,12.953C38.711,13.262 38.387,13.43 38.051,13.43C37.871,13.43 37.688,13.379 37.523,13.277C32.492,10.156 26.211,10 25,10C23.789,10 17.504,10.156 12.477,13.277C12.008,13.57 11.391,13.426 11.102,12.957C10.809,12.484 10.953,11.871 11.422,11.578C14.348,9.766 17.582,8.867 20.215,8.426C20.063,7.93 19.926,7.617 19.914,7.59C19.738,7.203 19.344,6.961 18.922,7.004C18.652,7.023 12.355,7.566 8.32,10.813C6.215,12.762 2,24.152 2,34C2,34.176 2.047,34.344 2.133,34.496C5.039,39.605 12.973,40.941 14.781,41C14.789,41 14.801,41 14.813,41C15.133,41 15.434,40.848 15.621,40.59L17.449,38.074C12.516,36.801 9.996,34.637 9.852,34.508C9.438,34.145 9.398,33.512 9.766,33.098C10.129,32.684 10.762,32.645 11.176,33.008C11.234,33.063 15.875,37 25,37C34.141,37 38.781,33.047 38.828,33.008C39.242,32.648 39.871,32.684 40.238,33.102C40.602,33.516 40.563,34.145 40.148,34.508C40.004,34.637 37.484,36.801 32.551,38.074L34.379,40.59C34.566,40.848 34.867,41 35.188,41C35.199,41 35.211,41 35.219,41C37.027,40.941 44.961,39.605 47.867,34.496C47.953,34.344 48,34.176 48,34C48,24.152 43.785,12.762 41.625,10.77ZM18.5,30C16.566,30 15,28.211 15,26C15,23.789 16.566,22 18.5,22C20.434,22 22,23.789 22,26C22,28.211 20.434,30 18.5,30ZM31.5,30C29.566,30 28,28.211 28,26C28,23.789 29.566,22 31.5,22C33.434,22 35,23.789 35,26C35,28.211 33.434,30 31.5,30Z"/>
</vector>

View file

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="?android:colorAccent"
android:pathData="M20.572,3.012C20.24,2.976 19.879,3.028 19.516,3.172C19.066,3.349 12.014,6.315 5.441,9.082L3.27,9.996C2.429,10.337 2.004,10.892 2.004,11.639C2.004,12.162 2.225,12.871 3.281,13.289L6.947,14.758C7.264,15.709 8.001,17.917 8.186,18.504C8.296,18.852 8.573,19.729 9.275,19.934C9.419,19.983 9.57,20.008 9.723,20.008C10.166,20.008 10.485,19.802 10.641,19.682L12.971,17.711L15.801,20.328C15.91,20.439 16.487,21 17.262,21C18.229,21 18.962,20.195 19.115,19.416C19.198,18.989 21.928,5.287 21.928,5.289C22.173,4.19 21.732,3.62 21.449,3.377C21.207,3.169 20.905,3.047 20.572,3.012zM19.91,5.172C19.533,7.062 17.478,17.378 17.166,18.865L13.029,15.039L10.223,17.416L11,14.375C11,14.375 16.363,8.947 16.686,8.631C16.946,8.378 17,8.289 17,8.201C17,8.084 16.94,8 16.801,8C16.676,8 16.506,8.12 16.416,8.176C15.273,8.889 10.404,11.662 8.008,13.025L4.531,11.637L6.219,10.928C10.518,9.118 18.174,5.894 19.91,5.172z"/>
</vector>

View file

@ -214,4 +214,5 @@
<string name="clear_cancelled">Clear Cancelled</string>
<string name="clear_errored">Clear Errored</string>
<string name="split_by_chapters">Split By Chapters</string>
<string name="items_imported">Items Imported</string>
</resources>

View file

@ -49,6 +49,27 @@
<intent android:action="ytdlnis.DownloadQueueActivity" />
</Preference>
<Preference
app:icon="@drawable/ic_discord"
app:key="discord"
app:summary="https://discord.gg/WW3KYWxAPm"
app:allowDividerAbove="true"
app:title="Discord">
<intent
android:action="android.intent.action.VIEW"
android:data="https://discord.gg/WW3KYWxAPm" />
</Preference>
<Preference
app:icon="@drawable/ic_telegram"
app:key="telegram"
app:summary="https://t.me/ytdlnis"
app:title="Telegram">
<intent
android:action="android.intent.action.VIEW"
android:data="https://t.me/ytdlnis" />
</Preference>
<Preference
app:icon="@drawable/ic_settings"

View file

@ -123,7 +123,7 @@
app:dialogTitle="@string/select_sponsorblock_filtering"
app:entries="@array/sponsorblock_settings_entries"
app:entryValues="@array/sponsorblock_settings_values"
app:key="sponsorblock_filter"
app:key="sponsorblock_filters"
app:summary="@string/select_sponsorblock_filtering"
app:title="SponsorBlock" />
@ -232,10 +232,27 @@
</PreferenceCategory>
<Preference
app:allowDividerAbove="true"
app:icon="@drawable/ic_info"
app:key="version"
app:title="@string/version"/>
<PreferenceCategory android:title="@string/about">
<Preference
app:isPreferenceVisible="false"
app:icon="@drawable/ic_clipboard"
app:key="export_preferences"
app:title="@string/export_from_clipboard"/>
<Preference
app:isPreferenceVisible="false"
app:icon="@drawable/ic_copy"
app:key="import_preferences"
app:title="@string/import_from_clipboard"/>
<Preference
app:icon="@drawable/ic_info"
app:key="version"
app:title="@string/version"/>
</PreferenceCategory>
</PreferenceScreen>