Merge "libbinder_ndk: convenience method for isRemote"
diff --git a/libs/binder/ndk/include_ndk/android/binder_interface_utils.h b/libs/binder/ndk/include_ndk/android/binder_interface_utils.h
index f5c8bce..a133d49 100644
--- a/libs/binder/ndk/include_ndk/android/binder_interface_utils.h
+++ b/libs/binder/ndk/include_ndk/android/binder_interface_utils.h
@@ -69,6 +69,12 @@
 
     // This either returns the single existing implementation or creates a new implementation.
     virtual SpAIBinder asBinder() = 0;
+
+    /**
+     * Returns whether this interface is in a remote process. If it cannot be determined locally,
+     * this will be checked using AIBinder_isRemote.
+     */
+    virtual bool isRemote() = 0;
 };
 
 // wrapper analog to BnInterface
@@ -80,6 +86,8 @@
 
     SpAIBinder asBinder() override;
 
+    bool isRemote() override { return true; }
+
 protected:
     // This function should only be called by asBinder. Otherwise, there is a possibility of
     // multiple AIBinder* objects being created for the same instance of an object.
@@ -99,6 +107,8 @@
 
     SpAIBinder asBinder() override;
 
+    bool isRemote() override { return AIBinder_isRemote(mBinder.get()); }
+
 private:
     SpAIBinder mBinder;
 };