# Conflicts:
#	android/build.gradle
#	pubspec.yaml
This commit is contained in:
2025-03-18 08:21:02 +08:00
31 changed files with 229 additions and 190 deletions

View File

@ -8,7 +8,7 @@ buildscript {
}
dependencies {
classpath 'com.android.tools.build:gradle:3.5.3'
classpath 'com.android.tools.build:gradle:3.5.4'
}
}
@ -22,10 +22,8 @@ rootProject.allprojects {
apply plugin: 'com.android.library'
android {
if (project.android.hasProperty("namespace")) {
namespace = "com.amap.flutter.map"
}
compileSdkVersion 34
namespace = "com.amap.flutter.map"
compileSdkVersion 35
defaultConfig {
minSdkVersion 16
@ -36,8 +34,7 @@ android {
}
dependencies {
// implementation 'com.amap.api:3dmap-location-search:10.0.800_loc6.4.5_sea9.7.2'
implementation 'com.amap.api:navi-3dmap:latest.integration'
implementation 'androidx.annotation:annotation:1.8.1'
implementation 'com.amap.api:3dmap-location-search:10.1.200_loc6.4.9_sea9.7.4'
implementation 'androidx.annotation:annotation:1.9.1'
}

View File

@ -1,10 +1,7 @@
package com.amap.flutter.map;
import android.app.Activity;
import androidx.annotation.NonNull;
import androidx.lifecycle.Lifecycle;
import androidx.lifecycle.LifecycleOwner;
import com.amap.flutter.map.utils.LogUtil;
@ -12,7 +9,6 @@ import io.flutter.embedding.engine.plugins.FlutterPlugin;
import io.flutter.embedding.engine.plugins.activity.ActivityAware;
import io.flutter.embedding.engine.plugins.activity.ActivityPluginBinding;
import io.flutter.embedding.engine.plugins.lifecycle.FlutterLifecycleAdapter;
import io.flutter.plugin.common.PluginRegistry;
/**
* AmapFlutterMapPlugin
@ -23,40 +19,17 @@ public class AMapFlutterMapPlugin implements
private static final String CLASS_NAME = "AMapFlutterMapPlugin";
private static final String VIEW_TYPE = "com.amap.flutter.map";
private Lifecycle lifecycle;
private FlutterPluginBinding pluginBinding;
public AMapFlutterMapPlugin() {
}
public static void registerWith(PluginRegistry.Registrar registrar) {
LogUtil.i(CLASS_NAME, "registerWith=====>");
final Activity activity = registrar.activity();
if (activity == null) {
LogUtil.w(CLASS_NAME, "activity is null!!!");
return;
}
if (activity instanceof LifecycleOwner) {
registrar
.platformViewRegistry()
.registerViewFactory(
VIEW_TYPE,
new AMapPlatformViewFactory(
registrar.messenger(),
() -> ((LifecycleOwner) activity).getLifecycle()));
} else {
registrar
.platformViewRegistry()
.registerViewFactory(
VIEW_TYPE,
new AMapPlatformViewFactory(registrar.messenger(), new ProxyLifecycleProvider(activity)));
}
}
// FlutterPlugin
@Override
public void onAttachedToEngine(@NonNull FlutterPluginBinding binding) {
LogUtil.i(CLASS_NAME, "onAttachedToEngine==>");
this.pluginBinding = binding;
binding
.getPlatformViewRegistry()
.registerViewFactory(
@ -78,6 +51,13 @@ public class AMapFlutterMapPlugin implements
public void onAttachedToActivity(@NonNull ActivityPluginBinding binding) {
LogUtil.i(CLASS_NAME, "onAttachedToActivity==>");
lifecycle = FlutterLifecycleAdapter.getActivityLifecycle(binding);
pluginBinding.getPlatformViewRegistry().registerViewFactory(
VIEW_TYPE,
new AMapPlatformViewFactory(
pluginBinding.getBinaryMessenger(),
() -> lifecycle
)
);
}
@Override

View File

@ -30,7 +30,8 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import io.flutter.view.FlutterMain;
import io.flutter.embedding.engine.FlutterEngine;
import io.flutter.embedding.engine.loader.FlutterLoader;
/**
* @author whm
@ -44,6 +45,15 @@ public class ConvertUtil {
private static final int[] LocationTypeMap = new int[]{MyLocationStyle.LOCATION_TYPE_SHOW, MyLocationStyle.LOCATION_TYPE_FOLLOW, MyLocationStyle.LOCATION_TYPE_LOCATION_ROTATE};
public static float density;
private static String apiKey;
private static FlutterLoader flutterLoader; // For asset loading
public static void initialize(Context context) {
flutterLoader = new FlutterLoader();
if (!flutterLoader.initialized()) {
flutterLoader.startInitialization(context);
flutterLoader.ensureInitializationComplete(context, null);
}
}
public static void setPrivacyStatement(Context context, Object object) {
if (null == object) {
@ -396,15 +406,15 @@ public class ConvertUtil {
case "fromAsset":
if (data.size() == 2) {
return BitmapDescriptorFactory.fromAsset(
FlutterMain.getLookupKeyForAsset(toString(data.get(1))));
flutterLoader.getLookupKeyForAsset(toString(data.get(1))));
} else {
return BitmapDescriptorFactory.fromAsset(
FlutterMain.getLookupKeyForAsset(toString(data.get(1)), toString(data.get(2))));
flutterLoader.getLookupKeyForAsset(toString(data.get(1)), toString(data.get(2))));
}
case "fromAssetImage":
if (data.size() == 3) {
return BitmapDescriptorFactory.fromAsset(
FlutterMain.getLookupKeyForAsset(toString(data.get(1))));
flutterLoader.getLookupKeyForAsset(toString(data.get(1))));
} else {
throw new IllegalArgumentException(
"'fromAssetImage' Expected exactly 3 arguments, got: " + data.size());