FOREIGN MODULE android_accounts;

IMPORT
    android_content := "android.content",
    android_os := "android.os",
    java_lang := "java.lang",
    android_app := "android.app",
    android_view := "android.view",
    android_graphics := "android.graphics",
    android_content_res := "android.content.res",
    android_net := "android.net",
    android_database := "android.database",
    android_view_accessibility := "android.view.accessibility",
    android_graphics_drawable := "android.graphics.drawable",
    android_util := "android.util",
    android_content_pm := "android.content.pm",
    java_io := "java.io",
    android_database_sqlite := "android.database.sqlite",
    java_util_concurrent := "java.util.concurrent";

TYPE

  AbstractAccountAuthenticator* = POINTER TO ABSTRACT RECORD (java_lang.Object)    (* Typebound Procedures *)
                                  STATIC
                                    PROCEDURE Init*(p0 : android_content.Context) : AbstractAccountAuthenticator,CONSTRUCTOR;
                                  END;

  Account* = POINTER TO EXTENSIBLE RECORD (java_lang.Object + android_os.Parcelable)    (* Typebound Procedures *)
               name* : java_lang.String;
               type* : java_lang.String;
             STATIC
               CREATOR* : android_os.Parcelable$Creator;
               PROCEDURE Init*(p0 : android_os.Parcel) : Account,CONSTRUCTOR;
               PROCEDURE Init*(p0 : java_lang.String;
                               p1 : java_lang.String) : Account,CONSTRUCTOR;
             END;

  AccountAuthenticatorActivity* = POINTER TO EXTENSIBLE RECORD (android_app.Activity)    (* Typebound Procedures *)
                                  STATIC
                                    PROCEDURE Init*() : AccountAuthenticatorActivity,CONSTRUCTOR;
                                  END;

  AccountAuthenticatorResponse* = POINTER TO EXTENSIBLE RECORD (java_lang.Object + android_os.Parcelable)    (* Typebound Procedures *)
                                  STATIC
                                    CREATOR* : android_os.Parcelable$Creator;
                                    PROCEDURE Init*(p0 : android_os.Parcel) : AccountAuthenticatorResponse,CONSTRUCTOR;
                                  END;

  AccountManager* = POINTER TO EXTENSIBLE RECORD (java_lang.Object)    (* Typebound Procedures *)
                    STATIC
                      ACTION_AUTHENTICATOR_INTENT*        = "android.accounts.AccountAuthenticator";
                      AUTHENTICATOR_ATTRIBUTES_NAME*      = "account-authenticator";
                      AUTHENTICATOR_META_DATA_NAME*       = "android.accounts.AccountAuthenticator";
                      ERROR_CODE_BAD_ARGUMENTS*           = 7;
                      ERROR_CODE_BAD_REQUEST*             = 8;
                      ERROR_CODE_CANCELED*                = 4;
                      ERROR_CODE_INVALID_RESPONSE*        = 5;
                      ERROR_CODE_NETWORK_ERROR*           = 3;
                      ERROR_CODE_REMOTE_EXCEPTION*        = 1;
                      ERROR_CODE_UNSUPPORTED_OPERATION*   = 6;
                      KEY_ACCOUNTS*                       = "accounts";
                      KEY_ACCOUNT_AUTHENTICATOR_RESPONSE* = "accountAuthenticatorResponse";
                      KEY_ACCOUNT_MANAGER_RESPONSE*       = "accountManagerResponse";
                      KEY_ACCOUNT_NAME*                   = "authAccount";
                      KEY_ACCOUNT_TYPE*                   = "accountType";
                      KEY_AUTHENTICATOR_TYPES*            = "authenticator_types";
                      KEY_AUTHTOKEN*                      = "authtoken";
                      KEY_AUTH_FAILED_MESSAGE*            = "authFailedMessage";
                      KEY_AUTH_TOKEN_LABEL*               = "authTokenLabelKey";
                      KEY_BOOLEAN_RESULT*                 = "booleanResult";
                      KEY_ERROR_CODE*                     = "errorCode";
                      KEY_ERROR_MESSAGE*                  = "errorMessage";
                      KEY_INTENT*                         = "intent";
                      KEY_PASSWORD*                       = "password";
                      KEY_USERDATA*                       = "userdata";
                      LOGIN_ACCOUNTS_CHANGED_ACTION*      = "android.accounts.LOGIN_ACCOUNTS_CHANGED";
                      PROCEDURE get*(p0 : android_content.Context) : AccountManager;
                    END;

  AccountManagerCallback* = POINTER TO INTERFACE RECORD (java_lang.Object)    (* Typebound Procedures *)
                            END;

  AccountManagerFuture* = POINTER TO INTERFACE RECORD (java_lang.Object)    (* Typebound Procedures *)
                          END;

  AccountsException* = POINTER TO EXTENSIBLE RECORD (java_lang.Exception)
                       STATIC
                         PROCEDURE Init*(p0 : java_lang.String;
                                         p1 : java_lang.Throwable) : AccountsException,CONSTRUCTOR;
                         PROCEDURE Init*(p0 : java_lang.Throwable) : AccountsException,CONSTRUCTOR;
                         PROCEDURE Init*() : AccountsException,CONSTRUCTOR;
                         PROCEDURE Init*(p0 : java_lang.String) : AccountsException,CONSTRUCTOR;
                       END;

  AuthenticatorDescription* = POINTER TO EXTENSIBLE RECORD (java_lang.Object + android_os.Parcelable)    (* Typebound Procedures *)
                                type*                 : java_lang.String;
                                labelId*              : INTEGER;
                                iconId*               : INTEGER;
                                smallIconId*          : INTEGER;
                                accountPreferencesId* : INTEGER;
                                packageName*          : java_lang.String;
                              STATIC
                                CREATOR* : android_os.Parcelable$Creator;
                                PROCEDURE Init*(p0 : java_lang.String;
                                                p1 : java_lang.String;
                                                p2 : INTEGER;
                                                p3 : INTEGER;
                                                p4 : INTEGER;
                                                p5 : INTEGER) : AuthenticatorDescription,CONSTRUCTOR;
                                PROCEDURE newKey*(p0 : java_lang.String) : AuthenticatorDescription;
                              END;

  AuthenticatorException* = POINTER TO EXTENSIBLE RECORD (AccountsException)
                            STATIC
                              PROCEDURE Init*(p0 : java_lang.String;
                                              p1 : java_lang.Throwable) : AuthenticatorException,CONSTRUCTOR;
                              PROCEDURE Init*(p0 : java_lang.Throwable) : AuthenticatorException,CONSTRUCTOR;
                              PROCEDURE Init*() : AuthenticatorException,CONSTRUCTOR;
                              PROCEDURE Init*(p0 : java_lang.String) : AuthenticatorException,CONSTRUCTOR;
                            END;

  NetworkErrorException* = POINTER TO EXTENSIBLE RECORD (AccountsException)
                           STATIC
                             PROCEDURE Init*(p0 : java_lang.String;
                                             p1 : java_lang.Throwable) : NetworkErrorException,CONSTRUCTOR;
                             PROCEDURE Init*(p0 : java_lang.Throwable) : NetworkErrorException,CONSTRUCTOR;
                             PROCEDURE Init*() : NetworkErrorException,CONSTRUCTOR;
                             PROCEDURE Init*(p0 : java_lang.String) : NetworkErrorException,CONSTRUCTOR;
                           END;

  OnAccountsUpdateListener* = POINTER TO INTERFACE RECORD (java_lang.Object)    (* Typebound Procedures *)
                              END;

  OperationCanceledException* = POINTER TO EXTENSIBLE RECORD (AccountsException)
                                STATIC
                                  PROCEDURE Init*(p0 : java_lang.String;
                                                  p1 : java_lang.Throwable) : OperationCanceledException,CONSTRUCTOR;
                                  PROCEDURE Init*(p0 : java_lang.Throwable) : OperationCanceledException,CONSTRUCTOR;
                                  PROCEDURE Init*() : OperationCanceledException,CONSTRUCTOR;
                                  PROCEDURE Init*(p0 : java_lang.String) : OperationCanceledException,CONSTRUCTOR;
                                END;




