package com.mobmonkey.mobmonkeyandroid; import java.util.Stack; import com.mobmonkey.mobmonkeyandroid.R; import com.mobmonkey.mobmonkeyandroid.fragments.TopViewedFragment; import com.mobmonkey.mobmonkeyandroid.fragments.TrendingNowFragment; import com.mobmonkey.mobmonkeyandroid.listeners.*; import com.mobmonkey.mobmonkeyandroid.utils.MMFragment; import android.os.Bundle; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentTransaction; /** * @author Dezapp, LLC * */ public class TrendingNowActivity extends FragmentActivity implements MMOnTrendingFragmentItemClickListener { FragmentManager fragmentManager; Stack<MMFragment> fragmentStack; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_fragment_container); fragmentManager = getSupportFragmentManager(); fragmentStack = new Stack<MMFragment>(); if(findViewById(R.id.llfragmentcontainer) != null) { if(savedInstanceState != null) { return; } TrendingNowFragment trendingNowFragment = new TrendingNowFragment(); fragmentManager.beginTransaction().add(R.id.llfragmentcontainer, fragmentStack.push(trendingNowFragment)).commit(); } } @Override public void onTrendingFragmentItemClick(int position) { MMFragment mmFragment = null; switch(position) { case 0: break; case 1: break; case 2: mmFragment = new TopViewedFragment(); break; case 3: break; } performTransaction(mmFragment); } /** * Handler when back button is pressed, it will not close and destroy the current {@link Activity} but instead it will remain on the current {@link Activity} */ /* (non-Javadoc) * @see android.app.Activity#onBackPressed() */ @Override public void onBackPressed() { if(fragmentStack.size() > 1) { MMFragment mmFragment = fragmentStack.pop(); mmFragment.onFragmentBackPressed(); FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); fragmentTransaction.setCustomAnimations(R.anim.slide_left_in, R.anim.slide_right_out); fragmentTransaction.replace(R.id.llfragmentcontainer, fragmentStack.peek()); fragmentTransaction.commit(); } moveTaskToBack(true); return; } private void performTransaction(MMFragment mmFragment) { FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); fragmentTransaction.setCustomAnimations(R.anim.slide_right_in, R.anim.slide_left_out); fragmentTransaction.replace(R.id.llfragmentcontainer, fragmentStack.push(mmFragment)); fragmentTransaction.commit(); } }