package com.rthoni.stssaguenay.business; import android.content.Context; import com.luticate.utils.dbo.LuDataAccessConfigDbo; import com.rthoni.stssaguenay.R; import com.rthoni.stssaguenay.dataaccess.STSDataAccess; import com.rthoni.stssaguenay.dbo.UserFavouriteStopsDbo; import com.rthoni.stssaguenay.dbo.UserDbo; import com.rthoni.stssaguenay.dbo.UsersSettingsDbo; import org.json.JSONArray; import org.json.JSONObject; import java.util.List; import java.util.Vector; /** * Created by robin on 9/29/16. */ public class STSBusiness { private static LuDataAccessConfigDbo _config = null; public static LuDataAccessConfigDbo getConfig(Context ctx) { if (_config == null) { _config = new LuDataAccessConfigDbo(); try { String str = ctx.getString(R.string.luticate_config); _config.fromJson(str); } catch (Exception e) { e.printStackTrace(); _config = null; return null; } } return _config; } public static List getFavouriteStops(Context ctx) { String str = STSDataAccess.getFavouriteStopsJson(ctx); List dbos = new Vector<>(); JSONArray json; try { json = new JSONArray(str); for (int i = 0; i < json.length(); ++i) { UserFavouriteStopsDbo dbo = new UserFavouriteStopsDbo(); dbo.fromJson(json.getJSONObject(i)); dbos.add(dbo); } } catch (Exception e) { e.printStackTrace(); } return dbos; } public static void setFavouriteStops(Context ctx, List favourites) { JSONArray json = new JSONArray(); for (UserFavouriteStopsDbo favouriteStopDbo : favourites) { json.put(new JSONObject(favouriteStopDbo.toArray())); } STSDataAccess.setFavouriteStopsJson(ctx, json.toString()); } public static UserDbo getLoggedUser(Context ctx) { String str = STSDataAccess.getLoggedUserJson(ctx); if (str != null) { UserDbo user = new UserDbo(); try { user.fromJson(str); return user; } catch (Exception e) { e.printStackTrace(); } } return null; } public static void setLoggedUser(Context ctx, UserDbo user) { if (user == null) { STSDataAccess.setLoggedUserJson(ctx, null); } else { STSDataAccess.setLoggedUserJson(ctx, user.toString()); } } public static UsersSettingsDbo getUserSettings(Context ctx) { UsersSettingsDbo settingsDbo = new UsersSettingsDbo(); settingsDbo.setFavouriteStops(getFavouriteStops(ctx)); return settingsDbo; } public static void setUserSettings(Context ctx, UsersSettingsDbo settingsDbo) { setFavouriteStops(ctx, settingsDbo.getFavouriteStops()); } }