Skip to content

Commit 42476a8

Browse files
committed
WIP: DIY a context provider
1 parent 886a727 commit 42476a8

File tree

2 files changed

+22
-4
lines changed

2 files changed

+22
-4
lines changed

android/vpnClient/src/main/java/org/mozilla/firefox/vpn/qt/VPNActivity.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,12 +39,12 @@ public void onCreate(Bundle savedInstanceState) {
3939
} else {
4040
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED);
4141
}
42-
instance = this;
4342
}
4443
private static VPNActivity instance;
4544

46-
public static VPNActivity getInstance() {
47-
return instance;
45+
public VPNActivity() {
46+
super();
47+
instance = this;
4848
}
4949

5050
@Override

src/platforms/android/androidcommons.cpp

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,25 @@ jbyteArray tojByteArray(const QByteArray& data) {
3333

3434
// static
3535
QJniObject AndroidCommons::getActivity() {
36-
return QNativeInterface::QAndroidApplication::context();
36+
QJniEnvironment env;
37+
38+
// Find the VPNActivity class using QJniObject for convenience
39+
QJniObject vpnActivityClass("org/mozilla/firefox/vpn/qt/VPNActivity");
40+
if (!vpnActivityClass.isValid()) {
41+
qWarning("Could not find class org/mozilla/firefox/vpn/qt/VPNActivity");
42+
return QJniObject(); // Return an invalid QJniObject
43+
}
44+
45+
// Call the static method to get the instance
46+
QJniObject activityInstance = vpnActivityClass.callStaticObjectMethod(
47+
"getInstance", "()Lorg/mozilla/firefox/vpn/qt/VPNActivity;");
48+
49+
if (!activityInstance.isValid()) {
50+
qWarning("Call to VPNActivity.getInstance() failed or returned null.");
51+
return QJniObject(); // Return an invalid QJniObject
52+
}
53+
54+
return activityInstance;
3755
}
3856

3957
// static

0 commit comments

Comments
 (0)