Skip to content

Commit

Permalink
Merge pull request #147 from Yet-Zio/v2.0.0
Browse files Browse the repository at this point in the history
v2.0.0
  • Loading branch information
Yet-Zio authored Nov 26, 2024
2 parents 3d174d7 + 9e12196 commit e9356f2
Show file tree
Hide file tree
Showing 451 changed files with 15,669 additions and 9,998 deletions.
24 changes: 0 additions & 24 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,27 +13,3 @@
.externalNativeBuild
.cxx
local.properties

# Compiled class file
*.class

# Log file
*.log

# BlueJ files
*.ctxt

# Mobile Tools for Java (J2ME)
.mtj.tmp/

# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar

# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
16 changes: 8 additions & 8 deletions HELP.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,14 @@

1. How to turn off vibrations/haptic feedback?

Go to Settings -> Turn the switch off for disabling Haptic Feedback
Go to Settings > General > Turn the switch off for disabling Haptic Feedback

## Calculator

1. How do I access Scientific mode?

Scientific mode can only be viewed if you are in landscape orientation.
In Portrait mode, just toggle the arrow to view scientific mode.
In Landscape mode, the default is scientific view.

2. Some constants/values do not work or yield to 0?

Expand Down Expand Up @@ -46,23 +47,22 @@
6. The screen gets cuts off and the buttons look weird?

You might have a really small screen to support this app. Minimum 5 or 5.5 inches is required since the buttons, result, progressive result tab take up space. We are extremely sorry. Nowadays, vendors provide devices with larger screen sizes so this is not a concerning issue but still this feels bad.

NOTE: On taller screens and foldables, only the buttons may look weird(like crushed or oval shaped). We promise to provide a layout with support for larger screens/resolutions.

## Converter

1. Does the converter require an Internet connections?

An internet connection is only required for currency conversions and nothing else. All other conversions should work fine without it.
You can even remove the currency feature if you don't need it from Settings.

2. Currency conversion takes longer than others?

