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/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. 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/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..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 @@ -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,6 +107,7 @@ public String getIpV6() { String getGatewayIpAdress() { DhcpInfo dhcpInfo = this.wifiManager.getDhcpInfo(); int gatewayIPInt = dhcpInfo.gateway; + @SuppressLint("DefaultLocale") String gatewayIP = String.format( "%d.%d.%d.%d", @@ -123,10 +128,14 @@ 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 +155,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..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 @@ -4,6 +4,7 @@ package dev.fluttercommunity.plus.network_info; +import androidx.annotation.NonNull; import io.flutter.plugin.common.MethodCall; import io.flutter.plugin.common.MethodChannel; @@ -14,7 +15,7 @@ */ class NetworkInfoMethodChannelHandler implements MethodChannel.MethodCallHandler { - private NetworkInfo networkInfo; + private final NetworkInfo networkInfo; /** * Construct the NetworkInfoMethodChannelHandler with a {@code networkInfo}. The {@code @@ -26,7 +27,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..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,6 +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; @@ -21,13 +22,14 @@ 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); 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..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,19 +4,12 @@ - - + android:windowSoftInputMode="adjustResize" + android:exported="true"> diff --git a/packages/network_info_plus/network_info_plus/example/android/app/src/main/java/dev/fluttercommunity/plus/network_info_plus_example/EmbeddingV1Activity.java b/packages/network_info_plus/network_info_plus/example/android/app/src/main/java/dev/fluttercommunity/plus/network_info_plus_example/EmbeddingV1Activity.java deleted file mode 100644 index 3656874ed8..0000000000 --- a/packages/network_info_plus/network_info_plus/example/android/app/src/main/java/dev/fluttercommunity/plus/network_info_plus_example/EmbeddingV1Activity.java +++ /dev/null @@ -1,18 +0,0 @@ -// 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 dev.fluttercommunity.plus.network_info_plus_example; - -import android.os.Bundle; -import dev.fluttercommunity.plus.network_info.NetworkInfoPlusPlugin; -import io.flutter.app.FlutterActivity; - -public class EmbeddingV1Activity extends FlutterActivity { - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - NetworkInfoPlusPlugin.registerWith( - registrarFor("dev.fluttercommunity.plus.network_info.NetworkPlusPlugin")); - } -} diff --git a/packages/network_info_plus/network_info_plus/example/android/app/src/main/java/dev/fluttercommunity/plus/network_info_plus_example/EmbeddingV1ActivityTest.java b/packages/network_info_plus/network_info_plus/example/android/app/src/main/java/dev/fluttercommunity/plus/network_info_plus_example/EmbeddingV1ActivityTest.java deleted file mode 100644 index e17382feaa..0000000000 --- a/packages/network_info_plus/network_info_plus/example/android/app/src/main/java/dev/fluttercommunity/plus/network_info_plus_example/EmbeddingV1ActivityTest.java +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright 2019 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 dev.fluttercommunity.plus.network_info_plus_example; - -import androidx.test.rule.ActivityTestRule; -import dev.flutter.plugins.integration_test.FlutterTestRunner; -import org.junit.Rule; -import org.junit.runner.RunWith; - -@RunWith(FlutterTestRunner.class) -public class EmbeddingV1ActivityTest { - @Rule - public ActivityTestRule rule = - new ActivityTestRule<>(EmbeddingV1Activity.class); -} 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 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/