2d81f655e698a145da11c772d3be3c08cf4ce171
[pub/Android/ownCloud.git] / oc_jb_workaround / src / com / owncloud / android / workaround / accounts / AccountAuthenticatorService.java
1 /* ownCloud Jelly Bean Workaround for lost credentials
2 *
3 * Copyright (C) 2013 ownCloud Inc.
4 */
5
6 package com.owncloud.android.workaround.accounts;
7
8 import android.accounts.AbstractAccountAuthenticator;
9 import android.accounts.Account;
10 import android.accounts.AccountAuthenticatorResponse;
11 import android.accounts.AccountManager;
12 import android.accounts.NetworkErrorException;
13 import android.app.Service;
14 import android.content.Context;
15 import android.content.Intent;
16 import android.os.Bundle;
17 import android.os.IBinder;
18
19 public class AccountAuthenticatorService extends Service {
20
21 private AccountAuthenticator mAuthenticator;
22 static final public String ACCOUNT_TYPE = "owncloud";
23
24 @Override
25 public void onCreate() {
26 super.onCreate();
27 mAuthenticator = new AccountAuthenticator(this);
28 }
29
30 @Override
31 public IBinder onBind(Intent intent) {
32 return mAuthenticator.getIBinder();
33 }
34
35
36 public static class AccountAuthenticator extends AbstractAccountAuthenticator {
37
38 public AccountAuthenticator(Context context) {
39 super(context);
40 }
41
42 @Override
43 public Bundle addAccount(AccountAuthenticatorResponse response,
44 String accountType, String authTokenType,
45 String[] requiredFeatures, Bundle options)
46 throws NetworkErrorException {
47 return getCommonResultBundle();
48 }
49
50
51 @Override
52 public Bundle confirmCredentials(AccountAuthenticatorResponse response,
53 Account account, Bundle options) throws NetworkErrorException {
54 return getCommonResultBundle();
55 }
56
57 @Override
58 public Bundle editProperties(AccountAuthenticatorResponse response,
59 String accountType) {
60 return getCommonResultBundle();
61 }
62
63 @Override
64 public Bundle getAuthToken(AccountAuthenticatorResponse response,
65 Account account, String authTokenType, Bundle options)
66 throws NetworkErrorException {
67 return getCommonResultBundle();
68 }
69
70 @Override
71 public String getAuthTokenLabel(String authTokenType) {
72 return "";
73 }
74
75 @Override
76 public Bundle hasFeatures(AccountAuthenticatorResponse response,
77 Account account, String[] features) throws NetworkErrorException {
78 return getCommonResultBundle();
79 }
80
81 @Override
82 public Bundle updateCredentials(AccountAuthenticatorResponse response,
83 Account account, String authTokenType, Bundle options)
84 throws NetworkErrorException {
85 return getCommonResultBundle();
86 }
87
88 @Override
89 public Bundle getAccountRemovalAllowed(
90 AccountAuthenticatorResponse response, Account account)
91 throws NetworkErrorException {
92 return getCommonResultBundle();
93 }
94
95 private Bundle getCommonResultBundle() {
96 Bundle resultBundle = new Bundle();
97 resultBundle.putInt(AccountManager.KEY_ERROR_CODE, AccountManager.ERROR_CODE_UNSUPPORTED_OPERATION);
98 resultBundle.putString(AccountManager.KEY_ERROR_MESSAGE, "This is just a workaround, not a real account authenticator");
99 return resultBundle;
100 }
101
102 }
103 }