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