2015-04-10 22:17:02 +03:00
|
|
|
|
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);
|
2015-04-12 00:19:31 +03:00
|
|
|
|
builder.setNegativeButton(android.R.string.cancel, dismissDialog);
|
2015-04-10 22:17:02 +03:00
|
|
|
|
builder.setCancelable(true);
|
|
|
|
|
builder.show();
|
|
|
|
|
}
|
2015-04-12 00:19:31 +03:00
|
|
|
|
|
|
|
|
|
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();
|
|
|
|
|
}
|
2015-04-10 22:17:02 +03:00
|
|
|
|
|
2015-04-10 22:33:28 +03:00
|
|
|
|
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());
|
|
|
|
|
}
|
|
|
|
|
});
|
2015-04-12 00:19:31 +03:00
|
|
|
|
builder.setNegativeButton(android.R.string.cancel, dismissDialog);
|
2015-04-10 22:33:28 +03:00
|
|
|
|
builder.setCancelable(false);
|
|
|
|
|
builder.show();
|
|
|
|
|
}
|
|
|
|
|
|
2015-04-10 22:17:02 +03:00
|
|
|
|
private final DialogInterface.OnClickListener dismissDialog = new DialogInterface.OnClickListener() {
|
|
|
|
|
@Override
|
|
|
|
|
public void onClick(DialogInterface dialog, int which) {
|
|
|
|
|
dialog.dismiss();
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
}
|