aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJorge Ruesga <jorge@ruesga.com>2015-02-27 18:53:47 +0100
committerJorge Ruesga <jorge@ruesga.com>2015-02-27 18:58:05 +0100
commitf54b7a6eadfa1044dc78fa198a48855a51f0d802 (patch)
treefc58b75e3788ebb9bdfd3f806172745de786a7d0
parent39bb8290b037035a770f024b2d2e96929c262675 (diff)
downloadandroid_packages_apps_CMFileManager-stable/cm-12.0-YNG1I.tar.gz
android_packages_apps_CMFileManager-stable/cm-12.0-YNG1I.tar.bz2
android_packages_apps_CMFileManager-stable/cm-12.0-YNG1I.zip
cmfm: add support for init navigation in a concrete folderstable/cm-12.0-YNG1I
Add an ACTION_VIEW intent with matches with "resource/folder" mime type and a file/folder/directory scheme Change-Id: I91afe762ebcaf9ead25d091ffaf4f705a8dd0515 Signed-off-by: Jorge Ruesga <jorge@ruesga.com>
-rw-r--r--AndroidManifest.xml9
-rw-r--r--src/com/cyanogenmod/filemanager/activities/NavigationActivity.java20
-rw-r--r--src/com/cyanogenmod/filemanager/activities/PickerActivity.java10
-rw-r--r--src/com/cyanogenmod/filemanager/util/FileHelper.java5
4 files changed, 28 insertions, 16 deletions
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 02189318..82f420fd 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -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"
diff --git a/src/com/cyanogenmod/filemanager/activities/NavigationActivity.java b/src/com/cyanogenmod/filemanager/activities/NavigationActivity.java
index 5754f27c..6fb6f198 100644
--- a/src/com/cyanogenmod/filemanager/activities/NavigationActivity.java
+++ b/src/com/cyanogenmod/filemanager/activities/NavigationActivity.java
@@ -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
diff --git a/src/com/cyanogenmod/filemanager/activities/PickerActivity.java b/src/com/cyanogenmod/filemanager/activities/PickerActivity.java
index 5f619271..120fd1d4 100644
--- a/src/com/cyanogenmod/filemanager/activities/PickerActivity.java
+++ b/src/com/cyanogenmod/filemanager/activities/PickerActivity.java
@@ -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;
}
}
diff --git a/src/com/cyanogenmod/filemanager/util/FileHelper.java b/src/com/cyanogenmod/filemanager/util/FileHelper.java
index 93a2df0d..1d9aa9f2 100644
--- a/src/com/cyanogenmod/filemanager/util/FileHelper.java
+++ b/src/com/cyanogenmod/filemanager/util/FileHelper.java
@@ -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
*/