Search in sources :

Example 1 with ExternalApiHelper

use of net.osmand.plus.helpers.ExternalApiHelper in project Osmand by osmandapp.

the class MapActivity method onResume.

@Override
protected void onResume() {
    super.onResume();
    long tm = System.currentTimeMillis();
    if (app.getMapMarkersHelper().getPlanRouteContext().isFragmentVisible()) {
        PlanRouteFragment.showInstance(this);
    }
    if (app.isApplicationInitializing() || DashboardOnMap.staticVisible) {
        if (!dashboardOnMap.isVisible()) {
            if (settings.SHOW_DASHBOARD_ON_START.get()) {
                dashboardOnMap.setDashboardVisibility(true, DashboardOnMap.staticVisibleType);
            } else {
                if (ErrorBottomSheetDialog.shouldShow(settings, this)) {
                    SecondSplashScreenFragment.SHOW = false;
                    new ErrorBottomSheetDialog().show(getSupportFragmentManager(), "dialog");
                } else if (RateUsBottomSheetDialog.shouldShow(app)) {
                    SecondSplashScreenFragment.SHOW = false;
                    new RateUsBottomSheetDialog().show(getSupportFragmentManager(), "dialog");
                }
            }
        } else {
            dashboardOnMap.updateDashboard();
        }
    }
    dashboardOnMap.updateLocation(true, true, false);
    getMyApplication().getNotificationHelper().refreshNotifications();
    // fixing bug with action bar appearing on android 2.3.3
    if (getSupportActionBar() != null) {
        getSupportActionBar().hide();
    }
    app.getLocationProvider().checkIfLastKnownLocationIsValid();
    // for voice navigation
    ApplicationMode routingAppMode = getRoutingHelper().getAppMode();
    if (routingAppMode != null && settings.AUDIO_STREAM_GUIDANCE.getModeValue(routingAppMode) != null) {
        setVolumeControlStream(settings.AUDIO_STREAM_GUIDANCE.getModeValue(routingAppMode));
    } else {
        setVolumeControlStream(AudioManager.STREAM_MUSIC);
    }
    changeKeyguardFlags();
    applicationModeListener = new StateChangedListener<ApplicationMode>() {

        @Override
        public void stateChanged(ApplicationMode change) {
            updateApplicationModeSettings();
        }
    };
    settings.APPLICATION_MODE.addListener(applicationModeListener);
    updateApplicationModeSettings();
    // if destination point was changed try to recalculate route
    TargetPointsHelper targets = app.getTargetPointsHelper();
    RoutingHelper routingHelper = app.getRoutingHelper();
    if (routingHelper.isFollowingMode() && (!Algorithms.objectEquals(targets.getPointToNavigate().point, routingHelper.getFinalLocation()) || !Algorithms.objectEquals(targets.getIntermediatePointsLatLonNavigation(), routingHelper.getIntermediatePoints()))) {
        targets.updateRouteAndRefresh(true);
    }
    app.getLocationProvider().resumeAllUpdates();
    if (settings != null && settings.isLastKnownMapLocation() && !intentLocation) {
        LatLon l = settings.getLastKnownMapLocation();
        mapView.setLatLon(l.getLatitude(), l.getLongitude());
        mapView.setIntZoom(settings.getLastKnownMapZoom());
    } else {
        intentLocation = false;
    }
    settings.MAP_ACTIVITY_ENABLED.set(true);
    checkExternalStorage();
    showAndHideMapPosition();
    readLocationToShow();
    OsmandPlugin.onMapActivityResume(this);
    final Intent intent = getIntent();
    if (intent != null) {
        if (Intent.ACTION_VIEW.equals(intent.getAction())) {
            if (intent.getData() != null) {
                final Uri data = intent.getData();
                final String scheme = data.getScheme();
                if ("file".equals(scheme)) {
                    importHelper.handleFileImport(data, new File(data.getPath()).getName(), true);
                    setIntent(null);
                } else if ("content".equals(scheme)) {
                    importHelper.handleContentImport(data, true);
                    setIntent(null);
                } else if ("google.navigation".equals(scheme) || "osmand.navigation".equals(scheme)) {
                    parseNavigationIntent(data);
                } else if ("osmand.api".equals(scheme)) {
                    ExternalApiHelper apiHelper = new ExternalApiHelper(this);
                    Intent result = apiHelper.processApiRequest(intent);
                    setResult(apiHelper.getResultCode(), result);
                    result.setAction(null);
                    setIntent(result);
                    if (apiHelper.needFinish()) {
                        finish();
                    }
                }
            }
        }
        if (intent.hasExtra(MapMarkersDialogFragment.OPEN_MAP_MARKERS_GROUPS)) {
            Bundle openMapMarkersGroupsExtra = intent.getBundleExtra(MapMarkersDialogFragment.OPEN_MAP_MARKERS_GROUPS);
            if (openMapMarkersGroupsExtra != null) {
                MapMarkersDialogFragment.showInstance(this, openMapMarkersGroupsExtra.getString(MapMarkersHelper.MapMarkersGroup.MARKERS_SYNC_GROUP_ID));
            }
            setIntent(null);
        }
    }
    mapView.refreshMap(true);
    if (atlasMapRendererView != null) {
        atlasMapRendererView.handleOnResume();
    }
    app.getDownloadThread().setUiActivity(this);
    if (mapViewTrackingUtilities.getShowRouteFinishDialog()) {
        DestinationReachedMenu.show(this);
        mapViewTrackingUtilities.setShowRouteFinishDialog(false);
    }
    routingHelper.addListener(this);
    app.getMapMarkersHelper().addListener(this);
    DiscountHelper.checkAndDisplay(this);
    QuickSearchDialogFragment searchDialogFragment = getQuickSearchDialogFragment();
    if (searchDialogFragment != null) {
        if (searchDialogFragment.isSearchHidden()) {
            searchDialogFragment.hide();
            searchDialogFragment.restoreToolbar();
        }
    }
    getMyApplication().getAppCustomization().resumeActivity(MapActivity.class, this);
    if (System.currentTimeMillis() - tm > 50) {
        System.err.println("OnCreate for MapActivity took " + (System.currentTimeMillis() - tm) + " ms");
    }
    boolean showWelcomeScreen = ((app.getAppInitializer().isFirstTime() && Version.isDeveloperVersion(app)) || !app.getResourceManager().isAnyMapInstalled()) && FirstUsageWelcomeFragment.SHOW;
    if (!showWelcomeScreen && !permissionDone && !app.getAppInitializer().isFirstTime()) {
        if (!permissionAsked) {
            if (app.isExternalStorageDirectoryReadOnly() && getSupportFragmentManager().findFragmentByTag(DataStoragePlaceDialogFragment.TAG) == null) {
                if (DownloadActivity.hasPermissionToWriteExternalStorage(this)) {
                    DataStoragePlaceDialogFragment.showInstance(getSupportFragmentManager(), true);
                } else {
                    ActivityCompat.requestPermissions(this, new String[] { Manifest.permission.WRITE_EXTERNAL_STORAGE }, DownloadActivity.PERMISSIONS_REQUEST_WRITE_EXTERNAL_STORAGE);
                }
            }
        } else {
            if (permissionGranted) {
                restartApp();
            } else if (getSupportFragmentManager().findFragmentByTag(DataStoragePlaceDialogFragment.TAG) == null) {
                DataStoragePlaceDialogFragment.showInstance(getSupportFragmentManager(), true);
            }
            permissionAsked = false;
            permissionGranted = false;
            permissionDone = true;
        }
    }
    enableDrawer();
    if (showWelcomeScreen) {
        SecondSplashScreenFragment.SHOW = false;
        getSupportFragmentManager().beginTransaction().add(R.id.fragmentContainer, new FirstUsageWelcomeFragment(), FirstUsageWelcomeFragment.TAG).commitAllowingStateLoss();
    } else if (!isFirstScreenShowing() && XMasDialogFragment.shouldShowXmasDialog(app)) {
        SecondSplashScreenFragment.SHOW = false;
        new XMasDialogFragment().show(getSupportFragmentManager(), XMasDialogFragment.TAG);
    }
    FirstUsageWelcomeFragment.SHOW = false;
    if (SecondSplashScreenFragment.SHOW) {
        SecondSplashScreenFragment.SHOW = false;
        SecondSplashScreenFragment.VISIBLE = true;
        getSupportFragmentManager().beginTransaction().add(R.id.fragmentContainer, new SecondSplashScreenFragment(), SecondSplashScreenFragment.TAG).commitAllowingStateLoss();
        mapView.setOnDrawMapListener(this);
        splashScreenTimer = new Timer();
        splashScreenTimer.schedule(new TimerTask() {

            @Override
            public void run() {
                dismissSecondSplashScreen();
            }
        }, SECOND_SPLASH_TIME_OUT);
    } else {
        if (SecondSplashScreenFragment.VISIBLE) {
            dismissSecondSplashScreen();
        }
        // setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);
        if (settings.MAP_SCREEN_ORIENTATION.get() != getRequestedOrientation()) {
            setRequestedOrientation(settings.MAP_SCREEN_ORIENTATION.get());
        }
    }
}
Also used : SecondSplashScreenFragment(net.osmand.SecondSplashScreenFragment) ExternalApiHelper(net.osmand.plus.helpers.ExternalApiHelper) Bundle(android.os.Bundle) ErrorBottomSheetDialog(net.osmand.plus.dialogs.ErrorBottomSheetDialog) PendingIntent(android.app.PendingIntent) Intent(android.content.Intent) ApplicationMode(net.osmand.plus.ApplicationMode) RoutingHelper(net.osmand.plus.routing.RoutingHelper) Uri(android.net.Uri) LatLon(net.osmand.data.LatLon) Timer(java.util.Timer) TimerTask(java.util.TimerTask) QuickSearchDialogFragment(net.osmand.plus.search.QuickSearchDialogFragment) FirstUsageWelcomeFragment(net.osmand.plus.firstusage.FirstUsageWelcomeFragment) XMasDialogFragment(net.osmand.plus.dialogs.XMasDialogFragment) TargetPointsHelper(net.osmand.plus.TargetPointsHelper) File(java.io.File) RateUsBottomSheetDialog(net.osmand.plus.dialogs.RateUsBottomSheetDialog)

Aggregations

PendingIntent (android.app.PendingIntent)1 Intent (android.content.Intent)1 Uri (android.net.Uri)1 Bundle (android.os.Bundle)1 File (java.io.File)1 Timer (java.util.Timer)1 TimerTask (java.util.TimerTask)1 SecondSplashScreenFragment (net.osmand.SecondSplashScreenFragment)1 LatLon (net.osmand.data.LatLon)1 ApplicationMode (net.osmand.plus.ApplicationMode)1 TargetPointsHelper (net.osmand.plus.TargetPointsHelper)1 ErrorBottomSheetDialog (net.osmand.plus.dialogs.ErrorBottomSheetDialog)1 RateUsBottomSheetDialog (net.osmand.plus.dialogs.RateUsBottomSheetDialog)1 XMasDialogFragment (net.osmand.plus.dialogs.XMasDialogFragment)1 FirstUsageWelcomeFragment (net.osmand.plus.firstusage.FirstUsageWelcomeFragment)1 ExternalApiHelper (net.osmand.plus.helpers.ExternalApiHelper)1 RoutingHelper (net.osmand.plus.routing.RoutingHelper)1 QuickSearchDialogFragment (net.osmand.plus.search.QuickSearchDialogFragment)1