/*
========================================================================================
Filename: 13_ContextMenu.txt
Program 13: Create an app that changes the background color of an activity using Context Menu.
Files Included: MainActivity.java, context_menu.xml
========================================================================================

WHAT ALL TO DO / SETUP INSTRUCTIONS:
----------------------------------------------------------------------------------------
1. UI Components to Add (in res/layout/activity_main.xml):
   Add 2 TextView:
     - tvTitle: 'Context Menu'
     - tvLongPress: 'Long Press to Change Color' (registered for ContextMenu)

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

3. Menu Configuration:
   - Create res/menu/context_menu.xml with 3 items: colorRed ('Red'), colorGreen ('Green'), colorBlue ('Blue').

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

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

6. Additional Files & Resources Required:
   - Calls registerForContextMenu(tvLongPress); overrides onCreateContextMenu() and onContextItemSelected().
========================================================================================
*/

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

import android.graphics.Color;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
import android.widget.FrameLayout;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {
    FrameLayout mainLayout;
    @Override
    protected void onCreate(Bundle b) {
        super.onCreate(b);
        setContentView(R.layout.activity_main);
        mainLayout=findViewById(R.id.mainLayout);
        registerForContextMenu(findViewById(R.id.tvLongPress));
    }

    @Override
    public void onCreateContextMenu(ContextMenu menu,View view,ContextMenu.ContextMenuInfo info) {
        super.onCreateContextMenu(menu,view,info);
        new MenuInflater(this).inflate(R.menu.context_menu,menu);
    }

    @Override
    public boolean onContextItemSelected(MenuItem item) {
        if(item.getItemId()==R.id.colorRed) {
            mainLayout.setBackgroundColor(Color.RED);
            return true;
        }

        if(item.getItemId()==R.id.colorGreen) {
            mainLayout.setBackgroundColor(Color.GREEN);
            return true;
        }

        if(item.getItemId()==R.id.colorBlue) {
            mainLayout.setBackgroundColor(Color.BLUE);
            return true;
        }

        return super.onContextItemSelected(item);
    }
}

// ======================================================================================
// File: res/menu/context_menu.xml
// ======================================================================================
<?xml version="1.0" ?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/colorRed" android:title="Red"/>
    <item android:id="@+id/colorGreen" android:title="Green"/>
    <item android:id="@+id/colorBlue" android:title="Blue"/>
</menu>

