You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

STSBusiness.java 3.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. package com.rthoni.stssaguenay.business;
  2. import android.content.Context;
  3. import com.luticate.utils.dbo.LuDataAccessConfigDbo;
  4. import com.rthoni.stssaguenay.R;
  5. import com.rthoni.stssaguenay.dataaccess.STSDataAccess;
  6. import com.rthoni.stssaguenay.dbo.UserFavouriteStopsDbo;
  7. import com.rthoni.stssaguenay.dbo.UserDbo;
  8. import com.rthoni.stssaguenay.dbo.UsersSettingsDbo;
  9. import org.joda.time.DateTimeZone;
  10. import org.joda.time.LocalDateTime;
  11. import org.joda.time.LocalTime;
  12. import org.json.JSONArray;
  13. import org.json.JSONObject;
  14. import java.util.Date;
  15. import java.util.List;
  16. import java.util.TimeZone;
  17. import java.util.Vector;
  18. /**
  19. * Created by robin on 9/29/16.
  20. */
  21. public class STSBusiness {
  22. private static LuDataAccessConfigDbo _config = null;
  23. public static LuDataAccessConfigDbo getConfig(Context ctx)
  24. {
  25. if (_config == null) {
  26. _config = new LuDataAccessConfigDbo();
  27. try {
  28. String str = ctx.getString(R.string.luticate_config);
  29. _config.fromJson(str);
  30. } catch (Exception e) {
  31. e.printStackTrace();
  32. _config = null;
  33. return null;
  34. }
  35. }
  36. return _config;
  37. }
  38. public static List<UserFavouriteStopsDbo> getFavouriteStops(Context ctx)
  39. {
  40. String str = STSDataAccess.getFavouriteStopsJson(ctx);
  41. List<UserFavouriteStopsDbo> dbos = new Vector<>();
  42. JSONArray json;
  43. try {
  44. json = new JSONArray(str);
  45. for (int i = 0; i < json.length(); ++i) {
  46. UserFavouriteStopsDbo dbo = new UserFavouriteStopsDbo();
  47. dbo.fromJson(json.getJSONObject(i));
  48. dbos.add(dbo);
  49. }
  50. } catch (Exception e) {
  51. e.printStackTrace();
  52. }
  53. return dbos;
  54. }
  55. public static void setFavouriteStops(Context ctx, List<UserFavouriteStopsDbo> favourites)
  56. {
  57. JSONArray json = new JSONArray();
  58. for (UserFavouriteStopsDbo favouriteStopDbo : favourites) {
  59. json.put(new JSONObject(favouriteStopDbo.toArray()));
  60. }
  61. STSDataAccess.setFavouriteStopsJson(ctx, json.toString());
  62. }
  63. public static UserDbo getLoggedUser(Context ctx)
  64. {
  65. String str = STSDataAccess.getLoggedUserJson(ctx);
  66. if (str != null) {
  67. UserDbo user = new UserDbo();
  68. try {
  69. user.fromJson(str);
  70. return user;
  71. } catch (Exception e) {
  72. e.printStackTrace();
  73. }
  74. }
  75. return null;
  76. }
  77. public static void setLoggedUser(Context ctx, UserDbo user)
  78. {
  79. if (user == null) {
  80. STSDataAccess.setLoggedUserJson(ctx, null);
  81. }
  82. else {
  83. STSDataAccess.setLoggedUserJson(ctx, user.toString());
  84. }
  85. }
  86. public static UsersSettingsDbo getUserSettings(Context ctx)
  87. {
  88. UsersSettingsDbo settingsDbo = new UsersSettingsDbo();
  89. settingsDbo.setFavouriteStops(getFavouriteStops(ctx));
  90. return settingsDbo;
  91. }
  92. public static void setUserSettings(Context ctx, UsersSettingsDbo settingsDbo)
  93. {
  94. setFavouriteStops(ctx, settingsDbo.getFavouriteStops());
  95. }
  96. public static LocalDateTime getTime()
  97. {
  98. TimeZone tz = TimeZone.getDefault();
  99. DateTimeZone dtz = DateTimeZone.forOffsetMillis(tz.getRawOffset() + (tz.inDaylightTime(new Date()) ? tz.getDSTSavings() : 0));
  100. LocalDateTime date = LocalDateTime.now(dtz).plusMinutes(-30);
  101. return date;
  102. }
  103. }