package com.bigpupdev.synodroid.ui; import android.app.Activity; import android.content.SharedPreferences; import android.content.res.Configuration; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.view.ViewPager; import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.WindowManager; import android.view.WindowManager.BadTokenException; import com.bigpupdev.synodroid.R; import com.bigpupdev.synodroid.Synodroid; import com.bigpupdev.synodroid.utils.EulaHelper; import com.bigpupdev.synodroid.utils.ViewPagerIndicator; public class AboutActivity extends BaseActivity{ private static final String PREFERENCE_FULLSCREEN = "general_cat.fullscreen"; private static final String PREFERENCE_GENERAL = "general_cat"; MyAdapter mAdapter; ViewPager mPager; ViewPagerIndicator mIndicator; @Override public void onConfigurationChanged(Configuration newConfig) { // ignore orientation change super.onConfigurationChanged(newConfig); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu_about, menu); super.onCreateOptionsMenu(menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { if (item.getItemId() == R.id.menu_licence){ // Diplay the EULA try { EulaHelper.showEula(true, this); } catch (BadTokenException e) { // Unable to show dialog probably because intent has been closed. Ignoring... } } return super.onOptionsItemSelected(item); } /** * Activity creation */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_about); mAdapter = new MyAdapter(getSupportFragmentManager(), 2, this); mPager = (ViewPager)findViewById(R.id.pager); mPager.setAdapter(mAdapter); // Find the indicator from the layout mIndicator = (ViewPagerIndicator)findViewById(R.id.indicator); // Set the indicator as the pageChangeListener mPager.setOnPageChangeListener(mIndicator); // Initialize the indicator. We need some information here: // * What page do we start on. // * How many pages are there in total // * A callback to get page titles mIndicator.init(0, mAdapter.getCount(), mAdapter); mIndicator.setFocusedTextColor(new int[]{255, 255, 255}); mIndicator.setUnfocusedTextColor(new int[]{90, 90, 90}); mIndicator.setOnClickListener(new OnIndicatorClickListener()); attachSlidingMenu(((Synodroid)getApplication()).getServer()); getActivityHelper().setupActionBar(getString(R.string.menu_about), false, getSlidingMenu()); mIndicator.setSlidingMenu(getSlidingMenu()); } @Override protected void onPostCreate(Bundle savedInstanceState) { super.onPostCreate(savedInstanceState); getActivityHelper().setupSubActivity(); } @Override public boolean onSearchRequested() { return false; } /* * (non-Javadoc) * * @see android.app.Activity#onResume() */ @Override protected void onResume() { super.onResume(); try{ if (((Synodroid)getApplication()).DEBUG) Log.v(Synodroid.DS_TAG,"AboutActivity: Resuming about activity."); }catch (Exception ex){/*DO NOTHING*/} // Check for fullscreen SharedPreferences preferences = getSharedPreferences(PREFERENCE_GENERAL, Activity.MODE_PRIVATE); if (preferences.getBoolean(PREFERENCE_FULLSCREEN, false)) { // Set fullscreen or not getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); } else { getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); } } public static class MyAdapter extends FragmentPagerAdapter implements ViewPagerIndicator.PageInfoProvider{ int mItemsNum; private AboutActivity mCurActivity; public MyAdapter(FragmentManager pFm, int pItemNum, AboutActivity pCurActivity) { super(pFm); mItemsNum = pItemNum; mCurActivity = pCurActivity; } @Override public int getCount() { return mItemsNum; } @Override public Fragment getItem(int position) { switch (position){ case 0: return new AboutFragment(); default: return new BetaFragment(); } } public String getTitle(int pos){ switch (pos){ case 0: return mCurActivity.getString(R.string.tab_about); default: return mCurActivity.getString(R.string.tab_beta); } } } class OnIndicatorClickListener implements ViewPagerIndicator.OnClickListener{ public void onCurrentClicked(View v) {} public void onNextClicked(View v) { mPager.setCurrentItem(Math.min(mAdapter.getCount() - 1, mIndicator.getCurrentPosition() + 1)); } public void onPreviousClicked(View v) { mPager.setCurrentItem(Math.max(0, mIndicator.getCurrentPosition() - 1)); } } }