refactor load/save meta to shared prefs

hauntED
yova 4 months ago
parent 4997dd067b
commit ed94b85006

@ -324,7 +324,19 @@ class MainActivity : AppCompatActivity() {
Log.d(javaClass.simpleName, "AutosaveTimer started.") Log.d(javaClass.simpleName, "AutosaveTimer started.")
return return
} }
loadMetaFromSharedPrefs()
if (!loadMetaFromSharedPrefs(applicationContext)) {
with(AlertDialog.Builder(this)){
setPositiveButton("Open", { dialog, id ->
openFile()
})
setNeutralButton("New", { dialog, id ->
selectFileForSaveAs()
})
show()
}
}
if (intent.data !== null) { if (intent.data !== null) {
readFile(intent.data!!) readFile(intent.data!!)
Log.d(javaClass.simpleName,"Loading on resume from intent: ${thisFileUri}") 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?) intent.putExtra(Intent.EXTRA_STREAM, null as Uri?)
} else if (mimeType == "text" && intent.data != null ) { } else if (mimeType == "text" && intent.data != null ) {
thisFileUri = uri thisFileUri = uri
saveMetaToSharedPrefs() saveMetaToSharedPrefs(applicationContext)
Log.d(javaClass.simpleName,"wanna start app with new txt") Log.d(javaClass.simpleName,"wanna start app with new txt")
} }
} }
@ -728,8 +740,6 @@ class MainActivity : AppCompatActivity() {
startActivityForResult(intent, OPEN_FILE) startActivityForResult(intent, OPEN_FILE)
} }
fun selectFileForSaveAs() { fun selectFileForSaveAs() {
val intent = Intent(Intent.ACTION_CREATE_DOCUMENT).apply { val intent = Intent(Intent.ACTION_CREATE_DOCUMENT).apply {
addCategory(Intent.CATEGORY_OPENABLE) addCategory(Intent.CATEGORY_OPENABLE)
@ -791,7 +801,7 @@ class MainActivity : AppCompatActivity() {
Intent.FLAG_GRANT_READ_URI_PERMISSION and Intent.FLAG_GRANT_WRITE_URI_PERMISSION Intent.FLAG_GRANT_READ_URI_PERMISSION and Intent.FLAG_GRANT_WRITE_URI_PERMISSION
) )
thisFileUri = uri thisFileUri = uri
saveMetaToSharedPrefs() saveMetaToSharedPrefs(applicationContext)
if (metaData.metaData.get("url") == null) { if (metaData.metaData.get("url") == null) {
deleteVisible = false deleteVisible = false
invalidateOptionsMenu() invalidateOptionsMenu()
@ -929,7 +939,7 @@ class MainActivity : AppCompatActivity() {
Toast.LENGTH_LONG Toast.LENGTH_LONG
).show() ).show()
textFile.close() textFile.close()
saveMetaToSharedPrefs() saveMetaToSharedPrefs(applicationContext)
Log.i(javaClass.simpleName, "file newly written") Log.i(javaClass.simpleName, "file newly written")
} catch (e: Exception) { } catch (e: Exception) {
Toast.makeText( 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() { override fun onPause() {
super.onPause() super.onPause()
try{ try{
@ -1133,7 +1111,7 @@ class MainActivity : AppCompatActivity() {
webView.evaluateJavascript("easyMDE.codemirror.doc.getCursor();") { webView.evaluateJavascript("easyMDE.codemirror.doc.getCursor();") {
metaData.cursor=it metaData.cursor=it
Log.i(javaClass.simpleName,"Cursor: $it") Log.i(javaClass.simpleName,"Cursor: $it")
saveMetaToSharedPrefs() saveMetaToSharedPrefs(applicationContext)
} }
Log.i(javaClass.simpleName, "\"onPause\" durchlaufen") Log.i(javaClass.simpleName, "\"onPause\" durchlaufen")
} }
@ -1143,5 +1121,3 @@ class MainActivity : AppCompatActivity() {
Log.i(javaClass.simpleName, "\"onRestoreInstanceState\" durchlaufen") Log.i(javaClass.simpleName, "\"onRestoreInstanceState\" durchlaufen")
} }
} }

@ -2,13 +2,10 @@ package org.wntr.mdeditor
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.content.Context import android.content.Context
import android.content.Intent
import android.net.Uri import android.net.Uri
import android.provider.OpenableColumns import android.provider.OpenableColumns
import android.util.Log import android.util.Log
import android.widget.Toast import android.widget.Toast
import androidx.core.content.ContextCompat.startActivity
import androidx.core.content.FileProvider
import java.io.File import java.io.File
import java.io.FileOutputStream import java.io.FileOutputStream
import java.io.IOException import java.io.IOException
@ -161,3 +158,28 @@ fun queryName(context: Context, uri: Uri): String? {
return name 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