() -> ( )
This commit is contained in:
parent
7b19427222
commit
7407b7d5d2
@ -8,5 +8,5 @@
|
||||
|
||||
<Button xmlns:a="http://schemas.android.com/apk/res/android"
|
||||
a:id="@id/cpp_button_round_brackets"
|
||||
a:text="()"
|
||||
a:text="( )"
|
||||
style="@style/cpp_simple_metro_digit_button_style" />
|
@ -10,7 +10,7 @@
|
||||
xmlns:c="http://schemas.android.com/apk/res/org.solovyev.android.calculator"
|
||||
a:id="@id/cpp_button_round_brackets"
|
||||
c:textUp="("
|
||||
a:text="()"
|
||||
a:text="( )"
|
||||
c:textDown=")"
|
||||
c:textLeft="(…)"
|
||||
c:directionTextScale="0.5;0.5;0.5;0.33"
|
||||
|
@ -1,9 +1,10 @@
|
||||
package org.solovyev.android.calculator;
|
||||
|
||||
import org.solovyev.android.calculator.math.MathType;
|
||||
import org.solovyev.common.text.Strings;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import javax.annotation.Nullable;
|
||||
import org.solovyev.android.calculator.math.MathType;
|
||||
import org.solovyev.common.text.Strings;
|
||||
|
||||
/**
|
||||
* User: serso
|
||||
@ -29,36 +30,49 @@ public class CalculatorKeyboardImpl implements CalculatorKeyboard {
|
||||
boolean processed = processSpecialButtons(text);
|
||||
|
||||
if (!processed) {
|
||||
int cursorPositionOffset = 0;
|
||||
final StringBuilder textToBeInserted = new StringBuilder(text);
|
||||
|
||||
final MathType.Result mathType = MathType.getType(text, 0, false);
|
||||
switch (mathType.getMathType()) {
|
||||
case function:
|
||||
textToBeInserted.append("()");
|
||||
cursorPositionOffset = -1;
|
||||
break;
|
||||
case operator:
|
||||
textToBeInserted.append("()");
|
||||
cursorPositionOffset = -1;
|
||||
break;
|
||||
case comma:
|
||||
textToBeInserted.append(" ");
|
||||
break;
|
||||
}
|
||||
|
||||
if (cursorPositionOffset == 0) {
|
||||
if (MathType.openGroupSymbols.contains(text)) {
|
||||
cursorPositionOffset = -1;
|
||||
}
|
||||
}
|
||||
|
||||
final CalculatorEditor editor = Locator.getInstance().getEditor();
|
||||
editor.insert(textToBeInserted.toString(), cursorPositionOffset);
|
||||
processText(prepareText(text));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void processText(@Nonnull String text) {
|
||||
int cursorPositionOffset = 0;
|
||||
final StringBuilder textToBeInserted = new StringBuilder(text);
|
||||
|
||||
final MathType.Result mathType = MathType.getType(text, 0, false);
|
||||
switch (mathType.getMathType()) {
|
||||
case function:
|
||||
textToBeInserted.append("()");
|
||||
cursorPositionOffset = -1;
|
||||
break;
|
||||
case operator:
|
||||
textToBeInserted.append("()");
|
||||
cursorPositionOffset = -1;
|
||||
break;
|
||||
case comma:
|
||||
textToBeInserted.append(" ");
|
||||
break;
|
||||
}
|
||||
|
||||
if (cursorPositionOffset == 0) {
|
||||
if (MathType.openGroupSymbols.contains(text)) {
|
||||
cursorPositionOffset = -1;
|
||||
}
|
||||
}
|
||||
|
||||
final CalculatorEditor editor = Locator.getInstance().getEditor();
|
||||
editor.insert(textToBeInserted.toString(), cursorPositionOffset);
|
||||
}
|
||||
|
||||
@Nonnull
|
||||
private String prepareText(@Nonnull String text) {
|
||||
if ("( )".equals(text)) {
|
||||
return "()";
|
||||
} else {
|
||||
return text;
|
||||
}
|
||||
}
|
||||
|
||||
private boolean processSpecialButtons(@Nonnull String text) {
|
||||
boolean result = false;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user