Добавлено меню, открывающееся по свайпу или кнопке меню

This commit is contained in:
Victor 2015-04-10 22:17:02 +03:00
parent 9ec4e160e7
commit 8d927c06e8
3 changed files with 75 additions and 0 deletions

View File

@ -1,5 +1,9 @@
<resources>
<string name="app_name">RpyPlayer. Everlasting Summer</string>
<string name="actions">Действия</string>
<string-array name="menu_items">
</string-array>
</resources>

View File

@ -0,0 +1,44 @@
package com.annimon.everlastingsummer;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.view.ContextThemeWrapper;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.SeekBar;
import android.widget.TextView;
/**
* Работа с диалогами.
* @author aNNiMON
*/
public final class Dialogs {
public static Dialogs with(Context context) {
return new Dialogs(context);
}
private final Context context;
private final AlertDialog.Builder builder;
private Dialogs(Context context) {
this.context = context;
builder = new AlertDialog.Builder(new ContextThemeWrapper(context, R.style.Dialog));
builder.setNegativeButton(android.R.string.cancel, dismissDialog);
}
public void showMenu(int itemsId, DialogInterface.OnClickListener listener) {
builder.setTitle(R.string.actions);
builder.setItems(itemsId, listener);
builder.setCancelable(true);
builder.show();
}
private final DialogInterface.OnClickListener dismissDialog = new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
};
}

View File

@ -6,6 +6,7 @@ import java.util.Map;
import com.annimon.everlastingsummer.TouchGesture.TouchGestureType;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.DialogInterface;
import android.content.Intent;
import android.media.MediaPlayer;
import android.net.Uri;
@ -14,6 +15,7 @@ import android.text.*;
import android.text.style.ForegroundColorSpan;
import android.util.DisplayMetrics;
import android.view.Gravity;
import android.view.KeyEvent;
import android.view.View;
import android.view.WindowManager;
import android.widget.FrameLayout;
@ -135,6 +137,23 @@ public final class ViewActivity extends Activity implements TouchGesture.OnTouch
Parser.getInstance().next();
break;
case SWIPE:
Dialogs.with(this).showMenu(R.array.menu_items, menu);
break;
}
}
public boolean onKeyUp(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_MENU) {
Dialogs.with(this).showMenu(R.array.menu_items, menu);
return true;
}
return super.onKeyUp(keyCode, event);
}
private void onMenuItemSelected(int item) {
switch (item) {
case 0:
Dialogs.with(getInstance()).showNavigate();
break;
}
}
@ -330,6 +349,14 @@ public final class ViewActivity extends Activity implements TouchGesture.OnTouch
}
};
private final DialogInterface.OnClickListener menu = new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int item) {
onMenuItemSelected(item);
}
};
private class Person {
String name;
int color;