package com.rubika.aotalk.aou; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.util.List; import java.util.Vector; 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; 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; public class AOU extends SherlockFragmentActivity implements ViewPager.OnPageChangeListener { private static final String APP_TAG = "--> The Leet :: AOU"; private static Context context; public static ViewPager fragmentPager; private static TitlePageIndicator titleIndicator; private static List<SherlockListFragment> fragments; private static SharedPreferences settings; public static boolean isTablet = false; private String searchString = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //super.setTheme(R.style.Theme_AOTalkTheme_Light); setContentView(R.layout.aou); settings = PreferenceManager.getDefaultSharedPreferences(this); context = this; Intent intent = getIntent(); Bundle extras = intent.getExtras(); if (extras != null) { searchString = extras.getString("text"); try { searchString = URLEncoder.encode(searchString, "UTF-8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } Logging.log(APP_TAG, "got extras text: " + searchString); } if (getIntent().getData() != null) { if(getIntent().getData().toString().startsWith("gitem://")) { searchString = getIntent().getData().toString().replace("gitem://", ""); try { searchString = URLEncoder.encode(searchString, "UTF-8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } Logging.log(APP_TAG, "got intent text: " + searchString); } } if (searchString != null) { setTitle(getString(R.string.search_results)); } EasyTracker.getInstance().setContext(this); final ActionBar bar = getSupportActionBar(); bar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD); bar.setDisplayHomeAsUpEnabled(true); fragments = new Vector<SherlockListFragment>(); if (searchString == null) { fragments.add(FragmentNews.newInstance(this)); } fragments.add(FragmentGuides.newInstance(this, searchString)); if (searchString == null) { fragments.add(FragmentCalendar.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, ActivityNews.DataFragment.newInstance( this, intent.getExtras().getString("title"), intent.getExtras().getString("text"), intent.getExtras().getString("date"), intent.getExtras().getString("link") )); break; case 2: ft.replace(R.id.datafragment, ActivityGuide.DataFragment.newInstance( this, intent.getExtras().getString("title"), intent.getExtras().getString("id") )); break; case 3: ft.replace(R.id.datafragment, ActivityCalendar.DataFragment.newInstance( this, intent.getExtras().getString("title"), intent.getExtras().getString("text"), intent.getExtras().getString("date"), intent.getExtras().getString("link") )); 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(); } 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 protected void onResume() { super.onResume(); setTitleIndicator(); } @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()); } } @Override public boolean onCreateOptionsMenu(Menu menu) { getSupportMenuInflater().inflate(R.menu.menu_aou, 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 AOU.context; } @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); outState.putInt("tab", getSupportActionBar().getSelectedNavigationIndex()); } }