From 04165e006884b0ac958e615750b961c4d8a97313 Mon Sep 17 00:00:00 2001 From: Dennis Date: Fri, 11 Apr 2025 22:33:22 +0200 Subject: [PATCH] Implements extremely basic file reading --- .../java/com/dnsc/plaindo/MainActivity.kt | 33 ++++++++++++++++++- .../dnsc/plaindo/data/TodoFileRepository.kt | 24 ++++++++++++++ 2 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 app/src/main/java/com/dnsc/plaindo/data/TodoFileRepository.kt diff --git a/app/src/main/java/com/dnsc/plaindo/MainActivity.kt b/app/src/main/java/com/dnsc/plaindo/MainActivity.kt index 1f702ec..f56805a 100644 --- a/app/src/main/java/com/dnsc/plaindo/MainActivity.kt +++ b/app/src/main/java/com/dnsc/plaindo/MainActivity.kt @@ -1,19 +1,50 @@ package com.dnsc.plaindo import android.os.Bundle +import android.util.Log import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.activity.enableEdgeToEdge +import androidx.activity.result.ActivityResultLauncher +import androidx.activity.result.contract.ActivityResultContracts +import com.dnsc.plaindo.data.TodoFileRepository import com.dnsc.plaindo.ui.theme.PlaindoTheme class MainActivity : ComponentActivity() { + private lateinit var todoFileRepository: TodoFileRepository + private lateinit var openDocumentLauncher: ActivityResultLauncher> + private val TAG = "MainActivity" + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) + + // Set up dependencies + todoFileRepository = TodoFileRepository(this) + + // Draw content enableEdgeToEdge() setContent { PlaindoTheme { PlaindoApp() } } + + // Handle init tasks + openDocumentLauncher = registerForActivityResult( + ActivityResultContracts.OpenDocument() + ) { uri -> + if (uri != null) { + // TODO: Store uri in shared preferences + // TODO: Persist access to URI + todoFileRepository.load(uri) + } else { + // TODO: Handle user cancelled selection + Log.d(TAG, "No document selected") + } + } + + // TODO: Move to / listen to button click for this function + openDocumentLauncher.launch(arrayOf("text/plain")) } -} \ No newline at end of file +} + diff --git a/app/src/main/java/com/dnsc/plaindo/data/TodoFileRepository.kt b/app/src/main/java/com/dnsc/plaindo/data/TodoFileRepository.kt new file mode 100644 index 0000000..c1ea45f --- /dev/null +++ b/app/src/main/java/com/dnsc/plaindo/data/TodoFileRepository.kt @@ -0,0 +1,24 @@ +package com.dnsc.plaindo.data + +import android.content.Context +import android.net.Uri +import android.util.Log +import java.io.BufferedReader +import java.io.InputStreamReader + +class TodoFileRepository(val context: Context) { + fun load(uri: Uri) { + context.contentResolver.openInputStream(uri)?.use { inputStream -> + BufferedReader(InputStreamReader(inputStream)).use { reader -> + var line: String? = reader.readLine() + while (line != null) { + Log.d("Plaindo", line) + + // TODO: Add task to data structure + + line = reader.readLine() + } + } + } + } +} \ No newline at end of file