diff --git a/res/values/strings.xml b/res/values/strings.xml index 00af333..b1c616e 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -1,5 +1,9 @@ RpyPlayer. Everlasting Summer + Действия + + + diff --git a/src/com/annimon/everlastingsummer/Dialogs.java b/src/com/annimon/everlastingsummer/Dialogs.java new file mode 100644 index 0000000..cb875e7 --- /dev/null +++ b/src/com/annimon/everlastingsummer/Dialogs.java @@ -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(); + } + }; +} diff --git a/src/com/annimon/everlastingsummer/ViewActivity.java b/src/com/annimon/everlastingsummer/ViewActivity.java index b1cc306..d41351f 100644 --- a/src/com/annimon/everlastingsummer/ViewActivity.java +++ b/src/com/annimon/everlastingsummer/ViewActivity.java @@ -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;