Skip to content

Commit ed19494

Browse files
committed
Use glyphs for keyboard buttons
1 parent ba99194 commit ed19494

File tree

11 files changed

+66
-141
lines changed

11 files changed

+66
-141
lines changed

app/src/main/java/org/solovyev/android/calculator/buttons/CppSpecialButton.java

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,29 +24,30 @@
2424

2525
import org.solovyev.android.Check;
2626

27-
import javax.annotation.Nonnull;
28-
import javax.annotation.Nullable;
2927
import java.util.HashMap;
3028
import java.util.Map;
3129

30+
import javax.annotation.Nonnull;
31+
import javax.annotation.Nullable;
32+
3233
// see values/text_glyphs.xml for glyph constants
3334
public enum CppSpecialButton {
3435

35-
history("history"),
36+
history("history", '\ue005'),
3637
history_undo("↶", '\ue007'),
3738
history_redo("↷", '\ue008'),
38-
cursor_right("▷"),
39+
cursor_right("▷", '\ue003'),
3940
cursor_to_end(">>"),
40-
cursor_left("◁"),
41+
cursor_left("◁", '\ue002'),
4142
cursor_to_start("<<"),
4243
settings("settings"),
4344
settings_widget("settings_widget"),
44-
like("like"),
45+
like("like", '\ue006'),
4546
memory("memory"),
4647
memory_plus("M+"),
4748
memory_minus("M-"),
4849
memory_clear("MC"),
49-
erase("erase"),
50+
erase("erase", '\ue004'),
5051
paste("paste", '\uE000'),
5152
copy("copy", '\uE001'),
5253
brackets_wrap("(…)"),

app/src/main/java/org/solovyev/android/calculator/keyboard/BaseKeyboardUi.java

Lines changed: 23 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -12,21 +12,38 @@
1212
import android.view.View;
1313
import android.widget.ImageView;
1414
import android.widget.TextView;
15-
import dagger.Lazy;
15+
1616
import org.solovyev.android.Check;
17-
import org.solovyev.android.calculator.*;
17+
import org.solovyev.android.calculator.ActivityLauncher;
18+
import org.solovyev.android.calculator.App;
19+
import org.solovyev.android.calculator.Calculator;
20+
import org.solovyev.android.calculator.Editor;
21+
import org.solovyev.android.calculator.Keyboard;
22+
import org.solovyev.android.calculator.Preferences;
1823
import org.solovyev.android.calculator.buttons.CppButton;
1924
import org.solovyev.android.calculator.memory.Memory;
2025
import org.solovyev.android.views.Adjuster;
21-
import org.solovyev.android.views.dragbutton.*;
26+
import org.solovyev.android.views.dragbutton.DirectionDragButton;
27+
import org.solovyev.android.views.dragbutton.DirectionDragImageButton;
28+
import org.solovyev.android.views.dragbutton.DirectionDragListener;
29+
import org.solovyev.android.views.dragbutton.DirectionDragView;
30+
import org.solovyev.android.views.dragbutton.Drag;
31+
import org.solovyev.android.views.dragbutton.DragDirection;
32+
import org.solovyev.android.views.dragbutton.DragEvent;
33+
import org.solovyev.android.views.dragbutton.DragView;
2234

23-
import javax.annotation.Nonnull;
24-
import javax.inject.Inject;
2535
import java.util.ArrayList;
2636
import java.util.List;
2737

38+
import javax.annotation.Nonnull;
39+
import javax.inject.Inject;
40+
41+
import dagger.Lazy;
42+
2843
import static android.content.res.Configuration.ORIENTATION_PORTRAIT;
29-
import static android.view.HapticFeedbackConstants.*;
44+
import static android.view.HapticFeedbackConstants.FLAG_IGNORE_GLOBAL_SETTING;
45+
import static android.view.HapticFeedbackConstants.FLAG_IGNORE_VIEW_SETTING;
46+
import static android.view.HapticFeedbackConstants.KEYBOARD_TAP;
3047
import static org.solovyev.android.calculator.App.cast;
3148
import static org.solovyev.android.calculator.Preferences.Gui.Mode.simple;
3249

@@ -111,18 +128,6 @@ public void onCreateView(@Nonnull Activity activity, @Nonnull View view) {
111128
textSize = calculateTextSize(activity);
112129
}
113130

114-
protected final void prepareButton(@Nullable ImageView button) {
115-
prepareButton(button, IMAGE_SCALE);
116-
}
117-
118-
protected final void prepareButton(@Nullable ImageView button, float scale) {
119-
if (button == null) {
120-
return;
121-
}
122-
prepareButton((View) button);
123-
Adjuster.adjustImage(button, scale);
124-
}
125-
126131
protected final void prepareButton(@Nullable View button) {
127132
if (button == null) {
128133
return;
@@ -132,18 +137,6 @@ protected final void prepareButton(@Nullable View button) {
132137
button.setOnClickListener(this);
133138
}
134139

135-
protected final void prepareButton(@Nullable DirectionDragImageButton button) {
136-
if (button == null) {
137-
return;
138-
}
139-
dragButtons.add(button);
140-
button.setVibrateOnDrag(keyboard.isVibrateOnKeypress());
141-
prepareButton((ImageView) button);
142-
button.setOnDragListener(listener);
143-
button.setTextSize(textSize);
144-
Adjuster.adjustText(button, AdjusterHelper.instance, textScale, 0);
145-
}
146-
147140
protected final void prepareButton(@Nullable DirectionDragButton button) {
148141
if (button == null) {
149142
return;

app/src/main/java/org/solovyev/android/calculator/keyboard/KeyboardUi.java

Lines changed: 10 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -5,22 +5,24 @@
55
import android.content.SharedPreferences;
66
import android.support.annotation.Nullable;
77
import android.view.View;
8-
import android.widget.ImageButton;
9-
import butterknife.Bind;
10-
import butterknife.ButterKnife;
11-
import jscl.NumeralBase;
8+
129
import org.solovyev.android.calculator.Display;
1310
import org.solovyev.android.calculator.Engine;
1411
import org.solovyev.android.calculator.R;
1512
import org.solovyev.android.views.dragbutton.DirectionDragButton;
16-
import org.solovyev.android.views.dragbutton.DirectionDragImageButton;
1713

1814
import javax.annotation.Nonnull;
1915
import javax.inject.Inject;
2016

17+
import butterknife.Bind;
18+
import butterknife.ButterKnife;
19+
import jscl.NumeralBase;
20+
2121
import static org.solovyev.android.calculator.Engine.Preferences.multiplicationSign;
2222
import static org.solovyev.android.calculator.Engine.Preferences.numeralBase;
23-
import static org.solovyev.android.views.dragbutton.DragDirection.*;
23+
import static org.solovyev.android.views.dragbutton.DragDirection.down;
24+
import static org.solovyev.android.views.dragbutton.DragDirection.left;
25+
import static org.solovyev.android.views.dragbutton.DragDirection.up;
2426

2527
public class KeyboardUi extends BaseKeyboardUi {
2628

@@ -58,7 +60,7 @@ public class KeyboardUi extends BaseKeyboardUi {
5860
@Bind(R.id.cpp_button_functions)
5961
DirectionDragButton functionsButton;
6062
@Bind(R.id.cpp_button_history)
61-
DirectionDragImageButton historyButton;
63+
DirectionDragButton historyButton;
6264
@Bind(R.id.cpp_button_multiplication)
6365
DirectionDragButton multiplicationButton;
6466
@Bind(R.id.cpp_button_plus)
@@ -72,14 +74,8 @@ public class KeyboardUi extends BaseKeyboardUi {
7274
@Bind(R.id.cpp_button_round_brackets)
7375
DirectionDragButton bracketsButton;
7476
@Nullable
75-
@Bind(R.id.cpp_button_copy)
76-
DirectionDragImageButton copyButton;
77-
@Nullable
78-
@Bind(R.id.cpp_button_paste)
79-
DirectionDragImageButton pasteButton;
80-
@Nullable
8177
@Bind(R.id.cpp_button_like)
82-
ImageButton likeButton;
78+
DirectionDragButton likeButton;
8379
@Nullable
8480
@Bind(R.id.cpp_button_percent)
8581
DirectionDragButton percentButton;
@@ -132,12 +128,6 @@ public void onCreateView(@Nonnull Activity activity, @Nonnull View view) {
132128
prepareButton(button8);
133129
prepareButton(button9);
134130

135-
if (copyButton != null) {
136-
prepareButton(copyButton);
137-
}
138-
if (pasteButton != null) {
139-
prepareButton(pasteButton);
140-
}
141131
prepareButton(likeButton);
142132
prepareButton(memoryButton);
143133

app/src/main/java/org/solovyev/android/calculator/keyboard/PartialKeyboardUi.java

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,34 +6,34 @@
66
import android.support.annotation.NonNull;
77
import android.support.annotation.Nullable;
88
import android.view.View;
9-
import android.widget.ImageButton;
10-
import butterknife.Bind;
11-
import butterknife.ButterKnife;
9+
1210
import org.solovyev.android.calculator.R;
1311
import org.solovyev.android.calculator.view.EditorLongClickEraser;
1412
import org.solovyev.android.views.dragbutton.DirectionDragButton;
15-
import org.solovyev.android.views.dragbutton.DirectionDragImageButton;
1613

1714
import javax.annotation.Nonnull;
1815
import javax.inject.Inject;
1916

17+
import butterknife.Bind;
18+
import butterknife.ButterKnife;
19+
2020
import static org.solovyev.android.calculator.Preferences.Gui.vibrateOnKeypress;
2121
import static org.solovyev.android.views.dragbutton.DragDirection.down;
2222

2323
public class PartialKeyboardUi extends BaseKeyboardUi {
2424

2525
@Nullable
2626
@Bind(R.id.cpp_button_right)
27-
DirectionDragImageButton rightButton;
27+
DirectionDragButton rightButton;
2828
@Nullable
2929
@Bind(R.id.cpp_button_left)
30-
DirectionDragImageButton leftButton;
30+
DirectionDragButton leftButton;
3131
@Nullable
3232
@Bind(R.id.cpp_button_clear)
3333
DirectionDragButton clearButton;
3434
@Nullable
3535
@Bind(R.id.cpp_button_erase)
36-
ImageButton eraseButton;
36+
DirectionDragButton eraseButton;
3737
@Nullable
3838
@Bind(R.id.cpp_button_equals)
3939
DirectionDragButton equalsButton;
@@ -54,11 +54,10 @@ public void onCreateView(@Nonnull Activity activity, @Nonnull View view) {
5454
prepareButton(equalsButton);
5555
prepareButton(clearButton);
5656
if (eraseButton != null) {
57-
// backspace button is too big, scale it more
58-
prepareButton(eraseButton, IMAGE_SCALE_ERASE);
57+
prepareButton(eraseButton);
5958
longClickEraser = EditorLongClickEraser.attachTo(eraseButton, keyboard.isVibrateOnKeypress(), editor, calculator);
6059
}
61-
if(isSimpleMode()) {
60+
if (isSimpleMode()) {
6261
hideText(equalsButton, down);
6362
}
6463
}

app/src/main/res/layout/cpp_app_button_copy.xml

Lines changed: 0 additions & 29 deletions
This file was deleted.

app/src/main/res/layout/cpp_app_button_erase.xml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@
2222
~ Site: http://se.solovyev.org
2323
-->
2424

25-
<ImageButton
26-
xmlns:a="http://schemas.android.com/apk/res/android"
27-
a:id="@id/cpp_button_erase"
25+
<org.solovyev.android.views.dragbutton.DirectionDragButton
26+
xmlns:android="http://schemas.android.com/apk/res/android"
27+
android:id="@id/cpp_button_erase"
2828
style="?attr/cpp_button_style_operation_highlighted"
29-
a:src="@drawable/ic_backspace_white_48dp" />
29+
android:text="@string/cpp_glyph_backspace"/>

app/src/main/res/layout/cpp_app_button_history.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,12 @@
2121
~ Email: se.solovyev@gmail.com
2222
~ Site: http://se.solovyev.org
2323
-->
24-
<org.solovyev.android.views.dragbutton.DirectionDragImageButton
24+
<org.solovyev.android.views.dragbutton.DirectionDragButton
2525
xmlns:a="http://schemas.android.com/apk/res/android"
2626
xmlns:app="http://schemas.android.com/apk/res-auto"
2727
a:id="@id/cpp_button_history"
2828
style="?attr/cpp_button_style_control"
29-
a:src="@drawable/ic_history_white_48dp"
29+
a:text="@string/cpp_glyph_history"
3030
app:directionTextScale="0.5"
3131
app:directionTextDown="@string/cpp_glyph_redo"
3232
app:directionTextUp="@string/cpp_glyph_undo" />

app/src/main/res/layout/cpp_app_button_left.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,12 @@
2222
~ Site: http://se.solovyev.org
2323
-->
2424

25-
<org.solovyev.android.views.dragbutton.DirectionDragImageButton a:id="@id/cpp_button_left"
25+
<org.solovyev.android.views.dragbutton.DirectionDragButton a:id="@id/cpp_button_left"
2626
style="?attr/cpp_button_style_control"
2727
xmlns:a="http://schemas.android.com/apk/res/android"
2828
xmlns:c="http://schemas.android.com/apk/res-auto"
2929
xmlns:tools="http://schemas.android.com/tools"
30-
a:src="@drawable/ic_keyboard_arrow_left_white_48dp"
30+
a:text="@string/cpp_glyph_left"
3131
c:directionTextUp="&lt;&lt;"
3232
c:directionTextDown="@string/cpp_glyph_copy"
3333
tools:ignore="HardcodedText" />

app/src/main/res/layout/cpp_app_button_like.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@
2222
~ Site: http://se.solovyev.org
2323
-->
2424

25-
<org.solovyev.android.views.dragbutton.DirectionDragImageButton
25+
<org.solovyev.android.views.dragbutton.DirectionDragButton
2626
android:id="@id/cpp_button_like"
2727
style="?attr/cpp_button_style_control"
2828
xmlns:android="http://schemas.android.com/apk/res/android"
29-
android:src="@drawable/ic_favorite_border_white_48dp" />
29+
android:text="@string/cpp_glyph_heart"/>

app/src/main/res/layout/cpp_app_button_paste.xml

Lines changed: 0 additions & 29 deletions
This file was deleted.

0 commit comments

Comments
 (0)