PROCEDURE (self:AbstractAccountAuthenticator) addAccount*(    p0 : AccountAuthenticatorResponse;
                                                              p1 : java_lang.String;
                                                              p2 : java_lang.String;
                                                          IN  p3 : ARRAY OF java_lang.String;
                                                              p4 : android_os.Bundle) : android_os.Bundle,NEW,ABSTRACT;

PROCEDURE (self:AbstractAccountAuthenticator) confirmCredentials*(p0 : AccountAuthenticatorResponse;
                                                                  p1 : Account;
                                                                  p2 : android_os.Bundle) : android_os.Bundle,NEW,ABSTRACT;

PROCEDURE (self:AbstractAccountAuthenticator) editProperties*(p0 : AccountAuthenticatorResponse;
                                                              p1 : java_lang.String) : android_os.Bundle,NEW,ABSTRACT;

PROCEDURE (self:AbstractAccountAuthenticator) getAccountRemovalAllowed*(p0 : AccountAuthenticatorResponse;
                                                                        p1 : Account) : android_os.Bundle,NEW,EXTENSIBLE;

PROCEDURE (self:AbstractAccountAuthenticator) getAuthToken*(p0 : AccountAuthenticatorResponse;
                                                            p1 : Account;
                                                            p2 : java_lang.String;
                                                            p3 : android_os.Bundle) : android_os.Bundle,NEW,ABSTRACT;

