summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--talpid-types/src/android/mod.rs13
1 files changed, 13 insertions, 0 deletions
diff --git a/talpid-types/src/android/mod.rs b/talpid-types/src/android/mod.rs
index 70c34fea95..1c8522509d 100644
--- a/talpid-types/src/android/mod.rs
+++ b/talpid-types/src/android/mod.rs
@@ -4,3 +4,16 @@ pub struct AndroidContext {
pub jvm: JavaVM,
pub vpn_service: GlobalRef,
}
+
+impl Clone for AndroidContext {
+ fn clone(&self) -> Self {
+ let jvm_pointer = self.jvm.get_java_vm_pointer();
+ let jvm =
+ unsafe { JavaVM::from_raw(jvm_pointer).expect("Failed to get pointer to Java VM") };
+
+ AndroidContext {
+ jvm,
+ vpn_service: self.vpn_service.clone(),
+ }
+ }
+}