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

Release/release 1.2.0 #28

Merged
merged 49 commits into from
Aug 19, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
ec4dfee
moneymong-485 fix: Custom Popup 으로 기존 이슈(흰색줄) 대응
jhg3410 Aug 4, 2024
a9aa873
Merge pull request #17 from MONEYMONG/feature/moneymong-485-온보딩-흰색줄
jhg3410 Aug 5, 2024
9c5dfb9
Merge pull request #20 from MONEYMONG/feature/moneymong-500-ci-cd-구축
Heonbyeong Aug 7, 2024
5e6194b
feat: gradle
Heonbyeong Aug 7, 2024
1f7f861
feat: event tracker 개발
Heonbyeong Aug 7, 2024
e9a5b95
Feat.소속 삭제 기능 구현
eunseo0105 Aug 7, 2024
fd0c446
Fix: Agency.kt 임시 파일
eunseo0105 Aug 7, 2024
006dad2
feat: event tracking
Heonbyeong Aug 7, 2024
417eb41
Fix: 희직님 리뷰 반영
eunseo0105 Aug 10, 2024
a6e5d48
MONEYMONG-494 feat: selection disabled 타입 추가
jhg3410 Jul 25, 2024
5d4977f
MONEYMONG-494 feat: 소속 타입에 '기타 모임' 추가
jhg3410 Jul 25, 2024
79ef661
MONEYMONG-494 feat: 대학 정보 유무를 소속 찾기 -> 소속 등록으로 전달
jhg3410 Jul 25, 2024
627ce92
MONEYMONG-494 feat: 대학 정보 유무에 따른 등록 가능한 소속 제한 기능 적용
jhg3410 Jul 26, 2024
f0035df
MONEYMONG-494 feat: 내 대학 정보 가져오기 api 통신 구현 및 University 관련 UseCase 분리
jhg3410 Jul 29, 2024
c1e21fd
MONEYMONG-494 feat: 소속 검색 화면에서 대학 정보 유무 판단
jhg3410 Jul 29, 2024
b06e28e
MONEYMONG-494 fix: 소속 검색 화면, 대학 정보 유무 판단 기준 null 로 수정
jhg3410 Jul 31, 2024
4468018
MONEYMONG-494 feat: 불필요한 todo 제거
jhg3410 Jul 31, 2024
2d0abbc
Merge pull request #23 from MONEYMONG/epic/moneymong-124-소속
jhg3410 Aug 11, 2024
b18dca3
MONEYMONG-495 feat: 마이몽 학교 정보가 없을 시, 정보 없음 표시
jhg3410 Jul 31, 2024
e0442bb
MONEYMONG-495 feat: 마이몽 학교 정보 중앙 정렬
jhg3410 Jul 31, 2024
4c874f0
MONEYMONG-495 feat: 마이몽 스크롤 가능성 부여 및 이름에 "님" suffix 추가
jhg3410 Jul 31, 2024
a2cc4c2
Merge pull request #24 from MONEYMONG/epic/moneymong-72-마이몽
jhg3410 Aug 11, 2024
699f499
Merge pull request #21 from MONEYMONG/feature/moneymong-496-소속-삭제
eunseo0105 Aug 12, 2024
1d73189
Merge branch 'develop' into epic/moneymong-123-장부
eunseo0105 Aug 12, 2024
f6b0536
Merge pull request #26 from MONEYMONG/epic/moneymong-123-장부
eunseo0105 Aug 12, 2024
95fd141
moneymong-323 feat: data layer 에 카카오 로그인 관련 로직 제거 및 PostAccessTokenUs…
jhg3410 Jul 10, 2024
4f077a9
moneymong-323 feat: 카카오 로그인 관련 로직 구현
jhg3410 Jul 10, 2024
1aad1eb
moneymong-323 feat: 카카오 로그인 로직 view 와 연결
jhg3410 Jul 10, 2024
06c7c45
moneymong-323 refactor: LoginRemoteDataSource 내부 로직 분리
jhg3410 Jul 11, 2024
8433e16
moneymong-323 refactor: 불필요한 코드 삭제 및 패키지 네이밍 변경
jhg3410 Jul 13, 2024
6ab28c8
moneymong-323 chore: kakao sdk module version up (2.5.0 -> 2.20.3)
jhg3410 Jul 13, 2024
f6f0693
Feat: 대학 정보 없음 api 연동
eunseo0105 Aug 4, 2024
31cb5cf
Feat: 대학 정보 없을 시에도 schoolInfoExist true로 설정
eunseo0105 Aug 5, 2024
4ce70d6
Fix: schoolInfoExist -> schoolInProvied 네이밍 변경
eunseo0105 Aug 7, 2024
ef0d0f5
Fix: 희직님 리뷰 반영
eunseo0105 Aug 11, 2024
d1d1457
Merge branch 'develop' into epic/moneymong-122-로그인-회원가입
eunseo0105 Aug 12, 2024
77c202e
Merge pull request #25 from MONEYMONG/epic/moneymong-122-로그인-회원가입
eunseo0105 Aug 12, 2024
e501666
INCREMENT VERSION CODE
Heonbyeong Aug 12, 2024
64b3ba3
INCREMENT VERSION CODE
Heonbyeong Aug 12, 2024
12aa7e9
INCREMENT VERSION CODE
Heonbyeong Aug 12, 2024
2844322
INCREMENT VERSION CODE
Heonbyeong Aug 12, 2024
bd2e247
chore: version code reset
Heonbyeong Aug 12, 2024
5820ba8
Merge pull request #27 from MONEYMONG/feature/moneymong-501-ga-트래킹
Heonbyeong Aug 12, 2024
7bd6477
fix: onclickItem 추가 (누락)
eunseo0105 Aug 13, 2024
e8f5e19
chore: version up
Heonbyeong Aug 13, 2024
745634a
INCREMENT VERSION CODE
Aug 13, 2024
ad204a3
Update Fastfile
Heonbyeong Aug 18, 2024
b58912b
fix: 회원가입 화면 text 수정
eunseo0105 Aug 19, 2024
84ad945
INCREMENT VERSION CODE
Aug 19, 2024
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
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,6 @@ keystore.properties

