lschmierer / android_play_install_referrer

A Flutter plugin for the Android Play Install Referrer API.
BSD 2-Clause "Simplified" License
21 stars 21 forks source link

Null safety is not fully supported #11

Closed jukqaz closed 3 years ago

jukqaz commented 3 years ago
static Future<ReferrerDetails?> get installReferrer async {
    final Map? details = await _channel.invokeMethod('getInstallReferrer');

    if (details == null) {
      return null;
    }

    return ReferrerDetails(
      details['installReferrer'],
      details['referrerClickTimestampSeconds'],
      details['installBeginTimestampSeconds'],
      details['referrerClickTimestampServerSeconds'],
      details['installBeginTimestampServerSeconds'],
      details['installVersion'],
      details['googlePlayInstantParam'],
    );
  }

if details map has null value, happen casting exception in ReferrerDetails class's property. (Null to others)

lschmierer commented 3 years ago

Would changing

  late final String _installReferrer;
  late final int _referrerClickTimestampSeconds;
  late final int _installBeginTimestampSeconds;
  late final int _referrerClickTimestampServerSeconds;
  late final int _installBeginTimestampServerSeconds;
  late final String _installVersion;
  late final bool _googlePlayInstantParam;

to

  late final String? _installReferrer;
  late final int? _referrerClickTimestampSeconds;
  late final int? _installBeginTimestampSeconds;
  late final int? _referrerClickTimestampServerSeconds;
  late final int? _installBeginTimestampServerSeconds;
  late final String? _installVersion;
  late final bool? _googlePlayInstantParam;

fix this?

lschmierer commented 3 years ago

@jukqaz can you check if this is fixed in release 0.1.1?

Closing this for now. Feel free to reopen if there are still issues.