Skip to content

Commit 96c2976

Browse files
authored
Merge pull request #15 from binaryshrey/feat/v1.2
Feat/v1.2
2 parents 6d5c1a6 + 36ced66 commit 96c2976

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

55 files changed

+1504
-171
lines changed

.idea/misc.xml

+4-3
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/build.gradle

+4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
plugins {
22
id 'com.android.application'
33
id 'kotlin-android'
4+
id 'org.jetbrains.kotlin.kapt'
45
id 'com.google.gms.google-services'
56

67
}
@@ -70,4 +71,7 @@ dependencies {
7071
//firebase-auth
7172
implementation 'com.google.firebase:firebase-auth-ktx'
7273
implementation 'com.google.android.gms:play-services-auth:20.4.0'
74+
75+
//lottie
76+
implementation "com.airbnb.android:lottie:3.4.0"
7377
}

app/src/main/java/dev/shreyansh/dice/ui/game/BoardFourFragment.kt

+26-12
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
package dev.shreyansh.dice.ui.game
22

33
import android.os.Bundle
4-
import android.util.Log
54
import android.view.*
6-
import android.widget.Toast
75
import androidx.fragment.app.Fragment
86
import androidx.appcompat.app.AppCompatActivity
97
import androidx.appcompat.app.AppCompatDelegate
@@ -18,7 +16,6 @@ import com.google.android.gms.auth.api.signin.GoogleSignInOptions
1816
import com.google.firebase.auth.FirebaseAuth
1917
import dev.shreyansh.dice.R
2018
import dev.shreyansh.dice.databinding.FragmentBoardFourBinding
21-
import dev.shreyansh.dice.databinding.FragmentBoardThreeBinding
2219
import dev.shreyansh.dice.viewModel.DiceViewModel
2320

2421

@@ -27,29 +24,34 @@ class BoardFourFragment : Fragment() {
2724
private lateinit var binding : FragmentBoardFourBinding
2825
private val viewModel: DiceViewModel by activityViewModels()
2926

30-
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
31-
// Inflate the layout for this fragment
27+
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {
28+
3229
(activity as AppCompatActivity).supportActionBar?.show()
3330
requireActivity().window.statusBarColor = ContextCompat.getColor(requireContext(),R.color.black)
3431
binding = DataBindingUtil.inflate(inflater, R.layout.fragment_board_four, container, false)
3532
binding.viewModel = viewModel
36-
binding.lifecycleOwner = this
33+
binding.lifecycleOwner = viewLifecycleOwner
3734
setHasOptionsMenu(true)
3835
viewModel.resetData()
3936

4037
viewModel.result.observe(viewLifecycleOwner, Observer { value ->
4138
if (value != "") {
4239
animateDice(binding)
40+
animateDiceResult(binding)
4341
}
4442
})
4543
binding.rollButton.setOnClickListener {
44+
binding.confetti.visibility = View.VISIBLE
4645
binding.rollButton.isEnabled=false
4746
binding.rollButton.isClickable=false
4847
viewModel.rollBoardFour()
4948
binding.rollButton.postDelayed(Runnable {
5049
binding.rollButton.isEnabled=true
5150
binding.rollButton.isClickable=true
52-
} , 210)
51+
} , 2000)
52+
binding.rollButton.postDelayed(Runnable {
53+
binding.confetti.visibility = View.INVISIBLE
54+
} , 2000)
5355

5456
}
5557

@@ -97,12 +99,11 @@ class BoardFourFragment : Fragment() {
9799
googlesSignInClient.signOut()
98100
FirebaseAuth.getInstance().signOut()
99101
findNavController().navigate(R.id.action_boardFourFragment_to_introFragment)
100-
Log.d("BottomSheet", "Log Out successful!")
101102
}
102103

