├── app ├── .gitignore ├── src │ ├── main │ │ ├── res │ │ │ ├── resources.properties │ │ │ ├── font │ │ │ │ └── nunitosans.ttf │ │ │ ├── mipmap-hdpi │ │ │ │ ├── ic_launcher.webp │ │ │ │ ├── ic_pgshortcut.webp │ │ │ │ ├── ic_calcshortcut.webp │ │ │ │ ├── ic_launcher_round.webp │ │ │ │ ├── ic_unitshortcut.webp │ │ │ │ ├── ic_pgshortcut_round.webp │ │ │ │ ├── ic_calcshortcut_round.webp │ │ │ │ └── ic_unitshortcut_round.webp │ │ │ ├── mipmap-mdpi │ │ │ │ ├── ic_launcher.webp │ │ │ │ ├── ic_pgshortcut.webp │ │ │ │ ├── ic_calcshortcut.webp │ │ │ │ ├── ic_launcher_round.webp │ │ │ │ ├── ic_unitshortcut.webp │ │ │ │ ├── ic_pgshortcut_round.webp │ │ │ │ ├── ic_calcshortcut_round.webp │ │ │ │ └── ic_unitshortcut_round.webp │ │ │ ├── mipmap-xhdpi │ │ │ │ ├── ic_launcher.webp │ │ │ │ ├── ic_pgshortcut.webp │ │ │ │ ├── ic_calcshortcut.webp │ │ │ │ ├── ic_unitshortcut.webp │ │ │ │ ├── ic_launcher_round.webp │ │ │ │ ├── ic_calcshortcut_round.webp │ │ │ │ ├── ic_pgshortcut_round.webp │ │ │ │ └── ic_unitshortcut_round.webp │ │ │ ├── mipmap-xxhdpi │ │ │ │ ├── ic_launcher.webp │ │ │ │ ├── ic_calcshortcut.webp │ │ │ │ ├── ic_pgshortcut.webp │ │ │ │ ├── ic_unitshortcut.webp │ │ │ │ ├── ic_launcher_round.webp │ │ │ │ ├── ic_pgshortcut_round.webp │ │ │ │ ├── ic_calcshortcut_round.webp │ │ │ │ └── ic_unitshortcut_round.webp │ │ │ ├── mipmap-xxxhdpi │ │ │ │ ├── ic_launcher.webp │ │ │ │ ├── ic_pgshortcut.webp │ │ │ │ ├── ic_calcshortcut.webp │ │ │ │ ├── ic_unitshortcut.webp │ │ │ │ ├── ic_launcher_round.webp │ │ │ │ ├── ic_pgshortcut_round.webp │ │ │ │ ├── ic_calcshortcut_round.webp │ │ │ │ └── ic_unitshortcut_round.webp │ │ │ ├── values-sw411dp │ │ │ │ └── dimens.xml │ │ │ ├── values │ │ │ │ ├── ic_launcher_background.xml │ │ │ │ ├── ic_calcshortcut_background.xml │ │ │ │ ├── ic_pgshortcut_background.xml │ │ │ │ ├── ic_unitshortcut_background.xml │ │ │ │ ├── dimens.xml │ │ │ │ ├── arrays.xml │ │ │ │ └── attrs.xml │ │ │ ├── drawable │ │ │ │ ├── uc_copy.xml │ │ │ │ ├── uc_search.xml │ │ │ │ ├── uc_back.xml │ │ │ │ ├── precisionbg.xml │ │ │ │ ├── unitgroupbg.xml │ │ │ │ ├── unitgroupbg_dragged.xml │ │ │ │ ├── dropdown_last_bg.xml │ │ │ │ ├── dropdownicon.xml │ │ │ │ ├── moon_full.xml │ │ │ │ ├── rounded_bg_search.xml │ │ │ │ ├── pinbg.xml │ │ │ │ ├── bullet.xml │ │ │ │ ├── ic_circle_48.xml │ │ │ │ ├── outline_home_24.xml │ │ │ │ ├── ic_baseline_code_24.xml │ │ │ │ ├── outline_arrow_back_24.xml │ │ │ │ ├── ic_incomplete_circle_24.xml │ │ │ │ ├── pi_box.xml │ │ │ │ ├── container_round_ripple.xml │ │ │ │ ├── round_sysdefault_24.xml │ │ │ │ ├── close_circle.xml │ │ │ │ ├── round_remove_circle_24.xml │ │ │ │ ├── drop_container_lines.xml │ │ │ │ ├── outline_info_24.xml │ │ │ │ ├── round_drag_handle_24.xml │ │ │ │ ├── textlefthandle.xml │ │ │ │ ├── textrighthandle.xml │ │ │ │ ├── round_info_24.xml │ │ │ │ ├── ic_pressure_24.xml │ │ │ │ ├── ic_drop_up_24.xml │ │ │ │ ├── outline_check_circle_24.xml │ │ │ │ ├── ic_drop_down_24.xml │ │ │ │ ├── ic_drop_down_48.xml │ │ │ │ ├── backspace_outline.xml │ │ │ │ ├── calendar_edit.xml │ │ │ │ ├── round_format_paint_24.xml │ │ │ │ ├── ic_content_copy_24.xml │ │ │ │ ├── ic_time_24.xml │ │ │ │ ├── round_add_circle_24.xml │ │ │ │ ├── round_access_time_filled_24.xml │ │ │ │ ├── round_clear_all_24.xml │ │ │ │ ├── ucripple.xml │ │ │ │ ├── round_calendar_today_24.xml │ │ │ │ ├── palette_swatch_variant.xml │ │ │ │ ├── textmiddlehandle.xml │ │ │ │ ├── ic_backspace_24.xml │ │ │ │ ├── math_compass.xml │ │ │ │ ├── outline_push_pin_24.xml │ │ │ │ ├── round_arrow_back_24.xml │ │ │ │ ├── ic_bolt_24.xml │ │ │ │ ├── ic_thermostat_24.xml │ │ │ │ ├── ceiling_fan.xml │ │ │ │ ├── ic_baseline_calculate_24.xml │ │ │ │ ├── round_swap_vert_24.xml │ │ │ │ ├── round_search_24.xml │ │ │ │ ├── ic_area_chart_24.xml │ │ │ │ ├── ic_straighten_24.xml │ │ │ │ ├── systemfont.xml │ │ │ │ ├── outline_dark_mode_24.xml │ │ │ │ ├── round_align_horizontal_left_24.xml │ │ │ │ ├── round_check_circle_24.xml │ │ │ │ ├── round_swap_horiz_24.xml │ │ │ │ ├── round_code_24abyss.xml │ │ │ │ ├── round_code_24light.xml │ │ │ │ ├── round_view_timeline_24.xml │ │ │ │ ├── ic_local_drink_24.xml │ │ │ │ ├── round_add_to_home_screen_24.xml │ │ │ │ ├── ic_speed_24.xml │ │ │ │ ├── ic_text_snippet_24.xml │ │ │ │ ├── ic_energy_24.xml │ │ │ │ ├── round_settings_backup_restore_24.xml │ │ │ │ ├── round_vibration_24.xml │ │ │ │ ├── round_tune_24.xml │ │ │ │ ├── round_123_24.xml │ │ │ │ ├── eye_circle.xml │ │ │ │ ├── ic_monitor_weight_24.xml │ │ │ │ ├── round_checklist_24.xml │ │ │ │ ├── round_recently_used.xml │ │ │ │ ├── ic_pgshortcut_foreground.xml │ │ │ │ ├── ic_baseline_cyclone_24.xml │ │ │ │ ├── you_style3.xml │ │ │ │ ├── you_style4.xml │ │ │ │ ├── you_style2.xml │ │ │ │ ├── you_style1.xml │ │ │ │ ├── round_volunteer_activism_24.xml │ │ │ │ ├── round_cyclone_24abyss.xml │ │ │ │ ├── round_cyclone_24light.xml │ │ │ │ ├── outline_palette_24.xml │ │ │ │ ├── round_copyright_24.xml │ │ │ │ ├── round_app_shortcut_24.xml │ │ │ │ ├── web_off.xml │ │ │ │ ├── outline_light_mode_24.xml │ │ │ │ ├── evil.xml │ │ │ │ ├── round_calculate_24abyss.xml │ │ │ │ ├── round_calculate_24light.xml │ │ │ │ ├── ic_unitshortcut_foreground.xml │ │ │ │ ├── ic_currency_exchange_24.xml │ │ │ │ ├── ic_calcshortcut_foreground.xml │ │ │ │ ├── ic_settings_24.xml │ │ │ │ └── emptyhistory.xml │ │ │ ├── color │ │ │ │ ├── unitchipbg.xml │ │ │ │ ├── youstyle_chipborder.xml │ │ │ │ ├── uctabselector.xml │ │ │ │ ├── radiobuttontint.xml │ │ │ │ ├── selector.xml │ │ │ │ ├── uctextselector.xml │ │ │ │ ├── othselector.xml │ │ │ │ ├── disabled_switch_track_tint.xml │ │ │ │ ├── switch_track_tint.xml │ │ │ │ └── switch_thumb_tint.xml │ │ │ ├── xml │ │ │ │ ├── backup_rules.xml │ │ │ │ ├── osspref.xml │ │ │ │ ├── appearance_preferences.xml │ │ │ │ ├── prefmode.xml │ │ │ │ ├── unitgrouppref.xml │ │ │ │ ├── precisionpref.xml │ │ │ │ ├── datefmtpref.xml │ │ │ │ ├── dtmhistorypref.xml │ │ │ │ ├── data_extraction_rules.xml │ │ │ │ ├── general_preferences.xml │ │ │ │ ├── pgpref.xml │ │ │ │ ├── aboutpref.xml │ │ │ │ ├── unitconvpref.xml │ │ │ │ ├── calcpref.xml │ │ │ │ └── root_preferences.xml │ │ │ ├── layout │ │ │ │ ├── osspreflayout.xml │ │ │ │ ├── unit_chip_item.xml │ │ │ │ ├── list_item_land.xml │ │ │ │ ├── item_chip.xml │ │ │ │ ├── list_item_alt.xml │ │ │ │ ├── list_item_unitconv.xml │ │ │ │ ├── material_switch.xml │ │ │ │ ├── list_item.xml │ │ │ │ ├── activity_settings.xml │ │ │ │ ├── unitgrouppreflyt.xml │ │ │ │ ├── history_appbar.xml │ │ │ │ ├── easter_egg.xml │ │ │ │ ├── item_unit_group.xml │ │ │ │ ├── uc_unit_list_item.xml │ │ │ │ ├── uc_dropsearchdialog.xml │ │ │ │ ├── settings_appbar.xml │ │ │ │ ├── app_bar_alt.xml │ │ │ │ ├── app_bar.xml │ │ │ │ ├── no_internet.xml │ │ │ │ ├── app_bar_alt_land.xml │ │ │ │ ├── precisionlayout.xml │ │ │ │ └── activity_history.xml │ │ │ └── mipmap-anydpi-v26 │ │ │ │ ├── ic_launcher.xml │ │ │ │ ├── ic_launcher_round.xml │ │ │ │ ├── ic_pgshortcut.xml │ │ │ │ ├── ic_calcshortcut.xml │ │ │ │ ├── ic_pgshortcut_round.xml │ │ │ │ ├── ic_unitshortcut.xml │ │ │ │ ├── ic_calcshortcut_round.xml │ │ │ │ └── ic_unitshortcut_round.xml │ │ ├── assets │ │ │ └── eastereggbg.png │ │ ├── ic_launcher-playstore.png │ │ ├── ic_pgshortcut-playstore.png │ │ ├── ic_calcshortcut-playstore.png │ │ ├── ic_unitshortcut-playstore.png │ │ ├── java │ │ │ └── yetzio │ │ │ │ └── yetcalc │ │ │ │ ├── models │ │ │ │ ├── UnitConvRecentTab.kt │ │ │ │ ├── UnitGroup.kt │ │ │ │ ├── UnitItem.kt │ │ │ │ ├── HistoryItem.kt │ │ │ │ ├── EasterEggViewModel.kt │ │ │ │ ├── CalcViewModel.kt │ │ │ │ ├── ProgramCalcViewModel.kt │ │ │ │ └── HistoryViewModel.kt │ │ │ │ ├── config │ │ │ │ ├── CalcView.kt │ │ │ │ └── ActivityTracker.kt │ │ │ │ ├── enums │ │ │ │ ├── NumberSystem.kt │ │ │ │ ├── UnitType.kt │ │ │ │ └── CalcModes.kt │ │ │ │ ├── YetCalc.kt │ │ │ │ ├── HomeActivity.kt │ │ │ │ ├── adapters │ │ │ │ ├── ModeSelectAdapter.kt │ │ │ │ └── HistoryAdapter.kt │ │ │ │ ├── dialogs │ │ │ │ └── EasterEggDialogs.kt │ │ │ │ ├── component │ │ │ │ └── Calculator.kt │ │ │ │ └── views │ │ │ │ ├── HistoryActivity.kt │ │ │ │ └── SettingsActivity.kt │ │ └── AndroidManifest.xml │ ├── test │ │ └── java │ │ │ └── yetzio │ │ │ └── yetcalc │ │ │ └── ExampleUnitTest.kt │ └── androidTest │ │ └── java │ │ └── yetzio │ │ └── yetcalc │ │ └── ExampleInstrumentedTest.kt ├── proguard-rules.pro └── build.gradle.kts ├── fastlane └── metadata │ └── android │ ├── en-US │ ├── title.txt │ ├── changelogs │ │ ├── 1.txt │ │ ├── 17.txt │ │ ├── 18.txt │ │ ├── 3.txt │ │ ├── 2.txt │ │ ├── 19.txt │ │ ├── 23.txt │ │ ├── 24.txt │ │ ├── 22.txt │ │ ├── 4.txt │ │ ├── 15.txt │ │ ├── 20.txt │ │ ├── 14.txt │ │ ├── 7.txt │ │ ├── 11.txt │ │ ├── 8.txt │ │ ├── 10.txt │ │ ├── 12.txt │ │ ├── 13.txt │ │ ├── 21.txt │ │ ├── 5.txt │ │ ├── 9.txt │ │ ├── 6.txt │ │ └── 16.txt │ ├── short_description.txt │ ├── images │ │ ├── icon.png │ │ ├── featureGraphic.png │ │ └── phoneScreenshots │ │ │ ├── 1.png │ │ │ ├── 2.png │ │ │ ├── 3.png │ │ │ ├── 4.png │ │ │ ├── 5.png │ │ │ ├── 6.png │ │ │ ├── 7.png │ │ │ └── 8.png │ └── full_description.txt │ ├── cs-CZ │ └── short_description.txt │ ├── ru-RU │ └── short_description.txt │ ├── ru │ └── full_description.txt │ └── cs │ └── full_description.txt ├── img ├── icons │ └── appico.png └── oth │ └── UPIQRcode.png ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── .github └── FUNDING.yml ├── .gitignore ├── renovate.json ├── settings.gradle.kts ├── gradle.properties ├── DONATE.md ├── LICENSE └── licenses └── mXparser └── LICENSE.txt /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/title.txt: -------------------------------------------------------------------------------- 1 | yetCalc -------------------------------------------------------------------------------- /app/src/main/res/resources.properties: -------------------------------------------------------------------------------- 1 | unqualifiedResLocale=en-US -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/1.txt: -------------------------------------------------------------------------------- 1 | Initial version -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/17.txt: -------------------------------------------------------------------------------- 1 | v2.0.1 Maintenance release -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/18.txt: -------------------------------------------------------------------------------- 1 | v2.0.2 Maintenance release -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/3.txt: -------------------------------------------------------------------------------- 1 | - Options to disable haptic feedback! -------------------------------------------------------------------------------- /img/icons/appico.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yet-Zio/yetCalc/HEAD/img/icons/appico.png -------------------------------------------------------------------------------- /img/oth/UPIQRcode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yet-Zio/yetCalc/HEAD/img/oth/UPIQRcode.png -------------------------------------------------------------------------------- /fastlane/metadata/android/cs-CZ/short_description.txt: -------------------------------------------------------------------------------- 1 | Progresivní kalkulačka, převodník a mnoho dalšího. -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/short_description.txt: -------------------------------------------------------------------------------- 1 | Progressive calculator, converter and much more. -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yet-Zio/yetCalc/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /app/src/main/assets/eastereggbg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yet-Zio/yetCalc/HEAD/app/src/main/assets/eastereggbg.png -------------------------------------------------------------------------------- /app/src/main/res/font/nunitosans.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yet-Zio/yetCalc/HEAD/app/src/main/res/font/nunitosans.ttf -------------------------------------------------------------------------------- /fastlane/metadata/android/ru-RU/short_description.txt: -------------------------------------------------------------------------------- 1 | Прогрессивный калькулятор, преобразователь единиц и многое другое. -------------------------------------------------------------------------------- /app/src/main/ic_launcher-playstore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yet-Zio/yetCalc/HEAD/app/src/main/ic_launcher-playstore.png -------------------------------------------------------------------------------- /app/src/main/ic_pgshortcut-playstore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yet-Zio/yetCalc/HEAD/app/src/main/ic_pgshortcut-playstore.png -------------------------------------------------------------------------------- /app/src/main/ic_calcshortcut-playstore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yet-Zio/yetCalc/HEAD/app/src/main/ic_calcshortcut-playstore.png -------------------------------------------------------------------------------- /app/src/main/ic_unitshortcut-playstore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yet-Zio/yetCalc/HEAD/app/src/main/ic_unitshortcut-playstore.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yet-Zio/yetCalc/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yet-Zio/yetCalc/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yet-Zio/yetCalc/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher.webp -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/2.txt: -------------------------------------------------------------------------------- 1 | - OSS License notices section removed, links to relevant licenses will be provided in the repo. -------------------------------------------------------------------------------- /app/src/main/java/yetzio/yetcalc/models/UnitConvRecentTab.kt: -------------------------------------------------------------------------------- 1 | package yetzio.yetcalc.models 2 | 3 | data class UnitConvRecentTab(var tabnum: Int) -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_pgshortcut.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yet-Zio/yetCalc/HEAD/app/src/main/res/mipmap-hdpi/ic_pgshortcut.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_pgshortcut.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yet-Zio/yetCalc/HEAD/app/src/main/res/mipmap-mdpi/ic_pgshortcut.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_pgshortcut.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yet-Zio/yetCalc/HEAD/app/src/main/res/mipmap-xhdpi/ic_pgshortcut.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yet-Zio/yetCalc/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yet-Zio/yetCalc/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yet-Zio/yetCalc/HEAD/fastlane/metadata/android/en-US/images/icon.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_calcshortcut.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yet-Zio/yetCalc/HEAD/app/src/main/res/mipmap-hdpi/ic_calcshortcut.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yet-Zio/yetCalc/HEAD/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_unitshortcut.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yet-Zio/yetCalc/HEAD/app/src/main/res/mipmap-hdpi/ic_unitshortcut.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_calcshortcut.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yet-Zio/yetCalc/HEAD/app/src/main/res/mipmap-mdpi/ic_calcshortcut.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yet-Zio/yetCalc/HEAD/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_unitshortcut.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yet-Zio/yetCalc/HEAD/app/src/main/res/mipmap-mdpi/ic_unitshortcut.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_calcshortcut.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yet-Zio/yetCalc/HEAD/app/src/main/res/mipmap-xhdpi/ic_calcshortcut.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_unitshortcut.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yet-Zio/yetCalc/HEAD/app/src/main/res/mipmap-xhdpi/ic_unitshortcut.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_calcshortcut.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yet-Zio/yetCalc/HEAD/app/src/main/res/mipmap-xxhdpi/ic_calcshortcut.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_pgshortcut.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yet-Zio/yetCalc/HEAD/app/src/main/res/mipmap-xxhdpi/ic_pgshortcut.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_unitshortcut.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yet-Zio/yetCalc/HEAD/app/src/main/res/mipmap-xxhdpi/ic_unitshortcut.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_pgshortcut.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yet-Zio/yetCalc/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_pgshortcut.webp -------------------------------------------------------------------------------- /app/src/main/java/yetzio/yetcalc/models/UnitGroup.kt: -------------------------------------------------------------------------------- 1 | package yetzio.yetcalc.models 2 | 3 | class UnitGroup(val name: String, var enabled: Boolean){ 4 | } -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_pgshortcut_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yet-Zio/yetCalc/HEAD/app/src/main/res/mipmap-hdpi/ic_pgshortcut_round.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_pgshortcut_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yet-Zio/yetCalc/HEAD/app/src/main/res/mipmap-mdpi/ic_pgshortcut_round.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yet-Zio/yetCalc/HEAD/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yet-Zio/yetCalc/HEAD/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_calcshortcut.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yet-Zio/yetCalc/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_calcshortcut.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_unitshortcut.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yet-Zio/yetCalc/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_unitshortcut.webp -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: # not yet 4 | custom: ['https://www.buymeacoffee.com/yetzio'] 5 | patreon: yetzio -------------------------------------------------------------------------------- /app/src/main/java/yetzio/yetcalc/models/UnitItem.kt: -------------------------------------------------------------------------------- 1 | package yetzio.yetcalc.models 2 | 3 | data class UnitItem(val value: String, val originalIndex: Int) 4 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_calcshortcut_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yet-Zio/yetCalc/HEAD/app/src/main/res/mipmap-hdpi/ic_calcshortcut_round.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_unitshortcut_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yet-Zio/yetCalc/HEAD/app/src/main/res/mipmap-hdpi/ic_unitshortcut_round.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_calcshortcut_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yet-Zio/yetCalc/HEAD/app/src/main/res/mipmap-mdpi/ic_calcshortcut_round.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_unitshortcut_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yet-Zio/yetCalc/HEAD/app/src/main/res/mipmap-mdpi/ic_unitshortcut_round.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_calcshortcut_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yet-Zio/yetCalc/HEAD/app/src/main/res/mipmap-xhdpi/ic_calcshortcut_round.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_pgshortcut_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yet-Zio/yetCalc/HEAD/app/src/main/res/mipmap-xhdpi/ic_pgshortcut_round.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_unitshortcut_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yet-Zio/yetCalc/HEAD/app/src/main/res/mipmap-xhdpi/ic_unitshortcut_round.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_pgshortcut_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yet-Zio/yetCalc/HEAD/app/src/main/res/mipmap-xxhdpi/ic_pgshortcut_round.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yet-Zio/yetCalc/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_pgshortcut_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yet-Zio/yetCalc/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_pgshortcut_round.webp -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/19.txt: -------------------------------------------------------------------------------- 1 | v2.0.3 Bug Fixes 2 | 3 | - Weight/Mass Group now shows its correct unit dialog instead of volume related units. -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_calcshortcut_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yet-Zio/yetCalc/HEAD/app/src/main/res/mipmap-xxhdpi/ic_calcshortcut_round.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_unitshortcut_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yet-Zio/yetCalc/HEAD/app/src/main/res/mipmap-xxhdpi/ic_unitshortcut_round.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_calcshortcut_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yet-Zio/yetCalc/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_calcshortcut_round.webp -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_unitshortcut_round.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yet-Zio/yetCalc/HEAD/app/src/main/res/mipmap-xxxhdpi/ic_unitshortcut_round.webp -------------------------------------------------------------------------------- /app/src/main/res/values-sw411dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 50sp 4 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/featureGraphic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yet-Zio/yetCalc/HEAD/fastlane/metadata/android/en-US/images/featureGraphic.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yet-Zio/yetCalc/HEAD/fastlane/metadata/android/en-US/images/phoneScreenshots/1.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yet-Zio/yetCalc/HEAD/fastlane/metadata/android/en-US/images/phoneScreenshots/2.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yet-Zio/yetCalc/HEAD/fastlane/metadata/android/en-US/images/phoneScreenshots/3.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yet-Zio/yetCalc/HEAD/fastlane/metadata/android/en-US/images/phoneScreenshots/4.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yet-Zio/yetCalc/HEAD/fastlane/metadata/android/en-US/images/phoneScreenshots/5.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yet-Zio/yetCalc/HEAD/fastlane/metadata/android/en-US/images/phoneScreenshots/6.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yet-Zio/yetCalc/HEAD/fastlane/metadata/android/en-US/images/phoneScreenshots/7.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Yet-Zio/yetCalc/HEAD/fastlane/metadata/android/en-US/images/phoneScreenshots/8.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/23.txt: -------------------------------------------------------------------------------- 1 | Minor Fixes: 2 | 3 | - Conversion issues for Pounds and Stones 4 | - Some translation issues 5 | 6 | Support for Android 16 -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/24.txt: -------------------------------------------------------------------------------- 1 | Minor Fixes: 2 | 3 | - Conversion issues for Pounds and Stones 4 | - Some translation issues 5 | 6 | Support for Android 16 -------------------------------------------------------------------------------- /app/src/main/java/yetzio/yetcalc/config/CalcView.kt: -------------------------------------------------------------------------------- 1 | package yetzio.yetcalc.config 2 | 3 | enum class CalcView { 4 | CALCULATOR, 5 | CONVERTER, 6 | PROGRAMMER 7 | } -------------------------------------------------------------------------------- /app/src/main/java/yetzio/yetcalc/models/HistoryItem.kt: -------------------------------------------------------------------------------- 1 | package yetzio.yetcalc.models 2 | 3 | data class HistoryItem(var timestamp: String, var expression: String, var result: String) -------------------------------------------------------------------------------- /app/src/main/res/values/ic_launcher_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #18251B 4 | -------------------------------------------------------------------------------- /app/src/main/res/values/ic_calcshortcut_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #000000 4 | -------------------------------------------------------------------------------- /app/src/main/res/values/ic_pgshortcut_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #000000 4 | -------------------------------------------------------------------------------- /app/src/main/res/values/ic_unitshortcut_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #000000 4 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/22.txt: -------------------------------------------------------------------------------- 1 | Fixes 2 | 3 | - Font size fixes for smaller layouts 4 | 5 | Enhancements 6 | 7 | - Added a solve and share option in text selection context menu. -------------------------------------------------------------------------------- /app/src/main/res/drawable/uc_copy.xml: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/uc_search.xml: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/uc_back.xml: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /app/src/main/java/yetzio/yetcalc/enums/NumberSystem.kt: -------------------------------------------------------------------------------- 1 | package yetzio.yetcalc.enums 2 | 3 | enum class NumberSystem(val radix: Int) { 4 | HEX(16), 5 | DEC(10), 6 | OCT(8), 7 | BIN(2); 8 | } -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/4.txt: -------------------------------------------------------------------------------- 1 | - Fixed an issue where result is always a real number. 2 | - Added a higher precision setting(1e-323). 3 | - Padding for progressive result changed in portrait mode. -------------------------------------------------------------------------------- /app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10dp 4 | 20sp 5 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/15.txt: -------------------------------------------------------------------------------- 1 | Enhancements 2 | 3 | - Added monochromatic/themed icon support for Android 13 and above. 4 | 5 | - History button now available in views directly for easy access. 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/precisionbg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/unitgroupbg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/unitgroupbg_dragged.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/20.txt: -------------------------------------------------------------------------------- 1 | Bug Fixes 2 | 3 | - Conversions are now handled properly for Delisle, Rømer and other scales in temperature group. 4 | 5 | Enhancements 6 | 7 | - Added Simplified Chinese(zh-rCN) translation for users! 8 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/14.txt: -------------------------------------------------------------------------------- 1 | Fixes: 2 | 3 | - The Currency API endpoints have been migrated to the new API provided by fawazahmed0 at: https://github.com/fawazahmed0/exchange-api. This fixes the issues with the currency converter not working. -------------------------------------------------------------------------------- /app/src/main/res/color/unitchipbg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Fri Aug 23 10:56:00 IST 2024 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip 5 | zipStoreBase=GRADLE_USER_HOME 6 | zipStorePath=wrapper/dists 7 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/dropdown_last_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/java/yetzio/yetcalc/models/EasterEggViewModel.kt: -------------------------------------------------------------------------------- 1 | package yetzio.yetcalc.models 2 | 3 | import androidx.lifecycle.MutableLiveData 4 | import androidx.lifecycle.ViewModel 5 | 6 | class EasterEggViewModel: ViewModel() { 7 | var clickCount: MutableLiveData = MutableLiveData(0) 8 | } -------------------------------------------------------------------------------- /app/src/main/res/color/youstyle_chipborder.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/color/uctabselector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/color/radiobuttontint.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/dropdownicon.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/xml/backup_rules.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/7.txt: -------------------------------------------------------------------------------- 1 | Bug Fixes 2 | 3 | - Fixed inaccurate results in volume section of unit converter over Cups(US), Cups(UK), Teaspoons, Tablespoons, Fluid Ounces, etc. Other units might have similar issues as well. 4 | 5 | Enhancements 6 | 7 | - Added furlongs to length section in Unit Converter -------------------------------------------------------------------------------- /app/src/main/res/drawable/moon_full.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/rounded_bg_search.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/layout/osspreflayout.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/java/yetzio/yetcalc/enums/UnitType.kt: -------------------------------------------------------------------------------- 1 | package yetzio.yetcalc.enums 2 | 3 | enum class UnitType { 4 | ANGLE, 5 | AREA, 6 | CURRENCY, 7 | DATA, 8 | ENERGY, 9 | LENGTH, 10 | POWER, 11 | PRESSURE, 12 | SPEED, 13 | TEMPERATURE, 14 | TIME, 15 | VOLUME, 16 | WEIGHT 17 | } -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea 5 | /.idea/discord.xml 6 | /.idea/caches 7 | /.idea/libraries 8 | /.idea/modules.xml 9 | /.idea/workspace.xml 10 | /.idea/navEditor.xml 11 | /.idea/assetWizardSettings.xml 12 | .DS_Store 13 | /build 14 | /captures 15 | .externalNativeBuild 16 | .cxx 17 | local.properties 18 | app/release/ -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/11.txt: -------------------------------------------------------------------------------- 1 | Changes 2 | ——————————————— 3 | 4 | - Search view added for currency tab in Converter mode. Hooray! No more hassle with the large list of currencies. 5 | 6 | - The Currency API yetCalc uses has switched from https://exchangerate.host/ to https://github.com/fawazahmed0/currency-api due to exchangerate.host limitations. -------------------------------------------------------------------------------- /app/src/main/res/layout/unit_chip_item.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/8.txt: -------------------------------------------------------------------------------- 1 | Bug Fixes 2 | 3 | - Fixed inaccurate results when selecting 'Bubnoff unit' in speed section of Unit Converter. 4 | 5 | - Fixed an issue in Programmer mode that caused an operator to disappear in history but the operation to remain. 6 | 7 | Enhancements 8 | 9 | - Now you can long press the delete button to clear all digits. -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/10.txt: -------------------------------------------------------------------------------- 1 | Enhancements 2 | ——————————————— 3 | 4 | This update adds the following requested features: 5 | 6 | - Support for the system theme, and from now on, yetCalc shall use the 'System' theme as its default theme. You can still select the dark or light theme regardless. 7 | 8 | - Symbols or abbreviations for units in converter mode. -------------------------------------------------------------------------------- /app/src/main/res/drawable/pinbg.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/12.txt: -------------------------------------------------------------------------------- 1 | Bug Fixes 2 | 3 | - Fixed an issue that caused programmer mode to crash on input larger than the maximum 32-bit signed integer. 4 | 5 | Enhancements 6 | 7 | - Date format options for the currency converter tab and history view are available in settings. 8 | 9 | - Selectable text in programmer mode. Now you can copy and share your results! -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/13.txt: -------------------------------------------------------------------------------- 1 | Bug Fixes 2 | 3 | - Fixed a UI freezing issue caused by history reading whenever the equal to button was clicked. 4 | 5 | Enhancements 6 | 7 | - From now on, results will be left aligned in calculator component for easier reading. Can be turned off from settings. 8 | 9 | - Results are now sorted in descending order by default in history. -------------------------------------------------------------------------------- /app/src/main/res/drawable/bullet.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/21.txt: -------------------------------------------------------------------------------- 1 | Fixes 2 | 3 | - Improved layouts for larger screens, with larger buttons and more padding. 4 | - Fixed font issues in Programmer mode for NAND and XNOR. 5 | 6 | Enhancements 7 | 8 | - Added a setting to use the system font in expressions for both Calculator and Programmer modes. 9 | (Go to Settings > Calculator / Programmer > Use System Font) -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_circle_48.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_pgshortcut.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_calcshortcut.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_pgshortcut_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_unitshortcut.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/color/selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/outline_home_24.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_calcshortcut_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_unitshortcut_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/5.txt: -------------------------------------------------------------------------------- 1 | Bug Fixes 2 | 3 | - Fixed cursor appearing at start incase of pressing equal to button. 4 | - Fixed calculator losing precision after 9223372036854775807, a scientific notation is used instead. 5 | 6 | Enhancements 7 | 8 | - Converter now remembers the last section/tab you opened and the app provides a setting for this.(Settings -> Use Recent Tab). This is enabled by default. 9 | -------------------------------------------------------------------------------- /app/src/main/res/color/uctextselector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/color/othselector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_baseline_code_24.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/outline_arrow_back_24.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_incomplete_circle_24.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/pi_box.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/src/test/java/yetzio/yetcalc/ExampleUnitTest.kt: -------------------------------------------------------------------------------- 1 | package yetzio.yetcalc 2 | 3 | import org.junit.Test 4 | 5 | import org.junit.Assert.* 6 | 7 | /** 8 | * Example local unit test, which will execute on the development machine (host). 9 | * 10 | * See [testing documentation](http://d.android.com/tools/testing). 11 | */ 12 | class ExampleUnitTest { 13 | @Test 14 | fun addition_isCorrect() { 15 | assertEquals(4, 2 + 2) 16 | } 17 | } -------------------------------------------------------------------------------- /app/src/main/res/drawable/container_round_ripple.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/9.txt: -------------------------------------------------------------------------------- 1 | Bug Fixes 2 | 3 | - Fixed an issue that caused any boolean operator to disappear from history string in programmer mode. 4 | 5 | - Fixed a scaling issue when converting to or from Tablespoons(US/UK), Teaspoons(US/UK), etc on volume section of converter mode. 6 | 7 | - Fixed an issue that prevented the app from showing the app icon on devices that do not support the adaptive and legacy icons generated by Android Studio. 8 | -------------------------------------------------------------------------------- /app/src/main/res/xml/osspref.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/round_sysdefault_24.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/java/yetzio/yetcalc/YetCalc.kt: -------------------------------------------------------------------------------- 1 | package yetzio.yetcalc 2 | 3 | import android.app.Application 4 | import yetzio.yetcalc.config.ActivityTracker 5 | 6 | class YetCalc : Application() { 7 | lateinit var activityTracker: ActivityTracker 8 | 9 | override fun onCreate() { 10 | super.onCreate() 11 | activityTracker = ActivityTracker(applicationContext) 12 | registerActivityLifecycleCallbacks(activityTracker) 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /renovate.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["config:base", ":disableDependencyDashboard"], 3 | "packageRules": [ 4 | { 5 | "matchManagers": ["gradle"], 6 | "rangeStrategy": "bump" 7 | }, 8 | { 9 | "matchManagers": ["github-actions"], 10 | "rangeStrategy": "bump" 11 | }, 12 | { 13 | "matchPackageNames": ["org.mariuszgromada.math:MathParser.org-mXparser"], 14 | "allowedVersions": "<5.0.0" 15 | } 16 | ], 17 | "prHourlyLimit": 50 18 | } 19 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/close_circle.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/round_remove_circle_24.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/drop_container_lines.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/outline_info_24.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/round_drag_handle_24.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/textlefthandle.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/textrighthandle.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/round_info_24.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_pressure_24.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_drop_up_24.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/outline_check_circle_24.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_drop_down_24.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_drop_down_48.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/layout/list_item_land.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/layout/item_chip.xml: -------------------------------------------------------------------------------- 1 | 2 | 13 | -------------------------------------------------------------------------------- /app/src/main/java/yetzio/yetcalc/models/CalcViewModel.kt: -------------------------------------------------------------------------------- 1 | package yetzio.yetcalc.models 2 | 3 | import androidx.lifecycle.ViewModel 4 | import yetzio.yetcalc.enums.AngleMode 5 | import yetzio.yetcalc.enums.CalcMode 6 | 7 | class CalcViewModel: ViewModel(){ 8 | var calcMode: CalcMode = CalcMode.FIRSTMODE 9 | var angleMode: AngleMode = AngleMode.DEGREE 10 | var lastSetFactBt: CalcMode = CalcMode.FIRSTMODE 11 | var calcModePos: Int? = null 12 | var varModePos: Int? = null 13 | var hapticPref: Boolean = true 14 | } -------------------------------------------------------------------------------- /app/src/main/res/drawable/backspace_outline.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/src/main/res/xml/appearance_preferences.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 10 | 11 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/6.txt: -------------------------------------------------------------------------------- 1 | Bug Fixes 2 | 3 | - Fixed an app crash when attempting to divide by zero in programmer mode. 4 | - Converter now converts feet to inches and vice versa correctly. 5 | - Converter now allows negative values on all sections(tabs) except currency. 6 | 7 | Enhancements 8 | 9 | - A setting to enable/disable Canonical Rounding has been added. Canonical Rounding solves issues like 0.1 + 0.2 giving invalid results. It is disabled by default. Enabling this might cause problems with calculations including really small numbers. -------------------------------------------------------------------------------- /app/src/main/res/color/disabled_switch_track_tint.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/calendar_edit.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/round_format_paint_24.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/layout/list_item_alt.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_content_copy_24.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/layout/list_item_unitconv.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_time_24.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/round_add_circle_24.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/round_access_time_filled_24.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/round_clear_all_24.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ucripple.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/round_calendar_today_24.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/palette_swatch_variant.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/textmiddlehandle.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/xml/prefmode.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/color/switch_track_tint.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_backspace_24.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/math_compass.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/outline_push_pin_24.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/round_arrow_back_24.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/layout/material_switch.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/src/main/res/xml/unitgrouppref.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/color/switch_thumb_tint.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_bolt_24.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_thermostat_24.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/xml/precisionpref.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/java/yetzio/yetcalc/models/ProgramCalcViewModel.kt: -------------------------------------------------------------------------------- 1 | package yetzio.yetcalc.models 2 | 3 | import androidx.lifecycle.MutableLiveData 4 | import androidx.lifecycle.ViewModel 5 | import yetzio.yetcalc.enums.NumberSystem 6 | 7 | class ProgramCalcViewModel: ViewModel(){ 8 | var result: String = "" 9 | var numberSys: MutableLiveData = MutableLiveData(NumberSystem.DEC) 10 | 11 | var hexResult: String = "" 12 | var decResult: String = "" 13 | var octResult: String = "" 14 | var binResult: String = "" 15 | 16 | var init = false 17 | var hapticPref = false 18 | 19 | } -------------------------------------------------------------------------------- /app/src/main/res/drawable/ceiling_fan.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/src/main/res/xml/datefmtpref.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/xml/dtmhistorypref.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 12 | 13 | -------------------------------------------------------------------------------- /settings.gradle.kts: -------------------------------------------------------------------------------- 1 | pluginManagement { 2 | repositories { 3 | google { 4 | content { 5 | includeGroupByRegex("com\\.android.*") 6 | includeGroupByRegex("com\\.google.*") 7 | includeGroupByRegex("androidx.*") 8 | } 9 | } 10 | mavenCentral() 11 | gradlePluginPortal() 12 | } 13 | } 14 | dependencyResolutionManagement { 15 | repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) 16 | repositories { 17 | google() 18 | mavenCentral() 19 | } 20 | } 21 | 22 | rootProject.name = "yetCalc" 23 | include(":app") 24 | -------------------------------------------------------------------------------- /app/src/main/res/xml/data_extraction_rules.xml: -------------------------------------------------------------------------------- 1 | 6 | 7 | 8 | 12 | 13 | 19 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_baseline_calculate_24.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/round_swap_vert_24.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/round_search_24.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_area_chart_24.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_straighten_24.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/systemfont.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/outline_dark_mode_24.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/round_align_horizontal_left_24.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/round_check_circle_24.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/round_swap_horiz_24.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/round_code_24abyss.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/round_code_24light.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/java/yetzio/yetcalc/models/HistoryViewModel.kt: -------------------------------------------------------------------------------- 1 | package yetzio.yetcalc.models 2 | 3 | import androidx.lifecycle.MutableLiveData 4 | import androidx.lifecycle.ViewModel 5 | 6 | class HistoryViewModel: ViewModel(){ 7 | var histArrList: MutableLiveData> = MutableLiveData(ArrayList()) 8 | var listCount: MutableLiveData = MutableLiveData(0) 9 | 10 | companion object { 11 | private var instance: HistoryViewModel? = null 12 | 13 | fun getInstance(): HistoryViewModel { 14 | if (instance == null) { 15 | instance = HistoryViewModel() 16 | } 17 | return instance!! 18 | } 19 | } 20 | } -------------------------------------------------------------------------------- /app/src/main/res/drawable/round_view_timeline_24.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_local_drink_24.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/16.txt: -------------------------------------------------------------------------------- 1 | yetCalc Major Version Upgrade 2 | 3 | v2.0.0 comes with the following features: 4 | 5 | - Redesigned Calculator with scientific mode in both Portrait and Landscape mode 6 | - Customizable Unit Converter with selectable unit groups, unit pins, search and much more... 7 | - Fully Redesigned Programmer mode with new operators and functions. 8 | - Selectable starting mode. 9 | - Shortcuts for home screen with themed icons support. 10 | - New and Improved Settings providing endless customizability. 11 | 12 | Theme Changes 13 | 14 | - New Abyss mode (AMOLED Dark) for those wanting to preserve battery life. 15 | - Material You Support or Dynamic Colors, with 4 unique styles to serve your needs. -------------------------------------------------------------------------------- /app/src/main/res/drawable/round_add_to_home_screen_24.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_speed_24.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_text_snippet_24.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/values/arrays.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Default precision 5 | 1e-60 6 | 1e-99 7 | 1e-323 8 | 9 | 10 | 11 | YYYY-MM-DD 12 | DD-MM-YYYY 13 | DD-YYYY-MM 14 | YYYY-DD-MM 15 | MM-DD-YYYY 16 | MM-YYYY-DD 17 | 18 | 19 | 20 | Default format 21 | dd, MMMM yyyy HH:mm:ss 22 | yyyy, MMMM dd HH:mm:ss 23 | 24 | 25 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_energy_24.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/round_settings_backup_restore_24.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/xml/general_preferences.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 10 | 11 | 18 | 19 | -------------------------------------------------------------------------------- /app/src/androidTest/java/yetzio/yetcalc/ExampleInstrumentedTest.kt: -------------------------------------------------------------------------------- 1 | package yetzio.yetcalc 2 | 3 | import androidx.test.platform.app.InstrumentationRegistry 4 | import androidx.test.ext.junit.runners.AndroidJUnit4 5 | 6 | import org.junit.Test 7 | import org.junit.runner.RunWith 8 | 9 | import org.junit.Assert.* 10 | 11 | /** 12 | * Instrumented test, which will execute on an Android device. 13 | * 14 | * See [testing documentation](http://d.android.com/tools/testing). 15 | */ 16 | @RunWith(AndroidJUnit4::class) 17 | class ExampleInstrumentedTest { 18 | @Test 19 | fun useAppContext() { 20 | // Context of the app under test. 21 | val appContext = InstrumentationRegistry.getInstrumentation().targetContext 22 | assertEquals("yetzio.yetcalc", appContext.packageName) 23 | } 24 | } -------------------------------------------------------------------------------- /app/src/main/res/drawable/round_vibration_24.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/xml/pgpref.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 11 | 12 | 18 | -------------------------------------------------------------------------------- /app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile -------------------------------------------------------------------------------- /app/src/main/res/drawable/round_tune_24.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/round_123_24.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/eye_circle.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_monitor_weight_24.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/round_checklist_24.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/round_recently_used.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_pgshortcut_foreground.xml: -------------------------------------------------------------------------------- 1 | 7 | 11 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_baseline_cyclone_24.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /app/src/main/res/xml/aboutpref.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 9 | 12 | 13 | 14 | 18 | 19 | 20 | 25 | 26 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/you_style3.xml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 13 | 14 | 18 | 22 | 26 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/you_style4.xml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 13 | 14 | 18 | 22 | 26 | -------------------------------------------------------------------------------- /app/src/main/res/layout/list_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 16 | 17 | 28 | 29 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/you_style2.xml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 13 | 14 | 18 | 22 | 26 | 27 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/you_style1.xml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 13 | 14 | 18 | 19 | 23 | 24 | 28 | 29 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/round_volunteer_activism_24.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /fastlane/metadata/android/ru/full_description.txt: -------------------------------------------------------------------------------- 1 | yetCalc это калькулятор с функциями базовых и научных расчетов, конвертером единиц измерения и программным режимом. Дизайн вдохновлён калькулятором от Google и пытается решить его недостатки. 2 | 3 | 4 | 5 | 6 | Возможности: 7 |
    8 |
  • Прогрессивные вычисления
  • 9 |
  • Научный режим с тригонометрическими, гиперболическими и обратными функциями, математическим анализом и итерационными операторами и многим другим.
  • 10 |
  • Конвертер единиц измерения
  • 11 |
  • Режим программиста со системами счисления и логическими операциями.
  • 12 |
  • Научный режим работает как в портретном, так и в режиме ландшафта.
  • 13 |
  • Начальный режим можно выбирать
  • 14 |
  • Можно сделать ярлыки на домашнем экране для запуска в выбранном режиме.
  • 15 |
  • Полностью чёрная тема (Тёмный AMOLED ) для тех кто хочет сохранить срок службы батареи
  • 16 |
  • Поддержка Material You и динамические цвета, с 4 уникальными стилями на ваш вкус.
  • 17 |
  • Бесконечная настраиваемость.
  • 18 |
