/*
========================================================================================
Filename: 04_Calculator.txt
Program 04: Develop a simple calculator app.
Files Included: MainActivity.java
========================================================================================

WHAT ALL TO DO / SETUP INSTRUCTIONS:
----------------------------------------------------------------------------------------
1. UI Components to Add (in res/layout/activity_main.xml):
   Add 2 EditText (TextBox):
     - etFirstNumber (Hint: 'Enter the 1st Number', inputType='numberDecimal')
     - etSecondNumber (Hint: 'Enter the 2nd Number', inputType='numberDecimal')
   Add 4 Button:
     - Add: Text: 'Add', onClick: 'performAddition'
     - Subtract: Text: 'Subtract', onClick: 'performSubtraction'
     - Multiply: Text: 'Multiply', onClick: 'performMultiplication'
     - Divide: Text: 'Divide', onClick: 'performDivision'
   Add 2 TextView:
     - tvTitle: 'Calculator App'
     - tvResult: To display calculated result

2. Layout Configuration:
   - LinearLayout (vertical) with child horizontal LinearLayouts for action buttons.

3. Menu Configuration:
   - None required.

4. Themes Configuration (res/values/themes.xml):
   - Default theme. No changes needed.

5. AndroidManifest.xml:
   <activity android:name=".MainActivity" android:exported="true" />

6. Additional Files & Resources Required:
   - None.
========================================================================================
*/

// ======================================================================================
// File: MainActivity.java
// ======================================================================================
package com.example.sumapp;

import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {
    EditText etFirstNumber,etSecondNumber;
    TextView tvResult;
    @Override
    protected void onCreate(Bundle b) {
        super.onCreate(b);
        setContentView(R.layout.activity_main);
        etFirstNumber=findViewById(R.id.etFirstNumber);
        etSecondNumber=findViewById(R.id.etSecondNumber);
        tvResult=findViewById(R.id.tvResult);
    }

    String[] nums() {
        return new String[] {
            etFirstNumber.getText().toString().trim(),etSecondNumber.getText().toString().trim()
        };
    }

    public void performAddition(View v) {
        calc("Addition Result : ",1);
    }

    public void performSubtraction(View v) {
        calc("Subtraction Result : ",2);
    }

    public void performMultiplication(View v) {
        calc("Multiplication Result : ",3);
    }

    public void performDivision(View v) {
        String[] n=nums();
        if(n[0].isEmpty()||n[1].isEmpty()) {
            tvResult.setText("Please enter both numbers.");
            return;
        }

        double b=Double.parseDouble(n[1]);
        if(b==0) {
            tvResult.setText("Division by zero is not allowed.");
            return;
        }

        tvResult.setText("Division Result : "+(Double.parseDouble(n[0])/b));
    }

    void calc(String label,int op) {
        String[] n=nums();
        if(n[0].isEmpty()||n[1].isEmpty()) {
            tvResult.setText("Please enter both numbers.");
            return;
        }

        int a=Integer.parseInt(n[0]),b=Integer.parseInt(n[1]);
        int r=op==1?a+b:op==2?a-b:a*b;
        tvResult.setText(label+r);
    }
}
