package mil.nga.giat.asam; import java.io.IOException; import mil.nga.giat.asam.db.AsamDbHelper; import mil.nga.giat.asam.map.AllAsamsMapTabletActivity; import mil.nga.giat.asam.util.AsamConstants; import mil.nga.giat.asam.util.AsamLog; import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; import android.preference.PreferenceManager; import android.support.v4.app.FragmentActivity; import com.google.android.gms.maps.GoogleMap; import com.google.android.gms.maps.SupportMapFragment; public class MainActivity extends FragmentActivity { private GoogleMap mMapUI; private boolean mApplicationLaunching; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mApplicationLaunching = false; setUpMapIfNeeded(); } @Override protected void onResume() { super.onResume(); setUpMapIfNeeded(); } private void setUpMapIfNeeded() { if (mMapUI == null) { SupportMapFragment mapFragment = (SupportMapFragment)getSupportFragmentManager().findFragmentById(R.id.main_map_view_ui); mMapUI = mapFragment.getMap(); if (mMapUI != null) { getSupportFragmentManager().beginTransaction().hide(mapFragment).commit(); launchApplication(); } } } private void launchApplication() { if (mApplicationLaunching) { return; } mApplicationLaunching = true; // Make a pre-initialized database if necessary. AsamDbHelper dbHelper = new AsamDbHelper(this); if (!dbHelper.doesSeededAsamDbExist()) { try { dbHelper.initializeSeededAsamDb(); } catch (IOException caught) { AsamLog.e("Error creating DB", caught); } } // Launch to the correct screen. SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this); boolean hideDisclaimer = preferences.getBoolean(AsamConstants.HIDE_DISCLAIMER_KEY, false); Intent intent = null; if (isTablet()) { intent = new Intent(this, AllAsamsMapTabletActivity.class); intent.putExtra(AsamConstants.TABLET_IS_LAUNCHING_KEY, true); } else if (!hideDisclaimer) { intent = new Intent(this, DisclaimerActivity.class); } else { intent = new Intent(this, LaunchScreenActivity.class); } startActivity(intent); finish(); } private boolean isTablet() { return getResources().getBoolean(R.bool.is_tablet); } }