mirror of
https://github.com/libretro/RetroArch
synced 2025-02-04 12:40:07 +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) {
|
||||
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();
|
||||
inflater.inflate(R.menu.context_menu, menu.getMenu());
|
||||
menu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener()
|
||||
menu.setOnMenuItemClickListener(new PopupMenuAbstract.OnMenuItemClickListener()
|
||||
{
|
||||
@Override
|
||||
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