1+ package com.techflow.materialcolor.activity
2+
3+ import android.app.Activity
4+ import android.content.Context
5+ import android.content.Intent
6+ import android.os.Bundle
7+ import android.view.LayoutInflater
8+ import android.view.View
9+ import android.view.ViewGroup
10+ import android.widget.TextView
11+ import androidx.core.content.ContextCompat
12+ import androidx.databinding.DataBindingUtil
13+ import androidx.viewpager.widget.PagerAdapter
14+ import androidx.viewpager.widget.ViewPager
15+ import com.google.android.material.button.MaterialButton
16+ import com.techflow.materialcolor.R
17+ import com.techflow.materialcolor.databinding.ActivityAppIntroBinding
18+ import com.techflow.materialcolor.utils.ThemeUtils
19+
20+ /* *
21+ * Created by Dilip Suthar on 10/06/2020
22+ */
23+ class AppIntroActivity : BaseActivity (), ViewPager.OnPageChangeListener {
24+
25+ // Static
26+ companion object {
27+ private lateinit var wizard_titles: Array <String >
28+ private lateinit var wizard_descs: Array <String >
29+ }
30+
31+ private lateinit var bind: ActivityAppIntroBinding
32+ private lateinit var viewPagerAdapter: ViewPagerAdapter
33+
34+ override fun onCreate (savedInstanceState : Bundle ? ) {
35+ super .onCreate(savedInstanceState)
36+ bind = DataBindingUtil .setContentView(this , R .layout.activity_app_intro)
37+
38+ initComponents()
39+ }
40+
41+ private fun initComponents () {
42+ wizard_titles = resources.getStringArray(R .array.wizard_titles)
43+ wizard_descs = resources.getStringArray(R .array.wizard_descriptions)
44+
45+ /* bottomProgressDots(0)*/
46+ bind.pageIndicator.count = wizard_titles.size
47+ bind.pageIndicator.selection = 0
48+ if (ThemeUtils .getTheme(this ) == ThemeUtils .LIGHT ) {
49+ bind.pageIndicator.unselectedColor = ContextCompat .getColor(this , R .color.overlay_dark_30)
50+ } else {
51+ bind.pageIndicator.unselectedColor = ContextCompat .getColor(this , R .color.overlay_light_30)
52+ }
53+
54+ viewPagerAdapter = ViewPagerAdapter (this , bind.viewPager)
55+ bind.viewPager.adapter = viewPagerAdapter
56+ bind.viewPager.setOnPageChangeListener(this )
57+ }
58+
59+ /* private fun bottomProgressDots(currentIndex: Int) {
60+ val dots = arrayOfNulls<ImageView>(MAX_STEP)
61+
62+ bind.layoutDots.removeAllViews()
63+ for ((i, value) in dots.withIndex()) {
64+ dots[i] = ImageView(this)
65+ val width_height = 15
66+ val params = LinearLayout.LayoutParams(ViewGroup.LayoutParams(width_height, width_height))
67+ params.setMargins(10, 10, 10, 10)
68+ dots[i]?.layoutParams = params
69+ dots[i]?.setImageResource(R.drawable.shape_round)
70+ dots[i]?.setColorFilter(ContextCompat.getColor(this, R.color.grey_200), PorterDuff.Mode.SRC_IN)
71+ bind.layoutDots.addView(dots[i])
72+ }
73+
74+ if (dots.isNotEmpty()) {
75+ dots[currentIndex]?.setImageResource(R.drawable.shape_round)
76+ dots[currentIndex]?.setColorFilter(ThemeUtils.getThemeAttrColor(this, R.attr.colorPrimary), PorterDuff.Mode.SRC_IN)
77+ }
78+ }*/
79+
80+ override fun onPageSelected (position : Int ) {
81+ /* bottomProgressDots(position)*/
82+ bind.pageIndicator.selection = position
83+ }
84+ override fun onPageScrolled (position : Int , positionOffset : Float , positionOffsetPixels : Int ) {
85+
86+ }
87+ override fun onPageScrollStateChanged (state : Int ) {
88+
89+ }
90+
91+ /* *
92+ * View pager adapter
93+ */
94+ class ViewPagerAdapter (val activity : Activity , private val viewPager : ViewPager ) : PagerAdapter() {
95+ override fun instantiateItem (container : ViewGroup , position : Int ): Any {
96+ val layoutInflater = activity.getSystemService(Context .LAYOUT_INFLATER_SERVICE ) as LayoutInflater
97+
98+ val view = layoutInflater.inflate(R .layout.item_app_intro_wizard, container, false )
99+ view.findViewById<TextView >(R .id.title).text = wizard_titles[position]
100+ view.findViewById<TextView >(R .id.description).text = wizard_descs[position]
101+
102+ val btnNext = view.findViewById<MaterialButton >(R .id.btn_next)
103+ if (position == wizard_titles.size - 1 ) {
104+ btnNext.text = " Get started"
105+ } else {
106+ btnNext.text = " Next"
107+ }
108+
109+ btnNext.setOnClickListener {
110+ val current = viewPager.currentItem + 1
111+ if (current < wizard_titles.size) {
112+ viewPager.currentItem = current
113+ } else {
114+ activity.startActivity(Intent (activity, HomeActivity ::class .java))
115+ activity.finish()
116+ }
117+ }
118+
119+ container.addView(view)
120+ return view
121+ }
122+
123+ override fun getCount (): Int {
124+ return wizard_titles.size
125+ }
126+
127+ override fun isViewFromObject (view : View , `object `: Any ): Boolean {
128+ return view == `object `
129+ }
130+
131+ override fun destroyItem (container : ViewGroup , position : Int , `object `: Any ) {
132+ val view = `object ` as View
133+ container.removeView(view)
134+ }
135+ }
136+ }
0 commit comments