Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2759)

Unified Diff: device/nfc/android/java/src/org/chromium/device/nfc/NfcImpl.java

Issue 2865653002: [Device Service] Decouple NFC implementation from //content (Closed)
Patch Set: Rebase Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: device/nfc/android/java/src/org/chromium/device/nfc/NfcImpl.java
diff --git a/device/nfc/android/java/src/org/chromium/device/nfc/NfcImpl.java b/device/nfc/android/java/src/org/chromium/device/nfc/NfcImpl.java
index a2c5380a1111c9f15a45ad1eb12cffc07ecaa298..e4efd51023c4061666279aa11a3d6cd2794cf3bd 100644
--- a/device/nfc/android/java/src/org/chromium/device/nfc/NfcImpl.java
+++ b/device/nfc/android/java/src/org/chromium/device/nfc/NfcImpl.java
@@ -21,6 +21,7 @@ import android.os.Handler;
import android.os.Process;
import android.util.SparseArray;
+import org.chromium.base.Callback;
import org.chromium.base.Log;
import org.chromium.device.nfc.mojom.Nfc;
import org.chromium.device.nfc.mojom.NfcClient;
@@ -39,13 +40,15 @@ import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;
-/**
- * Android implementation of the NFC mojo service defined in
- * device/nfc/nfc.mojom.
+/** Android implementation of the NFC mojo service defined in device/nfc/nfc.mojom.
*/
public class NfcImpl implements Nfc {
private static final String TAG = "NfcImpl";
+ private final int mHostId;
+
+ private final NfcDelegate mDelegate;
+
/**
* Used to get instance of NFC adapter, @see android.nfc.NfcManager
*/
@@ -114,10 +117,20 @@ public class NfcImpl implements Nfc {
*/
private Runnable mPushTimeoutRunnable;
- public NfcImpl(Context context) {
+ public NfcImpl(Context context, int hostId, NfcDelegate delegate) {
+ mHostId = hostId;
+ mDelegate = delegate;
int permission =
context.checkPermission(Manifest.permission.NFC, Process.myPid(), Process.myUid());
mHasPermission = permission == PackageManager.PERMISSION_GRANTED;
+ Callback<Activity> onActivityUpdatedCallback = new Callback<Activity>() {
+ @Override
+ public void onResult(Activity activity) {
+ setActivity(activity);
+ }
+ };
+
+ mDelegate.trackActivityForHost(mHostId, onActivityUpdatedCallback);
if (!mHasPermission || Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) {
Log.w(TAG, "NFC operations are not permitted.");
@@ -293,6 +306,7 @@ public class NfcImpl implements Nfc {
@Override
public void close() {
+ mDelegate.stopTrackingActivityForHost(mHostId);
disableReaderMode();
}
« no previous file with comments | « device/nfc/android/BUILD.gn ('k') | device/nfc/android/java/src/org/chromium/device/nfc/NfcProviderImpl.java » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698