package com.example.android.foldercamera;
import android.content.Context;
import android.content.SharedPreferences;
import android.os.Environment;
import android.preference.PreferenceManager;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.util.ArrayList;
/**
* Created by Andrew on 8/13/2015.
*/
public class FolderList {
ArrayList<Folder> folderArrayList = new ArrayList<Folder>();
private Context mContext;
public FolderList(Context context) {
mContext = context;
}
public void add(String name, String path) {
Folder folder = new Folder(name, path);
folderArrayList.add(folder);
}
public void remove(int pos){
folderArrayList.remove(pos);
}
public String getName(int index) {
return folderArrayList.get(index).getName();
}
public String getPath(int index) {
return folderArrayList.get(index).getPath();
}
public ArrayList<Folder> deserialize(String json) {
Gson gson = new Gson();
return gson.fromJson(json, new TypeToken<ArrayList<Folder>>() {}.getType());
}
public ArrayList<String> getFolderNameList() {
ArrayList<String> folderNameList = new ArrayList<String>();
for (Folder f : folderArrayList)
folderNameList.add(f.getName());
return folderNameList;
}
public void getFolderList(SharedPreferences settings, String key) {
if (settings.contains(key)) {
String json = settings.getString(key, "");
folderArrayList = deserialize(json);
} else {
SharedPreferences preference = PreferenceManager.getDefaultSharedPreferences(mContext);
String defaultDIrectoryPath = preference.getString(mContext.getString(R.string.pref_default_directory), Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).toString());
Folder folder = new Folder("default", defaultDIrectoryPath);
folderArrayList.add(folder);
}
}
public void saveToSharedPreference(SharedPreferences settings, String key) {
Gson gson = new Gson();
SharedPreferences.Editor editor = settings.edit();
editor.putString(key, gson.toJson(folderArrayList, ArrayList.class));
editor.commit();
}
public int size(){
return folderArrayList.size();
}
public Folder get(int pos){
return folderArrayList.get(pos);
}
public class Folder {
private String name;
private String path;
public Folder(String name, String path) {
this.name = name;
this.path = path;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPath() {
return path;
}
public void setPath(String path) {
this.path = path;
}
}
}