allow importing favorite fie paths in the app settings
This commit is contained in:
parent
6fac277bbb
commit
332e64a3fe
2 changed files with 69 additions and 0 deletions
|
@ -27,6 +27,7 @@ import kotlin.system.exitProcess
|
||||||
class SettingsActivity : SimpleActivity() {
|
class SettingsActivity : SimpleActivity() {
|
||||||
private val PICK_IMPORT_SOURCE_INTENT = 1
|
private val PICK_IMPORT_SOURCE_INTENT = 1
|
||||||
private val SELECT_EXPORT_FAVORITES_FILE_INTENT = 2
|
private val SELECT_EXPORT_FAVORITES_FILE_INTENT = 2
|
||||||
|
private val SELECT_IMPORT_FAVORITES_FILE_INTENT = 3
|
||||||
private var mRecycleBinContentSize = 0L
|
private var mRecycleBinContentSize = 0L
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
|
@ -96,6 +97,7 @@ class SettingsActivity : SimpleActivity() {
|
||||||
updateTextColors(settings_holder)
|
updateTextColors(settings_holder)
|
||||||
setupClearCache()
|
setupClearCache()
|
||||||
setupExportFavorites()
|
setupExportFavorites()
|
||||||
|
setupImportFavorites()
|
||||||
setupExportSettings()
|
setupExportSettings()
|
||||||
setupImportSettings()
|
setupImportSettings()
|
||||||
|
|
||||||
|
@ -126,6 +128,9 @@ class SettingsActivity : SimpleActivity() {
|
||||||
} else if (requestCode == SELECT_EXPORT_FAVORITES_FILE_INTENT && resultCode == Activity.RESULT_OK && resultData != null && resultData.data != null) {
|
} else if (requestCode == SELECT_EXPORT_FAVORITES_FILE_INTENT && resultCode == Activity.RESULT_OK && resultData != null && resultData.data != null) {
|
||||||
val outputStream = contentResolver.openOutputStream(resultData.data!!)
|
val outputStream = contentResolver.openOutputStream(resultData.data!!)
|
||||||
exportFavoritesTo(outputStream)
|
exportFavoritesTo(outputStream)
|
||||||
|
} else if (requestCode == SELECT_IMPORT_FAVORITES_FILE_INTENT && resultCode == Activity.RESULT_OK && resultData != null && resultData.data != null) {
|
||||||
|
val inputStream = contentResolver.openInputStream(resultData.data!!)
|
||||||
|
importFavorites(inputStream)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -772,6 +777,55 @@ class SettingsActivity : SimpleActivity() {
|
||||||
return "$appName-favorites_${getCurrentFormattedDateTime()}"
|
return "$appName-favorites_${getCurrentFormattedDateTime()}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun setupImportFavorites() {
|
||||||
|
settings_import_favorites_holder.setOnClickListener {
|
||||||
|
if (isQPlus()) {
|
||||||
|
Intent(Intent.ACTION_GET_CONTENT).apply {
|
||||||
|
addCategory(Intent.CATEGORY_OPENABLE)
|
||||||
|
type = "text/plain"
|
||||||
|
startActivityForResult(this, SELECT_IMPORT_FAVORITES_FILE_INTENT)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
handlePermission(PERMISSION_READ_STORAGE) {
|
||||||
|
if (it) {
|
||||||
|
FilePickerDialog(this) {
|
||||||
|
ensureBackgroundThread {
|
||||||
|
importFavorites(File(it).inputStream())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun importFavorites(inputStream: InputStream?) {
|
||||||
|
if (inputStream == null) {
|
||||||
|
toast(R.string.unknown_error_occurred)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
ensureBackgroundThread {
|
||||||
|
var importedItems = 0
|
||||||
|
inputStream.bufferedReader().use {
|
||||||
|
while (true) {
|
||||||
|
try {
|
||||||
|
val line = it.readLine() ?: break
|
||||||
|
if (getDoesFilePathExist(line)) {
|
||||||
|
val favorite = getFavoriteFromPath(line)
|
||||||
|
favoritesDB.insert(favorite)
|
||||||
|
importedItems++
|
||||||
|
}
|
||||||
|
} catch (e: Exception) {
|
||||||
|
showErrorToast(e)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
toast(if (importedItems > 0) R.string.importing_successful else R.string.no_entries_for_importing)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private fun setupExportSettings() {
|
private fun setupExportSettings() {
|
||||||
settings_export_holder.setOnClickListener {
|
settings_export_holder.setOnClickListener {
|
||||||
val configItems = LinkedHashMap<String, Any>().apply {
|
val configItems = LinkedHashMap<String, Any>().apply {
|
||||||
|
|
|
@ -967,6 +967,21 @@
|
||||||
|
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
||||||
|
|
||||||
|
<RelativeLayout
|
||||||
|
android:id="@+id/settings_import_favorites_holder"
|
||||||
|
style="@style/SettingsHolderTextViewOneLinerStyle"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content">
|
||||||
|
|
||||||
|
<com.simplemobiletools.commons.views.MyTextView
|
||||||
|
android:id="@+id/settings_import_favorites"
|
||||||
|
style="@style/SettingsTextLabelStyle"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@string/import_favorite_paths" />
|
||||||
|
|
||||||
|
</RelativeLayout>
|
||||||
|
|
||||||
<RelativeLayout
|
<RelativeLayout
|
||||||
android:id="@+id/settings_export_holder"
|
android:id="@+id/settings_export_holder"
|
||||||
style="@style/SettingsHolderTextViewOneLinerStyle"
|
style="@style/SettingsHolderTextViewOneLinerStyle"
|
||||||
|
|
Loading…
Reference in a new issue