Added download folder name change
This commit is contained in:
@@ -23,9 +23,11 @@ import android.os.Bundle
|
|||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
import androidx.appcompat.app.AlertDialog
|
import androidx.appcompat.app.AlertDialog
|
||||||
import androidx.appcompat.app.AppCompatDelegate
|
import androidx.appcompat.app.AppCompatDelegate
|
||||||
|
import androidx.preference.EditTextPreference
|
||||||
import androidx.preference.Preference
|
import androidx.preference.Preference
|
||||||
import androidx.preference.PreferenceCategory
|
import androidx.preference.PreferenceCategory
|
||||||
import androidx.preference.PreferenceFragmentCompat
|
import androidx.preference.PreferenceFragmentCompat
|
||||||
|
import com.google.android.material.snackbar.Snackbar
|
||||||
import kotlinx.coroutines.CoroutineScope
|
import kotlinx.coroutines.CoroutineScope
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
@@ -187,6 +189,14 @@ class SettingsFragment :
|
|||||||
this ?: return false
|
this ?: return false
|
||||||
|
|
||||||
when (key) {
|
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" -> {
|
"dark_mode" -> {
|
||||||
AppCompatDelegate.setDefaultNightMode(when (newValue as Boolean) {
|
AppCompatDelegate.setDefaultNightMode(when (newValue as Boolean) {
|
||||||
true -> AppCompatDelegate.MODE_NIGHT_YES
|
true -> AppCompatDelegate.MODE_NIGHT_YES
|
||||||
@@ -282,6 +292,10 @@ class SettingsFragment :
|
|||||||
|
|
||||||
onPreferenceClickListener = this@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" -> {
|
"download_folder" -> {
|
||||||
summary = FileX(context, Preferences.get<String>("download_folder")).canonicalPath
|
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)>(
|
val formatMap = mapOf<String, GalleryBlock.() -> (String)>(
|
||||||
"-id-" to { id.toString() },
|
"-id-" to { id.toString() },
|
||||||
"-title-" to { title },
|
"-title-" to { title },
|
||||||
|
"-artist-" to { artists.joinToString() }
|
||||||
// TODO
|
// TODO
|
||||||
)
|
)
|
||||||
/**
|
/**
|
||||||
* Formats download folder name with given Metadata
|
* Formats download folder name with given Metadata
|
||||||
*/
|
*/
|
||||||
fun GalleryBlock.formatDownloadFolder(): String =
|
fun GalleryBlock.formatDownloadFolder(): String =
|
||||||
Preferences["download_folder_format", "-id-"].let {
|
Preferences["download_folder_name", "-id-"].let {
|
||||||
formatMap.entries.fold(it) { str, (k, v) ->
|
formatMap.entries.fold(it) { str, (k, v) ->
|
||||||
str.replace(k, v.invoke(this), true)
|
str.replace(k, v.invoke(this), true)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -143,4 +143,7 @@
|
|||||||
<string name="channel_downloader">ダウンローダ</string>
|
<string name="channel_downloader">ダウンローダ</string>
|
||||||
<string name="channel_downloader_description">ダウンローダの状態を表示</string>
|
<string name="channel_downloader_description">ダウンローダの状態を表示</string>
|
||||||
<string name="downloader_running">ダウンローダー起動中</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>
|
</resources>
|
||||||
@@ -143,4 +143,7 @@
|
|||||||
<string name="channel_downloader">다운로더</string>
|
<string name="channel_downloader">다운로더</string>
|
||||||
<string name="channel_downloader_description">다운로더 작동 여부 표시</string>
|
<string name="channel_downloader_description">다운로더 작동 여부 표시</string>
|
||||||
<string name="downloader_running">다운로더 작동중…</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>
|
</resources>
|
||||||
@@ -135,7 +135,10 @@
|
|||||||
<string name="settings_clear_history">Clear history</string>
|
<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_alert_message">Do you want to clear histories?</string>
|
||||||
<string name="settings_clear_history_summary">%1$d histories saved</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_removable">Removable Storage</string>
|
||||||
<string name="settings_download_folder_internal">Internal Storage</string>
|
<string name="settings_download_folder_internal">Internal Storage</string>
|
||||||
<string name="settings_download_folder_available">%s available</string>
|
<string name="settings_download_folder_available">%s available</string>
|
||||||
|
|||||||
@@ -43,6 +43,12 @@
|
|||||||
app:key="clear_history"
|
app:key="clear_history"
|
||||||
app:title="@string/settings_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
|
<Preference
|
||||||
app:key="download_folder"
|
app:key="download_folder"
|
||||||
app:title="@string/settings_download_folder"/>
|
app:title="@string/settings_download_folder"/>
|
||||||
|
|||||||
Reference in New Issue
Block a user