package com.buddycloud; import android.content.Intent; import android.os.Bundle; import android.support.v4.app.FragmentTransaction; import com.actionbarsherlock.app.SherlockFragmentActivity; import com.actionbarsherlock.view.MenuItem; import com.buddycloud.fragments.GenericChannelsFragment; import com.buddycloud.fragments.GenericSelectableChannelsFragment; import com.buddycloud.fragments.adapter.FindFriendsAdapter; import com.buddycloud.fragments.adapter.FollowersAdapter; import com.buddycloud.fragments.adapter.GenericChannelAdapter; import com.buddycloud.fragments.adapter.MostActiveChannelsAdapter; import com.buddycloud.fragments.adapter.PendingSubscriptionsAdapter; import com.buddycloud.fragments.adapter.RecommendedChannelsAdapter; import com.buddycloud.fragments.adapter.SimilarChannelsAdapter; import com.buddycloud.model.SubscribedChannelsModel; import com.buddycloud.utils.ActionbarUtil; import com.facebook.Session; public class GenericChannelActivity extends SherlockFragmentActivity { public final static String ADAPTER_NAME = "com.buddycloud.ADAPTER_NAME"; public static final int REQUEST_CODE = 103; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_generic_channels); String adapterName = getIntent().getStringExtra(ADAPTER_NAME); GenericChannelAdapter adapter = createAdapter(adapterName); if (adapter != null) { ActionbarUtil.showActionBarwithBack(this, adapter.getTitle(getApplicationContext())); } FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); final GenericSelectableChannelsFragment frag = new GenericSelectableChannelsFragment(); frag.setAdapter(adapter); transaction.replace(R.id.contentFrame, frag); transaction.commitAllowingStateLoss(); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: finish(); return true; default: return super.onOptionsItemSelected(item); } } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); Session.getActiveSession().onActivityResult(this, requestCode, resultCode, data); } private GenericChannelAdapter createAdapter(String adapterName) { if (adapterName.equals(MostActiveChannelsAdapter.ADAPTER_NAME)) { return new MostActiveChannelsAdapter(); } if (adapterName.equals(RecommendedChannelsAdapter.ADAPTER_NAME)) { return new RecommendedChannelsAdapter(); } if (adapterName.equals(FindFriendsAdapter.ADAPTER_NAME)) { return new FindFriendsAdapter(); } if (adapterName.equals(SimilarChannelsAdapter.ADAPTER_NAME)) { String channelJid = getIntent().getStringExtra(GenericChannelsFragment.CHANNEL); return new SimilarChannelsAdapter(channelJid); } if (adapterName.equals(FollowersAdapter.ADAPTER_NAME)) { String channelJid = getIntent().getStringExtra(GenericChannelsFragment.CHANNEL); String role = getIntent().getStringExtra(SubscribedChannelsModel.ROLE); return new FollowersAdapter(channelJid, role); } if (adapterName.equals(PendingSubscriptionsAdapter.ADAPTER_NAME)) { String channelJid = getIntent().getStringExtra(GenericChannelsFragment.CHANNEL); String role = getIntent().getStringExtra(SubscribedChannelsModel.ROLE); return new PendingSubscriptionsAdapter(channelJid, role); } return null; } }