registerDevice method

Future<String> registerDevice({
  1. bool force = false,
})

Implementation

Future<String> registerDevice({bool force = false}) async {
  SharedPreferences sharedPreferences = await DeviceStorage().getInstance();

  if (!force) {
    String deviceTokenInStorage =
        sharedPreferences.getString(DeviceStorage.deviceToken) ?? "";
    if (!NetworkHandler.hasTokenExpired(deviceTokenInStorage)) {
      return deviceTokenInStorage;
    }
  }

  Map<String, String> params = await getDeviceInformation();
  String paramsString = jsonEncode(params);
  String encryptedParams = _aes128EcbEncrypt(paramsString, clientkey);
  String encryptedHash =
      crypto.sha1.convert(utf8.encode(paramsString)).toString();

  String deviceToken =
      await NetworkHandler().registerDevice(encryptedParams, encryptedHash);
  await sharedPreferences.setString(DeviceStorage.deviceToken, deviceToken);
  return deviceToken;
}