Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.izzaweb.clubfootbalapps.detail
- import android.database.sqlite.SQLiteConstraintException
- import android.support.v7.app.AppCompatActivity
- import android.os.Bundle
- import android.support.v4.content.ContextCompat
- import android.view.Menu
- import android.view.MenuItem
- import com.google.gson.Gson
- import com.izzaweb.clubfootbalapps.R
- import com.izzaweb.clubfootbalapps.R.color.colorAccent
- import com.izzaweb.clubfootbalapps.api.ApiRepository
- import com.izzaweb.clubfootbalapps.model.Events
- import com.izzaweb.clubfootbalapps.model.Teams
- import com.squareup.picasso.Picasso
- import kotlinx.android.synthetic.main.activity_match_detail.*
- import org.jetbrains.anko.support.v4.onRefresh
- import java.text.SimpleDateFormat
- import com.izzaweb.clubfootbalapps.R.id.add_to_favorite
- import com.izzaweb.clubfootbalapps.R.drawable.ic_add_to_favorites
- import com.izzaweb.clubfootbalapps.R.drawable.ic_added_to_favorites
- import com.izzaweb.clubfootbalapps.R.menu.detail_menu
- import com.izzaweb.clubfootbalapps.favorit.database
- import com.izzaweb.clubfootbalapps.model.Favorite
- import org.jetbrains.anko.db.classParser
- import org.jetbrains.anko.db.delete
- import org.jetbrains.anko.db.insert
- import org.jetbrains.anko.db.select
- import org.jetbrains.anko.design.snackbar
- class MatchDetailActivity : AppCompatActivity(), DetailMatchView {
- private lateinit var presenter: DetailMatchPresenter
- //private lateinit var id: String
- private lateinit var events: Events
- private var urlHomeBadge: String? = null
- private var urlAwayBadge: String? = null
- private var menuItem: Menu? = null
- private var isFavorite: Boolean = false
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- setContentView(R.layout.activity_match_detail)
- supportActionBar?.title = getString(R.string.title_detail_schedule)
- supportActionBar?.setDisplayHomeAsUpEnabled(true)
- events = intent.getParcelableExtra("detail")
- favoriteState()
- val request = ApiRepository()
- val gson = Gson()
- presenter = DetailMatchPresenter(this, request, gson)
- presenter.getHomeBadgeLogo(events.idHomeTeam)
- presenter.getAwayBadgeLogo(events.idAwayTeam)
- swipeRefresh.setColorSchemeResources(colorAccent,
- android.R.color.holo_green_light,
- android.R.color.holo_orange_light,
- android.R.color.holo_red_light)
- swipeRefresh.onRefresh {
- presenter.getHomeBadgeLogo(events.idHomeTeam)
- presenter.getAwayBadgeLogo(events.idAwayTeam)
- }
- initEventsViews(events)
- }
- private fun initEventsViews(events: Events) {
- val dateFormatServer = SimpleDateFormat("yyyy-MM-dd")
- val dateFormatCustom = SimpleDateFormat("E, dd MMM yyyy")
- val date = dateFormatServer.parse(events.dateEvent)
- val strDate = dateFormatCustom.format(date)
- tvDateEvent.text = strDate
- tvAwayScore.text = events.teamAwayScore
- tvHomeScore.text = events.teamHomeScore
- tvHomeName.text = events.teamHomeName
- tvAwayName.text = events.teamAwayName
- tvHomeFormation.text = events.strHomeFormation
- tvAwayFormation.text = events.strAwayFormation
- tvHomeGoalsDetail.text = events.strHomeGoalDetails
- tvAwayGoalsDetail.text = events.strAwayGoalDetails
- tvHomeShots.text = events.intHomeShots
- tvAwayShots.text = events.intAwayShots
- tvHomeGoalKeeper.text = events.strHomeLineupGoalkeeper
- tvAwayGoalKeeper.text = events.strAwayLineupGoalkeeper
- tvHomeDefense.text = events.strHomeLineupDefense
- tvAwayDefense.text = events.strAwayLineupDefense
- tvHomeMidfield.text = events.strHomeLineupMidfield
- tvAwayMidfield.text = events.strAwayLineupMidfield
- tvHomeForward.text = events.strHomeLineupForward
- tvAwayForward.text = events.strAwayLineupForward
- tvHomeSubtituties.text = events.strHomeLineupSubstitutes
- tvAwaySubtituties.text = events.strAwayLineupSubstitutes
- }
- override fun onCreateOptionsMenu(menu: Menu?): Boolean {
- menuInflater.inflate(detail_menu, menu)
- menuItem = menu
- setFavorite()
- return true
- }
- override fun onOptionsItemSelected(item: MenuItem?): Boolean {
- return when (item?.itemId) {
- android.R.id.home -> {
- finish()
- true
- }
- add_to_favorite -> {
- if (isFavorite) removeFromFavorite() else addToFavorite()
- isFavorite = !isFavorite
- setFavorite()
- true
- }
- else -> super.onOptionsItemSelected(item)
- }
- }
- override fun showLoading() {}
- override fun hideLoading() {}
- override fun showHomeTeamLogo(data: List<Teams>) {
- swipeRefresh.isRefreshing = false
- urlHomeBadge = data[0].teamBadge
- Picasso.get().load(data[0].teamBadge).placeholder(R.drawable.load).error(R.drawable.error).into(imgHomeBadge)
- }
- private fun favoriteState() = database.use {
- val result = select(Favorite.TABLE_FAVORITE)
- .whereArgs("(TEAM_ID = {id})",
- "id" to events.idEvent as Any)
- val favorite = result.parseList(classParser<Favorite>())
- if (!favorite.isEmpty()) isFavorite = true
- }
- private fun removeFromFavorite(){
- try {
- database.use {
- delete(Favorite.TABLE_FAVORITE, "(TEAM_ID = {id})",
- "id" to events.idEvent as Any)
- }
- snackbar(swipeRefresh, "Removed to favorite").show()
- }catch (e : SQLiteConstraintException){
- snackbar(swipeRefresh, e.localizedMessage).show()
- }
- }
- override fun showAwayTeamLogo(data: List<Teams>) {
- swipeRefresh.isRefreshing = false
- urlAwayBadge = data[0].teamBadge
- Picasso.get().load(data[0].teamBadge).placeholder(R.drawable.load).error(R.drawable.error).into(imgAwayBadge)
- }
- private fun addToFavorite(){
- try {
- database.use {
- insert(Favorite.TABLE_FAVORITE,
- Favorite.TEAM_ID to events.idEvent,
- Favorite.TEAM_HOME_NAME to events.teamHomeName,
- Favorite.TEAM_AWAY_NAME to events.teamAwayName,
- Favorite.TEAM_HOME_SCORE to events.teamHomeScore,
- Favorite.TEAM_AWAY_SCORE to events.teamAwayScore,
- Favorite.DATE_EVENT to events.dateEvent,
- Favorite.TIME to events.time)
- }
- snackbar(swipeRefresh,"Addded to favorite").show()
- }catch (e: SQLiteConstraintException){
- snackbar(swipeRefresh, e.localizedMessage).show()
- }
- }
- private fun setFavorite() {
- if (isFavorite)
- menuItem?.getItem(0)?.icon = ContextCompat.getDrawable(this, ic_added_to_favorites)
- else
- menuItem?.getItem(0)?.icon = ContextCompat.getDrawable(this, ic_add_to_favorites)
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement