Added download folder name change
This commit is contained in:
@@ -23,9 +23,11 @@ import android.os.Bundle
|
||||
import android.widget.Toast
|
||||
import androidx.appcompat.app.AlertDialog
|
||||
import androidx.appcompat.app.AppCompatDelegate
|
||||
import androidx.preference.EditTextPreference
|
||||
import androidx.preference.Preference
|
||||
import androidx.preference.PreferenceCategory
|
||||
import androidx.preference.PreferenceFragmentCompat
|
||||
import com.google.android.material.snackbar.Snackbar
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.launch
|
||||
@@ -187,6 +189,14 @@ class SettingsFragment :
|
||||
this ?: return false
|
||||
|
||||
when (key) {
|
||||
"download_folder_name" -> {
|
||||
|
||||
if ((newValue as? String)?.contains("/") != false) {
|
||||
val view = view ?: return false
|
||||
Snackbar.make(view, R.string.settings_invalid_download_folder_name, Snackbar.LENGTH_SHORT).show()
|
||||
return false
|
||||
}
|
||||
}
|
||||
"dark_mode" -> {
|
||||
AppCompatDelegate.setDefaultNightMode(when (newValue as Boolean) {
|
||||
true -> AppCompatDelegate.MODE_NIGHT_YES
|
||||
@@ -282,6 +292,10 @@ class SettingsFragment :
|
||||
|
||||
onPreferenceClickListener = this@SettingsFragment
|
||||
}
|
||||
"download_folder_name" -> {
|
||||
(this as EditTextPreference).dialogMessage = getString(R.string.settings_download_folder_name_message, formatMap.keys.toString())
|
||||
onPreferenceChangeListener = this@SettingsFragment
|
||||
}
|
||||
"download_folder" -> {
|
||||
summary = FileX(context, Preferences.get<String>("download_folder")).canonicalPath
|
||||
|
||||
|
||||
@@ -91,13 +91,14 @@ fun OkHttpClient.Builder.proxyInfo(proxyInfo: ProxyInfo) = this.apply {
|
||||
val formatMap = mapOf<String, GalleryBlock.() -> (String)>(
|
||||
"-id-" to { id.toString() },
|
||||
"-title-" to { title },
|
||||
"-artist-" to { artists.joinToString() }
|
||||
// TODO
|
||||
)
|
||||
/**
|
||||
* Formats download folder name with given Metadata
|
||||
*/
|
||||
fun GalleryBlock.formatDownloadFolder(): String =
|
||||
Preferences["download_folder_format", "-id-"].let {
|
||||
Preferences["download_folder_name", "-id-"].let {
|
||||
formatMap.entries.fold(it) { str, (k, v) ->
|
||||
str.replace(k, v.invoke(this), true)
|
||||
}
|
||||
|
||||
@@ -143,4 +143,7 @@
|
||||
<string name="channel_downloader">ダウンローダ</string>
|
||||
<string name="channel_downloader_description">ダウンローダの状態を表示</string>
|
||||
<string name="downloader_running">ダウンローダー起動中</string>
|
||||
<string name="settings_download_folder_name">フォルダ名パターン</string>
|
||||
<string name="settings_invalid_download_folder_name">フォルダ名に使用できない文字が含まれています</string>
|
||||
<string name="settings_download_folder_name_message">%sに含まれている文字列を対応する変数に置換します</string>
|
||||
</resources>
|
||||
@@ -143,4 +143,7 @@
|
||||
<string name="channel_downloader">다운로더</string>
|
||||
<string name="channel_downloader_description">다운로더 작동 여부 표시</string>
|
||||
<string name="downloader_running">다운로더 작동중…</string>
|
||||
<string name="settings_download_folder_name">폴더명 패턴</string>
|
||||
<string name="settings_invalid_download_folder_name">폴더 패턴에 사용할 수 없는 문자가 포함되어 있습니다</string>
|
||||
<string name="settings_download_folder_name_message">지원되는 변수는 %s 입니다</string>
|
||||
</resources>
|
||||
@@ -135,7 +135,10 @@
|
||||
<string name="settings_clear_history">Clear history</string>
|
||||
<string name="settings_clear_history_alert_message">Do you want to clear histories?</string>
|
||||
<string name="settings_clear_history_summary">%1$d histories saved</string>
|
||||
<string name="settings_download_folder">Download directory</string>
|
||||
<string name="settings_download_folder_name">Folder naming pattern</string>
|
||||
<string name="settings_invalid_download_folder_name">Folder naming pattern is containing invalid characters</string>
|
||||
<string name="settings_download_folder_name_message">Text %s will be replaced to its corresponding value</string>
|
||||
<string name="settings_download_folder">Download folder</string>
|
||||
<string name="settings_download_folder_removable">Removable Storage</string>
|
||||
<string name="settings_download_folder_internal">Internal Storage</string>
|
||||
<string name="settings_download_folder_available">%s available</string>
|
||||
|
||||
@@ -43,6 +43,12 @@
|
||||
app:key="clear_history"
|
||||
app:title="@string/settings_clear_history"/>
|
||||
|
||||
<EditTextPreference
|
||||
app:key="download_folder_name"
|
||||
app:title="@string/settings_download_folder_name"
|
||||
app:defaultValue="-id-"
|
||||
app:useSimpleSummaryProvider="true"/>
|
||||
|
||||
<Preference
|
||||
app:key="download_folder"
|
||||
app:title="@string/settings_download_folder"/>
|
||||
|
||||
Reference in New Issue
Block a user