Assignment 3
Assignment 3
10/12/2021
Code
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
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="#5082BF"
android:orientation="vertical"
tools:context=".MainActivity">
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_centerVertical="true"
android:elevation="5dp"
android:translationZ="5dp"
app:cardCornerRadius="10.0dip"
app:cardUseCompatPadding="true">
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:orientation="vertical"
android:padding="10dp">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Tax Calculation - Mit"
android:theme="@style/TextViewHeaderStyle" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20px"
android:orientation="horizontal"
android:weightSum="2">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="0.8"
android:text="Annual Income: "
android:textColor="@color/colorMainTextField"
android:textSize="18sp"
android:textStyle="bold" />
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/etAnnualIncome"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1.2"
android:hint="Enter Tax"
android:inputType="number"
android:textColor="@color/colorMainTextField"
android:textSize="18sp"
android:textColorHint="@color/colorMainTextField" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20px"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="RRSP contribution"
android:theme="@style/TextViewHeaderStyle" />
<com.google.android.material.slider.Slider
android:id="@+id/rrspSlider"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:valueFrom="0"
android:value="0"
android:valueTo="100"/>
</LinearLayout>
<Button
android:id="@+id/btnCalculate"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="20dp"
android:background="@drawable/button_background"
android:text="Calculate"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
android:theme="@style/ButtonStyle" />
<Button
android:id="@+id/btnRefresh"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="20dp"
android:background="@drawable/button_background"
android:text="Refresh"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
android:theme="@style/ButtonStyle" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:gravity="center"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:text="RRSP Contribution : "
android:textColor="@color/colorMainTextField"
android:textSize="18sp"
android:textStyle="bold" >
</TextView>
<TextView
android:id="@+id/tvRRSPContribute"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginTop="5dp"
android:textColor="@color/red"
android:textSize="18sp"
android:text="0 %"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:gravity="center"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:text="Federal Tax : "
android:textColor="@color/colorMainTextField"
android:textSize="18sp"
android:textStyle="bold" >
</TextView>
<TextView
android:id="@+id/tvTaxFed"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginTop="5dp"
android:textColor="@color/red"
android:textSize="18sp"
android:text="$0"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:gravity="center"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:text="Provincial Tax : "
android:textColor="@color/colorMainTextField"
android:textSize="18sp"
android:textStyle="bold" >
</TextView>
<TextView
android:id="@+id/tvTaxProv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="$0"
android:layout_marginLeft="10dp"
android:layout_marginTop="5dp"
android:textColor="@color/red"
android:textSize="18sp"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:text="Total Tax : "
android:textColor="@color/colorMainTextField"
android:textSize="18sp"
android:textStyle="bold" >
</TextView>
<TextView
android:id="@+id/tvTaxTotal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginTop="5dp"
android:textColor="@color/red"
android:textSize="18sp"
android:text="$0"/>
</LinearLayout>
</LinearLayout>
</androidx.core.widget.NestedScrollView>
</androidx.cardview.widget.CardView>
</RelativeLayout>
</resources>
<corners
android:bottomRightRadius="15dp"
android:bottomLeftRadius="15dp"
android:topLeftRadius="15dp"
android:topRightRadius="15dp"/>
</shape>
IncomeTaxCalculator.java
package com.example.taxcalculation_mit;
double fedtax = 0;
double provtax = 0;
return fedtax;
}
MainActivity.java
package com.example.taxcalculation_mit;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import com.google.android.material.slider.Slider;
EditText etAnnualIncome;
Slider slider;
TextView tvTaxFed,tvTaxProv,tvTaxTotal, tvRRSPContribute;
IncomeTaxCalculator calculator;
Long fedTax;
Long provTax;
float totalTax;
float rrspTax;
Button btnCalculateTax, btnRefresh;
Double income;
public static final String MyPREFERENCES = "MyPrefs" ;
public static final String incomeKey = "incomeKey";
public static final String FedKey = "FedKey";
public static final String rrspKey = "rrspKey";
public static final String ProvKey = "ProvKey";
public static final String TotalKey = "TotalKey";
SharedPreferences sharedpreferences;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
sharedpreferences = getSharedPreferences(MyPREFERENCES,
Context.MODE_PRIVATE);
slider.addOnSliderTouchListener(new Slider.OnSliderTouchListener() {
@Override
public void onStartTrackingTouch(@NonNull Slider slider) {
}
@Override
public void onStopTrackingTouch(@NonNull Slider slider) {
rrspTax = slider.getValue();
Log.d("ending", String.valueOf(rrspTax));
}
});
btnRefresh.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(sharedpreferences.getString("incomeKey",null) != null) {
etAnnualIncome.setText(sharedpreferences.getString("incomeKey",null));
slider.setValue(Float.parseFloat(sharedpreferences.getString("rrspKey",null)));
tvRRSPContribute.setText(slider.getValue() + "%");
tvTaxFed.setText(sharedpreferences.getString("FedKey",null));
tvTaxProv.setText(sharedpreferences.getString("ProvKey",null));
tvTaxTotal.setText(sharedpreferences.getString("TotalKey",null));
}
else {
CalculateTax(v);
}
}
});
btnCalculateTax.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
CalculateTax(v);
}
});
}
tvRRSPContribute.setText(slider.getValue() + "%");
fedTax = Math.round(calculator.fedTaxCalculate(income));
tvTaxFed.setText("$ "+fedTax.toString());
provTax = Math.round(calculator.provincialTaxCalculate(income));
tvTaxProv.setText("$ "+provTax.toString());
float rrst = (fedTax + provTax) * (rrspTax/100);
totalTax = (fedTax + provTax) - rrst;
tvTaxTotal.setText("$ "+totalTax);
editor.putString(FedKey, String.valueOf(fedTax));
editor.putString(ProvKey, String.valueOf(provTax));
editor.putString(rrspKey, String.valueOf(slider.getValue()));
editor.putString(TotalKey, String.valueOf(totalTax));
editor.putString(incomeKey, String.valueOf(income));
editor.commit();
}
@Override
protected void onStart() {
super.onStart();
}
}