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

Commit cd890fc6 authored by Danesh Mondegarian's avatar Danesh Mondegarian
Browse files

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
parent b0601629
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -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"
+31 −0
Original line number Diff line number Diff line
@@ -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();