Search in sources :

Example 1 with R

use of com.thebluealliance.androidclient.R in project the-blue-alliance-android by the-blue-alliance.

the class ScoreNotification method buildNotification.

@Override
public Notification buildNotification(Context context, FollowsChecker followsChecker) {
    Resources r = context.getResources();
    matchKey = match.getKey();
    String matchTitle = MatchHelper.getMatchTitleFromMatchKey(context, matchKey);
    String matchAbbrevTitle = MatchHelper.getAbbrevMatchTitleFromMatchKey(context, matchKey);
    IMatchAlliancesContainer alliances = match.getAlliances();
    int redScore = Match.getRedScore(alliances);
    int blueScore = Match.getBlueScore(alliances);
    // Boldify the team numbers that the user is following, but only if the system supports
    // java 8 language features
    CharSequence firstTeams;
    CharSequence secondTeams;
    ArrayList<String> redTeams = Match.teamNumbers(Match.getRedTeams(alliances));
    ArrayList<String> blueTeams = Match.teamNumbers(Match.getBlueTeams(alliances));
    if (Build.VERSION.SDK_INT > Build.VERSION_CODES.M) {
        Predicate<String> isFollowing = teamNumber -> followsChecker.followsTeam(context, teamNumber, matchKey, NotificationTypes.MATCH_SCORE);
        firstTeams = Utilities.boldNameList(redTeams, isFollowing);
        secondTeams = Utilities.boldNameList(blueTeams, isFollowing);
    } else {
        firstTeams = Utilities.stringifyListOfStrings(context, redTeams);
        secondTeams = Utilities.stringifyListOfStrings(context, blueTeams);
    }
    // Make sure the score string is formatted properly with the winning score first
    String scoreString;
    if (blueScore > redScore) {
        scoreString = blueScore + "-" + redScore;
        CharSequence temp = firstTeams;
        firstTeams = secondTeams;
        secondTeams = temp;
    } else {
        scoreString = redScore + "-" + blueScore;
    }
    MatchType matchType = MatchType.fromShortType(match.getCompLevel());
    boolean useSpecial2015Format = match.getYear() == 2015 && matchType != MatchType.FINAL;
    String eventShortName = EventHelper.shortName(eventName);
    String template;
    if (useSpecial2015Format) {
        // firstTeams played secondTeams (for 2015 non-finals matches)
        template = context.getString(R.string.notification_score_teams_played_teams);
    } else if (blueScore == redScore) {
        // firstTeams tied secondTeams
        template = context.getString(R.string.notification_score_teams_tied_teams);
    } else {
        // firstTeams beat secondTeams
        template = context.getString(R.string.notification_score_teams_beat_teams);
    }
    CharSequence notificationBody = TextUtils.expandTemplate(template, eventShortName, matchTitle, firstTeams, secondTeams, scoreString);
    // We can finally build the notification!
    Intent instance = getIntent(context);
    stored = new StoredNotification();
    stored.setType(getNotificationType());
    String eventCode = EventHelper.getEventCode(matchKey);
    String notificationTitle = r.getString(R.string.notification_score_title, eventCode, matchAbbrevTitle);
    stored.setTitle(notificationTitle);
    stored.setBody(notificationBody.toString());
    stored.setIntent(MyTBAHelper.serializeIntent(instance));
    stored.setTime(Calendar.getInstance().getTime());
    stored.setMessageData(messageData);
    stored.setSystemId(getNotificationId());
    NotificationCompat.Builder builder = getBaseBuilder(context, instance).setContentTitle(notificationTitle).setContentText(notificationBody);
    NotificationCompat.BigTextStyle style = new NotificationCompat.BigTextStyle().bigText(notificationBody);
    builder.setStyle(style);
    return builder.build();
}
Also used : JsonParseException(com.google.gson.JsonParseException) Context(android.content.Context) JsonObject(com.google.gson.JsonObject) MatchWriter(com.thebluealliance.androidclient.database.writers.MatchWriter) StoredNotification(com.thebluealliance.androidclient.models.StoredNotification) NotificationCompat(androidx.core.app.NotificationCompat) Date(java.util.Date) Intent(android.content.Intent) MatchHelper(com.thebluealliance.androidclient.helpers.MatchHelper) ArrayList(java.util.ArrayList) Calendar(java.util.Calendar) Gson(com.google.gson.Gson) MatchType(com.thebluealliance.androidclient.types.MatchType) View(android.view.View) Build(android.os.Build) R(com.thebluealliance.androidclient.R) EventHelper(com.thebluealliance.androidclient.helpers.EventHelper) JSONHelper(com.thebluealliance.androidclient.helpers.JSONHelper) ViewMatchActivity(com.thebluealliance.androidclient.activities.ViewMatchActivity) LayoutInflater(android.view.LayoutInflater) Match(com.thebluealliance.androidclient.models.Match) TextUtils(android.text.TextUtils) MatchRenderer(com.thebluealliance.androidclient.renderers.MatchRenderer) ScoreNotificationViewModel(com.thebluealliance.androidclient.viewmodels.ScoreNotificationViewModel) IMatchAlliancesContainer(com.thebluealliance.api.model.IMatchAlliancesContainer) MyTBAHelper(com.thebluealliance.androidclient.helpers.MyTBAHelper) MatchListElement(com.thebluealliance.androidclient.listitems.MatchListElement) TextView(android.widget.TextView) Nullable(androidx.annotation.Nullable) Predicate(com.google.common.base.Predicate) Utilities(com.thebluealliance.androidclient.Utilities) FollowsChecker(com.thebluealliance.androidclient.gcm.FollowsChecker) GamedayTickerClickListener(com.thebluealliance.androidclient.listeners.GamedayTickerClickListener) Notification(android.app.Notification) Resources(android.content.res.Resources) MatchView(com.thebluealliance.androidclient.views.MatchView) StoredNotification(com.thebluealliance.androidclient.models.StoredNotification) Intent(android.content.Intent) MatchType(com.thebluealliance.androidclient.types.MatchType) IMatchAlliancesContainer(com.thebluealliance.api.model.IMatchAlliancesContainer) NotificationCompat(androidx.core.app.NotificationCompat) Resources(android.content.res.Resources)

