package com.android.smap.activities;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTransaction;
import android.text.TextUtils;
import com.android.smap.R;
import com.android.smap.fragments.BaseFragment;
public class FragmentContainerActivity extends BaseActivity {
private static final String KEY_ARGUMENTS = "KEY_ARGUMENTS";
private static final String KEY_FRAGMENT_NAME = "KEY_FRAGMENT_NAME";
private static final String KEY_TITLE_ID = "KEY_TITLE_ID";
private static final String KEY_TITLE = "KEY_TITLE";
public static class Builder {
private final Intent mIntent;
public Builder(Context context, Class<?> cls) {
mIntent = new Intent(context, FragmentContainerActivity.class);
mIntent.putExtra(KEY_FRAGMENT_NAME, cls.getName());
}
public Builder title(int titleId) {
mIntent.putExtra(KEY_TITLE_ID, titleId);
return this;
}
public Builder title(String title) {
mIntent.putExtra(KEY_TITLE, title);
return this;
}
public Builder arguments(Bundle args) {
mIntent.putExtra(KEY_ARGUMENTS, args);
return this;
}
public Intent build() {
return mIntent;
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_single_fragment);
setTitle();
setFragment();
}
private void setTitle() {
String title = "";
int titleId = getIntent().getIntExtra(KEY_TITLE_ID, 0);
if (titleId != 0) {
title = getResources().getString(titleId);
} else {
title = getIntent().getStringExtra(KEY_TITLE);
}
if (!TextUtils.isEmpty(title)) {
getActionBar().setTitle(title);
}
}
private void setFragment() {
String fragmentName = getIntent().getStringExtra(KEY_FRAGMENT_NAME);
BaseFragment fragment = (BaseFragment) Fragment.instantiate(this, fragmentName);
fragment.setArguments(getIntent().getBundleExtra(KEY_ARGUMENTS));
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.add(R.id.container, fragment);
ft.commit();
}
}