Skip to content

Commit

Permalink
Merge pull request #37
Browse files Browse the repository at this point in the history
v1.6.1: Long press left/right to perform Home/End.
  • Loading branch information
HoraceHuang-ui authored Sep 26, 2022
2 parents 5a4561c + 103db1c commit 59beae4
Show file tree
Hide file tree
Showing 8 changed files with 76 additions and 13 deletions.
4 changes: 3 additions & 1 deletion .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ android {
applicationId 'com.horacehyy.freecalc'
minSdk 26
targetSdk 32
versionCode 14
versionName "1.6.0"
versionCode 15
versionName "1.6.1"

testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
Expand Down
48 changes: 40 additions & 8 deletions app/src/main/java/com/example/freecalc/MainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ class MainActivity : AppCompatActivity() {
// STATUS VALUES
var funcMode = false
var consMode = false
var prevForm = ""
var prevForm = mutableListOf<String>()

// LOCAL SETTINGS
lateinit var file: File
Expand Down Expand Up @@ -111,14 +111,32 @@ class MainActivity : AppCompatActivity() {
binding.eqForm.setSelection(temp - 1)
}
}
binding.cursorRight.setOnClickListener { _ ->
binding.cursorLeft.setOnLongClickListener {
val temp = binding.eqForm.selectionStart
if (temp != 0) {
val s = binding.eqForm.text.toString()
binding.eqForm.setText("_" + s.substring(0 until temp-1) + s[temp-1] + s.substring(temp+1))
binding.eqForm.setSelection(0)
}
true
}
binding.cursorRight.setOnClickListener {
val temp = binding.eqForm.selectionStart
if (binding.eqForm.length() != 0 && temp != binding.eqForm.length()-1) {
val s = binding.eqForm.text.toString()
binding.eqForm.setText(s.substring(0 until temp) + s[temp+1] + "_" + s.substring(temp+2))
binding.eqForm.setSelection(temp + 1)
}
}
binding.cursorRight.setOnLongClickListener {
val temp = binding.eqForm.selectionStart
if (binding.eqForm.length() != 0 && temp != binding.eqForm.length()-1) {
val s = binding.eqForm.text.toString()
binding.eqForm.setText(s.substring(0 until temp) + s[temp+1] + s.substring(temp+2) + "_")
binding.eqForm.setSelection(binding.eqForm.length() - 1)
}
true
}
binding.eqForm.setOnFocusChangeListener { _, b ->
if (b) {
if (binding.eqForm.text?.length == 0) {
Expand Down Expand Up @@ -340,12 +358,13 @@ class MainActivity : AppCompatActivity() {
}
i++
}
prevForm = s + "_"
tryCalculation(s)
if (ovrForm) {
binding.eqForm.setText(binding.resText.text.toString() + "_")
binding.eqForm.setSelection(binding.eqForm.text!!.length-1)
}

prevForm.add(s+binding.resText.text)
}
}

Expand Down Expand Up @@ -412,8 +431,6 @@ class MainActivity : AppCompatActivity() {
private fun kbCListener(): View.OnClickListener {
return View.OnClickListener {
performHaptic(it)
prevForm = binding.eqForm.text.toString()
setUndoState(true, binding.toolbar.menu.findItem(R.id.action_undo))
binding.eqForm.setText("_")
binding.resText.text = ""
}
Expand Down Expand Up @@ -664,9 +681,10 @@ class MainActivity : AppCompatActivity() {
return when (item.itemId) {
R.id.action_undo -> {
setUndoState(false, item)
binding.eqForm.setText(prevForm)
if (prevForm.length > 1) {
binding.eqForm.setSelection(prevForm.length - 1)
binding.eqForm.setText(prevForm[prevForm.size - 1])
val len = binding.eqForm.text!!.length
if (len > 1) {
binding.eqForm.setSelection(len)
}
true
}
Expand Down Expand Up @@ -789,6 +807,10 @@ class MainActivity : AppCompatActivity() {
.show()
true
}
// TODO: Implement history feature
// R.id.action_history -> {
// true
// }
else -> super.onOptionsItemSelected(item)
}
}
Expand Down Expand Up @@ -854,4 +876,14 @@ class MainActivity : AppCompatActivity() {
item.icon = getDrawable(R.drawable.ic_undo_disabled)
}
}

private fun setHistoryState(setEnabled: Boolean, item: MenuItem) {
if (setEnabled) {
item.isEnabled = true
item.icon = getDrawable(R.drawable.ic_history)
} else {
item.isEnabled = false
item.icon = getDrawable(R.drawable.ic_history_disabled)
}
}
}
5 changes: 5 additions & 0 deletions app/src/main/res/drawable/ic_history_disabled.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<vector android:alpha="0.35" android:height="24dp" android:tint="#000000"
android:viewportHeight="24" android:viewportWidth="24"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@android:color/white" android:pathData="M13.26,3C8.17,2.86 4,6.95 4,12L2.21,12c-0.45,0 -0.67,0.54 -0.35,0.85l2.79,2.8c0.2,0.2 0.51,0.2 0.71,0l2.79,-2.8c0.31,-0.31 0.09,-0.85 -0.36,-0.85L6,12c0,-3.9 3.18,-7.05 7.1,-7 3.72,0.05 6.85,3.18 6.9,6.9 0.05,3.91 -3.1,7.1 -7,7.1 -1.61,0 -3.1,-0.55 -4.28,-1.48 -0.4,-0.31 -0.96,-0.28 -1.32,0.08 -0.42,0.42 -0.39,1.13 0.08,1.49C9,20.29 10.91,21 13,21c5.05,0 9.14,-4.17 9,-9.26 -0.13,-4.69 -4.05,-8.61 -8.74,-8.74zM12.75,8c-0.41,0 -0.75,0.34 -0.75,0.75v3.68c0,0.35 0.19,0.68 0.49,0.86l3.12,1.85c0.36,0.21 0.82,0.09 1.03,-0.26 0.21,-0.36 0.09,-0.82 -0.26,-1.03l-2.88,-1.71v-3.4c0,-0.4 -0.34,-0.74 -0.75,-0.74z"/>
</vector>
16 changes: 16 additions & 0 deletions app/src/main/res/layout/fragment_history_dialog.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto">

<!--
<androidx.recyclerview.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="match_parent"
app:scrollbars="vertical"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager">
</androidx.recyclerview.widget.RecyclerView>
-->
</FrameLayout>
8 changes: 8 additions & 0 deletions app/src/main/res/menu/menu_main.xml
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,12 @@
android:title="Undo"
android:enabled="false"
app:showAsAction="always" />

<!--
<item android:id="@+id/action_history"
android:icon="@drawable/ic_history"
android:title="history"
android:enabled="false"
app:showAsAction="always" />
-->
</menu>
2 changes: 1 addition & 1 deletion app/src/main/res/values-zh-rCN/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
<string name="rad_item_return_msg">已设为弧度制。</string>
<string name="deg_item_return_msg">已设为角度制。</string>
<string name="about_freecalc">关于自由计算器</string>
<string name="made_by_horace">v1.6.0 HoraceHYY 出品</string>
<string name="made_by_horace">v1.6.1 HoraceHYY 出品</string>
<string name="more_options">更多设置</string>
<string name="override_form">计算后覆盖原式</string>
<string name="tip_cursor_left">光标左移</string>
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
<string name="rad_item_return_msg">Now in Radian mode.</string>
<string name="deg_item_return_msg">Now in Degree mode.</string>
<string name="about_freecalc">About FreeCalc</string>
<string name="made_by_horace">v1.6.0 Made by Horace Huang</string>
<string name="made_by_horace">v1.6.1 Made by Horace Huang</string>
<string name="more_options">More Options</string>
<string name="override_form">Override Form</string>
<string name="tip_cursor_left">Move cursor left</string>
Expand Down

0 comments on commit 59beae4

Please sign in to comment.