未验证 提交 5edd7666 编写于 作者: X xster 提交者: GitHub

Fix intent builder visibility (#18875)

上级 fb1e5cfa
......@@ -428,6 +428,7 @@ action("robolectric_tests") {
"test/io/flutter/embedding/android/FlutterActivityAndFragmentDelegateTest.java",
"test/io/flutter/embedding/android/FlutterActivityTest.java",
"test/io/flutter/embedding/android/FlutterAndroidComponentTest.java",
"test/io/flutter/embedding/android/FlutterFragmentActivityTest.java",
"test/io/flutter/embedding/android/FlutterFragmentTest.java",
"test/io/flutter/embedding/android/FlutterViewTest.java",
"test/io/flutter/embedding/android/RobolectricFlutterActivity.java",
......
......@@ -241,7 +241,7 @@ public class FlutterActivity extends Activity
*
* <p>{@code return new NewEngineIntentBuilder(MyFlutterActivity.class); }
*/
protected NewEngineIntentBuilder(@NonNull Class<? extends FlutterActivity> activityClass) {
public NewEngineIntentBuilder(@NonNull Class<? extends FlutterActivity> activityClass) {
this.activityClass = activityClass;
}
......@@ -314,12 +314,12 @@ public class FlutterActivity extends Activity
* {@code FlutterActivity}.
*
* <p>Subclasses of {@code FlutterActivity} should provide their own static version of {@link
* #withNewEngine()}, which returns an instance of {@code CachedEngineIntentBuilder} constructed
* with a {@code Class} reference to the {@code FlutterActivity} subclass, e.g.:
* #withCachedEngine()}, which returns an instance of {@code CachedEngineIntentBuilder}
* constructed with a {@code Class} reference to the {@code FlutterActivity} subclass, e.g.:
*
* <p>{@code return new CachedEngineIntentBuilder(MyFlutterActivity.class, engineId); }
*/
protected CachedEngineIntentBuilder(
public CachedEngineIntentBuilder(
@NonNull Class<? extends FlutterActivity> activityClass, @NonNull String engineId) {
this.activityClass = activityClass;
this.cachedEngineId = engineId;
......
......@@ -101,8 +101,7 @@ public class FlutterFragmentActivity extends FragmentActivity
*
* <p>{@code return new NewEngineIntentBuilder(MyFlutterActivity.class); }
*/
protected NewEngineIntentBuilder(
@NonNull Class<? extends FlutterFragmentActivity> activityClass) {
public NewEngineIntentBuilder(@NonNull Class<? extends FlutterFragmentActivity> activityClass) {
this.activityClass = activityClass;
}
......@@ -177,13 +176,13 @@ public class FlutterFragmentActivity extends FragmentActivity
* {@code FlutterFragmentActivity}.
*
* <p>Subclasses of {@code FlutterFragmentActivity} should provide their own static version of
* {@link #withNewEngine()}, which returns an instance of {@code CachedEngineIntentBuilder}
* {@link #withCachedEngine()}, which returns an instance of {@code CachedEngineIntentBuilder}
* constructed with a {@code Class} reference to the {@code FlutterFragmentActivity} subclass,
* e.g.:
*
* <p>{@code return new CachedEngineIntentBuilder(MyFlutterActivity.class, engineId); }
*/
protected CachedEngineIntentBuilder(
public CachedEngineIntentBuilder(
@NonNull Class<? extends FlutterFragmentActivity> activityClass, @NonNull String engineId) {
this.activityClass = activityClass;
this.cachedEngineId = engineId;
......
......@@ -7,6 +7,7 @@ package io.flutter;
import io.flutter.embedding.android.FlutterActivityAndFragmentDelegateTest;
import io.flutter.embedding.android.FlutterActivityTest;
import io.flutter.embedding.android.FlutterAndroidComponentTest;
import io.flutter.embedding.android.FlutterFragmentActivityTest;
import io.flutter.embedding.android.FlutterFragmentTest;
import io.flutter.embedding.android.FlutterViewTest;
import io.flutter.embedding.engine.FlutterEngineCacheTest;
......@@ -42,6 +43,7 @@ import test.io.flutter.embedding.engine.dart.DartExecutorTest;
FlutterEngineCacheTest.class,
FlutterEnginePluginRegistryTest.class,
FlutterEngineTest.class,
FlutterFragmentActivityTest.class,
FlutterFragmentTest.class,
FlutterJNITest.class,
FlutterLaunchTests.class,
......
......@@ -175,4 +175,16 @@ public class FlutterActivityTest {
context, mock(FlutterLoader.class), flutterJNI, new String[] {}, false);
}
}
// This is just a compile time check to ensure that it's possible for FlutterActivity subclasses
// to provide their own intent builders which builds their own runtime types.
static class FlutterActivityWithIntentBuilders extends FlutterActivity {
public static NewEngineIntentBuilder withNewEngine() {
return new NewEngineIntentBuilder(FlutterActivityWithIntentBuilders.class);
}
public static CachedEngineIntentBuilder withCachedEngine(@NonNull String cachedEngineId) {
return new CachedEngineIntentBuilder(FlutterActivityWithIntentBuilders.class, cachedEngineId);
}
}
}
package io.flutter.embedding.android;
import static org.junit.Assert.assertTrue;
import androidx.annotation.NonNull;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;
@Config(manifest = Config.NONE)
@RunWith(RobolectricTestRunner.class)
public class FlutterFragmentActivityTest {
@Test
public void placeholder() {
// This is just a placeholder since this file only has a compile check currently.
// Delete when adding the first real test.
assertTrue(true);
}
// This is just a compile time check to ensure that it's possible for FlutterFragmentActivity
// subclasses
// to provide their own intent builders which builds their own runtime types.
static class FlutterFragmentActivityWithIntentBuilders extends FlutterFragmentActivity {
public static NewEngineIntentBuilder withNewEngine() {
return new NewEngineIntentBuilder(FlutterFragmentActivityWithIntentBuilders.class);
}
public static CachedEngineIntentBuilder withCachedEngine(@NonNull String cachedEngineId) {
return new CachedEngineIntentBuilder(
FlutterFragmentActivityWithIntentBuilders.class, cachedEngineId);
}
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册