Skip to content

Commit 2dcf66c

Browse files
committed
fix leak in sample
1 parent b6a5f7c commit 2dcf66c

File tree

1 file changed

+20
-3
lines changed

1 file changed

+20
-3
lines changed

demos/twa-custom-launcher/src/main/java/com/google/androidbrowserhelper/launchtwa/LaunchTwaActivity.java

+20-3
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import com.google.androidbrowserhelper.trusted.TwaLauncher;
2727
import com.google.androidbrowserhelper.trusted.TwaProviderPicker;
2828

29+
import java.util.ArrayList;
2930
import java.util.Arrays;
3031
import java.util.List;
3132

@@ -42,6 +43,11 @@ public class LaunchTwaActivity extends AppCompatActivity {
4243
private final TrustedWebActivityIntentBuilder builder = new TrustedWebActivityIntentBuilder(
4344
LAUNCH_URI);
4445

46+
/**
47+
* A bag to put all TwaLauncher in so we can dispose all at once.
48+
*/
49+
private List<TwaLauncher> launchers = new ArrayList<>();
50+
4551
private final CustomTabsServiceConnection customTabsServiceConnection = new CustomTabsServiceConnection() {
4652
CustomTabsSession mSession;
4753
private final static int SESSION_ID = 45; // An arbitrary constant.
@@ -82,7 +88,9 @@ protected void onCreate(Bundle savedInstanceState) {
8288
* @param view the source of the event invoking this method.
8389
*/
8490
public void launch(View view) {
85-
new TwaLauncher(this).launch(LAUNCH_URI);
91+
TwaLauncher launcher = new TwaLauncher(this);
92+
launcher.launch(LAUNCH_URI);
93+
launchers.add(launcher);
8694
}
8795

8896
/**
@@ -96,7 +104,10 @@ public void launchWithCustomColors(View view) {
96104
.setNavigationBarColor(Color.RED)
97105
.setToolbarColor(Color.BLUE);
98106

99-
new TwaLauncher(this).launch(builder, null, null);
107+
108+
TwaLauncher launcher = new TwaLauncher(this);
109+
launcher.launch(builder, null, null);
110+
launchers.add(launcher);
100111
}
101112

102113
/**
@@ -113,7 +124,10 @@ public void launcherWithMultipleOrigins(View view) {
113124
TrustedWebActivityIntentBuilder builder = new TrustedWebActivityIntentBuilder(LAUNCH_URI)
114125
.setAdditionalTrustedOrigins(origins);
115126

116-
new TwaLauncher(this).launch(builder, null, null);
127+
128+
TwaLauncher launcher = new TwaLauncher(this);
129+
launcher.launch(builder, null, null);
130+
launchers.add(launcher);
117131
}
118132

119133
/**
@@ -136,6 +150,9 @@ public void launchWithCustomReferrer(View view) {
136150
@Override
137151
protected void onDestroy() {
138152
super.onDestroy();
153+
for (TwaLauncher launcher : launchers) {
154+
launcher.destroy();
155+
}
139156
if (serviceBound) {
140157
unbindService(customTabsServiceConnection);
141158
serviceBound = false;

0 commit comments

Comments
 (0)