105274d5a0d9ba6559e5f7c5ce82179b01cda2851Sandeep Siddhartha/* 205274d5a0d9ba6559e5f7c5ce82179b01cda2851Sandeep Siddhartha * Copyright (C) 2014 The Android Open Source Project 305274d5a0d9ba6559e5f7c5ce82179b01cda2851Sandeep Siddhartha * 405274d5a0d9ba6559e5f7c5ce82179b01cda2851Sandeep Siddhartha * Licensed under the Apache License, Version 2.0 (the "License"); 505274d5a0d9ba6559e5f7c5ce82179b01cda2851Sandeep Siddhartha * you may not use this file except in compliance with the License. 605274d5a0d9ba6559e5f7c5ce82179b01cda2851Sandeep Siddhartha * You may obtain a copy of the License at 705274d5a0d9ba6559e5f7c5ce82179b01cda2851Sandeep Siddhartha * 805274d5a0d9ba6559e5f7c5ce82179b01cda2851Sandeep Siddhartha * http://www.apache.org/licenses/LICENSE-2.0 905274d5a0d9ba6559e5f7c5ce82179b01cda2851Sandeep Siddhartha * 1005274d5a0d9ba6559e5f7c5ce82179b01cda2851Sandeep Siddhartha * Unless required by applicable law or agreed to in writing, software 1105274d5a0d9ba6559e5f7c5ce82179b01cda2851Sandeep Siddhartha * distributed under the License is distributed on an "AS IS" BASIS, 1205274d5a0d9ba6559e5f7c5ce82179b01cda2851Sandeep Siddhartha * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1305274d5a0d9ba6559e5f7c5ce82179b01cda2851Sandeep Siddhartha * See the License for the specific language governing permissions and 1405274d5a0d9ba6559e5f7c5ce82179b01cda2851Sandeep Siddhartha * limitations under the License. 1505274d5a0d9ba6559e5f7c5ce82179b01cda2851Sandeep Siddhartha */ 1605274d5a0d9ba6559e5f7c5ce82179b01cda2851Sandeep Siddhartha 1705274d5a0d9ba6559e5f7c5ce82179b01cda2851Sandeep Siddharthapackage com.android.inputmethod.latin.accounts; 1805274d5a0d9ba6559e5f7c5ce82179b01cda2851Sandeep Siddhartha 1905274d5a0d9ba6559e5f7c5ce82179b01cda2851Sandeep Siddharthaimport android.accounts.Account; 2005274d5a0d9ba6559e5f7c5ce82179b01cda2851Sandeep Siddharthaimport android.accounts.AccountManager; 2105274d5a0d9ba6559e5f7c5ce82179b01cda2851Sandeep Siddharthaimport android.accounts.AccountManagerCallback; 2205274d5a0d9ba6559e5f7c5ce82179b01cda2851Sandeep Siddharthaimport android.accounts.AccountManagerFuture; 2305274d5a0d9ba6559e5f7c5ce82179b01cda2851Sandeep Siddharthaimport android.accounts.AuthenticatorException; 2405274d5a0d9ba6559e5f7c5ce82179b01cda2851Sandeep Siddharthaimport android.accounts.OperationCanceledException; 2505274d5a0d9ba6559e5f7c5ce82179b01cda2851Sandeep Siddharthaimport android.content.Context; 2605274d5a0d9ba6559e5f7c5ce82179b01cda2851Sandeep Siddharthaimport android.os.Bundle; 2705274d5a0d9ba6559e5f7c5ce82179b01cda2851Sandeep Siddharthaimport android.os.Handler; 2805274d5a0d9ba6559e5f7c5ce82179b01cda2851Sandeep Siddhartha 2905274d5a0d9ba6559e5f7c5ce82179b01cda2851Sandeep Siddharthaimport java.io.IOException; 3005274d5a0d9ba6559e5f7c5ce82179b01cda2851Sandeep Siddhartha 3105274d5a0d9ba6559e5f7c5ce82179b01cda2851Sandeep Siddhartha/** 3205274d5a0d9ba6559e5f7c5ce82179b01cda2851Sandeep Siddhartha * Utility class that handles generation/invalidation of auth tokens in the app. 3305274d5a0d9ba6559e5f7c5ce82179b01cda2851Sandeep Siddhartha */ 3405274d5a0d9ba6559e5f7c5ce82179b01cda2851Sandeep Siddharthapublic class AuthUtils { 3505274d5a0d9ba6559e5f7c5ce82179b01cda2851Sandeep Siddhartha private final AccountManager mAccountManager; 3605274d5a0d9ba6559e5f7c5ce82179b01cda2851Sandeep Siddhartha 3705274d5a0d9ba6559e5f7c5ce82179b01cda2851Sandeep Siddhartha public AuthUtils(Context context) { 3805274d5a0d9ba6559e5f7c5ce82179b01cda2851Sandeep Siddhartha mAccountManager = AccountManager.get(context); 3905274d5a0d9ba6559e5f7c5ce82179b01cda2851Sandeep Siddhartha } 4005274d5a0d9ba6559e5f7c5ce82179b01cda2851Sandeep Siddhartha 4105274d5a0d9ba6559e5f7c5ce82179b01cda2851Sandeep Siddhartha /** 4205274d5a0d9ba6559e5f7c5ce82179b01cda2851Sandeep Siddhartha * @see AccountManager#invalidateAuthToken(String, String) 4305274d5a0d9ba6559e5f7c5ce82179b01cda2851Sandeep Siddhartha */ 4405274d5a0d9ba6559e5f7c5ce82179b01cda2851Sandeep Siddhartha public void invalidateAuthToken(final String accountType, final String authToken) { 4505274d5a0d9ba6559e5f7c5ce82179b01cda2851Sandeep Siddhartha mAccountManager.invalidateAuthToken(accountType, authToken); 4605274d5a0d9ba6559e5f7c5ce82179b01cda2851Sandeep Siddhartha } 4705274d5a0d9ba6559e5f7c5ce82179b01cda2851Sandeep Siddhartha 4805274d5a0d9ba6559e5f7c5ce82179b01cda2851Sandeep Siddhartha /** 4905274d5a0d9ba6559e5f7c5ce82179b01cda2851Sandeep Siddhartha * @see AccountManager#getAuthToken( 5005274d5a0d9ba6559e5f7c5ce82179b01cda2851Sandeep Siddhartha * Account, String, Bundle, boolean, AccountManagerCallback, Handler) 5105274d5a0d9ba6559e5f7c5ce82179b01cda2851Sandeep Siddhartha */ 5205274d5a0d9ba6559e5f7c5ce82179b01cda2851Sandeep Siddhartha public AccountManagerFuture<Bundle> getAuthToken(final Account account, 5305274d5a0d9ba6559e5f7c5ce82179b01cda2851Sandeep Siddhartha final String authTokenType, final Bundle options, final boolean notifyAuthFailure, 5405274d5a0d9ba6559e5f7c5ce82179b01cda2851Sandeep Siddhartha final AccountManagerCallback<Bundle> callback, final Handler handler) { 5505274d5a0d9ba6559e5f7c5ce82179b01cda2851Sandeep Siddhartha return mAccountManager.getAuthToken(account, authTokenType, options, notifyAuthFailure, 5605274d5a0d9ba6559e5f7c5ce82179b01cda2851Sandeep Siddhartha callback, handler); 5705274d5a0d9ba6559e5f7c5ce82179b01cda2851Sandeep Siddhartha } 5805274d5a0d9ba6559e5f7c5ce82179b01cda2851Sandeep Siddhartha 5905274d5a0d9ba6559e5f7c5ce82179b01cda2851Sandeep Siddhartha /** 6005274d5a0d9ba6559e5f7c5ce82179b01cda2851Sandeep Siddhartha * @see AccountManager#blockingGetAuthToken(Account, String, boolean) 6105274d5a0d9ba6559e5f7c5ce82179b01cda2851Sandeep Siddhartha */ 6205274d5a0d9ba6559e5f7c5ce82179b01cda2851Sandeep Siddhartha public String blockingGetAuthToken(final Account account, final String authTokenType, 6305274d5a0d9ba6559e5f7c5ce82179b01cda2851Sandeep Siddhartha final boolean notifyAuthFailure) throws OperationCanceledException, 6405274d5a0d9ba6559e5f7c5ce82179b01cda2851Sandeep Siddhartha AuthenticatorException, IOException { 6505274d5a0d9ba6559e5f7c5ce82179b01cda2851Sandeep Siddhartha return mAccountManager.blockingGetAuthToken(account, authTokenType, notifyAuthFailure); 6605274d5a0d9ba6559e5f7c5ce82179b01cda2851Sandeep Siddhartha } 6705274d5a0d9ba6559e5f7c5ce82179b01cda2851Sandeep Siddhartha} 68