diff options
author | Danesh Mondegarian <daneshm90@gmail.com> | 2012-11-03 13:47:03 -0400 |
---|---|---|
committer | Danesh Mondegarian <daneshm90@gmail.com> | 2012-11-04 10:40:29 -0500 |
commit | cd890fc624fddff3d040a73834d150dcba327b5e (patch) | |
tree | 6c27c16f3aba8eb052fa99253a05aefe83defd5a | |
parent | b0601629d55fb1da6a4241442a66058d87c18321 (diff) | |
download | android_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.xml | 1 | ||||
-rw-r--r-- | src/com/cyanogenmod/filemanager/activities/NavigationActivity.java | 31 |
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(); |