Skip to content

Commit c139384

Browse files
committed
fix: prevent preference listeners from persisting values before dialog confirmation
- Return false in listeners that show confirmation dialogs to prevent SharedPreferences from being written before the user responds - Add negativeButtonListener to picture/video upload disable dialogs to restore checkbox state when user declines - Remove caching of old path in ScopedStorageProvider on renameTo() failure so migration can be retried on next call
1 parent d937adf commit c139384

4 files changed

Lines changed: 13 additions & 9 deletions

File tree

opencloudApp/src/main/java/eu/opencloud/android/presentation/settings/automaticuploads/SettingsPictureUploadsFragment.kt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -185,9 +185,12 @@ class SettingsPictureUploadsFragment : PreferenceFragmentCompat() {
185185
picturesViewModel.disablePictureUploads()
186186
prefEnablePictureUploads?.isChecked = false
187187
},
188-
negativeButtonText = getString(R.string.common_no)
188+
negativeButtonText = getString(R.string.common_no),
189+
negativeButtonListener = { _, _ ->
190+
prefEnablePictureUploads?.isChecked = true
191+
}
189192
)
190-
true
193+
false
191194
}
192195
}
193196

opencloudApp/src/main/java/eu/opencloud/android/presentation/settings/automaticuploads/SettingsVideoUploadsFragment.kt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -183,9 +183,12 @@ class SettingsVideoUploadsFragment : PreferenceFragmentCompat() {
183183
videosViewModel.disableVideoUploads()
184184
prefEnableVideoUploads?.isChecked = false
185185
},
186-
negativeButtonText = getString(R.string.common_no)
186+
negativeButtonText = getString(R.string.common_no),
187+
negativeButtonListener = { _, _ ->
188+
prefEnableVideoUploads?.isChecked = true
189+
}
187190
)
188-
true
191+
false
189192
}
190193
}
191194

opencloudApp/src/main/java/eu/opencloud/android/presentation/settings/security/SettingsSecurityFragment.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -245,7 +245,7 @@ class SettingsSecurityFragment : PreferenceFragmentCompat() {
245245
.show()
246246
.avoidScreenshotsIfNeeded()
247247
}
248-
return@setOnPreferenceChangeListener true
248+
return@setOnPreferenceChangeListener false
249249
}
250250
true
251251
}
@@ -269,7 +269,7 @@ class SettingsSecurityFragment : PreferenceFragmentCompat() {
269269
.show()
270270
.avoidScreenshotsIfNeeded()
271271
}
272-
return@setOnPreferenceChangeListener true
272+
return@setOnPreferenceChangeListener false
273273
} else {
274274
securityViewModel.setDownloadEverything(false)
275275
workManagerProvider.cancelDownloadEverythingWorker()
@@ -294,7 +294,7 @@ class SettingsSecurityFragment : PreferenceFragmentCompat() {
294294
.show()
295295
.avoidScreenshotsIfNeeded()
296296
}
297-
return@setOnPreferenceChangeListener true
297+
return@setOnPreferenceChangeListener false
298298
} else {
299299
securityViewModel.setAutoSync(false)
300300
workManagerProvider.cancelLocalFileSyncWorker()

opencloudData/src/main/java/eu/opencloud/android/data/providers/ScopedStorageProvider.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,12 +75,10 @@ class ScopedStorageProvider(
7575
return newPath
7676
} else {
7777
Timber.w("Failed to rename root folder from '$oldFolderName' to '$rootFolderName', using old path")
78-
rootFolderPath = oldPath
7978
return oldPath
8079
}
8180
} catch (e: Exception) {
8281
Timber.e(e, "Failed to migrate root folder name")
83-
rootFolderPath = oldPath
8482
return oldPath
8583
}
8684
}

0 commit comments

Comments
 (0)