// Copyright 2017 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. package io.flutter.app; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.content.res.Configuration; import android.os.Build; import android.os.Bundle; import android.view.Window; import android.view.WindowManager; import android.view.WindowManager.LayoutParams; import io.flutter.plugin.common.BinaryMessenger; import io.flutter.plugin.common.PluginRegistry; import io.flutter.plugin.common.PluginRegistry.ActivityResultListener; import io.flutter.plugin.common.PluginRegistry.Registrar; import io.flutter.plugin.common.PluginRegistry.RequestPermissionResultListener; import io.flutter.plugin.platform.PlatformPlugin; import io.flutter.util.Preconditions; import io.flutter.view.FlutterMain; import io.flutter.view.FlutterView; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; /** * Class that performs the actual work of tying Android {@link Activity} * instances to Flutter. *
* This exists as a dedicated class (as opposed to being integrated directly * into {@link FlutterActivity}) to facilitate applications that don't wish * to subclass {@code FlutterActivity}. The most obvious example of when this * may come in handy is if an application wishes to subclass the Android v4 * support library's {@code FragmentActivity}. * *The published value is available to interested clients via * {@link PluginRegistry#valuePublishedByPlugin(String)}.
* *Publication should be done only when there is an interesting value * to be shared with other code. This would typically be an instance of * the plugin's main class itself that must be wired up to receive * notifications or events from an Android API. * *
Overwrites any previously published value.
*/ @Override public Registrar publish(Object value) { pluginMap.put(pluginKey, value); return this; } @Override public Registrar addRequestPermissionResultListener( RequestPermissionResultListener listener) { requestPermissionResultListeners.add(listener); return this; } @Override public Registrar addActivityResultListener(ActivityResultListener listener) { activityResultListeners.add(listener); return this; } @Override public Registrar addNewIntentListener(NewIntentListener listener) { newIntentListeners.add(listener); return this; } @Override public Registrar addUserLeaveHintListener(UserLeaveHintListener listener) { userLeaveHintListeners.add(listener); return this; } } }