Search in sources :

Example 1 with Player

use of fr.neamar.lolgamedata.pojo.Player in project teamward-client by Neamar.

the class PerformanceActivity method onCreate.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_performance);
    final Toolbar toolbar = findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    assert getSupportActionBar() != null;
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    Game game = (Game) getIntent().getSerializableExtra("game");
    player = (Player) getIntent().getSerializableExtra("player");
    // Doing this in two steps, got some crash reports on the Store and trying to understand
    // what can be Null: player.summoner, or summoner.name.
    Summoner summoner = player.summoner;
    // HERO
    setTitle(summoner.name);
    // CHAMPION MASTERY
    View masteryHolder = findViewById(R.id.masteryHolder);
    ImageView championMasteryImage = (ImageView) findViewById(R.id.championMasteryImage);
    TextView championMasteryText = (TextView) findViewById(R.id.championMasteryText);
    TextView championPointsText = (TextView) findViewById(R.id.championPointsText);
    @DrawableRes int championMasteryResource = CHAMPION_MASTERIES_RESOURCES[player.champion.mastery];
    if (championMasteryResource == 0) {
        masteryHolder.setVisibility(View.GONE);
    } else {
        championMasteryImage.setImageResource(CHAMPION_MASTERIES_RESOURCES[player.champion.mastery]);
        championMasteryText.setText(String.format(getString(R.string.champion_mastery_lvl), player.champion.mastery));
        if (player.champion.mastery >= 5) {
            championPointsText.setText(String.format(getString(R.string.champion_points), NumberFormat.getInstance().format(player.champion.points)));
        } else {
            championPointsText.setVisibility(View.GONE);
        }
        masteryHolder.setVisibility(View.VISIBLE);
    }
    // RANKED INFORMATION
    View rankingHolder = findViewById(R.id.rankingHolder);
    ImageView rankingTierImage = (ImageView) rankingHolder.findViewById(R.id.rankingTierImage);
    TextView rankingText = (TextView) rankingHolder.findViewById(R.id.rankingText);
    TextView rankingQueue = (TextView) rankingHolder.findViewById(R.id.rankingQueue);
    if (player.rank.tier.isEmpty() || !RANKING_TIER_RESOURCES.containsKey(player.rank.tier.toLowerCase(Locale.ROOT))) {
        rankingHolder.setVisibility(View.GONE);
    } else {
        rankingTierImage.setImageResource(RANKING_TIER_RESOURCES.get(player.rank.tier.toLowerCase(Locale.ROOT)));
        rankingText.setText(String.format(getString(R.string.ranking), player.rank.tier.toUpperCase(Locale.ROOT), player.rank.division));
        rankingHolder.setVisibility(View.VISIBLE);
        rankingQueue.setText(getQueueName(player.rank.queue));
    }
    rankingHolder.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {
            try {
                Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://" + player.region + ".op.gg/summoner/userName=" + URLEncoder.encode(player.summoner.name, "UTF-8")));
                startActivity(browserIntent);
                Tracker.trackClickOnOpGG(PerformanceActivity.this, player);
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            } catch (ActivityNotFoundException e) {
                Toast.makeText(PerformanceActivity.this, R.string.unable_to_open_browser, Toast.LENGTH_SHORT).show();
                e.printStackTrace();
            }
        }
    });
    // LAST SEASON RANKED INFORMATION
    View lastSeasonRankHolder = findViewById(R.id.lastSeasonRankHolder);
    ImageView lastRankingTierImage = (ImageView) lastSeasonRankHolder.findViewById(R.id.rankingTierImage);
    TextView lastRankingText = (TextView) lastSeasonRankHolder.findViewById(R.id.rankingText);
    // Do not display unranked, null, or any rank similar to current rank
    if (player.rank.oldTier.isEmpty() || player.rank.oldTier.equals(player.rank.tier) || !RANKING_TIER_RESOURCES.containsKey(player.rank.oldTier.toLowerCase(Locale.ROOT))) {
        lastSeasonRankHolder.setVisibility(View.GONE);
    } else {
        lastRankingTierImage.setImageResource(RANKING_TIER_RESOURCES.get(player.rank.oldTier.toLowerCase(Locale.ROOT)));
        lastRankingText.setText(String.format(getString(R.string.ranking_last_season), player.rank.oldTier.toUpperCase(Locale.ROOT)));
        lastSeasonRankHolder.setVisibility(View.VISIBLE);
    }
    // MATCHUP INFORMATION
    View matchupHolder = findViewById(R.id.matchupHolder);
    ImageView ownChampion = (ImageView) findViewById(R.id.ownChampion);
    ImageView enemyChampion = (ImageView) findViewById(R.id.enemyChampion);
    TextView matchupTextView = (TextView) findViewById(R.id.matchupStats);
    final Team playerTeam = game.getTeamForPlayer(player);
    Player oppositePlayer = null;
    if (game.teams.size() > 1) {
        Team otherTeam = game.teams.get(0) == playerTeam ? game.teams.get(1) : game.teams.get(0);
        for (Player tplayer : otherTeam.players) {
            if (player.champion.role.equals(tplayer.champion.role)) {
                oppositePlayer = tplayer;
                break;
            }
        }
    }
    if (playerTeam == null || player.champion.role.equals(ChampionInGame.UNKNOWN_ROLE) || oppositePlayer == null) {
        matchupHolder.setVisibility(View.GONE);
    } else {
        ImageLoader.getInstance().displayImage(player.champion.imageUrl, ownChampion);
        ImageLoader.getInstance().displayImage(oppositePlayer.champion.imageUrl, enemyChampion);
        if (player.champion.winRate >= 0) {
            matchupTextView.setText(String.format(Locale.getDefault(), "%d%%", player.champion.winRate));
            if (player.champion.winRate > 50) {
                matchupTextView.setTextColor(getResources().getColor(R.color.colorGoodMatchup));
            } else if (player.champion.winRate < 50) {
                matchupTextView.setTextColor(getResources().getColor(R.color.colorBadMatchup));
            }
        } else {
            matchupTextView.setText("?");
            matchupTextView.setTextColor(getResources().getColor(R.color.colorUnknownMatchup));
        }
    }
    matchupHolder.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {
            Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(player.champion.ggUrl));
            try {
                startActivity(browserIntent);
            } catch (ActivityNotFoundException e) {
                Toast.makeText(PerformanceActivity.this, R.string.unable_to_open_browser, Toast.LENGTH_SHORT).show();
            }
            Tracker.trackClickOnGG(PerformanceActivity.this, player.champion.name, player.champion.id, "player_details");
        }
    });
    // MAIN CHAMPIONS
    if (player.mainChampions.size() == 0) {
        findViewById(R.id.mainsHolder).setVisibility(View.GONE);
    } else {
        ChampionPortraitView main1 = ((ChampionPortraitView) findViewById(R.id.main1));
        ChampionPortraitView main2 = ((ChampionPortraitView) findViewById(R.id.main2));
        ChampionPortraitView main3 = ((ChampionPortraitView) findViewById(R.id.main3));
        main1.setChampion(player.mainChampions.get(0));
        if (player.mainChampions.size() == 3) {
            main2.setChampion(player.mainChampions.get(1));
            main3.setChampion(player.mainChampions.get(2));
        } else if (player.mainChampions.size() == 2) {
            main2.setChampion(player.mainChampions.get(1));
            main3.setVisibility(View.GONE);
        } else {
            main2.setVisibility(View.GONE);
            main3.setVisibility(View.GONE);
        }
    }
    // RECENT MATCHES
    TextView recentMatchesText = (TextView) findViewById(R.id.recentMatchesTitle);
    recentMatchesText.setText(String.format(getString(R.string.recent_matches), player.champion.name));
    findViewById(R.id.aggregate).setVisibility(View.GONE);
    downloadPerformance();
    // TEAMWARD USER
    if (player.teamwardUser) {
        findViewById(R.id.teamwardUser).setVisibility(View.VISIBLE);
    }
}
Also used : Summoner(fr.neamar.lolgamedata.pojo.Summoner) Player(fr.neamar.lolgamedata.pojo.Player) DrawableRes(android.support.annotation.DrawableRes) UnsupportedEncodingException(java.io.UnsupportedEncodingException) Intent(android.content.Intent) ImageView(android.widget.ImageView) View(android.view.View) ChampionPortraitView(fr.neamar.lolgamedata.view.ChampionPortraitView) RecyclerView(android.support.v7.widget.RecyclerView) TextView(android.widget.TextView) ChampionInGame(fr.neamar.lolgamedata.pojo.ChampionInGame) Game(fr.neamar.lolgamedata.pojo.Game) ActivityNotFoundException(android.content.ActivityNotFoundException) TextView(android.widget.TextView) Team(fr.neamar.lolgamedata.pojo.Team) ImageView(android.widget.ImageView) ChampionPortraitView(fr.neamar.lolgamedata.view.ChampionPortraitView) Toolbar(android.support.v7.widget.Toolbar)

