package com.rubika.aotalk.recipebook;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.List;
import java.util.Vector;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.view.ViewPager;
import android.view.View;
import com.actionbarsherlock.app.ActionBar;
import com.actionbarsherlock.app.SherlockFragmentActivity;
import com.actionbarsherlock.app.SherlockListFragment;
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuItem;
import com.google.analytics.tracking.android.EasyTracker;
import com.rubika.aotalk.Preferences;
import com.rubika.aotalk.R;
import com.rubika.aotalk.util.Logging;
import com.viewpagerindicator.TitlePageIndicator;
public class RecipeBook extends SherlockFragmentActivity implements ViewPager.OnPageChangeListener {
protected static final String APP_TAG = "--> The Leet :: RecipeBook";
private static Context context;
public String searchId = null;
public String searchText = null;
public boolean isTablet = false;
public static ViewPager fragmentPager;
private static TitlePageIndicator titleIndicator;
private static List<SherlockListFragment> fragments;
private static SharedPreferences settings;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//super.setTheme(R.style.Theme_AOTalkTheme_Light);
setContentView(R.layout.recipebook);
context = this;
settings = PreferenceManager.getDefaultSharedPreferences(this);
Intent intent = getIntent();
Bundle extras = intent.getExtras();
if (extras != null) {
searchId = extras.getString("id");
searchText = extras.getString("text");
try {
if (searchText != null) {
searchText = URLEncoder.encode(searchText, "UTF-8").replace("+", "%20");
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
Logging.log(APP_TAG, "got extras id: " + searchId);
Logging.log(APP_TAG, "got extras text: " + searchText);
}
if (getIntent().getData() != null) {
if(getIntent().getData().toString().startsWith("aorb://")) {
searchId = getIntent().getData().toString().replace("aorb://", "");
Logging.log(APP_TAG, "got intent id: " + searchId);
}
}
if (searchText != null || searchId != null) {
setTitle(getString(R.string.search_results));
}
final ActionBar bar = getSupportActionBar();
bar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
bar.setDisplayHomeAsUpEnabled(true);
fragments = new Vector<SherlockListFragment>();
fragments.add(FragmentActivityRecipes.DataListFragment.newInstance(this));
FragmentAdapter fragmentAdapter = new FragmentAdapter(super.getSupportFragmentManager(), fragments);
fragmentPager = (ViewPager) findViewById(R.id.fragmentpager);
fragmentPager.setAdapter(fragmentAdapter);
fragmentPager.setOnPageChangeListener(this);
fragmentPager.setPageMargin(0);
titleIndicator = (TitlePageIndicator)findViewById(R.id.titles);
titleIndicator.setViewPager(fragmentPager);
setTitleIndicator();
if (findViewById(R.id.datafragment) != null) {
isTablet = true;
}
}
public void loadFragment(Intent intent, int type) {
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
switch(type) {
case 1:
ft.replace(R.id.datafragment, ActivityRecipe.DataFragment.newInstance(
this,
intent.getExtras().getString("id")
));
break;
}
ft.commit();
}
public void unloadFragment() {
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
if (fm.findFragmentById(0) != null) {
ft.remove(fm.findFragmentById(0));
} else {
fm.popBackStack();
}
ft.commit();
}
@Override
protected void onResume() {
super.onResume();
}
@Override
protected void onStart() {
super.onStart();
try {
EasyTracker.getInstance().activityStart(this);
} catch (IllegalStateException e) {
Logging.log(APP_TAG, e.getMessage());
}
}
@Override
protected void onStop() {
super.onStop();
try {
EasyTracker.getInstance().activityStop(this);
} catch (IllegalStateException e) {
Logging.log(APP_TAG, e.getMessage());
}
}
private static void setTitleIndicator() {
if (settings.getBoolean("hideTitles", false)) {
titleIndicator.setVisibility(View.GONE);
} else {
titleIndicator.setVisibility(View.VISIBLE);
}
}
@Override
public void onPageScrollStateChanged(int arg0) {
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
}
@Override
public void onPageSelected(int arg0) {
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getSupportMenuInflater().inflate(R.menu.menu_aorb, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
finish();
return true;
case R.id.preferences:
Intent intent = new Intent(this, Preferences.class);
startActivity(intent);
return true;
default:
return super.onOptionsItemSelected(item);
}
}
public static Context getAppContext() {
return RecipeBook.context;
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt("tab", getSupportActionBar().getSelectedNavigationIndex());
}
}