refactor load/save meta to shared prefs

hauntED
yova 3 months ago
parent 4997dd067b
commit ed94b85006

@ -324,7 +324,19 @@ class MainActivity : AppCompatActivity() {
Log.d(javaClass.simpleName, "AutosaveTimer started.")
return
}
loadMetaFromSharedPrefs()
if (!loadMetaFromSharedPrefs(applicationContext)) {
with(AlertDialog.Builder(this)){
setPositiveButton("Open", { dialog, id ->
openFile()
})
setNeutralButton("New", { dialog, id ->
selectFileForSaveAs()
})
show()
}
}
if (intent.data !== null) {
readFile(intent.data!!)
Log.d(javaClass.simpleName,"Loading on resume from intent: ${thisFileUri}")
@ -386,7 +398,7 @@ class MainActivity : AppCompatActivity() {
intent.putExtra(Intent.EXTRA_STREAM, null as Uri?)
} else if (mimeType == "text" && intent.data != null ) {
thisFileUri = uri
saveMetaToSharedPrefs()
saveMetaToSharedPrefs(applicationContext)
Log.d(javaClass.simpleName,"wanna start app with new txt")
}
}
@ -728,8 +740,6 @@ class MainActivity : AppCompatActivity() {
startActivityForResult(intent, OPEN_FILE)
}
fun selectFileForSaveAs() {
val intent = Intent(Intent.ACTION_CREATE_DOCUMENT).apply {
addCategory(Intent.CATEGORY_OPENABLE)
@ -791,7 +801,7 @@ class MainActivity : AppCompatActivity() {
Intent.FLAG_GRANT_READ_URI_PERMISSION and Intent.FLAG_GRANT_WRITE_URI_PERMISSION
)
thisFileUri = uri
saveMetaToSharedPrefs()
saveMetaToSharedPrefs(applicationContext)
if (metaData.metaData.get("url") == null) {
deleteVisible = false
invalidateOptionsMenu()
@ -929,7 +939,7 @@ class MainActivity : AppCompatActivity() {
Toast.LENGTH_LONG
).show()
textFile.close()
saveMetaToSharedPrefs()
saveMetaToSharedPrefs(applicationContext)
Log.i(javaClass.simpleName, "file newly written")
} catch (e: Exception) {
Toast.makeText(
@ -1090,38 +1100,6 @@ class MainActivity : AppCompatActivity() {
}
}
private fun saveMetaToSharedPrefs() {
if (thisFileUri == null) return
Log.d(javaClass.simpleName, "saving to shared prefs cursor: ${metaData.cursor} in file: ${thisFileUri}")
getSharedPreferences("prefs", Context.MODE_PRIVATE)
.edit().apply {
putString("lastFile", thisFileUri.toString())
putString("cursor", metaData.cursor)
apply()
}
}
private fun loadMetaFromSharedPrefs(){
val prefs = getSharedPreferences("prefs", Context.MODE_PRIVATE)
val uriString = prefs.getString("lastFile", "noLastFile")
if (uriString == "noLastFile") {
with(AlertDialog.Builder(this)){
setPositiveButton("Open", { dialog, id ->
openFile()
})
setNeutralButton("New", { dialog, id ->
selectFileForSaveAs()
})
show()
}
} else {
thisFileUri = parse(uriString)
metaData.cursor = prefs.getString("cursor", "nocursor") ?: "{ line: 0, ch: 0, sticky: null }"
Log.i(javaClass.simpleName,"Loaded cursor: ${metaData.cursor}")
}
}
override fun onPause() {
super.onPause()
try{
@ -1133,7 +1111,7 @@ class MainActivity : AppCompatActivity() {
webView.evaluateJavascript("easyMDE.codemirror.doc.getCursor();") {
metaData.cursor=it
Log.i(javaClass.simpleName,"Cursor: $it")
saveMetaToSharedPrefs()
saveMetaToSharedPrefs(applicationContext)
}
Log.i(javaClass.simpleName, "\"onPause\" durchlaufen")
}
@ -1143,5 +1121,3 @@ class MainActivity : AppCompatActivity() {
Log.i(javaClass.simpleName, "\"onRestoreInstanceState\" durchlaufen")
}
}

@ -2,13 +2,10 @@ package org.wntr.mdeditor
import android.annotation.SuppressLint
import android.content.Context
import android.content.Intent
import android.net.Uri
import android.provider.OpenableColumns
import android.util.Log
import android.widget.Toast
import androidx.core.content.ContextCompat.startActivity
import androidx.core.content.FileProvider
import java.io.File
import java.io.FileOutputStream
import java.io.IOException
@ -161,3 +158,28 @@ fun queryName(context: Context, uri: Uri): String? {
return name
}
fun saveMetaToSharedPrefs(context: Context) {
if (MainActivity.thisFileUri == null) return
Log.d("saveMetaToSharedPrefs", "saving to shared prefs cursor: ${MainActivity.metaData.cursor} in file: ${MainActivity.thisFileUri}")
context.getSharedPreferences("prefs", Context.MODE_PRIVATE)
.edit().apply {
putString("lastFile", MainActivity.thisFileUri.toString())
putString("cursor", MainActivity.metaData.cursor)
apply()
}
}
fun loadMetaFromSharedPrefs(context: Context): Boolean{
val prefs = context.getSharedPreferences("prefs", Context.MODE_PRIVATE)
val uriString = prefs.getString("lastFile", "noLastFile")
if (uriString == "noLastFile") {
Log.i("loadMetaFromSharedPrefs","No lastfile saved")
return false
} else {
MainActivity.thisFileUri = Uri.parse(uriString)
MainActivity.metaData.cursor = prefs.getString("cursor", "nocursor") ?: "{ line: 0, ch: 0, sticky: null }"
Log.i("loadMetaFromSharedPrefs","Loaded cursor: ${MainActivity.metaData.cursor}")
return true
}
}

Loading…
Cancel
Save