package org.goodev.discourse;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.NavUtils;
import android.support.v4.widget.SlidingPaneLayout;
import android.view.MenuItem;
import android.view.Window;
import org.goodev.discourse.ui.CreatedByTopicsFragment;
import org.goodev.discourse.ui.PrivateMsgFragment;
import org.goodev.discourse.ui.UserActionsFragment;
import org.goodev.discourse.ui.UserFragment;
import org.goodev.discourse.ui.UserFragment.UserActionsListener;
import org.goodev.discourse.utils.Utils;
public class UserActivity extends FragmentActivity implements UserActionsListener {
SlidingPaneLayout mSlidingPane;
private String mUsername;
private int mCurrentType;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
setContentView(R.layout.activity_user);
mUsername = getIntent().getStringExtra(Utils.EXTRA_NAME);
setupActionBar();
initViews(savedInstanceState);
}
private void initViews(Bundle savedInstanceState) {
mSlidingPane = (SlidingPaneLayout) findViewById(R.id.sliding_pane);
mSlidingPane.setShadowResource(R.drawable.drawer_shadow);
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction().add(R.id.pane1, UserFragment.newInstance(mUsername), "pane1").commit();
getSupportFragmentManager().beginTransaction().add(R.id.pane2, UserActionsFragment.newInstance(mUsername, UserActionsFragment.TYPE_ALL), "pane1").commit();
}
mSlidingPane.openPane();
}
private void setupActionBar() {
getActionBar().setDisplayHomeAsUpEnabled(true);
CharSequence title = getString(R.string.title_activity_user, mUsername);
getActionBar().setTitle(title);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
// This ID represents the Home or Up button. In the case of this
// activity, the Up button is shown. Use NavUtils to allow users
// to navigate up one level in the application structure. For
// more details, see the Navigation pattern on Android Design:
//
// http://developer.android.com/design/patterns/navigation.html#up-vs-back
//
NavUtils.navigateUpFromSameTask(this);
// finish();
return true;
}
return super.onOptionsItemSelected(item);
}
@Override
public void onActionClicked(int type) {
if (type == mCurrentType) {
mSlidingPane.closePane();
return;
}
mCurrentType = type;
Fragment f = null;
if (type == UserActionsFragment.TYPE_ALL_PRIVATE_MSG || type == UserActionsFragment.TYPE_MIN_PRIVATE_MSG || type == UserActionsFragment.TYPE_UNREAD_PRIVATE_MSG) {
f = PrivateMsgFragment.newInstance(type, mUsername);
} else if (type == UserActionsFragment.TYPE_TOPIC) {
f = CreatedByTopicsFragment.newInstance(mUsername);
} else {
f = UserActionsFragment.newInstance(mUsername, type);
}
getSupportFragmentManager().beginTransaction().replace(R.id.pane2, f, "pane1").commit();
mSlidingPane.closePane();
}
@Override
public void onBackPressed() {
if (!mSlidingPane.openPane()) {
super.onBackPressed();
}
}
}