125 lines
4.2 KiB
Kotlin
125 lines
4.2 KiB
Kotlin
/**
|
|
* 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.
|
|
*
|
|
*/
|
|
|
|
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
|
|
import androidx.core.text.HtmlCompat
|
|
import androidx.viewpager.widget.ViewPager
|
|
import com.afollestad.materialdialogs.callbacks.onDismiss
|
|
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
|
|
}
|
|
|
|
fun btnNextClick(@Suppress("UNUSED_PARAMETER")v: View) {
|
|
if (viewPager.currentItem < layouts.size - 1) {
|
|
viewPager.currentItem++
|
|
} else {
|
|
launchHomeScreen()
|
|
}
|
|
}
|
|
|
|
fun btnSkipClick(@Suppress("UNUSED_PARAMETER")v: View) {
|
|
launchHomeScreen()
|
|
}
|
|
|
|
fun btnSelectCourseClick(@Suppress("UNUSED_PARAMETER")v: View) {
|
|
SettingsFragment().selectCourse(this).show {
|
|
onDismiss {
|
|
launchHomeScreen() // launch the home-screen activity after the dialog is dismissed
|
|
}
|
|
}
|
|
}
|
|
|
|
private fun addBottomDots(currentPage: Int) {
|
|
dots = Array(layouts.size) { TextView(this) }
|
|
linLayoutDots.removeAllViews()
|
|
|
|
dots.forEach {
|
|
it.text = HtmlCompat.fromHtml("•", HtmlCompat.FROM_HTML_MODE_LEGACY)
|
|
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))
|
|
finish()
|
|
}
|
|
|
|
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) {}
|
|
}
|
|
|
|
|
|
} |