TopFragment.java 3.62 KB
package com.dinhcv.lifelogpedometer.activity;

import android.content.Context;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;

import com.dinhcv.lifelogpedometer.R;
import com.dinhcv.lifelogpedometer.utils.Debug;

public class TopFragment extends FragmentBase implements SettingFragmentPresenter {
    public enum TopFragmentTag {
        TOP_DATE,
        TOP_TODAY,
    }

    private FragmentTransaction mFragmentTransaction;
    private FragmentManager mFragmentManager;

    private View mRootView;
    private FrameLayout mTopLayout;
    private TopDateFragment mTopDateFragment;
    private TopTodayFragment mTopTodayFragment;

    public static final String TOP_DATE_TAG = "top_date";
    public static final String TOP_TODAY_TAG = "top_today";

    public TopFragmentTag mCurrentFragment = TopFragmentTag.TOP_DATE;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle
            savedInstanceState) {
        // Inflate the layout for this fragment
        mRootView = inflater.inflate(R.layout.fragment_top, container, false);
        mFragmentManager = getFragmentManager();
        mFragmentTransaction = mFragmentManager.beginTransaction();

        initView();
        initData();

        return mRootView;
    }

    /**
     */
    private void initView() {
        mTopLayout = (FrameLayout) mRootView.findViewById(R.id.layout_top);

        mTopDateFragment = new TopDateFragment();
        mTopDateFragment.setRootFragment(this);
        mTopTodayFragment = new TopTodayFragment();
        mTopTodayFragment.setRootFragment(this);

        showContentFragment();
    }

    public void showContentFragment() {
        ((PedometerActivity) getActivity()).setVisibleIconHome(false);
        mCurrentFragment = TopFragmentTag.TOP_DATE;
        mFragmentTransaction = mFragmentManager.beginTransaction();
        mFragmentTransaction.replace(mTopLayout.getId(), mTopDateFragment, TOP_DATE_TAG);
        mFragmentTransaction.commit();
    }

    public void showDetailFragment() {
        ((PedometerActivity) getActivity()).setVisibleIconHome(true);
        mCurrentFragment = TopFragmentTag.TOP_TODAY;
        mFragmentTransaction = mFragmentManager.beginTransaction();
        mFragmentTransaction.replace(mTopLayout.getId(), mTopTodayFragment, TOP_TODAY_TAG);
        mFragmentTransaction.commit();
    }

    public void clickBackToHome(){
        switch (mCurrentFragment) {
            case TOP_DATE:
                break;
            case TOP_TODAY:
                showContentFragment();
                break;
            default:
                break;
        }
    }

    /**
     * Init data
     */
    private void initData() {
        Debug.normal("Current fragment : "+ mCurrentFragment);
        if (mCurrentFragment == TopFragmentTag.TOP_DATE){
            ((PedometerActivity) getActivity()).setVisibleIconHome(false);
        }else {
            ((PedometerActivity) getActivity()).setVisibleIconHome(true);
        }
    }

    @Override
    public void onAttach(Context context) {
        super.onAttach(context);

    }

    /**
     * Save data
     */
    @Override
    public void onSaveData() {
    }

    @Override
    public void onInvalidate(boolean isInit) {
        initData();
    }


    @Override
    public void onViewStateRestored(@Nullable Bundle savedInstanceState) {
        super.onViewStateRestored(savedInstanceState);

        initData();
    }

}