(Android Phoenix) Split up menu classes into separate .java files

This commit is contained in:
twinaphex 2013-08-12 17:43:27 +02:00
parent 7abe27de81
commit 647a423aa4
5 changed files with 127 additions and 102 deletions

View File

@ -24,6 +24,9 @@
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".browser.HoneycombPopupMenu"></activity>
<activity android:name=".browser.LazyPopupMenu"></activity>
<activity android:name=".browser.PopupMenuAbstract"></activity>
<activity android:name=".browser.ReportIME"></activity>
<activity android:name=".browser.HelpActivity"></activity>
<activity android:name=".browser.DirectoryActivity"></activity>

View File

@ -0,0 +1,49 @@
package org.retroarch.browser;
import android.annotation.TargetApi;
import android.content.Context;
import android.os.Build;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.PopupMenu;
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
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();
}
}

View File

@ -0,0 +1,15 @@
package org.retroarch.browser;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
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);
}
}

View File

@ -0,0 +1,60 @@
package org.retroarch.browser;
import android.content.Context;
import android.os.Build;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.View;
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();
}
}
}

View File

@ -382,105 +382,3 @@ 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);
}
}
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
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();
}
}
}