Advertisement
nurrohim11

Untitled

Sep 7th, 2018
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 7.01 KB | None | 0 0
  1. package com.izzaweb.clubfootbalapps.detail
  2.  
  3. import android.database.sqlite.SQLiteConstraintException
  4. import android.support.v7.app.AppCompatActivity
  5. import android.os.Bundle
  6. import android.support.v4.content.ContextCompat
  7. import android.view.Menu
  8. import android.view.MenuItem
  9. import com.google.gson.Gson
  10. import com.izzaweb.clubfootbalapps.R
  11. import com.izzaweb.clubfootbalapps.R.color.colorAccent
  12. import com.izzaweb.clubfootbalapps.api.ApiRepository
  13. import com.izzaweb.clubfootbalapps.model.Events
  14. import com.izzaweb.clubfootbalapps.model.Teams
  15. import com.squareup.picasso.Picasso
  16. import kotlinx.android.synthetic.main.activity_match_detail.*
  17. import org.jetbrains.anko.support.v4.onRefresh
  18. import java.text.SimpleDateFormat
  19. import com.izzaweb.clubfootbalapps.R.id.add_to_favorite
  20. import com.izzaweb.clubfootbalapps.R.drawable.ic_add_to_favorites
  21. import com.izzaweb.clubfootbalapps.R.drawable.ic_added_to_favorites
  22. import com.izzaweb.clubfootbalapps.R.menu.detail_menu
  23. import com.izzaweb.clubfootbalapps.favorit.database
  24. import com.izzaweb.clubfootbalapps.model.Favorite
  25. import org.jetbrains.anko.db.classParser
  26. import org.jetbrains.anko.db.delete
  27. import org.jetbrains.anko.db.insert
  28. import org.jetbrains.anko.db.select
  29. import org.jetbrains.anko.design.snackbar
  30.  
  31. class MatchDetailActivity : AppCompatActivity(), DetailMatchView {
  32.     private lateinit var presenter: DetailMatchPresenter
  33.  
  34.     //private lateinit var id: String
  35.     private lateinit var events: Events
  36.     private var urlHomeBadge: String? = null
  37.     private var urlAwayBadge: String? = null
  38.     private var menuItem: Menu? = null
  39.     private var isFavorite: Boolean = false
  40.  
  41.  
  42.     override fun onCreate(savedInstanceState: Bundle?) {
  43.         super.onCreate(savedInstanceState)
  44.         setContentView(R.layout.activity_match_detail)
  45.  
  46.         supportActionBar?.title = getString(R.string.title_detail_schedule)
  47.         supportActionBar?.setDisplayHomeAsUpEnabled(true)
  48.  
  49.         events = intent.getParcelableExtra("detail")
  50.  
  51.        favoriteState()
  52.  
  53.         val request = ApiRepository()
  54.         val gson = Gson()
  55.  
  56.         presenter = DetailMatchPresenter(this, request, gson)
  57.         presenter.getHomeBadgeLogo(events.idHomeTeam)
  58.         presenter.getAwayBadgeLogo(events.idAwayTeam)
  59.  
  60.         swipeRefresh.setColorSchemeResources(colorAccent,
  61.                 android.R.color.holo_green_light,
  62.                 android.R.color.holo_orange_light,
  63.                 android.R.color.holo_red_light)
  64.         swipeRefresh.onRefresh {
  65.             presenter.getHomeBadgeLogo(events.idHomeTeam)
  66.             presenter.getAwayBadgeLogo(events.idAwayTeam)
  67.         }
  68.         initEventsViews(events)
  69.     }
  70.  
  71.     private fun initEventsViews(events: Events) {
  72.         val dateFormatServer = SimpleDateFormat("yyyy-MM-dd")
  73.         val dateFormatCustom = SimpleDateFormat("E, dd MMM yyyy")
  74.         val date = dateFormatServer.parse(events.dateEvent)
  75.         val strDate = dateFormatCustom.format(date)
  76.  
  77.         tvDateEvent.text = strDate
  78.         tvAwayScore.text = events.teamAwayScore
  79.         tvHomeScore.text = events.teamHomeScore
  80.         tvHomeName.text = events.teamHomeName
  81.         tvAwayName.text = events.teamAwayName
  82.         tvHomeFormation.text = events.strHomeFormation
  83.         tvAwayFormation.text = events.strAwayFormation
  84.         tvHomeGoalsDetail.text = events.strHomeGoalDetails
  85.         tvAwayGoalsDetail.text = events.strAwayGoalDetails
  86.         tvHomeShots.text = events.intHomeShots
  87.         tvAwayShots.text = events.intAwayShots
  88.         tvHomeGoalKeeper.text = events.strHomeLineupGoalkeeper
  89.         tvAwayGoalKeeper.text = events.strAwayLineupGoalkeeper
  90.         tvHomeDefense.text = events.strHomeLineupDefense
  91.         tvAwayDefense.text = events.strAwayLineupDefense
  92.         tvHomeMidfield.text = events.strHomeLineupMidfield
  93.         tvAwayMidfield.text = events.strAwayLineupMidfield
  94.         tvHomeForward.text = events.strHomeLineupForward
  95.         tvAwayForward.text = events.strAwayLineupForward
  96.         tvHomeSubtituties.text = events.strHomeLineupSubstitutes
  97.         tvAwaySubtituties.text = events.strAwayLineupSubstitutes
  98.     }
  99.  
  100.     override fun onCreateOptionsMenu(menu: Menu?): Boolean {
  101.         menuInflater.inflate(detail_menu, menu)
  102.         menuItem = menu
  103.         setFavorite()
  104.         return true
  105.     }
  106.  
  107.     override fun onOptionsItemSelected(item: MenuItem?): Boolean {
  108.         return when (item?.itemId) {
  109.             android.R.id.home -> {
  110.                 finish()
  111.                 true
  112.             }
  113.             add_to_favorite -> {
  114.                 if (isFavorite) removeFromFavorite() else addToFavorite()
  115.  
  116.                 isFavorite = !isFavorite
  117.                 setFavorite()
  118.  
  119.                 true
  120.             }
  121.  
  122.             else -> super.onOptionsItemSelected(item)
  123.         }
  124.     }
  125.  
  126.     override fun showLoading() {}
  127.  
  128.     override fun hideLoading() {}
  129.  
  130.     override fun showHomeTeamLogo(data: List<Teams>) {
  131.         swipeRefresh.isRefreshing = false
  132.         urlHomeBadge = data[0].teamBadge
  133.         Picasso.get().load(data[0].teamBadge).placeholder(R.drawable.load).error(R.drawable.error).into(imgHomeBadge)
  134.     }
  135.  
  136.         private fun favoriteState() = database.use {
  137.             val result = select(Favorite.TABLE_FAVORITE)
  138.                     .whereArgs("(TEAM_ID = {id})",
  139.                             "id" to events.idEvent as Any)
  140.             val favorite = result.parseList(classParser<Favorite>())
  141.             if (!favorite.isEmpty()) isFavorite = true
  142.         }
  143.     private fun removeFromFavorite(){
  144.         try {
  145.             database.use {
  146.                 delete(Favorite.TABLE_FAVORITE, "(TEAM_ID = {id})",
  147.                         "id" to events.idEvent as Any)
  148.             }
  149.             snackbar(swipeRefresh, "Removed to favorite").show()
  150.         }catch (e : SQLiteConstraintException){
  151.             snackbar(swipeRefresh, e.localizedMessage).show()
  152.         }
  153.     }
  154.     override fun showAwayTeamLogo(data: List<Teams>) {
  155.         swipeRefresh.isRefreshing = false
  156.         urlAwayBadge = data[0].teamBadge
  157.         Picasso.get().load(data[0].teamBadge).placeholder(R.drawable.load).error(R.drawable.error).into(imgAwayBadge)
  158.     }
  159.     private fun addToFavorite(){
  160.         try {
  161.             database.use {
  162.                 insert(Favorite.TABLE_FAVORITE,
  163.                         Favorite.TEAM_ID to events.idEvent,
  164.                         Favorite.TEAM_HOME_NAME to events.teamHomeName,
  165.                         Favorite.TEAM_AWAY_NAME to events.teamAwayName,
  166.                         Favorite.TEAM_HOME_SCORE to events.teamHomeScore,
  167.                         Favorite.TEAM_AWAY_SCORE to events.teamAwayScore,
  168.                         Favorite.DATE_EVENT to events.dateEvent,
  169.                         Favorite.TIME to events.time)
  170.             }
  171.             snackbar(swipeRefresh,"Addded to favorite").show()
  172.         }catch (e: SQLiteConstraintException){
  173.             snackbar(swipeRefresh, e.localizedMessage).show()
  174.         }
  175.     }
  176.     private fun setFavorite() {
  177.         if (isFavorite)
  178.             menuItem?.getItem(0)?.icon = ContextCompat.getDrawable(this, ic_added_to_favorites)
  179.         else
  180.             menuItem?.getItem(0)?.icon = ContextCompat.getDrawable(this, ic_add_to_favorites)
  181.     }
  182. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement