feat: add calculator to app
This commit is contained in:
parent
0008da200a
commit
143eed8cb2
14 changed files with 776 additions and 5 deletions
9
app/src/main/res/drawable/rounded_bottom_corners.xml
Normal file
9
app/src/main/res/drawable/rounded_bottom_corners.xml
Normal file
|
@ -0,0 +1,9 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<solid android:color="?attr/colorSurfaceVariant" />
|
||||
<corners
|
||||
android:topLeftRadius="0dp"
|
||||
android:topRightRadius="0dp"
|
||||
android:bottomLeftRadius="16dp"
|
||||
android:bottomRightRadius="16dp" />
|
||||
</shape>
|
9
app/src/main/res/drawable/rounded_top_corners.xml
Normal file
9
app/src/main/res/drawable/rounded_top_corners.xml
Normal file
|
@ -0,0 +1,9 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<solid android:color="?attr/colorSurfaceVariant" />
|
||||
<corners
|
||||
android:topLeftRadius="16dp"
|
||||
android:topRightRadius="16dp"
|
||||
android:bottomLeftRadius="0dp"
|
||||
android:bottomRightRadius="0dp" />
|
||||
</shape>
|
383
app/src/main/res/layout/activity_calc.xml
Normal file
383
app/src/main/res/layout/activity_calc.xml
Normal file
|
@ -0,0 +1,383 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@color/bg">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/mainContainer"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginTop="32dp"
|
||||
android:layout_gravity="bottom|center_horizontal"
|
||||
android:background="@color/bg"
|
||||
android:orientation="vertical"
|
||||
tools:context=".MainActivity">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginHorizontal="8dp"
|
||||
android:layout_marginBottom="32dp"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/display"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="32dp"
|
||||
android:layout_marginEnd="32dp"
|
||||
android:background="@drawable/rounded_top_corners"
|
||||
android:gravity="end"
|
||||
android:maxLines="1"
|
||||
android:textColor="?attr/colorOnSurfaceVariant"
|
||||
android:textSize="48sp"
|
||||
tools:ignore="ButtonStyle,HardcodedText" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/displayBinary"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="32dp"
|
||||
android:layout_marginTop="2dp"
|
||||
android:layout_marginEnd="32dp"
|
||||
android:background="?attr/colorSurfaceVariant"
|
||||
android:gravity="end"
|
||||
android:maxLines="1"
|
||||
android:textColor="?attr/colorOnSurfaceVariant"
|
||||
android:textSize="28sp"
|
||||
tools:ignore="ButtonStyle,HardcodedText" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/displayHex"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="32dp"
|
||||
android:layout_marginTop="2dp"
|
||||
android:layout_marginEnd="32dp"
|
||||
android:background="@drawable/rounded_bottom_corners"
|
||||
android:gravity="end"
|
||||
android:maxLines="1"
|
||||
android:textColor="?attr/colorOnSurfaceVariant"
|
||||
android:textSize="28sp"
|
||||
tools:ignore="ButtonStyle,HardcodedText" />
|
||||
</LinearLayout>
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/fillerLayout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:layout_weight="1" />
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal|bottom"
|
||||
android:orientation="vertical">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="16dp"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<Button
|
||||
android:id="@+id/button7"
|
||||
android:layout_width="70dp"
|
||||
android:layout_height="64dp"
|
||||
android:layout_gravity="bottom|end"
|
||||
android:backgroundTint="?attr/colorSurfaceVariant"
|
||||
android:elegantTextHeight="true"
|
||||
android:text="7"
|
||||
android:textColor="?attr/colorOnSurfaceVariant"
|
||||
app:cornerRadius="16dp"
|
||||
android:textSize="20sp"
|
||||
android:textStyle="bold"
|
||||
tools:ignore="ButtonStyle,HardcodedText" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/button8"
|
||||
android:layout_width="70dp"
|
||||
android:layout_height="64dp"
|
||||
android:layout_gravity="bottom|end"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:backgroundTint="?attr/colorSurfaceVariant"
|
||||
android:elegantTextHeight="true"
|
||||
android:text="8"
|
||||
android:textColor="?attr/colorOnSurfaceVariant"
|
||||
app:cornerRadius="16dp"
|
||||
android:textSize="20sp"
|
||||
android:textStyle="bold"
|
||||
tools:ignore="ButtonStyle,HardcodedText" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/button9"
|
||||
android:layout_width="70dp"
|
||||
android:layout_height="64dp"
|
||||
android:layout_gravity="bottom|end"
|
||||
android:backgroundTint="?attr/colorSurfaceVariant"
|
||||
android:elegantTextHeight="true"
|
||||
android:text="9"
|
||||
android:textColor="?attr/colorOnSurfaceVariant"
|
||||
app:cornerRadius="16dp"
|
||||
android:textSize="20sp"
|
||||
android:textStyle="bold"
|
||||
tools:ignore="ButtonStyle,HardcodedText" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/buttonDivide"
|
||||
android:layout_width="70dp"
|
||||
android:layout_height="64dp"
|
||||
android:layout_gravity="bottom|end"
|
||||
android:layout_marginStart="16dp"
|
||||
android:backgroundTint="?attr/colorPrimary"
|
||||
android:elegantTextHeight="true"
|
||||
android:text="÷"
|
||||
android:textColor="?attr/colorOnPrimary"
|
||||
app:cornerRadius="16dp"
|
||||
android:textSize="20sp"
|
||||
android:textStyle="bold"
|
||||
tools:ignore="ButtonStyle,HardcodedText" />
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="16dp"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<Button
|
||||
android:id="@+id/button4"
|
||||
android:layout_width="70dp"
|
||||
android:layout_height="64dp"
|
||||
android:layout_gravity="bottom|end"
|
||||
android:backgroundTint="?attr/colorSurfaceVariant"
|
||||
android:elegantTextHeight="true"
|
||||
android:text="4"
|
||||
android:textColor="?attr/colorOnSurfaceVariant"
|
||||
app:cornerRadius="16dp"
|
||||
android:textSize="20sp"
|
||||
android:textStyle="bold"
|
||||
tools:ignore="ButtonStyle,HardcodedText" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/button5"
|
||||
android:layout_width="70dp"
|
||||
android:layout_height="64dp"
|
||||
android:layout_gravity="bottom|end"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:backgroundTint="?attr/colorSurfaceVariant"
|
||||
android:elegantTextHeight="true"
|
||||
android:text="5"
|
||||
android:textColor="?attr/colorOnSurfaceVariant"
|
||||
app:cornerRadius="16dp"
|
||||
android:textSize="20sp"
|
||||
android:textStyle="bold"
|
||||
tools:ignore="ButtonStyle,HardcodedText" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/button6"
|
||||
android:layout_width="70dp"
|
||||
android:layout_height="64dp"
|
||||
android:layout_gravity="bottom|end"
|
||||
android:backgroundTint="?attr/colorSurfaceVariant"
|
||||
android:elegantTextHeight="true"
|
||||
android:text="6"
|
||||
android:textColor="?attr/colorOnSurfaceVariant"
|
||||
app:cornerRadius="16dp"
|
||||
android:textSize="20sp"
|
||||
android:textStyle="bold"
|
||||
tools:ignore="ButtonStyle,HardcodedText" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/buttonMultiply"
|
||||
android:layout_width="70dp"
|
||||
android:layout_height="64dp"
|
||||
android:layout_gravity="bottom|end"
|
||||
android:layout_marginStart="16dp"
|
||||
android:backgroundTint="?attr/colorPrimary"
|
||||
android:elegantTextHeight="true"
|
||||
android:text="×"
|
||||
android:textColor="?attr/colorOnPrimary"
|
||||
app:cornerRadius="16dp"
|
||||
android:textSize="20sp"
|
||||
android:textStyle="bold"
|
||||
tools:ignore="ButtonStyle,HardcodedText" />
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="16dp"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<Button
|
||||
android:id="@+id/button1"
|
||||
android:layout_width="70dp"
|
||||
android:layout_height="64dp"
|
||||
android:layout_gravity="bottom|end"
|
||||
android:backgroundTint="?attr/colorSurfaceVariant"
|
||||
android:elegantTextHeight="true"
|
||||
android:text="1"
|
||||
android:textColor="?attr/colorOnSurfaceVariant"
|
||||
app:cornerRadius="16dp"
|
||||
android:textSize="20sp"
|
||||
android:textStyle="bold"
|
||||
tools:ignore="ButtonStyle,HardcodedText" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/button2"
|
||||
android:layout_width="70dp"
|
||||
android:layout_height="64dp"
|
||||
android:layout_gravity="bottom|end"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:backgroundTint="?attr/colorSurfaceVariant"
|
||||
android:elegantTextHeight="true"
|
||||
android:text="2"
|
||||
android:textColor="?attr/colorOnSurfaceVariant"
|
||||
app:cornerRadius="16dp"
|
||||
android:textSize="20sp"
|
||||
android:textStyle="bold"
|
||||
tools:ignore="ButtonStyle,HardcodedText" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/button3"
|
||||
android:layout_width="70dp"
|
||||
android:layout_height="64dp"
|
||||
android:layout_gravity="bottom|end"
|
||||
android:backgroundTint="?attr/colorSurfaceVariant"
|
||||
android:elegantTextHeight="true"
|
||||
android:text="3"
|
||||
android:textColor="?attr/colorOnSurfaceVariant"
|
||||
app:cornerRadius="16dp"
|
||||
android:textSize="20sp"
|
||||
android:textStyle="bold"
|
||||
tools:ignore="ButtonStyle,HardcodedText" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/buttonSubtract"
|
||||
android:layout_width="70dp"
|
||||
android:layout_height="64dp"
|
||||
android:layout_gravity="bottom|end"
|
||||
android:layout_marginStart="16dp"
|
||||
android:backgroundTint="?attr/colorPrimary"
|
||||
android:elegantTextHeight="true"
|
||||
android:text="−"
|
||||
android:textColor="?attr/colorOnPrimary"
|
||||
app:cornerRadius="16dp"
|
||||
android:textSize="20sp"
|
||||
android:textStyle="bold"
|
||||
tools:ignore="ButtonStyle,HardcodedText" />
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="16dp"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<Button
|
||||
android:id="@+id/button0"
|
||||
android:layout_width="70dp"
|
||||
android:layout_height="64dp"
|
||||
android:layout_gravity="bottom|end"
|
||||
android:backgroundTint="?attr/colorSurfaceVariant"
|
||||
android:elegantTextHeight="true"
|
||||
android:text="0"
|
||||
android:textColor="?attr/colorOnSurfaceVariant"
|
||||
app:cornerRadius="16dp"
|
||||
android:textSize="20sp"
|
||||
android:textStyle="bold"
|
||||
tools:ignore="ButtonStyle,HardcodedText" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/buttonDot"
|
||||
android:layout_width="70dp"
|
||||
android:layout_height="64dp"
|
||||
android:layout_gravity="bottom|end"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:backgroundTint="?attr/colorSurfaceVariant"
|
||||
android:elegantTextHeight="true"
|
||||
android:text="."
|
||||
android:textColor="?attr/colorOnSurfaceVariant"
|
||||
app:cornerRadius="16dp"
|
||||
android:textSize="20sp"
|
||||
android:textStyle="bold"
|
||||
tools:ignore="ButtonStyle,HardcodedText" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/buttonBackspace"
|
||||
android:layout_width="70dp"
|
||||
android:layout_height="64dp"
|
||||
android:layout_gravity="bottom|end"
|
||||
android:backgroundTint="?attr/colorSurfaceVariant"
|
||||
android:elegantTextHeight="true"
|
||||
android:text="⌫"
|
||||
android:textColor="?attr/colorOnSurfaceVariant"
|
||||
app:cornerRadius="16dp"
|
||||
android:textSize="20sp"
|
||||
android:textStyle="bold"
|
||||
tools:ignore="ButtonStyle,HardcodedText" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/buttonAdd"
|
||||
android:layout_width="70dp"
|
||||
android:layout_height="64dp"
|
||||
android:layout_gravity="bottom|end"
|
||||
android:layout_marginStart="16dp"
|
||||
android:backgroundTint="?attr/colorPrimary"
|
||||
android:elegantTextHeight="true"
|
||||
android:text="+"
|
||||
android:textColor="?attr/colorOnPrimary"
|
||||
app:cornerRadius="16dp"
|
||||
android:textSize="20sp"
|
||||
android:textStyle="bold"
|
||||
tools:ignore="ButtonStyle,HardcodedText" />
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginTop="16dp"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<Button
|
||||
android:id="@+id/buttonClear"
|
||||
android:layout_width="70dp"
|
||||
android:layout_height="64dp"
|
||||
android:layout_gravity="bottom|end"
|
||||
android:layout_marginTop="16dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:backgroundTint="?attr/colorPrimary"
|
||||
android:elegantTextHeight="true"
|
||||
android:text="C"
|
||||
android:textColor="?attr/colorOnPrimary"
|
||||
app:cornerRadius="16dp"
|
||||
android:textSize="20sp"
|
||||
android:textStyle="bold"
|
||||
tools:ignore="ButtonStyle,HardcodedText" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/buttonEquals"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="64dp"
|
||||
android:layout_gravity="bottom|end"
|
||||
android:layout_marginTop="16dp"
|
||||
android:backgroundTint="?attr/colorPrimary"
|
||||
android:elegantTextHeight="true"
|
||||
android:text="="
|
||||
android:textColor="?attr/colorOnPrimary"
|
||||
app:cornerRadius="16dp"
|
||||
android:textSize="20sp"
|
||||
android:textStyle="bold"
|
||||
tools:ignore="ButtonStyle,HardcodedText" />
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
</FrameLayout>
|
25
app/src/main/res/layout/dialog_set_password.xml
Normal file
25
app/src/main/res/layout/dialog_set_password.xml
Normal file
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:padding="16dp">
|
||||
|
||||
<EditText
|
||||
android:id="@+id/passwordInput"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:hint="@string/enter_password"
|
||||
android:maxLength="32"
|
||||
android:inputType="numberPassword" />
|
||||
|
||||
<EditText
|
||||
android:id="@+id/confirmPasswordInput"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:hint="@string/confirm_password"
|
||||
android:inputType="numberPassword"
|
||||
android:maxLength="32"
|
||||
android:layout_marginTop="16dp" />
|
||||
|
||||
</LinearLayout>
|
|
@ -557,7 +557,7 @@
|
|||
<!-- theme 9 -->
|
||||
<color name="seed_9">#c9000b</color>
|
||||
<color name="md_theme_light_9_primary">#FF9800</color>
|
||||
<color name="md_theme_light_9_onPrimary">#FFFFFF</color>
|
||||
<color name="md_theme_light_9_onPrimary">#201A19</color>
|
||||
<color name="md_theme_light_9_primaryContainer">#FFCF87</color>
|
||||
<color name="md_theme_light_9_onPrimaryContainer">#410001</color>
|
||||
<color name="md_theme_light_9_secondary">#FF5722</color>
|
||||
|
@ -587,7 +587,7 @@
|
|||
<color name="md_theme_light_9_outlineVariant">#D8C2BE</color>
|
||||
<color name="md_theme_light_9_scrim">#000000</color>
|
||||
<color name="md_theme_dark_9_primary">#FFB343</color>
|
||||
<color name="md_theme_dark_9_onPrimary">#FAE965</color>
|
||||
<color name="md_theme_dark_9_onPrimary">#322E0A</color>
|
||||
<color name="md_theme_dark_9_primaryContainer">#FF6600</color>
|
||||
<color name="md_theme_dark_9_onPrimaryContainer">#FFDAD5</color>
|
||||
<color name="md_theme_dark_9_secondary">#FF7700</color>
|
||||
|
|
|
@ -1020,4 +1020,8 @@ Non quae tempore quo provident laudantium qui illo dolor vel quia dolor et exerc
|
|||
<string name="failed_to_fix">Failed to fix</string>
|
||||
<string name="running_fixes">Running Fixes…</string>
|
||||
<string name="test_search">Test Search</string>
|
||||
<string name="app_lock">App Lock</string>
|
||||
<string name="app_lock_desc">Lock the app with a password\n( ͡° ͜ʖ ͡°)</string>
|
||||
<string name="confirm_password">Confirm Password</string>
|
||||
<string name="password_mismatch">Passwords do not match or are empty!</string>
|
||||
</resources>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue