package com.beem.project.beem.account;

import android.accounts.AbstractAccountAuthenticator;
import android.accounts.Account;
import android.accounts.AccountAuthenticatorResponse;
import android.accounts.AccountManager;
import android.accounts.NetworkErrorException;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;

import com.beem.project.beem.ui.wizard.AccountConfigure;

public class Authenticator extends AbstractAccountAuthenticator {

    private Context mContext;

    public Authenticator(Context context) {
	super(context);
	mContext = context;
    }
    
    @Override
    public Bundle addAccount(AccountAuthenticatorResponse response, String accountType, String authTokenType,
	String[] requiredFeatures, Bundle options) throws NetworkErrorException {
	Log.v("AUTHENTICATOR", "Add account request type " + accountType + " token " + authTokenType + " features  " + requiredFeatures + " option " + options);

	Intent intent = new Intent(mContext, AccountConfigure.class);
	intent.putExtra(AccountManager.KEY_ACCOUNT_AUTHENTICATOR_RESPONSE, response);
	Bundle reply = new Bundle();
	reply.putParcelable(AccountManager.KEY_INTENT, intent);
	return reply;
    }

    @Override
    public Bundle confirmCredentials(AccountAuthenticatorResponse response, Account account, Bundle options)
	throws NetworkErrorException {
	Log.e("AUTHENTICATOR", "CONFIRM CREDENTIAL");
	return null;
    }

    @Override
    public Bundle editProperties(AccountAuthenticatorResponse response, String accountType) {
	Log.e("AUTHENTICATOR", "edit properties");
	return null;
    }

    @Override
    public Bundle getAuthToken(AccountAuthenticatorResponse response, Account account, String authTokenType,
	Bundle options) throws NetworkErrorException {
	Log.e("AUTHENTICATOR", "get auth token");
	return null;
    }

    @Override
    public String getAuthTokenLabel(String authTokenType) {
	Log.e("AUTHENTICATOR", "get auth token label");
	return null;
    }

    @Override
    public Bundle hasFeatures(AccountAuthenticatorResponse response, Account account, String[] features)
	throws NetworkErrorException {
	Log.e("AUTHENTICATOR", "has features");
	return null;
    }

    @Override
    public Bundle updateCredentials(AccountAuthenticatorResponse response, Account account, String authTokenType,
	Bundle options) throws NetworkErrorException {
	Log.e("AUTHENTICATOR", "update credentials");
	return null;
	
    }

}
