Guest User

Untitled

a guest
Nov 25th, 2018
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 7.26 KB | None | 0 0
  1. //////////////////AuthActivity//////////////////
  2. import android.content.Context
  3. import android.os.Bundle
  4. import android.support.design.widget.TabLayout
  5. import android.support.v4.view.ViewPager
  6. import android.support.v7.app.AppCompatActivity
  7. import android.util.Log
  8. import android.widget.Button
  9. import android.widget.EditText
  10. import android.widget.LinearLayout
  11. import android.widget.Toast
  12. import com.****.R
  13. import com.****.ViewPagerAdapter
  14. import org.jetbrains.anko.find
  15.  
  16. class AuthActivity : AppCompatActivity() {
  17.     lateinit var tlTabs: TabLayout
  18.     lateinit var vpPager: ViewPager
  19.  
  20.     private var savedLogin: String
  21.         get() {
  22.             return getPreferences(Context.MODE_PRIVATE).getString(PREF_LOGIN, "")!!
  23.         }
  24.         set(value) {
  25.             val sPref = getPreferences(Context.MODE_PRIVATE)
  26.             val ed = sPref.edit()
  27.             ed.putString(PREF_LOGIN, value)
  28.             ed.apply()
  29.         }
  30.     private var savedPass: String
  31.         get() {
  32.             return getPreferences(Context.MODE_PRIVATE).getString(PREF_PASS, "")!!
  33.         }
  34.         set(value) {
  35.             val sPref = getPreferences(Context.MODE_PRIVATE)
  36.             val ed = sPref.edit()
  37.             ed.putString(PREF_PASS, value)
  38.             ed.apply()
  39.         }
  40.  
  41.     override fun onCreate(savedInstanceState: Bundle?) {
  42.         super.onCreate(savedInstanceState)
  43.         configViews()
  44.     }
  45.  
  46.     private fun configViews() {
  47.         setContentView(R.layout.activity_auth)
  48.  
  49.         tlTabs = find(R.id.tlTabs)
  50.         vpPager = find(R.id.vpPager)
  51.         val vpAdapter = ViewPagerAdapter(supportFragmentManager)
  52.         vpAdapter.addFragment(TabReg(), "Регистрация")
  53.         vpAdapter.addFragment(TabAuth(), "Вход")
  54.         vpPager.adapter = vpAdapter
  55.         tlTabs.setupWithViewPager(vpPager)
  56.     }
  57.  
  58.     override fun onResume() {
  59.         super.onResume()
  60.  
  61.         with (find<LinearLayout>(R.id.tabReg)) {//kotlin.TypeCastException: null cannot be cast to non-null type android.widget.LinearLayout
  62.             this.find<Button>(R.id.btnReg).setOnClickListener {
  63.                 val login = this.find<EditText>(R.id.etLoginReg).text.toString()
  64.                 val pass = this.find<EditText>(R.id.etPassReg).text.toString()
  65.                 val pass2 = this.find<EditText>(R.id.etPassReg2).text.toString()
  66.  
  67.                 if (login.length == 10 && pass.length in 6..20 && pass == pass2) {
  68.                     savedLogin = login
  69.                     savedPass = pass
  70.                     Log.d(TAG, "saved/updated $savedLogin $savedPass")
  71.                 } else {
  72.                     when {
  73.                         login.length != 10 -> Toast.makeText(this@AuthActivity, "Номер введен неверно", Toast.LENGTH_SHORT).show()
  74.                         pass.length < 6 -> Toast.makeText(this@AuthActivity, "Пароль слишком короткий", Toast.LENGTH_SHORT).show()
  75.                         pass.length > 20 -> Toast.makeText(this@AuthActivity, "Пароль слишком длинный", Toast.LENGTH_SHORT).show()
  76.                         pass2 != pass -> Toast.makeText(this@AuthActivity, "Повторите пароль", Toast.LENGTH_SHORT).show()
  77.                         else -> Toast.makeText(this@AuthActivity, "Введите логин (номер телефона 10 цифр) и пароль", Toast.LENGTH_SHORT).show()
  78.                     }
  79.                     // TODO удалить логирование
  80.                     Log.d(TAG, "not saved/not updated (login:$login, pass:$pass, pass2:$pass2)")// TODO удалить логирование
  81.                     // TODO удалить логирование
  82.                 }
  83.             }
  84.         }
  85.  
  86.         with (find<LinearLayout>(R.id.tabAuth)) {
  87.             this.find<Button>(R.id.btnEnter).setOnClickListener {
  88.                 if (savedLogin.isNotEmpty() && savedPass.isNotEmpty()) {
  89.                     this.find<EditText>(R.id.etLoginEnter).setText(savedLogin)
  90.                     this.find<EditText>(R.id.etPassEnter).setText(savedPass)
  91.                 }
  92.                 // TODO удалить логирование
  93.                 Log.d(TAG, "taken $savedLogin $savedPass")// TODO удалить логирование
  94.                 // TODO удалить логирование
  95.             }
  96.         }
  97.     }
  98.  
  99.     companion object {
  100.         private const val TAG = ".AuthActivity"
  101.         private const val PREF_LOGIN = "s_login"
  102.         private const val PREF_PASS = "s_pass"
  103.     }
  104. }
  105.  
  106. //////////////////TabAuth///////////////////
  107. import android.os.Bundle
  108. import android.support.v4.app.Fragment
  109. import android.view.LayoutInflater
  110. import android.view.View
  111. import android.view.ViewGroup
  112. import android.widget.Button
  113. import android.widget.EditText
  114. import com.****.R
  115. import org.jetbrains.anko.support.v4.find
  116.  
  117. class TabAuth : Fragment() {
  118.     lateinit var etLoginEnter: EditText
  119.     lateinit var etPassEnter: EditText
  120.     lateinit var btnEnter: Button
  121.  
  122.     override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
  123.         return inflater.inflate(R.layout.auth_fragment, container, false)
  124.     }
  125. /* это по идее лишнее
  126.     override fun onActivityCreated(savedInstanceState: Bundle?) {
  127.         super.onActivityCreated(savedInstanceState)
  128.  
  129.         etLoginEnter = find(R.id.etLoginEnter)
  130.         etPassEnter = find(R.id.etPassEnter)
  131.         btnEnter = find(R.id.btnEnter)
  132.     }
  133. */
  134. }
  135.  
  136. ////////////////////TabReg//////////////////
  137. import android.os.Bundle
  138. import android.support.v4.app.Fragment
  139. import android.view.LayoutInflater
  140. import android.view.View
  141. import android.view.ViewGroup
  142. import android.widget.Button
  143. import android.widget.EditText
  144. import com.****.R
  145. import org.jetbrains.anko.support.v4.find
  146.  
  147. class TabReg : Fragment() {
  148.     lateinit var etLoginReg: EditText
  149.     lateinit var etPassReg: EditText
  150.     lateinit var etPassReg2: EditText
  151.     lateinit var btnReg: Button
  152.  
  153.     override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
  154.         return inflater.inflate(R.layout.reg_fragment, container, false)
  155.     }
  156. /* это по идее лишнее
  157.     override fun onActivityCreated(savedInstanceState: Bundle?) {
  158.         super.onActivityCreated(savedInstanceState)
  159.  
  160.         etLoginReg = find(R.id.etLoginReg)
  161.         etPassReg = find(R.id.etPassReg)
  162.         etPassReg2 = find(R.id.etPassReg2)
  163.         btnReg = find(R.id.btnReg)
  164.     }
  165. */
  166. }
  167.  
  168. /////////////////ViewPagerAdapter//////////////////
  169. import android.support.v4.app.Fragment
  170. import android.support.v4.app.FragmentManager
  171. import android.support.v4.app.FragmentStatePagerAdapter
  172.  
  173. class ViewPagerAdapter(fm: FragmentManager) : FragmentStatePagerAdapter(fm) {
  174.     private val fragmentList: MutableList<Fragment> = mutableListOf()
  175.     private val fragmentListTitles: MutableList<String> = mutableListOf()
  176.  
  177.     override fun getItem(position: Int): Fragment = fragmentList[position]
  178.  
  179.     override fun getCount(): Int = fragmentListTitles.size
  180.  
  181.     override fun getPageTitle(position: Int) = fragmentListTitles[position]
  182.  
  183.     fun addFragment(fragment: Fragment, title: String) {
  184.         fragmentList.add(fragment)
  185.         fragmentListTitles.add(title)
  186.     }
  187. }
Advertisement
Add Comment
Please, Sign In to add comment