/*
 * @author lsy
 * @date   2019-10-08
 **/


import 'package:gm_flutter/commonModel/base/BaseUtil.dart';
import 'package:shared_preferences/shared_preferences.dart';

import 'CacheManager.dart';

class ShareCache implements ICache {
  @override
  get(String key) {
    return sharedPreferences.get(key);
  }

  @override
  void save(String key, value) {
    if (value is String) {
      sharedPreferences.setString(key, value).whenComplete(() {
        if (isDebug) {
          print("save String ${value} success");
        }
      });
    } else if (value is bool) {
      sharedPreferences.setBool(key, value).whenComplete(() {
        if (isDebug) {
          print("save bool ${value} success");
        }
      });
    } else if (value is double) {
      sharedPreferences.setDouble(key, value).whenComplete(() {
        if (isDebug) {
          print("save double ${value} success");
        }
      });
    } else if (value is int) {
      sharedPreferences.setInt(key, value).whenComplete(() {
        if (isDebug) {
          print("save int ${value} success");
        }
      });
    } else if (value is List<String>) {
      sharedPreferences.setStringList(key, value).whenComplete(() {
        if (isDebug) {
          print("save StringList ${value} success");
        }
      });
    } else {
      if (isDebug) {
        throw Exception("save error type");
      }
    }
  }

  @override
  void clearAll() {
    sharedPreferences.clear().whenComplete(() {});
  }
}