aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDanesh Mondegarian <daneshm90@gmail.com>2012-11-03 13:47:03 -0400
committerDanesh Mondegarian <daneshm90@gmail.com>2012-11-04 10:40:29 -0500
commitcd890fc624fddff3d040a73834d150dcba327b5e (patch)
tree6c27c16f3aba8eb052fa99253a05aefe83defd5a
parentb0601629d55fb1da6a4241442a66058d87c18321 (diff)
downloadandroid_packages_apps_CMFileManager-cd890fc624fddff3d040a73834d150dcba327b5e.tar.gz
android_packages_apps_CMFileManager-cd890fc624fddff3d040a73834d150dcba327b5e.tar.bz2
android_packages_apps_CMFileManager-cd890fc624fddff3d040a73834d150dcba327b5e.zip
CMFileManager : Beam to send files
Added support to be able to beam files via the file manager. Steps : 1. Select one or multiple files via checkbox 2. Tap phones to beam file over 3. Enjoy ! Patchset 2 : Switch to callback Patchset 3 : Remove debug messages Patchset 4 : Add check to avoid crashes on devices without nfc Patchset 5 : Rebase Conflicts: src/com/cyanogenmod/filemanager/activities/NavigationActivity.java Change-Id: I005db2ebdabc0e83a92ae820cb98f73709d5f535
-rw-r--r--AndroidManifest.xml1
-rw-r--r--src/com/cyanogenmod/filemanager/activities/NavigationActivity.java31
2 files changed, 32 insertions, 0 deletions
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index a95a775e..20cbb9e1 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -27,6 +27,7 @@
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<uses-permission android:name="android.permission.SET_PREFERRED_APPLICATIONS" />
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
+ <uses-permission android:name="android.permission.NFC"/>
<application
android:name="FileManagerApplication"
diff --git a/src/com/cyanogenmod/filemanager/activities/NavigationActivity.java b/src/com/cyanogenmod/filemanager/activities/NavigationActivity.java
index 0bd15d44..d76f360f 100644
--- a/src/com/cyanogenmod/filemanager/activities/NavigationActivity.java
+++ b/src/com/cyanogenmod/filemanager/activities/NavigationActivity.java
@@ -26,6 +26,11 @@ import android.content.DialogInterface;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.res.Configuration;
+import android.net.Uri;
+import android.nfc.NdefMessage;
+import android.nfc.NdefRecord;
+import android.nfc.NfcAdapter;
+import android.nfc.NfcEvent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Parcelable;
@@ -84,6 +89,7 @@ import com.cyanogenmod.filemanager.util.ExceptionUtil;
import com.cyanogenmod.filemanager.util.FileHelper;
import com.cyanogenmod.filemanager.util.StorageHelper;
+import java.io.File;
import java.io.FileNotFoundException;
import java.io.Serializable;
import java.util.ArrayList;
@@ -292,6 +298,31 @@ public class NavigationActivity extends Activity
//Set the main layout of the activity
setContentView(R.layout.navigation);
+ //Initialize nfc adapter
+ NfcAdapter mNfcAdapter = NfcAdapter.getDefaultAdapter(this);
+ if (mNfcAdapter != null) {
+ mNfcAdapter.setBeamPushUrisCallback(new NfcAdapter.CreateBeamUrisCallback() {
+ @Override
+ public Uri[] createBeamUris(NfcEvent event) {
+ List<FileSystemObject> selectedFiles = getNavigationView(NavigationActivity.
+ this.mCurrentNavigationView).getSelectedFiles();
+ if (selectedFiles.size() > 0) {
+ List<Uri> fileUri = new ArrayList<Uri>();
+ for (FileSystemObject f : selectedFiles) {
+ //Beam ignores folders and system files
+ if (!FileHelper.isDirectory(f) && !FileHelper.isSystemFile(f)) {
+ fileUri.add(Uri.fromFile(new File(f.getFullPath())));
+ }
+ }
+ if (fileUri.size() > 0) {
+ return fileUri.toArray(new Uri[fileUri.size()]);
+ }
+ }
+ return null;
+ }
+ }, this);
+ }
+
// Show welcome message
showWelcomeMsg();