Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit 818dcc3

Browse files
committed
addressing comment
1 parent 36e33e2 commit 818dcc3

File tree

4 files changed

+25
-5
lines changed

4 files changed

+25
-5
lines changed

shell/platform/android/io/flutter/embedding/android/FlutterActivity.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -785,8 +785,8 @@ public String getDartEntrypointFunctionName() {
785785
public String getInitialRoute() {
786786
Intent intent = getIntent();
787787
Uri data = intent.getData();
788-
if (data != null && data.getPath() != null && !data.getPath().isEmpty()) {
789-
return data.getPath();
788+
if (data != null && !data.toString().isEmpty()) {
789+
return data.toString();
790790
}
791791
if (intent.hasExtra(EXTRA_INITIAL_ROUTE)) {
792792
return intent.getStringExtra(EXTRA_INITIAL_ROUTE);

shell/platform/android/io/flutter/embedding/android/FlutterFragmentActivity.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import android.graphics.Color;
2525
import android.graphics.drawable.ColorDrawable;
2626
import android.graphics.drawable.Drawable;
27+
import android.net.Uri;
2728
import android.os.Build;
2829
import android.os.Bundle;
2930
import android.view.View;
@@ -654,8 +655,13 @@ public String getDartEntrypointFunctionName() {
654655
*/
655656
@NonNull
656657
protected String getInitialRoute() {
657-
if (getIntent().hasExtra(EXTRA_INITIAL_ROUTE)) {
658-
return getIntent().getStringExtra(EXTRA_INITIAL_ROUTE);
658+
Intent intent = getIntent();
659+
Uri data = intent.getData();
660+
if (data != null && !data.toString().isEmpty()) {
661+
return data.toString();
662+
}
663+
if (intent.hasExtra(EXTRA_INITIAL_ROUTE)) {
664+
return intent.getStringExtra(EXTRA_INITIAL_ROUTE);
659665
}
660666

661667
try {

shell/platform/android/test/io/flutter/embedding/android/FlutterActivityTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ public void itCreatesNewEngineIntentWithLaunchUri() {
127127
flutterActivity.setDelegate(new FlutterActivityAndFragmentDelegate(flutterActivity));
128128

129129
assertEquals("main", flutterActivity.getDartEntrypointFunctionName());
130-
assertEquals("/custom/route", flutterActivity.getInitialRoute());
130+
assertEquals("http://myApp/custom/route", flutterActivity.getInitialRoute());
131131
assertArrayEquals(new String[] {}, flutterActivity.getFlutterShellArgs().toArray());
132132
assertTrue(flutterActivity.shouldAttachEngineToActivity());
133133
assertNull(flutterActivity.getCachedEngineId());

shell/platform/android/test/io/flutter/embedding/android/FlutterFragmentActivityTest.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
import android.content.Context;
99
import android.content.Intent;
10+
import android.net.Uri;
1011
import androidx.annotation.NonNull;
1112
import androidx.annotation.Nullable;
1213
import io.flutter.embedding.android.FlutterActivityLaunchConfigs.BackgroundMode;
@@ -19,8 +20,10 @@
1920
import org.junit.Before;
2021
import org.junit.Test;
2122
import org.junit.runner.RunWith;
23+
import org.robolectric.android.controller.ActivityController;
2224
import org.robolectric.Robolectric;
2325
import org.robolectric.RobolectricTestRunner;
26+
import org.robolectric.RuntimeEnvironment;
2427
import org.robolectric.annotation.Config;
2528

2629
@Config(manifest = Config.NONE)
@@ -82,6 +85,17 @@ public void itRegistersPluginsAtConfigurationTime() {
8285
assertEquals(activity.getFlutterEngine(), registeredEngines.get(0));
8386
}
8487

88+
@Test
89+
public void itSetsInitialRouteFromTheLaunchURI() {
90+
Intent intent = FlutterFragmentActivity.createDefaultIntent(RuntimeEnvironment.application);
91+
intent.setData(Uri.parse("http://myApp/custom/route"));
92+
ActivityController<FlutterFragmentActivity> activityController =
93+
Robolectric.buildActivity(FlutterFragmentActivity.class, intent);
94+
FlutterFragmentActivity flutterActivity = activityController.get();
95+
96+
assertEquals("http://myApp/custom/route", flutterActivity.getInitialRoute());
97+
}
98+
8599
static class FlutterFragmentActivityWithProvidedEngine extends FlutterFragmentActivity {
86100
@Override
87101
protected FlutterFragment createFlutterFragment() {

0 commit comments

Comments
 (0)