Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .idea/gradle.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 9 additions & 0 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -44,4 +44,13 @@ dependencies {
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'

//Retrofit
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
implementation 'com.squareup.retrofit2:adapter-rxjava2:2.9.0'

//firebase
implementation platform('com.google.firebase:firebase-bom:30.1.0')
implementation 'com.google.firebase:firebase-analytics-ktx'
}
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

dhdhdhdh

39 changes: 39 additions & 0 deletions app/google-services.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
{
"project_info": {
"project_number": "479150024482",
"project_id": "mbtree-7a9b6",
"storage_bucket": "mbtree-7a9b6.appspot.com"
},
"client": [
{
"client_info": {
"mobilesdk_app_id": "1:479150024482:android:5913d300515a08e031a77b",
"android_client_info": {
"package_name": "com.umc.project.mbtree"
}
},
"oauth_client": [
{
"client_id": "479150024482-s1ef07pjscklju3cd5uvjci4j917ute9.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyC1YTQIMNFcZ9LFJ4tHwPorEjimPIECCKk"
}
],
"services": {
"appinvite_service": {
"other_platform_oauth_client": [
{
"client_id": "479150024482-s1ef07pjscklju3cd5uvjci4j917ute9.apps.googleusercontent.com",
"client_type": 3
}
]
}
}
}
],
"configuration_version": "1"
}
5 changes: 5 additions & 0 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,16 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.umc.project.mbtree">

<uses-permission android:name="android.permission.INTERNET"/>

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.MBTree">

<activity
android:name=".MainActivity"
android:exported="true">
Expand All @@ -18,6 +21,8 @@
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".LetterActivity"
android:theme="@style/MyPopupMenu"/>
</application>

</manifest>
35 changes: 35 additions & 0 deletions app/src/main/java/com/umc/project/mbtree/ChatActivity.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package com.umc.project.mbtree

import android.os.Bundle
import android.os.PersistableBundle
import android.view.LayoutInflater
import androidx.appcompat.app.AppCompatActivity
import com.google.firebase.analytics.FirebaseAnalytics
import com.google.firebase.analytics.ktx.analytics
import com.google.firebase.analytics.ktx.logEvent
import com.google.firebase.ktx.Firebase
import com.umc.project.mbtree.databinding.ActivityChatBinding

class ChatActivity: AppCompatActivity() {

lateinit var binding: ActivityChatBinding
private lateinit var firebaseAnalytics: FirebaseAnalytics

override fun onCreate(savedInstanceState: Bundle?, persistentState: PersistableBundle?) {
super.onCreate(savedInstanceState, persistentState)
binding = ActivityChatBinding.inflate(layoutInflater)

binding.ibSend.setOnClickListener{

}
//firebase객체 가져오기
firebaseAnalytics = Firebase.analytics
//이벤트 로깅
firebaseAnalytics.logEvent(FirebaseAnalytics.Event.SELECT_ITEM){
param(FirebaseAnalytics.Param.ITEM_ID, 1)
param(FirebaseAnalytics.Param.ITEM_NAME, "user1")
param(FirebaseAnalytics.Param.CONTENT_TYPE, "")
}

}
}
38 changes: 38 additions & 0 deletions app/src/main/java/com/umc/project/mbtree/LetterActivity.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
package com.umc.project.mbtree

import android.app.Activity
import android.content.Intent
import android.os.Bundle
import android.os.PersistableBundle
import android.util.Log
import android.view.Window
import androidx.appcompat.app.AppCompatActivity
import com.umc.project.mbtree.databinding.ActivityLetterBinding

class LetterActivity: Activity() {

lateinit var binding: ActivityLetterBinding

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityLetterBinding.inflate(layoutInflater)
requestWindowFeature(Window.FEATURE_NO_TITLE)
setContentView(binding.root)

Log.d("LetterAcitivity", "Letter넘어옴")
binding.btnOk.setOnClickListener{
val intent = Intent(baseContext, MainActivity::class.java)
intent.putExtra("content", binding.etPost.toString())
setResult(Activity.RESULT_OK, intent)
finish()
}

binding.btnCancel.setOnClickListener{
val intent = Intent(baseContext, MainActivity::class.java)
setResult(RESULT_CANCELED, intent)
finish()
}

}

}
23 changes: 23 additions & 0 deletions app/src/main/java/com/umc/project/mbtree/LetterDialog.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package com.umc.project.mbtree

import android.app.Dialog
import android.content.Context
import android.view.WindowManager

class LetterDialog(context: Context) {
private val dialog = Dialog(context)

fun showDialog(){
dialog.setContentView(R.layout.activity_letter)
dialog.window!!.setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.WRAP_CONTENT)
dialog.setCanceledOnTouchOutside(true)
dialog.setCancelable(true)
dialog.show()
}

// private lateinit var onClickListener: ButtonClickListener
//
// fun setOnClickListener(listener: ButtonClickListener){
// onClickListener = listener
// }
}
72 changes: 62 additions & 10 deletions app/src/main/java/com/umc/project/mbtree/MainActivity.kt
Original file line number Diff line number Diff line change
@@ -1,29 +1,65 @@
package com.umc.project.mbtree