103104
private fun animateDice(binding: FragmentBoardFourBinding) {
104105
binding.dice1ImageView.animate().apply {
105-
duration = 100
106+
duration = 200
106107
rotationYBy(360f)
107108
}.withEndAction {
108109
binding.dice1ImageView.animate().apply {
@@ -111,7 +112,7 @@ class BoardFourFragment : Fragment() {
111112
}
112113
}
113114
binding.dice2ImageView.animate().apply {
114-
duration = 100
115+
duration = 200
115116
rotationYBy(360f)
116117
}.withEndAction {
117118
binding.dice1ImageView.animate().apply {
@@ -120,7 +121,7 @@ class BoardFourFragment : Fragment() {
120121
}
121122
}
122123
binding.dice3ImageView.animate().apply {
123-
duration = 100
124+
duration = 200
124125
rotationYBy(360f)
125126
}.withEndAction {
126127
binding.dice3ImageView.animate().apply {
@@ -129,7 +130,7 @@ class BoardFourFragment : Fragment() {
129130
}
130131
}
131132
binding.dice4ImageView.animate().apply {
132-
duration = 100
133+
duration = 200
133134
rotationYBy(360f)
134135
}.withEndAction {
135136
binding.dice4ImageView.animate().apply {
@@ -138,4 +139,17 @@ class BoardFourFragment : Fragment() {
138139
}
139140
}
140141
}
142+
143+
private fun animateDiceResult(binding: FragmentBoardFourBinding?) {
144+
binding?.resultImageView?.animate()?.apply {
145+
duration = 200
146+
rotationYBy(360f)
147+
}?.withEndAction {
148+
binding.resultImageView.animate().apply {
149+
duration = 200
150+
rotationYBy(3600f)
151+
}
152+
}
153+
}
154+
141155
}

app/src/main/java/dev/shreyansh/dice/ui/game/BoardOneFragment.kt

+23-13
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
11
package dev.shreyansh.dice.ui.game
22

3-
import android.content.SharedPreferences
43
import android.os.Bundle
5-
import android.util.Log
64
import android.view.*
7-
import android.widget.Toast
85
import androidx.fragment.app.Fragment
96
import androidx.appcompat.app.AppCompatActivity
107
import androidx.appcompat.app.AppCompatDelegate
@@ -27,36 +24,39 @@ class BoardOneFragment : Fragment() {
2724
private lateinit var binding: FragmentBoardOneBinding
2825
private val viewModel: DiceViewModel by activityViewModels()
2926

30-
override fun onCreateView(
31-
inflater: LayoutInflater, container: ViewGroup?,
32-
savedInstanceState: Bundle?
33-
): View? {
34-
// Inflate the layout for this fragment
27+
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {
28+
3529
(activity as AppCompatActivity).supportActionBar?.show()
3630
requireActivity().window.statusBarColor = ContextCompat.getColor(requireContext(),R.color.black)
3731
binding = DataBindingUtil.inflate(inflater, R.layout.fragment_board_one, container, false)
3832
binding.viewModel = viewModel
39-
binding.lifecycleOwner = this
33+
binding.lifecycleOwner = viewLifecycleOwner
4034
setHasOptionsMenu(true)
4135
viewModel.resetData()
4236
viewModel.result.observe(viewLifecycleOwner, Observer { value ->
4337
if (value != "") {
4438
animateDice(binding)
39+
animateDiceResult(binding)
4540
}
4641
})
4742
binding.rollButton.setOnClickListener {
43+
binding.confetti.visibility = View.VISIBLE
4844
binding.rollButton.isEnabled=false
4945
binding.rollButton.isClickable=false
50-
viewModel.rollBoardFour()
46+
viewModel.rollBoardOne()
5147
binding.rollButton.postDelayed(Runnable {
5248
binding.rollButton.isEnabled=true
5349
binding.rollButton.isClickable=true
54-
} , 210)
50+
} , 2000)
51+
binding.rollButton.postDelayed(Runnable {
52+
binding.confetti.visibility = View.INVISIBLE
53+
} , 2000)
5554

5655
}
5756

5857
return binding.root
5958
}
59+
6060
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
6161
super.onViewCreated(view, savedInstanceState)
6262
val sp = PreferenceManager.getDefaultSharedPreferences(requireContext())
@@ -98,12 +98,11 @@ class BoardOneFragment : Fragment() {
9898
googlesSignInClient.signOut()
9999
FirebaseAuth.getInstance().signOut()
100100
findNavController().navigate(R.id.action_boardOneFragment_to_introFragment)
101-
Log.d("BottomSheet", "Log Out successful!")
102101
}
103102

104103
private fun animateDice(binding: FragmentBoardOneBinding) {
105104
binding.dice1ImageView.animate().apply {
106-
duration = 100
105+
duration = 200
107106
rotationYBy(360f)
108107
}.withEndAction {
109108
binding.dice1ImageView.animate().apply {
@@ -113,4 +112,15 @@ class BoardOneFragment : Fragment() {
113112
}
114113
}
115114

115+
private fun animateDiceResult(binding: FragmentBoardOneBinding?) {
116+
binding?.resultImageView?.animate()?.apply {
117+
duration = 200
118+
rotationYBy(360f)
119+
}?.withEndAction {
120+
binding.resultImageView.animate().apply {
121+
duration = 200
122+
rotationYBy(3600f)
123+
}
124+
}
125+
}
116126
}

app/src/main/java/dev/shreyansh/dice/ui/game/BoardThreeFragment.kt

+26-15
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
package dev.shreyansh.dice.ui.game
22

33
import android.os.Bundle
4-
import android.util.Log
54
import android.view.*
6-
import android.widget.Toast
75
import androidx.fragment.app.Fragment
86
import androidx.appcompat.app.AppCompatActivity
97
import androidx.appcompat.app.AppCompatDelegate
@@ -18,7 +16,6 @@ import com.google.android.gms.auth.api.signin.GoogleSignInOptions
1816
import com.google.firebase.auth.FirebaseAuth
1917
import dev.shreyansh.dice.R
2018
import dev.shreyansh.dice.databinding.FragmentBoardThreeBinding
21-
import dev.shreyansh.dice.databinding.FragmentBoardTwoBinding
2219
import dev.shreyansh.dice.viewModel.DiceViewModel
2320

2421

@@ -27,32 +24,35 @@ class BoardThreeFragment : Fragment() {
2724
private lateinit var binding : FragmentBoardThreeBinding
2825
private val viewModel: DiceViewModel by activityViewModels()
2926

30-
override fun onCreateView(
31-
inflater: LayoutInflater, container: ViewGroup?,
32-
savedInstanceState: Bundle?
33-
): View? {
34-
// Inflate the layout for this fragment
27+
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {
28+
3529
(activity as AppCompatActivity).supportActionBar?.show()
3630
requireActivity().window.statusBarColor = ContextCompat.getColor(requireContext(),R.color.black)
3731
binding = DataBindingUtil.inflate(inflater, R.layout.fragment_board_three, container, false)
3832
binding.viewModel = viewModel
39-
binding.lifecycleOwner = this
33+
binding.lifecycleOwner = viewLifecycleOwner
4034
setHasOptionsMenu(true)
4135
viewModel.resetData()
4236

4337
viewModel.result.observe(viewLifecycleOwner, Observer { value ->
4438
if (value != "") {
4539
animateDice(binding)
40+
animateDiceResult(binding)
4641
}
4742
})
43+
4844
binding.rollButton.setOnClickListener {
45+
binding.confetti.visibility = View.VISIBLE
4946
binding.rollButton.isEnabled=false
5047
binding.rollButton.isClickable=false
51-
viewModel.rollBoardFour()
48+
viewModel.rollBoardThree()
5249
binding.rollButton.postDelayed(Runnable {
5350
binding.rollButton.isEnabled=true
5451
binding.rollButton.isClickable=true
55-
} , 210)
52+
} , 2000)
53+
binding.rollButton.postDelayed(Runnable {
54+
binding.confetti.visibility = View.INVISIBLE
55+
} , 2000)
5656

5757
}
5858

@@ -100,12 +100,11 @@ class BoardThreeFragment : Fragment() {
100100
googlesSignInClient.signOut()
101101
FirebaseAuth.getInstance().signOut()
102102
findNavController().navigate(R.id.action_boardThreeFragment_to_introFragment)
103-
Log.d("BottomSheet", "Log Out successful!")
104103
}
105104

106105
private fun animateDice(binding: FragmentBoardThreeBinding) {
107106
binding.dice0ImageView.animate().apply {
108-
duration = 100
107+
duration = 200
109108
rotationYBy(360f)
110109
}.withEndAction {
111110
binding.dice0ImageView.animate().apply {
@@ -114,7 +113,7 @@ class BoardThreeFragment : Fragment() {
114113
}
115114
}
116115
binding.dice1ImageView.animate().apply {
117-
duration = 100
116+
duration = 200
118117
rotationYBy(360f)
119118
}.withEndAction {
120119
binding.dice1ImageView.animate().apply {
@@ -123,7 +122,7 @@ class BoardThreeFragment : Fragment() {
123122
}
124123
}
125124
binding.dice2ImageView.animate().apply {
126-
duration = 100
125+
duration = 200
127126
rotationYBy(360f)
128127
}.withEndAction {
129128
binding.dice1ImageView.animate().apply {
@@ -133,4 +132,16 @@ class BoardThreeFragment : Fragment() {
133132
}
134133
}
135134

135+
private fun animateDiceResult(binding: FragmentBoardThreeBinding?) {
136+
binding?.resultImageView?.animate()?.apply {
137+
duration = 200
138+
rotationYBy(360f)
139+
}?.withEndAction {
140+
binding.resultImageView.animate().apply {
141+
duration = 200
142+
rotationYBy(3600f)
143+
}
144+
}
145+
}
146+
136147
}

0 commit comments

Comments
 (0)