Loading core/java/android/nfc/BeamShareData.java +7 −2 Original line number Diff line number Diff line Loading @@ -3,6 +3,7 @@ package android.nfc; import android.net.Uri; import android.os.Parcel; import android.os.Parcelable; import android.os.UserHandle; /** * Class to IPC data to be shared over Android Beam. Loading @@ -14,11 +15,13 @@ import android.os.Parcelable; public final class BeamShareData implements Parcelable { public final NdefMessage ndefMessage; public final Uri[] uris; public final UserHandle userHandle; public final int flags; public BeamShareData(NdefMessage msg, Uri[] uris, int flags) { public BeamShareData(NdefMessage msg, Uri[] uris, UserHandle userHandle, int flags) { this.ndefMessage = msg; this.uris = uris; this.userHandle = userHandle; this.flags = flags; } Loading @@ -35,6 +38,7 @@ public final class BeamShareData implements Parcelable { if (urisLength > 0) { dest.writeTypedArray(uris, 0); } dest.writeParcelable(userHandle, 0); dest.writeInt(this.flags); } Loading @@ -49,9 +53,10 @@ public final class BeamShareData implements Parcelable { uris = new Uri[numUris]; source.readTypedArray(uris, Uri.CREATOR); } UserHandle userHandle = source.readParcelable(UserHandle.class.getClassLoader()); int flags = source.readInt(); return new BeamShareData(msg, uris, flags); return new BeamShareData(msg, uris, userHandle, flags); } @Override Loading core/java/android/nfc/NfcActivityManager.java +10 −3 Original line number Diff line number Diff line Loading @@ -18,12 +18,14 @@ package android.nfc; import android.app.Activity; import android.app.Application; import android.content.ContentProvider; import android.content.Intent; import android.net.Uri; import android.nfc.NfcAdapter.ReaderCallback; import android.os.Binder; import android.os.Bundle; import android.os.RemoteException; import android.os.UserHandle; import android.util.Log; import java.util.ArrayList; Loading Loading @@ -350,19 +352,24 @@ public final class NfcActivityManager extends IAppCallback.Stub if (urisCallback != null) { uris = urisCallback.createBeamUris(mDefaultEvent); if (uris != null) { ArrayList<Uri> validUris = new ArrayList<Uri>(); for (Uri uri : uris) { if (uri == null) { Log.e(TAG, "Uri not allowed to be null."); return null; continue; } String scheme = uri.getScheme(); if (scheme == null || (!scheme.equalsIgnoreCase("file") && !scheme.equalsIgnoreCase("content"))) { Log.e(TAG, "Uri needs to have " + "either scheme file or scheme content"); return null; continue; } uri = ContentProvider.maybeAddUserId(uri, UserHandle.myUserId()); validUris.add(uri); } uris = validUris.toArray(new Uri[validUris.size()]); } } if (uris != null && uris.length > 0) { Loading @@ -372,7 +379,7 @@ public final class NfcActivityManager extends IAppCallback.Stub Intent.FLAG_GRANT_READ_URI_PERMISSION); } } return new BeamShareData(message, uris, flags); return new BeamShareData(message, uris, UserHandle.CURRENT, flags); } /** Callback from NFC service, usually on binder thread */ Loading Loading
core/java/android/nfc/BeamShareData.java +7 −2 Original line number Diff line number Diff line Loading @@ -3,6 +3,7 @@ package android.nfc; import android.net.Uri; import android.os.Parcel; import android.os.Parcelable; import android.os.UserHandle; /** * Class to IPC data to be shared over Android Beam. Loading @@ -14,11 +15,13 @@ import android.os.Parcelable; public final class BeamShareData implements Parcelable { public final NdefMessage ndefMessage; public final Uri[] uris; public final UserHandle userHandle; public final int flags; public BeamShareData(NdefMessage msg, Uri[] uris, int flags) { public BeamShareData(NdefMessage msg, Uri[] uris, UserHandle userHandle, int flags) { this.ndefMessage = msg; this.uris = uris; this.userHandle = userHandle; this.flags = flags; } Loading @@ -35,6 +38,7 @@ public final class BeamShareData implements Parcelable { if (urisLength > 0) { dest.writeTypedArray(uris, 0); } dest.writeParcelable(userHandle, 0); dest.writeInt(this.flags); } Loading @@ -49,9 +53,10 @@ public final class BeamShareData implements Parcelable { uris = new Uri[numUris]; source.readTypedArray(uris, Uri.CREATOR); } UserHandle userHandle = source.readParcelable(UserHandle.class.getClassLoader()); int flags = source.readInt(); return new BeamShareData(msg, uris, flags); return new BeamShareData(msg, uris, userHandle, flags); } @Override Loading
core/java/android/nfc/NfcActivityManager.java +10 −3 Original line number Diff line number Diff line Loading @@ -18,12 +18,14 @@ package android.nfc; import android.app.Activity; import android.app.Application; import android.content.ContentProvider; import android.content.Intent; import android.net.Uri; import android.nfc.NfcAdapter.ReaderCallback; import android.os.Binder; import android.os.Bundle; import android.os.RemoteException; import android.os.UserHandle; import android.util.Log; import java.util.ArrayList; Loading Loading @@ -350,19 +352,24 @@ public final class NfcActivityManager extends IAppCallback.Stub if (urisCallback != null) { uris = urisCallback.createBeamUris(mDefaultEvent); if (uris != null) { ArrayList<Uri> validUris = new ArrayList<Uri>(); for (Uri uri : uris) { if (uri == null) { Log.e(TAG, "Uri not allowed to be null."); return null; continue; } String scheme = uri.getScheme(); if (scheme == null || (!scheme.equalsIgnoreCase("file") && !scheme.equalsIgnoreCase("content"))) { Log.e(TAG, "Uri needs to have " + "either scheme file or scheme content"); return null; continue; } uri = ContentProvider.maybeAddUserId(uri, UserHandle.myUserId()); validUris.add(uri); } uris = validUris.toArray(new Uri[validUris.size()]); } } if (uris != null && uris.length > 0) { Loading @@ -372,7 +379,7 @@ public final class NfcActivityManager extends IAppCallback.Stub Intent.FLAG_GRANT_READ_URI_PERMISSION); } } return new BeamShareData(message, uris, flags); return new BeamShareData(message, uris, UserHandle.CURRENT, flags); } /** Callback from NFC service, usually on binder thread */ Loading