diff --git a/app/AndroidManifest.xml b/app/AndroidManifest.xml
index ec4b8b0..61d551d 100644
--- a/app/AndroidManifest.xml
+++ b/app/AndroidManifest.xml
@@ -188,7 +188,17 @@
-
+
+
+
+
+
+
+
+
+
diff --git a/app/src/com/cege/games/release/MainActivity.java b/app/src/com/cege/games/release/MainActivity.java
index 2f6fa72..8ca8181 100644
--- a/app/src/com/cege/games/release/MainActivity.java
+++ b/app/src/com/cege/games/release/MainActivity.java
@@ -167,6 +167,8 @@ public class MainActivity extends UnityPlayerActivity
private AccountManager accountManager;
+ private String accountType = "com.cege.games.auth";
+
@Override
protected void onCreate(Bundle savedInstanceState) {
requestWindowFeature(Window.FEATURE_NO_TITLE);
@@ -208,7 +210,7 @@ public class MainActivity extends UnityPlayerActivity
PayClient payClient = PayClient.getInstance();
payClient.init(this);
- accountManager = AccountManager.get(this);
+ accountManager = AccountManager.get(this.getApplicationContext());
String id = Installation.id(this);
Log.i(TAG, "custom id:: " + id);
Log.i(TAG, "build info::" + Installation.getBuildInfo());
@@ -918,10 +920,17 @@ public class MainActivity extends UnityPlayerActivity
public void storagePass(String funid, String account, String password) {
Log.i(TAG, "storagePass with: " + account + " | " + password);
-
+ Bundle userData = new Bundle();
+ userData.putString("pass", password);
// save to account manage
- final Account act = new Account(account, "main");
- accountManager.addAccountExplicitly(act, password, null);
+ runOnUiThread(() -> {
+ final Account act = new Account(account, accountType);
+ if (accountManager.addAccountExplicitly(act, password, userData)) {
+ Log.i(TAG, "storage pass success");
+ } else {
+ Log.i(TAG, "storage pass error");
+ }
+ });
// runOnUiThread(() -> {
// Intent intent = new Intent(this, BiometricActivity.class);
// intent.putExtra("action", "encrypt");
@@ -934,9 +943,9 @@ public class MainActivity extends UnityPlayerActivity
public void authGetStoragePass(String funid, String account) {
Log.i(TAG, "authGetStoragePass with: " + account);
- Account[] accounts = accountManager.getAccounts();
+ Account[] accounts = accountManager.getAccountsByType(accountType);
for (Account act : accounts) {
- Log.i(TAG, "authGetStoragePass account: " + act.name + " | " + act.type + " | " + accountManager.getPassword(act));
+ Log.i(TAG, "authGetStoragePass account: " + act.name + " | " + act.type );
}
// runOnUiThread(() -> {
// Intent intent = new Intent(this, BiometricActivity.class);
diff --git a/app/src/com/jc/jcfw/accountmanager/Authenticator.java b/app/src/com/jc/jcfw/accountmanager/Authenticator.java
new file mode 100644
index 0000000..4b1a529
--- /dev/null
+++ b/app/src/com/jc/jcfw/accountmanager/Authenticator.java
@@ -0,0 +1,56 @@
+package com.jc.jcfw.accountmanager;
+
+import android.accounts.AbstractAccountAuthenticator;
+import android.accounts.Account;
+import android.accounts.AccountAuthenticatorResponse;
+import android.accounts.NetworkErrorException;
+import android.content.Context;
+import android.os.Bundle;
+
+/**
+ * Created by sebastian on 07-03-16.
+ */
+public class Authenticator extends AbstractAccountAuthenticator {
+
+ private Context context;
+
+ public Authenticator(Context context) {
+ super(context);
+ this.context = context;
+ }
+
+ @Override
+ public Bundle editProperties(AccountAuthenticatorResponse response, String accountType) {
+ return null;
+ }
+
+ @Override
+ public Bundle addAccount(AccountAuthenticatorResponse response, String accountType, String authTokenType, String[] requiredFeatures, Bundle options) throws NetworkErrorException {
+ return null;
+ }
+
+ @Override
+ public Bundle confirmCredentials(AccountAuthenticatorResponse response, Account account, Bundle options) throws NetworkErrorException {
+ return null;
+ }
+
+ @Override
+ public Bundle getAuthToken(AccountAuthenticatorResponse response, Account account, String authTokenType, Bundle options) throws NetworkErrorException {
+ return null;
+ }
+
+ @Override
+ public String getAuthTokenLabel(String authTokenType) {
+ return authTokenType;
+ }
+
+ @Override
+ public Bundle updateCredentials(AccountAuthenticatorResponse response, Account account, String authTokenType, Bundle options) throws NetworkErrorException {
+ return null;
+ }
+
+ @Override
+ public Bundle hasFeatures(AccountAuthenticatorResponse response, Account account, String[] features) throws NetworkErrorException {
+ return null;
+ }
+}
diff --git a/app/src/com/jc/jcfw/accountmanager/AuthenticatorService.java b/app/src/com/jc/jcfw/accountmanager/AuthenticatorService.java
new file mode 100644
index 0000000..4240923
--- /dev/null
+++ b/app/src/com/jc/jcfw/accountmanager/AuthenticatorService.java
@@ -0,0 +1,19 @@
+package com.jc.jcfw.accountmanager;
+
+import android.app.Service;
+import android.content.Intent;
+import android.os.IBinder;
+
+public class AuthenticatorService extends Service {
+ private Authenticator authenticator;
+
+ @Override
+ public void onCreate() {
+ authenticator = new Authenticator(this);
+ }
+
+ @Override
+ public IBinder onBind(Intent intent) {
+ return authenticator.getIBinder();
+ }
+}
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 1daff86..e279c5d 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -13,4 +13,6 @@
Biometric login for Wallet
Login using your biometric credential
Confirm biometric to continue
+
+ store you account
\ No newline at end of file
diff --git a/res/xml/authenticator.xml b/res/xml/authenticator.xml
new file mode 100644
index 0000000..1eda6ad
--- /dev/null
+++ b/res/xml/authenticator.xml
@@ -0,0 +1,5 @@
+
+
\ No newline at end of file