/*
========================================================================================
Filename: 12_OptionsMenu.txt
Program 12: Create an app to demonstrate Options Menu.
Files Included: MainActivity.java, menu_main.xml
========================================================================================

WHAT ALL TO DO / SETUP INSTRUCTIONS:
----------------------------------------------------------------------------------------
1. UI Components to Add (in res/layout/activity_main.xml):
   Add 1 TextView:
     - tvTitle: 'Options Menu Demo'

2. Layout Configuration:
   - LinearLayout (vertical, gravity='center', padding 20dp)

3. Menu Configuration:
   - Create res/menu/menu_main.xml with 5 items: menuHome ('Home'), menuProfile ('Profile'), menuSettings ('Settings'), menuAbout ('About'), menuExit ('Exit').

4. Themes Configuration (res/values/themes.xml):
   - Must use a theme with an ActionBar (e.g. Theme.MaterialComponents.DayNight.DarkActionBar).

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

6. Additional Files & Resources Required:
   - Overrides onCreateOptionsMenu() and onOptionsItemSelected().
========================================================================================
*/

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

import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle b) {
        super.onCreate(b);
        setContentView(R.layout.activity_main);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu m) {
        getMenuInflater().inflate(R.menu.menu_main,m);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        int id=item.getItemId();
        if(id==R.id.menuHome) {
            Toast.makeText(this,"Home Selected",Toast.LENGTH_SHORT).show();
            return true;
        }

        if(id==R.id.menuProfile) {
            Toast.makeText(this,"Profile Selected",Toast.LENGTH_SHORT).show();
            return true;
        }

        if(id==R.id.menuSettings) {
            Toast.makeText(this,"Settings Selected",Toast.LENGTH_SHORT).show();
            return true;
        }

        if(id==R.id.menuAbout) {
            Toast.makeText(this,"About Selected",Toast.LENGTH_SHORT).show();
            return true;
        }

        if(id==R.id.menuExit) {
            finish();
            return true;
        }

        return super.onOptionsItemSelected(item);
    }
}

// ======================================================================================
// File: res/menu/menu_main.xml
// ======================================================================================
<?xml version="1.0" ?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/menuHome" android:title="Home"/>
    <item android:id="@+id/menuProfile" android:title="Profile"/>
    <item android:id="@+id/menuSettings" android:title="Settings"/>
    <item android:id="@+id/menuAbout" android:title="About"/>
    <item android:id="@+id/menuExit" android:title="Exit"/>
</menu>