PROCEDURE (self:AbstractAccountAuthenticator) getAuthTokenLabel*(p0 : java_lang.String) : java_lang.String,NEW,ABSTRACT;

PROCEDURE (self:AbstractAccountAuthenticator) getIBinder*() : android_os.IBinder,NEW;

PROCEDURE (self:AbstractAccountAuthenticator) hasFeatures*(    p0 : AccountAuthenticatorResponse;
                                                               p1 : Account;
                                                           IN  p2 : ARRAY OF java_lang.String) : android_os.Bundle,NEW,ABSTRACT;

PROCEDURE (self:AbstractAccountAuthenticator) updateCredentials*(p0 : AccountAuthenticatorResponse;
                                                                 p1 : Account;
                                                                 p2 : java_lang.String;
                                                                 p3 : android_os.Bundle) : android_os.Bundle,NEW,ABSTRACT;

PROCEDURE (self:Account) describeContents*() : INTEGER,NEW,EXTENSIBLE;

PROCEDURE (self:Account) equals*(p0 : java_lang.Object) : BOOLEAN,EXTENSIBLE;

PROCEDURE (self:Account) hashCode*() : INTEGER,EXTENSIBLE;

PROCEDURE (self:Account) toString*() : java_lang.String,EXTENSIBLE;

PROCEDURE (self:Account) writeToParcel*(p0 : android_os.Parcel;
                                        p1 : INTEGER),NEW,EXTENSIBLE;

PROCEDURE (self:AccountAuthenticatorActivity) finish*(),EXTENSIBLE;

PROCEDURE (self:AccountAuthenticatorActivity) onCreate!(p0 : android_os.Bundle),EXTENSIBLE;

PROCEDURE (self:AccountAuthenticatorActivity) setAccountAuthenticatorResult*(p0 : android_os.Bundle),NEW;

PROCEDURE (self:AccountAuthenticatorResponse) describeContents*() : INTEGER,NEW,EXTENSIBLE;

PROCEDURE (self:AccountAuthenticatorResponse) onError*(p0 : INTEGER;
                                                       p1 : java_lang.String),NEW,EXTENSIBLE;

