This commit is contained in:
Sergey Solovyev 2011-11-14 18:36:33 +04:00
parent a5ef63400e
commit 5881883f77
2 changed files with 12 additions and 23 deletions

View File

@ -8,9 +8,8 @@
<org.solovyev.android.view.widgets.DirectionDragButton xmlns:a="http://schemas.android.com/apk/res/android" <org.solovyev.android.view.widgets.DirectionDragButton xmlns:a="http://schemas.android.com/apk/res/android"
xmlns:calc="http://schemas.android.com/apk/res/org.solovyev.android.calculator" xmlns:calc="http://schemas.android.com/apk/res/org.solovyev.android.calculator"
a:id="@+id/subtractionButton" a:id="@+id/subtractionButton"
calc:textUp="+…%" calc:textUp="%"
a:text="-" a:text="-"
calc:textDown="-…%"
calc:directionTextScale="0.5" calc:directionTextScale="0.5"
style="?digitButtonStyle" style="?digitButtonStyle"
a:onClick="digitButtonClickHandler"/> a:onClick="digitButtonClickHandler"/>

View File

@ -257,29 +257,19 @@ public enum CalculatorModel implements CursorControl, HistoryControl<CalculatorH
@Override @Override
public void doOperation(@NotNull EditText editor) { public void doOperation(@NotNull EditText editor) {
int cursorPositionOffset = 0; int cursorPositionOffset = 0;
final StringBuilder textToBeInserted = new StringBuilder(); final StringBuilder textToBeInserted = new StringBuilder(text);
if (text.equals("+…%")) { final MathType.Result mathType = MathType.getType(text, 0);
textToBeInserted .append("+%"); switch (mathType.getMathType()) {
cursorPositionOffset = -1; case function:
} else if (text.equals("-…%")) { textToBeInserted.append("()");
textToBeInserted.append("-%"); cursorPositionOffset = -1;
cursorPositionOffset = -1; break;
} else { }
textToBeInserted.append(text);
final MathType.Result mathType = MathType.getType(text, 0); if (cursorPositionOffset == 0) {
switch (mathType.getMathType()) { if (MathType.openGroupSymbols.contains(text)) {
case function: cursorPositionOffset = -1;
textToBeInserted.append("()");
cursorPositionOffset = -1;
break;
}
if (cursorPositionOffset == 0) {
if (MathType.openGroupSymbols.contains(text)) {
cursorPositionOffset = -1;
}
} }
} }