// Path: app/src/main/java/com/testerhome/nativeandroid/models/TesterUser.java
// public class TesterUser {
// 
//     private String id;
//     private String login;
//     private String name;
//     private String avatar_url;
//     private String location;
//     private String website;
//     private String github;
//     private String email;
//     private String company;
//     private String access_token;
//     private String tagline;
// 
//     public String getTagline() {
//         return tagline;
//     }
// 
//     public void setTagline(String tagline) {
//         this.tagline = tagline;
//     }
// 
//     public String getCompany() {
//         return company;
//     }
// 
//     public void setCompany(String company) {
//         this.company = company;
//     }
// 
//     public String getId() {
//         return id;
//     }
// 
//     public void setId(String id) {
//         this.id = id;
//     }
// 
//     public String getLogin() {
//         return login;
//     }
// 
//     public void setLogin(String login) {
//         this.login = login;
//     }
// 
//     public String getName() {
//         return name;
//     }
// 
//     public void setName(String name) {
//         this.name = name;
//     }
// 
//     public String getAvatar_url() {
//         return avatar_url;
//     }
// 
//     public void setAvatar_url(String avatar_url) {
//         this.avatar_url = avatar_url;
//     }
// 
//     public String getLocation() {
//         return location;
//     }
// 
//     public void setLocation(String location) {
//         this.location = location;
//     }
// 
//     public String getWebsite() {
//         return website;
//     }
// 
//     public void setWebsite(String website) {
//         this.website = website;
//     }
// 
//     public String getGithub() {
//         return github;
//     }
// 
//     public void setGithub(String github) {
//         this.github = github;
//     }
// 
//     public String getEmail() {
//         return email;
//     }
// 
//     public void setEmail(String email) {
//         this.email = email;
//     }
// 
//     public String getAccess_token() {
//         return access_token;
//     }
// 
//     public void setAccess_token(String access_token) {
//         this.access_token = access_token;
//     }
// }
// 
// Path: app/src/main/java/com/testerhome/nativeandroid/utils/SharedPreferencesHelper.java
// public class SharedPreferencesHelper {
// 
//     private static final String APP_NAME = "com.testerhome.nativeandroid";
//     public static SharedPreferencesHelper instance;
//     protected Context mContext;
//     protected SharedPreferences sharedPreferences;
// 
// 
//     public SharedPreferencesHelper(Context context) {
//         mContext = context;
//         sharedPreferences = mContext.getSharedPreferences(APP_NAME, 0);
//     }
// 
//     public static synchronized SharedPreferencesHelper getInstance(Context context) {
//         if (null == instance)
//             instance = new SharedPreferencesHelper(context.getApplicationContext());
//         return instance;
//     }
// 
//     public String getValue(String key) {
//         return sharedPreferences.getString(key, "");
//     }
// 
//     public Boolean getBoolValue(String key) {
//         return sharedPreferences.getBoolean(key, false);
//     }
// 
//     public Boolean getBoolean(String key, boolean defaultValue) {
//         return sharedPreferences.getBoolean(key, defaultValue);
//     }
// 
//     public int getIntValue(String key) {
//         return sharedPreferences.getInt(key, 0);
//     }
// 
//     public void setValue(String key, Boolean value) {
//         SharedPreferences.Editor editor = sharedPreferences.edit();
//         editor.putBoolean(key, value);
//         editor.apply();
//     }
// 
//     public void setValue(String key, String value) {
//         SharedPreferences.Editor editor = sharedPreferences.edit();
//         editor.putString(key, value);
//         editor.apply();
//     }
// 
//     public void setValue(String key, int value) {
//         SharedPreferences.Editor editor = sharedPreferences.edit();
//         editor.putInt(key, value);
//         editor.apply();
//     }
// 
//     public void remove(String key) {
//         SharedPreferences.Editor editor = sharedPreferences.edit();
//         editor.remove(key);
//         editor.apply();
//     }
// 
//     public void clear() {
//         SharedPreferences.Editor editor = sharedPreferences.edit();
//         editor.clear();
//         editor.apply();
//     }
// 
//     public Set<String> getSaveKeys() {
//         return sharedPreferences.getAll().keySet();
//     }
// }


