package org.igarape.copcast.utils;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.graphics.Bitmap;
import android.util.Log;
import org.igarape.copcast.BuildConfig;
/**
* Created by fcavalcanti on 28/10/2014.
*/
public class Globals {
public static String TAG = Globals.class.getName();
public static final String SENDER_ID = "319635303076";
private static final String PREF_ACCESS_TOKEN = "PREF_ACCESS_TOKEN";
private static final String PREF_TIME_LOGIN = "PREF_TIME_LOGIN";
private static final String PREF_USER_LOGIN = "PREF_USER_LOGIN";
public static final String PROPERTY_REG_ID = "registration_id";
private static final String PROPERTY_APP_VERSION = "appVersion";
public static final String SERVER_URL = BuildConfig.serverUrl;
private static String accessToken = null;
private static String userLogin = null;
private static String serverIpAddress = "";
private static Integer streamingPort = 1935;
private static String streamingUser = "";
private static String streamingPassword = "";
private static String streamingPath = "";
private static String userName = null;
private static Bitmap userImage = null;
private static Long directorySize;
private static Long directoryUploadedSize;
public synchronized static String getAccessToken(Context context) {
if (accessToken == null) {
SharedPreferences sharedPrefs = context.getSharedPreferences("AUTH", Context.MODE_PRIVATE);
accessToken = sharedPrefs.getString(PREF_ACCESS_TOKEN, null);
}
return accessToken != null ? "Bearer " + accessToken : null;
}
public synchronized static void setAccessToken(Context context, String token) {
SharedPreferences sharedPrefs = context.getSharedPreferences("AUTH", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPrefs.edit();
editor.putString(PREF_ACCESS_TOKEN, token);
editor.putLong(PREF_TIME_LOGIN, java.lang.System.currentTimeMillis());
editor.commit();
accessToken = token;
if (accessToken == null) {
setUserImage(null);
}
}
public synchronized static String getUserLogin(Context context) {
if (userLogin == null) {
SharedPreferences sharedPrefs = context.getSharedPreferences("AUTH", Context.MODE_PRIVATE);
userLogin = sharedPrefs.getString(PREF_USER_LOGIN, null);
}
return userLogin;
}
public synchronized static void storeRegistrationId(Context context, String regId) {
final SharedPreferences sharedPrefs = context.getSharedPreferences("AUTH", Context.MODE_PRIVATE);
int appVersion = getAppVersion(context);
Log.i(TAG, "Saving regId on app version " + appVersion);
SharedPreferences.Editor editor = sharedPrefs.edit();
editor.putString(PROPERTY_REG_ID, regId);
editor.putInt(PROPERTY_APP_VERSION, appVersion);
editor.commit();
}
public synchronized static String getRegistrationId(Context context) {
final SharedPreferences sharedPrefs = context.getSharedPreferences("AUTH", Context.MODE_PRIVATE);
String registrationId = sharedPrefs.getString(PROPERTY_REG_ID, "");
if (registrationId.isEmpty()) {
Log.i(TAG, "Registration not found.");
return "";
}
int registeredVersion = sharedPrefs.getInt(PROPERTY_APP_VERSION, Integer.MIN_VALUE);
int currentVersion = getAppVersion(context);
if (registeredVersion != currentVersion) {
Log.i(TAG, "App version changed.");
return "";
}
return registrationId;
}
private static int getAppVersion(Context context) {
try {
PackageInfo packageInfo = context.getPackageManager()
.getPackageInfo(context.getPackageName(), 0);
return packageInfo.versionCode;
} catch (PackageManager.NameNotFoundException e) {
// should never happen
throw new RuntimeException("Could not get package name: " + e);
}
}
public synchronized static void setUserLogin(Context context, String login) {
SharedPreferences sharedPrefs = context.getSharedPreferences("AUTH", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPrefs.edit();
editor.putString(PREF_USER_LOGIN, login);
editor.commit();
}
public static Bitmap getUserImage() {
return userImage;
}
public static void setUserImage(Bitmap userImage) {
Globals.userImage = userImage;
}
public static void setStreamingPort(Integer streamingPort) {
Globals.streamingPort = streamingPort;
}
public static void setStreamingUser(String streamingUser) {
Globals.streamingUser = streamingUser;
}
public static void setServerIpAddress(String serverIpAddress) {
Globals.serverIpAddress = serverIpAddress;
}
public static void setStreamingPassword(String streamingPassword) {
Globals.streamingPassword = streamingPassword;
}
public static void setStreamingPath(String streamingPath) {
Globals.streamingPath = streamingPath;
}
public static void setUserName(String userName) {
Globals.userName = userName;
}
public static String getUserName() {
return Globals.userName;
}
public static void setAccessToken(String accessToken) {
Globals.accessToken = accessToken;
}
public static void clear(Context context) {
SharedPreferences sharedPrefs = context.getSharedPreferences("AUTH", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPrefs.edit();
editor.clear().commit();
accessToken = null;
userLogin = null;
serverIpAddress = "";
streamingPort = 1935;
streamingUser = "";
streamingPassword = "";
streamingPath = "";
userName = null;
userImage = null;
}
public static void setDirectorySize(Long directorySize) {
Globals.directorySize = directorySize;
Globals.directoryUploadedSize = Long.valueOf(0);
}
public static Long getDirectoryUploadedSize() {
return directoryUploadedSize;
}
public static void setDirectoryUploadedSize(Long directoryUploadedSize) {
Globals.directoryUploadedSize = directoryUploadedSize;
}
public static Long getDirectorySize() {
return directorySize;
}
}