package org.ohmage.activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.support.v4.view.ViewPager; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TabHost; import org.ohmage.MobilityHelper; import org.ohmage.R; import org.ohmage.UserPreferencesHelper; import org.ohmage.fragments.MobilityControlFragment; import org.ohmage.fragments.RecentMobilityChartFragment; import org.ohmage.ui.BaseActivity; import org.ohmage.ui.TabsAdapter; public class MobilityActivity extends BaseActivity { private static final String TAG = "MobilityActivity"; TabHost mTabHost; ViewPager mViewPager; TabsAdapter mTabsAdapter; private UserPreferencesHelper mUserPrefs; private boolean mobilityConnected; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mUserPrefs = new UserPreferencesHelper(this); if (!MobilityHelper.isMobilityInstalled(this)) { setContentView(R.layout.mobility_missing); // hook up market link Button installMobilityButton = (Button) findViewById(R.id.mobility_install_btn); installMobilityButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // launch the market and show mobility's details page Intent intent = new Intent(Intent.ACTION_VIEW); intent.setData(Uri.parse(getString(R.string.mobility_market_link))); startActivity(intent); } }); } else { setupTabs(savedInstanceState); } } @Override public void onResume() { super.onResume(); setupTabs(null); } @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); if (mTabHost != null) outState.putString("tab", mTabHost.getCurrentTabTag()); } private void setupTabs(Bundle savedInstanceState) { // If we haven't connected to mobility, but it is installed if (!mobilityConnected && MobilityHelper.isMobilityInstalled(this)) { mobilityConnected = true; setContentView(R.layout.tab_layout); setActionBarShadowVisibility(false); mTabHost = (TabHost) findViewById(android.R.id.tabhost); mTabHost.setup(); mViewPager = (ViewPager) findViewById(R.id.pager); mTabsAdapter = new TabsAdapter(this, mTabHost, mViewPager); if (mUserPrefs.showMobilityFeedback()) { mTabsAdapter.addTab("Analytics", RecentMobilityChartFragment.class, null); } else { findViewById(android.R.id.tabs).setVisibility(View.GONE); } mTabsAdapter.addTab("Control", MobilityControlFragment.class, null); if (savedInstanceState != null) { mTabHost.setCurrentTabByTag(savedInstanceState.getString("tab")); } } } }