PROCEDURE (self:AccountAuthenticatorResponse) onRequestContinued*(),NEW,EXTENSIBLE;

PROCEDURE (self:AccountAuthenticatorResponse) onResult*(p0 : android_os.Bundle),NEW,EXTENSIBLE;

PROCEDURE (self:AccountAuthenticatorResponse) writeToParcel*(p0 : android_os.Parcel;
                                                             p1 : INTEGER),NEW,EXTENSIBLE;

PROCEDURE (self:AccountManager) addAccount*(    p0 : java_lang.String;
                                                p1 : java_lang.String;
                                            IN  p2 : ARRAY OF java_lang.String;
                                                p3 : android_os.Bundle;
                                                p4 : android_app.Activity;
                                                p5 : AccountManagerCallback;
                                                p6 : android_os.Handler) : AccountManagerFuture,NEW,EXTENSIBLE;

PROCEDURE (self:AccountManager) addAccountExplicitly*(p0 : Account;
                                                      p1 : java_lang.String;
                                                      p2 : android_os.Bundle) : BOOLEAN,NEW,EXTENSIBLE;

PROCEDURE (self:AccountManager) addOnAccountsUpdatedListener*(p0 : OnAccountsUpdateListener;
                                                              p1 : android_os.Handler;
                                                              p2 : BOOLEAN),NEW,EXTENSIBLE;

PROCEDURE (self:AccountManager) blockingGetAuthToken*(p0 : Account;
                                                      p1 : java_lang.String;
                                                      p2 : BOOLEAN) : java_lang.String,NEW,EXTENSIBLE;

PROCEDURE (self:AccountManager) clearPassword*(p0 : Account),NEW,EXTENSIBLE;

PROCEDURE (self:AccountManager) confirmCredentials*(p0 : Account;
                                                    p1 : android_os.Bundle;
                                                    p2 : android_app.Activity;
                                                    p3 : AccountManagerCallback;
                                                    p4 : android_os.Handler) : AccountManagerFuture,NEW,EXTENSIBLE;

PROCEDURE (self:AccountManager) editProperties*(p0 : java_lang.String;
                                                p1 : android_app.Activity;
                                                p2 : AccountManagerCallback;
                                                p3 : android_os.Handler) : AccountManagerFuture,NEW,EXTENSIBLE;

PROCEDURE (self:AccountManager) getAccounts*() : POINTER TO ARRAY OF Account,NEW,EXTENSIBLE;

PROCEDURE (self:AccountManager) getAccountsByType*(p0 : java_lang.String) : POINTER TO ARRAY OF Account,NEW,EXTENSIBLE;

PROCEDURE (self:AccountManager) getAccountsByTypeAndFeatures*(    p0 : java_lang.String;
                                                              IN  p1 : ARRAY OF java_lang.String;
                                                                  p2 : AccountManagerCallback;
                                                                  p3 : android_os.Handler) : AccountManagerFuture,NEW,EXTENSIBLE;

PROCEDURE (self:AccountManager) getAuthenticatorTypes*() : POINTER TO ARRAY OF AuthenticatorDescription,NEW,EXTENSIBLE;

PROCEDURE (self:AccountManager) getAuthToken*(p0 : Account;
                                              p1 : java_lang.String;
                                              p2 : BOOLEAN;
                                              p3 : AccountManagerCallback;
                                              p4 : android_os.Handler) : AccountManagerFuture,NEW,EXTENSIBLE;

PROCEDURE (self:AccountManager) getAuthToken*(p0 : Account;
                                              p1 : java_lang.String;
                                              p2 : android_os.Bundle;
                                              p3 : android_app.Activity;
                                              p4 : AccountManagerCallback;
                                              p5 : android_os.Handler) : AccountManagerFuture,NEW,EXTENSIBLE;

