mirror of https://git.sr.ht/~oppen/ariane
move all modals to new package, wip input handling
This commit is contained in:
parent
7c47f2eb32
commit
42013a5fd6
|
@ -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)
|
||||
|
|
|
@ -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<String>) : 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()
|
||||
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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!!)
|
||||
}
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
package oppen.tva.ui.about
|
||||
package oppen.tva.ui.modals_menus.about
|
||||
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
|
@ -1,4 +1,4 @@
|
|||
package oppen.tva.ui.history
|
||||
package oppen.tva.ui.modals_menus.history
|
||||
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
|
@ -1,4 +1,4 @@
|
|||
package oppen.tva.ui.history
|
||||
package oppen.tva.ui.modals_menus.history
|
||||
|
||||
import android.content.Context
|
||||
import android.view.MenuInflater
|
|
@ -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) {
|
||||
|
||||
}
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
package oppen.tva.ui.overflow
|
||||
package oppen.tva.ui.modals_menus.overflow
|
||||
|
||||
import android.view.MenuInflater
|
||||
import android.view.View
|
|
@ -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", "")
|
||||
|
|
@ -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 {
|
|
@ -1,4 +1,4 @@
|
|||
package oppen.tva.ui.tabs
|
||||
package oppen.tva.ui.modals_menus.tabs
|
||||
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
|
@ -1,4 +1,4 @@
|
|||
package oppen.tva.ui.tabs
|
||||
package oppen.tva.ui.modals_menus.tabs
|
||||
|
||||
import android.content.Context
|
||||
import android.view.View
|
Loading…
Reference in New Issue