From f40d7f6f7cfdeb2227d5eb1deac2af23e0ee744e Mon Sep 17 00:00:00 2001 From: tibbi Date: Sun, 19 Mar 2017 17:43:56 +0100 Subject: [PATCH] fix setting the photo save folder --- .../camera/activities/MainActivity.kt | 2 ++ .../camera/activities/SettingsActivity.kt | 35 ++++++------------- 2 files changed, 13 insertions(+), 24 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/camera/activities/MainActivity.kt b/app/src/main/kotlin/com/simplemobiletools/camera/activities/MainActivity.kt index 95ad188e..49f6bb4b 100644 --- a/app/src/main/kotlin/com/simplemobiletools/camera/activities/MainActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/camera/activities/MainActivity.kt @@ -26,6 +26,7 @@ import com.simplemobiletools.camera.extensions.config import com.simplemobiletools.camera.views.FocusRectView import com.simplemobiletools.commons.extensions.checkWhatsNew import com.simplemobiletools.commons.extensions.hasWriteStoragePermission +import com.simplemobiletools.commons.extensions.storeStoragePaths import com.simplemobiletools.commons.extensions.toast import com.simplemobiletools.commons.models.Release import kotlinx.android.synthetic.main.activity_main.* @@ -66,6 +67,7 @@ class MainActivity : SimpleActivity(), SensorEventListener, PreviewListener, Pho mRes = resources tryInitCamera() supportActionBar?.hide() + storeStoragePaths() checkWhatsNewDialog() } diff --git a/app/src/main/kotlin/com/simplemobiletools/camera/activities/SettingsActivity.kt b/app/src/main/kotlin/com/simplemobiletools/camera/activities/SettingsActivity.kt index 01b0e642..ae6ef0fa 100644 --- a/app/src/main/kotlin/com/simplemobiletools/camera/activities/SettingsActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/camera/activities/SettingsActivity.kt @@ -6,17 +6,14 @@ import android.view.MenuItem import com.simplemobiletools.camera.* import com.simplemobiletools.camera.extensions.config import com.simplemobiletools.commons.dialogs.FilePickerDialog -import com.simplemobiletools.commons.extensions.getBasePath -import com.simplemobiletools.commons.extensions.getHumanReadablePath +import com.simplemobiletools.commons.extensions.humanizePath import com.simplemobiletools.commons.extensions.updateTextColors import com.simplemobiletools.commons.helpers.LICENSE_GLIDE import com.simplemobiletools.commons.helpers.LICENSE_KOTLIN import kotlinx.android.synthetic.main.activity_settings.* +import java.io.File class SettingsActivity : SimpleActivity() { - var mCurrPath = "" - var mWantedPath = "" - override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_settings) @@ -48,32 +45,22 @@ class SettingsActivity : SimpleActivity() { } private fun setupSavePhotosFolder() { - mCurrPath = config.savePhotosFolder - settings_save_photos.text = getHumanPath() + settings_save_photos.text = getLastPart(config.savePhotosFolder) settings_save_photos_holder.setOnClickListener { - FilePickerDialog(this, mCurrPath, false) { - /*mWantedPath = pickedPath - if (!isShowingWritePermissions(File(pickedPath), config.treeUri, OPEN_DOCUMENT_TREE)) { - mCurrPath = if (pickedPath.length == 1) pickedPath else pickedPath.trimEnd('/') - config.savePhotosFolder = mCurrPath - settings_save_photos.text = getHumanPath() - }*/ + FilePickerDialog(this, config.savePhotosFolder, false) { + handleSAFDialog(File(it)) { + config.savePhotosFolder = it + settings_save_photos.text = getLastPart(config.savePhotosFolder) + } } } } - private fun getHumanPath(): String { - val basePath = mCurrPath.getBasePath(this) - val path = mCurrPath.replaceFirst(basePath, getStorageName(basePath)).trimEnd('/') - - return if (path.contains('/')) - path.substring(path.lastIndexOf("/") + 1) - else - path + private fun getLastPart(path: String): String { + val humanized = humanizePath(path) + return humanized.substringAfterLast("/", humanized) } - private fun getStorageName(basePath: String) = "${getHumanReadablePath(basePath)}/" - private fun setupShowPreview() { settings_show_preview.isChecked = config.isShowPreviewEnabled settings_show_preview_holder.setOnClickListener {