package com.photoshare.tabHost.tab;
import java.io.File;
import java.util.ArrayList;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.view.Window;
import com.photoshare.cache.FeedsList;
import com.photoshare.command.Command;
import com.photoshare.fragments.BaseFragment;
import com.photoshare.fragments.stacktrace.TraceElement;
import com.photoshare.fragments.stacktrace.TracePhase;
import com.photoshare.service.photos.PhotoBean;
import com.photoshare.service.photos.PhotoBeanReader;
import com.photoshare.service.photos.PhotoType;
import com.photoshare.service.photos.views.FeedsFragment;
import com.photoshare.service.users.UserInfo;
import com.photoshare.tabHost.BaseActivity;
import com.photoshare.tabHost.R;
import com.photoshare.utils.Utils;
public class TabHomeActivity extends BaseActivity {
private PhotoBeanReader reader;
private FeedsList feeds = FeedsList.getInstance();
private final String KEY_FEEDS = "FEEDS";
private String path = Utils.APP_NAME + File.separator + Utils.DIR_HOME
+ File.separator + Utils.DIR_FEED;
private String file = "feeds.xml";
private FeedsFragment ff;
private boolean onStop = false;
@Override
public void onCreate(Bundle savedInstanceState) {
requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
setContentView(R.layout.tab_home_layout_holder);
initFeeds();
initFragments();
}
@Override
protected void onDestroy() {
feeds.writeXML();
super.onDestroy();
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
onStop = true;
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onRestoreInstanceState(savedInstanceState);
if (savedInstanceState != null) {
if (savedInstanceState.containsKey(KEY_FEEDS)) {
ArrayList<PhotoBean> photos = savedInstanceState
.getParcelableArrayList(KEY_FEEDS);
feeds.setFeeds(photos);
}
}
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
if (onStop) {
stack.setCurrentPhase(TracePhase.HOME);
Bundle args = new Bundle();
args.putParcelableArrayList(PhotoBean.KEY_PHOTOS, feeds.getFeeds());
args.putParcelable(UserInfo.KEY_USER_INFO, user.getUserInfo());
Command.forwardTab((BaseFragment) getFragmentManager()
.findFragmentById(R.id.TabHomeLayoutHolderId),
getFeedsFragment(), args);
}
}
@Override
protected void onSaveInstanceState(Bundle outState) {
// TODO Auto-generated method stub
super.onSaveInstanceState(outState);
outState.putParcelableArrayList(KEY_FEEDS, feeds.getFeeds());
}
private String getFeedsFragment() {
return getString(R.string.ffeedsFragment);
}
private void initFragments() {
ff = (FeedsFragment) getFragmentManager().findFragmentById(
R.id.TabHomeLayoutHolderId);
ff = FeedsFragment.newInstance(R.id.TabHomeLayoutHolderId);
ff.setCanonicalTag(getFeedsFragment());
ff.setPhotos(feeds.getFeeds());
ff.setUserInfo(user.getUserInfo());
ff.setType(PhotoType.MyFeeds);
TraceElement element = new TraceElement(getFeedsFragment(), null);
stack.setCurrentPhase(TracePhase.HOME);
stack.forward(element);
// Execute a transaction, replacing any existing fragment
// with this one inside the frame.
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.TabHomeLayoutHolderId, ff);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
ft.commit();
}
private void initFeeds() {
try {
reader = new PhotoBeanReader();
reader.loadListFromXML(feeds.getFeeds(), path, file);
} catch (Exception e) {
}
}
}