diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 0000000..7cb959b --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,8 @@ +### ✅이슈번호 +- 샵버튼으로 연동 + +### ✅변경 사항 +- 예시 + +### ✅참고 사항 +- 따로 참고사항 없으면 지워도 됩니다 diff --git a/.gitignore b/.gitignore index aa724b7..b34b5a2 100644 --- a/.gitignore +++ b/.gitignore @@ -1,15 +1,138 @@ -*.iml -.gradle -/local.properties -/.idea/caches -/.idea/libraries -/.idea/modules.xml -/.idea/workspace.xml -/.idea/navEditor.xml -/.idea/assetWizardSettings.xml +# Created by https://www.toptal.com/developers/gitignore/api/kotlin,androidstudio +# Edit at https://www.toptal.com/developers/gitignore?templates=kotlin,androidstudio + .DS_Store -/build /captures -.externalNativeBuild .cxx + +### Kotlin ### +# Compiled class file +*.class + +# Log file +*.log + +# BlueJ files +*.ctxt + +# Mobile Tools for Java (J2ME) +.mtj.tmp/ + +# Package Files # +*.jar +*.war +*.nar +*.ear +*.zip +*.tar.gz +*.rar + +# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml +hs_err_pid* +replay_pid* + +### AndroidStudio ### +# Covers files to be ignored for android development using Android Studio. + +# Built application files +*.apk +*.ap_ +*.aab + +# Files for the ART/Dalvik VM +*.dex + +# Java class files + +# Generated files +bin/ +gen/ +out/ + +# Gradle files +.gradle +.gradle/ +build/ + +# Signing files +.signing/ + +# Local configuration file (sdk path, etc) local.properties + +# Proguard folder generated by Eclipse +proguard/ + +# Log Files + +# Android Studio +/build +/*/build/ +/*/local.properties +/*/out +/*/*/build +/*/*/production +captures/ +.navigation/ +*.ipr +*~ +*.swp + +# Keystore files +*.jks +*.keystore + +# Google Services (e.g. APIs or Firebase) +# google-services.json + +# Android Patch +gen-external-apklibs + +# External native build folder generated in Android Studio 2.2 and later +.externalNativeBuild + +# NDK +obj/ + +# IntelliJ IDEA +*.iml +*.iws +/out/ + +# User-specific configurations +.idea/ + +# Legacy Eclipse project files +.classpath +.project +.cproject +.settings/ + +# Mobile Tools for Java (J2ME) + +# Package Files # + +# virtual machine crash logs (Reference: http://www.java.com/en/download/help/error_hotspot.xml) + +## Plugin-specific files: + +# mpeltonen/sbt-idea plugin +.idea_modules/ + +# JIRA plugin +atlassian-ide-plugin.xml + +# Mongo Explorer plugin +.idea/mongoSettings.xml + +# Crashlytics plugin (for Android Studio and IntelliJ) +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties + +### AndroidStudio Patch ### + +!/gradle/wrapper/gradle-wrapper.jar + +# End of https://www.toptal.com/developers/gitignore/api/kotlin,androidstudio \ No newline at end of file diff --git a/.idea/.gitignore b/.idea/.gitignore deleted file mode 100644 index 26d3352..0000000 --- a/.idea/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml diff --git a/.idea/compiler.xml b/.idea/compiler.xml deleted file mode 100644 index fb7f4a8..0000000 --- a/.idea/compiler.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml deleted file mode 100644 index 19cc484..0000000 --- a/.idea/deploymentTargetDropDown.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml deleted file mode 100644 index a2d7c21..0000000 --- a/.idea/gradle.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml deleted file mode 100644 index 97d0c21..0000000 --- a/.idea/misc.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml deleted file mode 100644 index 94a25f7..0000000 --- a/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 70e6b9e..5644e59 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,6 +1,7 @@ plugins { id 'com.android.application' id 'org.jetbrains.kotlin.android' + id 'kotlin-android-extensions' } android { @@ -33,6 +34,13 @@ android { kotlinOptions { jvmTarget = '1.8' } + + // 뷰바인딩 사용 + buildFeatures { + viewBinding = true + } + + configurations { implementation.exclude group: 'org.jetbrains', module: 'annotations' } } dependencies { @@ -41,7 +49,47 @@ dependencies { implementation 'androidx.appcompat:appcompat:1.4.2' implementation 'com.google.android.material:material:1.6.1' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' + implementation 'androidx.room:room-common:2.3.0' + implementation 'androidx.room:room-compiler:2.3.0' + implementation 'com.google.ar.sceneform:filament-android:1.17.1' testImplementation 'junit:junit:4.13.2' androidTestImplementation 'androidx.test.ext:junit:1.1.3' androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' + + // 카카오 로그인 + implementation "com.kakao.sdk:v2-user:2.11.0" + + // 카카오 친구, 메세지 + implementation "com.kakao.sdk:v2-talk:2.11.0" + + // glide 라이브러리 + implementation 'com.github.bumptech.glide:glide:4.12.0' + + //circleView + implementation 'de.hdodenhof:circleimageview:3.1.0' + + //okhttp + implementation 'com.squareup.okhttp3:okhttp:3.12.6' + implementation 'com.squareup.okhttp3:mockwebserver:3.12.1' + + + // stomp + implementation 'com.github.NaikSoftware:StompProtocolAndroid:1.6.6' + //rx + implementation 'io.reactivex.rxjava2:rxjava:2.2.5' + implementation 'io.reactivex.rxjava2:rxandroid:2.1.0' + + /* Coroutine + implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.0' + implementation 'com.squareup.retrofit2:retrofit:2.6.0' + implementation 'com.squareup.retrofit2:converter-gson:2.6.0' + implementation "com.squareup.okhttp3:logging-interceptor:4.5.0" + implementation 'de.hdodenhof:circleimageview:3.1.0' + implementation 'com.squareup.retrofit2:retrofit:2.9.0' + implementation 'com.squareup.retrofit2:converter-gson:2.9.0' + implementation 'com.google.code.gson:gson:2.8.6' + implementation 'com.squareup.okhttp3:okhttp:4.9.1' + implementation 'com.squareup.okhttp3:logging-interceptor:4.9.1' + + */ } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d1605d5..3d6ab9b 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -3,25 +3,107 @@ xmlns:tools="http://schemas.android.com/tools" package="com.umc.project.mbtree"> + + + + + + + + + + + + + + + + + + + + + + + + + + tools:targetApi="31" + > + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/umc/project/mbtree/data/Chat.kt b/app/src/main/java/com/umc/project/mbtree/data/Chat.kt new file mode 100644 index 0000000..d2cb9fc --- /dev/null +++ b/app/src/main/java/com/umc/project/mbtree/data/Chat.kt @@ -0,0 +1,10 @@ +package com.umc.project.mbtree.data + +data class Chat( + var content:String, + var time:String, + var viewType:Int, //1:왼쪽 2:오른쪽 3:센터 + var question: String? = "", + var answer1: String? = "", + var answer2: String? = "" +) diff --git a/app/src/main/java/com/umc/project/mbtree/data/ChatResponse.kt b/app/src/main/java/com/umc/project/mbtree/data/ChatResponse.kt new file mode 100644 index 0000000..6a50264 --- /dev/null +++ b/app/src/main/java/com/umc/project/mbtree/data/ChatResponse.kt @@ -0,0 +1,66 @@ +package com.umc.project.mbtree.data + +data class MatchResponse ( + val responseResult: String, + val chatRoomId: Int, + val userId: Int +) + +data class ChatList( + val isSuccess: Boolean, + val code: Int, + val message: String, + val result: ArrayList +) + +data class ChatListResult( + val id: Int, + val user1: User?, + val user2: User?, + val quit: Int +) + +data class ChatContent( + val isSuccess: Boolean, + val code: Int, + val message: String +) + +data class Quiz( + val isSuccess: Boolean, + val code: Int, + val message: String, + val result: QuizResult +) + +data class QuizResult( + val id: Int, + val quiz: String, + val keyword: String, + val answer1: String, + val answer2: String +) + +data class QuizAnswer( + val isSuccess: Boolean, + val code: Int, + val message: String, + val result: QuizAnswerResult? +){ + data class QuizAnswerResult( + val id:Int, + val user1: String, + val user2: String, + val quiz: String, + val quilt: String, + val answer1: Int, + val answer2: Int + ) +} + +data class QuizAnswerConfirm( + val isSuccess: Boolean, + val code: Int, + val message: String, + val result: Int +) \ No newline at end of file diff --git a/app/src/main/java/com/umc/project/mbtree/data/LetterPaper.kt b/app/src/main/java/com/umc/project/mbtree/data/LetterPaper.kt new file mode 100644 index 0000000..8c0d1aa --- /dev/null +++ b/app/src/main/java/com/umc/project/mbtree/data/LetterPaper.kt @@ -0,0 +1,8 @@ +package com.umc.project.mbtree.data + +data class LetterPaper( + var letterPaperImg: Int? = null , + var paperName: String, + var price: String, + var priceValue : Int +) diff --git a/app/src/main/java/com/umc/project/mbtree/data/User.kt b/app/src/main/java/com/umc/project/mbtree/data/User.kt index bb4c5e9..aeca9fe 100644 --- a/app/src/main/java/com/umc/project/mbtree/data/User.kt +++ b/app/src/main/java/com/umc/project/mbtree/data/User.kt @@ -1,7 +1,27 @@ package com.umc.project.mbtree.data +import androidx.room.Entity +import androidx.room.PrimaryKey + + +//@Entity(tableName = "UserTable") +//data class User( +// val userId : Int, +// var name : String, +// var mbti: String +//){ +// @PrimaryKey(autoGenerate = true) var id:Int = 0 +//} + + data class User( - val id:Int, + val id: Int, + var uuid: String?, var name: String, - var userToken: String + var email: String, + var mbti: String, + var location: String, + var token: String, + var point: Int, + var createDate: String? ) diff --git a/app/src/main/java/com/umc/project/mbtree/remote/ChatRetrofitInterface.kt b/app/src/main/java/com/umc/project/mbtree/remote/ChatRetrofitInterface.kt new file mode 100644 index 0000000..994eb94 --- /dev/null +++ b/app/src/main/java/com/umc/project/mbtree/remote/ChatRetrofitInterface.kt @@ -0,0 +1,41 @@ +package com.umc.project.mbtree.remote + +import com.umc.project.mbtree.data.* +import retrofit2.Call +import retrofit2.http.GET +import retrofit2.http.POST +import retrofit2.http.Query + +interface ChatRetrofitInterface { + + //랜덤채팅 매칭시작 + @GET("chat/join") + fun matchingChat(@Query("userId")userId: Int): Call + + //채팅 리스트 출력 + @GET("chat/list") + fun getChatListById(@Query("userId")userId: Int): Call + + //채팅방 내용 불러오기 + @GET("chat/list") + fun getChatContent( + @Query("userId")userId: Int, + @Query("roomId")roomId:Int + ): Call + + //퀴즈 가져오기 + @GET("chat/quiz") + fun getQuiz(@Query("roomId")roomId: Int): Call + + //퀴즈 정답 입력 + @GET("chat/answerQuiz") + fun setQuizAnswer( + @Query("roomId")roomId: Int, + @Query("userId")userId: Int, + @Query("answer")answer: Int + ): Call + + //퀴즈 정답 비교 + @GET("chat/checkAnswer") + fun getQuizAnswer(@Query("roomId")roomId: Int): Call +} \ No newline at end of file diff --git a/app/src/main/java/com/umc/project/mbtree/remote/NetworkModule.kt b/app/src/main/java/com/umc/project/mbtree/remote/NetworkModule.kt new file mode 100644 index 0000000..cbd6ae6 --- /dev/null +++ b/app/src/main/java/com/umc/project/mbtree/remote/NetworkModule.kt @@ -0,0 +1,31 @@ +package com.umc.project.mbtree.remote + +import com.google.gson.GsonBuilder +import okhttp3.OkHttpClient +import okhttp3.logging.HttpLoggingInterceptor +import retrofit2.Retrofit +import retrofit2.converter.gson.GsonConverterFactory + +const val BASE_URL = "https://mbtree.site/" + +var gson = GsonBuilder().setLenient().create() + +//레트로핏 객체 반환 +fun getRetrofit(): Retrofit{ + + val okHttpClient: OkHttpClient by lazy { + OkHttpClient.Builder() + .addInterceptor(HttpLoggingInterceptor().apply { + level = HttpLoggingInterceptor.Level.BODY + }) + .build() + } + + val retrofit = Retrofit.Builder() + .baseUrl(BASE_URL) + .addConverterFactory(GsonConverterFactory.create(gson)) + .client(okHttpClient) + .build() + + return retrofit +} \ No newline at end of file diff --git a/app/src/main/java/com/umc/project/mbtree/view/FriendFragment.kt b/app/src/main/java/com/umc/project/mbtree/view/FriendFragment.kt deleted file mode 100644 index 6c53524..0000000 --- a/app/src/main/java/com/umc/project/mbtree/view/FriendFragment.kt +++ /dev/null @@ -1,25 +0,0 @@ -package com.umc.project.mbtree.view - -import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import androidx.fragment.app.Fragment -import com.umc.project.mbtree.databinding.FragmentFriendBinding - -class FriendFragment: Fragment() { - - lateinit var binding: FragmentFriendBinding - - override fun onCreateView( - inflater: LayoutInflater, - container: ViewGroup?, - savedInstanceState: Bundle? - ): View? { - binding = FragmentFriendBinding.inflate(inflater, container,false) - - //로직 작성 - - return binding.root - } -} \ No newline at end of file diff --git a/app/src/main/java/com/umc/project/mbtree/view/LetterPaper/FriendTreeFragment.kt b/app/src/main/java/com/umc/project/mbtree/view/LetterPaper/FriendTreeFragment.kt new file mode 100644 index 0000000..6ee566f --- /dev/null +++ b/app/src/main/java/com/umc/project/mbtree/view/LetterPaper/FriendTreeFragment.kt @@ -0,0 +1,62 @@ +package com.umc.project.mbtree.view.LetterPaper + +import android.content.Intent +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.fragment.app.Fragment +import com.umc.project.mbtree.R +import com.umc.project.mbtree.databinding.FragmentFriendTreeBinding +import kotlinx.android.synthetic.main.activity_select_mbti.* + +class FriendTreeFragment: Fragment() { + + lateinit var binding: FragmentFriendTreeBinding + + + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View? { + binding = FragmentFriendTreeBinding.inflate(inflater, container, false) + + val transaction = parentFragmentManager.beginTransaction() + binding.btWrite.setOnClickListener { + transaction.replace(R.id.fl_main, LetterPaperDialogFragment()) + transaction.addToBackStack(null) + transaction.commit() + + // 시도1 +// val intent = Intent(this, LetterPaperActivity::class.java) +// startActivity(intent) + + // 시도2 +// val intent = Intent(getActivity(),LetterPaperActivity::class.java); //fragment라서 activity intent와는 다른 방식 +// intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); +// startActivity(intent); + + + // 시도3 +// val intent = Intent(context, LetterPaperActivity::class.java) +// startActivity(intent) + + + } + +// binding.btWrite.setOnClickListener { +// //Dialog 만들기 +// val mDialogView = LayoutInflater.from(this).inflate(R.layout.fragment_letter_paper_dialog,null) +// val mBuilder = AlertDialog.Builder(this) +// .setView(mDialogView) +// .setTitle("letterPaper") +// +// val mAlertDialog = mBuilder.show() +// } + + + + return binding.root + } + } \ No newline at end of file diff --git a/app/src/main/java/com/umc/project/mbtree/view/LetterPaper/LetterPaperDialogFragment.kt b/app/src/main/java/com/umc/project/mbtree/view/LetterPaper/LetterPaperDialogFragment.kt new file mode 100644 index 0000000..c61ae34 --- /dev/null +++ b/app/src/main/java/com/umc/project/mbtree/view/LetterPaper/LetterPaperDialogFragment.kt @@ -0,0 +1,73 @@ +package com.umc.project.mbtree.view.LetterPaper + +import android.app.Application +import android.content.Context +import android.graphics.Insets.add +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup + +import androidx.fragment.app.DialogFragment +import com.umc.project.mbtree.R +import com.umc.project.mbtree.data.LetterPaper +import com.umc.project.mbtree.databinding.FragmentFriendTreeBinding +import com.umc.project.mbtree.databinding.FragmentLetterPaperDialogBinding + +class LetterPaperDialogFragment: DialogFragment() { + + lateinit var binding: FragmentLetterPaperDialogBinding + lateinit var fContext : Context + + override fun onAttach(context: Context) { + super.onAttach(context) + fContext = context + } + + + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View? { + binding = FragmentLetterPaperDialogBinding.inflate(inflater, container, false) + + + + //dummy data + var datas = ArrayList() + datas.apply { + add(LetterPaper(R.drawable.letter_morning,"그날의 아침", "Free",0)) + add(LetterPaper(R.drawable.letter_cliff,"밤 언덕", "50p" ,50)) + add(LetterPaper(R.drawable.letter_night,"사막의 밤", "Free",0)) + add(LetterPaper(R.drawable.letter_night,"꽃밭", "50P",50)) + } + +// //그리드뷰에 어댑터 붙이기 +// val fAdaper = FriendRVAdapter(datas) +// binding.rvFriendList.adapter = fAdaper +// binding.rvFriendList.layoutManager = LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false) +// +// fAdaper.setMyItemClickListener(object: FriendRVAdapter.MyItemClickListener { +// // 클릭되었을 때, FriendFragment로 이동하기 +// override fun onItemClick() { +// (context as MainActivity). supportFragmentManager.beginTransaction() +// .replace(R.id.fl_main , FriendTreeFragment()) +// .commitAllowingStateLoss() +// } +// }) + + + + + + // Adapter 추가 + val letterPaperGVAdapter = LetterPaperGVAdapter(context, datas) + binding.gvLetterPaper.adapter = letterPaperGVAdapter + + + + return binding.root + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/umc/project/mbtree/view/LetterPaper/LetterPaperGVAdapter.kt b/app/src/main/java/com/umc/project/mbtree/view/LetterPaper/LetterPaperGVAdapter.kt new file mode 100644 index 0000000..59085ac --- /dev/null +++ b/app/src/main/java/com/umc/project/mbtree/view/LetterPaper/LetterPaperGVAdapter.kt @@ -0,0 +1,76 @@ +package com.umc.project.mbtree.view.LetterPaper + +import android.annotation.SuppressLint +import android.content.Context +import android.content.Intent +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.BaseAdapter +import android.widget.GridView +import androidx.recyclerview.widget.RecyclerView +import com.umc.project.mbtree.R +import com.umc.project.mbtree.data.LetterPaper +import com.umc.project.mbtree.data.User +import com.umc.project.mbtree.databinding.ItemLetterPaperBinding +import com.umc.project.mbtree.databinding.ItemListBinding +import com.umc.project.mbtree.view.friend.FriendRVAdapter +import kotlinx.android.synthetic.main.item_letter_paper.view.* +import kotlinx.android.synthetic.main.item_mbti.view.* + +class LetterPaperGVAdapter(val context: Context?, private val letterPaperList:ArrayList) : BaseAdapter() { + + @SuppressLint("ViewHolder") + + // 포지션 값을 가지고 있으므로 여기서 onclick이벤트 작성 + override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View { +// val mbti:String = letterPaperList[position] + val inflater = context!!.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater + + val lpView : View = inflater.inflate(R.layout.item_letter_paper, null) + lpView.ib_letter_paper.setImageResource(letterPaperList[position].letterPaperImg!!) + lpView.tv_letter_paper_name.text = letterPaperList[position].paperName + lpView.tv_letter_price.text = letterPaperList[position].price + + + + lpView.ib_letter_paper.setOnClickListener { + val intent = Intent(context, LetterWriteFragment::class.java) +// intent.putExtra("mbti", mbti) + context!!.startActivity(intent) + } + return lpView + } + + + fun onBindViewHolder(holder:LetterPaperGVAdapter.ViewHolder, position: Int) + { + holder.bind(letterPaperList[position]) + } + + + + override fun getItem(position: Int): Any { + return position + } + + override fun getItemId(position: Int): Long { + return position.toLong() + } + + override fun getCount(): Int { + return letterPaperList.size + } + + + + inner class ViewHolder(val binding: ItemLetterPaperBinding) : RecyclerView.ViewHolder(binding.root){ + fun bind(lp: LetterPaper){ + //binding.ivListProfile + binding.ibLetterPaper.setImageResource(lp.letterPaperImg!!) + binding.tvLetterPaperName.text = lp.paperName + binding.tvLetterPrice.text = lp.price + } + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/umc/project/mbtree/view/ChattingFragment.kt b/app/src/main/java/com/umc/project/mbtree/view/LetterPaper/LetterWriteFragment.kt similarity index 50% rename from app/src/main/java/com/umc/project/mbtree/view/ChattingFragment.kt rename to app/src/main/java/com/umc/project/mbtree/view/LetterPaper/LetterWriteFragment.kt index 48b2c4f..555dd22 100644 --- a/app/src/main/java/com/umc/project/mbtree/view/ChattingFragment.kt +++ b/app/src/main/java/com/umc/project/mbtree/view/LetterPaper/LetterWriteFragment.kt @@ -1,25 +1,27 @@ -package com.umc.project.mbtree.view +package com.umc.project.mbtree.view.LetterPaper import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.fragment.app.Fragment -import com.umc.project.mbtree.databinding.FragmentChattingBinding +import com.umc.project.mbtree.databinding.FragmentLetterWriteBinding -class ChattingFragment: Fragment() { - - lateinit var binding: FragmentChattingBinding +class LetterWriteFragment : Fragment(){ + lateinit var binding: FragmentLetterWriteBinding override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? - ): View? { - binding = FragmentChattingBinding.inflate(inflater, container, false) + ): View? + { + + binding = FragmentLetterWriteBinding.inflate(inflater, container,false) - //로직 작성 return binding.root } -} \ No newline at end of file + +} + diff --git a/app/src/main/java/com/umc/project/mbtree/view/Login/AfterLoginActivity.kt b/app/src/main/java/com/umc/project/mbtree/view/Login/AfterLoginActivity.kt new file mode 100644 index 0000000..66f86a6 --- /dev/null +++ b/app/src/main/java/com/umc/project/mbtree/view/Login/AfterLoginActivity.kt @@ -0,0 +1,106 @@ +package com.umc.project.mbtree.view.Login + +import android.content.Intent +import android.content.Intent.FLAG_ACTIVITY_CLEAR_TOP +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import android.util.Log +import android.widget.Button +import android.widget.ImageView +import android.widget.TextView +import android.widget.Toast +import com.bumptech.glide.Glide +import com.kakao.sdk.talk.TalkApiClient +import com.kakao.sdk.user.UserApiClient +import com.umc.project.mbtree.R +import com.umc.project.mbtree.databinding.ActivityAfterLoginBinding +import com.umc.project.mbtree.view.MainActivity + +class AfterLoginActivity : AppCompatActivity() { + + lateinit var binding: ActivityAfterLoginBinding +// private var kakaoFriendsDatas = ArrayList() + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + binding = ActivityAfterLoginBinding.inflate(layoutInflater) + setContentView(binding.root) + + + // ** 카카오톡 닉네임, 유저 프로필 사진 가져오기 + val profileNickname = findViewById(R.id.kakao_me_profile_nickname_tv) // 닉네임 + val profileImage = findViewById(R.id.kakao_me_profile_image_iv) // 프로필 이미지뷰 + + UserApiClient.instance.me { user, error -> + profileNickname.text = "닉네임: ${user?.kakaoAccount?.profile?.nickname}" + + // 유저 프로필 사진 url 받아오기 + val profileImageUrl = user?.kakaoAccount?.profile?.thumbnailImageUrl + + Glide.with(this) + .load(profileImageUrl) // 불러올 이미지 url + .fallback(R.drawable.ic_my) // 로드할 url 이 비어있을(null 등) 경우 표시할 이미지 + .into(profileImage) // 이미지를 넣을 뷰 + } + + + // ** 카카오톡 친구 목록 가져오기 (기본) + +// // 데이터 test +// kakaoFriendsDatas.apply{ +// add(kakaoFriends()) +// } + +// val FriendsAdapter = KaKaoFriendsRVAdapter(this) +// binding.kakaoFriendsRv.adapter = FriendsAdapter + + val kakao_friends_button = findViewById