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.View;
import android.view.WindowManager;
import com.bigpupdev.synodroid.R;
import com.bigpupdev.synodroid.Synodroid;
import com.bigpupdev.synodroid.utils.ViewPagerIndicator;
public class HelpActivity 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);
}
/**
* Activity creation
*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_help);
mAdapter = new MyAdapter(getSupportFragmentManager(), 6, 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.help), 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,"HelpActivity: 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 HelpActivity mCurActivity;
public MyAdapter(FragmentManager pFm, int pItemNum, HelpActivity 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 SynologyInfoFragment();
case 1:
return new AddServerFragment();
case 2:
return new AddDownloadFragment();
case 3:
return new SearchEngineFragment();
case 4:
return new UpgradeProFragment();
default:
return new HelpFragment();
}
}
public String getTitle(int pos){
switch (pos){
case 0:
return mCurActivity.getString(R.string.tab_synology);
case 1:
return mCurActivity.getString(R.string.tab_server);
case 2:
return mCurActivity.getString(R.string.tab_download);
case 3:
return mCurActivity.getString(R.string.tab_search);
case 4:
return mCurActivity.getString(R.string.tab_pro);
default:
return mCurActivity.getString(R.string.help);
}
}
}
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));
}
}
}