package com.rthoni.stssaguenay.ui.activities; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import com.google.android.gms.ads.AdRequest; import com.google.android.gms.ads.AdView; import com.google.android.gms.ads.MobileAds; import com.luticate.utils.business.LuConsumer; import com.luticate.utils.business.LuPromise; import com.rthoni.stssaguenay.R; import com.rthoni.stssaguenay.dbo.UserFavouriteStopsDbo; import com.rthoni.stssaguenay.dbo.StopsDbo; import com.rthoni.stssaguenay.ui.fragments.StopListPickerFragment; import com.rthoni.stssaguenay.ui.fragments.StopMapPickerFragment; import com.rthoni.stssaguenay.ui.fragments.StopRoutesPickerFragment; public class StopPickerActivity extends AppCompatActivity { public static String MAP_EXTRA_NAME = "MAP_EXTRA"; public static String SELECT_ROUTES_EXTRA_NAME = "SELECT_ROUTES_EXTRA"; public static String FAVOURITE_STOP_EXTRA_NAME = "FAVOURITE_STOP_EXTRA"; public static String STOP_EXTRA_NAME = "STOP_EXTRA"; private boolean _map; private boolean _selectRoutes; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_stop_picker); _map = getIntent().getBooleanExtra(MAP_EXTRA_NAME, false); _selectRoutes = getIntent().getBooleanExtra(SELECT_ROUTES_EXTRA_NAME, true); MobileAds.initialize(getApplicationContext(), getString(R.string.ad_init)); AdView mAdView = (AdView) findViewById(R.id.adView); AdRequest adRequest = new AdRequest.Builder().build(); mAdView.loadAd(adRequest); if (getSupportActionBar() != null) { getSupportActionBar().setDisplayHomeAsUpEnabled(true); } goToStops(); } @Override public boolean onSupportNavigateUp() { if (getSupportFragmentManager().getBackStackEntryCount() == 0) { return super.onSupportNavigateUp(); } getSupportFragmentManager().popBackStack(); return true; } public void goToStops() { LuConsumer consumer = new LuConsumer() { @Override public void execute(StopsDbo data) { if (_selectRoutes) { goToRoutes(data); } else { saveStop(data); } } }; if (_map) { StopMapPickerFragment f = new StopMapPickerFragment(); f.setOnStopSelectedConsumer(consumer); getSupportFragmentManager() .beginTransaction() .replace(R.id.container, f) .commit(); } else { StopListPickerFragment f = new StopListPickerFragment(); f.setOnStopSelectedConsumer(consumer); getSupportFragmentManager() .beginTransaction() .replace(R.id.container, f) .commit(); } } public void goToRoutes(final StopsDbo stopDbo) { StopRoutesPickerFragment f = new StopRoutesPickerFragment(); f.setStopsDbo(stopDbo); f.setOnRoutesSelected(new LuConsumer() { @Override public void execute(UserFavouriteStopsDbo data) { saveFavouriteStop(data); } }); getSupportFragmentManager() .beginTransaction() .replace(R.id.container, f) .addToBackStack("StopRoutesPickerFragment") .commit(); } public void saveStop(StopsDbo stopDbo) { Intent result = new Intent(); result.putExtra(STOP_EXTRA_NAME, stopDbo.toString()); setResult(Activity.RESULT_OK, result); finish(); } public void saveFavouriteStop(UserFavouriteStopsDbo favouriteStopDbo) { Intent result = new Intent(); result.putExtra(FAVOURITE_STOP_EXTRA_NAME, favouriteStopDbo.toString()); setResult(Activity.RESULT_OK, result); finish(); } }