Example 2 with Player

use of fr.neamar.lolgamedata.pojo.Player in project teamward-client by Neamar.

the class FullAPDTeamTipBuilder method getTips.

@Override
public ArrayList<Tip> getTips(Game game, Context context) {
    ArrayList<Tip> tips = new ArrayList<>();
    // Full AP
    for (Team team : game.teams) {
        Boolean fullAP = true;
        for (Player player : team.players) {
            if (!player.champion.isAp()) {
                fullAP = false;
                break;
            }
        }
        if (fullAP) {
            String description = context.getString(R.string.full_ap);
            description = String.format(description, team.getName(context));
            tips.add(new PlayerStandardTip(game, null, MAGIC_MANTLE_URL, context.getString(R.string.such_ability), description));
        }
    }
    // Full AD
    for (Team team : game.teams) {
        Boolean fullAD = true;
        for (Player player : team.players) {
            if (!player.champion.isAd() && !player.champion.role.equals("SUPPORT")) {
                fullAD = false;
                break;
            }
        }
        if (fullAD) {
            String description = context.getString(R.string.full_ad);
            description = String.format(description, team.getName(context));
            tips.add(new PlayerStandardTip(game, null, CLOTH_ARMOR, context.getString(R.string.much_damage), description));
        }
    }
    return tips;
}
Also used : Player(fr.neamar.lolgamedata.pojo.Player) PlayerStandardTip(fr.neamar.lolgamedata.tips.PlayerStandardTip) ArrayList(java.util.ArrayList) PlayerStandardTip(fr.neamar.lolgamedata.tips.PlayerStandardTip) Tip(fr.neamar.lolgamedata.tips.Tip) Team(fr.neamar.lolgamedata.pojo.Team)

