package com.truckmuncher.app.authentication; import android.accounts.Account; import android.content.ContentResolver; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.NavUtils; import android.support.v7.app.AppCompatActivity; import android.view.MenuItem; import com.truckmuncher.app.data.PublicContract; public class AuthenticatorActivity extends AppCompatActivity implements LoginFragment.LoginSuccessCallback { private Fragment fragment; public static Intent newIntent(Context context) { return new Intent(context, AuthenticatorActivity.class); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getSupportActionBar().setDisplayHomeAsUpEnabled(true); fragment = LoginFragment.newInstance(); getSupportFragmentManager().beginTransaction() .add(android.R.id.content, fragment) .commit(); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: NavUtils.navigateUpFromSameTask(this); return true; default: return super.onOptionsItemSelected(item); } } @Override public void onLoginSuccess() { // FIXME Setup the account to be syncable. Needs to be made generic Account account = AccountGeneral.getAccount(this); ContentResolver.setSyncAutomatically(account, PublicContract.CONTENT_AUTHORITY, true); ContentResolver.setIsSyncable(account, PublicContract.CONTENT_AUTHORITY, 1); setResult(RESULT_OK); finish(); } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (fragment != null) { fragment.onActivityResult(requestCode, resultCode, data); } } }