├── .gitignore
├── app
├── build.gradle
├── google-services.json
├── lint.xml
├── misc
│ ├── doc
│ │ ├── GoogleAdMobAdsSdk-4.3.1-javadocs.zip
│ │ └── achartengine-0.7.0-javadocs.zip
│ ├── libs
│ │ ├── measure.jar
│ │ ├── org.apache.http.legacy.jar
│ │ ├── square-otto-1.3.9-SNAPSHOT.jar
│ │ └── square-otto-compiler-1.3.9-SNAPSHOT.jar
│ ├── other
│ │ ├── prepare_avds.sh
│ │ ├── remove_avds.sh
│ │ ├── take_screenshots.py
│ │ ├── take_screenshots.sh
│ │ ├── take_screenshots2.sh
│ │ └── wait_device.py
│ ├── res
│ │ ├── calculatorpp
│ │ │ ├── 01_main_screen_port.png
│ │ │ ├── 01_main_screen_port_sm.png
│ │ │ ├── 02_main_screen_land.png
│ │ │ ├── 03_main_screen_port_with_expression.png
│ │ │ ├── 04_plot_graph_menu.png
│ │ │ ├── 04_plot_graph_menu_sm.png
│ │ │ ├── 05_graph_screen.png
│ │ │ ├── 05_graph_screen_sm.png
│ │ │ ├── 06_constants_screen.png
│ │ │ ├── 06_constants_screen_sm.png
│ │ │ ├── 07_constant_create_dialog.png
│ │ │ ├── 08_constants_context_menu.png
│ │ │ ├── 09_functions_screen.png
│ │ │ ├── 09_functions_screen_sm.png
│ │ │ ├── 10_history_screen.png
│ │ │ ├── 10_history_screen_sm.png
│ │ │ ├── 11_history_item_context_menu.png
│ │ │ ├── 12_saved_history_tab.png
│ │ │ ├── 13_saved_history_item_context_menu.png
│ │ │ ├── 14_about_screen.png
│ │ │ ├── 14_about_screen_sm.png
│ │ │ ├── 15_release_notes_tab.png
│ │ │ ├── 16_help_screen.png
│ │ │ ├── 16_help_screen_sm.png
│ │ │ ├── 17_hints_tab.png
│ │ │ ├── 18_preferences.png
│ │ │ ├── 18_preferences_02.png
│ │ │ ├── 18_preferences_03.png
│ │ │ ├── 18_preferences_sm.png
│ │ │ ├── plan.png
│ │ │ └── plan.xcf
│ │ ├── description
│ │ │ ├── description-de.txt
│ │ │ ├── description-es-ES.txt
│ │ │ ├── description-fr.txt
│ │ │ ├── description-it.txt
│ │ │ ├── description-pl.txt
│ │ │ ├── description-pt-BR.txt
│ │ │ ├── description-ru.txt
│ │ │ ├── description-short-ru.txt
│ │ │ ├── description-short.txt
│ │ │ ├── description-tr.txt
│ │ │ ├── description-vi.txt
│ │ │ ├── description-zh-CN.txt
│ │ │ ├── description-zh-TW.txt
│ │ │ └── description.txt
│ │ ├── icon-green.png
│ │ ├── icon-hi-res.png
│ │ ├── icon-promo.png
│ │ ├── icon.png
│ │ ├── icon144.png
│ │ ├── icon48.png
│ │ ├── icon512.png
│ │ ├── icon72.png
│ │ ├── icon96.png
│ │ ├── icon_onscreen144.png
│ │ ├── icon_onscreen48.png
│ │ ├── icon_onscreen512.png
│ │ ├── icon_onscreen72.png
│ │ ├── icon_onscreen96.png
│ │ ├── logo-admob.png
│ │ ├── logo-scaled.png
│ │ ├── logo-small.png
│ │ ├── logo.cdr
│ │ ├── logo.png
│ │ ├── widget.png
│ │ └── work
│ │ │ ├── Backup_of_logo.cdr
│ │ │ ├── header.png
│ │ │ ├── header_bg.png
│ │ │ ├── header_sm.png
│ │ │ ├── heart_original.png
│ │ │ ├── icon.png
│ │ │ ├── icon_favicon_light_blue.ico
│ │ │ ├── icon_favicon_light_blue.png
│ │ │ ├── icon_favicon_purple.ico
│ │ │ ├── icon_small.png
│ │ │ ├── log11o.psd
│ │ │ ├── logo.cdr
│ │ │ ├── logo.png
│ │ │ ├── logoFULL copy.png
│ │ │ ├── logoFULL.pdf
│ │ │ ├── logoFULL.png
│ │ │ ├── logoFULL_banner.png
│ │ │ ├── logoFULL_small.png
│ │ │ ├── logo_black.png
│ │ │ ├── logo_blue.png
│ │ │ ├── logo_light_blue.png
│ │ │ ├── logo_purple.png
│ │ │ ├── promo_logo.png
│ │ │ ├── text_logo.png
│ │ │ ├── text_logo_blue.png
│ │ │ ├── text_logo_light_blue.png
│ │ │ ├── text_logo_light_blue_cpp_forum.png
│ │ │ └── text_logo_purple.png
│ └── src
│ │ ├── achartengine-0.7.0.jar
│ │ └── bsh.jar
├── proguard-debug.cfg
├── proguard.cfg
└── src
│ ├── androidTest
│ └── java
│ │ ├── net
│ │ └── slideshare
│ │ │ └── mobile
│ │ │ └── test
│ │ │ └── util
│ │ │ └── OrientationChangeAction.java
│ │ └── org
│ │ └── solovyev
│ │ └── android
│ │ └── calculator
│ │ ├── converter
│ │ └── ConverterFragmentTest.java
│ │ ├── plot
│ │ ├── BasePlotTest.java
│ │ └── PlotEditFunctionFragmentTest.java
│ │ └── wizard
│ │ └── WizardActivityTest.java
│ ├── main
│ ├── AndroidManifest.xml
│ ├── assets
│ │ └── fonts
│ │ │ └── Roboto-Regular.ttf
│ ├── java
│ │ ├── com
│ │ │ └── viewpagerindicator
│ │ │ │ ├── CirclePageIndicator.java
│ │ │ │ └── PageIndicator.java
│ │ ├── org
│ │ │ └── solovyev
│ │ │ │ ├── android
│ │ │ │ ├── Check.java
│ │ │ │ ├── calculator
│ │ │ │ │ ├── ActivityLauncher.java
│ │ │ │ │ ├── AdView.java
│ │ │ │ │ ├── App.java
│ │ │ │ │ ├── AppComponent.java
│ │ │ │ │ ├── AppModule.java
│ │ │ │ │ ├── BaseActivity.java
│ │ │ │ │ ├── BaseDialogFragment.java
│ │ │ │ │ ├── BaseFragment.java
│ │ │ │ │ ├── BaseNumberBuilder.java
│ │ │ │ │ ├── Broadcaster.java
│ │ │ │ │ ├── Calculator.java
│ │ │ │ │ ├── CalculatorActivity.java
│ │ │ │ │ ├── CalculatorApplication.java
│ │ │ │ │ ├── CalculatorEngineControl.java
│ │ │ │ │ ├── CalculatorMessage.java
│ │ │ │ │ ├── CalculatorMessages.java
│ │ │ │ │ ├── CalculatorSecurity.java
│ │ │ │ │ ├── Clipboard.java
│ │ │ │ │ ├── Display.java
│ │ │ │ │ ├── DisplayFragment.java
│ │ │ │ │ ├── DisplayState.java
│ │ │ │ │ ├── DisplayView.java
│ │ │ │ │ ├── Editor.java
│ │ │ │ │ ├── EditorFragment.java
│ │ │ │ │ ├── EditorState.java
│ │ │ │ │ ├── EditorView.java
│ │ │ │ │ ├── Engine.java
│ │ │ │ │ ├── EntitiesRegistry.java
│ │ │ │ │ ├── ErrorReporter.java
│ │ │ │ │ ├── FloatingCalculatorKeyboard.java
│ │ │ │ │ ├── FragmentTab.java
│ │ │ │ │ ├── Keyboard.java
│ │ │ │ │ ├── KeyboardFragment.java
│ │ │ │ │ ├── LiteNumberBuilder.java
│ │ │ │ │ ├── Named.java
│ │ │ │ │ ├── Notifier.java
│ │ │ │ │ ├── NumberBuilder.java
│ │ │ │ │ ├── ParseException.java
│ │ │ │ │ ├── Preferences.java
│ │ │ │ │ ├── PreparedExpression.java
│ │ │ │ │ ├── RemovalConfirmationDialog.java
│ │ │ │ │ ├── Runnables.java
│ │ │ │ │ ├── StartupHelper.java
│ │ │ │ │ ├── TaskExecutor.java
│ │ │ │ │ ├── ToJsclTextProcessor.java
│ │ │ │ │ ├── UiPreferences.java
│ │ │ │ │ ├── Utils.java
│ │ │ │ │ ├── VariablesRegistry.java
│ │ │ │ │ ├── WidgetReceiver.java
│ │ │ │ │ ├── about
│ │ │ │ │ │ ├── AboutActivity.java
│ │ │ │ │ │ ├── AboutFragment.java
│ │ │ │ │ │ └── ReleaseNotesFragment.java
│ │ │ │ │ ├── ads
│ │ │ │ │ │ └── AdUi.java
│ │ │ │ │ ├── buttons
│ │ │ │ │ │ ├── CppButton.java
│ │ │ │ │ │ └── CppSpecialButton.java
│ │ │ │ │ ├── calculations
│ │ │ │ │ │ ├── BaseCalculationEvent.java
│ │ │ │ │ │ ├── BaseConversionEvent.java
│ │ │ │ │ │ ├── CalculationCancelledEvent.java
│ │ │ │ │ │ ├── CalculationFailedEvent.java
│ │ │ │ │ │ ├── CalculationFinishedEvent.java
│ │ │ │ │ │ ├── ConversionFailedEvent.java
│ │ │ │ │ │ └── ConversionFinishedEvent.java
│ │ │ │ │ ├── converter
│ │ │ │ │ │ ├── Converter.java
│ │ │ │ │ │ ├── ConverterFragment.java
│ │ │ │ │ │ ├── Convertible.java
│ │ │ │ │ │ ├── ConvertibleDimension.java
│ │ │ │ │ │ ├── NumeralBaseConvertible.java
│ │ │ │ │ │ ├── NumeralBaseDimension.java
│ │ │ │ │ │ ├── UnitConvertible.java
│ │ │ │ │ │ └── UnitDimension.java
│ │ │ │ │ ├── entities
│ │ │ │ │ │ ├── BaseEntitiesFragment.java
│ │ │ │ │ │ ├── BaseEntitiesRegistry.java
│ │ │ │ │ │ ├── Category.java
│ │ │ │ │ │ └── Entities.java
│ │ │ │ │ ├── errors
│ │ │ │ │ │ ├── FixableError.java
│ │ │ │ │ │ ├── FixableErrorFragment.java
│ │ │ │ │ │ ├── FixableErrorType.java
│ │ │ │ │ │ └── FixableErrorsActivity.java
│ │ │ │ │ ├── feedback
│ │ │ │ │ │ └── FeedbackReporter.java
│ │ │ │ │ ├── floating
│ │ │ │ │ │ ├── FloatingCalculatorActivity.java
│ │ │ │ │ │ ├── FloatingCalculatorBroadcastReceiver.java
│ │ │ │ │ │ ├── FloatingCalculatorService.java
│ │ │ │ │ │ ├── FloatingCalculatorView.java
│ │ │ │ │ │ └── FloatingViewListener.java
│ │ │ │ │ ├── functions
│ │ │ │ │ │ ├── BaseFunctionFragment.java
│ │ │ │ │ │ ├── CppFunction.java
│ │ │ │ │ │ ├── EditFunctionFragment.java
│ │ │ │ │ │ ├── FunctionCategory.java
│ │ │ │ │ │ ├── FunctionParamsView.java
│ │ │ │ │ │ ├── FunctionsActivity.java
│ │ │ │ │ │ ├── FunctionsFragment.java
│ │ │ │ │ │ ├── FunctionsRegistry.java
│ │ │ │ │ │ ├── OldFunction.java
│ │ │ │ │ │ └── OldFunctions.java
│ │ │ │ │ ├── ga
│ │ │ │ │ │ └── Ga.java
│ │ │ │ │ ├── history
│ │ │ │ │ │ ├── BaseHistoryFragment.java
│ │ │ │ │ │ ├── EditHistoryFragment.java
│ │ │ │ │ │ ├── History.java
│ │ │ │ │ │ ├── HistoryActivity.java
│ │ │ │ │ │ ├── HistoryState.java
│ │ │ │ │ │ ├── OldDisplayHistoryState.java
│ │ │ │ │ │ ├── OldEditorHistoryState.java
│ │ │ │ │ │ ├── OldHistory.java
│ │ │ │ │ │ ├── OldHistoryState.java
│ │ │ │ │ │ ├── RecentHistory.java
│ │ │ │ │ │ ├── RecentHistoryFragment.java
│ │ │ │ │ │ └── SavedHistoryFragment.java
│ │ │ │ │ ├── jscl
│ │ │ │ │ │ ├── FromJsclNumericTextProcessor.java
│ │ │ │ │ │ └── JsclOperation.java
│ │ │ │ │ ├── json
│ │ │ │ │ │ ├── Json.java
│ │ │ │ │ │ └── Jsonable.java
│ │ │ │ │ ├── keyboard
│ │ │ │ │ │ ├── BaseFloatingKeyboard.java
│ │ │ │ │ │ ├── BaseKeyboardUi.java
│ │ │ │ │ │ ├── FloatingKeyboard.java
│ │ │ │ │ │ ├── FloatingKeyboardWindow.java
│ │ │ │ │ │ ├── FloatingNumberKeyboard.java
│ │ │ │ │ │ ├── KeyboardUi.java
│ │ │ │ │ │ └── PartialKeyboardUi.java
│ │ │ │ │ ├── language
│ │ │ │ │ │ ├── Language.java
│ │ │ │ │ │ └── Languages.java
│ │ │ │ │ ├── math
│ │ │ │ │ │ ├── MathType.java
│ │ │ │ │ │ └── MathUtils.java
│ │ │ │ │ ├── matrix
│ │ │ │ │ │ ├── MatrixUi.java
│ │ │ │ │ │ └── MatrixView.java
│ │ │ │ │ ├── memory
│ │ │ │ │ │ └── Memory.java
│ │ │ │ │ ├── operators
│ │ │ │ │ │ ├── OperatorCategory.java
│ │ │ │ │ │ ├── OperatorsActivity.java
│ │ │ │ │ │ ├── OperatorsFragment.java
│ │ │ │ │ │ ├── OperatorsRegistry.java
│ │ │ │ │ │ └── PostfixFunctionsRegistry.java
│ │ │ │ │ ├── plot
│ │ │ │ │ │ ├── ExpressionFunction.java
│ │ │ │ │ │ ├── PlotActivity.java
│ │ │ │ │ │ ├── PlotDimensionsFragment.java
│ │ │ │ │ │ ├── PlotEditFunctionFragment.java
│ │ │ │ │ │ └── PlotFunctionsFragment.java
│ │ │ │ │ ├── preferences
│ │ │ │ │ │ ├── NumberFormatExamplesPreference.java
│ │ │ │ │ │ ├── PrecisionPreference.java
│ │ │ │ │ │ ├── PreferenceEntry.java
│ │ │ │ │ │ ├── PreferencesActivity.java
│ │ │ │ │ │ ├── PreferencesFragment.java
│ │ │ │ │ │ └── PurchaseDialogActivity.java
│ │ │ │ │ ├── release
│ │ │ │ │ │ ├── ChooseThemeReleaseNoteFragment.java
│ │ │ │ │ │ ├── ChooseThemeReleaseNoteStep.java
│ │ │ │ │ │ ├── ReleaseNote.java
│ │ │ │ │ │ ├── ReleaseNoteFragment.java
│ │ │ │ │ │ ├── ReleaseNoteStep.java
│ │ │ │ │ │ └── ReleaseNotes.java
│ │ │ │ │ ├── text
│ │ │ │ │ │ ├── DummyTextProcessor.java
│ │ │ │ │ │ ├── FromJsclSimplifyTextProcessor.java
│ │ │ │ │ │ ├── NaturalComparator.java
│ │ │ │ │ │ ├── NumberSpan.java
│ │ │ │ │ │ ├── TextProcessor.java
│ │ │ │ │ │ └── TextProcessorEditorResult.java
│ │ │ │ │ ├── variables
│ │ │ │ │ │ ├── CppVariable.java
│ │ │ │ │ │ ├── EditVariableFragment.java
│ │ │ │ │ │ ├── GreekFloatingKeyboard.java
│ │ │ │ │ │ ├── JsclConstant.java
│ │ │ │ │ │ ├── OldVar.java
│ │ │ │ │ │ ├── OldVars.java
│ │ │ │ │ │ ├── VariableCategory.java
│ │ │ │ │ │ ├── VariablesActivity.java
│ │ │ │ │ │ └── VariablesFragment.java
│ │ │ │ │ ├── view
│ │ │ │ │ │ ├── BaseLongClickEraser.java
│ │ │ │ │ │ ├── EditTextCompat.java
│ │ │ │ │ │ ├── EditTextLongClickEraser.java
│ │ │ │ │ │ ├── EditorLongClickEraser.java
│ │ │ │ │ │ ├── EditorTextProcessor.java
│ │ │ │ │ │ ├── PagerViewFabBehavior.java
│ │ │ │ │ │ ├── Tabs.java
│ │ │ │ │ │ ├── TextHighlighter.java
│ │ │ │ │ │ └── TouchExpander.java
│ │ │ │ │ ├── widget
│ │ │ │ │ │ └── CalculatorWidget.java
│ │ │ │ │ └── wizard
│ │ │ │ │ │ ├── CalculatorMode.java
│ │ │ │ │ │ ├── CalculatorWizardStep.java
│ │ │ │ │ │ ├── CalculatorWizards.java
│ │ │ │ │ │ ├── ChooseModeWizardStep.java
│ │ │ │ │ │ ├── ChooseThemeWizardStep.java
│ │ │ │ │ │ ├── DragButtonWizardStep.java
│ │ │ │ │ │ ├── FinalWizardStep.java
│ │ │ │ │ │ ├── OnScreenCalculatorWizardStep.java
│ │ │ │ │ │ ├── WelcomeWizardStep.java
│ │ │ │ │ │ ├── WizardActivity.java
│ │ │ │ │ │ ├── WizardArrayAdapter.java
│ │ │ │ │ │ └── WizardFragment.java
│ │ │ │ ├── checkout
│ │ │ │ │ └── CppCheckout.java
│ │ │ │ ├── io
│ │ │ │ │ ├── BaseIoLoader.java
│ │ │ │ │ ├── BaseIoSaver.java
│ │ │ │ │ ├── FileLoader.java
│ │ │ │ │ ├── FileSaver.java
│ │ │ │ │ ├── FileSystem.java
│ │ │ │ │ └── Io.java
│ │ │ │ ├── prefs
│ │ │ │ │ ├── AbstractPreference.java
│ │ │ │ │ ├── BooleanPreference.java
│ │ │ │ │ ├── CachingMapper.java
│ │ │ │ │ ├── CharacterPreference.java
│ │ │ │ │ ├── FloatPreference.java
│ │ │ │ │ ├── IntegerPreference.java
│ │ │ │ │ ├── LongPreference.java
│ │ │ │ │ ├── NumberToStringPreference.java
│ │ │ │ │ ├── Preference.java
│ │ │ │ │ └── StringPreference.java
│ │ │ │ ├── text
│ │ │ │ │ └── method
│ │ │ │ │ │ └── NumberInputFilter.java
│ │ │ │ ├── views
│ │ │ │ │ ├── Adjuster.java
│ │ │ │ │ ├── AutoResizeTextView.java
│ │ │ │ │ └── DiscreteSeekBar.java
│ │ │ │ ├── widget
│ │ │ │ │ └── menu
│ │ │ │ │ │ ├── CustomPopupMenu.java
│ │ │ │ │ │ ├── CustomPopupMenuHelper.java
│ │ │ │ │ │ ├── ListMenuItemViewCompat.java
│ │ │ │ │ │ └── MenuItemDivider.java
│ │ │ │ └── wizard
│ │ │ │ │ ├── BaseWizard.java
│ │ │ │ │ ├── ListWizardFlow.java
│ │ │ │ │ ├── Wizard.java
│ │ │ │ │ ├── WizardFlow.java
│ │ │ │ │ ├── WizardStep.java
│ │ │ │ │ ├── WizardUi.java
│ │ │ │ │ ├── Wizards.java
│ │ │ │ │ └── WizardsAware.java
│ │ │ │ └── common
│ │ │ │ └── text
│ │ │ │ ├── CharacterMapper.java
│ │ │ │ ├── EnumMapper.java
│ │ │ │ ├── Formatter.java
│ │ │ │ ├── Mapper.java
│ │ │ │ ├── NumberMapper.java
│ │ │ │ ├── NumberParser.java
│ │ │ │ ├── Parser.java
│ │ │ │ ├── StringMapper.java
│ │ │ │ └── ValueOfFormatter.java
│ │ └── uz
│ │ │ └── shift
│ │ │ └── colorpicker
│ │ │ ├── LineColorPicker.java
│ │ │ ├── OnColorChangedListener.java
│ │ │ └── Palette.java
│ ├── res
│ │ ├── color
│ │ │ ├── cpp_wizard_button_selector.xml
│ │ │ └── cpp_wizard_button_selector_light.xml
│ │ ├── drawable-hdpi
│ │ │ ├── ic_3d_rotation_white_24dp.png
│ │ │ ├── ic_action_done.png
│ │ │ ├── ic_action_done_light.png
│ │ │ ├── ic_add_black_24dp.png
│ │ │ ├── ic_add_white_24dp.png
│ │ │ ├── ic_add_white_36dp.png
│ │ │ ├── ic_arrow_downward_black_24dp.png
│ │ │ ├── ic_arrow_downward_white_24dp.png
│ │ │ ├── ic_arrow_upward_black_24dp.png
│ │ │ ├── ic_arrow_upward_white_24dp.png
│ │ │ ├── ic_backspace_white_24dp.png
│ │ │ ├── ic_backspace_white_48dp.png
│ │ │ ├── ic_close_white_24dp.png
│ │ │ ├── ic_content_copy_white_48dp.png
│ │ │ ├── ic_content_paste_white_48dp.png
│ │ │ ├── ic_delete_white_36dp.png
│ │ │ ├── ic_done_white_24dp.png
│ │ │ ├── ic_history_white_48dp.png
│ │ │ ├── ic_keyboard_white_24dp.png
│ │ │ ├── ic_launch_white_48dp.png
│ │ │ ├── ic_launcher.png
│ │ │ ├── ic_launcher_window.png
│ │ │ ├── ic_list_white_24dp.png
│ │ │ ├── ic_mode_edit_white_18dp.png
│ │ │ ├── ic_my_location_white_24dp.png
│ │ │ ├── ic_remove_black_24dp.png
│ │ │ ├── ic_remove_white_24dp.png
│ │ │ ├── ic_settings_white_48dp.png
│ │ │ ├── ic_space_bar_white_24dp.png
│ │ │ ├── ic_straighten_white_24dp.png
│ │ │ ├── ic_swap_vert_black_24dp.png
│ │ │ ├── ic_swap_vert_white_24dp.png
│ │ │ ├── ic_vertical_align_center_white_24dp.png
│ │ │ ├── ic_vertical_align_top_white_24dp.png
│ │ │ ├── ic_zoom_in_white_24dp.png
│ │ │ ├── ic_zoom_out_white_24dp.png
│ │ │ └── kb_logo.png
│ │ ├── drawable-ldpi
│ │ │ └── .emptyfolder
│ │ ├── drawable-ldrtl-hdpi
│ │ │ └── ic_content_copy_white_48dp.png
│ │ ├── drawable-ldrtl-mdpi
│ │ │ └── ic_content_copy_white_48dp.png
│ │ ├── drawable-ldrtl-xhdpi
│ │ │ └── ic_content_copy_white_48dp.png
│ │ ├── drawable-ldrtl-xxhdpi
│ │ │ └── ic_content_copy_white_48dp.png
│ │ ├── drawable-ldrtl-xxxhdpi
│ │ │ └── ic_content_copy_white_48dp.png
│ │ ├── drawable-mdpi
│ │ │ ├── ic_3d_rotation_white_24dp.png
│ │ │ ├── ic_action_done.png
│ │ │ ├── ic_action_done_light.png
│ │ │ ├── ic_add_black_24dp.png
│ │ │ ├── ic_add_white_24dp.png
│ │ │ ├── ic_add_white_36dp.png
│ │ │ ├── ic_arrow_downward_black_24dp.png
│ │ │ ├── ic_arrow_downward_white_24dp.png
│ │ │ ├── ic_arrow_upward_black_24dp.png
│ │ │ ├── ic_arrow_upward_white_24dp.png
│ │ │ ├── ic_backspace_white_24dp.png
│ │ │ ├── ic_backspace_white_48dp.png
│ │ │ ├── ic_close_white_24dp.png
│ │ │ ├── ic_content_copy_white_48dp.png
│ │ │ ├── ic_content_paste_white_48dp.png
│ │ │ ├── ic_delete_white_36dp.png
│ │ │ ├── ic_done_white_24dp.png
│ │ │ ├── ic_history_white_48dp.png
│ │ │ ├── ic_keyboard_white_24dp.png
│ │ │ ├── ic_launch_white_48dp.png
│ │ │ ├── ic_launcher.png
│ │ │ ├── ic_launcher_window.png
│ │ │ ├── ic_list_white_24dp.png
│ │ │ ├── ic_mode_edit_white_18dp.png
│ │ │ ├── ic_my_location_white_24dp.png
│ │ │ ├── ic_remove_black_24dp.png
│ │ │ ├── ic_remove_white_24dp.png
│ │ │ ├── ic_settings_white_48dp.png
│ │ │ ├── ic_space_bar_white_24dp.png
│ │ │ ├── ic_straighten_white_24dp.png
│ │ │ ├── ic_swap_vert_black_24dp.png
│ │ │ ├── ic_swap_vert_white_24dp.png
│ │ │ ├── ic_vertical_align_center_white_24dp.png
│ │ │ ├── ic_vertical_align_top_white_24dp.png
│ │ │ ├── ic_zoom_in_white_24dp.png
│ │ │ ├── ic_zoom_out_white_24dp.png
│ │ │ └── kb_logo.png
│ │ ├── drawable-nodpi
│ │ │ ├── cpp_onscreen_header_logo.png
│ │ │ ├── cpp_onscreen_header_logo_light.png
│ │ │ ├── divider.9.png
│ │ │ ├── divider_dark.9.png
│ │ │ ├── logo_wizard.png
│ │ │ ├── logo_wizard_light.png
│ │ │ ├── logo_wizard_window.png
│ │ │ ├── logo_wizard_window_light.png
│ │ │ └── widget_preview.png
│ │ ├── drawable-v21
│ │ │ ├── button_no_bg.xml
│ │ │ ├── material_blue_button.xml
│ │ │ ├── material_blue_button_lighter.xml
│ │ │ ├── material_button_black.xml
│ │ │ ├── material_button_black_lighter.xml
│ │ │ ├── material_button_dark.xml
│ │ │ ├── material_button_dark_lighter.xml
│ │ │ ├── material_button_deep_blue.xml
│ │ │ ├── material_button_deep_blue_lighter.xml
│ │ │ ├── material_button_light.xml
│ │ │ ├── material_button_light_darker.xml
│ │ │ ├── material_button_light_primary.xml
│ │ │ ├── material_button_light_primary_darker.xml
│ │ │ ├── metro_blue_button.xml
│ │ │ ├── metro_button_dark.xml
│ │ │ ├── metro_button_green.xml
│ │ │ ├── metro_button_light.xml
│ │ │ ├── metro_button_purple.xml
│ │ │ ├── metro_widget_button.xml
│ │ │ ├── metro_widget_button_dark.xml
│ │ │ ├── metro_widget_button_light.xml
│ │ │ ├── widget_button_no_bg.xml
│ │ │ └── widget_button_no_bg_light.xml
│ │ ├── drawable-xhdpi
│ │ │ ├── ic_3d_rotation_white_24dp.png
│ │ │ ├── ic_action_done.png
│ │ │ ├── ic_action_done_light.png
│ │ │ ├── ic_add_black_24dp.png
│ │ │ ├── ic_add_white_24dp.png
│ │ │ ├── ic_add_white_36dp.png
│ │ │ ├── ic_arrow_downward_black_24dp.png
│ │ │ ├── ic_arrow_downward_white_24dp.png
│ │ │ ├── ic_arrow_upward_black_24dp.png
│ │ │ ├── ic_arrow_upward_white_24dp.png
│ │ │ ├── ic_backspace_white_24dp.png
│ │ │ ├── ic_backspace_white_48dp.png
│ │ │ ├── ic_close_white_24dp.png
│ │ │ ├── ic_content_copy_white_48dp.png
│ │ │ ├── ic_content_paste_white_48dp.png
│ │ │ ├── ic_delete_white_36dp.png
│ │ │ ├── ic_done_white_24dp.png
│ │ │ ├── ic_history_white_48dp.png
│ │ │ ├── ic_keyboard_white_24dp.png
│ │ │ ├── ic_launch_white_48dp.png
│ │ │ ├── ic_launcher.png
│ │ │ ├── ic_launcher_window.png
│ │ │ ├── ic_list_white_24dp.png
│ │ │ ├── ic_mode_edit_white_18dp.png
│ │ │ ├── ic_my_location_white_24dp.png
│ │ │ ├── ic_remove_black_24dp.png
│ │ │ ├── ic_remove_white_24dp.png
│ │ │ ├── ic_settings_white_48dp.png
│ │ │ ├── ic_space_bar_white_24dp.png
│ │ │ ├── ic_straighten_white_24dp.png
│ │ │ ├── ic_swap_vert_black_24dp.png
│ │ │ ├── ic_swap_vert_white_24dp.png
│ │ │ ├── ic_vertical_align_center_white_24dp.png
│ │ │ ├── ic_vertical_align_top_white_24dp.png
│ │ │ ├── ic_zoom_in_white_24dp.png
│ │ │ ├── ic_zoom_out_white_24dp.png
│ │ │ └── kb_logo.png
│ │ ├── drawable-xxhdpi
│ │ │ ├── ic_3d_rotation_white_24dp.png
│ │ │ ├── ic_action_done.png
│ │ │ ├── ic_action_done_light.png
│ │ │ ├── ic_add_black_24dp.png
│ │ │ ├── ic_add_white_24dp.png
│ │ │ ├── ic_add_white_36dp.png
│ │ │ ├── ic_arrow_downward_black_24dp.png
│ │ │ ├── ic_arrow_downward_white_24dp.png
│ │ │ ├── ic_arrow_upward_black_24dp.png
│ │ │ ├── ic_arrow_upward_white_24dp.png
│ │ │ ├── ic_backspace_white_24dp.png
│ │ │ ├── ic_backspace_white_48dp.png
│ │ │ ├── ic_close_white_24dp.png
│ │ │ ├── ic_content_copy_white_48dp.png
│ │ │ ├── ic_content_paste_white_48dp.png
│ │ │ ├── ic_delete_white_36dp.png
│ │ │ ├── ic_done_white_24dp.png
│ │ │ ├── ic_history_white_48dp.png
│ │ │ ├── ic_keyboard_white_24dp.png
│ │ │ ├── ic_launch_white_48dp.png
│ │ │ ├── ic_launcher.png
│ │ │ ├── ic_launcher_window.png
│ │ │ ├── ic_list_white_24dp.png
│ │ │ ├── ic_mode_edit_white_18dp.png
│ │ │ ├── ic_my_location_white_24dp.png
│ │ │ ├── ic_remove_black_24dp.png
│ │ │ ├── ic_remove_white_24dp.png
│ │ │ ├── ic_settings_white_48dp.png
│ │ │ ├── ic_space_bar_white_24dp.png
│ │ │ ├── ic_straighten_white_24dp.png
│ │ │ ├── ic_swap_vert_black_24dp.png
│ │ │ ├── ic_swap_vert_white_24dp.png
│ │ │ ├── ic_vertical_align_center_white_24dp.png
│ │ │ ├── ic_vertical_align_top_white_24dp.png
│ │ │ ├── ic_zoom_in_white_24dp.png
│ │ │ └── ic_zoom_out_white_24dp.png
│ │ ├── drawable-xxxhdpi
│ │ │ ├── ic_3d_rotation_white_24dp.png
│ │ │ ├── ic_add_black_24dp.png
│ │ │ ├── ic_add_white_24dp.png
│ │ │ ├── ic_arrow_downward_black_24dp.png
│ │ │ ├── ic_arrow_downward_white_24dp.png
│ │ │ ├── ic_arrow_upward_black_24dp.png
│ │ │ ├── ic_arrow_upward_white_24dp.png
│ │ │ ├── ic_backspace_white_24dp.png
│ │ │ ├── ic_backspace_white_48dp.png
│ │ │ ├── ic_close_white_24dp.png
│ │ │ ├── ic_content_copy_white_48dp.png
│ │ │ ├── ic_content_paste_white_48dp.png
│ │ │ ├── ic_done_white_24dp.png
│ │ │ ├── ic_history_white_48dp.png
│ │ │ ├── ic_keyboard_white_24dp.png
│ │ │ ├── ic_launch_white_48dp.png
│ │ │ ├── ic_launcher.png
│ │ │ ├── ic_launcher_window.png
│ │ │ ├── ic_list_white_24dp.png
│ │ │ ├── ic_mode_edit_white_18dp.png
│ │ │ ├── ic_my_location_white_24dp.png
│ │ │ ├── ic_remove_black_24dp.png
│ │ │ ├── ic_remove_white_24dp.png
│ │ │ ├── ic_settings_white_48dp.png
│ │ │ ├── ic_space_bar_white_24dp.png
│ │ │ ├── ic_straighten_white_24dp.png
│ │ │ ├── ic_swap_vert_black_24dp.png
│ │ │ ├── ic_swap_vert_white_24dp.png
│ │ │ ├── ic_vertical_align_center_white_24dp.png
│ │ │ ├── ic_vertical_align_top_white_24dp.png
│ │ │ ├── ic_zoom_in_white_24dp.png
│ │ │ └── ic_zoom_out_white_24dp.png
│ │ ├── drawable
│ │ │ ├── blue_button.xml
│ │ │ ├── blue_button_dark.xml
│ │ │ ├── blue_button_dark_shape.xml
│ │ │ ├── blue_button_shape.xml
│ │ │ ├── button_no_bg.xml
│ │ │ ├── button_no_bg_pressed.xml
│ │ │ ├── gray_button.xml
│ │ │ ├── gray_button_dark.xml
│ │ │ ├── gray_button_dark_shape.xml
│ │ │ ├── gray_button_shape.xml
│ │ │ ├── ic_chevron_left_white_24dp.xml
│ │ │ ├── ic_keyboard_arrow_left_white_48dp.xml
│ │ │ ├── ic_keyboard_arrow_right_white_48dp.xml
│ │ │ ├── material_blue_button.xml
│ │ │ ├── material_blue_button_lighter.xml
│ │ │ ├── material_button_black.xml
│ │ │ ├── material_button_black_lighter.xml
│ │ │ ├── material_button_dark.xml
│ │ │ ├── material_button_dark_lighter.xml
│ │ │ ├── material_button_deep_blue.xml
│ │ │ ├── material_button_deep_blue_lighter.xml
│ │ │ ├── material_button_light.xml
│ │ │ ├── material_button_light_darker.xml
│ │ │ ├── material_button_light_primary.xml
│ │ │ ├── material_button_light_primary_darker.xml
│ │ │ ├── material_button_pressed.xml
│ │ │ ├── metro_blue_button.xml
│ │ │ ├── metro_blue_button_shape.xml
│ │ │ ├── metro_button_dark.xml
│ │ │ ├── metro_button_dark_shape.xml
│ │ │ ├── metro_button_green.xml
│ │ │ ├── metro_button_green_shape.xml
│ │ │ ├── metro_button_light.xml
│ │ │ ├── metro_button_light_shape.xml
│ │ │ ├── metro_button_pressed.xml
│ │ │ ├── metro_button_purple.xml
│ │ │ ├── metro_button_purple_shape.xml
│ │ │ ├── metro_widget_button.xml
│ │ │ ├── metro_widget_button_dark.xml
│ │ │ ├── metro_widget_button_light.xml
│ │ │ ├── violet_button.xml
│ │ │ ├── violet_button_dark.xml
│ │ │ ├── violet_button_dark_shape.xml
│ │ │ ├── violet_button_shape.xml
│ │ │ ├── widget_button_no_bg.xml
│ │ │ ├── widget_button_no_bg_light.xml
│ │ │ └── widget_button_no_bg_pressed.xml
│ │ ├── layout-land
│ │ │ ├── activity_main.xml
│ │ │ ├── activity_tabs_tablayout.xml
│ │ │ └── cpp_app_keyboard.xml
│ │ ├── layout
│ │ │ ├── activity_empty.xml
│ │ │ ├── activity_main.xml
│ │ │ ├── activity_main_editor_with_overflow_menu.xml
│ │ │ ├── activity_tabs.xml
│ │ │ ├── activity_tabs_tablayout.xml
│ │ │ ├── cpp_activity_wizard.xml
│ │ │ ├── cpp_app_button_0.xml
│ │ │ ├── cpp_app_button_1.xml
│ │ │ ├── cpp_app_button_2.xml
│ │ │ ├── cpp_app_button_3.xml
│ │ │ ├── cpp_app_button_4.xml
│ │ │ ├── cpp_app_button_5.xml
│ │ │ ├── cpp_app_button_6.xml
│ │ │ ├── cpp_app_button_7.xml
│ │ │ ├── cpp_app_button_8.xml
│ │ │ ├── cpp_app_button_9.xml
│ │ │ ├── cpp_app_button_clear.xml
│ │ │ ├── cpp_app_button_division.xml
│ │ │ ├── cpp_app_button_dot.xml
│ │ │ ├── cpp_app_button_equals_no_bg.xml
│ │ │ ├── cpp_app_button_erase.xml
│ │ │ ├── cpp_app_button_functions.xml
│ │ │ ├── cpp_app_button_history.xml
│ │ │ ├── cpp_app_button_left.xml
│ │ │ ├── cpp_app_button_like.xml
│ │ │ ├── cpp_app_button_memory.xml
│ │ │ ├── cpp_app_button_minus.xml
│ │ │ ├── cpp_app_button_multiplication.xml
│ │ │ ├── cpp_app_button_percent.xml
│ │ │ ├── cpp_app_button_plus.xml
│ │ │ ├── cpp_app_button_right.xml
│ │ │ ├── cpp_app_button_round_brackets.xml
│ │ │ ├── cpp_app_button_vars.xml
│ │ │ ├── cpp_app_display.xml
│ │ │ ├── cpp_app_editor.xml
│ │ │ ├── cpp_app_keyboard.xml
│ │ │ ├── cpp_release_note_step.xml
│ │ │ ├── cpp_simple_button_0.xml
│ │ │ ├── cpp_simple_button_0_material.xml
│ │ │ ├── cpp_simple_button_0_material_light.xml
│ │ │ ├── cpp_simple_button_1.xml
│ │ │ ├── cpp_simple_button_1_material.xml
│ │ │ ├── cpp_simple_button_1_material_light.xml
│ │ │ ├── cpp_simple_button_2.xml
│ │ │ ├── cpp_simple_button_2_material.xml
│ │ │ ├── cpp_simple_button_2_material_light.xml
│ │ │ ├── cpp_simple_button_3.xml
│ │ │ ├── cpp_simple_button_3_material.xml
│ │ │ ├── cpp_simple_button_3_material_light.xml
│ │ │ ├── cpp_simple_button_4.xml
│ │ │ ├── cpp_simple_button_4_material.xml
│ │ │ ├── cpp_simple_button_4_material_light.xml
│ │ │ ├── cpp_simple_button_5.xml
│ │ │ ├── cpp_simple_button_5_material.xml
│ │ │ ├── cpp_simple_button_5_material_light.xml
│ │ │ ├── cpp_simple_button_6.xml
│ │ │ ├── cpp_simple_button_6_material.xml
│ │ │ ├── cpp_simple_button_6_material_light.xml
│ │ │ ├── cpp_simple_button_7.xml
│ │ │ ├── cpp_simple_button_7_material.xml
│ │ │ ├── cpp_simple_button_7_material_light.xml
│ │ │ ├── cpp_simple_button_8.xml
│ │ │ ├── cpp_simple_button_8_material.xml
│ │ │ ├── cpp_simple_button_8_material_light.xml
│ │ │ ├── cpp_simple_button_9.xml
│ │ │ ├── cpp_simple_button_9_material.xml
│ │ │ ├── cpp_simple_button_9_material_light.xml
│ │ │ ├── cpp_simple_button_app.xml
│ │ │ ├── cpp_simple_button_app_material.xml
│ │ │ ├── cpp_simple_button_app_material_light.xml
│ │ │ ├── cpp_simple_button_clear.xml
│ │ │ ├── cpp_simple_button_clear_material.xml
│ │ │ ├── cpp_simple_button_clear_material_light.xml
│ │ │ ├── cpp_simple_button_copy.xml
│ │ │ ├── cpp_simple_button_copy_material.xml
│ │ │ ├── cpp_simple_button_copy_material_light.xml
│ │ │ ├── cpp_simple_button_division.xml
│ │ │ ├── cpp_simple_button_division_material.xml
│ │ │ ├── cpp_simple_button_division_material_light.xml
│ │ │ ├── cpp_simple_button_dot.xml
│ │ │ ├── cpp_simple_button_dot_material.xml
│ │ │ ├── cpp_simple_button_dot_material_light.xml
│ │ │ ├── cpp_simple_button_equals.xml
│ │ │ ├── cpp_simple_button_equals_material.xml
│ │ │ ├── cpp_simple_button_equals_material_light.xml
│ │ │ ├── cpp_simple_button_erase.xml
│ │ │ ├── cpp_simple_button_erase_material.xml
│ │ │ ├── cpp_simple_button_erase_material_light.xml
│ │ │ ├── cpp_simple_button_functions.xml
│ │ │ ├── cpp_simple_button_functions_material.xml
│ │ │ ├── cpp_simple_button_functions_material_light.xml
│ │ │ ├── cpp_simple_button_history.xml
│ │ │ ├── cpp_simple_button_history_material.xml
│ │ │ ├── cpp_simple_button_history_material_light.xml
│ │ │ ├── cpp_simple_button_left.xml
│ │ │ ├── cpp_simple_button_left_material.xml
│ │ │ ├── cpp_simple_button_left_material_light.xml
│ │ │ ├── cpp_simple_button_minus.xml
│ │ │ ├── cpp_simple_button_minus_material.xml
│ │ │ ├── cpp_simple_button_minus_material_light.xml
│ │ │ ├── cpp_simple_button_multiplication.xml
│ │ │ ├── cpp_simple_button_multiplication_material.xml
│ │ │ ├── cpp_simple_button_multiplication_material_light.xml
│ │ │ ├── cpp_simple_button_operators.xml
│ │ │ ├── cpp_simple_button_operators_material.xml
│ │ │ ├── cpp_simple_button_operators_material_light.xml
│ │ │ ├── cpp_simple_button_paste.xml
│ │ │ ├── cpp_simple_button_paste_material.xml
│ │ │ ├── cpp_simple_button_paste_material_light.xml
│ │ │ ├── cpp_simple_button_percent.xml
│ │ │ ├── cpp_simple_button_percent_material.xml
│ │ │ ├── cpp_simple_button_percent_material_light.xml
│ │ │ ├── cpp_simple_button_plus.xml
│ │ │ ├── cpp_simple_button_plus_material.xml
│ │ │ ├── cpp_simple_button_plus_material_light.xml
│ │ │ ├── cpp_simple_button_power.xml
│ │ │ ├── cpp_simple_button_power_material.xml
│ │ │ ├── cpp_simple_button_power_material_light.xml
│ │ │ ├── cpp_simple_button_right.xml
│ │ │ ├── cpp_simple_button_right_material.xml
│ │ │ ├── cpp_simple_button_right_material_light.xml
│ │ │ ├── cpp_simple_button_round_brackets.xml
│ │ │ ├── cpp_simple_button_round_brackets_material.xml
│ │ │ ├── cpp_simple_button_round_brackets_material_light.xml
│ │ │ ├── cpp_simple_button_settings.xml
│ │ │ ├── cpp_simple_button_settings_material.xml
│ │ │ ├── cpp_simple_button_settings_material_light.xml
│ │ │ ├── cpp_simple_button_vars.xml
│ │ │ ├── cpp_simple_button_vars_material.xml
│ │ │ ├── cpp_simple_button_vars_material_light.xml
│ │ │ ├── cpp_simple_keyboard_lockscreen.xml
│ │ │ ├── cpp_simple_keyboard_lockscreen_collapsed.xml
│ │ │ ├── cpp_unit_converter.xml
│ │ │ ├── cpp_wizard_step_choose_mode.xml
│ │ │ ├── cpp_wizard_step_choose_theme.xml
│ │ │ ├── cpp_wizard_step_choose_theme_preview.xml
│ │ │ ├── cpp_wizard_step_drag_button.xml
│ │ │ ├── cpp_wizard_step_final.xml
│ │ │ ├── cpp_wizard_step_onscreen.xml
│ │ │ ├── cpp_wizard_step_welcome.xml
│ │ │ ├── fragment_about.xml
│ │ │ ├── fragment_entities.xml
│ │ │ ├── fragment_entities_item.xml
│ │ │ ├── fragment_function_edit.xml
│ │ │ ├── fragment_function_edit_base_controls.xml
│ │ │ ├── fragment_functions_function.xml
│ │ │ ├── fragment_history.xml
│ │ │ ├── fragment_history_edit.xml
│ │ │ ├── fragment_history_item.xml
│ │ │ ├── fragment_plot.xml
│ │ │ ├── fragment_plot_dimensions.xml
│ │ │ ├── fragment_plot_function_edit.xml
│ │ │ ├── fragment_plot_functions.xml
│ │ │ ├── fragment_release_notes.xml
│ │ │ ├── fragment_variable_edit.xml
│ │ │ ├── fragment_wizard.xml
│ │ │ ├── onscreen_display.xml
│ │ │ ├── onscreen_display_light.xml
│ │ │ ├── onscreen_editor.xml
│ │ │ ├── onscreen_editor_light.xml
│ │ │ ├── onscreen_header.xml
│ │ │ ├── onscreen_header_material.xml
│ │ │ ├── onscreen_header_material_light.xml
│ │ │ ├── onscreen_layout.xml
│ │ │ ├── onscreen_layout_material.xml
│ │ │ ├── onscreen_layout_material_light.xml
│ │ │ ├── preference_precision.xml
│ │ │ ├── simple_keyboard.xml
│ │ │ ├── simple_keyboard_material.xml
│ │ │ ├── simple_keyboard_material_light.xml
│ │ │ ├── widget_display.xml
│ │ │ ├── widget_display_light.xml
│ │ │ ├── widget_editor.xml
│ │ │ ├── widget_editor_light.xml
│ │ │ ├── widget_layout.xml
│ │ │ ├── widget_layout_lockscreen.xml
│ │ │ ├── widget_layout_lockscreen_collapsed.xml
│ │ │ ├── widget_layout_material.xml
│ │ │ └── widget_layout_material_light.xml
│ │ ├── menu
│ │ │ └── main.xml
│ │ ├── values-ar
│ │ │ ├── strings.xml
│ │ │ ├── strings_about.xml
│ │ │ ├── strings_converter.xml
│ │ │ ├── strings_functions.xml
│ │ │ ├── strings_imported_aosp.xml
│ │ │ ├── strings_imported_other.xml
│ │ │ ├── strings_imported_other1.xml
│ │ │ ├── strings_microsoft.xml
│ │ │ ├── strings_operators.xml
│ │ │ ├── strings_preferences.xml
│ │ │ ├── strings_vars.xml
│ │ │ └── strings_wizard.xml
│ │ ├── values-cs
│ │ │ ├── strings.xml
│ │ │ ├── strings_about.xml
│ │ │ ├── strings_converter.xml
│ │ │ ├── strings_functions.xml
│ │ │ ├── strings_imported_aosp.xml
│ │ │ ├── strings_imported_other.xml
│ │ │ ├── strings_imported_other1.xml
│ │ │ ├── strings_microsoft.xml
│ │ │ ├── strings_operators.xml
│ │ │ ├── strings_preferences.xml
│ │ │ ├── strings_vars.xml
│ │ │ └── strings_wizard.xml
│ │ ├── values-de
│ │ │ ├── strings.xml
│ │ │ ├── strings_about.xml
│ │ │ ├── strings_converter.xml
│ │ │ ├── strings_functions.xml
│ │ │ ├── strings_imported_aosp.xml
│ │ │ ├── strings_imported_other.xml
│ │ │ ├── strings_imported_other1.xml
│ │ │ ├── strings_microsoft.xml
│ │ │ ├── strings_operators.xml
│ │ │ ├── strings_preferences.xml
│ │ │ ├── strings_vars.xml
│ │ │ └── strings_wizard.xml
│ │ ├── values-es
│ │ │ ├── strings.xml
│ │ │ ├── strings_about.xml
│ │ │ ├── strings_converter.xml
│ │ │ ├── strings_functions.xml
│ │ │ ├── strings_imported_aosp.xml
│ │ │ ├── strings_imported_other.xml
│ │ │ ├── strings_imported_other1.xml
│ │ │ ├── strings_microsoft.xml
│ │ │ ├── strings_operators.xml
│ │ │ ├── strings_preferences.xml
│ │ │ ├── strings_vars.xml
│ │ │ └── strings_wizard.xml
│ │ ├── values-fi
│ │ │ ├── strings.xml
│ │ │ ├── strings_about.xml
│ │ │ ├── strings_converter.xml
│ │ │ ├── strings_functions.xml
│ │ │ ├── strings_imported_aosp.xml
│ │ │ ├── strings_imported_other.xml
│ │ │ ├── strings_imported_other1.xml
│ │ │ ├── strings_microsoft.xml
│ │ │ ├── strings_operators.xml
│ │ │ ├── strings_preferences.xml
│ │ │ ├── strings_vars.xml
│ │ │ └── strings_wizard.xml
│ │ ├── values-fr
│ │ │ ├── strings.xml
│ │ │ ├── strings_about.xml
│ │ │ ├── strings_converter.xml
│ │ │ ├── strings_functions.xml
│ │ │ ├── strings_imported_aosp.xml
│ │ │ ├── strings_imported_other.xml
│ │ │ ├── strings_imported_other1.xml
│ │ │ ├── strings_microsoft.xml
│ │ │ ├── strings_operators.xml
│ │ │ ├── strings_preferences.xml
│ │ │ ├── strings_vars.xml
│ │ │ └── strings_wizard.xml
│ │ ├── values-it
│ │ │ ├── strings.xml
│ │ │ ├── strings_about.xml
│ │ │ ├── strings_converter.xml
│ │ │ ├── strings_functions.xml
│ │ │ ├── strings_imported_aosp.xml
│ │ │ ├── strings_imported_other.xml
│ │ │ ├── strings_imported_other1.xml
│ │ │ ├── strings_microsoft.xml
│ │ │ ├── strings_operators.xml
│ │ │ ├── strings_preferences.xml
│ │ │ ├── strings_vars.xml
│ │ │ └── strings_wizard.xml
│ │ ├── values-ja
│ │ │ ├── strings.xml
│ │ │ ├── strings_about.xml
│ │ │ ├── strings_converter.xml
│ │ │ ├── strings_functions.xml
│ │ │ ├── strings_imported_aosp.xml
│ │ │ ├── strings_imported_other.xml
│ │ │ ├── strings_imported_other1.xml
│ │ │ ├── strings_microsoft.xml
│ │ │ ├── strings_operators.xml
│ │ │ ├── strings_preferences.xml
│ │ │ ├── strings_vars.xml
│ │ │ └── strings_wizard.xml
│ │ ├── values-large-hdpi
│ │ │ └── dimens.xml
│ │ ├── values-large-mdpi
│ │ │ └── dimens.xml
│ │ ├── values-large-tvdpi
│ │ │ └── dimens.xml
│ │ ├── values-large-xhdpi
│ │ │ └── dimens.xml
│ │ ├── values-large
│ │ │ └── dimens.xml
│ │ ├── values-nl
│ │ │ ├── strings.xml
│ │ │ ├── strings_about.xml
│ │ │ ├── strings_converter.xml
│ │ │ ├── strings_functions.xml
│ │ │ ├── strings_imported_aosp.xml
│ │ │ ├── strings_imported_other.xml
│ │ │ ├── strings_imported_other1.xml
│ │ │ ├── strings_microsoft.xml
│ │ │ ├── strings_operators.xml
│ │ │ ├── strings_preferences.xml
│ │ │ ├── strings_vars.xml
│ │ │ └── strings_wizard.xml
│ │ ├── values-normal-hdpi
│ │ │ └── dimens.xml
│ │ ├── values-normal-mdpi
│ │ │ └── dimens.xml
│ │ ├── values-normal-tvdpi
│ │ │ └── dimens.xml
│ │ ├── values-normal-xhdpi
│ │ │ └── dimens.xml
│ │ ├── values-normal
│ │ │ └── dimens.xml
│ │ ├── values-pl
│ │ │ ├── strings.xml
│ │ │ ├── strings_about.xml
│ │ │ ├── strings_converter.xml
│ │ │ ├── strings_functions.xml
│ │ │ ├── strings_imported_aosp.xml
│ │ │ ├── strings_imported_other.xml
│ │ │ ├── strings_imported_other1.xml
│ │ │ ├── strings_microsoft.xml
│ │ │ ├── strings_operators.xml
│ │ │ ├── strings_preferences.xml
│ │ │ ├── strings_vars.xml
│ │ │ └── strings_wizard.xml
│ │ ├── values-pt-rBR
│ │ │ ├── strings.xml
│ │ │ ├── strings_about.xml
│ │ │ ├── strings_converter.xml
│ │ │ ├── strings_functions.xml
│ │ │ ├── strings_imported_aosp.xml
│ │ │ ├── strings_imported_other.xml
│ │ │ ├── strings_imported_other1.xml
│ │ │ ├── strings_microsoft.xml
│ │ │ ├── strings_operators.xml
│ │ │ ├── strings_preferences.xml
│ │ │ ├── strings_vars.xml
│ │ │ └── strings_wizard.xml
│ │ ├── values-pt-rPT
│ │ │ ├── strings.xml
│ │ │ ├── strings_about.xml
│ │ │ ├── strings_converter.xml
│ │ │ ├── strings_functions.xml
│ │ │ ├── strings_imported_aosp.xml
│ │ │ ├── strings_imported_other.xml
│ │ │ ├── strings_imported_other1.xml
│ │ │ ├── strings_microsoft.xml
│ │ │ ├── strings_operators.xml
│ │ │ ├── strings_preferences.xml
│ │ │ ├── strings_vars.xml
│ │ │ └── strings_wizard.xml
│ │ ├── values-ru
│ │ │ ├── strings.xml
│ │ │ ├── strings_about.xml
│ │ │ ├── strings_converter.xml
│ │ │ ├── strings_converter_units.xml
│ │ │ ├── strings_functions.xml
│ │ │ ├── strings_imported_aosp.xml
│ │ │ ├── strings_imported_other.xml
│ │ │ ├── strings_imported_other1.xml
│ │ │ ├── strings_microsoft.xml
│ │ │ ├── strings_operators.xml
│ │ │ ├── strings_preferences.xml
│ │ │ ├── strings_release_notes.xml
│ │ │ ├── strings_vars.xml
│ │ │ └── strings_wizard.xml
│ │ ├── values-small-hdpi
│ │ │ └── dimens.xml
│ │ ├── values-small-xhdpi
│ │ │ └── dimens.xml
│ │ ├── values-small
│ │ │ └── dimens.xml
│ │ ├── values-sw600dp
│ │ │ ├── bools.xml
│ │ │ └── dimens.xml
│ │ ├── values-tr
│ │ │ ├── strings.xml
│ │ │ ├── strings_about.xml
│ │ │ ├── strings_converter.xml
│ │ │ ├── strings_functions.xml
│ │ │ ├── strings_imported_aosp.xml
│ │ │ ├── strings_imported_other.xml
│ │ │ ├── strings_imported_other1.xml
│ │ │ ├── strings_microsoft.xml
│ │ │ ├── strings_operators.xml
│ │ │ ├── strings_preferences.xml
│ │ │ ├── strings_vars.xml
│ │ │ └── strings_wizard.xml
│ │ ├── values-uk
│ │ │ ├── strings.xml
│ │ │ ├── strings_about.xml
│ │ │ ├── strings_converter.xml
│ │ │ ├── strings_functions.xml
│ │ │ ├── strings_imported_aosp.xml
│ │ │ ├── strings_imported_other.xml
│ │ │ ├── strings_imported_other1.xml
│ │ │ ├── strings_microsoft.xml
│ │ │ ├── strings_operators.xml
│ │ │ ├── strings_preferences.xml
│ │ │ ├── strings_vars.xml
│ │ │ └── strings_wizard.xml
│ │ ├── values-v11
│ │ │ └── styles.xml
│ │ ├── values-v14
│ │ │ ├── dimens.xml
│ │ │ └── styles.xml
│ │ ├── values-v21
│ │ │ ├── theme_material.xml
│ │ │ └── theme_material_light.xml
│ │ ├── values-vi
│ │ │ ├── strings.xml
│ │ │ ├── strings_about.xml
│ │ │ ├── strings_converter.xml
│ │ │ ├── strings_functions.xml
│ │ │ ├── strings_imported_aosp.xml
│ │ │ ├── strings_imported_other.xml
│ │ │ ├── strings_imported_other1.xml
│ │ │ ├── strings_microsoft.xml
│ │ │ ├── strings_operators.xml
│ │ │ ├── strings_preferences.xml
│ │ │ ├── strings_vars.xml
│ │ │ └── strings_wizard.xml
│ │ ├── values-w820dp-v13
│ │ │ └── values.xml
│ │ ├── values-xlarge-hdpi
│ │ │ └── dimens.xml
│ │ ├── values-xlarge-mdpi
│ │ │ └── dimens.xml
│ │ ├── values-xlarge
│ │ │ └── dimens.xml
│ │ ├── values-zh-rCN
│ │ │ ├── strings.xml
│ │ │ ├── strings_about.xml
│ │ │ ├── strings_converter.xml
│ │ │ ├── strings_functions.xml
│ │ │ ├── strings_imported_aosp.xml
│ │ │ ├── strings_imported_other.xml
│ │ │ ├── strings_imported_other1.xml
│ │ │ ├── strings_microsoft.xml
│ │ │ ├── strings_operators.xml
│ │ │ ├── strings_preferences.xml
│ │ │ ├── strings_vars.xml
│ │ │ └── strings_wizard.xml
│ │ ├── values-zh-rTW
│ │ │ ├── strings.xml
│ │ │ ├── strings_about.xml
│ │ │ ├── strings_converter.xml
│ │ │ ├── strings_functions.xml
│ │ │ ├── strings_imported_aosp.xml
│ │ │ ├── strings_imported_other.xml
│ │ │ ├── strings_imported_other1.xml
│ │ │ ├── strings_microsoft.xml
│ │ │ ├── strings_operators.xml
│ │ │ ├── strings_preferences.xml
│ │ │ ├── strings_vars.xml
│ │ │ └── strings_wizard.xml
│ │ ├── values
│ │ │ ├── admob.xml
│ │ │ ├── arrays.xml
│ │ │ ├── attributes.xml
│ │ │ ├── attrs_dsb.xml
│ │ │ ├── attrs_lcp.xml
│ │ │ ├── bools.xml
│ │ │ ├── colors.xml
│ │ │ ├── dimens.xml
│ │ │ ├── ids.xml
│ │ │ ├── strings.xml
│ │ │ ├── strings_about.xml
│ │ │ ├── strings_converter.xml
│ │ │ ├── strings_converter_units.xml
│ │ │ ├── strings_functions.xml
│ │ │ ├── strings_glyphs.xml
│ │ │ ├── strings_imported_aosp.xml
│ │ │ ├── strings_imported_other.xml
│ │ │ ├── strings_imported_other1.xml
│ │ │ ├── strings_microsoft.xml
│ │ │ ├── strings_non_translatable.xml
│ │ │ ├── strings_operators.xml
│ │ │ ├── strings_preferences.xml
│ │ │ ├── strings_release_notes.xml
│ │ │ ├── strings_vars.xml
│ │ │ ├── strings_wizard.xml
│ │ │ ├── styles.xml
│ │ │ ├── theme.xml
│ │ │ ├── theme_material.xml
│ │ │ ├── theme_material_black.xml
│ │ │ ├── theme_material_light.xml
│ │ │ ├── theme_metro_blue.xml
│ │ │ ├── theme_metro_green.xml
│ │ │ ├── theme_metro_purple.xml
│ │ │ ├── theme_old_blue.xml
│ │ │ ├── theme_old_gray.xml
│ │ │ ├── theme_old_violet.xml
│ │ │ ├── vpi__attrs.xml
│ │ │ └── vpi__defaults.xml
│ │ └── xml
│ │ │ ├── calculator_widget.xml
│ │ │ ├── preferences.xml
│ │ │ ├── preferences_appearance.xml
│ │ │ ├── preferences_number_format.xml
│ │ │ ├── preferences_onscreen.xml
│ │ │ ├── preferences_other.xml
│ │ │ └── preferences_widget.xml
│ └── resources
│ │ └── org
│ │ └── solovyev
│ │ └── android
│ │ └── calculator
│ │ ├── messages.properties
│ │ ├── messages_ar.properties
│ │ ├── messages_cs.properties
│ │ ├── messages_de.properties
│ │ ├── messages_el.properties
│ │ ├── messages_es.properties
│ │ ├── messages_es_ES.properties
│ │ ├── messages_fi.properties
│ │ ├── messages_fr.properties
│ │ ├── messages_it.properties
│ │ ├── messages_ja.properties
│ │ ├── messages_nl.properties
│ │ ├── messages_pl.properties
│ │ ├── messages_pt_BR.properties
│ │ ├── messages_pt_PT.properties
│ │ ├── messages_ru.properties
│ │ ├── messages_tr.properties
│ │ ├── messages_uk.properties
│ │ ├── messages_vi.properties
│ │ ├── messages_zh.properties
│ │ ├── messages_zh_CN.properties
│ │ └── messages_zh_TW.properties
│ └── test
│ ├── java
│ └── org
│ │ └── solovyev
│ │ └── android
│ │ ├── calculator
│ │ ├── AndroidEditorViewTest.java
│ │ ├── BaseCalculatorTest.java
│ │ ├── CalculatorMessagesTest.java
│ │ ├── CalculatorTest.java
│ │ ├── EditorTest.java
│ │ ├── FromJsclSimplifyTextProcessorTest.java
│ │ ├── Tests.java
│ │ ├── TextHighlighterTest.java
│ │ ├── ToJsclTextProcessorTest.java
│ │ ├── WidgetReceiverTest.java
│ │ ├── buttons
│ │ │ └── CppSpecialButtonTest.java
│ │ ├── converter
│ │ │ └── ConverterTest.java
│ │ ├── history
│ │ │ ├── HistoryTest.java
│ │ │ └── HistoryUtilsTest.java
│ │ ├── jscl
│ │ │ └── FromJsclNumericTextProcessorTest.java
│ │ ├── math
│ │ │ └── MathTypeTest.java
│ │ ├── model
│ │ │ ├── AndroidEngineTest.java
│ │ │ ├── ComparisonTest.java
│ │ │ ├── EvaluateTest.java
│ │ │ ├── NumeralBaseTest.java
│ │ │ └── OldFunctionsTest.java
│ │ └── wizard
│ │ │ ├── CalculatorWizardActivityTest.java
│ │ │ ├── CalculatorWizardTest.java
│ │ │ └── OnScreenCalculatorWizardStepTest.java
│ │ └── text
│ │ └── method
│ │ └── NumberInputFilterTest.java
│ └── resources
│ └── org
│ └── solovyev
│ └── android
│ └── calculator
│ ├── history
│ └── recent-history.json
│ └── model
│ └── nb_table.csv
├── build.gradle
├── crowdin.sh
├── dragbutton
├── .gitignore
├── build.gradle
├── proguard-rules.pro
└── src
│ └── main
│ ├── AndroidManifest.xml
│ ├── java
│ └── org
│ │ └── solovyev
│ │ └── android
│ │ └── views
│ │ └── dragbutton
│ │ ├── DirectionDragButton.java
│ │ ├── DirectionDragImageButton.java
│ │ ├── DirectionDragListener.java
│ │ ├── DirectionDragView.java
│ │ ├── DirectionText.java
│ │ ├── DirectionTextView.java
│ │ ├── Drag.java
│ │ ├── DragButton.java
│ │ ├── DragDirection.java
│ │ ├── DragEvent.java
│ │ ├── DragGestureDetector.java
│ │ ├── DragImageButton.java
│ │ ├── DragListener.java
│ │ ├── DragView.java
│ │ └── PaintCache.java
│ └── res
│ └── values
│ ├── attrs.xml
│ ├── colors.xml
│ └── dimens.xml
├── gradle.properties
├── gradle
└── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── jscl
├── build.gradle
└── src
│ ├── main
│ ├── java
│ │ ├── jscl
│ │ │ ├── AngleUnit.java
│ │ │ ├── CustomFunctionCalculationException.java
│ │ │ ├── FixedCapacityListMessageRegistry.java
│ │ │ ├── JsclArithmeticException.java
│ │ │ ├── JsclMathEngine.java
│ │ │ ├── MathContext.java
│ │ │ ├── MathEngine.java
│ │ │ ├── NotSupportedException.java
│ │ │ ├── NumeralBase.java
│ │ │ ├── math
│ │ │ │ ├── AntiDerivative.java
│ │ │ │ ├── Arithmetic.java
│ │ │ │ ├── Clifford.java
│ │ │ │ ├── Debug.java
│ │ │ │ ├── DoubleVariable.java
│ │ │ │ ├── Expression.java
│ │ │ │ ├── ExpressionVariable.java
│ │ │ │ ├── Factorization.java
│ │ │ │ ├── Field.java
│ │ │ │ ├── Generic.java
│ │ │ │ ├── GenericVariable.java
│ │ │ │ ├── IntegerVariable.java
│ │ │ │ ├── JsclBoolean.java
│ │ │ │ ├── JsclInteger.java
│ │ │ │ ├── JsclVector.java
│ │ │ │ ├── Literal.java
│ │ │ │ ├── Matrix.java
│ │ │ │ ├── MatrixVariable.java
│ │ │ │ ├── ModularInteger.java
│ │ │ │ ├── NotDivisibleException.java
│ │ │ │ ├── NotDoubleException.java
│ │ │ │ ├── NotExpressionException.java
│ │ │ │ ├── NotIntegerException.java
│ │ │ │ ├── NotIntegrableException.java
│ │ │ │ ├── NotPowerException.java
│ │ │ │ ├── NotProductException.java
│ │ │ │ ├── NotVariableException.java
│ │ │ │ ├── NumericWrapper.java
│ │ │ │ ├── Power.java
│ │ │ │ ├── Rational.java
│ │ │ │ ├── Simplification.java
│ │ │ │ ├── TechnicalVariable.java
│ │ │ │ ├── TimeDependent.java
│ │ │ │ ├── Variable.java
│ │ │ │ ├── VectorVariable.java
│ │ │ │ ├── function
│ │ │ │ │ ├── Abs.java
│ │ │ │ │ ├── AbstractDms.java
│ │ │ │ │ ├── Algebraic.java
│ │ │ │ │ ├── ArcTrigonometric.java
│ │ │ │ │ ├── Comparison.java
│ │ │ │ │ ├── Conjugate.java
│ │ │ │ │ ├── Constant.java
│ │ │ │ │ ├── Constants.java
│ │ │ │ │ ├── ConstantsRegistry.java
│ │ │ │ │ ├── Cubic.java
│ │ │ │ │ ├── CustomFunction.java
│ │ │ │ │ ├── Deg.java
│ │ │ │ │ ├── Dms.java
│ │ │ │ │ ├── Exp.java
│ │ │ │ │ ├── ExtendedConstant.java
│ │ │ │ │ ├── Fraction.java
│ │ │ │ │ ├── Function.java
│ │ │ │ │ ├── FunctionsRegistry.java
│ │ │ │ │ ├── IConstant.java
│ │ │ │ │ ├── IFunction.java
│ │ │ │ │ ├── ImplicitFunction.java
│ │ │ │ │ ├── Inverse.java
│ │ │ │ │ ├── Lg.java
│ │ │ │ │ ├── Ln.java
│ │ │ │ │ ├── NotRootException.java
│ │ │ │ │ ├── PiConstant.java
│ │ │ │ │ ├── PostfixFunctionsRegistry.java
│ │ │ │ │ ├── Pow.java
│ │ │ │ │ ├── Rad.java
│ │ │ │ │ ├── Root.java
│ │ │ │ │ ├── Sgn.java
│ │ │ │ │ ├── Sqrt.java
│ │ │ │ │ ├── Trigonometric.java
│ │ │ │ │ ├── hyperbolic
│ │ │ │ │ │ ├── Acosh.java
│ │ │ │ │ │ ├── Acoth.java
│ │ │ │ │ │ ├── Asinh.java
│ │ │ │ │ │ ├── Atanh.java
│ │ │ │ │ │ ├── Cosh.java
│ │ │ │ │ │ ├── Coth.java
│ │ │ │ │ │ ├── Sinh.java
│ │ │ │ │ │ └── Tanh.java
│ │ │ │ │ └── trigonometric
│ │ │ │ │ │ ├── Acos.java
│ │ │ │ │ │ ├── Acot.java
│ │ │ │ │ │ ├── Asin.java
│ │ │ │ │ │ ├── Atan.java
│ │ │ │ │ │ ├── Cos.java
│ │ │ │ │ │ ├── Cot.java
│ │ │ │ │ │ ├── Sin.java
│ │ │ │ │ │ └── Tan.java
│ │ │ │ ├── numeric
│ │ │ │ │ ├── Complex.java
│ │ │ │ │ ├── INumeric.java
│ │ │ │ │ ├── Matrix.java
│ │ │ │ │ ├── Numeric.java
│ │ │ │ │ ├── Real.java
│ │ │ │ │ └── Vector.java
│ │ │ │ ├── operator
│ │ │ │ │ ├── AbstractFunction.java
│ │ │ │ │ ├── Coefficient.java
│ │ │ │ │ ├── Degree.java
│ │ │ │ │ ├── Derivative.java
│ │ │ │ │ ├── Division.java
│ │ │ │ │ ├── DoubleFactorial.java
│ │ │ │ │ ├── Factorial.java
│ │ │ │ │ ├── Gcd.java
│ │ │ │ │ ├── Groebner.java
│ │ │ │ │ ├── IndefiniteIntegral.java
│ │ │ │ │ ├── Integral.java
│ │ │ │ │ ├── Limit.java
│ │ │ │ │ ├── Modulo.java
│ │ │ │ │ ├── Operator.java
│ │ │ │ │ ├── Percent.java
│ │ │ │ │ ├── PostfixFunction.java
│ │ │ │ │ ├── Product.java
│ │ │ │ │ ├── Rand.java
│ │ │ │ │ ├── Solve.java
│ │ │ │ │ ├── Substitute.java
│ │ │ │ │ ├── Sum.java
│ │ │ │ │ ├── TripleFactorial.java
│ │ │ │ │ ├── VectorOperator.java
│ │ │ │ │ ├── matrix
│ │ │ │ │ │ ├── Determinant.java
│ │ │ │ │ │ ├── OperatorsRegistry.java
│ │ │ │ │ │ ├── Trace.java
│ │ │ │ │ │ └── Transpose.java
│ │ │ │ │ ├── number
│ │ │ │ │ │ ├── EulerPhi.java
│ │ │ │ │ │ ├── ModInverse.java
│ │ │ │ │ │ ├── ModPow.java
│ │ │ │ │ │ └── PrimitiveRoots.java
│ │ │ │ │ ├── product
│ │ │ │ │ │ ├── ComplexProduct.java
│ │ │ │ │ │ ├── GeometricProduct.java
│ │ │ │ │ │ ├── MatrixProduct.java
│ │ │ │ │ │ ├── QuaternionProduct.java
│ │ │ │ │ │ ├── TensorProduct.java
│ │ │ │ │ │ └── VectorProduct.java
│ │ │ │ │ ├── stat
│ │ │ │ │ │ ├── AbstractStatFunction.java
│ │ │ │ │ │ ├── Max.java
│ │ │ │ │ │ ├── Mean.java
│ │ │ │ │ │ ├── MeanSquareDeviation.java
│ │ │ │ │ │ ├── Min.java
│ │ │ │ │ │ └── StandardDeviation.java
│ │ │ │ │ └── vector
│ │ │ │ │ │ ├── Curl.java
│ │ │ │ │ │ ├── Dalembertian.java
│ │ │ │ │ │ ├── Del.java
│ │ │ │ │ │ ├── Divergence.java
│ │ │ │ │ │ ├── Grad.java
│ │ │ │ │ │ ├── Jacobian.java
│ │ │ │ │ │ └── Laplacian.java
│ │ │ │ └── polynomial
│ │ │ │ │ ├── ArrayPolynomial.java
│ │ │ │ │ ├── ArrayPolynomialBoolean.java
│ │ │ │ │ ├── ArrayPolynomialGeneric.java
│ │ │ │ │ ├── ArrayPolynomialInteger.java
│ │ │ │ │ ├── ArrayPolynomialModular.java
│ │ │ │ │ ├── ArrayPolynomialRational.java
│ │ │ │ │ ├── Basis.java
│ │ │ │ │ ├── BooleanMonomial.java
│ │ │ │ │ ├── DefinedBooleanMonomial.java
│ │ │ │ │ ├── DegreeOrdering.java
│ │ │ │ │ ├── GeoBucket.java
│ │ │ │ │ ├── ListPolynomial.java
│ │ │ │ │ ├── Monomial.java
│ │ │ │ │ ├── NestedPolynomial.java
│ │ │ │ │ ├── Ordering.java
│ │ │ │ │ ├── Polynomial.java
│ │ │ │ │ ├── SmallMonomial.java
│ │ │ │ │ ├── Term.java
│ │ │ │ │ ├── TreePolynomial.java
│ │ │ │ │ ├── UnivariatePolynomial.java
│ │ │ │ │ └── groebner
│ │ │ │ │ ├── Block.java
│ │ │ │ │ ├── F4.java
│ │ │ │ │ ├── F4Reduction.java
│ │ │ │ │ ├── Instrumented.java
│ │ │ │ │ ├── Natural.java
│ │ │ │ │ ├── Pair.java
│ │ │ │ │ ├── Projection.java
│ │ │ │ │ ├── ReducedRowEchelonForm.java
│ │ │ │ │ ├── Standard.java
│ │ │ │ │ └── Sugar.java
│ │ │ ├── mathml
│ │ │ │ └── MathML.java
│ │ │ ├── text
│ │ │ │ ├── AbstractConverter.java
│ │ │ │ ├── BracketedExpression.java
│ │ │ │ ├── CommaAndExpression.java
│ │ │ │ ├── CommaAndVector.java
│ │ │ │ ├── CompoundIdentifier.java
│ │ │ │ ├── ConstantParser.java
│ │ │ │ ├── Digits.java
│ │ │ │ ├── DivideFactor.java
│ │ │ │ ├── DoubleParser.java
│ │ │ │ ├── DoubleVariableParser.java
│ │ │ │ ├── ExceptionsPool.java
│ │ │ │ ├── ExponentParser.java
│ │ │ │ ├── ExpressionParser.java
│ │ │ │ ├── Factor.java
│ │ │ │ ├── FunctionParser.java
│ │ │ │ ├── Identifier.java
│ │ │ │ ├── ImplicitFunctionParser.java
│ │ │ │ ├── IntegerParser.java
│ │ │ │ ├── JsclIntegerParser.java
│ │ │ │ ├── MatrixParser.java
│ │ │ │ ├── MatrixVariableParser.java
│ │ │ │ ├── MinusParser.java
│ │ │ │ ├── MultiTryParser.java
│ │ │ │ ├── MultiplyFactor.java
│ │ │ │ ├── MutableInt.java
│ │ │ │ ├── NumeralBaseParser.java
│ │ │ │ ├── OperatorParser.java
│ │ │ │ ├── ParameterListParser.java
│ │ │ │ ├── ParseException.java
│ │ │ │ ├── ParseInterruptedException.java
│ │ │ │ ├── Parser.java
│ │ │ │ ├── ParserUtils.java
│ │ │ │ ├── PlusOrMinusTerm.java
│ │ │ │ ├── PostfixFunctionParser.java
│ │ │ │ ├── PostfixFunctionsParser.java
│ │ │ │ ├── PowerExponentParser.java
│ │ │ │ ├── PowerParser.java
│ │ │ │ ├── PrimaryExpressionParser.java
│ │ │ │ ├── PrimeCharacters.java
│ │ │ │ ├── RootParser.java
│ │ │ │ ├── Subscript.java
│ │ │ │ ├── TermParser.java
│ │ │ │ ├── UnsignedExponent.java
│ │ │ │ ├── UnsignedFactor.java
│ │ │ │ ├── UsualFunctionParser.java
│ │ │ │ ├── VariableConverter.java
│ │ │ │ ├── VariableParser.java
│ │ │ │ ├── VectorParser.java
│ │ │ │ ├── VectorVariableParser.java
│ │ │ │ └── msg
│ │ │ │ │ ├── JsclMessage.java
│ │ │ │ │ └── Messages.java
│ │ │ └── util
│ │ │ │ ├── AbstractExpressionGenerator.java
│ │ │ │ ├── ArrayComparator.java
│ │ │ │ ├── ArrayUtils.java
│ │ │ │ ├── ExpressionGenerator.java
│ │ │ │ └── ExpressionGeneratorWithInput.java
│ │ ├── midpcalc
│ │ │ └── Real.java
│ │ └── org
│ │ │ └── solovyev
│ │ │ └── common
│ │ │ ├── NumberFormatter.java
│ │ │ ├── SynchronizedObject.java
│ │ │ ├── collections
│ │ │ └── SortedList.java
│ │ │ ├── equals
│ │ │ └── Equalizer.java
│ │ │ ├── math
│ │ │ ├── AbstractMathEntity.java
│ │ │ ├── AbstractMathRegistry.java
│ │ │ ├── MathEntity.java
│ │ │ └── MathRegistry.java
│ │ │ ├── msg
│ │ │ ├── AbstractMessage.java
│ │ │ ├── ListMessageRegistry.java
│ │ │ ├── Message.java
│ │ │ ├── MessageLevel.java
│ │ │ ├── MessageRegistry.java
│ │ │ ├── MessageType.java
│ │ │ ├── Messages.java
│ │ │ ├── SynchronizedMessageRegistry.java
│ │ │ └── Utf8Control.java
│ │ │ └── text
│ │ │ └── Strings.java
│ └── resources
│ │ └── jscl
│ │ └── text
│ │ └── msg
│ │ ├── messages.properties
│ │ ├── messages_ar.properties
│ │ ├── messages_cs.properties
│ │ ├── messages_de.properties
│ │ ├── messages_es_ES.properties
│ │ ├── messages_fi.properties
│ │ ├── messages_fr.properties
│ │ ├── messages_it.properties
│ │ ├── messages_ja.properties
│ │ ├── messages_nl.properties
│ │ ├── messages_pl.properties
│ │ ├── messages_pt_BR.properties
│ │ ├── messages_pt_PT.properties
│ │ ├── messages_ru.properties
│ │ ├── messages_uk.properties
│ │ ├── messages_vi.properties
│ │ ├── messages_zh_CN.properties
│ │ └── messages_zh_TW.properties
│ └── test
│ ├── java
│ ├── jscl
│ │ ├── JsclMathEngineTest.java
│ │ ├── NumeralBaseTest.java
│ │ ├── math
│ │ │ ├── ExpressionTest.java
│ │ │ ├── JsclVectorTest.java
│ │ │ ├── LiteralTest.java
│ │ │ ├── NumeralBaseConversionTest.java
│ │ │ ├── RandomExpressionTest.java
│ │ │ ├── TrigonometricTest.java
│ │ │ ├── function
│ │ │ │ ├── CustomFunctionTest.java
│ │ │ │ ├── DegTest.java
│ │ │ │ ├── DmsTest.java
│ │ │ │ ├── FunctionTest.java
│ │ │ │ ├── FunctionsRegistryTest.java
│ │ │ │ ├── LgTest.java
│ │ │ │ ├── LnTest.java
│ │ │ │ ├── PowTest.java
│ │ │ │ ├── RadTest.java
│ │ │ │ ├── SgnTest.java
│ │ │ │ ├── SqrtTest.java
│ │ │ │ └── trigonometric
│ │ │ │ │ ├── CosTest.java
│ │ │ │ │ ├── SinTest.java
│ │ │ │ │ └── TanTest.java
│ │ │ ├── numeric
│ │ │ │ ├── ComplexTest.java
│ │ │ │ └── MatrixTest.java
│ │ │ └── operator
│ │ │ │ ├── DoubleFactorialTest.java
│ │ │ │ ├── GcdTest.java
│ │ │ │ ├── IndefiniteIntegralTest.java
│ │ │ │ ├── MeanTest.java
│ │ │ │ ├── ModuloTest.java
│ │ │ │ ├── PercentTest.java
│ │ │ │ ├── RandTest.java
│ │ │ │ ├── SumTest.java
│ │ │ │ └── stat
│ │ │ │ ├── MinTest.java
│ │ │ │ └── StandardDeviationTest.java
│ │ └── text
│ │ │ ├── ParserUtilsTest.java
│ │ │ ├── PowerParserTest.java
│ │ │ └── msg
│ │ │ └── JsclMessageTest.java
│ └── org
│ │ └── solovyev
│ │ └── common
│ │ └── NumberFormatterTest.java
│ └── resources
│ └── jscl
│ └── math
│ ├── nb_table.csv
│ └── trig_table.csv
├── settings.gradle
└── translations
├── .gitignore
├── build.gradle
└── src
└── main
└── java
└── org
└── solovyev
└── android
└── translations
├── Android.java
├── Microsoft.java
├── ResourceString.java
├── Resources.java
├── Utils.java
└── Wiki.java
/.gitignore:
--------------------------------------------------------------------------------
1 | gen-external-apklibs
2 | target
3 | atlassian-ide-plugin.xml
4 | .idea
5 | *.iml
6 | build
7 | local.properties
8 | captures
9 | calculatorpp.zip
10 | .gradle
--------------------------------------------------------------------------------
/app/google-services.json:
--------------------------------------------------------------------------------
1 | {
2 | "project_info": {
3 | "project_number": "256354490244",
4 | "project_id": "calculatorpp-86d8a",
5 | "storage_bucket": "calculatorpp-86d8a.appspot.com"
6 | },
7 | "client": [
8 | {
9 | "client_info": {
10 | "mobilesdk_app_id": "1:256354490244:android:4674f70d035e4bbdb5efd1",
11 | "android_client_info": {
12 | "package_name": "org.solovyev.android.calculator"
13 | }
14 | },
15 | "oauth_client": [],
16 | "api_key": [
17 | {
18 | "current_key": "AIzaSyDmabRGhOstItse_rveL5ReDooqfK2hDHo"
19 | }
20 | ],
21 | "services": {
22 | "appinvite_service": {
23 | "other_platform_oauth_client": []
24 | }
25 | }
26 | }
27 | ],
28 | "configuration_version": "1"
29 | }
--------------------------------------------------------------------------------
/app/lint.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/app/misc/doc/GoogleAdMobAdsSdk-4.3.1-javadocs.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/doc/GoogleAdMobAdsSdk-4.3.1-javadocs.zip
--------------------------------------------------------------------------------
/app/misc/doc/achartengine-0.7.0-javadocs.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/doc/achartengine-0.7.0-javadocs.zip
--------------------------------------------------------------------------------
/app/misc/libs/measure.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/libs/measure.jar
--------------------------------------------------------------------------------
/app/misc/libs/org.apache.http.legacy.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/libs/org.apache.http.legacy.jar
--------------------------------------------------------------------------------
/app/misc/libs/square-otto-1.3.9-SNAPSHOT.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/libs/square-otto-1.3.9-SNAPSHOT.jar
--------------------------------------------------------------------------------
/app/misc/libs/square-otto-compiler-1.3.9-SNAPSHOT.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/libs/square-otto-compiler-1.3.9-SNAPSHOT.jar
--------------------------------------------------------------------------------
/app/misc/other/remove_avds.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 |
4 | declare -a densities=("160" "213" "240" "320")
5 | declare -a resolutions=("320x480" "480x640" "480x800" "480x854" "640x960" "1024x600" "1024x768" "1280x768" "1536x1152" "1920x1200")
6 | declare -a targets=("android-16")
7 |
8 | for target in ${targets[@]}
9 | do
10 | for density in ${densities[@]}
11 | do
12 |
13 | for resolution in ${resolutions[@]}
14 | do
15 | name="AVD"
16 | name="$name$density"
17 | name="$name$resolution"
18 | name="$name$target"
19 |
20 | $ANDROID_HOME/tools/android -s delete avd -n $name
21 |
22 | done
23 | done
24 | done
--------------------------------------------------------------------------------
/app/misc/other/take_screenshots2.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | predefined=1
4 | scale=0.51
5 |
6 | # first predefined
7 |
8 | if [ $predefined -eq 1 ]
9 | then
10 | declare -a names=("AVD_Nexus_7_by_Google")
11 | for name in ${names[@]}
12 | do
13 | $ANDROID_HOME/tools/emulator -ports 5580,5581 -avd $name -scale $scale &
14 | sleep 50
15 | $ANDROID_HOME/tools/monkeyrunner ./take_screenshots.py ~/projects/java/android/calculatorpp/calculatorpp/misc/other/tmp/2012.11.25 $name
16 | $ANDROID_HOME/platform-tools/adb -s emulator-5580 emu kill
17 | sleep 3
18 | done
19 | fi
--------------------------------------------------------------------------------
/app/misc/other/wait_device.py:
--------------------------------------------------------------------------------
1 | from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice
2 |
3 | print 'Waiting for device...'
4 | device = MonkeyRunner.waitForConnection(100, 'emulator-5580')
5 | print 'Finished'
6 | if device :
7 | print 'Success'
8 | else :
9 | print 'Failure'
10 |
11 |
--------------------------------------------------------------------------------
/app/misc/res/calculatorpp/01_main_screen_port.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/calculatorpp/01_main_screen_port.png
--------------------------------------------------------------------------------
/app/misc/res/calculatorpp/01_main_screen_port_sm.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/calculatorpp/01_main_screen_port_sm.png
--------------------------------------------------------------------------------
/app/misc/res/calculatorpp/02_main_screen_land.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/calculatorpp/02_main_screen_land.png
--------------------------------------------------------------------------------
/app/misc/res/calculatorpp/03_main_screen_port_with_expression.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/calculatorpp/03_main_screen_port_with_expression.png
--------------------------------------------------------------------------------
/app/misc/res/calculatorpp/04_plot_graph_menu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/calculatorpp/04_plot_graph_menu.png
--------------------------------------------------------------------------------
/app/misc/res/calculatorpp/04_plot_graph_menu_sm.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/calculatorpp/04_plot_graph_menu_sm.png
--------------------------------------------------------------------------------
/app/misc/res/calculatorpp/05_graph_screen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/calculatorpp/05_graph_screen.png
--------------------------------------------------------------------------------
/app/misc/res/calculatorpp/05_graph_screen_sm.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/calculatorpp/05_graph_screen_sm.png
--------------------------------------------------------------------------------
/app/misc/res/calculatorpp/06_constants_screen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/calculatorpp/06_constants_screen.png
--------------------------------------------------------------------------------
/app/misc/res/calculatorpp/06_constants_screen_sm.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/calculatorpp/06_constants_screen_sm.png
--------------------------------------------------------------------------------
/app/misc/res/calculatorpp/07_constant_create_dialog.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/calculatorpp/07_constant_create_dialog.png
--------------------------------------------------------------------------------
/app/misc/res/calculatorpp/08_constants_context_menu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/calculatorpp/08_constants_context_menu.png
--------------------------------------------------------------------------------
/app/misc/res/calculatorpp/09_functions_screen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/calculatorpp/09_functions_screen.png
--------------------------------------------------------------------------------
/app/misc/res/calculatorpp/09_functions_screen_sm.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/calculatorpp/09_functions_screen_sm.png
--------------------------------------------------------------------------------
/app/misc/res/calculatorpp/10_history_screen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/calculatorpp/10_history_screen.png
--------------------------------------------------------------------------------
/app/misc/res/calculatorpp/10_history_screen_sm.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/calculatorpp/10_history_screen_sm.png
--------------------------------------------------------------------------------
/app/misc/res/calculatorpp/11_history_item_context_menu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/calculatorpp/11_history_item_context_menu.png
--------------------------------------------------------------------------------
/app/misc/res/calculatorpp/12_saved_history_tab.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/calculatorpp/12_saved_history_tab.png
--------------------------------------------------------------------------------
/app/misc/res/calculatorpp/13_saved_history_item_context_menu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/calculatorpp/13_saved_history_item_context_menu.png
--------------------------------------------------------------------------------
/app/misc/res/calculatorpp/14_about_screen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/calculatorpp/14_about_screen.png
--------------------------------------------------------------------------------
/app/misc/res/calculatorpp/14_about_screen_sm.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/calculatorpp/14_about_screen_sm.png
--------------------------------------------------------------------------------
/app/misc/res/calculatorpp/15_release_notes_tab.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/calculatorpp/15_release_notes_tab.png
--------------------------------------------------------------------------------
/app/misc/res/calculatorpp/16_help_screen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/calculatorpp/16_help_screen.png
--------------------------------------------------------------------------------
/app/misc/res/calculatorpp/16_help_screen_sm.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/calculatorpp/16_help_screen_sm.png
--------------------------------------------------------------------------------
/app/misc/res/calculatorpp/17_hints_tab.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/calculatorpp/17_hints_tab.png
--------------------------------------------------------------------------------
/app/misc/res/calculatorpp/18_preferences.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/calculatorpp/18_preferences.png
--------------------------------------------------------------------------------
/app/misc/res/calculatorpp/18_preferences_02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/calculatorpp/18_preferences_02.png
--------------------------------------------------------------------------------
/app/misc/res/calculatorpp/18_preferences_03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/calculatorpp/18_preferences_03.png
--------------------------------------------------------------------------------
/app/misc/res/calculatorpp/18_preferences_sm.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/calculatorpp/18_preferences_sm.png
--------------------------------------------------------------------------------
/app/misc/res/calculatorpp/plan.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/calculatorpp/plan.png
--------------------------------------------------------------------------------
/app/misc/res/calculatorpp/plan.xcf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/calculatorpp/plan.xcf
--------------------------------------------------------------------------------
/app/misc/res/description/description-short-ru.txt:
--------------------------------------------------------------------------------
1 | Бесплатный научный калькулятор с элегантным интерфейсом и широкими возможностями
--------------------------------------------------------------------------------
/app/misc/res/description/description-short.txt:
--------------------------------------------------------------------------------
1 | Free scientific calculator with sleek interface and powerful capabilities
--------------------------------------------------------------------------------
/app/misc/res/description/description-zh-CN.txt:
--------------------------------------------------------------------------------
1 | 你正在寻找一个高效方便的计算器吗?
2 | 你想简单地解决复杂的问题吗?
3 | 使用Calculator++吧,一个美观且直观的多功能计算器 !
4 |
5 | ★ 节省时间 !
6 | • 同一界面使用手势访问次级功能 例如, 在«/» 键向上滑以使用 «%»
7 | • 您不再需要按 «=» — — 结果是自动计算的
8 | • 专门的复制/粘贴按钮
9 | • 支持纵向和横向屏幕方向
10 |
11 | ★ 个性化 !
12 | • C + + 有两个布局: 标准和工程模式。 在向导或设置界面选择最适合你的界面
13 | • 设置你喜欢的主题
14 | • 添加主屏幕小部件
15 |
16 | ★ 无需在应用间切换的计算 !
17 | 计算器 + + 可以以独立窗口模式工作,悬浮在其他应用程序上方
18 |
19 | ★ 百分比,开根号,求幂,三角函数 !
20 | 内置常用函数,并且支持添加自定义函数
21 |
22 | ★ 绘制 2D 和 3D 图表 !
23 | 可以同时绘制多个函数
24 |
25 | ★ 使用强大的数学功能:
26 | • 变量和常量计算
27 | • 调用内置函数或添加自定义函数
28 | • 积分和求导
29 | • 分数和简单表达式计算
30 | • 复数计算
31 |
32 | 应用程序支持 Android 版本 2.2 和更高的设备,并且是开放源码的。 应用的二级菜单包含广告。 请从设置购买一个特殊选项以删除他们。
33 |
34 | Facebook: http://facebook.com/calculatorpp
35 | Vkontakte: http://vk.com/calculatorpp
--------------------------------------------------------------------------------
/app/misc/res/icon-green.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/icon-green.png
--------------------------------------------------------------------------------
/app/misc/res/icon-hi-res.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/icon-hi-res.png
--------------------------------------------------------------------------------
/app/misc/res/icon-promo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/icon-promo.png
--------------------------------------------------------------------------------
/app/misc/res/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/icon.png
--------------------------------------------------------------------------------
/app/misc/res/icon144.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/icon144.png
--------------------------------------------------------------------------------
/app/misc/res/icon48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/icon48.png
--------------------------------------------------------------------------------
/app/misc/res/icon512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/icon512.png
--------------------------------------------------------------------------------
/app/misc/res/icon72.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/icon72.png
--------------------------------------------------------------------------------
/app/misc/res/icon96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/icon96.png
--------------------------------------------------------------------------------
/app/misc/res/icon_onscreen144.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/icon_onscreen144.png
--------------------------------------------------------------------------------
/app/misc/res/icon_onscreen48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/icon_onscreen48.png
--------------------------------------------------------------------------------
/app/misc/res/icon_onscreen512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/icon_onscreen512.png
--------------------------------------------------------------------------------
/app/misc/res/icon_onscreen72.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/icon_onscreen72.png
--------------------------------------------------------------------------------
/app/misc/res/icon_onscreen96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/icon_onscreen96.png
--------------------------------------------------------------------------------
/app/misc/res/logo-admob.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/logo-admob.png
--------------------------------------------------------------------------------
/app/misc/res/logo-scaled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/logo-scaled.png
--------------------------------------------------------------------------------
/app/misc/res/logo-small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/logo-small.png
--------------------------------------------------------------------------------
/app/misc/res/logo.cdr:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/logo.cdr
--------------------------------------------------------------------------------
/app/misc/res/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/logo.png
--------------------------------------------------------------------------------
/app/misc/res/widget.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/widget.png
--------------------------------------------------------------------------------
/app/misc/res/work/Backup_of_logo.cdr:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/work/Backup_of_logo.cdr
--------------------------------------------------------------------------------
/app/misc/res/work/header.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/work/header.png
--------------------------------------------------------------------------------
/app/misc/res/work/header_bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/work/header_bg.png
--------------------------------------------------------------------------------
/app/misc/res/work/header_sm.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/work/header_sm.png
--------------------------------------------------------------------------------
/app/misc/res/work/heart_original.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/work/heart_original.png
--------------------------------------------------------------------------------
/app/misc/res/work/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/work/icon.png
--------------------------------------------------------------------------------
/app/misc/res/work/icon_favicon_light_blue.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/work/icon_favicon_light_blue.ico
--------------------------------------------------------------------------------
/app/misc/res/work/icon_favicon_light_blue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/work/icon_favicon_light_blue.png
--------------------------------------------------------------------------------
/app/misc/res/work/icon_favicon_purple.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/work/icon_favicon_purple.ico
--------------------------------------------------------------------------------
/app/misc/res/work/icon_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/work/icon_small.png
--------------------------------------------------------------------------------
/app/misc/res/work/log11o.psd:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/work/log11o.psd
--------------------------------------------------------------------------------
/app/misc/res/work/logo.cdr:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/work/logo.cdr
--------------------------------------------------------------------------------
/app/misc/res/work/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/work/logo.png
--------------------------------------------------------------------------------
/app/misc/res/work/logoFULL copy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/work/logoFULL copy.png
--------------------------------------------------------------------------------
/app/misc/res/work/logoFULL.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/work/logoFULL.pdf
--------------------------------------------------------------------------------
/app/misc/res/work/logoFULL.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/work/logoFULL.png
--------------------------------------------------------------------------------
/app/misc/res/work/logoFULL_banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/work/logoFULL_banner.png
--------------------------------------------------------------------------------
/app/misc/res/work/logoFULL_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/work/logoFULL_small.png
--------------------------------------------------------------------------------
/app/misc/res/work/logo_black.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/work/logo_black.png
--------------------------------------------------------------------------------
/app/misc/res/work/logo_blue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/work/logo_blue.png
--------------------------------------------------------------------------------
/app/misc/res/work/logo_light_blue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/work/logo_light_blue.png
--------------------------------------------------------------------------------
/app/misc/res/work/logo_purple.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/work/logo_purple.png
--------------------------------------------------------------------------------
/app/misc/res/work/promo_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/work/promo_logo.png
--------------------------------------------------------------------------------
/app/misc/res/work/text_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/work/text_logo.png
--------------------------------------------------------------------------------
/app/misc/res/work/text_logo_blue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/work/text_logo_blue.png
--------------------------------------------------------------------------------
/app/misc/res/work/text_logo_light_blue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/work/text_logo_light_blue.png
--------------------------------------------------------------------------------
/app/misc/res/work/text_logo_light_blue_cpp_forum.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/work/text_logo_light_blue_cpp_forum.png
--------------------------------------------------------------------------------
/app/misc/res/work/text_logo_purple.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/res/work/text_logo_purple.png
--------------------------------------------------------------------------------
/app/misc/src/achartengine-0.7.0.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/src/achartengine-0.7.0.jar
--------------------------------------------------------------------------------
/app/misc/src/bsh.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/misc/src/bsh.jar
--------------------------------------------------------------------------------
/app/src/main/assets/fonts/Roboto-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/serso/android-calculatorpp/8f9c97032b44152b047653cd0728107de4e6a8da/app/src/main/assets/fonts/Roboto-Regular.ttf
--------------------------------------------------------------------------------
/app/src/main/java/org/solovyev/android/calculator/Runnables.java:
--------------------------------------------------------------------------------
1 | package org.solovyev.android.calculator;
2 |
3 | import androidx.annotation.NonNull;
4 | import org.solovyev.android.Check;
5 |
6 | import java.util.ArrayList;
7 | import java.util.List;
8 |
9 | public class Runnables implements Runnable {
10 | @NonNull
11 | private final List list = new ArrayList<>();
12 | @Override
13 | public void run() {
14 | Check.isMainThread();
15 | for (Runnable runnable : list) {
16 | runnable.run();
17 | }
18 | list.clear();
19 | }
20 |
21 | public void add(@NonNull Runnable runnable) {
22 | Check.isMainThread();
23 | list.add(runnable);
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/app/src/main/java/org/solovyev/android/calculator/Utils.java:
--------------------------------------------------------------------------------
1 | package org.solovyev.android.calculator;
2 |
3 | import androidx.annotation.NonNull;
4 |
5 | import javax.annotation.Nonnull;
6 |
7 | public class Utils {
8 | @NonNull
9 | public static String getErrorMessage(@Nonnull Throwable error) {
10 | final String localizedMessage = error.getLocalizedMessage();
11 | return localizedMessage == null ? error.getClass().getSimpleName() : localizedMessage;
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/app/src/main/java/org/solovyev/android/calculator/calculations/BaseConversionEvent.java:
--------------------------------------------------------------------------------
1 | package org.solovyev.android.calculator.calculations;
2 |
3 | import androidx.annotation.NonNull;
4 |
5 | import org.solovyev.android.calculator.DisplayState;
6 |
7 | public class BaseConversionEvent {
8 | @NonNull
9 | public final DisplayState state;
10 |
11 | public BaseConversionEvent(@NonNull DisplayState state) {
12 | this.state = state;
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/app/src/main/java/org/solovyev/android/calculator/calculations/CalculationCancelledEvent.java:
--------------------------------------------------------------------------------
1 | package org.solovyev.android.calculator.calculations;
2 |
3 | import org.solovyev.android.calculator.jscl.JsclOperation;
4 |
5 | import javax.annotation.Nonnull;
6 |
7 | public final class CalculationCancelledEvent extends BaseCalculationEvent {
8 | public CalculationCancelledEvent(@Nonnull JsclOperation operation, @Nonnull String expression, long sequence) {
9 | super(operation, expression, sequence);
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/app/src/main/java/org/solovyev/android/calculator/calculations/CalculationFailedEvent.java:
--------------------------------------------------------------------------------
1 | package org.solovyev.android.calculator.calculations;
2 |
3 | import org.solovyev.android.calculator.jscl.JsclOperation;
4 |
5 | import javax.annotation.Nonnull;
6 |
7 | public final class CalculationFailedEvent extends BaseCalculationEvent {
8 | @Nonnull
9 | public final Exception exception;
10 |
11 | public CalculationFailedEvent(@Nonnull JsclOperation operation, @Nonnull String expression, long sequence, @Nonnull Exception exception) {
12 | super(operation, expression, sequence);
13 | this.exception = exception;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/app/src/main/java/org/solovyev/android/calculator/calculations/ConversionFailedEvent.java:
--------------------------------------------------------------------------------
1 | package org.solovyev.android.calculator.calculations;
2 |
3 | import androidx.annotation.NonNull;
4 |
5 | import org.solovyev.android.calculator.DisplayState;
6 |
7 | public class ConversionFailedEvent extends BaseConversionEvent {
8 |
9 | public ConversionFailedEvent(@NonNull DisplayState state) {
10 | super(state);
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/app/src/main/java/org/solovyev/android/calculator/calculations/ConversionFinishedEvent.java:
--------------------------------------------------------------------------------
1 | package org.solovyev.android.calculator.calculations;
2 |
3 | import androidx.annotation.NonNull;
4 |
5 | import org.solovyev.android.calculator.DisplayState;
6 |
7 | import jscl.NumeralBase;
8 |
9 | public class ConversionFinishedEvent extends BaseConversionEvent {
10 | @NonNull
11 | public final String result;
12 | @NonNull
13 | public final NumeralBase numeralBase;
14 |
15 | public ConversionFinishedEvent(@NonNull String result, @NonNull NumeralBase numeralBase,
16 | @NonNull DisplayState state) {
17 | super(state);
18 | this.result = result;
19 | this.numeralBase = numeralBase;
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/app/src/main/java/org/solovyev/android/calculator/converter/Convertible.java:
--------------------------------------------------------------------------------
1 | package org.solovyev.android.calculator.converter;
2 |
3 | import android.content.Context;
4 | import androidx.annotation.NonNull;
5 |
6 | import org.solovyev.android.calculator.Named;
7 |
8 | interface Convertible {
9 | @NonNull
10 | String convert(@NonNull Convertible to, @NonNull String value) throws NumberFormatException;
11 |
12 | @NonNull
13 | Named named(@NonNull Context context);
14 | }
15 |
--------------------------------------------------------------------------------
/app/src/main/java/org/solovyev/android/calculator/converter/ConvertibleDimension.java:
--------------------------------------------------------------------------------
1 | package org.solovyev.android.calculator.converter;
2 |
3 | import android.content.Context;
4 | import androidx.annotation.NonNull;
5 |
6 | import org.solovyev.android.calculator.Named;
7 |
8 | import java.util.List;
9 |
10 | public interface ConvertibleDimension {
11 | @NonNull
12 | Named named(@NonNull Context context);
13 |
14 | @NonNull
15 | List getUnits();
16 | }
17 |
--------------------------------------------------------------------------------
/app/src/main/java/org/solovyev/android/calculator/entities/Category.java:
--------------------------------------------------------------------------------
1 | package org.solovyev.android.calculator.entities;
2 |
3 | import androidx.annotation.StringRes;
4 |
5 | import org.solovyev.common.math.MathEntity;
6 |
7 | import javax.annotation.Nonnull;
8 |
9 | public interface Category {
10 |
11 | int ordinal();
12 |
13 | @Nonnull
14 | String name();
15 |
16 | boolean isInCategory(@Nonnull E entity);
17 |
18 | @StringRes
19 | int title();
20 | }
21 |
--------------------------------------------------------------------------------
/app/src/main/java/org/solovyev/android/calculator/entities/Entities.java:
--------------------------------------------------------------------------------
1 | package org.solovyev.android.calculator.entities;
2 |
3 | import androidx.annotation.NonNull;
4 |
5 | import org.solovyev.common.math.MathEntity;
6 |
7 | import javax.annotation.Nonnull;
8 | import javax.annotation.Nullable;
9 |
10 | public final class Entities {
11 |
12 | private Entities() {
13 | }
14 |
15 | @Nullable
16 | public static > Category getCategory(@Nonnull E entity, @NonNull C[] categories) {
17 | for (C category : categories) {
18 | if (category.isInCategory(entity)) {
19 | return category;
20 | }
21 | }
22 |
23 | return null;
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/app/src/main/java/org/solovyev/android/calculator/json/Jsonable.java:
--------------------------------------------------------------------------------
1 | package org.solovyev.android.calculator.json;
2 |
3 | import org.json.JSONException;
4 | import org.json.JSONObject;
5 |
6 | import javax.annotation.Nonnull;
7 |
8 | public interface Jsonable {
9 | @Nonnull
10 | JSONObject toJson() throws JSONException;
11 | }
12 |
--------------------------------------------------------------------------------
/app/src/main/java/org/solovyev/android/calculator/math/MathUtils.java:
--------------------------------------------------------------------------------
1 | package org.solovyev.android.calculator.math;
2 |
3 | public class MathUtils {
4 |
5 | public static int clamp(int value, int min, int max) {
6 | return value < min ? min : (value > max ? max : value);
7 | }
8 |
9 | public static float clamp(float value, float min, float max) {
10 | return value < min ? min : (value > max ? max : value);
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/app/src/main/java/org/solovyev/android/calculator/matrix/MatrixUi.java:
--------------------------------------------------------------------------------
1 | package org.solovyev.android.calculator.matrix;
2 |
3 | import java.io.Serializable;
4 |
5 | import javax.annotation.Nonnull;
6 |
7 | /**
8 | * User: serso
9 | * Date: 7/11/13
10 | * Time: 4:54 PM
11 | */
12 | class MatrixUi implements Serializable {
13 |
14 | @Nonnull
15 | private String[][] bakingArray;
16 |
17 | public MatrixUi() {
18 | }
19 |
20 | public MatrixUi(@Nonnull String[][] bakingArray) {
21 | this.bakingArray = bakingArray;
22 | }
23 |
24 | @Nonnull
25 | String[][] getBakingArray() {
26 | return bakingArray;
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/app/src/main/java/org/solovyev/android/calculator/preferences/PreferenceEntry.java:
--------------------------------------------------------------------------------
1 | package org.solovyev.android.calculator.preferences;
2 |
3 | import android.content.Context;
4 | import androidx.annotation.NonNull;
5 |
6 | public interface PreferenceEntry {
7 | @NonNull
8 | CharSequence getName(@NonNull Context context);
9 |
10 | @NonNull
11 | CharSequence getId();
12 | }
13 |
--------------------------------------------------------------------------------
/app/src/main/java/org/solovyev/android/calculator/release/ChooseThemeReleaseNoteFragment.java:
--------------------------------------------------------------------------------
1 | package org.solovyev.android.calculator.release;
2 |
3 | import android.os.Bundle;
4 | import android.view.View;
5 | import android.widget.TextView;
6 |
7 | import org.solovyev.android.calculator.R;
8 | import org.solovyev.android.calculator.wizard.ChooseThemeWizardStep;
9 |
10 | public class ChooseThemeReleaseNoteFragment extends ChooseThemeWizardStep {
11 |
12 | @Override
13 | public void onViewCreated(View root, Bundle savedInstanceState) {
14 | super.onViewCreated(root, savedInstanceState);
15 |
16 | final TextView title = (TextView) root.findViewById(R.id.wizard_theme_title);
17 | title.setText(R.string.cpp_release_notes_choose_theme);
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/app/src/main/java/org/solovyev/android/calculator/release/ChooseThemeReleaseNoteStep.java:
--------------------------------------------------------------------------------
1 | package org.solovyev.android.calculator.release;
2 |
3 | import android.os.Bundle;
4 |
5 | import androidx.fragment.app.Fragment;
6 | import javax.annotation.Nonnull;
7 |
8 | public class ChooseThemeReleaseNoteStep extends ReleaseNoteStep {
9 | public static final int VERSION_CODE = 137;
10 |
11 | public ChooseThemeReleaseNoteStep(Integer version) {
12 | super(version);
13 | }
14 |
15 | public ChooseThemeReleaseNoteStep(@Nonnull Bundle arguments) {
16 | super(arguments);
17 | }
18 |
19 | @Nonnull
20 | @Override
21 | public Class extends Fragment> getFragmentClass() {
22 | return ChooseThemeReleaseNoteFragment.class;
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/app/src/main/java/org/solovyev/android/calculator/release/ReleaseNote.java:
--------------------------------------------------------------------------------
1 | package org.solovyev.android.calculator.release;
2 |
3 | import androidx.annotation.NonNull;
4 | import androidx.annotation.StringRes;
5 |
6 | public class ReleaseNote {
7 | @NonNull
8 | public final String versionName;
9 | @StringRes
10 | public final int description;
11 |
12 | private ReleaseNote(@NonNull String versionName, int description) {
13 | this.versionName = versionName;
14 | this.description = description;
15 | }
16 |
17 | @NonNull
18 | public static ReleaseNote make(@NonNull String versionName, int description) {
19 | return new ReleaseNote(versionName, description);
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/app/src/main/java/org/solovyev/android/calculator/text/NaturalComparator.java:
--------------------------------------------------------------------------------
1 | package org.solovyev.android.calculator.text;
2 |
3 | import java.util.Comparator;
4 |
5 | public class NaturalComparator implements Comparator