import android.accounts.Account;
import android.accounts.AccountManager;
import android.content.Context;
import android.util.Log;
import com.testerhome.nativeandroid.R;
import com.testerhome.nativeandroid.models.TesterUser;
import com.testerhome.nativeandroid.utils.SharedPreferencesHelper;
package com.testerhome.nativeandroid.auth;



/**
 * Created by vclub on 15/10/13.
 */
public class TesterHomeAccountService {
    private static TesterHomeAccountService mInstance;
    private final String KEY_DEFAULT_ACCOUNT = "defaultAccount";
    private final String KEY_USER_DATA_USER_ID = "uer_id";
    private final String KEY_USER_DATA_ACCOUNT_NAME = "username";
    private final String KEY_USER_DATA_NICKNAME = "nickname";
    private final String KEY_USER_DATA_AVATAR = "avatar_url";
    private final String KEY_USER_DATA_LOCATION = "location";
    private final String KEY_USER_DATA_WEBSITE = "website";
    private final String KEY_USER_DATA_GITHUB = "github";
    private final String KEY_USER_DATA_EMAIL = "email";
    private final String KEY_USER_DATA_TOKEN = "access_token";
    private final String KEY_USER_DATA_COMPANY = "company";
    private final String KEY_USER_DATA_TAGLINE = "tagline";


    private Account activeAccount;
    private SharedPreferencesHelper spfHelper;
    private AccountManager mAccountManager;
    private Context mContext;


//    private String access_token;
//    private String token_type;
//    private String expires_in;
//    private String refresh_token;
//    private String craete_at;

    public static synchronized TesterHomeAccountService getInstance(Context ctx){
        if (mInstance == null){
            mInstance = new TesterHomeAccountService(ctx.getApplicationContext());
        }
        return mInstance;
    }

