mirror of
https://github.com/libretro/RetroArch
synced 2025-02-04 21:40:02 +00:00
(Android) abstract PopupMenu to make Dalvik happy on 2.3
This commit is contained in:
parent
80ecc10055
commit
5265d7aca4
@ -392,10 +392,10 @@ public class RetroArch extends Activity implements
|
|||||||
public void showPopup(View v) {
|
public void showPopup(View v) {
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB)
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB)
|
||||||
{
|
{
|
||||||
PopupMenu menu = new PopupMenu(this, v);
|
PopupMenuAbstract menu = new PopupMenuAbstract(this, v);
|
||||||
MenuInflater inflater = menu.getMenuInflater();
|
MenuInflater inflater = menu.getMenuInflater();
|
||||||
inflater.inflate(R.menu.context_menu, menu.getMenu());
|
inflater.inflate(R.menu.context_menu, menu.getMenu());
|
||||||
menu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener()
|
menu.setOnMenuItemClickListener(new PopupMenuAbstract.OnMenuItemClickListener()
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
public boolean onMenuItemClick(MenuItem item) {
|
public boolean onMenuItemClick(MenuItem item) {
|
||||||
@ -468,3 +468,104 @@ public class RetroArch extends Activity implements
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
abstract class LazyPopupMenu {
|
||||||
|
public abstract Menu getMenu();
|
||||||
|
public abstract MenuInflater getMenuInflater();
|
||||||
|
public abstract void setOnMenuItemClickListener(LazyPopupMenu.OnMenuItemClickListener listener);
|
||||||
|
public abstract void show();
|
||||||
|
public interface OnMenuItemClickListener {
|
||||||
|
public abstract boolean onMenuItemClick(MenuItem item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class HoneycombPopupMenu extends LazyPopupMenu {
|
||||||
|
private PopupMenu instance;
|
||||||
|
HoneycombPopupMenu.OnMenuItemClickListener listen;
|
||||||
|
|
||||||
|
public HoneycombPopupMenu(Context context, View anchor)
|
||||||
|
{
|
||||||
|
instance = new PopupMenu(context, anchor);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setOnMenuItemClickListener(HoneycombPopupMenu.OnMenuItemClickListener listener)
|
||||||
|
{
|
||||||
|
listen = listener;
|
||||||
|
instance.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
|
||||||
|
@Override
|
||||||
|
public boolean onMenuItemClick(MenuItem item) {
|
||||||
|
return listen.onMenuItemClick(item);
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Menu getMenu() {
|
||||||
|
return instance.getMenu();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public MenuInflater getMenuInflater() {
|
||||||
|
return instance.getMenuInflater();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void show() {
|
||||||
|
instance.show();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class PopupMenuAbstract extends LazyPopupMenu
|
||||||
|
{
|
||||||
|
private LazyPopupMenu lazy;
|
||||||
|
|
||||||
|
public PopupMenuAbstract(Context context, View anchor)
|
||||||
|
{
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB)
|
||||||
|
{
|
||||||
|
lazy = new HoneycombPopupMenu(context, anchor);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Menu getMenu() {
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB)
|
||||||
|
{
|
||||||
|
return lazy.getMenu();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public MenuInflater getMenuInflater() {
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB)
|
||||||
|
{
|
||||||
|
return lazy.getMenuInflater();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setOnMenuItemClickListener(PopupMenuAbstract.OnMenuItemClickListener listener) {
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB)
|
||||||
|
{
|
||||||
|
lazy.setOnMenuItemClickListener(listener);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void show() {
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB)
|
||||||
|
{
|
||||||
|
lazy.show();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user