package info.justaway; import android.app.ActionBar; import android.content.Intent; import android.os.Bundle; import android.support.v4.app.FragmentActivity; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.AdapterView; import android.widget.ListView; import info.justaway.adapter.account.AccessTokenAdapter; import info.justaway.fragment.dialog.AccountSwitchDialogFragment; import info.justaway.listener.OnTrashListener; import info.justaway.listener.RemoveAccountListener; import info.justaway.model.AccessTokenManager; import info.justaway.util.ThemeUtil; import twitter4j.auth.AccessToken; public class AccountSettingActivity extends FragmentActivity implements RemoveAccountListener { private AccessTokenAdapter mAccountAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ThemeUtil.setTheme(this); setContentView(R.layout.activity_account_setting); ActionBar actionBar = getActionBar(); if (actionBar != null) { actionBar.setHomeButtonEnabled(true); actionBar.setDisplayHomeAsUpEnabled(true); } mAccountAdapter = new AccessTokenAdapter(this, R.layout.row_account); for (AccessToken accessToken : AccessTokenManager.getAccessTokens()) { mAccountAdapter.add(accessToken); } mAccountAdapter.setOnTrashListener(new OnTrashListener() { @Override public void onTrash(int position) { AccountSwitchDialogFragment.newInstance(mAccountAdapter.getItem(position)).show( getSupportFragmentManager(), "dialog"); } }); ListView listView = (ListView) findViewById(R.id.list_view); listView.setAdapter(mAccountAdapter); listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { AccessToken accessToken = mAccountAdapter.getItem(i); if (AccessTokenManager.getUserId() != accessToken.getUserId()) { Intent data = new Intent(); data.putExtra("accessToken", accessToken); setResult(RESULT_OK, data); finish(); } } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.account_setting, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.add_account: Intent intent = new Intent(this, SignInActivity.class); intent.putExtra("add_account", true); startActivity(intent); break; case android.R.id.home: finish(); break; } return true; } @Override public void removeAccount(AccessToken accessToken) { mAccountAdapter.remove(accessToken); AccessTokenManager.removeAccessToken(accessToken); } }