19 | 20 | 21 | Подключение к Интернету используется только для преобразования валюты и ничего больше. -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_settings.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 14 | 15 | 20 | 21 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/round_cyclone_24abyss.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/round_cyclone_24light.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/full_description.txt: -------------------------------------------------------------------------------- 1 | Calculator with basic and scientific calculation features, a unit converter and a programmer mode. 2 | It's design is inspired by Google's Calculator and tries to address its flaws. 3 | 4 | v2 of yetCalc comes with the following features: 5 | 6 | - Redesigned Calculator with scientific mode in both Portrait and Landscape mode 7 | - Customizable Unit Converter with selectable unit groups, unit pins, search and much more... 8 | - Fully Redesigned Programmer mode with new operators and functions. 9 | - Selectable starting mode. 10 | - Shortcuts for home screen with themed icons support. 11 | - New and Improved Settings providing endless customizability. 12 | - New Abyss mode (AMOLED Dark) for those wanting to preserve battery life. 13 | - Material You Support or Dynamic Colors, with 4 unique styles to serve your needs. 14 | 15 | Features: 16 | 17 | - Progressive Calculations 18 | - Scientific Mode with trigonometric, hyperbolic and inverse functions, calculus and iterated operators, much more. 19 | - Unit Converter 20 | - Programmer Mode with number systems and logical operations. 21 | 22 | NOTE: Internet connection is used for currency conversions and nothing else. 23 | -------------------------------------------------------------------------------- /fastlane/metadata/android/cs/full_description.txt: -------------------------------------------------------------------------------- 1 | yetCalc je kalkulačka se základními a vědeckými funkcemi, převodníkem jednotek a programátorským režimem. Vzhled volně vychází z Kalkulačky Google a pokouší se řešit její problémy. 2 | 3 | v2 aplikace yetCalc obsahuje následující funkce: 4 | - Přepracovaná kalkulačka s vědeckým režimem v režimu na výšku i na šířku. 5 | - Přizpůsobitelný převodník jednotek s volitelnými skupinami jednotek, připnutím jednotek, vyhledáváním a mnoha dalšími funkcemi... 6 | - Kompletně přepracovaný programátorský režim s novými operátory a funkcemi. 7 | - Volitelný režim spuštění. 8 | - Zkratky pro domovskou obrazovku s podporou tematických ikon. 9 | - Nové a vylepšené nastavení poskytující nekonečné možnosti přizpůsobení. 10 | - Nový režim Abyss (tmavý AMOLED) pro ty, kteří chtějí šetřit výdrž baterie. 11 | - Podpora Material You neboli dynamických barev se 4 jedinečnými styly, které poslouží vašim potřebám. 12 | 13 | Funkce: 14 | • Progresivní výpočty 15 | • Vědecký režim s trigonometrickými, hyperbolickými a inverzními funkcemi, kalkulem a iteračními operátory a mnoho dalšího. 16 | • Převodník jednotek 17 | • Programátorský režim s číselnými soustavami a logickými operacemi. 18 | 19 | POZNÁMKA: internetové připojení je použito pouze pro převod měn. -------------------------------------------------------------------------------- /app/src/main/res/drawable/outline_palette_24.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/round_copyright_24.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/round_app_shortcut_24.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/web_off.xml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/outline_light_mode_24.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | # IDE (e.g. Android Studio) users: 3 | # Gradle settings configured through the IDE *will override* 4 | # any settings specified in this file. 5 | # For more details on how to configure your build environment visit 6 | # http://www.gradle.org/docs/current/userguide/build_environment.html 7 | # Specifies the JVM arguments used for the daemon process. 8 | # The setting is particularly useful for tweaking memory settings. 9 | org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 10 | # When configured, Gradle will run in incubating parallel mode. 11 | # This option should only be used with decoupled projects. For more details, visit 12 | # https://developer.android.com/r/tools/gradle-multi-project-decoupled-projects 13 | # org.gradle.parallel=true 14 | # AndroidX package structure to make it clearer which packages are bundled with the 15 | # Android operating system, and which are packaged with your app's APK 16 | # https://developer.android.com/topic/libraries/support-library/androidx-rn 17 | android.useAndroidX=true 18 | # Kotlin code style for this project: "official" or "obsolete": 19 | kotlin.code.style=official 20 | # Enables namespacing of each library's R class so that its R class includes only the 21 | # resources declared in the library itself and none from the library's dependencies, 22 | # thereby reducing the size of the R class for that library 23 | android.nonTransitiveRClass=true -------------------------------------------------------------------------------- /app/src/main/res/drawable/evil.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 11 | 16 | 17 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/round_calculate_24abyss.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/round_calculate_24light.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/layout/unitgrouppreflyt.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 11 | 12 | 22 | 23 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_unitshortcut_foreground.xml: -------------------------------------------------------------------------------- 1 | 7 | 11 | 14 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /app/src/main/res/layout/history_appbar.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 15 | 16 | 31 | 32 | -------------------------------------------------------------------------------- /app/src/main/res/xml/unitconvpref.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 11 | 12 | 19 | 20 | 27 | 28 | 34 | 35 | -------------------------------------------------------------------------------- /app/src/main/java/yetzio/yetcalc/HomeActivity.kt: -------------------------------------------------------------------------------- 1 | package yetzio.yetcalc 2 | 3 | import android.content.Intent 4 | import android.os.Bundle 5 | import androidx.appcompat.app.AppCompatActivity 6 | import yetzio.yetcalc.component.SharedPrefs 7 | import yetzio.yetcalc.component.getDefSharedPrefs 8 | import yetzio.yetcalc.config.ShortcutManager 9 | import yetzio.yetcalc.views.CalculatorActivity 10 | import yetzio.yetcalc.views.ProgramCalcActivity 11 | import yetzio.yetcalc.views.UnitConvActivity 12 | 13 | class HomeActivity : AppCompatActivity() { 14 | 15 | override fun onCreate(savedInstanceState: Bundle?) { 16 | super.onCreate(savedInstanceState) 17 | 18 | val sharedPrefs = getDefSharedPrefs() 19 | val shortcutAdded = sharedPrefs.getBoolean(SharedPrefs.SHORTCUTSADDED, false) 20 | 21 | if(!shortcutAdded){ 22 | val shortcutManager = ShortcutManager(this) 23 | shortcutManager.addAllShortcuts() 24 | } 25 | 26 | val launcherActivity = when (sharedPrefs.getString(SharedPrefs.PREFMODEKEY, getString(R.string.calculator))) { 27 | getString(R.string.calculator) -> CalculatorActivity::class.java 28 | getString(R.string.converter) -> UnitConvActivity::class.java 29 | getString(R.string.programmer) -> ProgramCalcActivity::class.java 30 | else -> CalculatorActivity::class.java 31 | } 32 | 33 | startActivity(Intent(this, launcherActivity)) 34 | finish() 35 | } 36 | } -------------------------------------------------------------------------------- /app/src/main/java/yetzio/yetcalc/adapters/ModeSelectAdapter.kt: -------------------------------------------------------------------------------- 1 | package yetzio.yetcalc.adapters 2 | 3 | import android.content.Context 4 | import android.view.LayoutInflater 5 | import android.view.View 6 | import android.view.ViewGroup 7 | import android.widget.ArrayAdapter 8 | import android.widget.ImageView 9 | import android.widget.TextView 10 | import yetzio.yetcalc.R 11 | import yetzio.yetcalc.utils.getThemeColor 12 | 13 | class ModeSelectAdapter(context: Context, private val items: List>) : 14 | ArrayAdapter>(context, R.layout.list_item, items){ 15 | 16 | override fun getView(position: Int, convertView: View?, parent: ViewGroup): View { 17 | val view = convertView ?: LayoutInflater.from(context).inflate(R.layout.list_item, parent, false) 18 | val item = getItem(position) 19 | 20 | val textview = view.findViewById(R.id.modeselectorTV) 21 | val imageview = view.findViewById(R.id.modeselectorIV) 22 | 23 | textview.text = item?.first 24 | item?.second?.let { imageview.setImageResource(it) } 25 | imageview.setColorFilter(context.getThemeColor(R.attr.calcTextDefaultColor), android.graphics.PorterDuff.Mode.SRC_IN); 26 | 27 | return view 28 | } 29 | 30 | override fun getDropDownView(position: Int, convertView: View?, parent: ViewGroup): View { 31 | return super.getDropDownView(position, convertView, parent) 32 | } 33 | } -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_currency_exchange_24.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/layout/easter_egg.xml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 21 | 22 | 30 | 31 | -------------------------------------------------------------------------------- /DONATE.md: -------------------------------------------------------------------------------- 1 | # Donate 2 | **If you think yetCalc helped you with your calculations, please consider donating to the project.** 3 | 4 | It will be a great help :) 5 | 6 | ## 1. Donate through 'Buy Me a Coffee' 7 | 8 | Buy Me A Coffee 9 | 10 | 11 | ## 2. Donate through Patreon 12 | 13 | [![Support me on Patreon](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Fshieldsio-patreon.vercel.app%2Fapi%3Fusername%3Dyetzio%26type%3Dpatrons&style=flat)](https://patreon.com/yetzio) 14 | 15 | ## 3. Donate by UPI 16 | 17 | Scan the QR code below with an app that supports UPI like Google Pay: 18 | 19 | ![UPIQR](./img/oth/UPIQRcode.png) 20 | 21 | Alternatively, you can even donate by entering the UPI ID below: 22 | 23 | UPI ID: **maheshdeluxe53@okhdfcbank** 24 | 25 | # Donate to F-Droid 26 | 27 | F-Droid is a really amazing alternative to the Google Play Store, as it only offers apps that are free and open source, and yetCalc is one such app as well. 28 | Thanks to its great community of developers, maintainers, and contributors, we can really explore the large abundance of free and open-source apps. 29 | Please consider donating to F-Droid if you can: [Donate to F-Droid](https://f-droid.org/en/donate/) 30 | 31 | # Donate to mXparser 32 | 33 | yetCalc uses mXparser for its calculator part. Show your support and help the developer continue this project. 34 | 35 | [mXparser Donate Page](https://mathparser.org/donate/) 36 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | BSD 3-Clause License 2 | 3 | Copyright (c) 2025, Yet-Zio 4 | All rights reserved. 5 | 6 | Redistribution and use in source and binary forms, with or without 7 | modification, are permitted provided that the following conditions are met: 8 | 9 | 1. Redistributions of source code must retain the above copyright notice, this 10 | list of conditions and the following disclaimer. 11 | 12 | 2. Redistributions in binary form must reproduce the above copyright notice, 13 | this list of conditions and the following disclaimer in the documentation 14 | and/or other materials provided with the distribution. 15 | 16 | 3. Neither the name of the copyright holder nor the names of its 17 | contributors may be used to endorse or promote products derived from 18 | this software without specific prior written permission. 19 | 20 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 21 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 23 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 24 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 25 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 26 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 27 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 28 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 29 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30 | -------------------------------------------------------------------------------- /app/src/main/res/layout/item_unit_group.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 13 | 20 | 21 | 29 | 30 | 37 | 38 | -------------------------------------------------------------------------------- /app/src/main/java/yetzio/yetcalc/config/ActivityTracker.kt: -------------------------------------------------------------------------------- 1 | package yetzio.yetcalc.config 2 | 3 | import android.app.Activity 4 | import android.app.Application 5 | import android.content.Context 6 | import android.os.Bundle 7 | import yetzio.yetcalc.component.SharedPrefs 8 | import yetzio.yetcalc.component.getDefSharedPrefs 9 | 10 | class ActivityTracker(private val appContext: Context) : Application.ActivityLifecycleCallbacks { 11 | private val activeActivities = mutableListOf() 12 | 13 | fun recreateAllActivities() { 14 | activeActivities.forEach { activity -> 15 | activity.recreate() 16 | } 17 | 18 | val sharedPrefs = appContext.getDefSharedPrefs() 19 | val refreshShorts = sharedPrefs.getBoolean(SharedPrefs.REFRESH_SHORTCUT, true) 20 | 21 | if(refreshShorts){ 22 | val shortcuts = ShortcutManager(appContext) 23 | shortcuts.removeAllShortcuts() 24 | 25 | shortcuts.addAllShortcuts() 26 | } 27 | } 28 | 29 | override fun onActivityCreated(activity: Activity, savedInstanceState: Bundle?) { 30 | activeActivities.add(activity) 31 | } 32 | 33 | override fun onActivityDestroyed(activity: Activity) { 34 | activeActivities.remove(activity) 35 | } 36 | 37 | override fun onActivityStarted(activity: Activity) {} 38 | override fun onActivityResumed(activity: Activity) {} 39 | override fun onActivityPaused(activity: Activity) {} 40 | override fun onActivityStopped(activity: Activity) {} 41 | override fun onActivitySaveInstanceState(activity: Activity, outState: Bundle) {} 42 | } 43 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_calcshortcut_foreground.xml: -------------------------------------------------------------------------------- 1 | 7 | 11 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/layout/uc_unit_list_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 15 | 16 | 25 | 26 | 39 | -------------------------------------------------------------------------------- /app/src/main/res/layout/uc_dropsearchdialog.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 17 | 18 | 24 | 25 | 26 | 31 | 32 | 38 | 39 | 40 | -------------------------------------------------------------------------------- /app/src/main/res/layout/settings_appbar.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 18 | 19 | 29 | 30 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /app/src/main/res/layout/app_bar_alt.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 14 | 15 | 21 | 22 | 23 | 24 | 39 | 40 | -------------------------------------------------------------------------------- /app/src/main/java/yetzio/yetcalc/dialogs/EasterEggDialogs.kt: -------------------------------------------------------------------------------- 1 | package yetzio.yetcalc.dialogs 2 | 3 | import android.content.Context 4 | import android.graphics.Bitmap 5 | import android.graphics.BitmapFactory 6 | import android.graphics.drawable.BitmapDrawable 7 | import android.view.LayoutInflater 8 | import android.widget.Toast 9 | import androidx.constraintlayout.widget.ConstraintLayout 10 | import androidx.core.content.ContextCompat 11 | import com.google.android.material.dialog.MaterialAlertDialogBuilder 12 | import com.pranavpandey.android.dynamic.toasts.DynamicToast 13 | import yetzio.yetcalc.R 14 | import yetzio.yetcalc.utils.getThemeColor 15 | 16 | fun showEasterEggDialog(ctx: Context) { 17 | val dialogView = LayoutInflater.from(ctx).inflate(R.layout.easter_egg, null) 18 | 19 | val dialog = MaterialAlertDialogBuilder(ctx) 20 | .setView(dialogView) 21 | .setCancelable(true) 22 | .create() 23 | 24 | val constLayout: ConstraintLayout = dialogView.findViewById(R.id.easterEggFrameContainer) 25 | 26 | val bitmap = BitmapFactory.decodeStream(ctx.assets.open("eastereggbg.png")) 27 | 28 | val scaledBitmap = Bitmap.createScaledBitmap(bitmap, ctx.resources.displayMetrics.widthPixels, bitmap.height * ctx.resources.displayMetrics.widthPixels / bitmap.width, true) 29 | 30 | val drawable = BitmapDrawable(ctx.resources, scaledBitmap) 31 | constLayout.background = drawable 32 | 33 | dialog.window?.setLayout(ConstraintLayout.LayoutParams.MATCH_PARENT, ConstraintLayout.LayoutParams.WRAP_CONTENT) 34 | DynamicToast.make(ctx, ctx.getString(R.string.eastereggtoast), ContextCompat.getDrawable(ctx, R.drawable.gigachad), ctx.getThemeColor(R.attr.calcTextDefaultColor), ctx.getThemeColor(R.attr.calcBackgroundDefault), Toast.LENGTH_LONG).show() 35 | dialog.show() 36 | } 37 | 38 | 39 | -------------------------------------------------------------------------------- /app/src/main/res/xml/calcpref.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 11 | 12 | 18 | 19 | 25 | 26 | 32 | 33 | 39 | 40 | 46 | 47 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_settings_24.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/java/yetzio/yetcalc/enums/CalcModes.kt: -------------------------------------------------------------------------------- 1 | package yetzio.yetcalc.enums 2 | 3 | enum class CalcMode(val str: String?){ 4 | FIRSTMODE("1ST"), 5 | SECONDMODE("2ND"), 6 | THIRDMODE("3RD"), 7 | FOURTHMODE("4TH"), 8 | FIFTHMODE("5TH"), 9 | SIXTHMODE("6TH"), 10 | SEVENTHMODE("7TH"), 11 | EIGHTMODE("8TH"), 12 | NINTHMODE("9TH"); 13 | 14 | companion object{ 15 | fun getMode(modestr: String?): CalcMode{ 16 | when(modestr){ 17 | FIRSTMODE.str -> { 18 | return FIRSTMODE 19 | } 20 | SECONDMODE.str -> { 21 | return SECONDMODE 22 | } 23 | THIRDMODE.str -> { 24 | return THIRDMODE 25 | } 26 | FOURTHMODE.str -> { 27 | return FOURTHMODE 28 | } 29 | FIFTHMODE.str -> { 30 | return FIFTHMODE 31 | } 32 | SIXTHMODE.str -> { 33 | return SIXTHMODE 34 | } 35 | SEVENTHMODE.str -> { 36 | return SEVENTHMODE 37 | } 38 | EIGHTMODE.str -> { 39 | return EIGHTMODE 40 | } 41 | NINTHMODE.str -> { 42 | return NINTHMODE 43 | } 44 | else -> { 45 | return FIRSTMODE 46 | } 47 | } 48 | } 49 | } 50 | } 51 | 52 | enum class AngleMode(val str: String?){ 53 | DEGREE("DEG"), 54 | RADIAN("RAD"); 55 | 56 | companion object{ 57 | fun getMode(modestr: String?): AngleMode{ 58 | when(modestr){ 59 | DEGREE.str -> { 60 | return DEGREE 61 | } 62 | RADIAN.str -> { 63 | return RADIAN 64 | } 65 | else -> { 66 | return RADIAN 67 | } 68 | } 69 | } 70 | } 71 | } -------------------------------------------------------------------------------- /licenses/mXparser/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Simplified BSD License 2 | 3 | Copyright 2010 - 2020 Mariusz Gromada. All rights reserved. 4 | 5 | You may use this software under the condition of Simplified BSD License. 6 | Redistribution and use in source and binary forms, with or without 7 | modification, are permitted provided that the following conditions are met: 8 | 9 | 1. Redistributions of source code must retain the above copyright notice, 10 | this list of conditions and the following disclaimer. 11 | 2. Redistributions in binary form must reproduce the above copyright notice, 12 | this list of conditions and the following disclaimer in the documentation 13 | and/or other materials provided with the distribution. 14 | 15 | THIS SOFTWARE IS PROVIDED BY MARIUSZ GROMADA "AS IS" AND ANY EXPRESS 16 | OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 17 | OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 18 | IN NO EVENT SHALL MARIUSZ GROMADA OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 19 | INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 20 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 21 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 22 | AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 23 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE 24 | USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 | 26 | The views and conclusions contained in the software and documentation 27 | are those of the authors and should not be interpreted as representing 28 | official policies, either expressed or implied, of Mariusz Gromada. 29 | 30 | Mariusz Gromada, MathParser.org 31 | e-mail: mariuszgromada.org@gmail.com 32 | 33 | Please visit: 34 | 35 | MathParser.org-mXparser: 36 | - https://mathparser.org 37 | - https://github.com/mariuszgromada/MathParser.org-mXparser 38 | 39 | Scalar - The Most Advanced Scientific Calculator: 40 | - https://scalarmath.org 41 | - https://play.google.com/store/apps/details?id=org.mathparser.scalar.pro 42 | - https://play.google.com/store/apps/details?id=org.mathparser.scalar.lite 43 | 44 | Science Blog: 45 | - https://mathspace.pl -------------------------------------------------------------------------------- /app/src/main/java/yetzio/yetcalc/component/Calculator.kt: -------------------------------------------------------------------------------- 1 | package yetzio.yetcalc.component 2 | 3 | import org.mariuszgromada.math.mxparser.Expression 4 | import org.mariuszgromada.math.mxparser.Function 5 | import org.mariuszgromada.math.mxparser.mXparser 6 | import yetzio.yetcalc.enums.AngleMode 7 | 8 | class Calculator{ 9 | var angleMode = AngleMode.DEGREE 10 | var almostInt = true 11 | var canonInt = false 12 | var precision = "Default precision" 13 | val m_history = History() 14 | val MAXREP = 9999999 15 | 16 | val ncr = Function("nCr(n, r) = nCk(n, r)") 17 | val npr = Function("nPr(n, r) = nPk(n, r)") 18 | 19 | fun calculate(expr: String): String { 20 | mXparser.setUlpRounding(false) 21 | 22 | when (precision) { 23 | "Default precision" -> mXparser.setDefaultEpsilon() 24 | "1e-60" -> mXparser.setEpsilon(1e-60) 25 | "1e-99" -> mXparser.setEpsilon(1e-99) 26 | "1e-323" -> mXparser.setEpsilon(1e-323) 27 | } 28 | 29 | if(almostInt) 30 | mXparser.setAlmostIntRounding(true) 31 | else 32 | mXparser.setAlmostIntRounding(false) 33 | 34 | if(canonInt) 35 | mXparser.setCanonicalRounding(true) 36 | else 37 | mXparser.setCanonicalRounding(false) 38 | 39 | if (angleMode == AngleMode.DEGREE) { 40 | mXparser.setDegreesMode() 41 | } else if (angleMode == AngleMode.RADIAN) { 42 | mXparser.setRadiansMode() 43 | } 44 | 45 | val grad = if (mXparser.checkIfDegreesMode()) 46 | Function("grad(x) = x * (200/180)") 47 | else 48 | Function("grad(x) = x * (200/pi)") 49 | 50 | val e = Expression(expr, grad, npr, ncr) 51 | 52 | 53 | return if(e.calculate() > MAXREP){ 54 | e.calculate().toString() 55 | } 56 | else if(e.calculate() % 1.0 == 0.0){ 57 | Math.round(e.calculate()).toString() 58 | } 59 | else{ 60 | e.calculate().toString() 61 | } 62 | } 63 | 64 | fun addToHistory(ex: String, res: String) { 65 | m_history.addToDb(ex, res) 66 | } 67 | } -------------------------------------------------------------------------------- /app/src/main/res/values/attrs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /app/src/main/res/xml/root_preferences.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 9 | 10 | 15 | 16 | 21 | 22 | 27 | 28 | 33 | 34 | 37 | 38 | 42 | 45 | 46 | 47 | 52 | 53 | 54 | 55 | 56 | 57 | -------------------------------------------------------------------------------- /app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 21 | 24 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 36 | 39 | 43 | 47 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /app/src/main/res/layout/app_bar.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 14 | 15 | 21 | 22 | 23 | 24 | 34 | 35 | 50 | 51 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/emptyhistory.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /app/build.gradle.kts: -------------------------------------------------------------------------------- 1 | import org.jetbrains.kotlin.gradle.dsl.JvmTarget 2 | 3 | plugins { 4 | alias(libs.plugins.androidApplication) 5 | alias(libs.plugins.jetbrainsKotlinAndroid) 6 | alias(libs.plugins.aboutLibraries) 7 | } 8 | 9 | android { 10 | namespace = "yetzio.yetcalc" 11 | compileSdk = 36 12 | 13 | dependenciesInfo { 14 | includeInApk = false 15 | includeInBundle = false 16 | } 17 | 18 | aboutLibraries { 19 | excludeFields = arrayOf("generated") 20 | } 21 | 22 | androidResources { 23 | generateLocaleConfig = true 24 | } 25 | 26 | defaultConfig { 27 | applicationId = "yetzio.yetcalc" 28 | minSdk = 28 29 | targetSdk = 36 30 | versionCode = 24 31 | versionName = "2.0.8" 32 | 33 | testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" 34 | } 35 | 36 | buildTypes { 37 | release { 38 | isMinifyEnabled = false 39 | proguardFiles( 40 | getDefaultProguardFile("proguard-android-optimize.txt"), 41 | "proguard-rules.pro" 42 | ) 43 | vcsInfo.include = false 44 | } 45 | } 46 | compileOptions { 47 | isCoreLibraryDesugaringEnabled = true 48 | 49 | sourceCompatibility = JavaVersion.VERSION_11 50 | targetCompatibility = JavaVersion.VERSION_11 51 | } 52 | } 53 | 54 | kotlin { 55 | compilerOptions { 56 | jvmTarget = JvmTarget.JVM_11 57 | } 58 | } 59 | 60 | dependencies { 61 | implementation(libs.androidx.activity) 62 | implementation(libs.androidx.constraintlayout) 63 | implementation(libs.androidx.navigation.ui.ktx) 64 | coreLibraryDesugaring(libs.desugar.jdk.libs) 65 | 66 | implementation(libs.mathParser.org.mXparser) 67 | implementation(libs.gson) 68 | 69 | implementation(libs.evalex) 70 | implementation(libs.aboutlibraries.core) 71 | implementation(libs.aboutlibraries) 72 | 73 | implementation(libs.android.dynamic.toasts) 74 | 75 | implementation(libs.androidx.lifecycle.viewmodel.ktx) 76 | implementation(libs.androidx.lifecycle.runtime.ktx) 77 | 78 | implementation(libs.kotlinx.coroutines.core) 79 | implementation(libs.kotlinx.coroutines.android) 80 | 81 | implementation (libs.androidx.preference.ktx) 82 | 83 | implementation(libs.androidx.core.ktx) 84 | implementation(libs.androidx.appcompat) 85 | implementation(libs.material) 86 | testImplementation(libs.junit) 87 | androidTestImplementation(libs.androidx.junit) 88 | androidTestImplementation(libs.androidx.espresso.core) 89 | } -------------------------------------------------------------------------------- /app/src/main/java/yetzio/yetcalc/adapters/HistoryAdapter.kt: -------------------------------------------------------------------------------- 1 | package yetzio.yetcalc.adapters 2 | 3 | import android.app.Activity 4 | import android.content.Intent 5 | import android.view.LayoutInflater 6 | import android.view.View 7 | import android.view.ViewGroup 8 | import androidx.recyclerview.widget.RecyclerView 9 | import com.google.android.material.textview.MaterialTextView 10 | import yetzio.yetcalc.R 11 | import yetzio.yetcalc.models.HistoryItem 12 | import yetzio.yetcalc.utils.setVibOnClick 13 | 14 | class HistoryAdapter( 15 | private val context: Activity, 16 | private val histList: ArrayList 17 | ) : RecyclerView.Adapter() { 18 | 19 | override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): HistoryViewHolder { 20 | val inflater: LayoutInflater = LayoutInflater.from(context) 21 | val view: View = inflater.inflate(R.layout.history_list_item, parent, false) 22 | return HistoryViewHolder(view) 23 | } 24 | 25 | override fun onBindViewHolder(holder: HistoryViewHolder, position: Int) { 26 | val historyItem = histList[position] 27 | holder.bind(historyItem) 28 | } 29 | 30 | override fun getItemCount(): Int = histList.size 31 | 32 | inner class HistoryViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { 33 | private val timestampView: MaterialTextView = itemView.findViewById(R.id.timestamptext) 34 | private val expView: MaterialTextView = itemView.findViewById(R.id.histexp) 35 | private val resView: MaterialTextView = itemView.findViewById(R.id.histres) 36 | 37 | fun bind(historyItem: HistoryItem) { 38 | timestampView.text = historyItem.timestamp 39 | expView.text = historyItem.expression 40 | resView.text = historyItem.result 41 | 42 | expView.setOnClickListener { 43 | setVibOnClick(context.applicationContext) 44 | val intent = Intent().apply { 45 | putExtra("expression", expView.text.toString()) 46 | } 47 | context.setResult(Activity.RESULT_OK, intent) 48 | context.finish() 49 | } 50 | 51 | resView.setOnClickListener { 52 | setVibOnClick(context.applicationContext) 53 | val intent = Intent().apply { 54 | putExtra("result", resView.text.toString()) 55 | } 56 | context.setResult(Activity.RESULT_OK, intent) 57 | context.finish() 58 | } 59 | } 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /app/src/main/java/yetzio/yetcalc/views/HistoryActivity.kt: -------------------------------------------------------------------------------- 1 | package yetzio.yetcalc.views 2 | 3 | import android.os.Bundle 4 | import android.view.View 5 | import android.widget.LinearLayout 6 | import androidx.recyclerview.widget.LinearLayoutManager 7 | import androidx.recyclerview.widget.RecyclerView 8 | import com.google.android.material.appbar.MaterialToolbar 9 | import com.google.android.material.button.MaterialButton 10 | import yetzio.yetcalc.R 11 | import yetzio.yetcalc.adapters.HistoryAdapter 12 | import yetzio.yetcalc.config.CalcBaseActivity 13 | import yetzio.yetcalc.utils.getThemeColor 14 | import yetzio.yetcalc.utils.setVibOnClick 15 | 16 | class HistoryActivity : CalcBaseActivity() { 17 | private lateinit var toolbar: MaterialToolbar 18 | private lateinit var histListView: RecyclerView 19 | private lateinit var clearBt: MaterialButton 20 | private lateinit var nohistorycontainer: LinearLayout 21 | 22 | override fun onCreate(savedInstanceState: Bundle?) { 23 | super.onCreate(savedInstanceState) 24 | setContentView(R.layout.activity_history) 25 | 26 | toolbar = findViewById(R.id.app_bar) 27 | setSupportActionBar(toolbar) 28 | nohistorycontainer = findViewById(R.id.nohistorycontainer) 29 | 30 | supportActionBar?.setDisplayShowTitleEnabled(false) 31 | supportActionBar?.setDisplayHomeAsUpEnabled(true) 32 | supportActionBar?.setDisplayShowHomeEnabled(true) 33 | 34 | toolbar.setNavigationOnClickListener { 35 | finish() 36 | } 37 | toolbar.navigationIcon?.setTint(getThemeColor(R.attr.calcTextDefaultColor)) 38 | 39 | histListView = findViewById(R.id.historyContainer) 40 | histListView.layoutManager = LinearLayoutManager(this) 41 | 42 | Calc.m_history.histViewModel?.histArrList?.observe(this) { newlist -> 43 | histListView.adapter = HistoryAdapter(this, newlist) 44 | if(newlist.isNotEmpty()){ 45 | nohistorycontainer.visibility = View.GONE 46 | histListView.visibility = View.VISIBLE 47 | } 48 | } 49 | 50 | Calc.m_history.histViewModel?.listCount?.observe(this) { newcount -> 51 | Calc.m_history.histViewModel?.histArrList?.value = Calc.m_history.getHistoryItems() 52 | } 53 | 54 | clearBt = findViewById(R.id.histdelbutton) 55 | clearBt.setOnClickListener { 56 | setVibOnClick(applicationContext) 57 | Calc.m_history.emptyDB() 58 | histListView.adapter = HistoryAdapter(this, ArrayList()) 59 | 60 | histListView.visibility = View.GONE 61 | nohistorycontainer.visibility = View.VISIBLE 62 | } 63 | } 64 | } -------------------------------------------------------------------------------- /app/src/main/java/yetzio/yetcalc/views/SettingsActivity.kt: -------------------------------------------------------------------------------- 1 | package yetzio.yetcalc.views 2 | 3 | import android.content.Context 4 | import android.os.Bundle 5 | import androidx.preference.Preference 6 | import androidx.preference.PreferenceCategory 7 | import com.google.android.material.appbar.AppBarLayout 8 | import com.google.android.material.appbar.CollapsingToolbarLayout 9 | import com.google.android.material.appbar.MaterialToolbar 10 | import yetzio.yetcalc.R 11 | import yetzio.yetcalc.config.CalcBaseActivity 12 | import yetzio.yetcalc.utils.getThemeColor 13 | import yetzio.yetcalc.views.preferences.SettingsFragment 14 | 15 | class SettingsActivity : CalcBaseActivity() { 16 | 17 | private lateinit var toolbar: MaterialToolbar 18 | private lateinit var collapseBar: CollapsingToolbarLayout 19 | private lateinit var appbarlyt: AppBarLayout 20 | 21 | override fun onCreate(savedInstanceState: Bundle?) { 22 | super.onCreate(savedInstanceState) 23 | setContentView(R.layout.activity_settings) 24 | 25 | if (savedInstanceState == null) { 26 | supportFragmentManager 27 | .beginTransaction() 28 | .replace(R.id.settingslyt, SettingsFragment()) 29 | .commit() 30 | } 31 | 32 | toolbar = findViewById(R.id.settingsMaterialToolbar) 33 | collapseBar = findViewById(R.id.settingsCollapseToolbar) 34 | appbarlyt = findViewById(R.id.settings_app_bar) 35 | 36 | // Handle the navigation button in the toolbar 37 | toolbar.setNavigationOnClickListener { 38 | if (supportFragmentManager.backStackEntryCount > 0) { 39 | supportFragmentManager.popBackStack() 40 | } else { 41 | finish() 42 | } 43 | } 44 | 45 | } 46 | 47 | fun setTitle(title: String) { 48 | toolbar.title = title 49 | collapseBar.title = title 50 | } 51 | 52 | fun collapseAppBar(){ 53 | appbarlyt.setExpanded(false, true) 54 | } 55 | 56 | fun expandAppBar(){ 57 | appbarlyt.post{ 58 | appbarlyt.setExpanded(true, true) 59 | } 60 | } 61 | 62 | fun applyIconTint(preference: Preference, ctx: Context) { 63 | preference.icon?.let { icon -> 64 | val tintedIcon = icon.mutate() 65 | val tint = ctx.getThemeColor(R.attr.calcTextDefaultColor) 66 | tintedIcon.setTint(tint) 67 | preference.icon = tintedIcon 68 | } 69 | 70 | if (preference is PreferenceCategory) { 71 | for (i in 0 until preference.preferenceCount) { 72 | applyIconTint(preference.getPreference(i), ctx) 73 | } 74 | } 75 | } 76 | 77 | } 78 | -------------------------------------------------------------------------------- /app/src/main/res/layout/no_internet.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 12 | 13 | 20 | 21 | 30 | 31 | 39 | 40 | 48 | 49 | 60 | 61 | 62 | 63 | -------------------------------------------------------------------------------- /app/src/main/res/layout/app_bar_alt_land.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 14 | 15 | 21 | 22 | 23 | 24 | 35 | 36 | 46 | 47 | 62 | 63 | -------------------------------------------------------------------------------- /app/src/main/res/layout/precisionlayout.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 18 | 19 | 23 | 24 | 36 | 37 | 38 | 39 | 40 | 52 | 53 | 62 | 63 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_history.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 13 | 14 | 20 | 21 | 28 | 29 | 34 | 35 | 41 | 42 | 52 | 53 | 62 | 63 | 64 | 65 | 66 | 67 | --------------------------------------------------------------------------------