17c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen/* 27c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen * Copyright (C) 2015 The Android Open Source Project 37c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen * 47c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen * Licensed under the Apache License, Version 2.0 (the "License"); 57c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen * you may not use this file except in compliance with the License. 67c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen * You may obtain a copy of the License at 77c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen * 87c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen * http://www.apache.org/licenses/LICENSE-2.0 97c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen * 107c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen * Unless required by applicable law or agreed to in writing, software 117c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen * distributed under the License is distributed on an "AS IS" BASIS, 127c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 137c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen * See the License for the specific language governing permissions and 147c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen * limitations under the License 157c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen */ 167c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen 177c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chenpackage android.telecom; 187c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chenimport android.accounts.AbstractAccountAuthenticator; 197c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chenimport android.accounts.Account; 207c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chenimport android.accounts.AccountAuthenticatorResponse; 217c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chenimport android.accounts.NetworkErrorException; 227c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chenimport android.app.Service; 237c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chenimport android.content.Context; 247c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chenimport android.content.Intent; 257c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chenimport android.os.Bundle; 267c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chenimport android.os.IBinder; 277c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen 287c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen/** 297c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen * A generic stub account authenticator service often used for sync adapters that do not directly 307c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen * involve accounts. 311df9429b6b76710f8dd6458517d04feb7a63826eNancy Chen * 321df9429b6b76710f8dd6458517d04feb7a63826eNancy Chen * @hide 337c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen */ 347c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chenpublic class AuthenticatorService extends Service { 357c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen private static Authenticator mAuthenticator; 367c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen 377c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen @Override 387c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen public void onCreate() { 397c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen mAuthenticator = new Authenticator(this); 407c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen } 417c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen 427c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen @Override 437c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen public IBinder onBind(Intent intent) { 447c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen return mAuthenticator.getIBinder(); 457c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen } 467c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen 477c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen /** 487c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen * Stub account authenticator. All methods either return null or throw an exception. 497c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen */ 507c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen public class Authenticator extends AbstractAccountAuthenticator { 517c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen public Authenticator(Context context) { 527c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen super(context); 537c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen } 547c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen 557c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen @Override 567c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen public Bundle editProperties(AccountAuthenticatorResponse accountAuthenticatorResponse, 577c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen String s) { 587c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen throw new UnsupportedOperationException(); 597c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen } 607c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen 617c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen @Override 627c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen public Bundle addAccount(AccountAuthenticatorResponse accountAuthenticatorResponse, 637c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen String s, String s2, String[] strings, Bundle bundle) 647c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen throws NetworkErrorException { 657c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen return null; 667c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen } 677c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen 687c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen @Override 697c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen public Bundle confirmCredentials(AccountAuthenticatorResponse accountAuthenticatorResponse, 707c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen Account account, Bundle bundle) 717c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen throws NetworkErrorException { 727c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen return null; 737c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen } 747c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen 757c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen @Override 767c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen public Bundle getAuthToken(AccountAuthenticatorResponse accountAuthenticatorResponse, 777c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen Account account, String s, Bundle bundle) 787c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen throws NetworkErrorException { 797c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen throw new UnsupportedOperationException(); 807c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen } 817c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen 827c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen @Override 837c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen public String getAuthTokenLabel(String s) { 847c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen throw new UnsupportedOperationException(); 857c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen } 867c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen 877c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen @Override 887c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen public Bundle updateCredentials(AccountAuthenticatorResponse accountAuthenticatorResponse, 897c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen Account account, String s, Bundle bundle) 907c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen throws NetworkErrorException { 917c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen throw new UnsupportedOperationException(); 927c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen } 937c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen 947c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen @Override 957c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen public Bundle hasFeatures(AccountAuthenticatorResponse accountAuthenticatorResponse, 967c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen Account account, String[] strings) 977c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen throws NetworkErrorException { 987c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen throw new UnsupportedOperationException(); 997c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen } 1007c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen } 1017c07dfa5529dd8049a526de227cae8abc2f72226Nancy Chen} 102