# Keystore Files
*.jks
*.keystore
*.keystore

*.json
4 changes: 2 additions & 2 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@ android {
applicationId = "com.moneymong.moneymong"
minSdk = 24
targetSdk = 34
versionCode = 13
versionName = "1.1.0"
versionCode = 15
versionName = "1.2.0"

testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables {
Expand Down
6 changes: 6 additions & 0 deletions app/src/main/java/com/moneymong/moneymong/MainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import androidx.compose.runtime.Composable
import androidx.compose.runtime.MutableState
import androidx.compose.runtime.mutableStateOf
import androidx.compose.ui.Modifier
import com.moneymong.moneymong.common.event.EventTracker
import dagger.hilt.android.AndroidEntryPoint
import com.moneymong.moneymong.design_system.theme.MMTheme
import com.moneymong.moneymong.domain.repository.TokenRepository
Expand All @@ -32,8 +33,13 @@ class MainActivity : ComponentActivity() {
lateinit var tokenRepository: TokenRepository
private val expired = mutableStateOf(false)

@Inject
lateinit var eventTracker: EventTracker

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
eventTracker.initialize()

setContent {
MMTheme {
MoneyMongApp(expired.value) {
Expand Down
5 changes: 5 additions & 0 deletions core/common/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
plugins {
alias(libs.plugins.moneymong.android.library)
alias(libs.plugins.moneymong.android.library.compose)
alias(libs.plugins.moneymong.android.hilt)
}

android {
Expand All @@ -20,6 +21,10 @@ dependencies {
implementation(libs.orbit.viewModel)
implementation(libs.okhttp)

implementation(platform(libs.firebase.bom))
implementation(libs.firebase.analytics)
implementation(libs.firebase.crashlytics)

testImplementation(libs.junit4)
androidTestImplementation(libs.androidx.junit)
androidTestImplementation(libs.androidx.test.espresso.core)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package com.moneymong.moneymong.common.di

import com.moneymong.moneymong.common.event.EventTracker
import dagger.Module
import dagger.Provides
import dagger.hilt.InstallIn
import dagger.hilt.components.SingletonComponent
import javax.inject.Singleton

@Module
@InstallIn(SingletonComponent::class)
object EventModule {

@Provides
@Singleton
fun provideEventTracker(): EventTracker =
EventTracker()
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
package com.moneymong.moneymong.common.event

enum class Event(val eventName: String, val desc: String) {
OPERATION_COST_CLICK(
eventName = "operation_cost_click",
desc = "운영비 등록하기 버튼 클릭"
),
LEDGER_CLICK(
eventName = "ledger_click",
desc = "소속 장부 확인 버튼 클릭"
),
OCR_REGISTER_CLICK(
eventName = "ocr_register_click",
desc = "등록하기 버튼 클릭"
),
OCR_MODIFY_CLICK(
eventName = "ocr_modify_click",
desc = "수정하기 버튼 클릭"
),
OCR_MODIFY_TO_REGISTER_CLICK(
eventName = "ocr_modify_to_register_click",
desc = "등록하기 버튼 클릭"
),
PLUS_CLICK(
eventName = "plus_click",
desc = "+ 플로팅 버튼 클릭"
),
HAND_CLICK(
eventName = "hand_click",
desc = "수동 등록 플로팅 버튼 클릭"
),
OCR_CLICK(
eventName = "ocr_click",
desc = "OCR 등록 플로팅 버튼 클릭"
)
;

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package com.moneymong.moneymong.common.event

import android.os.Bundle
import com.google.firebase.Firebase
import com.google.firebase.analytics.FirebaseAnalytics
import com.google.firebase.analytics.analytics
import javax.inject.Inject

class EventTracker @Inject constructor() {

private lateinit var firebaseAnalytics: FirebaseAnalytics
private var initialized: Boolean = false

fun initialize() {
firebaseAnalytics = Firebase.analytics
initialized = true
}

fun logEvent(event: Event, param: Bundle? = null) {
check(initialized) { "logEvent를 호출하기 전 초기화가 필요합니다." }

firebaseAnalytics.logEvent(event.eventName, param)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,40 +6,43 @@ import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableIntStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import com.moneymong.moneymong.design_system.theme.Body3
import com.moneymong.moneymong.design_system.theme.Gray03

@Composable
fun MDSSelection(
modifier: Modifier = Modifier,
text: String,
isSelected: Boolean,
enabled: Boolean = true,
isSelected: Boolean = false,
type: MDSSelectionType = MDSSelectionType.PRIMARY,
onClick: () -> Unit
onClick: () -> Unit = {}
) {

val backgroundColor =
if (isSelected) type.backgroundColor else unSelectedBackgroundColor
val contentColor =
if (isSelected) type.contentColor else unSelectedContentColor
val borderColor =
if (isSelected) type.backgroundColor else Gray03
val backgroundColor = selectionBackgroundColor(enabled, isSelected, type)
val contentColor = selectionContentColor(enabled, isSelected, type)
val borderColor = selectionBorderColor(enabled, isSelected, type)

Box(
modifier = modifier
.clip(RoundedCornerShape(8.dp))
.background(color = backgroundColor)
.clickable { onClick() }
.clickable(enabled = enabled) { onClick() }
.border(
width = 1.dp,
color = borderColor,
Expand All @@ -59,28 +62,35 @@ fun MDSSelection(
@Preview(showBackground = true)
@Composable
private fun MDSSelectionPreview() {
Row(
modifier = Modifier.fillMaxWidth(),
horizontalArrangement = Arrangement.spacedBy(10.dp)
var selectedType by remember { mutableIntStateOf(1) }

Box(
modifier = Modifier
.fillMaxSize()
.background(Color.White)
) {
MDSSelection(
modifier = Modifier.weight(1f),
text = "동아리",
isSelected = true,
onClick = {}
)
MDSSelection(
modifier = Modifier.weight(1f),
text = "나는 Secondary",
isSelected = true,
type = MDSSelectionType.SECONDARY,
onClick = {}
)
MDSSelection(
modifier = Modifier.weight(1f),
text = "학생회",
isSelected = false,
onClick = {}
)
Row(
modifier = Modifier.fillMaxWidth(),
horizontalArrangement = Arrangement.spacedBy(10.dp)
) {
MDSSelection(
modifier = Modifier.weight(1f),
text = "동아리",
isSelected = selectedType == 1,
onClick = { selectedType = 1 }
)
MDSSelection(
modifier = Modifier.weight(1f),
text = "나는 Secondary",
isSelected = selectedType == 2,
type = MDSSelectionType.SECONDARY,
onClick = { selectedType = 2 }
)
MDSSelection(
modifier = Modifier.weight(1f),
text = "나는 disabled",
enabled = false,
)
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
package com.moneymong.moneymong.design_system.component.selection

import androidx.compose.ui.graphics.Color
import com.moneymong.moneymong.design_system.theme.Blue01
import com.moneymong.moneymong.design_system.theme.Blue04
import com.moneymong.moneymong.design_system.theme.Gray03
import com.moneymong.moneymong.design_system.theme.Gray04
import com.moneymong.moneymong.design_system.theme.Gray05
import com.moneymong.moneymong.design_system.theme.White


enum class MDSSelectionType(
val backgroundColor: Color,
val contentColor: Color
) {
PRIMARY(
backgroundColor = Blue04,
contentColor = White
),
SECONDARY(
backgroundColor = Blue01,
contentColor = Blue04
)
}

internal val unSelectedBackgroundColor = White
internal val unSelectedContentColor = Gray05

internal val disabledBackgroundColor = Gray03
internal val disabledContentColor = Gray04

internal val selectionBackgroundColor: (
enabled: Boolean,
isSelected: Boolean,
type: MDSSelectionType
) -> Color = { enabled, isSelected, type ->
when {
enabled.not() -> disabledBackgroundColor
isSelected.not() -> unSelectedBackgroundColor
else -> type.backgroundColor
}
}

internal val selectionContentColor: (
enabled: Boolean,
isSelected: Boolean,
type: MDSSelectionType
) -> Color = { enabled, isSelected, type ->
when {
enabled.not() -> disabledContentColor
isSelected.not() -> unSelectedContentColor
else -> type.contentColor
}
}

internal val selectionBorderColor: (
enabled: Boolean,
isSelected: Boolean,
type: MDSSelectionType
) -> Color = { enabled, isSelected, type ->
when {
enabled.not() -> disabledBackgroundColor
isSelected.not() -> Gray03
else -> type.backgroundColor
}
}

This file was deleted.

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package com.moneymong.moneymong.model.sign

enum class LoginType {
KAKAO
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,7 @@ package com.moneymong.moneymong.model.sign

data class TokenRequest (
val provider : String,
val accessToken : String
val accessToken : String,
val name: String,
val code: String
)
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,6 @@ data class TokenResponse(
val accessToken : String,
val refreshToken : String,
val loginSuccess : Boolean,
val schoolInfoExist : Boolean
val schoolInfoExist : Boolean,
val schoolInfoProvided: Boolean
)
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.moneymong.moneymong.model.sign

data class UnivRequest(
val universityName: String,
val grade: Int
val universityName: String?,
val grade: Int?
)
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.moneymong.moneymong.model.sign

data class UnivResponse(
val universityName: String,
val universityName: String?,
val grade: Int
)
Loading
Loading