BaseRegisterView.kt 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. package com.kdanmobile.kdanloginregisterui
  2. import com.kdanmobile.kdanloginregisterui.Utils.toSpannable
  3. import android.support.constraint.ConstraintLayout
  4. import android.content.Context
  5. import android.text.method.LinkMovementMethod
  6. import android.util.AttributeSet
  7. import android.view.View
  8. import android.widget.TextView
  9. open abstract class BaseRegisterView @JvmOverloads constructor(
  10. context: Context,
  11. attrs: AttributeSet? = null,
  12. defStyleAttr: Int = 0) : ConstraintLayout(context, attrs, defStyleAttr) {
  13. abstract val name: String
  14. abstract val email: String
  15. abstract val pwd: String
  16. lateinit var onClickEmailRegister: Runnable
  17. lateinit var onClickFbRegister: Runnable
  18. lateinit var onClickGoogleRegister: Runnable
  19. lateinit var onClickTurnOfService: Runnable
  20. lateinit var onClickPrivacyPolicy: Runnable
  21. lateinit var onClickSwitchToLogin: Runnable
  22. lateinit var onClickClose: Runnable
  23. protected fun setupSwitchTextView(textView: TextView) {
  24. val s = textView.text
  25. val textColor = resources.getColor(R.color.switch_text)
  26. val ss = s.toSpannable(textColor, true, View.OnClickListener { onClickSwitchToLogin.run() })
  27. textView.apply {
  28. movementMethod = LinkMovementMethod.getInstance()
  29. text = ss
  30. }
  31. }
  32. protected fun setupTosAndPpTextView(textView: TextView) {
  33. try {
  34. val key = "[d*_*b]"
  35. val tos = context.getString(R.string.terms_of_service)
  36. val pp = context.getString(R.string.privacy_policy)
  37. val pattern = context.getString(R.string.register_tos_and_pp_pattern, key, key)
  38. val stringArray = pattern.split(key)
  39. val textColor = resources.getColor(R.color.tos_pp_text)
  40. val tosSS = tos.toSpannable(textColor, false, View.OnClickListener { onClickTurnOfService.run() })
  41. val ppSS = pp.toSpannable(textColor, false, View.OnClickListener { onClickPrivacyPolicy.run() })
  42. textView.apply {
  43. movementMethod = LinkMovementMethod.getInstance()
  44. append(stringArray[0])
  45. append(tosSS)
  46. append(stringArray[1])
  47. append(ppSS)
  48. append(stringArray[2])
  49. }
  50. } catch (e: Exception) {
  51. // do nothing, let it go ~
  52. }
  53. }
  54. }