package info.justaway.model;
import android.content.Context;
import android.content.SharedPreferences;
import com.google.gson.Gson;
import java.util.ArrayList;
import info.justaway.JustawayApplication;
import info.justaway.R;
public class TabManager {
public static final long TIMELINE_TAB_ID = -1L;
public static final long INTERACTIONS_TAB_ID = -2L;
public static final long DIRECT_MESSAGES_TAB_ID = -3L;
public static final long FAVORITES_TAB_ID = -4L;
public static final long SEARCH_TAB_ID = -5L;
private static final String TABS = "tabs-";
private static ArrayList<Tab> sTabs = new ArrayList<>();
private static SharedPreferences getSharedPreferences() {
return JustawayApplication.getApplication()
.getSharedPreferences("settings", Context.MODE_PRIVATE);
}
public static ArrayList<Tab> loadTabs() {
sTabs.clear();
String json = getSharedPreferences().getString(TABS.concat(
String.valueOf(AccessTokenManager.getUserId())).concat("/v2"), null);
if (json != null) {
Gson gson = new Gson();
TabData tabData = gson.fromJson(json, TabData.class);
sTabs = tabData.tabs;
for (Tab tab : sTabs) {
if (tab.id <= SEARCH_TAB_ID) {
tab.id = SEARCH_TAB_ID - Math.abs(tab.name.hashCode());
}
}
}
if (sTabs.size() == 0) {
sTabs = generalTabs();
}
return sTabs;
}
public static void saveTabs(ArrayList<Tab> tabs) {
TabData tabData = new TabData();
tabData.tabs = tabs;
Gson gson = new Gson();
String json = gson.toJson(tabData);
SharedPreferences.Editor editor = getSharedPreferences().edit();
editor.remove(TABS.concat(String.valueOf(AccessTokenManager.getUserId())));
editor.putString(TABS.concat(String.valueOf(AccessTokenManager.getUserId())).concat("/v2"), json);
editor.apply();
sTabs = tabs;
}
public static ArrayList<Tab> generalTabs() {
ArrayList<Tab> tabs = new ArrayList<>();
tabs.add(new Tab(TIMELINE_TAB_ID));
tabs.add(new Tab(INTERACTIONS_TAB_ID));
tabs.add(new Tab(DIRECT_MESSAGES_TAB_ID));
tabs.add(new Tab(FAVORITES_TAB_ID));
return tabs;
}
public static boolean hasTabId(Long findTab) {
for (Tab tab : sTabs) {
if (tab.id.equals(findTab)) {
return true;
}
}
return false;
}
public static class TabData {
ArrayList<Tab> tabs;
}
public static class Tab {
public Long id;
public String name;
public Tab(Long id) {
this.id = id;
}
public String getName() {
if (id == TIMELINE_TAB_ID) {
return JustawayApplication.getApplication().getString(R.string.title_main);
} else if (id == INTERACTIONS_TAB_ID) {
return JustawayApplication.getApplication().getString(R.string.title_interactions);
} else if (id == DIRECT_MESSAGES_TAB_ID) {
return JustawayApplication.getApplication().getString(R.string.title_direct_messages);
} else if (id == FAVORITES_TAB_ID) {
return JustawayApplication.getApplication().getString(R.string.title_favorites);
} else if (id <= SEARCH_TAB_ID) {
return JustawayApplication.getApplication().getString(R.string.title_search) + ":" + name;
} else {
return name;
}
}
public int getIcon() {
if (id == TIMELINE_TAB_ID) {
return R.string.fontello_home;
} else if (id == INTERACTIONS_TAB_ID) {
return R.string.fontello_at;
} else if (id == DIRECT_MESSAGES_TAB_ID) {
return R.string.fontello_mail;
} else if (id == FAVORITES_TAB_ID) {
return R.string.fontello_star;
} else if (id <= SEARCH_TAB_ID) {
return R.string.fontello_search;
} else {
return R.string.fontello_list;
}
}
}
}