1b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jinpackage com.google.android.apps.common.testing.ui.testapp;
2b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin
3b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jinimport android.app.Activity;
4b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jinimport android.os.Build;
5b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jinimport android.os.Bundle;
6b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jinimport android.view.ContextMenu;
7b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jinimport android.view.ContextMenu.ContextMenuInfo;
8b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jinimport android.view.Menu;
9b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jinimport android.view.MenuInflater;
10b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jinimport android.view.MenuItem;
11b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jinimport android.view.View;
12b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jinimport android.widget.PopupMenu;
13b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jinimport android.widget.PopupMenu.OnMenuItemClickListener;
14b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jinimport android.widget.TextView;
15b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin
16b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin/**
17b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin * Shows MenuActivity with Options menu, Context menu and Popup menu. Click on a menu item changes
18b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin * text of R.id.textMenuResult.
19b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin */
20b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jinpublic class MenuActivity extends Activity {
21b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin
22b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin  @Override
23b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin  protected void onCreate(Bundle savedInstanceState) {
24b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin    super.onCreate(savedInstanceState);
25b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin    setContentView(R.layout.menu_activity);
26b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin    registerForContextMenu(findViewById(R.id.textContextMenu));
27b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin  }
28b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin
29b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin  @Override
30b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin  public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
31b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin    super.onCreateContextMenu(menu, v, menuInfo);
32b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin    MenuInflater inflater = getMenuInflater();
33b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin    inflater.inflate(R.menu.contextmenu, menu);
34b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin  }
35b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin
36b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin  @Override
37b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin  public boolean onOptionsItemSelected(MenuItem item) {
38b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin    TextView text = (TextView) findViewById(R.id.textMenuResult);
39b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin    text.setText(item.getTitle());
40b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin    return true;
41b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin  }
42b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin
43b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin  @Override
44b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin  public boolean onCreateOptionsMenu(Menu menu) {
45b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin    MenuInflater inflater = getMenuInflater();
46b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin    inflater.inflate(R.menu.optionsmenu, menu);
47b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin    return true;
48b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin  }
49b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin
50b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin  @Override
51b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin  public boolean onContextItemSelected(MenuItem item) {
52b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin    TextView text = (TextView) findViewById(R.id.textMenuResult);
53b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin    text.setText(item.getTitle());
54b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin    return true;
55b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin  }
56b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin
57b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin  public void showPopup(View view) {
58b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) {
59b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin      TextView text = (TextView) findViewById(R.id.textMenuResult);
60b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin      text.setText("Not supported in API " + Build.VERSION.SDK_INT);
61b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin    } else {
62b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin      PopupMenu popup = new PopupMenu(this, view);
63b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin      popup.setOnMenuItemClickListener(new PopupMenuListener());
64b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin      popup.getMenuInflater().inflate(R.menu.popupmenu, popup.getMenu());
65b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin      popup.show();
66b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin    }
67b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin  }
68b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin
69b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin  @Override
70b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin  public boolean onMenuItemSelected(int featureId, MenuItem item) {
71b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin    return super.onMenuItemSelected(featureId, item);
72b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin  }
73b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin
74b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin  private class PopupMenuListener implements OnMenuItemClickListener {
75b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin    @Override
76b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin    public boolean onMenuItemClick(MenuItem item) {
77b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin      TextView text = (TextView) findViewById(R.id.textMenuResult);
78b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin      text.setText(item.getTitle());
79b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin      return true;
80b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin    }
81b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin  }
82b8a1c608d3095adfbac872b8c620ca5ab9206abdKevin Jin}
83