From 5ad7c697e399874e5b8b9f78e8c3b5d8886fad65 Mon Sep 17 00:00:00 2001 From: Mariotaku Lee Date: Mon, 28 Aug 2017 18:26:46 +0800 Subject: [PATCH] added reload translation after changed language --- .../twidere/fragment/status/StatusFragment.kt | 8 +++++++- .../status/TranslationDestinationDialogFragment.kt | 12 +++++++++--- .../org/mariotaku/twidere/util/cache/JsonCache.kt | 12 +++++++----- 3 files changed, 23 insertions(+), 9 deletions(-) diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/status/StatusFragment.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/status/StatusFragment.kt index 7adf28335..d6a55d5ab 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/status/StatusFragment.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/fragment/status/StatusFragment.kt @@ -506,6 +506,11 @@ class StatusFragment : BaseFragment(), LoaderCallbacks?) { val readPosition = saveReadPosition() val changed = adapter.setData(data) @@ -637,7 +642,8 @@ class StatusFragment : BaseFragment(), LoaderCallbacks(EXTRA_LANGUAGES).sortedArrayWith(LanguageComparator()) val selectedLanguage = preferences[translationDestinationKey] ?: arguments.getString(EXTRA_SELECTED_LANGUAGE) val selectedIndex = languages.indexOfFirst { selectedLanguage == it.code } builder.setSingleChoiceItems(languages.mapToArray { it.name }, selectedIndex) { _, which -> - preferences[translationDestinationKey] = languages[which].code + currentIndex.set(which) } - builder.setPositiveButton(android.R.string.ok) { _, _ -> - + builder.setPositiveButton(android.R.string.ok) lambda@ { di, _ -> + val idx = currentIndex.get() + if (idx < 0) return@lambda + preferences[translationDestinationKey] = languages[idx].code + (targetFragment as? StatusFragment)?.reloadTranslation() } builder.setNegativeButton(android.R.string.cancel, null) val dialog = builder.create() diff --git a/twidere/src/main/kotlin/org/mariotaku/twidere/util/cache/JsonCache.kt b/twidere/src/main/kotlin/org/mariotaku/twidere/util/cache/JsonCache.kt index 2e3fc5e29..06373aa25 100644 --- a/twidere/src/main/kotlin/org/mariotaku/twidere/util/cache/JsonCache.kt +++ b/twidere/src/main/kotlin/org/mariotaku/twidere/util/cache/JsonCache.kt @@ -32,11 +32,13 @@ import java.io.IOException class JsonCache(cacheDir: File) { - private val cache: DiskLruCache? = try { - DiskLruCache.open(cacheDir, BuildConfig.VERSION_CODE, 1, 100 * 1048576) - } catch (e: IOException) { - DebugLog.w(tr = e) - null + private val cache: DiskLruCache? by lazy { + try { + return@lazy DiskLruCache.open(cacheDir, BuildConfig.VERSION_CODE, 1, 100 * 1048576) + } catch (e: IOException) { + DebugLog.w(tr = e) + return@lazy null + } } fun getList(key: String, cls: Class): List? {