92 lines
3.3 KiB
Java
92 lines
3.3 KiB
Java
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();
|
||
}
|
||
};
|
||
}
|