package com.evancharlton.mileage;
import android.app.Activity;
import android.app.TabActivity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.inputmethod.InputMethodManager;
import android.widget.TabHost;
import android.widget.TabHost.TabSpec;
public class Mileage extends TabActivity {
public static final String VISIBLE_TAB = "visible_tab";
public static final String TAG_FILLUP = "fillups";
public static final String TAG_HISTORY = "history";
public static final String TAG_STATISTICS = "statistics";
public static final String TAG_VEHICLES = "vehicles";
private TabHost mTabHost;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tabs);
mTabHost = getTabHost();
mTabHost.addTab(createTabSpec(TAG_FILLUP, FillupActivity.class, R.string.fillup,
R.drawable.ic_tab_fillup));
mTabHost.addTab(createTabSpec(TAG_HISTORY, FillupListActivity.class, R.string.history,
R.drawable.ic_tab_history));
mTabHost.addTab(createTabSpec(TAG_STATISTICS, VehicleStatisticsActivity.class,
R.string.statistics, R.drawable.ic_tab_statistics));
mTabHost.addTab(createTabSpec(TAG_VEHICLES, VehicleListActivity.class, R.string.vehicles,
R.drawable.ic_tab_vehicles));
mTabHost.setOnTabChangedListener(new TabHost.OnTabChangeListener() {
@Override
public void onTabChanged(String tabId) {
// hide the virtual keyboard when switching tabs
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(mTabHost.getApplicationWindowToken(), 0);
}
});
String requestedTab = getIntent().getStringExtra(VISIBLE_TAB);
if (requestedTab != null) {
switchTo(requestedTab);
}
}
public void switchToHistoryTab() {
switchTo(TAG_HISTORY);
}
public void switchTo(String tag) {
mTabHost.setCurrentTabByTag(tag);
}
private TabSpec createTabSpec(String tag, Class<? extends Activity> cls, int string, int icon) {
TabSpec spec = mTabHost.newTabSpec(tag);
spec.setContent(new Intent(this, cls));
spec.setIndicator(getString(string), getResources().getDrawable(icon));
return spec;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
add(menu, R.string.service_intervals, ServiceIntervalsListActivity.class).setIcon(
R.drawable.ic_menu_intervals);
add(menu, R.string.import_export, ImportExportActivity.class)
.setIcon(R.drawable.ic_menu_ie);
add(menu, R.string.settings, SettingsActivity.class)
.setIcon(R.drawable.ic_menu_preferences);
return super.onCreateOptionsMenu(menu);
}
private final MenuItem add(final Menu menu, final int string,
final Class<? extends Activity> cls) {
return menu.add(Menu.NONE, string, Menu.NONE, string).setIntent(new Intent(this, cls));
}
}