/** * Copyright (C) 2015 Arles * <p/> * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * <p/> * http://www.apache.org/licenses/LICENSE-2.0 * <p/> * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.arles.swissmanager.ui.presenter; import android.content.Intent; import android.os.Bundle; import com.arles.swissmanager.tournament.Player; import com.arles.swissmanager.tournament.Tournament; import com.arles.swissmanager.ui.activity.Navigator; import com.arles.swissmanager.utils.KeyExtra; import java.util.ArrayList; import java.util.List; import javax.inject.Inject; /** * PlayerTabPresenter created to show PlayerTabFragment. * Created by Admin on 06.07.2015. */ public class PlayerTabPresenter extends Presenter { private IView mView; private Tournament mTournament; private Navigator mNavigator; @Inject public PlayerTabPresenter(Navigator navigator) { mNavigator = navigator; mTournament = Tournament.getInstance(); } public void setView(IView view) { mView = view; } @Override public void initializeViewComponent() { mView.setViewComponent(); } public List<Player> getPlayerList() { return mTournament.getPlayerCollection(); } public void setPlayerList(List<Player> playerList) { mTournament.setPlayerCollection(playerList); } public void parseActivityResult(Intent data) { Bundle bundle = data.getExtras(); if (bundle != null) { ArrayList<String> namesList = bundle.getStringArrayList(KeyExtra.KEY_BUFFER_PLAYERS_NAME_LIST); if (namesList != null) { for (String name : namesList) { addPlayer(name); } } } } private void addPlayer(String playerName) { mTournament.addPlayer(playerName); } public void remove() { List<Integer> selectedItemPositions = mView.getSelectedInActionModeItemPositions(); int currPos; for (int i = selectedItemPositions.size() - 1; i >= 0; i--) { currPos = selectedItemPositions.get(i); // PlayerAdapter contains reference to players collection. // Therefore when player is removed from Tournament, it means it removed from adapter. mTournament.removePlayer(currPos); } } public void onPlayerItemClick(int position) { mNavigator.startPlayerDataActivity(position); } public interface IView { void setViewComponent(); List<Integer> getSelectedInActionModeItemPositions(); } }