RpyPlayer/src/com/annimon/everlastingsummer/Dialogs.java

92 lines
3.3 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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));
}
public void showMenu(int itemsId, DialogInterface.OnClickListener listener) {
builder.setTitle(R.string.actions);
builder.setItems(itemsId, listener);
builder.setNegativeButton(android.R.string.cancel, dismissDialog);
builder.setCancelable(true);
builder.show();
}
public void showGameMenu(Menu menu, DialogInterface.OnClickListener listener) {
if (menu.getTitle() == null) builder.setTitle(R.string.choose);
else builder.setTitle(menu.getTitle());
builder.setItems(menu.getItemsNames(), listener);
builder.setCancelable(false);
builder.show();
}
public void showNavigate() {
final View root = LayoutInflater.from(context).inflate(R.layout.navigate, null);
final TextView positionIndicator = (TextView) root.findViewById(R.id.position);
final SeekBar slider = (SeekBar) root.findViewById(R.id.slider);
final TextView text = (TextView) root.findViewById(R.id.text);
final Parser parser = Parser.getInstance();
positionIndicator.setText(String.valueOf(parser.getPosition()));
slider.setMax(parser.getTokensCount() - 1);
slider.setProgress(parser.getPosition());
slider.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onStopTrackingTouch(SeekBar seekBar) { }
@Override
public void onStartTrackingTouch(SeekBar seekBar) { }
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
positionIndicator.setText(String.valueOf(progress));
if (progress >= parser.getTokensCount()) return;
text.setText(parser.getTokens().get(progress).getText());
}
} );
builder.setTitle(R.string.navigate);
builder.setView(root);
builder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
parser.setPosition(slider.getProgress());
}
});
builder.setNegativeButton(android.R.string.cancel, dismissDialog);
builder.setCancelable(false);
builder.show();
}
private final DialogInterface.OnClickListener dismissDialog = new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
};
}