Back to project page AndroidShoppingList.
The source code is released under:
Apache License
If you think the Android project AndroidShoppingList listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
/** * Copyright 2012 C. A. Fitzgerald//from ww w. j a v a 2s .c o m * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.github.riotopsys.shoppinglist.utils; import java.io.IOException; import android.accounts.Account; import android.accounts.AccountManager; import android.accounts.AuthenticatorException; import android.accounts.OperationCanceledException; import android.content.Context; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.preference.PreferenceManager; import com.github.riotopsys.shoppinglist.AppKeys; public class AccountUtils { @SuppressWarnings("unused") private static final String TAG = AccountUtils.class.getSimpleName(); private static String mToken; public String getAccountName(Context ctx) { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ctx); return prefs.getString(AppKeys.PREFS_ACCOUNT_KEY, null); } public Account getAccount(Context ctx) { String target = getAccountName(ctx); if (target == null) { return null; } AccountManager am = AccountManager.get(ctx); Account[] accounts = am.getAccountsByType(AppKeys.ACCOUNT_TYPE); for (Account accout : accounts) { if (target.equals(accout.name)) { return accout; } } return null; } public String getToken(Context ctx) throws OperationCanceledException, AuthenticatorException, IOException { if (mToken != null) { return mToken; } AccountManager am = AccountManager.get(ctx); Account account = getAccount(ctx); if (account == null) { return null; } SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ctx); mToken = prefs.getString(AppKeys.PREFS_TOKEN_KEY, null); if (mToken == null) { mToken = am.blockingGetAuthToken(account, AppKeys.OAUTH2_SCOPE, true); Editor edit = prefs.edit(); edit.putString(AppKeys.PREFS_TOKEN_KEY, mToken); edit.commit(); } return mToken; } public void setAccountName(Context ctx, String account) { Editor editor = PreferenceManager.getDefaultSharedPreferences(ctx).edit(); editor.putString(AppKeys.PREFS_ACCOUNT_KEY, account); editor.commit(); } public void setToken(Context ctx, String token) { Editor editor = PreferenceManager.getDefaultSharedPreferences(ctx).edit(); editor.putString(AppKeys.PREFS_TOKEN_KEY, token); editor.commit(); } public static void invalidate(Context ctx) { Editor edit = PreferenceManager.getDefaultSharedPreferences(ctx).edit(); edit.remove(AppKeys.PREFS_TOKEN_KEY); edit.commit(); mToken = null; } }