Добавлена возможность удаления сохранений
This commit is contained in:
parent
5827d28327
commit
564145f2e2
@ -8,6 +8,8 @@
|
|||||||
<string name="navigate">Навигация</string>
|
<string name="navigate">Навигация</string>
|
||||||
<string name="save">Сохранить</string>
|
<string name="save">Сохранить</string>
|
||||||
<string name="load">Загрузить</string>
|
<string name="load">Загрузить</string>
|
||||||
|
<string name="remove">Удалить</string>
|
||||||
|
<string name="removed">Удалено</string>
|
||||||
|
|
||||||
<string-array name="menu_items">
|
<string-array name="menu_items">
|
||||||
<item>@string/to_prev_scene</item>
|
<item>@string/to_prev_scene</item>
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
package com.annimon.everlastingsummer;
|
package com.annimon.everlastingsummer;
|
||||||
|
|
||||||
|
import java.text.DateFormat;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
import android.app.AlertDialog;
|
import android.app.AlertDialog;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
@ -9,6 +11,7 @@ import android.view.LayoutInflater;
|
|||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.widget.SeekBar;
|
import android.widget.SeekBar;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
import android.widget.Toast;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Работа с диалогами.
|
* Работа с диалогами.
|
||||||
@ -83,9 +86,55 @@ public final class Dialogs {
|
|||||||
builder.show();
|
builder.show();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void showSaves(List<SaveInfo> saves, DialogInterface.OnClickListener listener) {
|
public void showSaves(final List<SaveInfo> saves, DialogInterface.OnClickListener listener) {
|
||||||
builder.setTitle(R.string.load);
|
builder.setTitle(R.string.load);
|
||||||
builder.setAdapter(new SavesAdapter(context, saves), listener);
|
builder.setAdapter(new SavesAdapter(context, saves), listener);
|
||||||
|
builder.setPositiveButton(R.string.remove, new DialogInterface.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(DialogInterface dialog, int which) {
|
||||||
|
dialog.dismiss();
|
||||||
|
Dialogs.with(context).showSavesRemove(saves);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
builder.setNegativeButton(android.R.string.cancel, dismissDialog);
|
||||||
|
builder.setCancelable(true);
|
||||||
|
builder.show();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void showSavesRemove(final List<SaveInfo> saves) {
|
||||||
|
final int size = saves.size();
|
||||||
|
final String[] items = new String[size];
|
||||||
|
final DateFormat format = DateFormat.getDateTimeInstance(
|
||||||
|
DateFormat.MEDIUM, DateFormat.MEDIUM, Locale.getDefault());
|
||||||
|
for (int i = 0; i < size; i++) {
|
||||||
|
final SaveInfo info = saves.get(i);
|
||||||
|
items[i] = format.format(info.getTime()) + "\n" + info.getPath();
|
||||||
|
}
|
||||||
|
final boolean[] checkedItems = new boolean[size];
|
||||||
|
|
||||||
|
builder.setTitle(R.string.remove);
|
||||||
|
builder.setMultiChoiceItems(items, checkedItems, new DialogInterface.OnMultiChoiceClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
|
||||||
|
checkedItems[which] = isChecked;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
builder.setPositiveButton(R.string.remove, new DialogInterface.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(DialogInterface dialog, int which) {
|
||||||
|
boolean removed = false;
|
||||||
|
for (int i = 0; i < size; i++) {
|
||||||
|
if (checkedItems[i]) {
|
||||||
|
IOUtil.removeSaveInfo(context, Long.toString(saves.get(i).getTime()));
|
||||||
|
removed = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (removed) {
|
||||||
|
Toast.makeText(context, R.string.removed, Toast.LENGTH_SHORT).show();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
builder.setNegativeButton(android.R.string.cancel, dismissDialog);
|
builder.setNegativeButton(android.R.string.cancel, dismissDialog);
|
||||||
builder.setCancelable(true);
|
builder.setCancelable(true);
|
||||||
builder.show();
|
builder.show();
|
||||||
|
@ -3,6 +3,7 @@ package com.annimon.everlastingsummer;
|
|||||||
import java.io.BufferedReader;
|
import java.io.BufferedReader;
|
||||||
import java.io.DataInputStream;
|
import java.io.DataInputStream;
|
||||||
import java.io.DataOutputStream;
|
import java.io.DataOutputStream;
|
||||||
|
import java.io.File;
|
||||||
import java.io.FileDescriptor;
|
import java.io.FileDescriptor;
|
||||||
import java.io.FileInputStream;
|
import java.io.FileInputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
@ -61,6 +62,13 @@ public final class IOUtil {
|
|||||||
dos.close();
|
dos.close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void removeSaveInfo(Context context, String filename) {
|
||||||
|
final File file = context.getFileStreamPath(filename);
|
||||||
|
if (file != null) {
|
||||||
|
file.delete();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private static FileInputStream streamForFD;
|
private static FileInputStream streamForFD;
|
||||||
public static FileDescriptor getFD(String file) throws IOException {
|
public static FileDescriptor getFD(String file) throws IOException {
|
||||||
if (streamForFD != null) streamForFD.close();
|
if (streamForFD != null) streamForFD.close();
|
||||||
|
Loading…
Reference in New Issue
Block a user