package com.boardgamegeek.ui;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import com.boardgamegeek.R;
import com.boardgamegeek.util.UIUtils;
public abstract class TopLevelSinglePaneActivity extends TopLevelActivity {
private static final String TAG_SINGLE_PANE = "single_pane";
private Fragment fragment;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (savedInstanceState == null) {
parseIntent(getIntent());
} else {
fragment = getSupportFragmentManager().findFragmentByTag(TAG_SINGLE_PANE);
}
}
@Override
public void onNewIntent(Intent intent) {
parseIntent(intent);
}
/**
* Called in <code>onCreate</code> when the fragment constituting this activity is needed. The returned fragment's
* arguments will be set to the intent used to invoke this activity.
*/
protected abstract Fragment onCreatePane();
public Fragment getFragment() {
return fragment;
}
private void parseIntent(Intent intent) {
fragment = onCreatePane();
fragment.setArguments(UIUtils.intentToFragmentArguments(intent));
getSupportFragmentManager().beginTransaction().add(R.id.root_container, fragment, TAG_SINGLE_PANE).commit();
}
}