Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[feat/api_friend] : 마이탭 마시멜로 api 연결 및 분기처리 #19

Merged
merged 22 commits into from
May 15, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
19243d4
feat : 친구 목록 api 연결
SsongSik Feb 14, 2023
5f007ef
Merge remote-tracking branch 'origin/develop' into feat/api/friend
SsongSik Feb 14, 2023
17e119b
test
SsongSik Feb 14, 2023
5d0dcbe
friend api
SsongSik Feb 14, 2023
e22b243
fix : RecyclerView bug 수정
hanseul-Choi Feb 14, 2023
39f4aa7
Merge remote-tracking branch 'origin/feat/api/friend' into feat/api/f…
hanseul-Choi Feb 14, 2023
1c5fb9b
feat : bindingAdapter Image Url add
SsongSik Feb 16, 2023
3e235a4
feat : 바인딩 어댑터 글라이드 추가
SsongSik Feb 18, 2023
60c7d31
Merge remote-tracking branch 'origin/develop' into feat/api/friend
SsongSik Feb 18, 2023
f1f2eb9
feat : 친구 기록 조회 추가
SsongSik Feb 18, 2023
a6aaf52
feat : 마이탭 마시멜로우 연결
SsongSik Feb 18, 2023
10cbdd9
feat : 마이탭 마시멜로우 추가
SsongSik Feb 18, 2023
89d008b
feat : 마이탭에서 친구 삭제
SsongSik Feb 19, 2023
d4ac227
feat : 탈퇴하기 뷰 추가
SsongSik Feb 19, 2023
87c3c50
refact : kts로 마이그레이션 작업 진행
choilotte Mar 17, 2023
79bde8f
[feat] : MySettingFragment 작업
SsongSik Mar 19, 2023
366d4c6
[feat] : 마이탭 마시멜로연결
SsongSik Mar 19, 2023
27c2b53
Merge remote-tracking branch 'origin/refact/selfQA' into feat/api/friend
SsongSik May 14, 2023
9c4a0a8
[feat/api_friend] : #16 마이탭 마시멜로우 분기처리
SsongSik May 14, 2023
4aca2df
[feat] : #16 마시멜로 레벨, 카테고리 분기처리
SsongSik May 15, 2023
c6b1f0c
[feat] : #16 마시멜로 itemDecoration 추가
SsongSik May 15, 2023
3a409c8
[fix] : #16 dpToPx Util화(PR반영)
SsongSik May 15, 2023
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
110 changes: 0 additions & 110 deletions app/build.gradle

This file was deleted.

116 changes: 116 additions & 0 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
plugins {
id("com.android.application")
id("org.jetbrains.kotlin.android")
id("kotlin-parcelize")
id("androidx.navigation.safeargs.kotlin")
id("dagger.hilt.android.plugin")
id("kotlin-kapt")
}

android {
compileSdk = 33

defaultConfig {
applicationId = "com.teampome.pome"
minSdk = 23
targetSdk = 33
versionCode = 1
versionName = "1.0"

multiDexEnabled = true
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}

buildTypes {
debug {
isMinifyEnabled = false
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
buildConfigField("String", "BASE_URL", "\"http://13.125.237.136:8085/\"")
buildConfigField("String", "IMAGE_BASE_URL", "\"http://image-main-server.ap-northeast-2.elasticbeanstalk.com/\"")
}
release {
isMinifyEnabled = false
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
buildConfigField("String", "BASE_URL", "\"http://52.79.89.129/\"")
buildConfigField("String", "IMAGE_BASE_URL", "\"http://image-main-server.ap-northeast-2.elasticbeanstalk.com/\"")
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
kotlinOptions {
jvmTarget = "1.8"
}
dataBinding {
enable = true
}
}

dependencies {
implementation("androidx.core:core-ktx:1.9.0")
implementation("androidx.appcompat:appcompat:1.5.1")
implementation("com.google.android.material:material:1.7.0")
implementation("androidx.constraintlayout:constraintlayout:2.1.4")
testImplementation("junit:junit:4.13.2")
androidTestImplementation("androidx.test.ext:junit:1.1.3")
androidTestImplementation("androidx.test.espresso:espresso-core:3.4.0")

// Fragment ViewModel
val fragmentKtxVersion = "1.5.3"
implementation("androidx.fragment:fragment-ktx:$fragmentKtxVersion")

// Retrofit
val retrofitVersion = "2.9.0"
implementation("com.squareup.retrofit2:retrofit:$retrofitVersion")
implementation("com.google.code.gson:gson:$retrofitVersion")
implementation("com.squareup.retrofit2:converter-gson:$retrofitVersion")

val okhttp_version = "4.10.0"
implementation("com.squareup.okhttp3:okhttp:$okhttp_version")
implementation("com.squareup.okhttp3:logging-interceptor:$okhttp_version")

// Glide
val glide_version = "4.13.2"
implementation("com.github.bumptech.glide:glide:$glide_version")
kapt("com.github.bumptech.glide:compiler:$glide_version")
implementation("com.github.bumptech.glide:okhttp3-integration:$glide_version"){
exclude(group = "glide-parent")
}
implementation("com.github.bumptech.glide:annotations:$glide_version")
annotationProcessor("com.github.bumptech.glide:compiler:$glide_version")
implementation("com.caverock:androidsvg-aar:1.4")

// Glide Tranform
implementation("jp.wasabeef:glide-transformations:4.3.0")

// Navigation
val navVersion = "2.5.2"
implementation("androidx.navigation:navigation-fragment-ktx:$navVersion")
implementation("androidx.navigation:navigation-ui-ktx:$navVersion")

// Hilt
val hiltVersion = "2.44"
implementation("com.google.dagger:hilt-android:$hiltVersion")
kapt("com.google.dagger:hilt-android-compiler:$hiltVersion")

val kotlinxMetadataJvmVersion = "0.5.0"
implementation("org.jetbrains.kotlinx:kotlinx-metadata-jvm:$kotlinxMetadataJvmVersion")

// Calendar
implementation("com.github.prolificinteractive:material-calendarview:2.0.1")
implementation("com.jakewharton.threetenabp:threetenabp:1.1.1")

// DataStore
implementation("androidx.datastore:datastore-preferences:1.0.0")

// Paging
val pagingVersion = "3.1.1"
implementation("androidx.paging:paging-runtime:$pagingVersion")
}
2 changes: 1 addition & 1 deletion app/proguard-rules.pro
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
# proguardFiles setting in build.gradle.kts.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
Expand Down
10 changes: 10 additions & 0 deletions app/src/main/java/com/teampome/pome/di/NetworkModule.kt
Original file line number Diff line number Diff line change
Expand Up @@ -207,4 +207,14 @@ object NetworkModule {
.build()
.create(RemindService::class.java)
}

@Singleton
@Provides
fun provideMyTabService(
@AuthRetrofit retrofit: Retrofit.Builder
) : MyTabService {
return retrofit
.build()
.create(MyTabService::class.java)
}
}
15 changes: 15 additions & 0 deletions app/src/main/java/com/teampome/pome/di/RepositoryModule.kt
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@ import com.teampome.pome.repository.goal.GoalRepository
import com.teampome.pome.repository.login.LoginDataSource
import com.teampome.pome.repository.login.LoginRemoteDataSource
import com.teampome.pome.repository.login.LoginRepository
import com.teampome.pome.repository.mypage.MyPageDataSource
import com.teampome.pome.repository.mypage.MyPageRemoteDataSource
import com.teampome.pome.repository.mypage.MyPageRepository
import com.teampome.pome.repository.record.RecordDataSource
import com.teampome.pome.repository.record.RecordRepository
import com.teampome.pome.repository.record.RecordRemoteDataSource
Expand Down Expand Up @@ -124,5 +127,17 @@ object RepositoryModule {
return GoalRepository(dataSource)
}

@Provides
@Singleton
fun provideMyPageSource(service: MyTabService) : MyPageDataSource {
return MyPageRemoteDataSource(service)
}

@Provides
@Singleton
fun provideMyPageRepository(dataSource: MyPageDataSource) : MyPageRepository {
return MyPageRepository(dataSource)
}


}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.teampome.pome.model.mytab

