getSettings method Null safety

  1. @override
Future<Settings> getSettings()
override

Implementation

@override
Future<Settings> getSettings() async {
  try {
    await _reddit.auth.refresh();
    http.Response ret = await http.get(
      Uri.parse("https://oauth.reddit.com/api/v1/me/prefs"),
      headers: {
        "Authorization": "Bearer ${_reddit.auth.credentials.accessToken}",
        "User-Agent": "soreo"
      }
    );
    var obj = json.decode(ret.body);
    return Settings(
      autoplay: obj["video_autoplay"],
      displayNsfw: obj["over_18"],
      emailOnFollow: obj["email_user_new_follower"],
      emailOnMention: obj["email_username_mention"],
      emailOnReply: obj["email_post_reply"],
      emailOnUpvote: obj["email_upvote_post"]
    );
  } catch(e) {
    print(e);
    return Settings(
      autoplay: true,
      displayNsfw: true,
      emailOnUpvote: false,
      emailOnReply: false,
      emailOnMention: false,
      emailOnFollow: false
    );
  }
}