Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 87492122 authored by Jorge Ruesga's avatar Jorge Ruesga
Browse files

CMFM: Fix shortcuts path initialization



Applying initial directory was overriding the shortcut paths.
Avoid double navigateTo call (initial dir and check intent).

Patchset 2: Rebased

Change-Id: I61519a89e2fc60044c7b08ac4f0596e8f9925893
Signed-off-by: default avatarJorge Ruesga <jorge@ruesga.com>
parent c7df9723
Loading
Loading
Loading
Loading
+58 −51
Original line number Diff line number Diff line
@@ -382,10 +382,13 @@ public class NavigationActivity extends Activity
        this.mHandler.post(new Runnable() {
            @Override
            public void run() {
                // Initialize console
                initConsole();

                //Initialize navigation
                int cc = NavigationActivity.this.mNavigationViews.length;
                for (int i = 0; i < cc; i++) {
                    initNavigation(i, false);
                    initNavigation(i, false, getIntent());
                }

                //Check the intent action
@@ -403,7 +406,7 @@ public class NavigationActivity extends Activity
    @Override
    protected void onNewIntent(Intent intent) {
        //Initialize navigation
        initNavigation(this.mCurrentNavigationView, true);
        initNavigation(this.mCurrentNavigationView, true, intent);

        //Check the intent action
        checkIntent(intent);
@@ -586,17 +589,10 @@ public class NavigationActivity extends Activity
    }

    /**
     * Method that initializes the navigation.
     *
     * @param viewId The navigation view identifier where apply the navigation
     * @param restore Initialize from a restore info
     * Method that initialize the console
     * @hide
     */
    void initNavigation(final int viewId, final boolean restore) {
        final NavigationView navigationView = getNavigationView(viewId);
        this.mHandler.post(new Runnable() {
            @Override
            public void run() {
    void initConsole() {
        //Create the default console (from the preferences)
        try {
            Console console = ConsoleBuilder.getConsole(NavigationActivity.this);
@@ -622,10 +618,24 @@ public class NavigationActivity extends Activity
            askOrExit();
            return;
        }
    }

    /**
     * Method that initializes the navigation.
     *
     * @param viewId The navigation view identifier where apply the navigation
     * @param restore Initialize from a restore info
     * @param intent The current intent
     * @hide
     */
    void initNavigation(final int viewId, final boolean restore, final Intent intent) {
        final NavigationView navigationView = getNavigationView(viewId);
        this.mHandler.post(new Runnable() {
            @Override
            public void run() {
                //Is necessary navigate?
                if (!restore) {
                    applyInitialDir(navigationView);
                    applyInitialDir(navigationView, intent);
                }
            }
        });
@@ -635,9 +645,10 @@ public class NavigationActivity extends Activity
     * Method that applies the user-defined initial directory
     *
     * @param navigationView The navigation view
     * @param intent The current intent
     * @hide
     */
    void applyInitialDir(final NavigationView navigationView) {
    void applyInitialDir(final NavigationView navigationView, final Intent intent) {
        //Load the user-defined initial directory
        String initialDir =
                Preferences.getSharedPreferences().getString(
@@ -647,13 +658,14 @@ public class NavigationActivity extends Activity

        // Check if request navigation to directory (use as default), and
        // ensure chrooted and absolute path
        String navigateTo = getIntent().getStringExtra(EXTRA_NAVIGATE_TO);
        String navigateTo = intent.getStringExtra(EXTRA_NAVIGATE_TO);
        if (navigateTo != null && navigateTo.length() > 0) {
            initialDir = navigateTo;
        }

        if (this.mChRooted) {
            // Initial directory is the first external sdcard (sdcard, emmc, usb, ...)
            if (!StorageHelper.isPathInStorageVolume(initialDir)) {
                StorageVolume[] volumes =
                        StorageHelper.getStorageVolumes(this);
                if (volumes != null && volumes.length > 0) {
@@ -668,6 +680,7 @@ public class NavigationActivity extends Activity
                    exit();
                    return;
                }
            }
        } else {
            //Ensure that initial directory is an absolute directory
            final String userInitialDir = initialDir;
@@ -772,12 +785,6 @@ public class NavigationActivity extends Activity
            startActivityForResult(searchIntent, INTENT_REQUEST_SEARCH);
            return;
        }

        // Navigate to the requested path
        String navigateTo = intent.getStringExtra(EXTRA_NAVIGATE_TO);
        if (navigateTo != null && navigateTo.length() >= 0) {
            getCurrentNavigationView().changeCurrentDir(navigateTo);
        }
    }

    /**