import android.app.Activity
import android.app.Dialog
import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import android.view.MotionEvent
import android.view.View
import android.widget.ImageView
import android.widget.Toast
import androidx.activity.result.ActivityResultLauncher
import androidx.activity.result.contract.ActivityResultContracts
import com.umc.project.mbtree.api.RetrofitInterface
import com.umc.project.mbtree.api.getRetrofit
import com.umc.project.mbtree.databinding.ActivityMainBinding
import com.umc.project.mbtree.dto.Post
import retrofit2.Call
import retrofit2.Response

class MainActivity : AppCompatActivity() {

lateinit var binding: ActivityMainBinding
var TAG: String = "MainActivity"
lateinit var binding: ActivityMainBinding

private lateinit var getResult: ActivityResultLauncher<Intent>
private var curX:Float = 0.0F
private var curY:Float = 0.0F
// PR연습

val resultLauncher =
registerForActivityResult(ActivityResultContracts.StartActivityForResult()){ result->
if(result.resultCode == Activity.RESULT_OK){
val data:Intent? = result.data
val content = data?.getStringExtra("content").toString()
Log.d(TAG, "적은 내용: " + content)

var fruit: ImageView = ImageView(this@MainActivity)
fruit.setImageResource(R.drawable.ic_letter)
fruit.maxWidth = 10
fruit.maxHeight = 10
fruit.x = curX
fruit.y = curY
binding.mainLayout.addView(fruit)
}
}

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
binding.ivMainTree.bringToFront()

Log.d("레트로핏 테스트", "레트로핏 연결")
getPosts()

//나무에 열매달기
binding.touchView.setOnTouchListener(object: View.OnTouchListener{
override fun onTouch(p0: View?, p1: MotionEvent?): Boolean {
var curX: Float = p1!!.x
var curY: Float = p1.y!!
curX = p1!!.x
curY = p1.y!!

when(p1.action){
//터치가 처음 눌렸을 때
Expand All @@ -36,17 +72,33 @@ class MainActivity : AppCompatActivity() {
Toast.makeText(applicationContext, "손 뗌", Toast.LENGTH_SHORT).show()
Log.d(TAG, "마지막 x좌표: " + curX)
Log.d(TAG, "마지막 y좌표" + curY)
var fruit: ImageView = ImageView(this@MainActivity)
fruit.setImageResource(R.drawable.ic_fruit)
fruit.maxWidth = 20
fruit.maxHeight = 20
fruit.x = curX
fruit.y = curY
binding.mainLayout.addView(fruit)

val intent = Intent(application, LetterActivity::class.java)
resultLauncher.launch(intent)
}
}
return true
}
})
}

private fun getPosts(){
//test: 1번 유저 인덱스 요청
val service = getRetrofit().create(RetrofitInterface::class.java)
// Log.d("레트로핏 테스트", service.get)
service.getPosts(1)
.enqueue(object: retrofit2.Callback<List<Post>>{
override fun onResponse(call: Call<List<Post>>, response: Response<List<Post>>) {
Log.d("레트로핏 테스트", "성공")
val pList: List<Post> = response.body()!!
Log.d("레트로핏 테스트", pList.toString())
}

override fun onFailure(call: Call<List<Post>>, t: Throwable) {
Log.d("레트로핏 테스트", "실패")
Log.d("레트로핏 테스트", t.message.toString())
}

})
}
}
15 changes: 15 additions & 0 deletions app/src/main/java/com/umc/project/mbtree/api/NetworkModule.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package com.umc.project.mbtree.api

import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory

const val BASE_URL = "http://52.79.254.180:3306"

fun getRetrofit(): Retrofit {
val retrofit = Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build()

return retrofit
}
14 changes: 14 additions & 0 deletions app/src/main/java/com/umc/project/mbtree/api/RetrofitInterface.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
package com.umc.project.mbtree.api

import com.umc.project.mbtree.dto.Post
import retrofit2.Call
import retrofit2.http.*

interface RetrofitInterface {
@POST("/posts")
fun createPost(post: Post)

@GET("/tree")
fun getPosts(@Query("useridx")useridx: Int?): Call<List<Post>>

}
7 changes: 7 additions & 0 deletions app/src/main/java/com/umc/project/mbtree/dto/Chat.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.umc.project.mbtree.dto

data class Chat(
val name: String,
val profileImg: String,
val msg: String
)
12 changes: 12 additions & 0 deletions app/src/main/java/com/umc/project/mbtree/dto/Post.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package com.umc.project.mbtree.dto

import com.google.gson.annotations.SerializedName

data class Post(
@SerializedName("id") var id: Int,
@SerializedName("content") var content: String,
@SerializedName("xPos") var xPos: Float,
@SerializedName("yPos") var yPos: Float,
@SerializedName("writerId") var writerId: User,
@SerializedName("userId") var userId: User
)
10 changes: 10 additions & 0 deletions app/src/main/java/com/umc/project/mbtree/dto/User.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package com.umc.project.mbtree.dto

data class User(
var id: Int,
var email: String,
var location: String,
var myers: String,
var name: String,
var user_token: String
)
Binary file added app/src/main/res/drawable-v24/background.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added app/src/main/res/drawable-v24/ic_letter.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added app/src/main/res/drawable-v24/ic_tree.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
12 changes: 12 additions & 0 deletions app/src/main/res/drawable/custom_chat_me.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape>
<solid android:color="@color/white"/>
<corners android:radius="10dp"/>
<stroke
android:color="@color/black"
android:width="1dp"/>
</shape>
</item>
</layer-list>
Loading