PROCEDURE (self:AccountManager) getAuthTokenByFeatures*(    p0 : java_lang.String;
                                                            p1 : java_lang.String;
                                                        IN  p2 : ARRAY OF java_lang.String;
                                                            p3 : android_app.Activity;
                                                            p4 : android_os.Bundle;
                                                            p5 : android_os.Bundle;
                                                            p6 : AccountManagerCallback;
                                                            p7 : android_os.Handler) : AccountManagerFuture,NEW,EXTENSIBLE;

PROCEDURE (self:AccountManager) getPassword*(p0 : Account) : java_lang.String,NEW,EXTENSIBLE;

PROCEDURE (self:AccountManager) getUserData*(p0 : Account;
                                             p1 : java_lang.String) : java_lang.String,NEW,EXTENSIBLE;

PROCEDURE (self:AccountManager) invalidateAuthToken*(p0 : java_lang.String;
                                                     p1 : java_lang.String),NEW,EXTENSIBLE;

PROCEDURE (self:AccountManager) peekAuthToken*(p0 : Account;
                                               p1 : java_lang.String) : java_lang.String,NEW,EXTENSIBLE;

PROCEDURE (self:AccountManager) removeAccount*(p0 : Account;
                                               p1 : AccountManagerCallback;
                                               p2 : android_os.Handler) : AccountManagerFuture,NEW,EXTENSIBLE;

PROCEDURE (self:AccountManager) removeOnAccountsUpdatedListener*(p0 : OnAccountsUpdateListener),NEW,EXTENSIBLE;

PROCEDURE (self:AccountManager) setAuthToken*(p0 : Account;
                                              p1 : java_lang.String;
                                              p2 : java_lang.String),NEW,EXTENSIBLE;

PROCEDURE (self:AccountManager) setPassword*(p0 : Account;
                                             p1 : java_lang.String),NEW,EXTENSIBLE;

PROCEDURE (self:AccountManager) setUserData*(p0 : Account;
                                             p1 : java_lang.String;
                                             p2 : java_lang.String),NEW,EXTENSIBLE;

PROCEDURE (self:AccountManager) updateCredentials*(p0 : Account;
                                                   p1 : java_lang.String;
                                                   p2 : android_os.Bundle;
                                                   p3 : android_app.Activity;
                                                   p4 : AccountManagerCallback;
                                                   p5 : android_os.Handler) : AccountManagerFuture,NEW,EXTENSIBLE;

PROCEDURE (self:AccountManagerCallback) run*(p0 : AccountManagerFuture),NEW,ABSTRACT;

PROCEDURE (self:AccountManagerFuture) cancel*(p0 : BOOLEAN) : BOOLEAN,NEW,ABSTRACT;

PROCEDURE (self:AccountManagerFuture) getResult*(p0 : LONGINT;
                                                 p1 : java_util_concurrent.TimeUnit) : java_lang.Object,NEW,ABSTRACT;

PROCEDURE (self:AccountManagerFuture) getResult*() : java_lang.Object,NEW,ABSTRACT;

PROCEDURE (self:AccountManagerFuture) isCancelled*() : BOOLEAN,NEW,ABSTRACT;

PROCEDURE (self:AccountManagerFuture) isDone*() : BOOLEAN,NEW,ABSTRACT;

PROCEDURE (self:AuthenticatorDescription) describeContents*() : INTEGER,NEW,EXTENSIBLE;

PROCEDURE (self:AuthenticatorDescription) equals*(p0 : java_lang.Object) : BOOLEAN,EXTENSIBLE;

PROCEDURE (self:AuthenticatorDescription) hashCode*() : INTEGER,EXTENSIBLE;

PROCEDURE (self:AuthenticatorDescription) toString*() : java_lang.String,EXTENSIBLE;

PROCEDURE (self:AuthenticatorDescription) writeToParcel*(p0 : android_os.Parcel;
                                                         p1 : INTEGER),NEW,EXTENSIBLE;

PROCEDURE (self:OnAccountsUpdateListener) onAccountsUpdated*(IN  p0 : ARRAY OF Account),NEW,ABSTRACT;

END android_accounts.