Home | History | Annotate | Download | only in accounts
      1 /*
      2  * Copyright (C) 2009 The Android Open Source Project
      3  *
      4  * Licensed under the Apache License, Version 2.0 (the "License");
      5  * you may not use this file except in compliance with the License.
      6  * You may obtain a copy of the License at
      7  *
      8  *      http://www.apache.org/licenses/LICENSE-2.0
      9  *
     10  * Unless required by applicable law or agreed to in writing, software
     11  * distributed under the License is distributed on an "AS IS" BASIS,
     12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13  * See the License for the specific language governing permissions and
     14  * limitations under the License.
     15  */
     16 
     17 package android.accounts;
     18 
     19 import android.accounts.IAccountAuthenticatorResponse;
     20 import android.accounts.Account;
     21 import android.os.Bundle;
     22 
     23 /**
     24  * Service that allows the interaction with an authentication server.
     25  * @hide
     26  */
     27 oneway interface IAccountAuthenticator {
     28     /**
     29      * prompts the user for account information and adds the result to the IAccountManager
     30      */
     31     void addAccount(in IAccountAuthenticatorResponse response, String accountType,
     32         String authTokenType, in String[] requiredFeatures, in Bundle options);
     33 
     34     /**
     35      * prompts the user for the credentials of the account
     36      */
     37     void confirmCredentials(in IAccountAuthenticatorResponse response, in Account account,
     38         in Bundle options);
     39 
     40     /**
     41      * gets the password by either prompting the user or querying the IAccountManager
     42      */
     43     void getAuthToken(in IAccountAuthenticatorResponse response, in Account account,
     44         String authTokenType, in Bundle options);
     45 
     46     /**
     47      * Gets the user-visible label of the given authtoken type.
     48      */
     49     void getAuthTokenLabel(in IAccountAuthenticatorResponse response, String authTokenType);
     50 
     51     /**
     52      * prompts the user for a new password and writes it to the IAccountManager
     53      */
     54     void updateCredentials(in IAccountAuthenticatorResponse response, in Account account,
     55         String authTokenType, in Bundle options);
     56 
     57     /**
     58      * launches an activity that lets the user edit and set the properties for an authenticator
     59      */
     60     void editProperties(in IAccountAuthenticatorResponse response, String accountType);
     61 
     62     /**
     63      * returns a Bundle where the boolean value BOOLEAN_RESULT_KEY is set if the account has the
     64      * specified features
     65      */
     66     void hasFeatures(in IAccountAuthenticatorResponse response, in Account account,
     67         in String[] features);
     68 
     69     /**
     70      * Gets whether or not the account is allowed to be removed.
     71      */
     72     void getAccountRemovalAllowed(in IAccountAuthenticatorResponse response, in Account account);
     73 
     74     /**
     75      * Returns a Bundle containing the required credentials to copy the account across users.
     76      */
     77     void getAccountCredentialsForCloning(in IAccountAuthenticatorResponse response,
     78             in Account account);
     79 
     80     /**
     81      * Uses the Bundle containing credentials from another instance of the authenticator to create
     82      * a copy of the account on this user.
     83      */
     84     void addAccountFromCredentials(in IAccountAuthenticatorResponse response, in Account account,
     85             in Bundle accountCredentials);
     86 }
     87