Добавлены методы для сохранения/загрузки состояний

This commit is contained in:
Victor 2015-04-23 14:16:38 +03:00
parent 768c87eb3b
commit a8bb640f91

View File

@ -1,11 +1,17 @@
package com.annimon.everlastingsummer;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileDescriptor;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Environment;
@ -26,6 +32,35 @@ public final class IOUtil {
return result;
}
public static List<SaveInfo> listSaves(Context context) {
final String[] fileslist = context.fileList();
final List<SaveInfo> saves = new ArrayList<SaveInfo>(fileslist.length);
for (String filename : fileslist) {
try {
saves.add(readSaveInfo(context, filename));
} catch (IOException ioe) {
if (Logger.DEBUG) Logger.log("listSaves: " + filename, ioe);
}
}
return saves;
}
public static SaveInfo readSaveInfo(Context context, String filename) throws IOException {
final InputStream is = context.openFileInput(filename);
final DataInputStream dis = new DataInputStream(is);
final SaveInfo result = SaveInfo.readFromStream(dis);
dis.close();
return result;
}
public static void writeSaveInfo(Context context, String filename, SaveInfo saveInfo) throws IOException {
final OutputStream os = context.openFileOutput(filename, Context.MODE_PRIVATE);
final DataOutputStream dos = new DataOutputStream(os);
saveInfo.writeToStream(dos);
dos.flush();
dos.close();
}
private static FileInputStream streamForFD;
public static FileDescriptor getFD(String file) throws IOException {
if (streamForFD != null) streamForFD.close();