Yes, this is because when you enter data, an API request is made to [fawazahmed0/currency-api](https://github.com/fawazahmed0/currency-api) So this depends upon your internet connection speed, the value entered, the currencies selected on both sides.

3. Does the converter remember the last tab and units I used?
3. Does the converter remember the last group and units I used?

Yes, the converter does remember the last tab you opened if you have enabled 'Use Recent Tab' in Settings.
However, the units are not remembered since there are some issues with spinner(combobox/unit selector).
In older version of yetCalc, this didn't used to be the case but now yetCalc will remember the last unit and group.
You can enable/disable this feature from Settings > Unit Converter > Recently Used Group and Recently Used Units

4. Is there a limit to the unit you can type?

Expand Down Expand Up @@ -105,7 +105,7 @@
Very well, why didn't I use some other vendor's calculator, like Samsung or Xiaomi. Yea Samsung's Calculator is pretty good and Xiaomi's one is even better. Samsung's one provides progressive calculations, simple and scientific features, history, a good converter etc. But it suffers from the same things Google's does, more effort has not been put into adding more scientific features like more functions, constants. As a
company they could have added a graphing, programmer modes as well. Well, its not my calculator right?

Talking about Xiaomi's one, this one's a pretty good one too, provides even more converters. But on the other side, the same mistake to not add more scientific features like the one's I mentioned for Samsung's and Google's one. Just look at this [calculator](https://play.google.com/store/apps/details?id=cz.hipercalc) and see how many features it contains, even has a pro version or look at this [one](https://play.google.com/store/apps/details?id=org.mathparser.scalar.lite&pcampaignid=MKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1). Now that's what I call a good calculator, it might not have everything but atleast some effort is put into it. You can argue it doesn't have a user/beginner-friendly UI for someone coming from a different calculator, and that's a valid point too.
Talking about Xiaomi's, this one's a pretty good one too, provides even more converters. But on the other side, the same mistake to not add more scientific features. Just look at this [calculator](https://play.google.com/store/apps/details?id=cz.hipercalc) and see how many features it contains, even has a pro version or look at this [one](https://play.google.com/store/apps/details?id=org.mathparser.scalar.lite&pcampaignid=MKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1). Now that's what I call a good calculator, it might not have everything but atleast some effort is put into it. You can argue it doesn't have a user/beginner-friendly UI for someone coming from a different calculator, and that's a valid point too.

Now if you want to look at a good calculator which is user-friendly and provides a ton of features, look at Microsoft's new [Windows Calculator](https://apps.microsoft.com/store/detail/windows-calculator/9WZDNCRFHVN5). It even has date calculation and graphing, some which I didn't even add to yetCalc(at the time of writing). It's even open source on [github](https://github.com/Microsoft/calculator)

Expand Down
55 changes: 37 additions & 18 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,41 @@
[![Donate](https://img.shields.io/badge/$-support-ff69b4.svg?style=flat)](https://www.buymeacoffee.com/yetzio)

</div>
<p align="center">
<img src="./img/icons/appico.png?raw=true" alt="yetCalc Icon" width="60" height="60"/>
</p>

<h1 align="center">yetCalc</h1>
<img src="fastlane/metadata/android/en-US/images/featureGraphic.png" alt="yetCalc Brand" style="display: block; margin: 0 auto 30px;">

The free and open source calculator developed for Android 5.0 and above using Kotlin. yetCalc's calculator mode uses the [mXparser](https://mathparser.org/) library. Large calculations are handled without device freezing and other issues, although some calculations might take time.
<div>
<img alt="Screenshot" src="fastlane/metadata/android/en-US/images/phoneScreenshots/1.png" width="24%"/>
<img alt="Screenshot" src="fastlane/metadata/android/en-US/images/phoneScreenshots/2.png" width="24%"/>
<img alt="Screenshot" src="fastlane/metadata/android/en-US/images/phoneScreenshots/3.png" width="24%"/>
<img alt="Screenshot" src="fastlane/metadata/android/en-US/images/phoneScreenshots/4.png" width="24%"/>
</div>
<div>
<img alt="Screenshot" src="fastlane/metadata/android/en-US/images/phoneScreenshots/5.png" width="24%"/>
<img alt="Screenshot" src="fastlane/metadata/android/en-US/images/phoneScreenshots/6.png" width="24%"/>
<img alt="Screenshot" src="fastlane/metadata/android/en-US/images/phoneScreenshots/7.png" width="24%"/>
<img alt="Screenshot" src="fastlane/metadata/android/en-US/images/phoneScreenshots/8.png" width="24%"/>
</div>

## Major Version Upgrade

yetCalc v2.0.0 comes with the following features:

- Redesigned Calculator with scientific mode in both Portrait and Landscape mode
- Customizable Unit Converter with selectable unit groups, unit pins, search and much more...
- Fully Redesigned Programmer mode with new operators and functions.
- Selectable starting mode.
- Shortcuts for home screen with themed icons support.
- New and Improved Settings providing endless customizability.

![yetCalc About](./img/snaps/calcbrand.png)
Theme Changes

- New Abyss mode (AMOLED Dark) for those wanting to preserve battery life.
- Material You Support or Dynamic Colors, with 4 unique styles to serve your needs.

## Requirements

- Android 9.0 or above.

## Modes

Expand All @@ -28,17 +54,12 @@ The free and open source calculator developed for Android 5.0 and above using Ko
- System Theme(default)
- Dark mode🌃
- Light mode🏙️
- Abyss mode (AMOLED Dark)
- Material You (Dynamic Colors)


- Calculator

<p align="center">
<img src="./img/snaps/snap2.png?raw=true" alt="yetCalc Landscape" width="575" height="279"/>
</p>
<p align="center">
<img src="./img/snaps/lightsnap2.png?raw=true" alt="yetCalc Landscape" width="575" height="279"/>
</p>

- Support for all basic operators.
- Progressive calculations.```(results appear on top and change side by side as you change the expression)```
- Provides commonly used constants.```(Some constants might result to 0 if precision setting is not high)```
Expand All @@ -51,8 +72,6 @@ The free and open source calculator developed for Android 5.0 and above using Ko

<br>

**DO NOTE**: Inorder to use scientific features, the device should be in landscape mode.

- Unit Converter
- **Currency**: Conversions are handled through [fawazahmed0/currency-api](https://github.com/fawazahmed0/currency-api) and requires an Internet connection.
- **Length**: Conversions to and from Femtometres, Picometres, Nanometres, Micrometres, Millimetres, Centimetres, Decimetres, Metres, Decametres, Hectometres, Kilometres, Inches, Feet, Yards, Miles, Nautical Miles, Megametres, Gigametres, Terametres, Petametres, Furlongs
Expand All @@ -68,9 +87,9 @@ The free and open source calculator developed for Android 5.0 and above using Ko
- **Angle**: Degrees, Radians, Gradians, Turns, Milliradians, Minutes of arc, Seconds of arc
- **Data**: Bits, Nibbles, Crumbs, Bytes, Kilobits, Kibibits, Megabits, Mebibits, Gigabits, Gibibits, Terabits, Tebibits, Petabits, Pebibits, Exabits, Exbibits, Zetabits, Zebibits, Yottabits, Yobibits, Kilobytes, Kibibytes, Megabytes, Mebibytes, Gigabytes, Gibibytes, Terabytes, Tebibytes, Petabytes, Pebibytes, Exabytes, Exbibytes, Zetabytes, Zebibytes, Yottabytes, Yobibytes

- Programmer(Extended from this [implementation](https://github.com/agam23/programmers-calculator-in-kotlin))
- Programmer (Implemented using EvalEx)
- Provides all basic operators like +, -, ×, ÷
- Provides logical operators like AND, OR, NOT, NAND, NOR, XOR
- Provides bitwise operators like AND, OR, NOT, NAND, NOR, XOR, XNOR, URSH, RoL, RoR
- Provides operations like left shift(<<) and right shift(>>)
- Support for commonly used number systems: Binary, Octal, Decimal and Hexadecimal

Expand All @@ -84,7 +103,7 @@ The free and open source calculator developed for Android 5.0 and above using Ko

Or download the app from the [releases page](https://github.com/Yet-Zio/yetCalc/releases/latest).

Note: Requires Android 5.0 and above.
Note: Requires Android 9.0 and above.

Also, only download the app from sources provided by the developer.

Expand Down
79 changes: 0 additions & 79 deletions app/build.gradle

This file was deleted.

71 changes: 71 additions & 0 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
plugins {
alias(libs.plugins.androidApplication)
alias(libs.plugins.jetbrainsKotlinAndroid)
alias(libs.plugins.aboutLibraries)
}

android {
namespace = "yetzio.yetcalc"
compileSdk = 35

defaultConfig {
applicationId = "yetzio.yetcalc"
minSdk = 28
targetSdk = 35
versionCode = 16
versionName = "2.0.0"

testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}

buildTypes {
release {
isMinifyEnabled = false
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
vcsInfo.include = false
}
}
compileOptions {
isCoreLibraryDesugaringEnabled = true

sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
kotlinOptions {
jvmTarget = "11"
}
}

dependencies {
implementation(libs.androidx.activity)
implementation(libs.androidx.constraintlayout)
implementation(libs.androidx.navigation.ui.ktx)
coreLibraryDesugaring(libs.desugar.jdk.libs)

implementation(libs.mathParser.org.mXparser)
implementation(libs.gson)

implementation(libs.evalex)
implementation(libs.aboutlibraries.core)
implementation(libs.aboutlibraries)

implementation(libs.android.dynamic.toasts)

implementation(libs.androidx.lifecycle.viewmodel.ktx)
implementation(libs.androidx.lifecycle.runtime.ktx)

implementation(libs.kotlinx.coroutines.core)
implementation(libs.kotlinx.coroutines.android)

implementation (libs.androidx.preference.ktx)

implementation(libs.androidx.core.ktx)
implementation(libs.androidx.appcompat)
implementation(libs.material)
testImplementation(libs.junit)
androidTestImplementation(libs.androidx.junit)
androidTestImplementation(libs.androidx.espresso.core)
}
Loading

0 comments on commit e9356f2

Please sign in to comment.