Android Open Source - SyncFrameworkAndroid Authenticator Activity






From Project

Back to project page SyncFrameworkAndroid.

License

The source code is released under:

Apache License

If you think the Android project SyncFrameworkAndroid listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package pl.selvin.android.listsyncsample.authenticator;
/* ww  w.  j a va 2  s. co m*/
import android.accounts.Account;
import android.accounts.AccountAuthenticatorActivity;
import android.accounts.AccountManager;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.content.ContentResolver;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.view.Window;
import android.widget.EditText;
import android.widget.TextView;

import pl.selvin.android.listsyncsample.Constants;
import pl.selvin.android.listsyncsample.R;
import pl.selvin.android.listsyncsample.authenticator.Common.IAuthenticationResult;

public class AuthenticatorActivity extends AccountAuthenticatorActivity
        implements IAuthenticationResult {
    public static final String PARAM_USERNAME = "username";
    public static final String PARAM_AUTHTOKEN_TYPE = "authtokenType";

    private static final String TAG = "AuthenticatorActivity";
    private final Handler mHandler = new Handler();
    private AccountManager mAccountManager;
    private Thread mAuthThread;
    private String mAuthtokenType;
    private TextView mMessage;

    private String mUsername;
    private EditText mUsernameEdit;

    /**
     * {@inheritDoc}
     */
    @Override
    public void onCreate(Bundle icicle) {
        Log.i(TAG, "onCreate(" + icicle + ")");
        super.onCreate(icicle);
        mAccountManager = AccountManager.get(this);
        Log.i(TAG, "loading data from Intent");
        final Intent intent = getIntent();
        mUsername = intent.getStringExtra(PARAM_USERNAME);
        mAuthtokenType = intent.getStringExtra(PARAM_AUTHTOKEN_TYPE);
        requestWindowFeature(Window.FEATURE_LEFT_ICON);
        setContentView(R.layout.login_activity);
        getWindow().setFeatureDrawableResource(Window.FEATURE_LEFT_ICON,
                android.R.drawable.ic_dialog_alert);

        mMessage = (TextView) findViewById(R.id.message);
        mUsernameEdit = (EditText) findViewById(R.id.username_edit);
        mUsernameEdit.setText(mUsername);
        mMessage.setText(getMessage());
    }

    /*
     * {@inheritDoc}
     */
    @Override
    protected Dialog onCreateDialog(int id) {
        final ProgressDialog dialog = new ProgressDialog(this);
        dialog.setMessage(getText(R.string.ui_activity_authenticating));
        dialog.setIndeterminate(true);
        dialog.setCancelable(true);
        dialog.setOnCancelListener(new DialogInterface.OnCancelListener() {
            public void onCancel(DialogInterface dialog) {
                Log.i(TAG, "dialog cancel has been invoked");
                if (mAuthThread != null) {
                    mAuthThread.interrupt();
                    finish();
                }
            }
        });
        return dialog;
    }

    public void handleLogin(View view) {
        mUsername = mUsernameEdit.getText().toString();
        if (TextUtils.isEmpty(mUsername)) {
            mMessage.setText(getMessage());
        } else {
            showDialog(0);
            // Start authenticating...
            mAuthThread = Common.attemptAuth(mUsername, mHandler, this);
        }
    }

    public void onAuthenticationResult(boolean result) {
        dismissDialog(0);
        final Account account = new Account(mUsername, Constants.ACCOUNT_TYPE);
        mAccountManager.addAccountExplicitly(account, "*", null);
        mAccountManager.setAuthToken(account, Constants.AUTHTOKEN_TYPE,
                Common.getAuthtoken());
        ContentResolver
                .setSyncAutomatically(account, Constants.AUTHORITY, true);
        final Intent intent = new Intent();
        intent.putExtra(AccountManager.KEY_ACCOUNT_NAME, mUsername);
        intent.putExtra(AccountManager.KEY_ACCOUNT_TYPE, Constants.ACCOUNT_TYPE);
        if (mAuthtokenType != null
                && mAuthtokenType.equals(Constants.AUTHTOKEN_TYPE)) {
            intent.putExtra(AccountManager.KEY_AUTHTOKEN, Common.getAuthtoken());
        }
        setAccountAuthenticatorResult(intent.getExtras());
        setResult(RESULT_OK, intent);
        finish();
    }

    private CharSequence getMessage() {
        getString(R.string.label);
        if (TextUtils.isEmpty(mUsername)) {
            return getText(R.string.login_activity_newaccount_text);
        }
        return null;
    }
}




Java Source Code List

pl.selvin.android.listsyncsample.Constants.java
pl.selvin.android.listsyncsample.Setup.java
pl.selvin.android.listsyncsample.app.DatePickerFragment.java
pl.selvin.android.listsyncsample.app.TimePickerFragment.java
pl.selvin.android.listsyncsample.authenticator.AuthenticationService.java
pl.selvin.android.listsyncsample.authenticator.AuthenticatorActivity.java
pl.selvin.android.listsyncsample.authenticator.Authenticator.java
pl.selvin.android.listsyncsample.authenticator.Common.java
pl.selvin.android.listsyncsample.provider.Database.java
pl.selvin.android.listsyncsample.provider.ListProvider.java
pl.selvin.android.listsyncsample.support.BaseAuthenticatorActivity.java
pl.selvin.android.listsyncsample.support.SyncHelperBase.java
pl.selvin.android.listsyncsample.support.SyncHelperFroyo.java
pl.selvin.android.listsyncsample.support.SyncHelper.java
pl.selvin.android.listsyncsample.syncadapter.SyncAdapter.java
pl.selvin.android.listsyncsample.syncadapter.SyncService.java
pl.selvin.android.listsyncsample.ui.ConfirmDeleteDialog.java
pl.selvin.android.listsyncsample.ui.EditItemActivity.java
pl.selvin.android.listsyncsample.ui.EditListActivity.java
pl.selvin.android.listsyncsample.ui.ItemActivity.java
pl.selvin.android.listsyncsample.ui.ListActivity.java
pl.selvin.android.listsyncsample.ui.ListFragment.java
pl.selvin.android.listsyncsample.ui.ListsListActivity.java
pl.selvin.android.listsyncsample.ui.ListsListFragment.java
pl.selvin.android.listsyncsample.ui.SyncActivity.java
pl.selvin.android.syncframework.ColumnType.java
pl.selvin.android.syncframework.SetupInterface.java
pl.selvin.android.syncframework.annotation.Cascade.java
pl.selvin.android.syncframework.annotation.Column.java
pl.selvin.android.syncframework.annotation.TableName.java
pl.selvin.android.syncframework.annotation.Table.java
pl.selvin.android.syncframework.content.BaseContentProvider.java
pl.selvin.android.syncframework.content.BlobsTable.java
pl.selvin.android.syncframework.content.CascadeInfo.java
pl.selvin.android.syncframework.content.ColumnInfo.java
pl.selvin.android.syncframework.content.ContentHelper.java
pl.selvin.android.syncframework.content.Helpers.java
pl.selvin.android.syncframework.content.Metadata.java
pl.selvin.android.syncframework.content.TableInfo.java
pl.selvin.android.syncframework.content._.java