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

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: extra fix 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..718bdcfb5a5167077518d9d4ebf8e3aa4e356dcc 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;
@@ -46,6 +47,10 @@ import java.util.List;
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 +119,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 +308,7 @@ public class NfcImpl implements Nfc {
@Override
public void close() {
+ mDelegate.stopTrackingActivityForHost(mHostId);
disableReaderMode();
}

Powered by Google App Engine
This is Rietveld 408576698