Example 3 with Player

use of fr.neamar.lolgamedata.pojo.Player in project teamward-client by Neamar.

the class MatchupsBuilder method getTips.

@Override
public ArrayList<Tip> getTips(Game game, Context context) {
    ArrayList<Tip> tips = new ArrayList<>();
    if (game.teams.size() != 2) {
        return tips;
    }
    // Do not display on ARAM
    if (game.mapId == 12) {
        return tips;
    }
    Team playerTeam = game.getPlayerOwnTeam();
    Team otherTeam = game.teams.get(0) == playerTeam ? game.teams.get(1) : game.teams.get(0);
    ArrayList<MatchupsTip.Matchup> matchups = new ArrayList<>();
    for (Player player : playerTeam.players) {
        if (!player.champion.role.equals(ChampionInGame.UNKNOWN_ROLE)) {
            // Does the other team have someone with this role too?
            Player otherPlayer = getPlayerWithRole(otherTeam, player.champion.role);
            if (otherPlayer != null) {
                MatchupsTip.Matchup matchup = new MatchupsTip.Matchup(player, otherPlayer);
                matchups.add(matchup);
            }
        }
    }
    if (matchups.size() > 0) {
        MatchupsTip tip = new MatchupsTip(game, matchups);
        tips.add(tip);
    }
    return tips;
}
Also used : Player(fr.neamar.lolgamedata.pojo.Player) ArrayList(java.util.ArrayList) MatchupsTip(fr.neamar.lolgamedata.tips.MatchupsTip) Tip(fr.neamar.lolgamedata.tips.Tip) Team(fr.neamar.lolgamedata.pojo.Team) MatchupsTip(fr.neamar.lolgamedata.tips.MatchupsTip)

Example 4 with Player

use of fr.neamar.lolgamedata.pojo.Player in project teamward-client by Neamar.

the class PremadeNotUsingTeamwardTipBuilder method getTips.

