package com.gojira.ui;
import android.app.Activity;
import android.app.Fragment;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.TabLayout;
import android.support.v13.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import com.gojira.R;
import com.gojira.app.GojiraApp;
import com.orhanobut.hawk.Hawk;
import butterknife.ButterKnife;
import butterknife.InjectView;
/**
* @author Stratos Theodorou
* @version 1.0
* @since 14/05/2015
*/
public class MainActivity extends AppCompatActivity {
@InjectView(R.id.toolbar)
Toolbar mToolbar;
@InjectView(R.id.pager)
ViewPager mPager;
@InjectView(R.id.tabs)
TabLayout mTabs;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
GojiraApp.get(this).getGraph().inject(this);
setContentView(R.layout.activity_main);
ButterKnife.inject(this);
// Setup action bar
setSupportActionBar(mToolbar);
// Setup tabs
MainTabsPagerAdapter adapter = new MainTabsPagerAdapter(this);
mPager.setAdapter(adapter);
mTabs.setupWithViewPager(mPager);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == R.id.action_logout) {
onLogout();
return true;
}
return super.onOptionsItemSelected(item);
}
protected void onLogout() {
// Clear secure information
Hawk.clear();
// Go to login
startActivity(new Intent(this, LoginActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));
finish();
}
static class MainTabsPagerAdapter extends FragmentPagerAdapter {
private static final int POSITION_PROJECTS = 0;
private static final int POSITION_DASHBOARDS = 1;
private static final int POSITION_COUNT = 2;
private Context context;
public MainTabsPagerAdapter(Activity activity) {
super(activity.getFragmentManager());
this.context = activity;
}
@Override
public Fragment getItem(int position) {
switch (position) {
case POSITION_PROJECTS:
return new ProjectListFragment();
case POSITION_DASHBOARDS:
return new DashboardListFragment();
default:
return null;
}
}
@Override
public CharSequence getPageTitle(int position) {
switch (position) {
case POSITION_PROJECTS:
return context.getString(R.string.title_tab_projects);
case POSITION_DASHBOARDS:
return context.getString(R.string.title_tab_dashboards);
default:
return null;
}
}
@Override
public int getCount() {
return POSITION_COUNT;
}
}
}