    public TesterHomeAccountService(Context ctx){
        this.mContext = ctx;
// Path: app/src/main/java/com/testerhome/nativeandroid/models/TesterUser.java
// public class TesterUser {
// 
//     private String id;
//     private String login;
//     private String name;
//     private String avatar_url;
//     private String location;
//     private String website;
//     private String github;
//     private String email;
//     private String company;
//     private String access_token;
//     private String tagline;
// 
//     public String getTagline() {
//         return tagline;
//     }
// 
//     public void setTagline(String tagline) {
//         this.tagline = tagline;
//     }
// 
//     public String getCompany() {
//         return company;
//     }
// 
//     public void setCompany(String company) {
//         this.company = company;
//     }
// 
//     public String getId() {
//         return id;
//     }
// 
//     public void setId(String id) {
//         this.id = id;
//     }
// 
//     public String getLogin() {
//         return login;
//     }
// 
//     public void setLogin(String login) {
//         this.login = login;
//     }
// 
//     public String getName() {
//         return name;
//     }
// 
//     public void setName(String name) {
//         this.name = name;
//     }
// 
//     public String getAvatar_url() {
//         return avatar_url;
//     }
// 
//     public void setAvatar_url(String avatar_url) {
//         this.avatar_url = avatar_url;
//     }
// 
//     public String getLocation() {
//         return location;
//     }
// 
//     public void setLocation(String location) {
//         this.location = location;
//     }
// 
//     public String getWebsite() {
//         return website;
//     }
// 
//     public void setWebsite(String website) {
//         this.website = website;
//     }
// 
//     public String getGithub() {
//         return github;
//     }
// 
//     public void setGithub(String github) {
//         this.github = github;
//     }
// 
//     public String getEmail() {
//         return email;
//     }
// 
//     public void setEmail(String email) {
//         this.email = email;
//     }
// 
//     public String getAccess_token() {
//         return access_token;
//     }
// 
//     public void setAccess_token(String access_token) {
//         this.access_token = access_token;
//     }
// }
// 
// Path: app/src/main/java/com/testerhome/nativeandroid/utils/SharedPreferencesHelper.java
// public class SharedPreferencesHelper {
// 
//     private static final String APP_NAME = "com.testerhome.nativeandroid";
//     public static SharedPreferencesHelper instance;
//     protected Context mContext;
//     protected SharedPreferences sharedPreferences;
// 
// 
//     public SharedPreferencesHelper(Context context) {
//         mContext = context;
//         sharedPreferences = mContext.getSharedPreferences(APP_NAME, 0);
//     }
// 
//     public static synchronized SharedPreferencesHelper getInstance(Context context) {
//         if (null == instance)
//             instance = new SharedPreferencesHelper(context.getApplicationContext());
//         return instance;
//     }
// 
//     public String getValue(String key) {
//         return sharedPreferences.getString(key, "");
//     }
// 
//     public Boolean getBoolValue(String key) {
//         return sharedPreferences.getBoolean(key, false);
//     }
// 
//     public Boolean getBoolean(String key, boolean defaultValue) {
//         return sharedPreferences.getBoolean(key, defaultValue);
//     }
// 
//     public int getIntValue(String key) {
//         return sharedPreferences.getInt(key, 0);
//     }
// 
//     public void setValue(String key, Boolean value) {
//         SharedPreferences.Editor editor = sharedPreferences.edit();
//         editor.putBoolean(key, value);
//         editor.apply();
//     }
// 
//     public void setValue(String key, String value) {
//         SharedPreferences.Editor editor = sharedPreferences.edit();
//         editor.putString(key, value);
//         editor.apply();
//     }
// 
//     public void setValue(String key, int value) {
//         SharedPreferences.Editor editor = sharedPreferences.edit();
//         editor.putInt(key, value);
//         editor.apply();
//     }
// 
//     public void remove(String key) {
//         SharedPreferences.Editor editor = sharedPreferences.edit();
//         editor.remove(key);
//         editor.apply();
//     }
// 
//     public void clear() {
//         SharedPreferences.Editor editor = sharedPreferences.edit();
//         editor.clear();
//         editor.apply();
//     }
// 
//     public Set<String> getSaveKeys() {
//         return sharedPreferences.getAll().keySet();
//     }
// }


// Path: app/src/main/java/com/testerhome/nativeandroid/auth/TesterHomeAccountService.java
import android.accounts.Account;
import android.accounts.AccountManager;
import android.content.Context;
import android.util.Log;
import com.testerhome.nativeandroid.R;
import com.testerhome.nativeandroid.models.TesterUser;
import com.testerhome.nativeandroid.utils.SharedPreferencesHelper;

package com.testerhome.nativeandroid.auth;



/**
 * Created by vclub on 15/10/13.
 */
public class TesterHomeAccountService {
    private static TesterHomeAccountService mInstance;
    private final String KEY_DEFAULT_ACCOUNT = "defaultAccount";
    private final String KEY_USER_DATA_USER_ID = "uer_id";
    private final String KEY_USER_DATA_ACCOUNT_NAME = "username";
    private final String KEY_USER_DATA_NICKNAME = "nickname";
    private final String KEY_USER_DATA_AVATAR = "avatar_url";
    private final String KEY_USER_DATA_LOCATION = "location";
    private final String KEY_USER_DATA_WEBSITE = "website";
    private final String KEY_USER_DATA_GITHUB = "github";
    private final String KEY_USER_DATA_EMAIL = "email";
    private final String KEY_USER_DATA_TOKEN = "access_token";
    private final String KEY_USER_DATA_COMPANY = "company";
    private final String KEY_USER_DATA_TAGLINE = "tagline";


    private Account activeAccount;
    private SharedPreferencesHelper spfHelper;
    private AccountManager mAccountManager;
    private Context mContext;


//    private String access_token;
//    private String token_type;
//    private String expires_in;
//    private String refresh_token;
//    private String craete_at;

    public static synchronized TesterHomeAccountService getInstance(Context ctx){
        if (mInstance == null){
            mInstance = new TesterHomeAccountService(ctx.getApplicationContext());
        }
        return mInstance;
    }

    public TesterHomeAccountService(Context ctx){
        this.mContext = ctx;
        this.spfHelper = new SharedPreferencesHelper(ctx);