CredentialHolder.java 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. package com.knacki.mimou.preference;
  2. import android.content.Context;
  3. import android.content.SharedPreferences;
  4. import com.knacki.mimou.activity.MainActivity;
  5. import java.util.logging.Logger;
  6. /**
  7. * Created by thibal on 1/4/18.
  8. */
  9. public abstract class CredentialHolder extends PreferenceHolder {
  10. public static final String TOKEN_LOCAL = "_local";
  11. private static final String PREF_SECURITY_TOKEN = "securityToken";
  12. private final static String USE_SMS = "smsApp";
  13. public static void setLocalUse(Context c) {
  14. getSharedPreferences(c).edit().putString(PREF_SECURITY_TOKEN, TOKEN_LOCAL).commit();
  15. }
  16. public static void setSecurityToken(Context c, String token) {
  17. getSharedPreferences(c).edit().putString(PREF_SECURITY_TOKEN, token).commit();
  18. }
  19. public static boolean hasCredential(Context c) {
  20. return getSharedPreferences(c).contains(PREF_SECURITY_TOKEN);
  21. }
  22. public static boolean isLocal(Context c) {
  23. SharedPreferences p = getSharedPreferences(c);
  24. return p.contains(PREF_SECURITY_TOKEN) && p.getString(PREF_SECURITY_TOKEN, "").equals(TOKEN_LOCAL);
  25. }
  26. public static boolean isLocal(String token) {
  27. return token.equals(TOKEN_LOCAL);
  28. }
  29. public static String getToken(Context c) {
  30. return getSharedPreferences(c).getString(PREF_SECURITY_TOKEN, null);
  31. }
  32. public static Boolean hasSMSPermission(Context c) {
  33. SharedPreferences p = getSharedPreferences(c);
  34. if (p.contains(PREF_SECURITY_TOKEN) && p.getString(PREF_SECURITY_TOKEN, "").equals(TOKEN_LOCAL))
  35. return true;
  36. if (p.contains(USE_SMS)) {
  37. return p.getBoolean(USE_SMS, false);
  38. }
  39. return null;
  40. }
  41. public static Boolean setSMSPermission(Context c, boolean granted) {
  42. SharedPreferences p = getSharedPreferences(c);
  43. if (!p.contains(PREF_SECURITY_TOKEN) || !p.getString(PREF_SECURITY_TOKEN, "").equals(TOKEN_LOCAL)) {
  44. p.edit().putBoolean(USE_SMS, granted).commit();
  45. }
  46. return null;
  47. }
  48. static void reset(SharedPreferences.Editor p) {
  49. p.remove(PREF_SECURITY_TOKEN);
  50. p.remove(USE_SMS);
  51. }
  52. }