Advertisement
elsemTim

Fragment

Dec 27th, 2017
184
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 8.68 KB | None | 0 0
  1. package biz.elpass.elpassintercity.ui.fragment.main.card
  2.  
  3. import android.app.AlertDialog
  4. import android.content.SharedPreferences
  5. import android.os.Bundle
  6. import android.support.design.widget.TabLayout
  7. import android.support.v4.view.ViewPager
  8. import android.util.Log
  9. import android.view.LayoutInflater
  10. import android.view.View
  11. import android.view.ViewGroup
  12. import android.widget.Button
  13. import biz.elpass.elpassintercity.R
  14. import biz.elpass.elpassintercity.data.view.CardInfoViewData
  15. import biz.elpass.elpassintercity.presentation.presenter.main.card.UserCardsPresenter
  16. import biz.elpass.elpassintercity.presentation.view.main.card.IUserCardsFragment
  17. import biz.elpass.elpassintercity.ui.base.BaseFragment
  18. import biz.elpass.elpassintercity.util.adapter.login.UserCardsViewPagerAdapter
  19. import butterknife.BindView
  20. import butterknife.ButterKnife
  21. import butterknife.OnClick
  22. import butterknife.Unbinder
  23. import com.arellomobile.mvp.presenter.InjectPresenter
  24. import com.arellomobile.mvp.presenter.ProvidePresenter
  25. import javax.inject.Inject
  26.  
  27. /**
  28.  * @author: timur.mukhortov
  29.  * date: 25.10.2017
  30.  * time: 16:54
  31.  * @LinkedIn: linkedin.com/in/timurmukhortov
  32.  **/
  33.  
  34. class UserCardsFragment : BaseFragment(), IUserCardsFragment {
  35.     companion object {
  36.         fun newInstance() = UserCardsFragment()
  37.     }
  38.  
  39.     @Inject
  40.     @InjectPresenter
  41.     lateinit var presenter: UserCardsPresenter
  42.  
  43.     @ProvidePresenter
  44.     fun providePresenter() = presenter
  45.  
  46.     @BindView(R.id.view_pager)
  47.     protected lateinit var viewPager: ViewPager
  48.  
  49.     @BindView(R.id.tab_cards_dots)
  50.     protected lateinit var tabLayout: TabLayout
  51.  
  52.     @BindView(R.id.button_history_travel)
  53.     protected lateinit var buttonHistoryTravel: Button
  54.  
  55.     @BindView(R.id.button_personify)
  56.     protected lateinit var buttonPersonify: Button
  57.  
  58.     @BindView(R.id.button_un_personify)
  59.     protected lateinit var buttonUnPersonify: Button
  60.  
  61.     @BindView(R.id.button_lock)
  62.     protected lateinit var buttonLock: Button
  63.  
  64.     @BindView(R.id.button_unlock)
  65.     protected lateinit var buttonUnlock: Button
  66.  
  67.     private lateinit var unbinder: Unbinder
  68.  
  69.     private lateinit var viewPagerAdapter: UserCardsViewPagerAdapter
  70.  
  71.     private val INDEX_POSITION = "TEST1_CUR_CARD_ID"
  72.  
  73.     private lateinit var sharedPreferences: SharedPreferences
  74.  
  75.     private var selectedIndex: Int = 0
  76.  
  77.     private var TAG = "UserCardsFragment"
  78.  
  79.     override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? = inflater
  80.             .inflate(R.layout.fragment_user_cards, container, false)
  81.             .also {
  82.                 Log.i(TAG, "onCreate")
  83.                 unbinder = ButterKnife.bind(this@UserCardsFragment, it)
  84.                 viewPagerAdapter = UserCardsViewPagerAdapter(childFragmentManager)
  85.                 viewPager.adapter = viewPagerAdapter
  86.                 viewPager.addOnPageChangeListener(object : ViewPager.OnPageChangeListener {
  87.                     override fun onPageScrollStateChanged(state: Int) {}
  88.  
  89.                     override fun onPageScrolled(position: Int, positionOffset: Float, positionOffsetPixels: Int) {}
  90.  
  91.                     override fun onPageSelected(position: Int) {
  92.                         selectedIndex = position
  93.                         presenter.checkButtons(position)
  94.                     }
  95.                 })
  96.                 presenter.loadCard()
  97.                 tabLayout.setupWithViewPager(viewPager, true)
  98.             }
  99.  
  100.  
  101.     override fun onStart() {
  102.         super.onStart()
  103.         Log.i(TAG, "onStart")
  104.     }
  105.  
  106.     override fun onPause() {
  107.         super.onPause()
  108.         Log.i(TAG, "onPause")
  109.         saveIdCard()
  110.     }
  111.  
  112.     override fun onResume() {
  113.         super.onResume()
  114.         Log.i(TAG, "onResume")
  115.         //refreshCard()
  116.         // viewPager.currentItem = sharedPreferences.getString("password", "0").toInt()
  117.         presenter.loadCard()
  118.         loadIdCard()
  119.         // tabLayout.setupWithViewPager(viewPager, true)
  120.     }
  121.  
  122.     override fun onStop() {
  123.         super.onStop()
  124.         Log.i(TAG, "onStop")
  125.     }
  126.  
  127.     override fun onDestroyView() {
  128.         super.onDestroyView()
  129.         Log.i(TAG, "onDestroy")
  130.         unbinder.unbind()
  131.     }
  132.  
  133.     override fun showLoading(isLoading: Boolean) {
  134.         //пока непонятно что тут должно загружаться
  135.     }
  136.  
  137.     override fun showCards(cards: List<CardInfoViewData>) {
  138.         viewPagerAdapter.updateCardsAdapter(cards)
  139.  
  140.         // cards.forEach { viewPagerAdapter.addFragment(UserCardFragment.newInstance(it)) }
  141.     }
  142.  
  143.     override fun showHistoryButton(show: Boolean) {
  144.         if (show) buttonHistoryTravel.visibility = View.VISIBLE else buttonHistoryTravel.visibility = View.GONE
  145.     }
  146.  
  147.     override fun showPersonifyDepersonalize(show: String) {
  148.         if (show == "hide") {
  149.             buttonPersonify.visibility = View.GONE
  150.             buttonUnPersonify.visibility = View.GONE
  151.         } else {
  152.             if (show == "true") {
  153.                 buttonPersonify.visibility = View.VISIBLE
  154.                 buttonUnPersonify.visibility = View.GONE
  155.             } else {
  156.                 buttonPersonify.visibility = View.GONE
  157.                 buttonUnPersonify.visibility = View.VISIBLE
  158.             }
  159.         }
  160.     }
  161.  
  162.     override fun showLockUnlock(show: String) {
  163.         if (show == "hide") {
  164.             buttonLock.visibility = View.GONE
  165.             buttonUnlock.visibility = View.GONE
  166.         } else {
  167.             if (show == "true") {
  168.                 buttonLock.visibility = View.VISIBLE
  169.                 buttonUnlock.visibility = View.GONE
  170.             } else {
  171.                 buttonLock.visibility = View.GONE
  172.                 buttonUnlock.visibility = View.VISIBLE
  173.             }
  174.         }
  175.     }
  176.  
  177.     override fun historyTravelAlert(msg: String) {
  178.         AlertDialog
  179.                 .Builder(context)
  180.                 .setMessage(msg)
  181.                 .setPositiveButton("OK", { dialog, _ -> dialog.cancel() })
  182.                 .show()
  183.     }
  184.  
  185.     override fun refreshCard() {
  186.         viewPagerAdapter.refreshFragment()
  187.     }
  188.  
  189.     override fun saveIdCard(){
  190.         val idCard = presenter.currentCardId(viewPager.currentItem)
  191.         Log.i(TAG, "Ид карты до сохранения: "+ idCard)
  192.         if (idCard != null) {
  193.             sharedPreferences = activity.getPreferences(0)
  194.             val editor = sharedPreferences.edit()
  195.             editor.putString(INDEX_POSITION, idCard)
  196.             editor.commit()
  197.         }
  198.     }
  199.  
  200.     override fun loadIdCard(){
  201.         sharedPreferences = activity.getPreferences(0)
  202.         val idSaveCard = sharedPreferences.getString(INDEX_POSITION, presenter.currentCardId(0))
  203.         if (idSaveCard != null) {
  204.             Log.i(TAG, "Ид капрты после сохранения: " + idSaveCard)
  205.             val positionCard = viewPagerAdapter.getItemById(idSaveCard)
  206.             Log.i(TAG, "Позиция карты по ИД из адаптера:" + positionCard)
  207.             viewPagerAdapter.notifyDataSetChanged()
  208.             viewPager.currentItem = positionCard
  209.         }
  210.  
  211.     }
  212.  
  213.     @OnClick(R.id.button_personify)
  214.     protected fun onButtonPersonify() {
  215.         //saveCurPosition()
  216.         presenter.onPersonify(viewPager.currentItem)
  217.     }
  218.  
  219.     @OnClick(R.id.button_un_personify)
  220.     protected fun onButtonUnPersonify() {
  221.         AlertDialog
  222.                 .Builder(context)
  223.                 .setMessage("Вы действительно хотите деперсонифицировать карту?")
  224.                 .setPositiveButton(R.string.ok, { _, _ -> presenter.onUnPersonify(viewPager.currentItem) })
  225.                 .setNegativeButton(R.string.answer_cancel, { dialog, _ -> dialog.cancel() })
  226.                 .show()
  227.     }
  228.  
  229.     @OnClick(R.id.button_history_travel)
  230.     protected fun onButtonPayHistory() {
  231.         presenter.onPayHistory(viewPager.currentItem)
  232.     }
  233.  
  234.     @OnClick(R.id.button_lock)
  235.     protected fun onBlockButtonClick() {
  236.         blockAlert()
  237.     }
  238.  
  239.     @OnClick(R.id.button_unlock)
  240.     protected fun onUnlockButtonClick() {
  241.         presenter.onUnLockCard(viewPager.currentItem)
  242.     }
  243.  
  244.     @OnClick(R.id.button_add_card)
  245.     protected fun onAddCardButtonClick() {
  246.         presenter.onAddCard()
  247.     }
  248.  
  249.     private fun blockAlert() {
  250.         AlertDialog.Builder(context)
  251.                 .setMessage("Заблокировать карту?")
  252.                 .setPositiveButton(R.string.answer_lock, { _, _ -> blockCard() })
  253.                 .setNegativeButton(R.string.answer_cancel, { dialog, _ -> dialog.cancel() })
  254.                 .show()
  255.     }
  256.  
  257.     private fun blockCard() {
  258.         presenter.onBlockCard(viewPager.currentItem)
  259.     }
  260. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement