package com.openfarmanager.android.core.bookmark;
import android.content.SharedPreferences;
import android.database.Cursor;
import android.database.sqlite.SQLiteException;
import com.openfarmanager.android.App;
import com.openfarmanager.android.core.DataStorageHelper;
import com.openfarmanager.android.core.dbadapters.BookmarkDBAdapter;
import com.openfarmanager.android.core.dbadapters.NetworkAccountDbAdapter;
import com.openfarmanager.android.model.Bookmark;
import com.openfarmanager.android.model.NetworkAccount;
import com.openfarmanager.android.model.NetworkEnum;
import com.openfarmanager.android.model.TaskStatusEnum;
import java.util.ArrayList;
import java.util.List;
public class BookmarkManager {
private static final String BOOKMARKS_ENABLED = "bookmarks_enabled";
private static final String BOOKMARKS_PATH = "bookmarks_path";
public static final String BOOKMARKS_FOLDER = "bookmarks";
public boolean isBookmarksEnabled() {
return getPreferences().getBoolean(BOOKMARKS_ENABLED, true);
}
public String getBookmarksPath() {
return getPreferences().getString(BOOKMARKS_PATH, "/");
}
public String getBookmarksFolder() {
return getBookmarksPath() + BOOKMARKS_FOLDER;
}
protected SharedPreferences getPreferences() {
return App.sInstance.getSharedPreferences("bookmark_settings", 0);
}
public TaskStatusEnum createBookmark(String path, String label, NetworkAccount account) {
Bookmark bookmark = new Bookmark(path, label, account);
long id = -1;
try {
id = BookmarkDBAdapter.insert(bookmark);
} catch (SQLiteException e) {
e.printStackTrace();
return TaskStatusEnum.ERROR_CREATE_BOOKMARK;
}
return id == -1 ? TaskStatusEnum.ERROR_CREATE_BOOKMARK : TaskStatusEnum.OK;
}
public void deleteBookmark(Bookmark bookmark) {
try {
BookmarkDBAdapter.delete(bookmark);
} catch (SQLiteException e) {
e.printStackTrace();
}
}
public List<Bookmark> getBookmarks() {
List<Bookmark> bookmarks = new ArrayList<Bookmark>();
Cursor cursor = BookmarkDBAdapter.getBookmarks();
if (cursor != null) {
try {
int idxId = cursor.getColumnIndex(BookmarkDBAdapter.Columns.ID);
int idxLabel = cursor.getColumnIndex(BookmarkDBAdapter.Columns.LABEL);
int idxPath = cursor.getColumnIndex(BookmarkDBAdapter.Columns.PATH);
int idxNetworkAccountId = cursor.getColumnIndex(BookmarkDBAdapter.Columns.NETWORK_ACCOUNT_ID);
while (cursor.moveToNext()) {
NetworkAccount account = null;
int networkAccountId = cursor.getInt(idxNetworkAccountId);
if (networkAccountId != -1) {
account = NetworkAccountDbAdapter.loadAccountById(cursor.getInt(idxNetworkAccountId));
}
Bookmark bookmark = new Bookmark(cursor.getString(idxPath), cursor.getString(idxLabel), account);
bookmark.setBookmarkId(cursor.getLong(idxId));
bookmarks.add(bookmark);
}
} finally {
cursor.close();
DataStorageHelper.closeDatabase();
}
}
return bookmarks;
}
}