Example 2 with R

use of com.thebluealliance.androidclient.R in project the-blue-alliance-android by the-blue-alliance.

the class TeamMatchVideoNotification method buildNotification.

@Override
public Notification buildNotification(Context context, FollowsChecker followsChecker) {
    Resources r = context.getResources();
    ArrayList<String> teamNumbers = Match.teamNumbers(mMatchTeamKeys);
    CharSequence teamNumberString;
    if (Build.VERSION.SDK_INT > Build.VERSION_CODES.M) {
        Predicate<String> isFollowing = teamNumber -> followsChecker.followsTeam(context, teamNumber, mMatchKey, NotificationTypes.MATCH_VIDEO);
        teamNumberString = Utilities.boldNameList(teamNumbers, isFollowing);
    } else {
        teamNumberString = Utilities.stringifyListOfStrings(context, teamNumbers);
    }
    String matchTitle = MatchHelper.getAbbrevMatchTitleFromMatchKey(context, mMatchKey);
    String eventCode = EventHelper.getEventCode(mMatchKey);
    String title = r.getString(R.string.notification_team_match_video, eventCode, matchTitle);
    String notificationBody = r.getString(R.string.notification_team_match_video_content, EventHelper.shortName(mEventName), teamNumberString);
    // We can finally build the notification!
    Intent instance = getIntent(context);
    stored = new StoredNotification();
    stored.setType(getNotificationType());
    stored.setTitle(title);
    stored.setBody(notificationBody);
    stored.setIntent(MyTBAHelper.serializeIntent(instance));
    stored.setTime(Calendar.getInstance().getTime());
    stored.setMessageData(messageData);
    stored.setSystemId(getNotificationId());
    NotificationCompat.Builder builder = getBaseBuilder(context, instance).setContentTitle(title).setContentText(notificationBody);
    NotificationCompat.BigTextStyle style = new NotificationCompat.BigTextStyle().bigText(notificationBody);
    builder.setStyle(style);
    return builder.build();
}
Also used : JsonParseException(com.google.gson.JsonParseException) Context(android.content.Context) JsonObject(com.google.gson.JsonObject) MatchWriter(com.thebluealliance.androidclient.database.writers.MatchWriter) StoredNotification(com.thebluealliance.androidclient.models.StoredNotification) NotificationCompat(androidx.core.app.NotificationCompat) Date(java.util.Date) Intent(android.content.Intent) MatchHelper(com.thebluealliance.androidclient.helpers.MatchHelper) ArrayList(java.util.ArrayList) Calendar(java.util.Calendar) Gson(com.google.gson.Gson) Build(android.os.Build) R(com.thebluealliance.androidclient.R) EventHelper(com.thebluealliance.androidclient.helpers.EventHelper) ViewMatchActivity(com.thebluealliance.androidclient.activities.ViewMatchActivity) Match(com.thebluealliance.androidclient.models.Match) MyTBAHelper(com.thebluealliance.androidclient.helpers.MyTBAHelper) List(java.util.List) Nullable(androidx.annotation.Nullable) Predicate(com.google.common.base.Predicate) Utilities(com.thebluealliance.androidclient.Utilities) FollowsChecker(com.thebluealliance.androidclient.gcm.FollowsChecker) Notification(android.app.Notification) TeamMatchVideoNotificationViewModel(com.thebluealliance.androidclient.viewmodels.TeamMatchVideoNotificationViewModel) Resources(android.content.res.Resources) StoredNotification(com.thebluealliance.androidclient.models.StoredNotification) NotificationCompat(androidx.core.app.NotificationCompat) Intent(android.content.Intent) Resources(android.content.res.Resources)

Aggregations

Notification (android.app.Notification)2 Context (android.content.Context)2 Intent (android.content.Intent)2 Resources (android.content.res.Resources)2 Build (android.os.Build)2 Nullable (androidx.annotation.Nullable)2 NotificationCompat (androidx.core.app.NotificationCompat)2 Predicate (com.google.common.base.Predicate)2 Gson (com.google.gson.Gson)2 JsonObject (com.google.gson.JsonObject)2 JsonParseException (com.google.gson.JsonParseException)2 R (com.thebluealliance.androidclient.R)2 Utilities (com.thebluealliance.androidclient.Utilities)2 ViewMatchActivity (com.thebluealliance.androidclient.activities.ViewMatchActivity)2 MatchWriter (com.thebluealliance.androidclient.database.writers.MatchWriter)2 FollowsChecker (com.thebluealliance.androidclient.gcm.FollowsChecker)2 EventHelper (com.thebluealliance.androidclient.helpers.EventHelper)2 MatchHelper (com.thebluealliance.androidclient.helpers.MatchHelper)2 MyTBAHelper (com.thebluealliance.androidclient.helpers.MyTBAHelper)2 Match (com.thebluealliance.androidclient.models.Match)2