Bez popisu

GlobalValues.java 1.7KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. package uprrp.tania;
  2. import androidx.annotation.Nullable;
  3. import java.util.Observable;
  4. import uprrp.tania.models.UserStatusModel;
  5. // TAKEN FROM https://stackoverflow.com/questions/21886768/is-there-any-method-i-can-listen-for-changes-to-global-variable-to-trigger-an-ev
  6. public class GlobalValues extends Observable {
  7. private static GlobalValues mInstance = null;
  8. public static GlobalValues getInstance() {
  9. if(mInstance == null) {
  10. mInstance = new GlobalValues();
  11. }
  12. return mInstance;
  13. }
  14. // WHENEVER ADDING ANOTHER GLOBAL VARIABLE...
  15. // 1. ADD ITS NAME IN ValueName
  16. // 2. ADD A DECLARATION (AND INITIALIZATION; OPTIONAL)
  17. // 3. ADD A GETTER AND A SETTER (TAKE A GOOD LOOK AT THE SETTER)
  18. public enum ValueName {
  19. DEVICE_TOKEN,
  20. USER_STATUS,
  21. }
  22. public static class ValueKey {
  23. private final ValueName mValueName;
  24. public ValueKey(ValueName valueName) {
  25. mValueName = valueName;
  26. }
  27. public ValueName getKey() {
  28. return mValueName;
  29. }
  30. }
  31. // DEVICE TOKEN
  32. @Nullable
  33. private String mDeviceToken;
  34. public String getDeviceToken() {
  35. return mDeviceToken;
  36. }
  37. public void setDeviceToken(@Nullable String value) {
  38. mDeviceToken = value;
  39. this.setChanged();
  40. this.notifyObservers(new ValueKey(ValueName.DEVICE_TOKEN));
  41. }
  42. // USER STATUS
  43. @Nullable
  44. private UserStatusModel mUserStatus;
  45. public UserStatusModel getUserStatus() {
  46. return mUserStatus;
  47. }
  48. public void setUserStatus(UserStatusModel value) {
  49. mUserStatus = value;
  50. this.setChanged();
  51. this.notifyObservers(new ValueKey(ValueName.USER_STATUS));
  52. }
  53. }