openConversation static method

dynamic openConversation({
  1. required dynamic opponentUserId,
  2. required BuildContext context,
  3. required bool? isDark,
  4. required Color? themeColor,
  5. String? language,
})

Implementation

static openConversation({
  required opponentUserId,
  required BuildContext context,
  required bool? isDark,
  required Color? themeColor,
  String? language,
}) {
  final Localization localization = Localization();
  AppStorages.languageKey = localization.keys[language ?? 'en_US'];

  var body = {
    "secretKey": AppStorages.secKey,
    "userId": AppStorages.myUserId,
    "email": AppStorages.myEmail.value,
    "members": [
      AppStorages.myUserId.toString(),
      opponentUserId.toString(),
    ],
    "isGroup": false,
    "groupImage": "",
    "name": "",
    "pinGroupForAll": 1,
    "groupPermission": [AppStorages.getChatUserRoles()],
  };

  Webservice.postRequest(
    context: Get.context,
    uri: Global.createGroup,
    body: body,
    baseUrl: Global.baseApiUrl,
    hasBearer: false,
    onSuccess: (response) {
      var res = jsonDecode(response);
      Navigator.push(
        context,
        MaterialPageRoute(
          builder: (context) => MessageView(
            groupId: res['groupId'],
            isOnlineCall: false,
            userBlocked: 0,
            theme: CometChatTheme(
              palette: Palette(
                mode: isDark! ? PaletteThemeModes.dark : PaletteThemeModes.light,
                accent: PaletteModel(light: themeColor!, dark: themeColor),
              ),
            ),
            isGroup: false,
          ),
        ),
      );
    },
    onFailure: (_) {},
    onConnectionFailed: (_) {},
  );
}