diff --git a/app/src/main/java/replete/Main.kt b/app/src/main/java/replete/Main.kt index a60e314..79f0d95 100644 --- a/app/src/main/java/replete/Main.kt +++ b/app/src/main/java/replete/Main.kt @@ -292,8 +292,13 @@ class MainActivity : AppCompatActivity() { } var evalButton: Button? = null + var openBracketButton: Button? = null + var historyUpButton: Button? = null + var historyDownButton: Button? = null + var inputField: EditText? = null + var uiHandler: Handler? = null var thHandler: Handler? = null var ht: HandlerThread? = null @@ -329,6 +334,9 @@ class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) + var historyPosition = 0 + var sessionList = ArrayList() + uiHandler = object : Handler(Looper.getMainLooper()) { override fun handleMessage(msg: Message) { when (msg.what) { @@ -348,9 +356,12 @@ class MainActivity : AppCompatActivity() { setDeviceType() setContentView(R.layout.activity_main) - inputField = findViewById(R.id.input) val replHistory: ListView = findViewById(R.id.repl_history) + + inputField = findViewById(R.id.input) evalButton = findViewById(R.id.eval_button) + historyUpButton = findViewById(R.id.history_up) + historyDownButton = findViewById(R.id.history_down) inputField!!.hint = "Type in here" inputField!!.setHintTextColor(Color.GRAY) @@ -358,6 +369,8 @@ class MainActivity : AppCompatActivity() { evalButton!!.isEnabled = false evalButton!!.setTextColor(Color.GRAY) + openBracketButton = findViewById(R.id.insert_open_bracket) + adapter = HistoryAdapter(this, R.layout.list_item, replHistory) replHistory.adapter = adapter @@ -460,6 +473,8 @@ class MainActivity : AppCompatActivity() { val input = inputField!!.text.toString() inputField!!.text.clear() sendUIMessage(Messages.ADD_INPUT_ITEM, input) + sessionList.add(input) + historyPosition = sessionList.size try { if (isMacro(input)) { @@ -472,6 +487,28 @@ class MainActivity : AppCompatActivity() { } } + openBracketButton!!.setOnClickListener { v -> + val cursorPos = inputField!!.getSelectionStart() + inputField!!.text.insert(cursorPos ,"(") + + } + historyUpButton!!.setOnClickListener { v -> + if (historyPosition > 0) { + historyPosition-- + val histItem = sessionList.get(historyPosition) + inputField!!.setText(histItem) + } + } + historyDownButton!!.setOnClickListener { v -> + if (historyPosition < sessionList.size -1) { + historyPosition++ + val histItem = sessionList.get(historyPosition) + inputField!!.setText(histItem) + } else { + inputField!!.text.clear() + historyPosition = sessionList.size + } + } sendUIMessage( Messages.ADD_INPUT_ITEM, "\nClojureScript ${getClojureScriptVersion()}\n" + diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 1a66a05..eb78119 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -14,28 +14,64 @@ android:layout_marginLeft="8dp" android:layout_marginStart="8dp" app:layout_constraintBottom_toTopOf="@+id/input" android:dividerHeight="0dp" android:layout_marginEnd="8dp" - android:layout_marginRight="8dp"> + android:layout_marginRight="8dp" app:layout_constraintHorizontal_bias="1.0" + app:layout_constraintVertical_bias="1.0">