diff --git a/app/src/main/java/org/wntr/mdeditor/MainActivity.kt b/app/src/main/java/org/wntr/mdeditor/MainActivity.kt index 0e21b49..750c236 100644 --- a/app/src/main/java/org/wntr/mdeditor/MainActivity.kt +++ b/app/src/main/java/org/wntr/mdeditor/MainActivity.kt @@ -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") } } - - diff --git a/app/src/main/java/org/wntr/mdeditor/helpers.kt b/app/src/main/java/org/wntr/mdeditor/helpers.kt index 43b469e..c102b4e 100644 --- a/app/src/main/java/org/wntr/mdeditor/helpers.kt +++ b/app/src/main/java/org/wntr/mdeditor/helpers.kt @@ -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 + } +}