@Override
public ArrayList<Tip> getTips(Game game, Context context) {
    ArrayList<Tip> tips = new ArrayList<>();
    Account mainAccount = game.associatedAccount;
    Player mainPlayer = game.getPlayerByAccount(mainAccount);
    if (mainPlayer == null) {
        return tips;
    }
    List<Integer> premade = findPlayerPremade(game, mainPlayer);
    if (premade == null) {
        return tips;
    }
    List<String> playersNotUsingTeamward = new ArrayList<>();
    for (Integer summonerId : premade) {
        Player player = findPlayerById(game, summonerId);
        if (player != null && !player.teamwardUser && player != mainPlayer) {
            playersNotUsingTeamward.add(player.summoner.name);
        }
    }
    if (!playersNotUsingTeamward.isEmpty()) {
        String descriptionTemplate;
        String description;
        if (playersNotUsingTeamward.size() == 1) {
            descriptionTemplate = context.getString(R.string.s_is_not_using_teamward);
            description = String.format(descriptionTemplate, playersNotUsingTeamward.get(0));
        } else {
            descriptionTemplate = context.getString(R.string.s_are_not_using_teamward);
            String lastPlayer = playersNotUsingTeamward.get(playersNotUsingTeamward.size() - 1);
            playersNotUsingTeamward.remove(playersNotUsingTeamward.size() - 1);
            String players = TextUtils.join(context.getString(R.string.standard_separator) + " ", playersNotUsingTeamward);
            players += " " + context.getString(R.string.final_separator) + " " + lastPlayer;
            description = String.format(descriptionTemplate, players);
        }
        tips.add(new PlayerStandardTip(game, null, R.mipmap.ic_launcher, context.getString(R.string.not_using_teamward), description));
    }
    return tips;
}
Also used : Account(fr.neamar.lolgamedata.pojo.Account) Player(fr.neamar.lolgamedata.pojo.Player) PlayerStandardTip(fr.neamar.lolgamedata.tips.PlayerStandardTip) ArrayList(java.util.ArrayList) PlayerStandardTip(fr.neamar.lolgamedata.tips.PlayerStandardTip) Tip(fr.neamar.lolgamedata.tips.Tip)

Example 5 with Player

use of fr.neamar.lolgamedata.pojo.Player in project teamward-client by Neamar.

the class OtpTipBuilder method getTips.

@Override
public ArrayList<Tip> getTips(Game game, Context context) {
    ArrayList<Tip> tips = new ArrayList<>();
    for (Team team : game.teams) {
        for (Player player : team.players) {
            if (player.champion.mastery == 7 && player.champion.championRank == 1) {
                String descriptionTemplate = context.getString(R.string.main_level_7);
                String description = String.format(descriptionTemplate, player.summoner.name, player.champion.name);
                tips.add(new PlayerStandardTip(game, player, player.champion.imageUrl, context.getString(R.string.otp), description));
            }
        }
    }
    return tips;
}
Also used : Player(fr.neamar.lolgamedata.pojo.Player) PlayerStandardTip(fr.neamar.lolgamedata.tips.PlayerStandardTip) ArrayList(java.util.ArrayList) PlayerStandardTip(fr.neamar.lolgamedata.tips.PlayerStandardTip) Tip(fr.neamar.lolgamedata.tips.Tip) Team(fr.neamar.lolgamedata.pojo.Team)

Aggregations

Player (fr.neamar.lolgamedata.pojo.Player)14 Team (fr.neamar.lolgamedata.pojo.Team)11 Tip (fr.neamar.lolgamedata.tips.Tip)11 ArrayList (java.util.ArrayList)11 PlayerStandardTip (fr.neamar.lolgamedata.tips.PlayerStandardTip)10 ImageView (android.widget.ImageView)2 TextView (android.widget.TextView)2 ChampionInGame (fr.neamar.lolgamedata.pojo.ChampionInGame)2 ActivityNotFoundException (android.content.ActivityNotFoundException)1 Intent (android.content.Intent)1 DrawableRes (android.support.annotation.DrawableRes)1 RecyclerView (android.support.v7.widget.RecyclerView)1 Toolbar (android.support.v7.widget.Toolbar)1 View (android.view.View)1 LinearLayout (android.widget.LinearLayout)1 Identify (com.amplitude.api.Identify)1 Account (fr.neamar.lolgamedata.pojo.Account)1 Game (fr.neamar.lolgamedata.pojo.Game)1 Summoner (fr.neamar.lolgamedata.pojo.Summoner)1 MatchupsTip (fr.neamar.lolgamedata.tips.MatchupsTip)1