Skip to content

Commit

Permalink
feat: internal shared data directory
Browse files Browse the repository at this point in the history
  • Loading branch information
WhiredPlanck committed Jul 16, 2024
1 parent 1cc9edd commit f3ad724
Show file tree
Hide file tree
Showing 7 changed files with 7 additions and 29 deletions.
4 changes: 2 additions & 2 deletions app/src/main/java/com/osfans/trime/core/Rime.kt
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,8 @@ class Rime : RimeApi, RimeLifecycleOwner {
DataManager.dirFireChange()
DataManager.sync()

val sharedDataDir = AppPrefs.defaultInstance().profile.sharedDataDir
val userDataDir = AppPrefs.defaultInstance().profile.userDataDir
val sharedDataDir = DataManager.sharedDataDir.absolutePath
val userDataDir = DataManager.userDataDir.absolutePath
Timber.i("Starting up Rime APIs ...")
startupRime(sharedDataDir, userDataDir, fullCheck)

Expand Down
5 changes: 2 additions & 3 deletions app/src/main/java/com/osfans/trime/data/base/DataManager.kt
Original file line number Diff line number Diff line change
Expand Up @@ -71,8 +71,7 @@ object DataManager {
}

@JvmStatic
val sharedDataDir
get() = File(prefs.profile.sharedDataDir)
val sharedDataDir = File(appContext.getExternalFilesDir(null), "shared").also { it.mkdirs() }

@JvmStatic
val userDataDir
Expand Down Expand Up @@ -123,7 +122,7 @@ object DataManager {
ResourceUtils.copyFile(DATA_CHECKSUMS_NAME, dataDir)

// FIXME:缺失 default.custom.yaml 会导致方案列表为空
File(sharedDataDir, DEFAULT_CUSTOM_FILE_NAME).let {
File(userDataDir, DEFAULT_CUSTOM_FILE_NAME).let {
if (!it.exists()) {
Timber.d("Creating empty default.custom.yaml")
it.bufferedWriter().use { w -> w.write("") }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ object OpenCCDictManager {
@Keep
private val onDataDirChange =
DataManager.OnDataDirChangeListener {
sharedDir = File(DataManager.sharedDataDir, "opencc").also { it.mkdirs() }
userDir = File(DataManager.userDataDir, "opencc").also { it.mkdirs() }
}

Expand All @@ -32,8 +31,8 @@ object OpenCCDictManager {
DataManager.addOnChangedListener(onDataDirChange)
}

var sharedDir = File(DataManager.sharedDataDir, "opencc").also { it.mkdirs() }
var userDir = File(DataManager.userDataDir, "opencc").also { it.mkdirs() }
private val sharedDir = File(DataManager.sharedDataDir, "opencc").also { it.mkdirs() }
private var userDir = File(DataManager.userDataDir, "opencc").also { it.mkdirs() }

fun sharedDictionaries(): List<Dictionary> =
sharedDir
Expand All @@ -45,12 +44,7 @@ object OpenCCDictManager {
.listFiles()
?.mapNotNull { Dictionary.new(it) } ?: listOf()

fun getAllDictionaries(): List<Dictionary> =
if (sharedDir.path == userDir.path) {
userDictionaries()
} else {
(sharedDictionaries() + userDictionaries())
}
fun getAllDictionaries(): List<Dictionary> = sharedDictionaries() + userDictionaries()

fun importFromFile(file: File): OpenCCDictionary {
val raw =
Expand Down
2 changes: 0 additions & 2 deletions app/src/main/java/com/osfans/trime/data/prefs/AppPrefs.kt
Original file line number Diff line number Diff line change
Expand Up @@ -208,7 +208,6 @@ class AppPrefs(
*/
class Profile(shared: SharedPreferences) : PreferenceDelegateOwner(shared) {
companion object {
const val SHARED_DATA_DIR = "profile_shared_data_dir"
const val USER_DATA_DIR = "profile_user_data_dir"
const val SYNC_BACKGROUND_ENABLED = "profile_sync_in_background"
const val TIMING_SYNC_ENABLED = "profile_timing_sync"
Expand All @@ -217,7 +216,6 @@ class AppPrefs(
const val LAST_BACKGROUND_SYNC = "profile_last_background_sync"
}

var sharedDataDir by string(SHARED_DATA_DIR, DataManager.defaultDataDirectory.path)
var userDataDir by string(USER_DATA_DIR, DataManager.defaultDataDirectory.path)
var syncBackgroundEnabled by bool(SYNC_BACKGROUND_ENABLED, false)
var timingSyncEnabled by bool(TIMING_SYNC_ENABLED, false)
Expand Down
3 changes: 0 additions & 3 deletions app/src/main/java/com/osfans/trime/data/theme/ThemeManager.kt
Original file line number Diff line number Diff line change
Expand Up @@ -42,9 +42,6 @@ object ThemeManager {
private val userThemes: MutableList<String> get() = listThemes(DataManager.userDataDir)

fun getAllThemes(): List<String> {
if (DataManager.sharedDataDir.absolutePath == DataManager.userDataDir.absolutePath) {
return userThemes
}
return sharedThemes + userThemes
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,10 +67,6 @@ class ProfileFragment :
) {
addPreferencesFromResource(R.xml.profile_preference)
with(preferenceScreen) {
get<FolderPickerPreference>("profile_shared_data_dir")?.apply {
setDefaultValue(DataManager.defaultDataDirectory.path)
registerDocumentTreeLauncher()
}
get<FolderPickerPreference>("profile_user_data_dir")?.apply {
setDefaultValue(DataManager.defaultDataDirectory.path)
registerDocumentTreeLauncher()
Expand Down
6 changes: 0 additions & 6 deletions app/src/main/res/xml/profile_preference.xml
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,6 @@ SPDX-License-Identifier: GPL-3.0-or-later

<PreferenceCategory android:title="@string/storage"
app:iconSpaceReserved="false" >
<com.osfans.trime.ui.components.FolderPickerPreference
android:key="profile_shared_data_dir"
app:iconSpaceReserved="false"
android:title="@string/profile_shared_data_dir"
app:persistent="true"
app:useSimpleSummaryProvider="true" />

<com.osfans.trime.ui.components.FolderPickerPreference
android:key="profile_user_data_dir"
Expand Down

0 comments on commit f3ad724

Please sign in to comment.