From c096850f1947113959261a668d6648684d49ec86 Mon Sep 17 00:00:00 2001 From: Julian Steenbakker Date: Tue, 5 Oct 2021 15:30:46 +0200 Subject: [PATCH 1/6] doc: fix typo --- packages/network_info_plus/network_info_plus/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/network_info_plus/network_info_plus/README.md b/packages/network_info_plus/network_info_plus/README.md index b7f084d701..864e52813b 100644 --- a/packages/network_info_plus/network_info_plus/README.md +++ b/packages/network_info_plus/network_info_plus/README.md @@ -38,7 +38,7 @@ var wifiGateway = await info.getWifiGatewayIP(); // 192.168.1.1 ### Android -To successfully get WiFi Name or Wi-Fi BSSID starting with Android O, ensure all of the following conditions are met: +To successfully get WiFi Name or Wi-Fi BSSID starting with Android 1O, ensure all of the following conditions are met: - If your app is targeting Android 10 (API level 29) SDK or higher, your app needs to have the ACCESS_FINE_LOCATION permission. From 49ce5acdc259e7b706491e387aac2c7c7fb4ed70 Mon Sep 17 00:00:00 2001 From: Julian Steenbakker Date: Tue, 5 Oct 2021 15:34:39 +0200 Subject: [PATCH 2/6] imp: upgrade gradle and android compile sdk version --- .../network_info_plus/android/build.gradle | 4 ++-- .../network_info_plus/example/android/app/build.gradle | 10 +++++----- .../example/android/app/src/main/AndroidManifest.xml | 3 ++- .../network_info_plus/example/android/build.gradle | 2 +- .../example/android/gradle.properties | 1 - .../android/gradle/wrapper/gradle-wrapper.properties | 5 +++-- 6 files changed, 13 insertions(+), 12 deletions(-) diff --git a/packages/network_info_plus/network_info_plus/android/build.gradle b/packages/network_info_plus/network_info_plus/android/build.gradle index 6e0607042a..d9230ae67b 100644 --- a/packages/network_info_plus/network_info_plus/android/build.gradle +++ b/packages/network_info_plus/network_info_plus/android/build.gradle @@ -8,7 +8,7 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:3.5.0' + classpath 'com.android.tools.build:gradle:3.5.4' } } @@ -22,7 +22,7 @@ rootProject.allprojects { apply plugin: 'com.android.library' android { - compileSdkVersion 28 + compileSdkVersion 31 defaultConfig { minSdkVersion 16 diff --git a/packages/network_info_plus/network_info_plus/example/android/app/build.gradle b/packages/network_info_plus/network_info_plus/example/android/app/build.gradle index 99786cdb6c..a97a22f29e 100644 --- a/packages/network_info_plus/network_info_plus/example/android/app/build.gradle +++ b/packages/network_info_plus/network_info_plus/example/android/app/build.gradle @@ -25,7 +25,7 @@ apply plugin: 'com.android.application' apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" android { - compileSdkVersion 28 + compileSdkVersion 31 lintOptions { disable 'InvalidPackage' @@ -34,7 +34,7 @@ android { defaultConfig { applicationId "dev.fluttercommunity.plus.network_info_plus_example" minSdkVersion 16 - targetSdkVersion 28 + targetSdkVersion 31 versionCode flutterVersionCode.toInteger() versionName flutterVersionName testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" @@ -52,7 +52,7 @@ flutter { } dependencies { - testImplementation 'junit:junit:4.12' - androidTestImplementation 'androidx.test:runner:1.1.1' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1' + testImplementation 'junit:junit:4.13.2' + androidTestImplementation 'androidx.test:runner:1.4.0' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' } diff --git a/packages/network_info_plus/network_info_plus/example/android/app/src/main/AndroidManifest.xml b/packages/network_info_plus/network_info_plus/example/android/app/src/main/AndroidManifest.xml index 9e8e49ef8e..7880e6633b 100644 --- a/packages/network_info_plus/network_info_plus/example/android/app/src/main/AndroidManifest.xml +++ b/packages/network_info_plus/network_info_plus/example/android/app/src/main/AndroidManifest.xml @@ -16,7 +16,8 @@ android:theme="@android:style/Theme.Black.NoTitleBar" android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection" android:hardwareAccelerated="true" - android:windowSoftInputMode="adjustResize"> + android:windowSoftInputMode="adjustResize" + android:exported="true"> diff --git a/packages/network_info_plus/network_info_plus/example/android/build.gradle b/packages/network_info_plus/network_info_plus/example/android/build.gradle index 456d020f6e..9971094448 100644 --- a/packages/network_info_plus/network_info_plus/example/android/build.gradle +++ b/packages/network_info_plus/network_info_plus/example/android/build.gradle @@ -5,7 +5,7 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:3.5.0' + classpath 'com.android.tools.build:gradle:7.0.2' } } diff --git a/packages/network_info_plus/network_info_plus/example/android/gradle.properties b/packages/network_info_plus/network_info_plus/example/android/gradle.properties index a6738207fd..94adc3a3f9 100644 --- a/packages/network_info_plus/network_info_plus/example/android/gradle.properties +++ b/packages/network_info_plus/network_info_plus/example/android/gradle.properties @@ -1,4 +1,3 @@ org.gradle.jvmargs=-Xmx1536M android.useAndroidX=true android.enableJetifier=true -android.enableR8=true diff --git a/packages/network_info_plus/network_info_plus/example/android/gradle/wrapper/gradle-wrapper.properties b/packages/network_info_plus/network_info_plus/example/android/gradle/wrapper/gradle-wrapper.properties index 019065d1d6..57d967396f 100644 --- a/packages/network_info_plus/network_info_plus/example/android/gradle/wrapper/gradle-wrapper.properties +++ b/packages/network_info_plus/network_info_plus/example/android/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,6 @@ +#Tue Oct 05 15:29:21 CEST 2021 distributionBase=GRADLE_USER_HOME +distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip distributionPath=wrapper/dists -zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-all.zip +zipStoreBase=GRADLE_USER_HOME From 49ff6a679f55566c557a71c1a4781f50ccf05b9d Mon Sep 17 00:00:00 2001 From: Julian Steenbakker Date: Tue, 5 Oct 2021 15:35:52 +0200 Subject: [PATCH 3/6] imp: remove reference to embedding v1 --- .../android/app/src/main/AndroidManifest.xml | 8 -------- .../EmbeddingV1Activity.java | 18 ------------------ .../EmbeddingV1ActivityTest.java | 17 ----------------- 3 files changed, 43 deletions(-) delete mode 100644 packages/network_info_plus/network_info_plus/example/android/app/src/main/java/dev/fluttercommunity/plus/network_info_plus_example/EmbeddingV1Activity.java delete mode 100644 packages/network_info_plus/network_info_plus/example/android/app/src/main/java/dev/fluttercommunity/plus/network_info_plus_example/EmbeddingV1ActivityTest.java diff --git a/packages/network_info_plus/network_info_plus/example/android/app/src/main/AndroidManifest.xml b/packages/network_info_plus/network_info_plus/example/android/app/src/main/AndroidManifest.xml index 7880e6633b..4d77c73be8 100644 --- a/packages/network_info_plus/network_info_plus/example/android/app/src/main/AndroidManifest.xml +++ b/packages/network_info_plus/network_info_plus/example/android/app/src/main/AndroidManifest.xml @@ -4,14 +4,6 @@ - - rule = - new ActivityTestRule<>(EmbeddingV1Activity.class); -} From 19d546517cc8d0e5554cf34878c71b4c5f2fb44e Mon Sep 17 00:00:00 2001 From: Julian Steenbakker Date: Tue, 5 Oct 2021 15:40:25 +0200 Subject: [PATCH 4/6] imp: apply code improvements --- .../plus/network_info/NetworkInfo.java | 27 ++++++++++++------- .../NetworkInfoMethodChannelHandler.java | 6 +++-- .../network_info/NetworkInfoPlusPlugin.java | 7 +++-- 3 files changed, 26 insertions(+), 14 deletions(-) diff --git a/packages/network_info_plus/network_info_plus/android/src/main/java/dev/fluttercommunity/plus/network_info/NetworkInfo.java b/packages/network_info_plus/network_info_plus/android/src/main/java/dev/fluttercommunity/plus/network_info/NetworkInfo.java index 33c39b6603..cb320f8466 100644 --- a/packages/network_info_plus/network_info_plus/android/src/main/java/dev/fluttercommunity/plus/network_info/NetworkInfo.java +++ b/packages/network_info_plus/network_info_plus/android/src/main/java/dev/fluttercommunity/plus/network_info/NetworkInfo.java @@ -4,6 +4,7 @@ package dev.fluttercommunity.plus.network_info; +import android.annotation.SuppressLint; import android.net.DhcpInfo; import android.net.wifi.WifiInfo; import android.net.wifi.WifiManager; @@ -16,7 +17,7 @@ /** Reports network info such as wifi name and address. */ class NetworkInfo { - private WifiManager wifiManager; + private final WifiManager wifiManager; NetworkInfo(WifiManager wifiManager) { this.wifiManager = wifiManager; @@ -39,6 +40,7 @@ String getWifiBSSID() { return bssid; } + @SuppressLint("DefaultLocale") String getWifiIPAddress() { WifiInfo wifiInfo = null; if (wifiManager != null) wifiInfo = wifiManager.getConnectionInfo(); @@ -61,7 +63,7 @@ String getWifiSubnetMask() { try { InetAddress inetAddress = InetAddress.getByName(ip); subnet = getIPv4Subnet(inetAddress); - } catch (Exception e) { + } catch (Exception ignored) { } return subnet; } @@ -79,7 +81,7 @@ String getBroadcast() { } } } - } catch (Exception e) { + } catch (Exception ignored) { } return broadcastIP; } @@ -91,11 +93,13 @@ public String getIpV6() { for (InterfaceAddress interfaceAddress : ni.getInterfaceAddresses()) { InetAddress address = interfaceAddress.getAddress(); if (!address.isLoopbackAddress() && address instanceof Inet6Address) { - String ipaddress = address.getHostAddress().split("%")[0]; - return ipaddress; + String ipaddress = address.getHostAddress(); + if (ipaddress != null) { + return ipaddress.split("%")[0]; + } } } - } catch (Exception ex) { + } catch (Exception ignored) { } return null; } @@ -103,7 +107,7 @@ public String getIpV6() { String getGatewayIpAdress() { DhcpInfo dhcpInfo = this.wifiManager.getDhcpInfo(); int gatewayIPInt = dhcpInfo.gateway; - String gatewayIP = + @SuppressLint("DefaultLocale") String gatewayIP = String.format( "%d.%d.%d.%d", ((gatewayIPInt) & 0xFF), @@ -123,10 +127,13 @@ private String getIPv4Subnet(InetAddress inetAddress) { List intAddrs = ni.getInterfaceAddresses(); for (InterfaceAddress ia : intAddrs) { if (!ia.getAddress().isLoopbackAddress() && ia.getAddress() instanceof Inet4Address) { - return getIPv4SubnetFromNetPrefixLength(ia.getNetworkPrefixLength()).getHostAddress(); + final InetAddress networkPrefix = getIPv4SubnetFromNetPrefixLength(ia.getNetworkPrefixLength()); + if (networkPrefix != null) { + return networkPrefix.getHostAddress(); + } } } - } catch (Exception e) { + } catch (Exception ignored) { } return ""; } @@ -146,7 +153,7 @@ private InetAddress getIPv4SubnetFromNetPrefixLength(int netPrefixLength) { + "." + (shift & 255); return InetAddress.getByName(subnet); - } catch (Exception e) { + } catch (Exception ignored) { } return null; } diff --git a/packages/network_info_plus/network_info_plus/android/src/main/java/dev/fluttercommunity/plus/network_info/NetworkInfoMethodChannelHandler.java b/packages/network_info_plus/network_info_plus/android/src/main/java/dev/fluttercommunity/plus/network_info/NetworkInfoMethodChannelHandler.java index 027cd25094..87fe9ba6c4 100644 --- a/packages/network_info_plus/network_info_plus/android/src/main/java/dev/fluttercommunity/plus/network_info/NetworkInfoMethodChannelHandler.java +++ b/packages/network_info_plus/network_info_plus/android/src/main/java/dev/fluttercommunity/plus/network_info/NetworkInfoMethodChannelHandler.java @@ -4,6 +4,8 @@ package dev.fluttercommunity.plus.network_info; +import androidx.annotation.NonNull; + import io.flutter.plugin.common.MethodCall; import io.flutter.plugin.common.MethodChannel; @@ -14,7 +16,7 @@ */ class NetworkInfoMethodChannelHandler implements MethodChannel.MethodCallHandler { - private NetworkInfo networkInfo; + private final NetworkInfo networkInfo; /** * Construct the NetworkInfoMethodChannelHandler with a {@code networkInfo}. The {@code @@ -26,7 +28,7 @@ class NetworkInfoMethodChannelHandler implements MethodChannel.MethodCallHandler } @Override - public void onMethodCall(MethodCall call, MethodChannel.Result result) { + public void onMethodCall(MethodCall call, @NonNull MethodChannel.Result result) { switch (call.method) { case "wifiName": result.success(networkInfo.getWifiName()); diff --git a/packages/network_info_plus/network_info_plus/android/src/main/java/dev/fluttercommunity/plus/network_info/NetworkInfoPlusPlugin.java b/packages/network_info_plus/network_info_plus/android/src/main/java/dev/fluttercommunity/plus/network_info/NetworkInfoPlusPlugin.java index 0728c75194..ac9a8bdbce 100644 --- a/packages/network_info_plus/network_info_plus/android/src/main/java/dev/fluttercommunity/plus/network_info/NetworkInfoPlusPlugin.java +++ b/packages/network_info_plus/network_info_plus/android/src/main/java/dev/fluttercommunity/plus/network_info/NetworkInfoPlusPlugin.java @@ -6,6 +6,9 @@ import android.content.Context; import android.net.wifi.WifiManager; + +import androidx.annotation.NonNull; + import io.flutter.embedding.engine.plugins.FlutterPlugin; import io.flutter.plugin.common.BinaryMessenger; import io.flutter.plugin.common.MethodChannel; @@ -21,13 +24,13 @@ public void onAttachedToEngine(FlutterPluginBinding binding) { } @Override - public void onDetachedFromEngine(FlutterPluginBinding binding) { + public void onDetachedFromEngine(@NonNull FlutterPluginBinding binding) { teardownChannels(); } private void setupChannels(BinaryMessenger messenger, Context context) { methodChannel = new MethodChannel(messenger, "dev.fluttercommunity.plus/network_info"); - WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE); + WifiManager wifiManager = (WifiManager) context.getApplicationContext().getSystemService(Context.WIFI_SERVICE); NetworkInfo networkInfo = new NetworkInfo(wifiManager); From 83894dc44f335018c4caeb950a598059296f3c19 Mon Sep 17 00:00:00 2001 From: Julian Steenbakker Date: Tue, 5 Oct 2021 15:42:03 +0200 Subject: [PATCH 5/6] style: melos format --- .../dev/fluttercommunity/plus/network_info/NetworkInfo.java | 6 ++++-- .../plus/network_info/NetworkInfoMethodChannelHandler.java | 1 - .../plus/network_info/NetworkInfoPlusPlugin.java | 5 ++--- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/network_info_plus/network_info_plus/android/src/main/java/dev/fluttercommunity/plus/network_info/NetworkInfo.java b/packages/network_info_plus/network_info_plus/android/src/main/java/dev/fluttercommunity/plus/network_info/NetworkInfo.java index cb320f8466..f40045a2e0 100644 --- a/packages/network_info_plus/network_info_plus/android/src/main/java/dev/fluttercommunity/plus/network_info/NetworkInfo.java +++ b/packages/network_info_plus/network_info_plus/android/src/main/java/dev/fluttercommunity/plus/network_info/NetworkInfo.java @@ -107,7 +107,8 @@ public String getIpV6() { String getGatewayIpAdress() { DhcpInfo dhcpInfo = this.wifiManager.getDhcpInfo(); int gatewayIPInt = dhcpInfo.gateway; - @SuppressLint("DefaultLocale") String gatewayIP = + @SuppressLint("DefaultLocale") + String gatewayIP = String.format( "%d.%d.%d.%d", ((gatewayIPInt) & 0xFF), @@ -127,7 +128,8 @@ private String getIPv4Subnet(InetAddress inetAddress) { List intAddrs = ni.getInterfaceAddresses(); for (InterfaceAddress ia : intAddrs) { if (!ia.getAddress().isLoopbackAddress() && ia.getAddress() instanceof Inet4Address) { - final InetAddress networkPrefix = getIPv4SubnetFromNetPrefixLength(ia.getNetworkPrefixLength()); + final InetAddress networkPrefix = + getIPv4SubnetFromNetPrefixLength(ia.getNetworkPrefixLength()); if (networkPrefix != null) { return networkPrefix.getHostAddress(); } diff --git a/packages/network_info_plus/network_info_plus/android/src/main/java/dev/fluttercommunity/plus/network_info/NetworkInfoMethodChannelHandler.java b/packages/network_info_plus/network_info_plus/android/src/main/java/dev/fluttercommunity/plus/network_info/NetworkInfoMethodChannelHandler.java index 87fe9ba6c4..ae4cc9ad39 100644 --- a/packages/network_info_plus/network_info_plus/android/src/main/java/dev/fluttercommunity/plus/network_info/NetworkInfoMethodChannelHandler.java +++ b/packages/network_info_plus/network_info_plus/android/src/main/java/dev/fluttercommunity/plus/network_info/NetworkInfoMethodChannelHandler.java @@ -5,7 +5,6 @@ package dev.fluttercommunity.plus.network_info; import androidx.annotation.NonNull; - import io.flutter.plugin.common.MethodCall; import io.flutter.plugin.common.MethodChannel; diff --git a/packages/network_info_plus/network_info_plus/android/src/main/java/dev/fluttercommunity/plus/network_info/NetworkInfoPlusPlugin.java b/packages/network_info_plus/network_info_plus/android/src/main/java/dev/fluttercommunity/plus/network_info/NetworkInfoPlusPlugin.java index ac9a8bdbce..7f8750b369 100644 --- a/packages/network_info_plus/network_info_plus/android/src/main/java/dev/fluttercommunity/plus/network_info/NetworkInfoPlusPlugin.java +++ b/packages/network_info_plus/network_info_plus/android/src/main/java/dev/fluttercommunity/plus/network_info/NetworkInfoPlusPlugin.java @@ -6,9 +6,7 @@ import android.content.Context; import android.net.wifi.WifiManager; - import androidx.annotation.NonNull; - import io.flutter.embedding.engine.plugins.FlutterPlugin; import io.flutter.plugin.common.BinaryMessenger; import io.flutter.plugin.common.MethodChannel; @@ -30,7 +28,8 @@ public void onDetachedFromEngine(@NonNull FlutterPluginBinding binding) { private void setupChannels(BinaryMessenger messenger, Context context) { methodChannel = new MethodChannel(messenger, "dev.fluttercommunity.plus/network_info"); - WifiManager wifiManager = (WifiManager) context.getApplicationContext().getSystemService(Context.WIFI_SERVICE); + WifiManager wifiManager = + (WifiManager) context.getApplicationContext().getSystemService(Context.WIFI_SERVICE); NetworkInfo networkInfo = new NetworkInfo(wifiManager); From bf8356d6b23678e305a72d1b7bce7f8f3f1e4bae Mon Sep 17 00:00:00 2001 From: Julian Steenbakker Date: Tue, 5 Oct 2021 15:42:17 +0200 Subject: [PATCH 6/6] bump version to 2.0.2 --- packages/network_info_plus/network_info_plus/CHANGELOG.md | 6 ++++++ packages/network_info_plus/network_info_plus/pubspec.yaml | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/network_info_plus/network_info_plus/CHANGELOG.md b/packages/network_info_plus/network_info_plus/CHANGELOG.md index 0437e84c08..dab95e052c 100644 --- a/packages/network_info_plus/network_info_plus/CHANGELOG.md +++ b/packages/network_info_plus/network_info_plus/CHANGELOG.md @@ -1,3 +1,9 @@ +## 2.0.2 + +- Upgrade Android compile SDK version +- Several code improvements +- Remove remaining embedding v1 components + ## 2.0.1 - Add IP v6 to MacOS diff --git a/packages/network_info_plus/network_info_plus/pubspec.yaml b/packages/network_info_plus/network_info_plus/pubspec.yaml index 21ea70d9bf..7c310c053a 100644 --- a/packages/network_info_plus/network_info_plus/pubspec.yaml +++ b/packages/network_info_plus/network_info_plus/pubspec.yaml @@ -1,6 +1,6 @@ name: network_info_plus description: Flutter plugin for discovering information (e.g. WiFi details) of the network. -version: 2.0.1 +version: 2.0.2 homepage: https://plus.fluttercommunity.dev/ repository: https://github.com/fluttercommunity/plus_plugins/tree/main/packages/