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

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

cmfm: add support for init navigation in a concrete folder



Add an ACTION_VIEW intent with matches with "resource/folder" mime type and a file/folder/directory scheme

Change-Id: I91afe762ebcaf9ead25d091ffaf4f705a8dd0515
Signed-off-by: default avatarJorge Ruesga <jorge@ruesga.com>
parent 39bb8290
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -93,6 +93,15 @@
        <action android:name="android.intent.action.SEARCH" />
        <category android:name="android.intent.category.DEFAULT" />
      </intent-filter>
      <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <data android:mimeType="resource/folder" />
        <data android:scheme="file" />
        <data android:scheme="folder" />
        <data android:scheme="directory" />
      </intent-filter>
      <meta-data
        android:name="android.app.searchable"
        android:value=".activities.SearchActivity"
+11 −9
Original line number Diff line number Diff line
@@ -16,7 +16,6 @@

package com.cyanogenmod.filemanager.activities;

import android.app.ActionBar;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.SearchManager;
@@ -26,7 +25,6 @@ import android.content.DialogInterface;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.content.res.XmlResourceParser;
import android.database.Cursor;
import android.graphics.Color;
@@ -39,7 +37,6 @@ import android.os.Bundle;
import android.os.Environment;
import android.os.Handler;
import android.os.Parcelable;
import android.os.storage.StorageManager;
import android.os.storage.StorageVolume;
import android.support.v4.app.ActionBarDrawerToggle;
import android.support.v4.widget.DrawerLayout;
@@ -47,8 +44,6 @@ import android.text.TextUtils;
import android.util.Log;
import android.view.Gravity;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
@@ -61,20 +56,17 @@ import android.widget.LinearLayout;
import android.widget.ListPopupWindow;
import android.widget.ListView;
import android.widget.PopupWindow;
import android.widget.ScrollView;
import android.widget.SearchView;
import android.widget.TextView;
import android.widget.Toast;

import android.widget.Toolbar;
import android.widget.ArrayAdapter;

import com.android.internal.util.XmlUtils;
import com.cyanogenmod.filemanager.FileManagerApplication;
import com.cyanogenmod.filemanager.R;
import com.cyanogenmod.filemanager.activities.preferences.SettingsPreferences;
import com.cyanogenmod.filemanager.adapters.HighlightedSimpleMenuListAdapter;
import com.cyanogenmod.filemanager.adapters.MenuSettingsAdapter;
import com.cyanogenmod.filemanager.adapters.SimpleMenuListAdapter;
import com.cyanogenmod.filemanager.console.Console;
import com.cyanogenmod.filemanager.console.ConsoleAllocException;
import com.cyanogenmod.filemanager.console.ConsoleBuilder;
@@ -1543,6 +1535,16 @@ public class NavigationActivity extends Activity
        String navigateTo = intent.getStringExtra(EXTRA_NAVIGATE_TO);
        if (navigateTo != null && navigateTo.length() > 0) {
            initialDir = navigateTo;
        } else if (intent.getAction().equals(Intent.ACTION_VIEW)) {
            Uri data = intent.getData();
            if (data != null && (FileHelper.FILE_URI_SCHEME.equals(data.getScheme())
                    || FileHelper.FOLDER_URI_SCHEME.equals(data.getScheme())
                    || FileHelper.DIRECTORY_URI_SCHEME.equals(data.getScheme()))) {
                File path = new File(data.getPath());
                if (path.isDirectory()) {
                    initialDir = path.getAbsolutePath();
                }
            }
        }

        // Add to history
+3 −7
Original line number Diff line number Diff line
@@ -115,11 +115,6 @@ public class PickerActivity extends Activity
    // String extra for folder selection
    private static final String EXTRA_FOLDER_PATH = "def_file_manager_result_dir";

    // Scheme for file and directory picking
    private static final String FILE_URI_SCHEME = "file"; //$NON-NLS-1$
    private static final String FOLDER_URI_SCHEME = "folder"; //$NON-NLS-1$
    private static final String DIRECTORY_URI_SCHEME = "directory"; //$NON-NLS-1$

    FileSystemObject mFso;  // The picked item
    FileSystemObject mCurrentDirectory;
    private AlertDialog mDialog;
@@ -470,7 +465,7 @@ public class PickerActivity extends Activity
        }
        if (Intent.ACTION_PICK.equals(action)) {
            final Uri data = intent.getData();
            if (data != null && FILE_URI_SCHEME.equals(data.getScheme())) {
            if (data != null && FileHelper.FILE_URI_SCHEME.equals(data.getScheme())) {
                return true;
            }
        }
@@ -485,7 +480,8 @@ public class PickerActivity extends Activity

        if (Intent.ACTION_PICK.equals(intent.getAction()) && intent.getData() != null) {
            String scheme = intent.getData().getScheme();
            if (FOLDER_URI_SCHEME.equals(scheme) || DIRECTORY_URI_SCHEME.equals(scheme)) {
            if (FileHelper.FOLDER_URI_SCHEME.equals(scheme)
                    || FileHelper.DIRECTORY_URI_SCHEME.equals(scheme)) {
                return true;
            }
        }
+5 −0
Original line number Diff line number Diff line
@@ -78,6 +78,11 @@ public final class FileHelper {

    private static final String TAG = "FileHelper"; //$NON-NLS-1$

    // Scheme for file and directory picking
    public static final String FILE_URI_SCHEME = "file"; //$NON-NLS-1$
    public static final String FOLDER_URI_SCHEME = "folder"; //$NON-NLS-1$
    public static final String DIRECTORY_URI_SCHEME = "directory"; //$NON-NLS-1$

    /**
     * Special extension for compressed tar files
     */