// Marshmello Response
data class MyTabMarshmello(
val marshmelloName : String,
val marshmelloLv : Int
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package com.teampome.pome.model.response

//친구 삭제 Response
data class DeleteFriend(
val data : Boolean
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
package com.teampome.pome.model.response

import android.os.Parcelable
import kotlinx.parcelize.Parcelize

//내 친구 기록 조회
@Parcelize
data class GetFriendRecord(
val id : Int,
val nickname: String,
val usePrice: Int,
val useDate: String,
val useComment: String,
val oneLineMind: String,
val createdAt: String,
val emotionResponse: FriendEmotion
) : Parcelable

@Parcelize
data class FriendEmotion(
val firstEmotion : Int,
val secondEmotion : Int,
val myEmotion : Int,
val friendEmotion : List<Int>
) : Parcelable
hanseul-Choi marked this conversation as resolved.
Show resolved Hide resolved

/*
"id": 3,
"nickname": "찬영짱121",
"usePrice": 2000,
"useDate": "2023.01.26",
"useComment": "앞으로 이렇게만!",
"oneLineMind": "커피는 백다방만",
"createdAt": "2023-01-26T20:11:16",
"emotionResponse": {
"firstEmotion": 1,
"secondEmotion": null,
"myEmotion": null,
"friendEmotions": []
}
*/

/*
"firstEmotion": 1,
"secondEmotion": null,
"myEmotion": null,
"friendEmotions": []
*/
15 changes: 15 additions & 0 deletions app/src/main/java/com/teampome/pome/network/AddFriendsService.kt
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
package com.teampome.pome.network

import com.teampome.pome.model.base.BaseAllData
import com.teampome.pome.model.base.BasePomeResponse
import com.teampome.pome.model.friend.FriendData
import com.teampome.pome.model.response.DeleteFriend
import com.teampome.pome.model.response.GetFriendRecord
import com.teampome.pome.model.response.GetFriends
import retrofit2.Response
import retrofit2.http.DELETE
import retrofit2.http.GET
import retrofit2.http.POST
import retrofit2.http.Path
Expand All @@ -26,4 +30,15 @@ interface AddFriendsService {
@GET("api/v1/users/friends")
suspend fun getFriend()
: Response<BasePomeResponse<List<GetFriends>>>

//친구 기록 조회
@GET("api/v1/records/users/{userId}")
suspend fun getFriendRecord(
@Path("userId") userId: String
) : Response<BasePomeResponse<BaseAllData<GetFriendRecord>>>

@DELETE("api/v1/users/friend/{friendId}")
suspend fun deleteFriend(
@Path("friendId") friendId: String
) : Response<BasePomeResponse<DeleteFriend>>
}
15 changes: 15 additions & 0 deletions app/src/main/java/com/teampome/pome/network/MyTabService.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package com.teampome.pome.network

import com.teampome.pome.model.base.BasePomeResponse
import com.teampome.pome.model.mytab.MyTabMarshmello
import retrofit2.Response
import retrofit2.http.GET

//마이 탭 서비스
interface MyTabService {

//마시멜로우 조합
@GET("api/v1/marshmello/list")
suspend fun getMarshmello()
: Response<BasePomeResponse<List<MyTabMarshmello>>>
}
Loading