├── pic1.png
├── pic2.png
├── res
├── raw
│ ├── ac.wav
│ ├── del.wav
│ ├── div.wav
│ ├── dot.wav
│ ├── five.wav
│ ├── four.wav
│ ├── mul.wav
│ ├── nine.wav
│ ├── one.wav
│ ├── plus.wav
│ ├── six.wav
│ ├── two.wav
│ ├── zero.wav
│ ├── eight.wav
│ ├── equal.wav
│ ├── minus.wav
│ ├── seven.wav
│ └── three.wav
├── drawable-hdpi
│ ├── display.png
│ ├── simple.png
│ ├── advanced.png
│ ├── btn_del.9.png
│ ├── bg_calculator.png
│ ├── clear_history.png
│ ├── bg_history_item.png
│ ├── btn_digit_normal.png
│ ├── btn_digit_pressed.png
│ ├── calc_clear_symbol.png
│ ├── elv_toast_frame.9.png
│ ├── ic_menu_overflow.png
│ ├── btn_add_all_normal.png
│ ├── btn_add_all_pressed.png
│ ├── elv_ic_action_undo.png
│ ├── history_action_bar.png
│ ├── btn_clear_all_normal.png
│ ├── btn_clear_all_pressed.png
│ ├── history_item_bg_top.9.png
│ ├── calculator_input_field.9.png
│ ├── history_item_bg_bottom.9.png
│ ├── history_item_bg_middle.9.png
│ ├── history_item_bg_single.9.png
│ ├── btn_keyboard_key_dark_normal_holo.9.png
│ ├── btn_keyboard_key_dark_pressed_holo.9.png
│ ├── btn_keyboard_key_light_normal_holo.9.png
│ └── btn_keyboard_key_light_pressed_holo.9.png
├── drawable-mdpi
│ ├── simple.png
│ ├── advanced.png
│ ├── clear_history.png
│ ├── calc_clear_symbol.png
│ ├── elv_toast_frame.9.png
│ ├── ic_menu_overflow.png
│ ├── elv_ic_action_undo.png
│ ├── calculator_input_field.9.png
│ ├── btn_keyboard_key_dark_normal_holo.9.png
│ ├── btn_keyboard_key_dark_pressed_holo.9.png
│ ├── btn_keyboard_key_light_normal_holo.9.png
│ └── btn_keyboard_key_light_pressed_holo.9.png
├── drawable-ldpi
│ ├── elv_toast_frame.9.png
│ └── elv_ic_action_undo.png
├── drawable-xhdpi
│ ├── ic_menu_overflow.png
│ ├── calc_clear_symbol.png
│ ├── elv_ic_action_undo.png
│ ├── elv_toast_frame.9.png
│ ├── calculator_input_field.9.png
│ ├── btn_keyboard_key_dark_normal_holo.9.png
│ ├── btn_keyboard_key_dark_pressed_holo.9.png
│ ├── btn_keyboard_key_light_normal_holo.9.png
│ └── btn_keyboard_key_light_pressed_holo.9.png
├── mipmap-hdpi
│ └── ic_kevin_calculator.png
├── drawable-xxhdpi
│ ├── elv_toast_frame.9.png
│ └── elv_ic_action_undo.png
├── drawable-sw600dp-hdpi
│ ├── calc_clear_symbol.png
│ └── calculator_input_field.9.png
├── drawable-sw600dp-mdpi
│ ├── calc_clear_symbol.png
│ └── calculator_input_field.9.png
├── drawable
│ ├── elv_popup_bg.xml
│ ├── elv_undo_btn_bg_focused.xml
│ ├── elv_undo_btn_bg_pressed.xml
│ ├── above_shadow.xml
│ ├── elv_undo_btn_bg.xml
│ ├── btn_digit.xml
│ ├── btn_add_all.xml
│ ├── btn_clear_all.xml
│ └── btn_function.xml
├── anim
│ ├── elv_popup_hide.xml
│ └── elv_popup_show.xml
├── values
│ ├── dimens.xml
│ ├── attrs.xml
│ ├── constants.xml
│ ├── colors.xml
│ └── styles.xml
├── layout-port
│ ├── history_pad.xml
│ ├── list_item_history.xml
│ └── advanced_pad.xml
├── values-sw600dp-port
│ └── styles.xml
├── layout-land
│ ├── history_item.xml
│ ├── main.xml
│ └── advanced_pad.xml
├── values-sw800dp-land
│ └── styles.xml
├── values-sw800dp-port
│ └── styles.xml
├── values-sw800dp
│ └── styles.xml
├── menu
│ └── menu.xml
├── layout
│ └── elv_undo_popup.xml
├── values-sw600dp
│ ├── arrays.xml
│ └── styles.xml
├── values-land
│ └── arrays.xml
├── values-port
│ └── arrays.xml
├── values-zh-rCN
│ └── strings.xml
├── values-zh-rHK
│ └── strings.xml
├── values-zh-rTW
│ └── strings.xml
├── values-ja
│ └── strings.xml
├── values-ko
│ └── strings.xml
├── values-am
│ └── strings.xml
├── values-iw
│ └── strings.xml
├── values-fa
│ └── strings.xml
├── values-lo-rLA
│ └── strings.xml
├── values-th
│ └── strings.xml
├── values-tr
│ └── strings.xml
├── values-et-rEE
│ └── strings.xml
├── values-et
│ └── strings.xml
├── values-ar
│ └── strings.xml
├── values-mn-rMN
│ └── strings.xml
├── values-hi
│ └── strings.xml
├── values-vi
│ └── strings.xml
├── values-sw
│ └── strings.xml
├── values-nb
│ └── strings.xml
├── values-da
│ └── strings.xml
├── values-en-rGB
│ └── strings.xml
├── values-en-rIN
│ └── strings.xml
└── values-in
│ └── strings.xml
├── libs
├── javalib.jar
├── arity-2.1.2.jar
├── android-support-v4.jar
└── nineoldandroids-2.4.0.jar
├── KevinCalculator.apk
├── .gitattributes
├── project.properties
├── .gitignore
├── proguard-project.txt
├── AndroidManifest.xml
├── README.md
└── src
└── com
└── kevinsoft
└── calculator
├── CalculatorViewPager.java
├── HistoryEntry.java
├── ColorButton.java
├── Persist.java
├── History.java
├── CalculatorEditable.java
├── HistoryAdapter.java
├── EquationFormatter.java
└── EventListener.java
/pic1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/pic1.png
--------------------------------------------------------------------------------
/pic2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/pic2.png
--------------------------------------------------------------------------------
/res/raw/ac.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/raw/ac.wav
--------------------------------------------------------------------------------
/libs/javalib.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/libs/javalib.jar
--------------------------------------------------------------------------------
/res/raw/del.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/raw/del.wav
--------------------------------------------------------------------------------
/res/raw/div.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/raw/div.wav
--------------------------------------------------------------------------------
/res/raw/dot.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/raw/dot.wav
--------------------------------------------------------------------------------
/res/raw/five.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/raw/five.wav
--------------------------------------------------------------------------------
/res/raw/four.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/raw/four.wav
--------------------------------------------------------------------------------
/res/raw/mul.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/raw/mul.wav
--------------------------------------------------------------------------------
/res/raw/nine.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/raw/nine.wav
--------------------------------------------------------------------------------
/res/raw/one.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/raw/one.wav
--------------------------------------------------------------------------------
/res/raw/plus.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/raw/plus.wav
--------------------------------------------------------------------------------
/res/raw/six.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/raw/six.wav
--------------------------------------------------------------------------------
/res/raw/two.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/raw/two.wav
--------------------------------------------------------------------------------
/res/raw/zero.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/raw/zero.wav
--------------------------------------------------------------------------------
/KevinCalculator.apk:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/KevinCalculator.apk
--------------------------------------------------------------------------------
/res/raw/eight.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/raw/eight.wav
--------------------------------------------------------------------------------
/res/raw/equal.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/raw/equal.wav
--------------------------------------------------------------------------------
/res/raw/minus.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/raw/minus.wav
--------------------------------------------------------------------------------
/res/raw/seven.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/raw/seven.wav
--------------------------------------------------------------------------------
/res/raw/three.wav:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/raw/three.wav
--------------------------------------------------------------------------------
/libs/arity-2.1.2.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/libs/arity-2.1.2.jar
--------------------------------------------------------------------------------
/libs/android-support-v4.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/libs/android-support-v4.jar
--------------------------------------------------------------------------------
/res/drawable-hdpi/display.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/drawable-hdpi/display.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/simple.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/drawable-hdpi/simple.png
--------------------------------------------------------------------------------
/res/drawable-mdpi/simple.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/drawable-mdpi/simple.png
--------------------------------------------------------------------------------
/libs/nineoldandroids-2.4.0.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/libs/nineoldandroids-2.4.0.jar
--------------------------------------------------------------------------------
/res/drawable-hdpi/advanced.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/drawable-hdpi/advanced.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/btn_del.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/drawable-hdpi/btn_del.9.png
--------------------------------------------------------------------------------
/res/drawable-mdpi/advanced.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/drawable-mdpi/advanced.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/bg_calculator.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/drawable-hdpi/bg_calculator.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/clear_history.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/drawable-hdpi/clear_history.png
--------------------------------------------------------------------------------
/res/drawable-mdpi/clear_history.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/drawable-mdpi/clear_history.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/bg_history_item.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/drawable-hdpi/bg_history_item.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/btn_digit_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/drawable-hdpi/btn_digit_normal.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/btn_digit_pressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/drawable-hdpi/btn_digit_pressed.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/calc_clear_symbol.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/drawable-hdpi/calc_clear_symbol.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/elv_toast_frame.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/drawable-hdpi/elv_toast_frame.9.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/ic_menu_overflow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/drawable-hdpi/ic_menu_overflow.png
--------------------------------------------------------------------------------
/res/drawable-ldpi/elv_toast_frame.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/drawable-ldpi/elv_toast_frame.9.png
--------------------------------------------------------------------------------
/res/drawable-mdpi/calc_clear_symbol.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/drawable-mdpi/calc_clear_symbol.png
--------------------------------------------------------------------------------
/res/drawable-mdpi/elv_toast_frame.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/drawable-mdpi/elv_toast_frame.9.png
--------------------------------------------------------------------------------
/res/drawable-mdpi/ic_menu_overflow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/drawable-mdpi/ic_menu_overflow.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/ic_menu_overflow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/drawable-xhdpi/ic_menu_overflow.png
--------------------------------------------------------------------------------
/res/mipmap-hdpi/ic_kevin_calculator.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/mipmap-hdpi/ic_kevin_calculator.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/btn_add_all_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/drawable-hdpi/btn_add_all_normal.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/btn_add_all_pressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/drawable-hdpi/btn_add_all_pressed.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/elv_ic_action_undo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/drawable-hdpi/elv_ic_action_undo.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/history_action_bar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/drawable-hdpi/history_action_bar.png
--------------------------------------------------------------------------------
/res/drawable-ldpi/elv_ic_action_undo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/drawable-ldpi/elv_ic_action_undo.png
--------------------------------------------------------------------------------
/res/drawable-mdpi/elv_ic_action_undo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/drawable-mdpi/elv_ic_action_undo.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/calc_clear_symbol.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/drawable-xhdpi/calc_clear_symbol.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/elv_ic_action_undo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/drawable-xhdpi/elv_ic_action_undo.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/elv_toast_frame.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/drawable-xhdpi/elv_toast_frame.9.png
--------------------------------------------------------------------------------
/res/drawable-xxhdpi/elv_toast_frame.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/drawable-xxhdpi/elv_toast_frame.9.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/btn_clear_all_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/drawable-hdpi/btn_clear_all_normal.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/btn_clear_all_pressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/drawable-hdpi/btn_clear_all_pressed.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/history_item_bg_top.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/drawable-hdpi/history_item_bg_top.9.png
--------------------------------------------------------------------------------
/res/drawable-xxhdpi/elv_ic_action_undo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/drawable-xxhdpi/elv_ic_action_undo.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/calculator_input_field.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/drawable-hdpi/calculator_input_field.9.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/history_item_bg_bottom.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/drawable-hdpi/history_item_bg_bottom.9.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/history_item_bg_middle.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/drawable-hdpi/history_item_bg_middle.9.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/history_item_bg_single.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/drawable-hdpi/history_item_bg_single.9.png
--------------------------------------------------------------------------------
/res/drawable-mdpi/calculator_input_field.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/drawable-mdpi/calculator_input_field.9.png
--------------------------------------------------------------------------------
/res/drawable-sw600dp-hdpi/calc_clear_symbol.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/drawable-sw600dp-hdpi/calc_clear_symbol.png
--------------------------------------------------------------------------------
/res/drawable-sw600dp-mdpi/calc_clear_symbol.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/drawable-sw600dp-mdpi/calc_clear_symbol.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/calculator_input_field.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/drawable-xhdpi/calculator_input_field.9.png
--------------------------------------------------------------------------------
/res/drawable-sw600dp-hdpi/calculator_input_field.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/drawable-sw600dp-hdpi/calculator_input_field.9.png
--------------------------------------------------------------------------------
/res/drawable-sw600dp-mdpi/calculator_input_field.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/drawable-sw600dp-mdpi/calculator_input_field.9.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/btn_keyboard_key_dark_normal_holo.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/drawable-hdpi/btn_keyboard_key_dark_normal_holo.9.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/btn_keyboard_key_dark_pressed_holo.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/drawable-hdpi/btn_keyboard_key_dark_pressed_holo.9.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/btn_keyboard_key_light_normal_holo.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/drawable-hdpi/btn_keyboard_key_light_normal_holo.9.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/btn_keyboard_key_light_pressed_holo.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/drawable-hdpi/btn_keyboard_key_light_pressed_holo.9.png
--------------------------------------------------------------------------------
/res/drawable-mdpi/btn_keyboard_key_dark_normal_holo.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/drawable-mdpi/btn_keyboard_key_dark_normal_holo.9.png
--------------------------------------------------------------------------------
/res/drawable-mdpi/btn_keyboard_key_dark_pressed_holo.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/drawable-mdpi/btn_keyboard_key_dark_pressed_holo.9.png
--------------------------------------------------------------------------------
/res/drawable-mdpi/btn_keyboard_key_light_normal_holo.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/drawable-mdpi/btn_keyboard_key_light_normal_holo.9.png
--------------------------------------------------------------------------------
/res/drawable-mdpi/btn_keyboard_key_light_pressed_holo.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/drawable-mdpi/btn_keyboard_key_light_pressed_holo.9.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_keyboard_key_dark_normal_holo.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/drawable-xhdpi/btn_keyboard_key_dark_normal_holo.9.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_keyboard_key_dark_pressed_holo.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/drawable-xhdpi/btn_keyboard_key_dark_pressed_holo.9.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_keyboard_key_light_normal_holo.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/drawable-xhdpi/btn_keyboard_key_light_normal_holo.9.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/btn_keyboard_key_light_pressed_holo.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/KevinChen9117/KevinCalculator/HEAD/res/drawable-xhdpi/btn_keyboard_key_light_pressed_holo.9.png
--------------------------------------------------------------------------------
/res/drawable/elv_popup_bg.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/res/drawable/elv_undo_btn_bg_focused.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/res/drawable/elv_undo_btn_bg_pressed.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/res/anim/elv_popup_hide.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
--------------------------------------------------------------------------------
/res/anim/elv_popup_show.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
--------------------------------------------------------------------------------
/res/drawable/above_shadow.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
8 |
--------------------------------------------------------------------------------
/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 15dp
5 |
6 | 32dp
7 |
--------------------------------------------------------------------------------
/res/drawable/elv_undo_btn_bg.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/res/values/attrs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/res/layout-port/history_pad.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
13 |
14 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
3 |
4 | # Custom for Visual Studio
5 | *.cs diff=csharp
6 | *.sln merge=union
7 | *.csproj merge=union
8 | *.vbproj merge=union
9 | *.fsproj merge=union
10 | *.dbproj merge=union
11 |
12 | # Standard to msysgit
13 | *.doc diff=astextplain
14 | *.DOC diff=astextplain
15 | *.docx diff=astextplain
16 | *.DOCX diff=astextplain
17 | *.dot diff=astextplain
18 | *.DOT diff=astextplain
19 | *.pdf diff=astextplain
20 | *.PDF diff=astextplain
21 | *.rtf diff=astextplain
22 | *.RTF diff=astextplain
23 |
--------------------------------------------------------------------------------
/project.properties:
--------------------------------------------------------------------------------
1 | # This file is automatically generated by Android Tools.
2 | # Do not modify this file -- YOUR CHANGES WILL BE ERASED!
3 | #
4 | # This file must be checked in Version Control Systems.
5 | #
6 | # To customize properties used by the Ant build system edit
7 | # "ant.properties", and override values to adapt the script to your
8 | # project structure.
9 | #
10 | # To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
11 | #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
12 |
13 | # Project target.
14 | target=android-19
15 | android.library.reference.1=../EnLib
16 | android.library.reference.2=../SlidingUplib
17 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Windows image file caches
2 | Thumbs.db
3 | ehthumbs.db
4 |
5 | # Folder config file
6 | Desktop.ini
7 |
8 | # Recycle Bin used on file shares
9 | $RECYCLE.BIN/
10 |
11 | # Windows Installer files
12 | *.cab
13 | *.msi
14 | *.msm
15 | *.msp
16 |
17 | # =========================
18 | # Operating System Files
19 | # =========================
20 |
21 | # OSX
22 | # =========================
23 |
24 | .DS_Store
25 | .AppleDouble
26 | .LSOverride
27 |
28 | # Icon must end with two \r
29 | Icon
30 |
31 | # Thumbnails
32 | ._*
33 |
34 | # Files that might appear on external disk
35 | .Spotlight-V100
36 | .Trashes
37 |
38 | # Directories potentially created on remote AFP share
39 | .AppleDB
40 | .AppleDesktop
41 | Network Trash Folder
42 | Temporary Items
43 | .apdisk
44 |
--------------------------------------------------------------------------------
/res/values/constants.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
17 |
18 | 8
19 |
--------------------------------------------------------------------------------
/res/values-sw600dp-port/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
17 | 48sp
18 |
19 |
--------------------------------------------------------------------------------
/proguard-project.txt:
--------------------------------------------------------------------------------
1 | # To enable ProGuard in your project, edit project.properties
2 | # to define the proguard.config property as described in that file.
3 | #
4 | # Add project specific ProGuard rules here.
5 | # By default, the flags in this file are appended to flags specified
6 | # in ${sdk.dir}/tools/proguard/proguard-android.txt
7 | # You can edit the include path and order by changing the ProGuard
8 | # include property in project.properties.
9 | #
10 | # For more details, see
11 | # http://developer.android.com/guide/developing/tools/proguard.html
12 |
13 | # Add any project specific keep options here:
14 |
15 | # If your project uses WebView with JS, uncomment the following
16 | # and specify the fully qualified class name to the JavaScript interface
17 | # class:
18 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
19 | # public *;
20 | #}
21 |
--------------------------------------------------------------------------------
/res/layout-land/history_item.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
16 |
17 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/res/values-sw800dp-land/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
17 | 48sp
18 | 48sp
19 | 48sp
20 |
21 |
--------------------------------------------------------------------------------
/res/values-sw800dp-port/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
17 | 32sp
18 | 64sp
19 | 72sp
20 |
21 |
--------------------------------------------------------------------------------
/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/res/drawable/btn_digit.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
17 |
19 |
20 |
23 |
25 |
26 |
--------------------------------------------------------------------------------
/res/drawable/btn_add_all.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
17 |
19 |
20 |
23 |
25 |
26 |
--------------------------------------------------------------------------------
/res/drawable/btn_clear_all.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
17 |
19 |
20 |
23 |
25 |
26 |
--------------------------------------------------------------------------------
/res/values-sw800dp/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
17 | 64sp
18 | 64sp
19 | 32sp
20 | 48sp
21 | 72sp
22 |
23 |
--------------------------------------------------------------------------------
/res/drawable/btn_function.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
17 |
19 |
22 |
24 |
25 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 | ======
3 | # KevinCalculator
4 | This is a calculator with Chinese voice enabled which I implemented 1 year ago .
5 | It also has a beautiful UI.And better history list with swap to dismiss function.
6 | Also ,with functions to add all the results user calculated.
7 | Please feel free to give some advice. **This project is not well tested **.
8 | I hope someone submit bugs , then I can fix it.
9 |
10 | ## Screen shot
11 | 
12 | 
13 |
14 |
15 |
16 | ## License
17 |
18 | Copyright 2014 Kevin Chen
19 |
20 | Licensed under the Apache License, Version 2.0 (the "License");
21 | you may not use this file except in compliance with the License.
22 | You may obtain a copy of the License at
23 |
24 | http://www.apache.org/licenses/LICENSE-2.0
25 |
26 | Unless required by applicable law or agreed to in writing, software
27 | distributed under the License is distributed on an "AS IS" BASIS,
28 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
29 | See the License for the specific language governing permissions and
30 | limitations under the License.
--------------------------------------------------------------------------------
/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
17 |
18 | #00ffffff
19 | #ffffffff
20 | #ff33b5e5
21 | #ff0099cc
22 | #00000000
23 |
24 | #EE666666
25 | #BBBBBB
26 | #FFFFFF
27 |
28 |
--------------------------------------------------------------------------------
/res/menu/menu.xml:
--------------------------------------------------------------------------------
1 |
2 |
19 |
20 |
38 |
--------------------------------------------------------------------------------
/res/layout/elv_undo_popup.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
18 |
27 |
35 |
--------------------------------------------------------------------------------
/src/com/kevinsoft/calculator/CalculatorViewPager.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2011 The Android Open Source Project
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package com.kevinsoft.calculator;
18 |
19 | import android.content.Context;
20 | import android.support.v4.view.ViewPager;
21 | import android.util.AttributeSet;
22 |
23 | public class CalculatorViewPager extends ViewPager {
24 | public CalculatorViewPager(Context context) {
25 | super(context);
26 | }
27 |
28 | public CalculatorViewPager(Context context, AttributeSet attrs) {
29 | super(context, attrs);
30 | }
31 |
32 | /**
33 | * ViewPager inherits ViewGroup's default behavior of delayed clicks
34 | * on its children, but in order to make the calc buttons more responsive
35 | * we disable that here.
36 | */
37 | public boolean shouldDelayChildPressedState() {
38 | return false;
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/res/layout-port/list_item_history.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
17 |
18 |
29 |
30 |
41 |
42 |
43 |
--------------------------------------------------------------------------------
/res/values-sw600dp/arrays.xml:
--------------------------------------------------------------------------------
1 |
2 |
19 |
20 |
21 | - @+id/digit0
22 | - @+id/digit1
23 | - @+id/digit2
24 | - @+id/digit3
25 | - @+id/digit4
26 | - @+id/digit5
27 | - @+id/digit6
28 | - @+id/digit7
29 | - @+id/digit8
30 | - @+id/digit9
31 | - @+id/dot
32 | - @+id/plus
33 | - @+id/minus
34 | - @+id/div
35 | - @+id/mul
36 | - @+id/equal
37 | - @+id/leftParen
38 | - @+id/rightParen
39 | - @+id/sin
40 | - @+id/cos
41 | - @+id/tan
42 | - @+id/ln
43 | - @+id/lg
44 | - @+id/e
45 | - @+id/pi
46 | - @+id/power
47 | - @+id/factorial
48 | - @+id/sqrt
49 |
50 |
51 |
--------------------------------------------------------------------------------
/res/values-land/arrays.xml:
--------------------------------------------------------------------------------
1 |
2 |
19 |
20 |
21 | - @+id/digit0
22 | - @+id/digit1
23 | - @+id/digit2
24 | - @+id/digit3
25 | - @+id/digit4
26 | - @+id/digit5
27 | - @+id/digit6
28 | - @+id/digit7
29 | - @+id/digit8
30 | - @+id/digit9
31 | - @+id/dot
32 | - @+id/plus
33 | - @+id/minus
34 | - @+id/div
35 | - @+id/mul
36 | - @+id/equal
37 | - @+id/leftParen
38 | - @+id/rightParen
39 |
40 |
41 |
42 | - @+id/sin
43 | - @+id/cos
44 | - @+id/tan
45 | - @+id/ln
46 | - @+id/lg
47 | - @+id/e
48 | - @+id/pi
49 | - @+id/power
50 | - @+id/factorial
51 | - @+id/sqrt
52 |
53 |
54 |
--------------------------------------------------------------------------------
/res/values-port/arrays.xml:
--------------------------------------------------------------------------------
1 |
2 |
19 |
20 |
21 | - @+id/digit0
22 | - @+id/digit1
23 | - @+id/digit2
24 | - @+id/digit3
25 | - @+id/digit4
26 | - @+id/digit5
27 | - @+id/digit6
28 | - @+id/digit7
29 | - @+id/digit8
30 | - @+id/digit9
31 | - @+id/dot
32 | - @+id/plus
33 | - @+id/minus
34 | - @+id/div
35 | - @+id/mul
36 | - @+id/equal
37 |
38 |
39 |
40 | - @+id/leftParen
41 | - @+id/rightParen
42 | - @+id/sin
43 | - @+id/cos
44 | - @+id/tan
45 | - @+id/ln
46 | - @+id/lg
47 | - @+id/e
48 | - @+id/pi
49 | - @+id/power
50 | - @+id/factorial
51 | - @+id/sqrt
52 |
53 |
54 |
--------------------------------------------------------------------------------
/src/com/kevinsoft/calculator/HistoryEntry.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2008 The Android Open Source Project
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package com.kevinsoft.calculator;
18 |
19 | import java.io.DataInput;
20 | import java.io.DataOutput;
21 | import java.io.IOException;
22 |
23 | public class HistoryEntry {
24 | private static final int VERSION_1 = 1;
25 | private String mBase;
26 | private String mEdited;
27 |
28 | HistoryEntry(String base, String edited) {
29 | mBase = base;
30 | mEdited = edited;
31 | }
32 |
33 | HistoryEntry(int version, DataInput in) throws IOException {
34 | if (version >= VERSION_1) {
35 | mBase = in.readUTF();
36 | mEdited = in.readUTF();
37 | //Calculator.log("load " + mEdited);
38 | } else {
39 | throw new IOException("invalid version " + version);
40 | }
41 | }
42 |
43 | void write(DataOutput out) throws IOException {
44 | out.writeUTF(mBase);
45 | out.writeUTF(mEdited);
46 | //Calculator.log("save " + mEdited);
47 | }
48 |
49 | @Override
50 | public String toString() {
51 | return mBase;
52 | }
53 |
54 | void clearEdited() {
55 | mEdited = mBase;
56 | }
57 |
58 | public String getEdited() {
59 | return mEdited;
60 | }
61 |
62 | void setEdited(String edited) {
63 | mEdited = edited;
64 | }
65 |
66 | public String getBase() {
67 | return mBase;
68 | }
69 | }
70 |
--------------------------------------------------------------------------------
/res/values-sw600dp/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
17 | 50sp
18 | 50sp
19 | 25sp
20 | 40sp
21 | 60sp
22 |
23 | 16sp
24 | 16sp
25 | 16sp
26 |
27 |
43 |
--------------------------------------------------------------------------------
/src/com/kevinsoft/calculator/ColorButton.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2008 The Android Open Source Project
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package com.kevinsoft.calculator;
18 |
19 | import android.content.Context;
20 | import android.graphics.Paint;
21 | import android.util.AttributeSet;
22 | import android.view.View.OnClickListener;
23 | import android.view.View;
24 | import android.widget.Button;
25 |
26 | /**
27 | * Button with click-animation effect.
28 | */
29 | class ColorButton extends Button implements OnClickListener {
30 | int CLICK_FEEDBACK_COLOR;
31 | static final int CLICK_FEEDBACK_INTERVAL = 10;
32 | static final int CLICK_FEEDBACK_DURATION = 350;
33 |
34 | float mTextX;
35 | float mTextY;
36 | long mAnimStart;
37 | OnClickListener mListener;
38 |
39 | public ColorButton(Context context, AttributeSet attrs) {
40 | super(context, attrs);
41 | Calculator calc = (Calculator) context;
42 | mListener = calc.mListener;
43 | setOnClickListener(this);
44 | }
45 |
46 | public void onClick(View view) {
47 | mListener.onClick(this);
48 | }
49 |
50 | @Override
51 | public void onSizeChanged(int w, int h, int oldW, int oldH) {
52 | measureText();
53 | }
54 |
55 | private void measureText() {
56 | Paint paint = getPaint();
57 | mTextX = (getWidth() - paint.measureText(getText().toString())) / 2;
58 | mTextY = (getHeight() - paint.ascent() - paint.descent()) / 2;
59 | }
60 |
61 | @Override
62 | protected void onTextChanged(CharSequence text, int start, int before, int after) {
63 | measureText();
64 | }
65 | }
66 |
--------------------------------------------------------------------------------
/src/com/kevinsoft/calculator/Persist.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2008 The Android Open Source Project
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package com.kevinsoft.calculator;
18 |
19 | import java.io.InputStream;
20 | import java.io.OutputStream;
21 | import java.io.IOException;
22 | import java.io.FileNotFoundException;
23 | import java.io.BufferedInputStream;
24 | import java.io.BufferedOutputStream;
25 | import java.io.DataInputStream;
26 | import java.io.DataOutputStream;
27 |
28 | import android.content.Context;
29 |
30 | class Persist {
31 | private static final int LAST_VERSION = 2;
32 | private static final String FILE_NAME = "calculator.data";
33 | private Context mContext;
34 |
35 | History history = new History();
36 | private int mDeleteMode;
37 |
38 | Persist(Context context) {
39 | this.mContext = context;
40 | }
41 |
42 | public void setDeleteMode(int mode) {
43 | mDeleteMode = mode;
44 | }
45 |
46 | public int getDeleteMode() {
47 | return mDeleteMode;
48 | }
49 |
50 | public void load() {
51 | try {
52 | InputStream is = new BufferedInputStream(mContext.openFileInput(FILE_NAME), 8192);
53 | DataInputStream in = new DataInputStream(is);
54 | int version = in.readInt();
55 | if (version > 1) {
56 | mDeleteMode = in.readInt();
57 | } else if (version > LAST_VERSION) {
58 | throw new IOException("data version " + version + "; expected " + LAST_VERSION);
59 | }
60 | history = new History(version, in);
61 | in.close();
62 | } catch (FileNotFoundException e) {
63 | Calculator.log("" + e);
64 | } catch (IOException e) {
65 | Calculator.log("" + e);
66 | }
67 | }
68 |
69 | public void save() {
70 | try {
71 | OutputStream os = new BufferedOutputStream(mContext.openFileOutput(FILE_NAME, 0), 8192);
72 | DataOutputStream out = new DataOutputStream(os);
73 | out.writeInt(LAST_VERSION);
74 | out.writeInt(mDeleteMode);
75 | history.write(out);
76 | out.close();
77 | } catch (IOException e) {
78 | Calculator.log("" + e);
79 | }
80 | }
81 | }
82 |
--------------------------------------------------------------------------------
/res/layout-land/main.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
20 |
21 |
26 |
31 |
32 |
38 |
39 |
41 |
43 |
44 |
45 |
52 |
55 |
56 |
62 |
63 |
70 |
71 |
72 |
73 |
79 |
80 |
81 |
--------------------------------------------------------------------------------
/src/com/kevinsoft/calculator/History.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2008 The Android Open Source Project
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package com.kevinsoft.calculator;
18 |
19 | import android.widget.BaseAdapter;
20 |
21 | import java.io.DataInput;
22 | import java.io.DataOutput;
23 | import java.io.IOException;
24 | import java.util.Vector;
25 |
26 | public class History {
27 | private static final int VERSION_1 = 1;
28 | private static final int MAX_ENTRIES = 100;
29 | Vector mEntries = new Vector();
30 | int mPos;
31 | BaseAdapter mObserver;
32 |
33 | History() {
34 | clear();
35 | }
36 |
37 | History(int version, DataInput in) throws IOException {
38 | if (version >= VERSION_1) {
39 | int size = in.readInt();
40 | for (int i = 0; i < size; ++i) {
41 | mEntries.add(new HistoryEntry(version, in));
42 | }
43 | mPos = in.readInt();
44 | } else {
45 | throw new IOException("invalid version " + version);
46 | }
47 | }
48 |
49 | void setObserver(BaseAdapter observer) {
50 | mObserver = observer;
51 | }
52 |
53 | private void notifyChanged() {
54 | if (mObserver != null) {
55 | mObserver.notifyDataSetChanged();
56 | }
57 | }
58 |
59 | void clear() {
60 | mEntries.clear();
61 | mEntries.add(new HistoryEntry("",""));
62 | mPos = 0;
63 | notifyChanged();
64 | }
65 |
66 | void write(DataOutput out) throws IOException {
67 | out.writeInt(mEntries.size());
68 | for (HistoryEntry entry : mEntries) {
69 | entry.write(out);
70 | }
71 | out.writeInt(mPos);
72 | }
73 |
74 | void update(String text) {
75 | current().setEdited(text);
76 | }
77 |
78 | boolean moveToPrevious() {
79 | if (mPos > 0) {
80 | --mPos;
81 | return true;
82 | }
83 | return false;
84 | }
85 |
86 | boolean moveToNext() {
87 | if (mPos < mEntries.size() - 1) {
88 | ++mPos;
89 | return true;
90 | }
91 | return false;
92 | }
93 |
94 | void enter(String base, String edited) {
95 | current().clearEdited();
96 | if(mEntries.size() >= MAX_ENTRIES) {
97 | mEntries.remove(0);
98 | }
99 | if((mEntries.size() < 2 || !base.equals(mEntries.elementAt(mEntries.size() - 2).getBase())) && !base.isEmpty() && !edited.isEmpty()) {
100 | mEntries.insertElementAt(new HistoryEntry(base, edited), mEntries.size() - 1);
101 | }
102 | mPos = mEntries.size() - 1;
103 | notifyChanged();
104 | }
105 |
106 | HistoryEntry current() {
107 | return mEntries.elementAt(mPos);
108 | }
109 |
110 | String getText() {
111 | return current().getEdited();
112 | }
113 |
114 | String getBase() {
115 | return current().getBase();
116 | }
117 |
118 | public void remove(HistoryEntry he) {
119 | mEntries.remove(he);
120 | mPos--;
121 | notifyChanged();
122 | }
123 |
124 | public void remove(int pos){
125 | HistoryEntry he = mEntries.get(pos);
126 | remove(he);
127 | }
128 |
129 | public void insert(int pos , HistoryEntry he){
130 | mEntries.insertElementAt(he, pos);
131 | mPos++;
132 | notifyChanged();
133 | }
134 | }
135 |
--------------------------------------------------------------------------------
/res/layout-land/advanced_pad.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
20 |
21 |
29 |
30 |
35 |
41 |
47 |
53 |
59 |
65 |
66 |
67 |
72 |
78 |
84 |
90 |
96 |
102 |
103 |
104 |
--------------------------------------------------------------------------------
/src/com/kevinsoft/calculator/CalculatorEditable.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2008 The Android Open Source Project
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package com.kevinsoft.calculator;
18 |
19 | import android.text.SpannableStringBuilder;
20 | import android.text.Editable;
21 |
22 | class CalculatorEditable extends SpannableStringBuilder {
23 | private static final char[] ORIGINALS = {'-', '*', '/'};
24 | private static final char[] REPLACEMENTS = {'\u2212', '\u00d7', '\u00f7'};
25 | private boolean isInsideReplace = false;
26 | private Logic mLogic;
27 |
28 | private CalculatorEditable(CharSequence source, Logic logic) {
29 | super(source);
30 | mLogic = logic;
31 | }
32 |
33 | @Override
34 | public SpannableStringBuilder
35 | replace(int start, int end, CharSequence tb, int tbstart, int tbend) {
36 | if (isInsideReplace) {
37 | return super.replace(start, end, tb, tbstart, tbend);
38 | } else {
39 | isInsideReplace = true;
40 | try {
41 | String delta = tb.subSequence(tbstart, tbend).toString();
42 | return internalReplace(start, end, delta);
43 | } finally {
44 | isInsideReplace = false;
45 | }
46 | }
47 | }
48 |
49 | private SpannableStringBuilder internalReplace(int start, int end, String delta) {
50 | if (!mLogic.acceptInsert(delta)) {
51 | mLogic.cleared();
52 | start = 0;
53 | end = length();
54 | }
55 |
56 | for (int i = ORIGINALS.length - 1; i >= 0; --i) {
57 | delta = delta.replace(ORIGINALS[i], REPLACEMENTS[i]);
58 | }
59 |
60 | int length = delta.length();
61 | if (length == 1) {
62 | char text = delta.charAt(0);
63 |
64 | //don't allow two dots in the same number
65 | if (text == '.') {
66 | int p = start - 1;
67 | while (p >= 0 && Character.isDigit(charAt(p))) {
68 | --p;
69 | }
70 | if (p >= 0 && charAt(p) == '.') {
71 | return super.replace(start, end, "");
72 | }
73 | }
74 |
75 | char prevChar = start > 0 ? charAt(start-1) : '\0';
76 |
77 | //don't allow 2 successive minuses
78 | if (text == Logic.MINUS && prevChar == Logic.MINUS) {
79 | return super.replace(start, end, "");
80 | }
81 |
82 | //don't allow multiple successive operators
83 | if (Logic.isOperator(text)) {
84 | while (Logic.isOperator(prevChar) &&
85 | (text != Logic.MINUS || prevChar == '+')) {
86 | --start;
87 | prevChar = start > 0 ? charAt(start-1) : '\0';
88 | }
89 | }
90 |
91 | //don't allow leading operator + * /
92 | if (start == 0 && Logic.isOperator(text) && text != Logic.MINUS) {
93 | return super.replace(start, end, "");
94 | }
95 | }
96 | return super.replace(start, end, delta);
97 | }
98 |
99 | public static class Factory extends Editable.Factory {
100 | private Logic mLogic;
101 |
102 | public Factory(Logic logic) {
103 | mLogic = logic;
104 | }
105 |
106 | public Editable newEditable(CharSequence source) {
107 | return new CalculatorEditable(source, mLogic);
108 | }
109 | }
110 | }
111 |
--------------------------------------------------------------------------------
/src/com/kevinsoft/calculator/HistoryAdapter.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2008 The Android Open Source Project
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package com.kevinsoft.calculator;
18 |
19 | import android.text.Html;
20 | import android.util.Log;
21 | import android.view.LayoutInflater;
22 | import android.view.ViewGroup;
23 | import android.view.View;
24 | import android.content.Context;
25 | import android.widget.BaseAdapter;
26 | import android.widget.TextView;
27 |
28 | import java.util.Vector;
29 |
30 | import org.javia.arity.SyntaxException;
31 |
32 |
33 | class HistoryAdapter extends BaseAdapter {
34 | private final Vector mEntries;
35 | private final LayoutInflater mInflater;
36 | private final EquationFormatter mEquationFormatter;
37 | private final History mHistory;
38 | private final Logic mLogic ;
39 |
40 | HistoryAdapter(Context context, History history ,Logic logic) {
41 | mEntries = history.mEntries;
42 | mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
43 | mEquationFormatter = new EquationFormatter();
44 | mHistory = history;
45 | mLogic = logic;
46 | }
47 |
48 | @Override
49 | public int getCount() {
50 | return mEntries.size() - 1;
51 | }
52 |
53 | @Override
54 | public Object getItem(int position) {
55 | return mEntries.elementAt(position);
56 | }
57 |
58 | @Override
59 | public long getItemId(int position) {
60 | return position;
61 | }
62 |
63 | @Override
64 | public boolean hasStableIds() {
65 | return true;
66 | }
67 |
68 | public void insert(int pos ,HistoryEntry he){
69 | mHistory.insert(pos, he);
70 | }
71 |
72 | public void remove(int pos){
73 | mHistory.remove(pos);
74 | }
75 |
76 | @Override
77 | public View getView(int position, View convertView, ViewGroup parent) {
78 | View view;
79 | if(convertView == null) {
80 | view = mInflater.inflate(R.layout.list_item_history, parent, false);
81 | }
82 | else {
83 | view = convertView;
84 | }
85 |
86 | View bg = view.findViewById(R.id.bg_holder);
87 | TextView expr = (TextView) view.findViewById(R.id.historyExpr);
88 | TextView result = (TextView) view.findViewById(R.id.historyResult);
89 | if(getCount()==1){
90 | bg.setBackgroundResource(R.drawable.history_item_bg_single);
91 | }else if(position == getCount()-1){
92 | bg.setBackgroundResource(R.drawable.history_item_bg_bottom);
93 | }else if(position == 0){
94 | bg.setBackgroundResource(R.drawable.history_item_bg_top);
95 | }else {
96 | bg.setBackgroundResource(R.drawable.history_item_bg_middle);
97 | }
98 |
99 | HistoryEntry entry = mEntries.elementAt(position);
100 | expr.setText(Html.fromHtml(mEquationFormatter.insertSupscripts(entry.getBase())));
101 | result.setText(entry.getEdited());
102 | // view.setHistoryEntry(entry);
103 | // view.setHistory(mHistory);
104 | // view.setAdapter(this);
105 |
106 | return view;
107 | }
108 |
109 | public void removeAll() {
110 | mHistory.clear();
111 | }
112 |
113 | public void addAll() {
114 | StringBuilder sb = new StringBuilder();
115 | for(HistoryEntry entry :mEntries){
116 | if(entry.getEdited().equals("")){
117 | break;
118 | }
119 | sb.append(entry.getEdited()).append("+");
120 | }
121 | String strToEvalute = sb.toString();
122 | while(strToEvalute.endsWith("+")){
123 | strToEvalute = strToEvalute.substring(0,sb.length()-1);
124 | }
125 | Log.d("TCL", "strToEvalute :" + strToEvalute);
126 | mLogic.evaluateAndShowResult(strToEvalute, CalculatorDisplay.Scroll.RIGHT);
127 | }
128 | }
129 |
130 |
--------------------------------------------------------------------------------
/src/com/kevinsoft/calculator/EquationFormatter.java:
--------------------------------------------------------------------------------
1 | package com.kevinsoft.calculator;
2 |
3 | public class EquationFormatter {
4 | public static final char PLACEHOLDER = '\u200B';
5 | public static final char POWER = '^';
6 | public static final char PLUS = '+';
7 | public static final char MINUS = '\u2212';
8 | public static final char MUL = '\u00d7';
9 | public static final char DIV = '\u00f7';
10 | public static final char EQUAL = '=';
11 | public static final char LEFT_PAREN = '(';
12 | public static final char RIGHT_PAREN = ')';
13 |
14 | public String appendParenthesis(String input) {
15 | final StringBuilder formattedInput = new StringBuilder(input);
16 |
17 | int unclosedParen = 0;
18 | for(int i = 0; i < formattedInput.length(); i++) {
19 | if(formattedInput.charAt(i) == LEFT_PAREN) unclosedParen++;
20 | else if(formattedInput.charAt(i) == RIGHT_PAREN) unclosedParen--;
21 | }
22 | for(int i = 0; i < unclosedParen; i++) {
23 | formattedInput.append(RIGHT_PAREN);
24 | }
25 | return formattedInput.toString();
26 | }
27 |
28 | public String insertSupscripts(String input) {
29 | final StringBuilder formattedInput = new StringBuilder();
30 |
31 | int sub_open = 0;
32 | int sub_closed = 0;
33 | int paren_open = 0;
34 | int paren_closed = 0;
35 | for(int i = 0; i < input.length(); i++) {
36 | char c = input.charAt(i);
37 | if(c == POWER) {
38 | formattedInput.append("");
39 | if(sub_open == 0) formattedInput.append("");
40 | sub_open++;
41 | if(i + 1 == input.length()) {
42 | formattedInput.append(c);
43 | if(sub_closed == 0) formattedInput.append("");
44 | formattedInput.append("");
45 | sub_closed++;
46 | }
47 | else {
48 | formattedInput.append(PLACEHOLDER);
49 | }
50 | continue;
51 | }
52 |
53 | if(sub_open > sub_closed) {
54 | if(paren_open == paren_closed) {
55 | // Decide when to break the started by ^
56 | if(c == PLUS // 2^3+1
57 | || (c == MINUS && input.charAt(i - 1) != POWER) // 2^3-1
58 | || c == MUL // 2^3*1
59 | || c == DIV // 2^3/1
60 | || c == EQUAL // X^3=1
61 | || (c == LEFT_PAREN && (Character.isDigit(input.charAt(i - 1)) || input.charAt(i - 1) == RIGHT_PAREN)) // 2^3(1)
62 | // or
63 | // 2^(3-1)(0)
64 | || (Character.isDigit(c) && input.charAt(i - 1) == RIGHT_PAREN) // 2^(3)1
65 | || (!Character.isDigit(c) && Character.isDigit(input.charAt(i - 1))) && c != '.') { // 2^3log(1)
66 | while(sub_open > sub_closed) {
67 | if(sub_closed == 0) formattedInput.append("");
68 | formattedInput.append("");
69 | sub_closed++;
70 | }
71 | sub_open = 0;
72 | sub_closed = 0;
73 | paren_open = 0;
74 | paren_closed = 0;
75 | if(c == LEFT_PAREN) {
76 | paren_open--;
77 | }
78 | else if(c == RIGHT_PAREN) {
79 | paren_closed--;
80 | }
81 | }
82 | }
83 | if(c == LEFT_PAREN) {
84 | paren_open++;
85 | }
86 | else if(c == RIGHT_PAREN) {
87 | paren_closed++;
88 | }
89 | }
90 | formattedInput.append(c);
91 | }
92 | while(sub_open > sub_closed) {
93 | if(sub_closed == 0) formattedInput.append("");
94 | formattedInput.append("");
95 | sub_closed++;
96 | }
97 | return formattedInput.toString();
98 | }
99 | }
100 |
--------------------------------------------------------------------------------
/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
17 | 40sp
18 | 40sp
19 | 30sp
20 | 30sp
21 | 60sp
22 |
23 |
32 |
33 |
36 |
37 |
40 |
41 |
57 |
58 |
64 |
65 |
72 |
73 |
81 |
82 |
90 |
91 |
95 |
96 |
100 |
--------------------------------------------------------------------------------
/res/layout-port/advanced_pad.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
20 |
21 |
28 |
29 |
34 |
40 |
46 |
52 |
53 |
54 |
59 |
65 |
71 |
77 |
78 |
79 |
84 |
90 |
96 |
102 |
103 |
104 |
109 |
115 |
121 |
127 |
128 |
129 |
--------------------------------------------------------------------------------
/res/values-zh-rCN/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
17 |
19 | "计算器"
20 | "出错"
21 | "0"
22 | "1"
23 | "2"
24 | "3"
25 | "4"
26 | "5"
27 | "6"
28 | "7"
29 | "8"
30 | "9"
31 | "删除"
32 | "清除"
33 | "sin"
34 | "cos"
35 | "tan"
36 | "e"
37 | "ln"
38 | "log"
39 | "("
40 | ")"
41 | "基本面板"
42 | "高级面板"
43 | "清除历史记录"
44 | "文本已复制。"
45 | "左括号"
46 | "右括号"
47 | "阶乘"
48 | "自然对数"
49 | "对数"
50 | "平方根"
51 | "除"
52 | "乘"
53 | "加"
54 | "减"
55 | "小数点"
56 | "幂"
57 | "删除"
58 | "清除"
59 | "正切"
60 | "正弦"
61 | "余弦"
62 | "欧拉数"
63 | "圆周率"
64 | "等于"
65 |
66 | - "左括号"
67 | - "右括号"
68 | - "阶乘"
69 | - "自然对数"
70 | - "对数"
71 | - "平方根"
72 | - "除以"
73 | - "乘"
74 | - "加"
75 | - "减"
76 | - "点"
77 | - "幂"
78 | - "正切"
79 | - "正弦"
80 | - "余弦"
81 | - "圆周率"
82 | - "等于"
83 |
84 |
85 |
--------------------------------------------------------------------------------
/res/values-zh-rHK/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
17 |
19 | "計算機"
20 | "發生錯誤"
21 | "0"
22 | "1"
23 | "2"
24 | "3"
25 | "4"
26 | "5"
27 | "6"
28 | "7"
29 | "8"
30 | "9"
31 | "刪除"
32 | "清除"
33 | "sin"
34 | "cos"
35 | "Tan"
36 | "e"
37 | "LN"
38 | "記錄"
39 | "("
40 | ")"
41 | "基本面板"
42 | "進階面板"
43 | "清除記錄"
44 | "文字已複製。"
45 | "左括弧"
46 | "右括弧"
47 | "階乘"
48 | "自然對數"
49 | "對數"
50 | "平方根"
51 | "除"
52 | "乘"
53 | "加"
54 | "減"
55 | "點"
56 | "指數"
57 | "刪除"
58 | "清除"
59 | "正切"
60 | "正弦"
61 | "餘弦"
62 | "歐拉數"
63 | "圓周率"
64 | "等於"
65 |
66 | - "左括弧"
67 | - "右括弧"
68 | - "階乘"
69 | - "自然對數"
70 | - "對數"
71 | - "平方根"
72 | - "除以"
73 | - "乘以"
74 | - "加"
75 | - "減"
76 | - "點"
77 | - "指數"
78 | - "正切"
79 | - "正弦"
80 | - "餘弦"
81 | - "圓周率"
82 | - "等於"
83 |
84 |
85 |
--------------------------------------------------------------------------------
/res/values-zh-rTW/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
17 |
19 | "計算機"
20 | "錯誤"
21 | "0"
22 | "1"
23 | "2"
24 | "3"
25 | "4"
26 | "5"
27 | "6"
28 | "7"
29 | "8"
30 | "9"
31 | "刪除"
32 | "清除"
33 | "sin"
34 | "cos"
35 | "tan"
36 | "e"
37 | "ln"
38 | "log"
39 | "("
40 | ")"
41 | "基本面板"
42 | "進階面板"
43 | "清除紀錄"
44 | "文字已複製。"
45 | "左括弧"
46 | "右括弧"
47 | "階乘"
48 | "自然對數"
49 | "對數"
50 | "平方根號"
51 | "除號"
52 | "乘號"
53 | "加號"
54 | "減號"
55 | "點"
56 | "指數"
57 | "刪除"
58 | "清除"
59 | "正切函數"
60 | "正弦函數"
61 | "餘弦函數"
62 | "尤拉數"
63 | "圓周率符號"
64 | "等於"
65 |
66 | - "左括弧"
67 | - "右括弧"
68 | - "階乘"
69 | - "自然對數"
70 | - "對數"
71 | - "平方根號"
72 | - "除以"
73 | - "乘以"
74 | - "加"
75 | - "減"
76 | - " 點 "
77 | - "指數"
78 | - "正切函數"
79 | - "正弦函數"
80 | - "餘弦函數"
81 | - "圓周率"
82 | - "等於"
83 |
84 |
85 |
--------------------------------------------------------------------------------
/res/values-ja/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
17 |
19 | "電卓"
20 | "エラー"
21 | "0"
22 | "1"
23 | "2"
24 | "3"
25 | "4"
26 | "5"
27 | "6"
28 | "7"
29 | "8"
30 | "9"
31 | "削除"
32 | "消去"
33 | "sin"
34 | "cos"
35 | "tan"
36 | "e"
37 | "ln"
38 | "log"
39 | "("
40 | ")"
41 | "標準機能"
42 | "関数機能"
43 | "履歴消去"
44 | "テキストをコピーしました。"
45 | "左かっこ"
46 | "右かっこ"
47 | "階乗"
48 | "自然対数"
49 | "対数"
50 | "平方根"
51 | "除算"
52 | "乗算"
53 | "足す"
54 | "引く"
55 | "小数点"
56 | "累乗"
57 | "削除"
58 | "クリア"
59 | "タンジェント"
60 | "サイン"
61 | "コサイン"
62 | "自然対数の底"
63 | "パイ"
64 | "イコール"
65 |
66 | - "左かっこ"
67 | - "右かっこ"
68 | - "階乗"
69 | - "自然対数"
70 | - "対数"
71 | - "平方根"
72 | - "割る"
73 | - "掛ける"
74 | - "足す"
75 | - "引く"
76 | - "ポイント"
77 | - "累乗"
78 | - "タンジェント"
79 | - "サイン"
80 | - "コサイン"
81 | - "パイ"
82 | - "イコール"
83 |
84 |
85 |
--------------------------------------------------------------------------------
/res/values-ko/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
17 |
19 | "계산기"
20 | "오류"
21 | "0"
22 | "1"
23 | "2"
24 | "3"
25 | "4"
26 | "5"
27 | "6"
28 | "7"
29 | "8"
30 | "9"
31 | "DEL"
32 | "CLR"
33 | "sin"
34 | "cos"
35 | "tan"
36 | "e"
37 | "ln"
38 | "log"
39 | "("
40 | ")"
41 | "기본 패널"
42 | "고급 패널"
43 | "기록 지우기"
44 | "텍스트를 복사했습니다."
45 | "왼쪽 괄호"
46 | "오른쪽 괄호"
47 | "계승"
48 | "자연 대수"
49 | "대수"
50 | "제곱근"
51 | "나누다"
52 | "곱하다"
53 | "더하기"
54 | "빼기"
55 | "점"
56 | "거듭제곱"
57 | "삭제"
58 | "지우기"
59 | "탄젠트(Tangent)"
60 | "사인(sine)"
61 | "코사인(cosine)"
62 | "오일러의 수(Euler\'s number)"
63 | "파이"
64 | "같음"
65 |
66 | - "왼쪽 괄호"
67 | - "오른쪽 괄호"
68 | - "계승"
69 | - "자연 대수"
70 | - "대수"
71 | - "제곱근"
72 | - "나누기"
73 | - "곱하기"
74 | - "더하기"
75 | - "빼기"
76 | - " 점 "
77 | - "거듭제곱"
78 | - "탄젠트(Tangent)"
79 | - "사인(sine)"
80 | - "코사인(cosine)"
81 | - "파이"
82 | - "같음"
83 |
84 |
85 |
--------------------------------------------------------------------------------
/res/values-am/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
17 |
19 | "ማስያ"
20 | "ስህተት"
21 | "0"
22 | "1"
23 | "2"
24 | "3"
25 | "4"
26 | "5"
27 | "6"
28 | "7"
29 | "8"
30 | "9"
31 | "ሰርዝ"
32 | "አጥራ"
33 | "sin"
34 | "cos"
35 | "tan"
36 | "e"
37 | "ln"
38 | "log"
39 | "("
40 | ")"
41 | "መሠረታዊ መደብ"
42 | "የላቀ ፓናል"
43 | "ታሪክ አጥራ"
44 | "ፅሁፍ ተገልብጧል።"
45 | "የግራ ቅንፍ"
46 | "የቀኝ ቅንፍ"
47 | "ብዜት"
48 | "ተፈጥሯዊ ሎጋሪዝም"
49 | "ሎጋሪዝም"
50 | "ስክዌር ሩት"
51 | "አካፍል"
52 | "አባዛ"
53 | "ሲደመር"
54 | "ሲቀነስ"
55 | "ነጥብ"
56 | "አርቢ"
57 | "ሰርዝ"
58 | "አጽዳ"
59 | "ታንጀት"
60 | "ሳይን"
61 | "ኮሳይን"
62 | "የዩለር ቁጥር"
63 | "ፓይ"
64 | "ይሆናል"
65 |
66 | - "የግራ ቅንፍ"
67 | - "የቀኝ ቅንፍ"
68 | - "ብዜት"
69 | - "ተፈጥሯዊ ሎጋሪዝም"
70 | - "ሎጋሪዝም"
71 | - "ስክዌር ሩት"
72 | - "ሲካፈል"
73 | - "ሲባዛ"
74 | - "ሲደመር"
75 | - "ሲቀነስ"
76 | - " ነጥብ "
77 | - "አርቢ"
78 | - "ታንጀት"
79 | - "ሳይን"
80 | - "ኮሳይን"
81 | - "ፓይ"
82 | - "ይሆናል"
83 |
84 |
85 |
--------------------------------------------------------------------------------
/res/values-iw/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
17 |
19 | "מחשבון"
20 | "שגיאה"
21 | "0"
22 | "1"
23 | "2"
24 | "3"
25 | "4"
26 | "5"
27 | "6"
28 | "7"
29 | "8"
30 | "9"
31 | "מחק"
32 | "CLR"
33 | "sin"
34 | "cos"
35 | "tan"
36 | "e"
37 | "ln"
38 | "log"
39 | "("
40 | ")"
41 | "חלונית בסיסית"
42 | "מתקדם"
43 | "נקה היסטוריה"
44 | "טקסט הועתק."
45 | "סוגר שמאלי"
46 | "סוגר ימני"
47 | "עצרת"
48 | "לוגריתם טבעי"
49 | "לוגריתם"
50 | "שורש ריבועי"
51 | "חילוק"
52 | "כפל"
53 | "פלוס"
54 | "מינוס"
55 | "נקודה"
56 | "חזקה"
57 | "מחק"
58 | "נקה"
59 | "טנגנס"
60 | "סינוס"
61 | "קוסינוס"
62 | "המספר e"
63 | "פאי"
64 | "שווה"
65 |
66 | - "סוגר שמאלי"
67 | - "סוגר ימני"
68 | - "עצרת"
69 | - "לוגריתם טבעי"
70 | - "לוגריתם"
71 | - "שורש ריבועי"
72 | - "חלקי"
73 | - "כפול"
74 | - "פלוס"
75 | - "מינוס"
76 | - " נקודה "
77 | - "בחזקת"
78 | - "טנגנס"
79 | - "סינוס"
80 | - "קוסינוס"
81 | - "פאי"
82 | - "שווה"
83 |
84 |
85 |
--------------------------------------------------------------------------------
/src/com/kevinsoft/calculator/EventListener.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2008 The Android Open Source Project
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package com.kevinsoft.calculator;
18 |
19 |
20 | import android.support.v4.view.ViewPager;
21 | import android.view.KeyEvent;
22 | import android.view.View;
23 | import android.widget.Button;
24 |
25 | class EventListener implements View.OnKeyListener,
26 | View.OnClickListener,
27 | View.OnLongClickListener {
28 | Logic mHandler;
29 | ViewPager mPager;
30 |
31 | void setHandler(Logic handler, ViewPager pager) {
32 | mHandler = handler;
33 | mPager = pager;
34 | }
35 |
36 | @Override
37 | public void onClick(View view) {
38 | KevinSoundManager soundManager = KevinSoundManager.getInstance();
39 | soundManager.playSound(((Button)view).getText().toString());
40 | int id = view.getId();
41 | switch (id) {
42 | case R.id.del:
43 | mHandler.onDelete();
44 | break;
45 |
46 | case R.id.clear:
47 | mHandler.onClear();
48 | break;
49 |
50 | case R.id.equal:
51 | mHandler.onEnter();
52 | String result = mHandler.getText();
53 | String[] soundsToPlay = new String[result.length()];
54 | for(int i = 0 ; i < soundsToPlay.length ; i ++ ){
55 | soundsToPlay[i] = String.valueOf(result.charAt(i));
56 | }
57 | soundManager.playSeqSounds(soundsToPlay);
58 | break;
59 |
60 | default:
61 | if (view instanceof Button) {
62 | String text = ((Button) view).getText().toString();
63 | if (text.length() >= 2) {
64 | // add paren after sin, cos, ln, etc. from buttons
65 | text += '(';
66 | }
67 | mHandler.insert(text);
68 | if (mPager != null && mPager.getCurrentItem() == Calculator.ADVANCED_PANEL) {
69 | mPager.setCurrentItem(Calculator.BASIC_PANEL);
70 | }
71 | }
72 | }
73 | }
74 |
75 | @Override
76 | public boolean onLongClick(View view) {
77 | int id = view.getId();
78 | if (id == R.id.del) {
79 | mHandler.onClear();
80 | return true;
81 | }
82 | return false;
83 | }
84 |
85 | @Override
86 | public boolean onKey(View view, int keyCode, KeyEvent keyEvent) {
87 | int action = keyEvent.getAction();
88 |
89 | if (keyCode == KeyEvent.KEYCODE_DPAD_LEFT ||
90 | keyCode == KeyEvent.KEYCODE_DPAD_RIGHT) {
91 | boolean eat = mHandler.eatHorizontalMove(keyCode == KeyEvent.KEYCODE_DPAD_LEFT);
92 | return eat;
93 | }
94 |
95 | //Work-around for spurious key event from IME, bug #1639445
96 | if (action == KeyEvent.ACTION_MULTIPLE && keyCode == KeyEvent.KEYCODE_UNKNOWN) {
97 | return true; // eat it
98 | }
99 |
100 | //Calculator.log("KEY " + keyCode + "; " + action);
101 |
102 | if (keyEvent.getUnicodeChar() == '=') {
103 | if (action == KeyEvent.ACTION_UP) {
104 | mHandler.onEnter();
105 | }
106 | return true;
107 | }
108 |
109 | if (keyCode != KeyEvent.KEYCODE_DPAD_CENTER &&
110 | keyCode != KeyEvent.KEYCODE_DPAD_UP &&
111 | keyCode != KeyEvent.KEYCODE_DPAD_DOWN &&
112 | keyCode != KeyEvent.KEYCODE_ENTER) {
113 | if (keyEvent.isPrintingKey() && action == KeyEvent.ACTION_UP) {
114 | // Tell the handler that text was updated.
115 | mHandler.onTextChanged();
116 | }
117 | return false;
118 | }
119 |
120 | /*
121 | We should act on KeyEvent.ACTION_DOWN, but strangely
122 | sometimes the DOWN event isn't received, only the UP.
123 | So the workaround is to act on UP...
124 | http://b/issue?id=1022478
125 | */
126 |
127 | if (action == KeyEvent.ACTION_UP) {
128 | switch (keyCode) {
129 | case KeyEvent.KEYCODE_ENTER:
130 | case KeyEvent.KEYCODE_DPAD_CENTER:
131 | mHandler.onEnter();
132 | break;
133 |
134 | case KeyEvent.KEYCODE_DPAD_UP:
135 | mHandler.onUp();
136 | break;
137 |
138 | case KeyEvent.KEYCODE_DPAD_DOWN:
139 | mHandler.onDown();
140 | break;
141 | }
142 | }
143 | return true;
144 | }
145 | }
146 |
--------------------------------------------------------------------------------
/res/values-fa/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
17 |
19 | "ماشین حساب"
20 | "خطا"
21 | "0"
22 | "1"
23 | "2"
24 | "3"
25 | "4"
26 | "5"
27 | "6"
28 | "7"
29 | "8"
30 | "9"
31 | "حذف"
32 | "پاک"
33 | "sin"
34 | "cos"
35 | "tan"
36 | "e"
37 | "ln"
38 | "log"
39 | "("
40 | ")"
41 | "پانل اصلی"
42 | "پانل پیشرفته"
43 | "پاک کردن سابقه"
44 | "نوشتار کپی شد."
45 | "پرانتز چپ"
46 | "پرانتز راست"
47 | "فاکتوریل"
48 | "لگاریتم طبیعی"
49 | "لگاریتم"
50 | "ریشه دوم"
51 | "تقسیم"
52 | "ضرب"
53 | "جمع"
54 | "منها"
55 | "نقطه"
56 | "توان"
57 | "حذف"
58 | "پاک کردن"
59 | "تانژانت"
60 | "سینوس"
61 | "کسینوس"
62 | "عدد اولر"
63 | "پی"
64 | "مساوی"
65 |
66 | - "پرانتز چپ"
67 | - "پرانتز راست"
68 | - "فاکتوریل"
69 | - "لگاریتم طبیعی"
70 | - "لگاریتم"
71 | - "ریشه دوم"
72 | - "تقسیم بر"
73 | - "ضرب در"
74 | - "جمع"
75 | - "منها"
76 | - " امتیاز "
77 | - "توان"
78 | - "تانژانت"
79 | - "سینوس"
80 | - "کسینوس"
81 | - "پی"
82 | - "مساوی است با"
83 |
84 |
85 |
--------------------------------------------------------------------------------
/res/values-lo-rLA/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
17 |
19 | "ຈັກຄິດໄລ່"
20 | "ຜິດພາດ"
21 | "0"
22 | "1"
23 | "2"
24 | "3"
25 | "4"
26 | "5"
27 | "6"
28 | "7"
29 | "8"
30 | "9"
31 | "ລຶບ"
32 | "CLR"
33 | "ຊິນ"
34 | "ໂກສ"
35 | "ຕັງ"
36 | "e"
37 | "ln"
38 | "ບັນທຶກ"
39 | "("
40 | ")"
41 | "ແຜງຄວບຄຸມພື້ນຖານ"
42 | "ແຜງຄວບຄຸມພິເສດ"
43 | "ລ້າງປະຫວັດ"
44 | "ຂໍ້ຄວາມຖືກຄັດລອກ."
45 | "ວົງເລັບຊ້າຍ"
46 | "ວົງເລັບຂວາ"
47 | "ແຟັກໂຕຣຽວ"
48 | "ໂລກາຣິດທຳມະຊາດ"
49 | "ໂລກາຣິດ"
50 | "ຮາກ"
51 | "ຫານ"
52 | "ຄູນ"
53 | "ບວກ"
54 | "ລົບ"
55 | "ຈຸດ"
56 | "ຂຶ້ນກຳລັງ"
57 | "ລຶບ"
58 | "ເຄລຍ"
59 | "ຕັງ"
60 | "ຊີນ"
61 | "ໂກຊິນ"
62 | "ຈຳນວນອອຍເລີ"
63 | "ປີ້"
64 | "ເທົ່າກັບ"
65 |
66 | - "ວົງເລັບຊ້າຍ"
67 | - "ວົງເລັບຂວາ"
68 | - "ແຟັກໂຕຣຽວ"
69 | - "ໂລກາຣິດທຳມະຊາດ"
70 | - "ໂລກາຣິດ"
71 | - "ຮາກ"
72 | - "ຫານກັບ"
73 | - "ຄູນກັບ"
74 | - "ບວກ"
75 | - "ລົບ"
76 | - " ຈຸດ "
77 | - "ຂຶ້ນກຳລັງ"
78 | - "ຕັງ"
79 | - "ຊິນ"
80 | - "ໂກຊິນ"
81 | - "ປີ້"
82 | - "ເທົ່າກັບ"
83 |
84 |
85 |
--------------------------------------------------------------------------------
/res/values-th/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
17 |
19 | "คิดเลข"
20 | "ข้อผิดพลาด"
21 | "0"
22 | "1"
23 | "2"
24 | "3"
25 | "4"
26 | "5"
27 | "6"
28 | "7"
29 | "8"
30 | "9"
31 | "DELETE"
32 | "CLR"
33 | "sin"
34 | "cos"
35 | "tan"
36 | "e"
37 | "ln"
38 | "log"
39 | "("
40 | ")"
41 | "แผงควบคุมพื้นฐาน"
42 | "แผงควบคุมขั้นสูง"
43 | "ล้างประวัติ"
44 | "คัดลอกข้อความแล้ว"
45 | "วงเล็บซ้าย"
46 | "วงเล็บขวา"
47 | "แฟกทอเรียล"
48 | "ลอการิทึมธรรมชาติ"
49 | "ลอการิทึม"
50 | "รากที่สอง"
51 | "หาร"
52 | "คูณ"
53 | "บวก"
54 | "ลบ"
55 | "จุด"
56 | "ยกกำลัง"
57 | "ลบ"
58 | "ล้าง"
59 | "แทนเจนต์"
60 | "ไซน์"
61 | "โคไซน์"
62 | "จำนวนออยเลอร์"
63 | "พาย"
64 | "เท่ากับ"
65 |
66 | - "วงเล็บซ้าย"
67 | - "วงเล็บขวา"
68 | - "แฟกทอเรียล"
69 | - "ลอการิทึมธรรมชาติ"
70 | - "ลอการิทึม"
71 | - "รากที่สอง"
72 | - "หารด้วย"
73 | - "คูณด้วย"
74 | - "บวก"
75 | - "ลบ"
76 | - " จุด "
77 | - "ยกกำลัง"
78 | - "แทนเจนต์"
79 | - "ไซน์"
80 | - "โคไซน์"
81 | - "พาย"
82 | - "เท่ากับ"
83 |
84 |
85 |
--------------------------------------------------------------------------------
/res/values-tr/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
17 |
19 | "Hesap Makinesi"
20 | "Hata"
21 | "0"
22 | "1"
23 | "2"
24 | "3"
25 | "4"
26 | "5"
27 | "6"
28 | "7"
29 | "8"
30 | "9"
31 | "SİL"
32 | "CLR"
33 | "sin"
34 | "cos"
35 | "tan"
36 | "e"
37 | "ln"
38 | "log"
39 | "("
40 | ")"
41 | "Ana panel"
42 | "Gelişmiş panel"
43 | "Geçmişi temizle"
44 | "Metin kopyalandı."
45 | "sol parantez"
46 | "sağ parantez"
47 | "faktöryel"
48 | "doğal logaritma"
49 | "logaritma"
50 | "karekök"
51 | "böl"
52 | "çarpı"
53 | "artı"
54 | "eksi"
55 | "virgül"
56 | "üstü"
57 | "sil"
58 | "temizle"
59 | "tanjant"
60 | "sinüs"
61 | "kosinüs"
62 | "Euler sayısı"
63 | "pi"
64 | "eşittir"
65 |
66 | - "sol parantez"
67 | - "sağ parantez"
68 | - "faktöryel"
69 | - "doğal logaritma"
70 | - "logaritma"
71 | - "karekök"
72 | - "bölü"
73 | - "çarpı"
74 | - "artı"
75 | - "eksi"
76 | - " nokta "
77 | - "üstü"
78 | - "tanjant"
79 | - "sinüs"
80 | - "kosinüs"
81 | - "pi"
82 | - "eşittir"
83 |
84 |
85 |
--------------------------------------------------------------------------------
/res/values-et-rEE/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
17 |
19 | "Kalkulaator"
20 | "Viga"
21 | "0"
22 | "1"
23 | "2"
24 | "3"
25 | "4"
26 | "5"
27 | "6"
28 | "7"
29 | "8"
30 | "9"
31 | "KUSTUTA"
32 | "CLR"
33 | "sin"
34 | "cos"
35 | "tan"
36 | "e"
37 | "ln"
38 | "log"
39 | "("
40 | ")"
41 | "Põhipaneel"
42 | "Täpsem paneel"
43 | "Kustuta ajalugu"
44 | "Tekst on kopeeritud."
45 | "Vasaksulg"
46 | "Paremsulg"
47 | "Faktoriaal"
48 | "Naturaallogaritm"
49 | "Logaritm"
50 | "Ruutjuur"
51 | "Jaga"
52 | "Korruta"
53 | "Pluss"
54 | "Miinus"
55 | "Koma"
56 | "Aste"
57 | "Kustuta"
58 | "Tühjenda"
59 | "Tangens"
60 | "Siinus"
61 | "Koosinus"
62 | "Euleri arv"
63 | "Pii"
64 | "Võrdub"
65 |
66 | - "Vasaksulg"
67 | - "Paremsulg"
68 | - "Faktoriaal"
69 | - "Naturaallogaritm"
70 | - "Logaritm"
71 | - "Ruutjuur"
72 | - "Jagaja"
73 | - "Korrutaja"
74 | - "Pluss"
75 | - "Miinus"
76 | - " koma "
77 | - "Aste"
78 | - "Tangens"
79 | - "Siinus"
80 | - "Koosinus"
81 | - "Pii"
82 | - "Võrdub"
83 |
84 |
85 |
--------------------------------------------------------------------------------
/res/values-et/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
17 |
19 | "Kalkulaator"
20 | "Viga"
21 | "0"
22 | "1"
23 | "2"
24 | "3"
25 | "4"
26 | "5"
27 | "6"
28 | "7"
29 | "8"
30 | "9"
31 | "KUSTUTA"
32 | "CLR"
33 | "sin"
34 | "cos"
35 | "tan"
36 | "e"
37 | "ln"
38 | "log"
39 | "("
40 | ")"
41 | "Põhipaneel"
42 | "Täpsem paneel"
43 | "Kustuta ajalugu"
44 | "Tekst on kopeeritud."
45 | "Vasaksulg"
46 | "Paremsulg"
47 | "Faktoriaal"
48 | "Naturaallogaritm"
49 | "Logaritm"
50 | "Ruutjuur"
51 | "Jaga"
52 | "Korruta"
53 | "Pluss"
54 | "Miinus"
55 | "Koma"
56 | "Aste"
57 | "Kustuta"
58 | "Tühjenda"
59 | "Tangens"
60 | "Siinus"
61 | "Koosinus"
62 | "Euleri arv"
63 | "Pii"
64 | "Võrdub"
65 |
66 | - "Vasaksulg"
67 | - "Paremsulg"
68 | - "Faktoriaal"
69 | - "Naturaallogaritm"
70 | - "Logaritm"
71 | - "Ruutjuur"
72 | - "Jagaja"
73 | - "Korrutaja"
74 | - "Pluss"
75 | - "Miinus"
76 | - " koma "
77 | - "Aste"
78 | - "Tangens"
79 | - "Siinus"
80 | - "Koosinus"
81 | - "Pii"
82 | - "Võrdub"
83 |
84 |
85 |
--------------------------------------------------------------------------------
/res/values-ar/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
17 |
19 | "الآلة الحاسبة"
20 | "خطأ"
21 | "0"
22 | "1"
23 | "2"
24 | "3"
25 | "4"
26 | "5"
27 | "6"
28 | "7"
29 | "8"
30 | "9"
31 | "حذف"
32 | "محو"
33 | "sin"
34 | "cos"
35 | "tan"
36 | "e"
37 | "ln"
38 | "log"
39 | "("
40 | ")"
41 | "اللوحة الأساسية"
42 | "اللوحة المتقدمة"
43 | "محو السجل"
44 | "تم نسخ النص."
45 | "قوس أيسر"
46 | "قوس أيمن"
47 | "العامل"
48 | "اللوغاريتم الطبيعي"
49 | "لوغاريتم"
50 | "جذر تربيعي"
51 | "قسمة"
52 | "ضرب"
53 | "علامة الجمع"
54 | "علامة الطرح"
55 | "نقطة"
56 | "أس"
57 | "حذف"
58 | "محو"
59 | "المماس"
60 | "جيب الزاوية"
61 | "جيب التمام"
62 | "رقم إيولر"
63 | "باي"
64 | "تساوي"
65 |
66 | - "قوس أيسر"
67 | - "قوس أيمن"
68 | - "العامل"
69 | - "اللوغاريتم الطبيعي"
70 | - "لوغاريتم"
71 | - "جذر تربيعي"
72 | - "مقسومًا على"
73 | - "مضروبًا في"
74 | - "علامة الجمع"
75 | - "علامة الطرح"
76 | - " نقطة "
77 | - "أس"
78 | - "المماس"
79 | - "جيب الزاوية"
80 | - "جيب التمام"
81 | - "باي"
82 | - "تساوي"
83 |
84 |
85 |
--------------------------------------------------------------------------------
/res/values-mn-rMN/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
17 |
19 | "Тооны машин"
20 | "Алдаа"
21 | "0"
22 | "1"
23 | "2"
24 | "3"
25 | "4"
26 | "5"
27 | "6"
28 | "7"
29 | "8"
30 | "9"
31 | "УСТГАХ"
32 | "CLR"
33 | "sin"
34 | "cos"
35 | "tan"
36 | "e"
37 | "ln"
38 | "log"
39 | "("
40 | ")"
41 | "Үндсэн самбар"
42 | "Дэлгэрэнгүй самбар"
43 | "Түүх цэвэрлэх"
44 | "Текст хуулагдав."
45 | "зүүн хаалт"
46 | "баруун хаалт"
47 | "факториал"
48 | "натурал логарифм"
49 | "логарифм"
50 | "язгуур"
51 | "хуваах"
52 | "үржүүлэх"
53 | "нэмэх"
54 | "хасах"
55 | "цэг"
56 | "зэрэг"
57 | "Устгах"
58 | "цэвэрлэх"
59 | "тангенс"
60 | "синус"
61 | "косинус"
62 | "Эйлерийн тоо"
63 | "пи"
64 | "тэнцүү"
65 |
66 | - "зүүн хаалт"
67 | - "баруун хаалт"
68 | - "факториал"
69 | - "натурал логарифм"
70 | - "логарифм"
71 | - "язгуур"
72 | - "хуваагч"
73 | - "үржүүлэгч"
74 | - "нэмэх"
75 | - "хасах"
76 | - " цэг "
77 | - "зэрэг"
78 | - "тангенс"
79 | - "синус"
80 | - "косинус"
81 | - "пи"
82 | - "тэнцүү"
83 |
84 |
85 |
--------------------------------------------------------------------------------
/res/values-hi/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
17 |
19 | "कैल्क्युलेटर"
20 | "त्रुटि"
21 | "0"
22 | "1"
23 | "2"
24 | "3"
25 | "4"
26 | "5"
27 | "6"
28 | "7"
29 | "8"
30 | "9"
31 | "DELETE"
32 | "CLR"
33 | "sin"
34 | "cos"
35 | "tan"
36 | "e"
37 | "ln"
38 | "log"
39 | "("
40 | ")"
41 | "मूल पैनल"
42 | "अतिरिक्त पैनल"
43 | "इतिहास साफ़ करें"
44 | "पाठ की प्रतिलिपि बनाई गई."
45 | "बायां कोष्ठक"
46 | "दायां कोष्ठक"
47 | "क्रमगुणित"
48 | "प्राकृतिक लघुगणक"
49 | "लघुगणक"
50 | "वर्गमूल"
51 | "विभाजन"
52 | "गुणा"
53 | "योग"
54 | "ऋण"
55 | "बिंदु"
56 | "घात"
57 | "हटाएं"
58 | "साफ़ करें"
59 | "स्पर्शज्या"
60 | "ज्या"
61 | "कोज्या"
62 | "यूलर संख्या"
63 | "पाई"
64 | "बराबर है"
65 |
66 | - "बायां कोष्ठक"
67 | - "दायां कोष्ठक"
68 | - "क्रमगुणित"
69 | - "प्राकृतिक लघुगणक"
70 | - "लघुगणक"
71 | - "वर्गमूल"
72 | - "इसके द्वारा विभाजित"
73 | - "इससे गुणित"
74 | - "योग"
75 | - "ऋण"
76 | - " अंक "
77 | - "घात"
78 | - "स्पर्शज्या"
79 | - "ज्या"
80 | - "कोज्या"
81 | - "पाई"
82 | - "बराबर है"
83 |
84 |
85 |
--------------------------------------------------------------------------------
/res/values-vi/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
17 |
19 | "Máy tính"
20 | "Lỗi"
21 | "0"
22 | "1"
23 | "2"
24 | "3"
25 | "4"
26 | "5"
27 | "6"
28 | "7"
29 | "8"
30 | "9"
31 | "XOÁ"
32 | "CLR"
33 | "sin"
34 | "cos"
35 | "tan"
36 | "e"
37 | "ln"
38 | "ghi"
39 | "("
40 | ")"
41 | "Bảng điều khiển cơ bản"
42 | "Bảng điều khiển nâng cao"
43 | "Xóa lịch sử"
44 | "Đã sao chép văn bản."
45 | "dấu ngoặc trái"
46 | "dấu ngoặc phải"
47 | "giai thừa"
48 | "logarit tự nhiên"
49 | "logarit"
50 | "dấu khai căn"
51 | "chia"
52 | "nhân"
53 | "cộng"
54 | "trừ"
55 | "điểm"
56 | "lũy thừa"
57 | "xóa"
58 | "xóa"
59 | "tiếp tuyến"
60 | "sin"
61 | "cosin"
62 | "Số Euler"
63 | "pi"
64 | "bằng"
65 |
66 | - "dấu ngoặc trái"
67 | - "dấu ngoặc phải"
68 | - "giai thừa"
69 | - "logarit tự nhiên"
70 | - "logarit"
71 | - "dấu khai căn"
72 | - "chia cho"
73 | - "nhân với"
74 | - "cộng"
75 | - "trừ"
76 | - " điểm "
77 | - "lũy thừa"
78 | - "tiếp tuyến"
79 | - "sin"
80 | - "cosin"
81 | - "pi"
82 | - "bằng"
83 |
84 |
85 |
--------------------------------------------------------------------------------
/res/values-sw/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
17 |
19 | "Kikokotoo"
20 | "Hitilafu"
21 | "0"
22 | "1"
23 | "2"
24 | "3"
25 | "4"
26 | "5"
27 | "6"
28 | "7"
29 | "8"
30 | "9"
31 | "FUTA"
32 | "FUT"
33 | "sin"
34 | "cos"
35 | "tan"
36 | "e"
37 | "Kwenye"
38 | "log"
39 | "("
40 | ")"
41 | "Paneli msingi"
42 | "Paneli pevu"
43 | "Futa historia"
44 | "Maandishi yamenakiliwa."
45 | "mabano ya kushoto"
46 | "mabano ya kulia"
47 | "kiwanda"
48 | "logi asili"
49 | "logi"
50 | "Kipeo cha pili"
51 | "gawanya"
52 | "zidisha"
53 | "jumlisha"
54 | "kutoa"
55 | "nukta"
56 | "nguvu"
57 | "futa"
58 | "futa"
59 | "mstari"
60 | "sine"
61 | "kosi"
62 | "namba ya Euler"
63 | "pi"
64 | "sawa na"
65 |
66 | - "Mabano ya kushoto"
67 | - "mabano ya kulia"
68 | - "kiwanda"
69 | - "logi asili"
70 | - "logi"
71 | - "Kipeo cha pili"
72 | - "imegawanywa na"
73 | - "imezidishwa na"
74 | - "jumlisha"
75 | - "kutoa"
76 | - " mahali "
77 | - "nguvu"
78 | - "mstari"
79 | - "sine"
80 | - "kosi"
81 | - "pi"
82 | - "sawa na"
83 |
84 |
85 |
--------------------------------------------------------------------------------
/res/values-nb/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
17 |
19 | "Kalkulator"
20 | "Feil"
21 | "0"
22 | "1"
23 | "2"
24 | "3"
25 | "4"
26 | "5"
27 | "6"
28 | "7"
29 | "8"
30 | "9"
31 | "SLETT"
32 | "CLR"
33 | "sin"
34 | "cos"
35 | "tan"
36 | "e"
37 | "ln"
38 | "log"
39 | "("
40 | ")"
41 | "Grunnleggende panel"
42 | "Avansert panel"
43 | "Tøm logg"
44 | "Tekst er kopiert."
45 | "venstre parentes"
46 | "høyre parentes"
47 | "fakultet"
48 | "naturlig logaritme"
49 | "logaritme"
50 | "kvadratrot"
51 | "dele"
52 | "multiplisere"
53 | "pluss"
54 | "minus"
55 | "komma"
56 | "potens"
57 | "slett"
58 | "slett"
59 | "tangent"
60 | "sinus"
61 | "cosinus"
62 | "Eulers tall"
63 | "pi"
64 | "er lik"
65 |
66 | - "venstre parentes"
67 | - "høyre parentes"
68 | - "fakultet"
69 | - "naturlig logaritme"
70 | - "logaritme"
71 | - "kvadratrot"
72 | - "delt på"
73 | - "multiplisert med"
74 | - "pluss"
75 | - "minus"
76 | - " komma "
77 | - "potens"
78 | - "tangent"
79 | - "sinus"
80 | - "cosinus"
81 | - "pi"
82 | - "er lik"
83 |
84 |
85 |
--------------------------------------------------------------------------------
/res/values-da/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
17 |
19 | "Lommereg."
20 | "Fejl"
21 | "0"
22 | "1"
23 | "2"
24 | "3"
25 | "4"
26 | "5"
27 | "6"
28 | "7"
29 | "8"
30 | "9"
31 | "SLET"
32 | "RYD"
33 | "sin"
34 | "cos"
35 | "tan"
36 | "e"
37 | "ln"
38 | "log"
39 | "("
40 | ")"
41 | "Grundlæggende panel"
42 | "Avanceret panel"
43 | "Ryd historik"
44 | "Tekst er kopieret."
45 | "venstre parentes"
46 | "højre parentes"
47 | "faktoriel"
48 | "naturlig logaritme"
49 | "logaritme"
50 | "kvadratrod"
51 | "divider"
52 | "gange"
53 | "plus"
54 | "minus"
55 | "point"
56 | "tænd/sluk"
57 | "slet"
58 | "ryd"
59 | "tangent"
60 | "sinus"
61 | "cosinus"
62 | "Eulers tal"
63 | "pi"
64 | "lig med"
65 |
66 | - "venstre parentes"
67 | - "højre parentes"
68 | - "faktoriel"
69 | - "naturlig logaritme"
70 | - "logaritme"
71 | - "kvadratrod"
72 | - "divideret med"
73 | - "ganget med"
74 | - "plus"
75 | - "minus"
76 | - " point "
77 | - "tænd/sluk"
78 | - "tangent"
79 | - "sinus"
80 | - "cosinus"
81 | - "pi"
82 | - "lig med"
83 |
84 |
85 |
--------------------------------------------------------------------------------
/res/values-en-rGB/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
17 |
19 | "Calculator"
20 | "Error"
21 | "0"
22 | "1"
23 | "2"
24 | "3"
25 | "4"
26 | "5"
27 | "6"
28 | "7"
29 | "8"
30 | "9"
31 | "DELETE"
32 | "CLR"
33 | "sin"
34 | "cos"
35 | "tan"
36 | "e"
37 | "ln"
38 | "log"
39 | "("
40 | ")"
41 | "Basic panel"
42 | "Advanced panel"
43 | "Clear history"
44 | "Text copied."
45 | "left parenthesis"
46 | "right parenthesis"
47 | "factorial"
48 | "natural logarithm"
49 | "logarithm"
50 | "square root"
51 | "divide"
52 | "multiply"
53 | "plus"
54 | "minus"
55 | "point"
56 | "power"
57 | "delete"
58 | "clear"
59 | "tangent"
60 | "sine"
61 | "cosine"
62 | "Euler\'s number"
63 | "pi"
64 | "equals"
65 |
66 | - "left parenthesis"
67 | - "right parenthesis"
68 | - "factorial"
69 | - "natural logarithm"
70 | - "logarithm"
71 | - "square root"
72 | - "divided by"
73 | - "multiplied by"
74 | - "plus"
75 | - "minus"
76 | - " point "
77 | - "power"
78 | - "tangent"
79 | - "sine"
80 | - "cosine"
81 | - "pi"
82 | - "equals"
83 |
84 |
85 |
--------------------------------------------------------------------------------
/res/values-en-rIN/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
17 |
19 | "Calculator"
20 | "Error"
21 | "0"
22 | "1"
23 | "2"
24 | "3"
25 | "4"
26 | "5"
27 | "6"
28 | "7"
29 | "8"
30 | "9"
31 | "DELETE"
32 | "CLR"
33 | "sin"
34 | "cos"
35 | "tan"
36 | "e"
37 | "ln"
38 | "log"
39 | "("
40 | ")"
41 | "Basic panel"
42 | "Advanced panel"
43 | "Clear history"
44 | "Text copied."
45 | "left parenthesis"
46 | "right parenthesis"
47 | "factorial"
48 | "natural logarithm"
49 | "logarithm"
50 | "square root"
51 | "divide"
52 | "multiply"
53 | "plus"
54 | "minus"
55 | "point"
56 | "power"
57 | "delete"
58 | "clear"
59 | "tangent"
60 | "sine"
61 | "cosine"
62 | "Euler\'s number"
63 | "pi"
64 | "equals"
65 |
66 | - "left parenthesis"
67 | - "right parenthesis"
68 | - "factorial"
69 | - "natural logarithm"
70 | - "logarithm"
71 | - "square root"
72 | - "divided by"
73 | - "multiplied by"
74 | - "plus"
75 | - "minus"
76 | - " point "
77 | - "power"
78 | - "tangent"
79 | - "sine"
80 | - "cosine"
81 | - "pi"
82 | - "equals"
83 |
84 |
85 |
--------------------------------------------------------------------------------
/res/values-in/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
17 |
19 | "Calculator"
20 | "Kesalahan"
21 | "0"
22 | "1"
23 | "2"
24 | "3"
25 | "4"
26 | "5"
27 | "6"
28 | "7"
29 | "8"
30 | "9"
31 | "DELETE"
32 | "HAPUS"
33 | "sin"
34 | "cos"
35 | "tan"
36 | "e"
37 | "ln"
38 | "log"
39 | "("
40 | ")"
41 | "Panel dasar"
42 | "Panel lanjutan"
43 | "Hapus riwayat"
44 | "Teks disalin."
45 | "kurung buka"
46 | "kurung tutup"
47 | "faktorial"
48 | "logaritma alami"
49 | "logaritme"
50 | "akar pangkat dua"
51 | "bagi"
52 | "kali"
53 | "plus"
54 | "minus"
55 | "titik"
56 | "pangkat"
57 | "hapus"
58 | "hapus"
59 | "tangen"
60 | "sinus"
61 | "kosinus"
62 | "bilangan Euler"
63 | "pi"
64 | "sama dengan"
65 |
66 | - "kurung buka"
67 | - "kurung tutup"
68 | - "faktorial"
69 | - "logaritma alami"
70 | - "logaritme"
71 | - "akar pangkat dua"
72 | - "dibagi dengan"
73 | - "dikalikan dengan"
74 | - "plus"
75 | - "minus"
76 | - " poin "
77 | - "pangkat"
78 | - "tangen"
79 | - "sinus"
80 | - "kosinus"
81 | - "pi"
82 | - "sama dengan"
83 |
84 |
85 |
--------------------------------------------------------------------------------