// 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;
    private boolean hasDefaultAccount() {
        return getDefaultAccount() != null;
    }

    private Account getDefaultAccount() {
        String accountName = spfHelper.getValue(KEY_DEFAULT_ACCOUNT);

        return findAccountByUsername(accountName);
    }

    private void setDefaultAccount(Account defaultAccount) {
        spfHelper.setValue(KEY_DEFAULT_ACCOUNT, defaultAccount.name);

        boolean foundAccount = false;
        Account[] accounts = mAccountManager.getAccounts();
        for (int i = 0; i < accounts.length && !foundAccount; i++) {
            if (accounts[i].name.equals(defaultAccount.name)) {
                foundAccount = true;
            }
        }

        if (!foundAccount) {
            // 默认账户被注销了?
        }
    }

    public boolean hasActiveAccount() {
        return this.activeAccount != null;
    }

// 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;

    private boolean hasDefaultAccount() {
        return getDefaultAccount() != null;
    }

    private Account getDefaultAccount() {
        String accountName = spfHelper.getValue(KEY_DEFAULT_ACCOUNT);

        return findAccountByUsername(accountName);
    }

    private void setDefaultAccount(Account defaultAccount) {
        spfHelper.setValue(KEY_DEFAULT_ACCOUNT, defaultAccount.name);

        boolean foundAccount = false;
        Account[] accounts = mAccountManager.getAccounts();
        for (int i = 0; i < accounts.length && !foundAccount; i++) {
            if (accounts[i].name.equals(defaultAccount.name)) {
                foundAccount = true;
            }
        }

        if (!foundAccount) {
            // 默认账户被注销了?
        }
    }

    public boolean hasActiveAccount() {
        return this.activeAccount != null;
    }

    public TesterUser getActiveAccountInfo() {