flutter_session icon indicating copy to clipboard operation
flutter_session copied to clipboard

flutter 2.x bug

Open peterbyCom opened this issue 4 years ago • 3 comments

Hello sir.

flutter_session seems to be incompatible with other third-party libraries.

Can you schedule an update to the null safe version recently?

[study] flutter pub get Running "flutter pub get" in study...
Because study depends on flutter_session ^0.1.1 which depends on shared_preferences ^0.5.8, shared_preferences ^0.5.8 is required.

So, because study depends on shared_preferences ^2.0.3, version solving failed. pub get failed (1; So, because study depends on shared_preferences ^2.0.3, version solving failed.) exit code 1

peterbyCom avatar Mar 09 '21 10:03 peterbyCom

[study] flutter pub get Running "flutter pub get" in study...
Because shared_preferences_linux >=0.0.4-nullsafety <2.0.0 depends on shared_preferences_platform_interface ^2.0.0-nullsafety and shared_preferences_linux <=0.0.2 depends on path_provider ^1.6.11, shared_preferences_linux <0.0.2+1 or >=0.0.4-nullsafety <2.0.0-∞ requires shared_preferences_platform_interface ^2.0.0-nullsafety or path_provider ^1.6.11.

And because shared_preferences_linux >=0.0.2+1 <0.0.4-nullsafety depends on path_provider_linux ^0.0.1, shared_preferences_linux <2.0.0 requires path_provider_linux ^0.0.1 or shared_preferences_platform_interface ^2.0.0-nullsafety or path_provider ^1.6.11.

And because shared_preferences >=0.5.8 <2.0.0-nullsafety depends on shared_preferences_linux ^0.0.2 and shared_preferences >=0.5.4+8 <2.0.0-nullsafety depends on shared_preferences_platform_interface ^1.0.0, shared_preferences >=0.5.8 <2.0.0-nullsafety requires path_provider_linux ^0.0.1 or path_provider ^1.6.11.

And because path_provider 2.0.1 depends on path_provider_linux ^2.0.0 and no versions of path_provider match >2.0.1 <3.0.0, shared_preferences >=0.5.8 <2.0.0-nullsafety is incompatible with path_provider ^2.0.1.

Because no versions of better_player match >0.0.62 <0.1.0 and better_player 0.0.62 depends on path_provider ^2.0.1, better_player ^0.0.62 requires path_provider ^2.0.1.

Thus, better_player ^0.0.62 is incompatible with shared_preferences >=0.5.8 <2.0.0-nullsafety.

And because every version of flutter_session depends on shared_preferences ^0.5.8, better_player ^0.0.62 is incompatible with flutter_session.

So, because study depends on both flutter_session ^0.1.1 and better_player ^0.0.62, version solving failed. pub get failed (1; So, because study depends on both flutter_session ^0.1.1 and better_player ^0.0.62, version solving failed.) exit code 1

peterbyCom avatar Mar 09 '21 10:03 peterbyCom

same problem here, please update it.

itamarjp avatar Apr 26 '21 01:04 itamarjp

I think the owner of this package never do update anymore, so the solution just make directory and call it as module/deprecated/flutter_session and create file called flutter_session.dart. Also don't forgot to add package called shared_preferences

/// Copyright (c) 2020, Jhourlad Estrella.
/// All rights reserved. Use of this source code is governed by a
/// MIT-style license that can be found in the LICENSE.md file.

/// flutter_session file package.
///
/// Adds session-like functionality to Flutter
library flutter_session;

import 'dart:convert';

import 'package:shared_preferences/shared_preferences.dart';

/// flutter_session
/// A package that adds session functionality to Flutter
class FlutterSession {
  /// Initialize session container
  Map _session = {};

  // Yes, it uses SharedPreferences
  SharedPreferences prefs;

  // Initialize the SharedPreferences instance
  Future _initSharedPrefs() async {
    this.prefs = await SharedPreferences.getInstance();
  }

  /// Item setter
  ///
  /// @param key String
  /// @returns Future
  Future get(key) async {
    await _initSharedPrefs();
    try {
      return json.decode(this.prefs.get(key));
    } catch (e) {
      return this.prefs.get(key);
    }
  }

  /// Item setter
  ///
  /// @param key String
  /// @param value any
  /// @returns Future
  Future set(key, value) async {
    await _initSharedPrefs();

    // Detect item type
    switch (value.runtimeType) {
      // String
      case String:
        {
          this.prefs.setString(key, value);
        }
        break;

      // Integer
      case int:
        {
          this.prefs.setInt(key, value);
        }
        break;

      // Boolean
      case bool:
        {
          this.prefs.setBool(key, value);
        }
        break;

      // Double
      case double:
        {
          this.prefs.setDouble(key, value);
        }
        break;

      // List<String>
      case List:
        {
          this.prefs.setStringList(key, value);
        }
        break;

      // Object
      default:
        {
          this.prefs.setString(key, jsonEncode(value.toJson()));
        }
    }

    // Add item to session container
    this._session.putIfAbsent(key, () => value);
  }
}

RasyidMF avatar May 26 '21 12:05 RasyidMF