Skip to content

Commit 589b596

Browse files
author
Alex Gimenes
committed
Project completed
1 parent be64975 commit 589b596

Some content is hidden

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

87 files changed

+1040
-1
lines changed

app/build.gradle

+8
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 'kotlin-android-extensions'
45
}
56

67
android {
@@ -30,6 +31,10 @@ android {
3031
kotlinOptions {
3132
jvmTarget = '1.8'
3233
}
34+
buildFeatures{
35+
dataBinding true
36+
viewBinding true
37+
}
3338
}
3439

3540
dependencies {
@@ -42,4 +47,7 @@ dependencies {
4247
testImplementation 'junit:junit:4.+'
4348
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
4449
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
50+
51+
//Gif
52+
implementation 'pl.droidsonroids.gif:android-gif-drawable:1.2.19'
4553
}

app/src/main/AndroidManifest.xml

+5-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,11 @@
99
android:roundIcon="@mipmap/ic_launcher_round"
1010
android:supportsRtl="true"
1111
android:theme="@style/Theme.JokenpôOriginal">
12-
<activity android:name=".MainActivity">
12+
<activity android:name=".jokenpo.JokenpoActivity"></activity>
13+
<activity android:name=".select_character.ChooseCharacterActivity" />
14+
<activity android:name=".home.HomeActivity" />
15+
<activity android:name=".MainActivity" />
16+
<activity android:name=".splash_screen.SplashScreenActivity">
1317
<intent-filter>
1418
<action android:name="android.intent.action.MAIN" />
1519

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package com.alex.jokenporiginal.home
2+
3+
import android.content.Intent
4+
import androidx.appcompat.app.AppCompatActivity
5+
import android.os.Bundle
6+
import com.alex.jokenporiginal.R
7+
import com.alex.jokenporiginal.select_character.ChooseCharacterActivity
8+
import kotlinx.android.synthetic.main.activity_home.*
9+
10+
class HomeActivity : AppCompatActivity() {
11+
override fun onCreate(savedInstanceState: Bundle?) {
12+
super.onCreate(savedInstanceState)
13+
setContentView(R.layout.activity_home)
14+
15+
supportActionBar!!.hide()
16+
17+
bt_home.setOnClickListener {
18+
goToSelectCharacter()
19+
}
20+
}
21+
22+
private fun goToSelectCharacter() {
23+
val intent = Intent(this, ChooseCharacterActivity::class.java)
24+
startActivity(intent)
25+
}
26+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
package com.alex.jokenporiginal.jokenpo
2+
3+
import android.annotation.SuppressLint
4+
import android.os.Bundle
5+
import android.view.View
6+
import androidx.appcompat.app.AlertDialog
7+
import androidx.appcompat.app.AppCompatActivity
8+
import com.alex.jokenporiginal.R
9+
import com.alex.jokenporiginal.select_character.model.DCharacter
10+
import kotlinx.android.synthetic.main.activity_jokenpo.*
11+
import kotlinx.android.synthetic.main.dialog_view_win.view.*
12+
import kotlin.random.Random
13+
14+
class JokenpoActivity : AppCompatActivity() {
15+
override fun onCreate(savedInstanceState: Bundle?) {
16+
super.onCreate(savedInstanceState)
17+
setContentView(R.layout.activity_jokenpo)
18+
19+
supportActionBar!!.hide()
20+
21+
val extras = intent.extras
22+
if (extras != null) {
23+
val character = intent.getParcelableExtra<DCharacter>("key")
24+
setComponents(character!!)
25+
}
26+
27+
btn_papel.setOnClickListener {
28+
play(0)
29+
}
30+
btn_pedra.setOnClickListener {
31+
play(1)
32+
}
33+
btn_tesoura.setOnClickListener {
34+
play(2)
35+
}
36+
}
37+
38+
@SuppressLint("UseCompatLoadingForDrawables")
39+
private fun play(num: Int) {
40+
image_view_comp.visibility = View.VISIBLE
41+
val comp = Random.nextInt(3)
42+
when(comp){
43+
0 -> image_play_comp.setImageDrawable(getDrawable(R.drawable.papel))
44+
1 -> image_play_comp.setImageDrawable(getDrawable(R.drawable.pedra))
45+
2 -> image_play_comp.setImageDrawable(getDrawable(R.drawable.tesoura))
46+
}
47+
if(comp == num){
48+
tieDialogAlert()
49+
}else if((comp == 0 && num == 1) || (comp == 1 && num == 2) || (comp == 2 && num == 0)){
50+
loseDialogAlert()
51+
}else{
52+
winDialogAlert()
53+
}
54+
}
55+
56+
private fun setComponents(character: DCharacter){
57+
val image = image_you
58+
image.setImageResource(character.character)
59+
}
60+
61+
private fun winDialogAlert(){
62+
val view = View.inflate(this, R.layout.dialog_view_win, null)
63+
val builder = AlertDialog.Builder(this)
64+
builder.setView(view)
65+
val dialog = builder.create()
66+
dialog.show()
67+
dialog.window?.setBackgroundDrawableResource(android.R.color.transparent)
68+
view.btn_confirm.setOnClickListener {
69+
dialog.dismiss()
70+
}
71+
}
72+
73+
private fun loseDialogAlert(){
74+
val view = View.inflate(this, R.layout.dialog_view_lose, null)
75+
val builder = AlertDialog.Builder(this)
76+
builder.setView(view)
77+
val dialog = builder.create()
78+
dialog.show()
79+
dialog.window?.setBackgroundDrawableResource(android.R.color.transparent)
80+
view.btn_confirm.setOnClickListener {
81+
dialog.dismiss()
82+
}
83+
}
84+
85+
private fun tieDialogAlert(){
86+
val view = View.inflate(this, R.layout.dialog_view_tie, null)
87+
val builder = AlertDialog.Builder(this)
88+
builder.setView(view)
89+
val dialog = builder.create()
90+
dialog.show()
91+
dialog.window?.setBackgroundDrawableResource(android.R.color.transparent)
92+
view.btn_confirm.setOnClickListener {
93+
dialog.dismiss()
94+
}
95+
}
96+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package com.alex.jokenporiginal.select_character
2+
3+
import android.content.Intent
4+
import androidx.appcompat.app.AppCompatActivity
5+
import android.os.Bundle
6+
import androidx.recyclerview.widget.GridLayoutManager
7+
import com.alex.jokenporiginal.MainActivity
8+
import com.alex.jokenporiginal.R
9+
import com.alex.jokenporiginal.jokenpo.JokenpoActivity
10+
import com.alex.jokenporiginal.select_character.adapter.CharacterAdapter
11+
import com.alex.jokenporiginal.select_character.model.DCharacter
12+
import com.alex.jokenporiginal.select_character.model.addCharacter
13+
import kotlinx.android.synthetic.main.activity_choose_character.*
14+
15+
class ChooseCharacterActivity : AppCompatActivity(), CharacterAdapter.OnItemClickListener {
16+
override fun onCreate(savedInstanceState: Bundle?) {
17+
super.onCreate(savedInstanceState)
18+
setContentView(R.layout.activity_choose_character)
19+
20+
supportActionBar!!.hide()
21+
22+
val recycler = rv_choose_character
23+
recycler.adapter = CharacterAdapter(addCharacter(), this)
24+
recycler.layoutManager = GridLayoutManager(applicationContext, 3)
25+
}
26+
27+
override fun onItemClicked(character: DCharacter) {
28+
val intent = Intent(this, JokenpoActivity::class.java)
29+
intent.putExtra("key", character)
30+
startActivity(intent)
31+
}
32+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package com.alex.jokenporiginal.select_character.adapter
2+
3+
import android.view.LayoutInflater
4+
import android.view.ViewGroup
5+
import androidx.recyclerview.widget.RecyclerView
6+
import com.alex.jokenporiginal.databinding.ViewModelChooseBinding
7+
import com.alex.jokenporiginal.select_character.model.DCharacter
8+
9+
class CharacterAdapter(val characters: MutableList<DCharacter>, val onItemClickListener: OnItemClickListener): RecyclerView.Adapter<CharacterAdapter.CharacterViewHolder>() {
10+
11+
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CharacterViewHolder{
12+
val binding = ViewModelChooseBinding.inflate(LayoutInflater.from(parent.context), parent, false)
13+
return CharacterViewHolder(binding)
14+
}
15+
16+
override fun onBindViewHolder(holder: CharacterAdapter.CharacterViewHolder, position: Int) {
17+
with(holder){
18+
with(characters[position]){
19+
binding.characterImage.setImageResource(character)
20+
binding.txtNameCharacter.text = nameCharacter
21+
holder.itemView.setOnClickListener {
22+
onItemClickListener.onItemClicked(this)
23+
}
24+
}
25+
}
26+
}
27+
28+
override fun getItemCount() = characters.size
29+
30+
inner class CharacterViewHolder(val binding: ViewModelChooseBinding): RecyclerView.ViewHolder(binding.root)
31+
32+
interface OnItemClickListener {
33+
fun onItemClicked(character: DCharacter)
34+
}
35+
36+
}

0 commit comments

Comments
 (0)