package com.commonsware.empublite;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.StrictMode;
import android.support.v4.view.ViewPager;
import android.view.Menu;
import android.view.MenuItem;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import io.karim.MaterialTabs;
public class EmPubLiteActivity extends Activity {
private static final String MODEL="model";
private ViewPager pager;
private ContentsAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
setupStrictMode();
pager=(ViewPager)findViewById(R.id.pager);
}
@Override
public void onStart() {
super.onStart();
EventBus.getDefault().register(this);
if (adapter==null) {
ModelFragment mfrag=
(ModelFragment)getFragmentManager().findFragmentByTag(MODEL);
if (mfrag==null) {
getFragmentManager().beginTransaction()
.add(new ModelFragment(), MODEL).commit();
}
else if (mfrag.getBook()!=null) {
setupPager(mfrag.getBook());
}
}
}
@Override
public void onStop() {
EventBus.getDefault().unregister(this);
super.onStop();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.options, menu);
return(super.onCreateOptionsMenu(menu));
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.about:
Intent i = new Intent(this, SimpleContentActivity.class)
.putExtra(SimpleContentActivity.EXTRA_FILE,
"file:///android_asset/misc/about.html");
startActivity(i);
return(true);
case R.id.help:
i = new Intent(this, SimpleContentActivity.class)
.putExtra(SimpleContentActivity.EXTRA_FILE,
"file:///android_asset/misc/help.html");
startActivity(i);
return(true);
}
return(super.onOptionsItemSelected(item));
}
@SuppressWarnings("unused")
@Subscribe(threadMode =ThreadMode.MAIN)
public void onBookLoaded(BookLoadedEvent event) {
setupPager(event.getBook());
}
private void setupPager(BookContents contents) {
adapter=new ContentsAdapter(this, contents);
pager.setAdapter(adapter);
MaterialTabs tabs=(MaterialTabs)findViewById(R.id.tabs);
tabs.setViewPager(pager);
}
private void setupStrictMode() {
StrictMode.ThreadPolicy.Builder builder=
new StrictMode.ThreadPolicy.Builder()
.detectAll()
.penaltyLog();
if (BuildConfig.DEBUG) {
builder.penaltyFlashScreen();
}
StrictMode.setThreadPolicy(builder.build());
}
}