diff --git a/app/src/main/java/oppen/tva/io/GeminiDatasource.kt b/app/src/main/java/oppen/tva/io/GeminiDatasource.kt index 871203c..540dc14 100644 --- a/app/src/main/java/oppen/tva/io/GeminiDatasource.kt +++ b/app/src/main/java/oppen/tva/io/GeminiDatasource.kt @@ -132,6 +132,7 @@ class GeminiDatasource: Datasource{ val header = GeminiResponse.parseHeader(headerLine) when { + header.code == GeminiResponse.INPUT -> onUpdate(TvaState.ResponseInput(uri, header)) header.code == GeminiResponse.REDIRECT -> request(URI.create(header.meta), onUpdate) header.code != GeminiResponse.SUCCESS -> onUpdate(TvaState.ResponseError(header)) header.meta.startsWith("text/gemini") -> getGemtext(socket, uri, header, onUpdate) diff --git a/app/src/main/java/oppen/tva/io/TvaState.kt b/app/src/main/java/oppen/tva/io/TvaState.kt index 30033f9..626b06c 100644 --- a/app/src/main/java/oppen/tva/io/TvaState.kt +++ b/app/src/main/java/oppen/tva/io/TvaState.kt @@ -8,6 +8,7 @@ sealed class TvaState { data class NotGeminiRequest(val uri: URI) : TvaState() data class ResponseGemtext(val uri: URI, val header: GeminiResponse.Header, val lines: List) : TvaState() + data class ResponseInput(val uri: URI, val header: GeminiResponse.Header) : TvaState() data class ResponseText(val uri: URI, val header: GeminiResponse.Header, val content: String) : TvaState() data class ResponseError(val header: GeminiResponse.Header): TvaState() diff --git a/app/src/main/java/oppen/tva/ui/GemtextAdapter.kt b/app/src/main/java/oppen/tva/ui/GemtextAdapter.kt index c35ad2e..a0ac8ff 100644 --- a/app/src/main/java/oppen/tva/ui/GemtextAdapter.kt +++ b/app/src/main/java/oppen/tva/ui/GemtextAdapter.kt @@ -71,7 +71,7 @@ class GemtextAdapter(val onLink: (link: URI, longTap: Boolean, view: View?) -> U when(holder){ is ViewHolder.Text -> holder.itemView.gemtext_text_textview.text = line - is ViewHolder.Code-> holder.itemView.gemtext_text_monospace_textview.text = line.substring(3).trim() + is ViewHolder.Code-> holder.itemView.gemtext_text_monospace_textview.text = line.substring(3) is ViewHolder.H1 -> holder.itemView.gemtext_text_textview.text = line.substring(2).trim() is ViewHolder.H2 -> holder.itemView.gemtext_text_textview.text = line.substring(3).trim() is ViewHolder.H3 -> holder.itemView.gemtext_text_textview.text = line.substring(4).trim() diff --git a/app/src/main/java/oppen/tva/ui/TvaActivity.kt b/app/src/main/java/oppen/tva/ui/TvaActivity.kt index 57646ae..e99931a 100644 --- a/app/src/main/java/oppen/tva/ui/TvaActivity.kt +++ b/app/src/main/java/oppen/tva/ui/TvaActivity.kt @@ -21,12 +21,13 @@ import oppen.tva.io.RuntimeCache import oppen.tva.io.TvaState import oppen.tva.io.history.tabs.TabHistoryInterface import oppen.tva.io.history.uris.HistoryInterface -import oppen.tva.ui.about.AboutDialog -import oppen.tva.ui.history.HistoryDialog -import oppen.tva.ui.overflow.OverflowPopup -import oppen.tva.ui.set_home.SetHomeDialog -import oppen.tva.ui.tabs.NewTabPopup -import oppen.tva.ui.tabs.TabsDialog +import oppen.tva.ui.modals_menus.about.AboutDialog +import oppen.tva.ui.modals_menus.history.HistoryDialog +import oppen.tva.ui.modals_menus.input.InputDialog +import oppen.tva.ui.modals_menus.overflow.OverflowPopup +import oppen.tva.ui.modals_menus.set_home.SetHomeDialog +import oppen.tva.ui.modals_menus.tabs.NewTabPopup +import oppen.tva.ui.modals_menus.tabs.TabsDialog import oppen.visibleRetainingSpace @@ -63,6 +64,10 @@ class TvaActivity : AppCompatActivity() { model.initialise(TabHistoryInterface.default(this)){ state -> when(state){ is TvaState.AppQuery -> runOnUiThread{ showAlert("App backdoor/query not implemented yet") } + is TvaState.ResponseInput -> runOnUiThread { InputDialog.show(this, state){ queryAddress -> + model.request(queryAddress) + } + } is TvaState.Requesting -> loadingView(true) is TvaState.NotGeminiRequest -> externalProtocol(state) is TvaState.ResponseError -> showAlert("${GeminiResponse.getCodeString(state.header.code)}: ${state.header.meta}") @@ -128,7 +133,7 @@ class TvaActivity : AppCompatActivity() { } } binding.home.setOnClickListener { - val prefs = getSharedPreferences("oppen.tva.ui.set_home", Context.MODE_PRIVATE) + val prefs = getSharedPreferences("oppen.tva.ui.dialogs.set_home", Context.MODE_PRIVATE) val home = prefs.getString("home", Tva.DEFAULT_HOME_CAPSULE) model.request(home!!) } diff --git a/app/src/main/java/oppen/tva/ui/TvaViewModel.kt b/app/src/main/java/oppen/tva/ui/TvaViewModel.kt index a86d4d0..fdbcaa4 100644 --- a/app/src/main/java/oppen/tva/ui/TvaViewModel.kt +++ b/app/src/main/java/oppen/tva/ui/TvaViewModel.kt @@ -52,6 +52,7 @@ class TvaViewModel: ViewModel() { gemini.request(uri){ state -> when(state){ is TvaState.AppQuery -> {} + is TvaState.ResponseInput -> onState(state) is TvaState.ResponseGemtext -> renderGemini(state) is TvaState.Requesting -> onState(state) is TvaState.ResponseError -> onState(state) diff --git a/app/src/main/java/oppen/tva/ui/about/AboutDialog.kt b/app/src/main/java/oppen/tva/ui/modals_menus/about/AboutDialog.kt similarity index 96% rename from app/src/main/java/oppen/tva/ui/about/AboutDialog.kt rename to app/src/main/java/oppen/tva/ui/modals_menus/about/AboutDialog.kt index 5402fe2..0f06d90 100644 --- a/app/src/main/java/oppen/tva/ui/about/AboutDialog.kt +++ b/app/src/main/java/oppen/tva/ui/modals_menus/about/AboutDialog.kt @@ -1,4 +1,4 @@ -package oppen.tva.ui.about +package oppen.tva.ui.modals_menus.about import android.content.Context import android.content.Intent diff --git a/app/src/main/java/oppen/tva/ui/history/HistoryAdapter.kt b/app/src/main/java/oppen/tva/ui/modals_menus/history/HistoryAdapter.kt similarity index 95% rename from app/src/main/java/oppen/tva/ui/history/HistoryAdapter.kt rename to app/src/main/java/oppen/tva/ui/modals_menus/history/HistoryAdapter.kt index d59da0d..45bd9bc 100644 --- a/app/src/main/java/oppen/tva/ui/history/HistoryAdapter.kt +++ b/app/src/main/java/oppen/tva/ui/modals_menus/history/HistoryAdapter.kt @@ -1,4 +1,4 @@ -package oppen.tva.ui.history +package oppen.tva.ui.modals_menus.history import android.view.LayoutInflater import android.view.View diff --git a/app/src/main/java/oppen/tva/ui/history/HistoryDialog.kt b/app/src/main/java/oppen/tva/ui/modals_menus/history/HistoryDialog.kt similarity index 98% rename from app/src/main/java/oppen/tva/ui/history/HistoryDialog.kt rename to app/src/main/java/oppen/tva/ui/modals_menus/history/HistoryDialog.kt index d67f452..dd5ab36 100644 --- a/app/src/main/java/oppen/tva/ui/history/HistoryDialog.kt +++ b/app/src/main/java/oppen/tva/ui/modals_menus/history/HistoryDialog.kt @@ -1,4 +1,4 @@ -package oppen.tva.ui.history +package oppen.tva.ui.modals_menus.history import android.content.Context import android.view.MenuInflater diff --git a/app/src/main/java/oppen/tva/ui/modals_menus/input/InputDialog.kt b/app/src/main/java/oppen/tva/ui/modals_menus/input/InputDialog.kt new file mode 100644 index 0000000..96a981a --- /dev/null +++ b/app/src/main/java/oppen/tva/ui/modals_menus/input/InputDialog.kt @@ -0,0 +1,11 @@ +package oppen.tva.ui.modals_menus.input + +import oppen.tva.io.TvaState +import oppen.tva.ui.TvaActivity + +object InputDialog { + + fun show(tvaActivity: TvaActivity, state: TvaState.ResponseInput, onQuery: (queryAddress: String) -> Unit) { + + } +} \ No newline at end of file diff --git a/app/src/main/java/oppen/tva/ui/overflow/OverflowPopup.kt b/app/src/main/java/oppen/tva/ui/modals_menus/overflow/OverflowPopup.kt similarity index 94% rename from app/src/main/java/oppen/tva/ui/overflow/OverflowPopup.kt rename to app/src/main/java/oppen/tva/ui/modals_menus/overflow/OverflowPopup.kt index 9f1e721..6082796 100644 --- a/app/src/main/java/oppen/tva/ui/overflow/OverflowPopup.kt +++ b/app/src/main/java/oppen/tva/ui/modals_menus/overflow/OverflowPopup.kt @@ -1,4 +1,4 @@ -package oppen.tva.ui.overflow +package oppen.tva.ui.modals_menus.overflow import android.view.MenuInflater import android.view.View diff --git a/app/src/main/java/oppen/tva/ui/set_home/SetHomeDialog.kt b/app/src/main/java/oppen/tva/ui/modals_menus/set_home/SetHomeDialog.kt similarity index 86% rename from app/src/main/java/oppen/tva/ui/set_home/SetHomeDialog.kt rename to app/src/main/java/oppen/tva/ui/modals_menus/set_home/SetHomeDialog.kt index 6a7971f..fd19afc 100644 --- a/app/src/main/java/oppen/tva/ui/set_home/SetHomeDialog.kt +++ b/app/src/main/java/oppen/tva/ui/modals_menus/set_home/SetHomeDialog.kt @@ -1,4 +1,4 @@ -package oppen.tva.ui.set_home +package oppen.tva.ui.modals_menus.set_home import android.content.Context import android.view.View @@ -9,7 +9,7 @@ import oppen.tva.R object SetHomeDialog { fun show(context: Context, currentAddress: String, onUpdate: () -> Unit){ - val prefs = context.getSharedPreferences("oppen.tva.ui.set_home", Context.MODE_PRIVATE) + val prefs = context.getSharedPreferences("oppen.tva.ui.dialogs.set_home", Context.MODE_PRIVATE) val home = prefs.getString("home", "") diff --git a/app/src/main/java/oppen/tva/ui/tabs/NewTabPopup.kt b/app/src/main/java/oppen/tva/ui/modals_menus/tabs/NewTabPopup.kt similarity index 92% rename from app/src/main/java/oppen/tva/ui/tabs/NewTabPopup.kt rename to app/src/main/java/oppen/tva/ui/modals_menus/tabs/NewTabPopup.kt index 3b33365..6db94a6 100644 --- a/app/src/main/java/oppen/tva/ui/tabs/NewTabPopup.kt +++ b/app/src/main/java/oppen/tva/ui/modals_menus/tabs/NewTabPopup.kt @@ -1,10 +1,9 @@ -package oppen.tva.ui.tabs +package oppen.tva.ui.modals_menus.tabs import android.view.MenuInflater import android.view.View import androidx.appcompat.widget.PopupMenu import oppen.tva.R -import java.net.URI object NewTabPopup { diff --git a/app/src/main/java/oppen/tva/ui/tabs/TabsAdapter.kt b/app/src/main/java/oppen/tva/ui/modals_menus/tabs/TabsAdapter.kt similarity index 96% rename from app/src/main/java/oppen/tva/ui/tabs/TabsAdapter.kt rename to app/src/main/java/oppen/tva/ui/modals_menus/tabs/TabsAdapter.kt index 7531cbe..a9d8394 100644 --- a/app/src/main/java/oppen/tva/ui/tabs/TabsAdapter.kt +++ b/app/src/main/java/oppen/tva/ui/modals_menus/tabs/TabsAdapter.kt @@ -1,4 +1,4 @@ -package oppen.tva.ui.tabs +package oppen.tva.ui.modals_menus.tabs import android.view.LayoutInflater import android.view.View diff --git a/app/src/main/java/oppen/tva/ui/tabs/TabsDialog.kt b/app/src/main/java/oppen/tva/ui/modals_menus/tabs/TabsDialog.kt similarity index 96% rename from app/src/main/java/oppen/tva/ui/tabs/TabsDialog.kt rename to app/src/main/java/oppen/tva/ui/modals_menus/tabs/TabsDialog.kt index 5df69d8..1ad12f8 100644 --- a/app/src/main/java/oppen/tva/ui/tabs/TabsDialog.kt +++ b/app/src/main/java/oppen/tva/ui/modals_menus/tabs/TabsDialog.kt @@ -1,4 +1,4 @@ -package oppen.tva.ui.tabs +package oppen.tva.ui.modals_menus.tabs import android.content.Context import android.view.View