Skip to content

Commit 5dde0f4

Browse files
authored
Fix issue with in-app browser closing on app re-open (#28)
1 parent 0af012f commit 5dde0f4

File tree

5 files changed

+50
-2
lines changed

5 files changed

+50
-2
lines changed

android/app/src/main/AndroidManifest.xml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,13 @@
2929
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|screenSize|smallestScreenSize|uiMode"
3030
android:exported="true"
3131
android:label="@string/app_name"
32-
android:launchMode="singleTask"
32+
android:launchMode="standard"
3333
android:screenOrientation="portrait"
3434
android:windowSoftInputMode="adjustResize">
35+
</activity>
36+
<activity
37+
android:name=".LaunchActivity"
38+
android:exported="true">
3539
<intent-filter>
3640
<action android:name="android.intent.action.MAIN" />
3741
<category android:name="android.intent.category.LAUNCHER" />
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package io.netbird.client;
2+
3+
import android.app.Activity;
4+
import android.content.Intent;
5+
import android.os.Bundle;
6+
7+
public class LaunchActivity extends Activity {
8+
@Override
9+
protected void onCreate(Bundle savedInstanceState) {
10+
super.onCreate(savedInstanceState);
11+
MainApplication application = (MainApplication) getApplication();
12+
// check that MainActivity is not started yet
13+
if (!application.isActivityInBackStack(MainActivity.class)) {
14+
Intent intent = new Intent(this, MainActivity.class);
15+
startActivity(intent);
16+
}
17+
finish();
18+
}
19+
}

android/app/src/main/java/io/netbird/client/MainActivity.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,8 @@ protected void onCreate(Bundle savedInstanceState) {
6060
SplashScreen.show(this);
6161
MainApplication application = (MainApplication) getApplication();
6262

63+
application.addActivityToStack(this.getClass());
64+
6365
sendEventActionSharedPref = getSharedPreferences(SEND_EVENT_ACTION, Context.MODE_PRIVATE);
6466
sendEventToReactMessageKey = sendEventActionSharedPref.getString(MESSAGE_KEY, "");
6567

@@ -75,4 +77,12 @@ protected void onCreate(Bundle savedInstanceState) {
7577
}
7678
});
7779
}
80+
81+
@Override
82+
protected void onDestroy() {
83+
super.onDestroy();
84+
MainApplication application = (MainApplication) getApplication();
85+
86+
application.removeActivityFromStack(this.getClass());
87+
}
7888
}

android/app/src/main/java/io/netbird/client/MainApplication.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,28 @@
1111
import com.facebook.react.defaults.DefaultReactNativeHost;
1212
import com.facebook.soloader.SoLoader;
1313

14+
import java.util.ArrayList;
1415
import java.util.List;
1516

1617
import io.netbird.client.tool.NetworkChangeNotifier;
1718

1819
public class MainApplication extends Application implements ReactApplication {
1920
private final NotificationReceiver notificationReceiver = new NotificationReceiver();
2021

22+
private ArrayList<Class> runningActivities = new ArrayList<>();
23+
24+
public void addActivityToStack (Class cls) {
25+
if (!runningActivities.contains(cls)) runningActivities.add(cls);
26+
}
27+
28+
public void removeActivityFromStack (Class cls) {
29+
if (runningActivities.contains(cls)) runningActivities.remove(cls);
30+
}
31+
32+
public boolean isActivityInBackStack (Class cls) {
33+
return runningActivities.contains(cls);
34+
}
35+
2136
private final ReactNativeHost mReactNativeHost =
2237
new DefaultReactNativeHost(this) {
2338
@Override

src/components/InAppBrowser/utils.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ export const openLink = async (url: string, animated = true) => {
4343
},
4444
hasBackButton: true,
4545
browserPackage: undefined,
46-
showInRecents: false,
46+
showInRecents: true,
4747
includeReferrer: false,
4848
});
4949
} else {

0 commit comments

Comments
 (0)