Merge branch 'lineage-21.0' of https://github.com/LineageOS/android_packages_apps_ExactCalculator into leaf-3.2
Change-Id: I6f2decb7c57dcbcea209fcb032ae599d55f8a33d
diff --git a/res/layout-land/input_pad.xml b/res/layout-land/input_pad.xml
index 5ac6b57..e216d37 100644
--- a/res/layout-land/input_pad.xml
+++ b/res/layout-land/input_pad.xml
@@ -13,38 +13,15 @@
android:background="?colorSurface">
<com.android.calculator2.HapticButton
- android:id="@+id/clr"
- style="@style/PadButtonStyle.Caps"
- android:contentDescription="@string/desc_clr"
- android:text="@string/clr"
- android:theme="@style/Theme.Button.Clear"
- app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintStart_toEndOf="@id/columnGuide4"
- app:layout_constraintTop_toBottomOf="@id/rowGuide3" />
-
- <com.android.calculator2.HapticButton
- android:id="@+id/paren"
- style="@style/PadButtonStyle"
- android:contentDescription="@string/desc_paren"
- android:text="@string/paren"
- android:theme="@style/Theme.Button.Operator"
- app:layout_constraintBottom_toTopOf="@id/rowGuide3"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintStart_toEndOf="@id/columnGuide4"
- app:layout_constraintTop_toTopOf="@id/rowGuide2" />
-
- <com.android.calculator2.HapticButton
android:id="@+id/lparen"
style="@style/PadButtonStyle"
android:contentDescription="@string/desc_lparen"
android:text="@string/lparen"
android:theme="@style/Theme.Button.Operator"
- android:visibility="gone"
- app:layout_constraintBottom_toTopOf="@id/rowGuide3"
+ app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/columnGuide4"
- app:layout_constraintTop_toTopOf="@id/rowGuide2" />
+ app:layout_constraintTop_toBottomOf="@id/rowGuide3" />
<com.android.calculator2.HapticButton
android:id="@+id/rparen"
@@ -52,7 +29,6 @@
android:contentDescription="@string/desc_rparen"
android:text="@string/rparen"
android:theme="@style/Theme.Button.Operator"
- android:visibility="gone"
app:layout_constraintBottom_toTopOf="@id/rowGuide3"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/columnGuide4"
diff --git a/res/layout/input_pad.xml b/res/layout/input_pad.xml
index b20cd35..9dc2b72 100644
--- a/res/layout/input_pad.xml
+++ b/res/layout/input_pad.xml
@@ -13,37 +13,14 @@
android:background="?colorSurface">
<com.android.calculator2.HapticButton
- android:id="@+id/clr"
- style="@style/PadButtonStyle.Caps"
- android:contentDescription="@string/desc_clr"
- android:text="@string/clr"
- android:theme="@style/Theme.Button.Clear"
- app:layout_constraintBottom_toTopOf="@id/rowGuide1"
- app:layout_constraintEnd_toStartOf="@id/columnGuide1"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toTopOf="parent" />
-
- <com.android.calculator2.HapticButton
- android:id="@+id/paren"
- style="@style/PadButtonStyle"
- android:contentDescription="@string/desc_paren"
- android:text="@string/paren"
- android:theme="@style/Theme.Button.Operator"
- app:layout_constraintBottom_toTopOf="@id/rowGuide1"
- app:layout_constraintEnd_toStartOf="@id/columnGuide2"
- app:layout_constraintStart_toStartOf="@id/columnGuide1"
- app:layout_constraintTop_toTopOf="parent" />
-
- <com.android.calculator2.HapticButton
android:id="@+id/lparen"
style="@style/PadButtonStyle"
android:contentDescription="@string/desc_lparen"
android:text="@string/lparen"
android:theme="@style/Theme.Button.Operator"
- android:visibility="gone"
app:layout_constraintBottom_toTopOf="@id/rowGuide1"
- app:layout_constraintEnd_toStartOf="@id/columnGuide2"
- app:layout_constraintStart_toStartOf="@id/columnGuide1"
+ app:layout_constraintEnd_toStartOf="@id/columnGuide1"
+ app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.android.calculator2.HapticButton
@@ -52,7 +29,6 @@
android:contentDescription="@string/desc_rparen"
android:text="@string/rparen"
android:theme="@style/Theme.Button.Operator"
- android:visibility="gone"
app:layout_constraintBottom_toTopOf="@id/rowGuide1"
app:layout_constraintEnd_toStartOf="@id/columnGuide2"
app:layout_constraintStart_toStartOf="@id/columnGuide1"
diff --git a/src/com/android/calculator2/Calculator.java b/src/com/android/calculator2/Calculator.java
index d0afdd1..fb59668 100644
--- a/src/com/android/calculator2/Calculator.java
+++ b/src/com/android/calculator2/Calculator.java
@@ -50,6 +50,7 @@
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
+import android.view.View.OnLongClickListener;
import android.view.ViewTreeObserver;
import android.view.animation.AccelerateDecelerateInterpolator;
import android.widget.HorizontalScrollView;
@@ -77,7 +78,8 @@
public class Calculator extends AppCompatActivity
implements OnTextSizeChangeListener, AlertDialogFragment.OnClickListener,
- Evaluator.EvaluationListener /* for main result */ {
+ Evaluator.EvaluationListener, /* for main result */
+ OnLongClickListener {
private static final String TAG = "Calculator";
/**
@@ -219,6 +221,7 @@
private TextView mModeView;
private CalculatorFormula mFormulaText;
+ private HapticButton mDeleteButton;
private CalculatorResult mResultText;
private HorizontalScrollView mFormulaContainer;
private MotionLayout mMainCalculator;
@@ -320,6 +323,7 @@
mMainCalculator = findViewById(R.id.main_calculator);
mModeView = (TextView) findViewById(R.id.mode);
mFormulaText = (CalculatorFormula) findViewById(R.id.formula);
+ mDeleteButton = (HapticButton) findViewById(R.id.del);
mResultText = (CalculatorResult) findViewById(R.id.result);
mFormulaContainer = (HorizontalScrollView) findViewById(R.id.formula_scroll_view);
mEvaluator = Evaluator.getInstance(this);
@@ -383,6 +387,7 @@
mFormulaText.setOnTextSizeChangeListener(this);
mFormulaText.addTextChangedListener(mFormulaTextWatcher);
+ mDeleteButton.setOnLongClickListener(this);
if (savedInstanceState != null) {
restoreInstanceState(savedInstanceState);
@@ -716,9 +721,6 @@
onEquals();
} else if (id == R.id.del) {
onDelete();
- } else if (id == R.id.clr) {
- onClear();
- return; // Toolbar visibility adjusted at end of animation.
} else if (id == R.id.toggle_inv) {
final boolean selected = !mInverseToggle.isSelected();
mInverseToggle.setSelected(selected);
@@ -744,18 +746,6 @@
evaluateInstantIfNecessary();
}
return;
- } else if (id == R.id.paren) {
- String expr = mEvaluator.getExprAsString(0);
- int openCount = expr.length() - expr.replace(KeyMaps.toString(this, R.id.lparen), "")
- .length();
- int closeCount = expr.length() - expr.replace(KeyMaps.toString(this, R.id.rparen), "")
- .length();
-
- if (openCount > closeCount && !expr.endsWith(KeyMaps.toString(this, R.id.lparen))) {
- addChars(KeyMaps.toString(this, R.id.rparen), true);
- } else {
- addChars(KeyMaps.toString(this, R.id.lparen), true);
- }
} else {
cancelIfEvaluating(false);
if (haveUnprocessed()) {
@@ -782,6 +772,16 @@
? getString(R.string.desc_formula) : null);
}
+ @Override
+ public boolean onLongClick(View view) {
+ if (view.getId() == R.id.del) {
+ onClear();
+ return true;
+ }
+ return false;
+ }
+
+
// Initial evaluation completed successfully. Initiate display.
public void onEvaluate(long index, int initDisplayPrec, int msd, int leastDigPos,
String truncatedWholeNumber) {