package com.rogoapp; import com.actionbarsherlock.app.SherlockPreferenceActivity; import com.actionbarsherlock.view.Menu; import com.actionbarsherlock.view.MenuItem; import com.actionbarsherlock.view.MenuItem.OnMenuItemClickListener; import com.rogoapp.auth.RegisterActivity; import com.rogoapp.auth.RogoAuthenticatorActivity; import android.accounts.Account; import android.accounts.AccountManager; import android.content.Intent; import android.os.Bundle; public class UserSettingsActivity extends SherlockPreferenceActivity{ @Override public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); addPreferencesFromResource(R.layout.user_settings); } public boolean onCreateOptionsMenu(Menu menu) { menu.add(Menu.NONE, 1, 1, "Logout") .setOnMenuItemClickListener(this.LogoutClickListener) .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM | MenuItem.SHOW_AS_ACTION_WITH_TEXT); return true; } OnMenuItemClickListener LogoutClickListener = new OnMenuItemClickListener(){ @Override public boolean onMenuItemClick(MenuItem item){ AccountManager am = AccountManager.get(SplashScreen.showContext()); Account account = am.getAccountsByType(RogoAuthenticatorActivity.PARAM_AUTHTOKEN_TYPE)[0]; //clears the stored password and invalidates the current auth-token if one exists String authToken = am.peekAuthToken(account, RogoAuthenticatorActivity.PARAM_AUTHTOKEN_TYPE); am.clearPassword(account); am.invalidateAuthToken(account.type, authToken); am.removeAccount(account, null, null); Intent intent = new Intent(SplashScreen.showContext(), RogoAuthenticatorActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_NO_HISTORY | Intent.FLAG_ACTIVITY_CLEAR_TASK); startActivity(intent); return true; } }; /* @Override public boolean onOptionsItemSelected(MenuItem item){ switch(item.getItemId()){ case 0: startActivity(new Intent(this, ShowSettingsActivity.class)); return true; } return false; } */ }