content: /*
   * Copyright (C) 2017 MINDORKS NEXTGEN PRIVATE LIMITED
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   *     https://mindorks.com/license/apache-v2
   *
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS,
   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   * See the License for the specific language governing permissions and
   * limitations under the License
   */
  
  package <%= appPackage %>.ui.feed;
  
  import android.content.Context;
  import android.content.Intent;
  import android.os.Bundle;
  import android.support.design.widget.TabLayout;
  import android.support.v4.app.NavUtils;
  import android.support.v4.app.TaskStackBuilder;
  import android.support.v4.view.ViewPager;
  import android.support.v7.widget.Toolbar;
  import android.view.MenuItem;
  
  import <%= appPackage %>.R;
  import <%= appPackage %>.ui.base.BaseActivity;
  
  import javax.inject.Inject;
  
  import butterknife.BindView;
  import butterknife.ButterKnife;
  
  /**
   * Created by janisharali on 25/05/17.
   */
  
  public class FeedActivity extends BaseActivity implements FeedMvpView {
  
      @Inject
      FeedMvpPresenter<FeedMvpView, FeedMvpInteractor> mPresenter;
  
      @Inject
      FeedPagerAdapter mPagerAdapter;
  
      @BindView(R.id.toolbar)
      Toolbar mToolbar;
  
      @BindView(R.id.feed_view_pager)
      ViewPager mViewPager;
  
      @BindView(R.id.tab_layout)
      TabLayout mTabLayout;
  
      public static Intent getStartIntent(Context context) {
          Intent intent = new Intent(context, FeedActivity.class);
          return intent;
      }
  
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_feed);
  
          getActivityComponent().inject(this);
  
          setUnBinder(ButterKnife.bind(this));
  
          mPresenter.onAttach(this);
  
          setUp();
      }
  
      @Override
      protected void setUp() {
  
          setSupportActionBar(mToolbar);
  
          if (getSupportActionBar() != null) {
              getSupportActionBar().setDisplayHomeAsUpEnabled(true);
              getSupportActionBar().setDisplayShowHomeEnabled(true);
          }
  
          mPagerAdapter.setCount(2);
  
          mViewPager.setAdapter(mPagerAdapter);
  
          mTabLayout.addTab(mTabLayout.newTab().setText(getString(R.string.blog)));
          mTabLayout.addTab(mTabLayout.newTab().setText(getString(R.string.open_source)));
  
          mViewPager.setOffscreenPageLimit(mTabLayout.getTabCount());
  
          mViewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(mTabLayout));
  
          mTabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
              @Override
              public void onTabSelected(TabLayout.Tab tab) {
                  mViewPager.setCurrentItem(tab.getPosition());
              }
  
              @Override
              public void onTabUnselected(TabLayout.Tab tab) {
  
              }
  
              @Override
              public void onTabReselected(TabLayout.Tab tab) {
  
              }
          });
      }
  
      @Override
      public boolean onOptionsItemSelected(MenuItem item) {
          switch (item.getItemId()) {
              // Respond to the action bar's Up/Home button
              case android.R.id.home:
                  Intent upIntent = NavUtils.getParentActivityIntent(this);
                  upIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                  if (NavUtils.shouldUpRecreateTask(this, upIntent)) {
                      // This activity is NOT part of this app's task, so create a new task
                      // when navigating up, with a synthesized back stack.
                      TaskStackBuilder.create(this)
                              // Add all of this activity's parents to the back stack
                              .addNextIntentWithParentStack(upIntent)
                              // Navigate up to the closest parent
                              .startActivities();
                  } else {
                      // This activity is part of this app's task, so simply
                      // navigate up to the logical parent activity.
                      NavUtils.navigateUpTo(this, upIntent);
                  }
                  return true;
          }
          return super.onOptionsItemSelected(item);
      }
  
      @Override
      protected void onDestroy() {
          mPresenter.onDetach();
          super.onDestroy();
      }
  }
  