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

Commit 584dfb2c authored by Martijn Coenen's avatar Martijn Coenen
Browse files

Allow bluetooth OPP transfers to be stopped.

If handover requesters such as NFC want to cancel an
ongoing transfer, they can use this intent. It requires
the same permission that is used for whitelisting,
which at this point is only granted to the NFC service.

Change-Id: I89e27550d700c4a29a892dba99fda740d8845642
parent 6cd6503d
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -65,6 +65,7 @@
            android:permission="com.android.permission.WHITELIST_BLUETOOTH_DEVICE">
            <intent-filter>
                <action android:name="android.btopp.intent.action.WHITELIST_DEVICE" />
                <action android:name="android.btopp.intent.action.STOP_HANDOVER_TRANSFER" />
            </intent-filter>
        </receiver>
        <activity android:name=".opp.BluetoothOppLauncherActivity"
+9 −0
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import android.bluetooth.BluetoothDevice;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.util.Log;

public class BluetoothOppHandoverReceiver extends BroadcastReceiver {
@@ -36,6 +37,14 @@ public class BluetoothOppHandoverReceiver extends BroadcastReceiver {
            if (D) Log.d(TAG, "Adding " + device + " to whitelist");
            if (device == null) return;
            BluetoothOppManager.getInstance(context).addToWhitelist(device.getAddress());
        } else if (action.equals(Constants.ACTION_STOP_HANDOVER)) {
            int id = intent.getIntExtra(Constants.EXTRA_BT_OPP_TRANSFER_ID, -1);
            if (id != -1) {
                Uri contentUri = Uri.parse(BluetoothShare.CONTENT_URI + "/" + id);

                if (D) Log.d(TAG, "Stopping handover transfer with Uri " + contentUri);
                context.getContentResolver().delete(contentUri, null, null);
            }
        } else {
            if (D) Log.d(TAG, "Unknown action: " + action);
        }
+3 −0
Original line number Diff line number Diff line
@@ -71,6 +71,9 @@ public class Constants {
    /** the intent that whitelists a remote bluetooth device for auto-receive confirmation (NFC) */
    public static final String ACTION_WHITELIST_DEVICE = "android.btopp.intent.action.WHITELIST_DEVICE";

    /** the intent that can be sent by handover requesters to stop a BTOPP transfer */
    public static final String ACTION_STOP_HANDOVER = "android.btopp.intent.action.STOP_HANDOVER_TRANSFER";

    /** the intent extra to show all received files in the transfer history */
    public static final String EXTRA_SHOW_ALL_FILES = "android.btopp.intent.extra.SHOW_ALL";