2020-02-25 15:25:45 +01:00
/ * *
* ProjectLaogai
*
* Copyright 2019 - 2020 < seil0 @mosad . xyz >
*
* This program is free software ; you can redistribute it and / or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation ; either version 3 of the License , or
* ( at your option ) any later version .
*
* This program is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU General Public License for more details .
*
* You should have received a copy of the GNU General Public License
* along with this program ; if not , write to the Free Software
* Foundation , Inc . , 51 Franklin Street , Fifth Floor , Boston ,
* MA 02110 - 1301 , USA .
*
* /
2020-02-23 20:09:27 +01:00
package org.mosad.seil0.projectlaogai
import android.content.Intent
import android.graphics.Color
import android.os.Bundle
import android.view.View
import android.widget.LinearLayout
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
2020-02-25 15:25:45 +01:00
import androidx.core.text.HtmlCompat
2020-02-23 20:09:27 +01:00
import androidx.viewpager.widget.ViewPager
2020-02-25 15:25:45 +01:00
import com.afollestad.materialdialogs.callbacks.onDismiss
2020-02-23 20:09:27 +01:00
import kotlinx.android.synthetic.main.activity_onboarding.*
import org.mosad.seil0.projectlaogai.fragments.SettingsFragment
import org.mosad.seil0.projectlaogai.onboarding.ViewPagerAdapter
class OnboardingActivity : AppCompatActivity ( ) {
companion object {
val layouts = intArrayOf ( R . layout . fragment _on _welcome , R . layout . fragment _on _course ) //, R.layout.fragment_on_login)
}
private lateinit var viewPager : ViewPager
private lateinit var viewPagerAdapter : ViewPagerAdapter
private lateinit var linLayoutDots : LinearLayout
private lateinit var dots : Array < TextView >
override fun onCreate ( savedInstanceState : Bundle ? ) {
super . onCreate ( savedInstanceState )
setContentView ( R . layout . activity _onboarding )
viewPager = findViewById ( R . id . viewPager )
linLayoutDots = findViewById ( R . id . linLayout _Dots )
addBottomDots ( 0 )
viewPagerAdapter = ViewPagerAdapter ( this )
viewPager . adapter = viewPagerAdapter
viewPager . addOnPageChangeListener ( viewPagerPageChangeListener )
btn _Skip . visibility = View . GONE // without the the skip button is visible
}
2020-02-25 15:25:45 +01:00
fun btnNextClick ( @Suppress ( " UNUSED_PARAMETER " ) v : View ) {
2020-02-23 20:09:27 +01:00
if ( viewPager . currentItem < layouts . size - 1 ) {
viewPager . currentItem ++
} else {
launchHomeScreen ( )
}
}
2020-02-25 15:25:45 +01:00
fun btnSkipClick ( @Suppress ( " UNUSED_PARAMETER " ) v : View ) {
2020-02-23 20:09:27 +01:00
launchHomeScreen ( )
}
2020-02-25 15:25:45 +01:00
fun btnSelectCourseClick ( @Suppress ( " UNUSED_PARAMETER " ) v : View ) {
SettingsFragment ( ) . selectCourse ( this ) . show {
onDismiss {
launchHomeScreen ( ) // launch the home-screen activity after the dialog is dismissed
}
}
2020-02-23 20:09:27 +01:00
}
private fun addBottomDots ( currentPage : Int ) {
dots = Array ( layouts . size ) { TextView ( this ) }
linLayoutDots . removeAllViews ( )
dots . forEach {
2020-02-25 15:25:45 +01:00
it . text = HtmlCompat . fromHtml ( " • " , HtmlCompat . FROM _HTML _MODE _LEGACY )
2020-02-23 20:09:27 +01:00
it . textSize = 35f
it . setTextColor ( Color . parseColor ( " #cccccc " ) )
linLayoutDots . addView ( it )
}
if ( dots . isNotEmpty ( ) )
dots [ currentPage ] . setTextColor ( Color . parseColor ( " #000000 " ) )
}
private fun launchHomeScreen ( ) {
startActivity ( Intent ( this , MainActivity :: class . java ) )
2020-02-27 12:13:46 +01:00
finish ( )
2020-02-23 20:09:27 +01:00
}
private var viewPagerPageChangeListener : ViewPager . OnPageChangeListener = object : ViewPager . OnPageChangeListener {
override fun onPageSelected ( position : Int ) {
addBottomDots ( position )
// changing the next button text
if ( position == layouts . size - 1 ) {
btn _Next . text = getString ( R . string . start )
btn _Next . visibility = View . VISIBLE
btn _Skip . visibility = View . GONE
} else {
btn _Next . visibility = View . GONE
btn _Skip . visibility = View . GONE
}
}
override fun onPageScrolled ( arg0 : Int , arg1 : Float , arg2 : Int ) { }
override fun onPageScrollStateChanged ( arg0 : Int ) { }
}
}