diff --git a/app/src/main/java/corewala/buran/ui/GemActivity.kt b/app/src/main/java/corewala/buran/ui/GemActivity.kt index 66fd603..071928f 100644 --- a/app/src/main/java/corewala/buran/ui/GemActivity.kt +++ b/app/src/main/java/corewala/buran/ui/GemActivity.kt @@ -9,8 +9,11 @@ import android.graphics.drawable.ColorDrawable import android.net.Uri import android.os.Build import android.os.Bundle +import android.view.LayoutInflater +import android.view.View import android.view.WindowManager import android.view.inputmethod.EditorInfo +import android.widget.EditText import androidx.activity.viewModels import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AppCompatActivity @@ -36,7 +39,6 @@ import corewala.buran.ui.content_text.TextDialog import corewala.buran.ui.gemtext_adapter.* import corewala.buran.ui.modals_menus.about.AboutDialog import corewala.buran.ui.modals_menus.history.HistoryDialog -import corewala.buran.ui.modals_menus.input.InputDialog import corewala.buran.ui.modals_menus.overflow.OverflowPopup import corewala.buran.ui.settings.SettingsActivity import java.io.File @@ -314,12 +316,29 @@ class GemActivity : AppCompatActivity() { when (state) { is GemState.AppQuery -> runOnUiThread { showAlert("App backdoor/query not implemented yet") } + is GemState.ResponseInput -> runOnUiThread { + val builder = AlertDialog.Builder(this) + val inflater: LayoutInflater = layoutInflater + val dialogLayout: View = inflater.inflate(R.layout.dialog_input_query, null) + val editText: EditText = dialogLayout.findViewById(R.id.query_input) + editText.requestFocus() + editText.showKeyboard() loadingView(false) - InputDialog.show(this, state) { queryAddress -> - model.request(queryAddress) + with(builder) { + setTitle(state.header.meta) + setPositiveButton("Ok"){ dialog, which -> + model.request("${state.uri}?${Uri.encode(editText.text.toString())}") + editText.hideKeyboard() + } + setNegativeButton(R.string.cancel){ dialog, which -> + editText.hideKeyboard() + } + setView(dialogLayout) + show() } } + is GemState.Requesting -> loadingView(true) is GemState.NotGeminiRequest -> externalProtocol(state) is GemState.ResponseError -> { diff --git a/app/src/main/java/corewala/buran/ui/modals_menus/input/InputDialog.kt b/app/src/main/java/corewala/buran/ui/modals_menus/input/InputDialog.kt deleted file mode 100644 index 6eb0f74..0000000 --- a/app/src/main/java/corewala/buran/ui/modals_menus/input/InputDialog.kt +++ /dev/null @@ -1,33 +0,0 @@ -package corewala.buran.ui.modals_menus.input - -import android.content.Context -import android.view.View -import androidx.appcompat.app.AppCompatDialog -import kotlinx.android.synthetic.main.dialog_input_query.view.* -import corewala.buran.R -import corewala.buran.io.GemState -import java.net.URLEncoder - -object InputDialog { - - fun show(context: Context, state: GemState.ResponseInput, onQuery: (queryAddress: String) -> Unit) { - val dialog = AppCompatDialog(context, R.style.AppTheme) - - val view = View.inflate(context, R.layout.dialog_input_query, null) - dialog.setContentView(view) - - view.close_input_query_dialog.setOnClickListener { - dialog.dismiss() - } - - view.query_text.text = state.header.meta - - view.query_submit_button.setOnClickListener { - val encoded = URLEncoder.encode(view.query_input.text.toString(), "UTF-8") - onQuery("${state.uri}?$encoded") - dialog.dismiss() - } - - dialog.show() - } -} \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_input_query.xml b/app/src/main/res/layout/dialog_input_query.xml index 9f190fa..840342d 100644 --- a/app/src/main/res/layout/dialog_input_query.xml +++ b/app/src/main/res/layout/dialog_input_query.xml @@ -2,61 +2,11 @@ - - - - - - - - - - - + android:paddingHorizontal="@dimen/default_margin_big"> - - - - - - + android:layout_height="wrap_content"/> \ No newline at end of file