diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
new file mode 100644
index 000000000..c936e28d3
--- /dev/null
+++ b/.github/CODEOWNERS
@@ -0,0 +1 @@
+*.* @Team-return/jobis-android
diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index 3ae1eed54..c56589b3b 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -26,7 +26,16 @@ android {
buildTypes {
release {
- isMinifyEnabled = false
+ isMinifyEnabled = true
+ isShrinkResources = true
+ proguardFiles(
+ getDefaultProguardFile("proguard-android-optimize.txt"),
+ "proguard-rules.pro",
+ )
+ }
+ debug {
+ isMinifyEnabled = true
+ isShrinkResources = true
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro",
diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro
new file mode 100644
index 000000000..d27b9d618
--- /dev/null
+++ b/app/proguard-rules.pro
@@ -0,0 +1,97 @@
+# Add project specific ProGuard rules here.
+# You can control the set of applied configuration files using the
+# proguardFiles setting in build.gradle.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
+
+# Uncomment this to preserve the line number information for
+# debugging stack traces.
+#-keepattributes SourceFile,LineNumberTable
+
+# If you keep the line number information, uncomment this to
+# hide the original source file name.
+#-renamesourcefileattribute SourceFile
+
+# Add *one* of the following rules to your Proguard configuration file.
+# Alternatively, you can annotate classes and class members with @androidx.annotation.Keep
+
+# Add *one* of the following rules to your Proguard configuration file.
+# Alternatively, you can annotate classes and class members with @androidx.annotation.Keep
+
+# keep everything in this package from being removed or renamed
+-keep class team.** { *; }
+
+# keep everything in this package from being renamed only
+-keepnames class team.** { *; }
+# Add *one* of the following rules to your Proguard configuration file.
+# Alternatively, you can annotate classes and class members with @androidx.annotation.Keep
+
+# keep everything in this package from being removed or renamed
+-keep class okhttp3.** { *; }
+
+# keep everything in this package from being renamed only
+-keepnames class okhttp3.** { *; }
+# Add *one* of the following rules to your Proguard configuration file.
+# Alternatively, you can annotate classes and class members with @androidx.annotation.Keep
+
+# keep everything in this package from being removed or renamed
+-keep class kotlin.** { *; }
+
+# keep everything in this package from being renamed only
+-keepnames class kotlin.** { *; }
+# Add *one* of the following rules to your Proguard configuration file.
+# Alternatively, you can annotate classes and class members with @androidx.annotation.Keep
+
+# keep everything in this package from being removed or renamed
+-keep class okio.** { *; }
+
+# keep everything in this package from being renamed only
+-keepnames class okio.** { *; }
+# Add *one* of the following rules to your Proguard configuration file.
+# Alternatively, you can annotate classes and class members with @androidx.annotation.Keep
+
+# keep everything in this package from being removed or renamed
+-keep class java.** { *; }
+
+# keep everything in this package from being renamed only
+-keepnames class java.** { *; }
+# Add *one* of the following rules to your Proguard configuration file.
+# Alternatively, you can annotate classes and class members with @androidx.annotation.Keep
+
+# keep everything in this package from being removed or renamed
+-keep class retrofit2.** { *; }
+
+# keep everything in this package from being renamed only
+-keepnames class retrofit2.** { *; }
+# Add *one* of the following rules to your Proguard configuration file.
+# Alternatively, you can annotate classes and class members with @androidx.annotation.Keep
+
+# keep everything in this package from being removed or renamed
+-keep class org.** { *; }
+
+# keep everything in this package from being renamed only
+-keepnames class org.** { *; }
+# Add *one* of the following rules to your Proguard configuration file.
+# Alternatively, you can annotate classes and class members with @androidx.annotation.Keep
+
+# keep everything in this package from being removed or renamed
+-keep class javax.** { *; }
+
+# keep everything in this package from being renamed only
+-keepnames class javax.** { *; }
+# Add *one* of the following rules to your Proguard configuration file.
+# Alternatively, you can annotate classes and class members with @androidx.annotation.Keep
+
+# keep everything in this package from being removed or renamed
+-keep class _COROUTINE.** { *; }
+
+# keep everything in this package from being renamed only
+-keepnames class _COROUTINE.** { *; }
\ No newline at end of file
diff --git a/buildSrc/src/main/kotlin/ProjectProperties.kt b/buildSrc/src/main/kotlin/ProjectProperties.kt
index 96b3c58c1..c0951bf1c 100644
--- a/buildSrc/src/main/kotlin/ProjectProperties.kt
+++ b/buildSrc/src/main/kotlin/ProjectProperties.kt
@@ -2,8 +2,8 @@ object ProjectProperties {
const val COMPILE_SDK = 34
const val MIN_SDK = 28
const val TARGET_SDK = 34
- const val VERSION_CODE = 8
- const val VERSION_NAME = "2.0.6"
+ const val VERSION_CODE = 9
+ const val VERSION_NAME = "2.0.7"
const val COMPOSE_COMPILER_EXTENSION = "1.5.6"
const val JVM_TARGET = "18"
}
diff --git a/feature/change-password/src/main/res/values/strings.xml b/feature/change-password/src/main/res/values/strings.xml
index 98b2583eb..9b2efc8e4 100644
--- a/feature/change-password/src/main/res/values/strings.xml
+++ b/feature/change-password/src/main/res/values/strings.xml
@@ -4,7 +4,6 @@
새로 사용할\n비밀번호를 입력해주세요
비밀번호
계정의 비밀번호를 설정해주세요
- 8 ~ 16자, 영문자, 숫자, 특수문자 포함
비밀번호 확인
위 비밀번호를 한 번 더 입력해주세요
완료
diff --git a/feature/home/src/main/res/values/strings.xml b/feature/home/src/main/res/values/strings.xml
index 529ae2f09..757d3daee 100644
--- a/feature/home/src/main/res/values/strings.xml
+++ b/feature/home/src/main/res/values/strings.xml
@@ -1,9 +1,7 @@
%s기 대마고\n학생들의 취업
- 현재 %s명이 취업했어용
- 다른 기업들\n탐색하기
체험형 \n현장실습
다른 기업들은 어떨까?\n다른 기업들 둘러 보러 가기
@@ -13,7 +11,6 @@
승인요청 및 반려 상태엔 재지원 가능
현재 지원한 기업이 없어요
- 사유 보기
반려 사유
재지원 하기
diff --git a/feature/mypage/src/main/res/values/strings.xml b/feature/mypage/src/main/res/values/strings.xml
index 0b30efb42..9ddb40fd7 100644
--- a/feature/mypage/src/main/res/values/strings.xml
+++ b/feature/mypage/src/main/res/values/strings.xml
@@ -11,7 +11,6 @@
회원 탈퇴
버그 제보
버그 제보하기
- 버그 제보함
면접 후기를 적어주세요!
작성하러 가기 →
JOBIS에서 로그아웃 하시겠어요?
diff --git a/feature/recruitment/src/main/java/team/retum/jobis/recruitment/ui/RecruitmentDetailsScreen.kt b/feature/recruitment/src/main/java/team/retum/jobis/recruitment/ui/RecruitmentDetailsScreen.kt
index 4c0407466..88b7c7ec7 100644
--- a/feature/recruitment/src/main/java/team/retum/jobis/recruitment/ui/RecruitmentDetailsScreen.kt
+++ b/feature/recruitment/src/main/java/team/retum/jobis/recruitment/ui/RecruitmentDetailsScreen.kt
@@ -427,7 +427,7 @@ private fun BottomBar(
id = if (isApplicable) {
R.string.apply
} else {
- R.string.can_do_apply_third
+ R.string.can_do_not_apply
},
),
style = JobisTypography.SubHeadLine,
@@ -457,7 +457,11 @@ private fun BottomBar(
},
),
contentDescription = "bookmark",
- tint = JobisTheme.colors.onPrimary,
+ tint = if (isBookmark) {
+ JobisTheme.colors.onPrimary
+ } else {
+ JobisTheme.colors.onSurfaceVariant
+ },
)
}
}
diff --git a/feature/recruitment/src/main/java/team/retum/jobis/recruitment/ui/component/RecruitmentItems.kt b/feature/recruitment/src/main/java/team/retum/jobis/recruitment/ui/component/RecruitmentItems.kt
index 171e25ede..af1835662 100644
--- a/feature/recruitment/src/main/java/team/retum/jobis/recruitment/ui/component/RecruitmentItems.kt
+++ b/feature/recruitment/src/main/java/team/retum/jobis/recruitment/ui/component/RecruitmentItems.kt
@@ -1,6 +1,5 @@
package team.retum.jobis.recruitment.ui.component
-import androidx.annotation.DrawableRes
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
@@ -48,11 +47,7 @@ internal fun RecruitmentItems(
RecruitmentItem(
recruitment = recruitment,
onClick = onRecruitmentClick,
- bookmarkIcon = if (bookmarked) {
- JobisIcon.BookmarkOn
- } else {
- JobisIcon.BookmarkOff
- },
+ bookmarked = bookmarked,
onBookmarked = {
onBookmarkClick(it)
bookmarked = !bookmarked
@@ -69,7 +64,7 @@ internal fun RecruitmentItems(
private fun RecruitmentItem(
recruitment: RecruitmentsEntity.RecruitmentEntity,
onClick: (recruitId: Long) -> Unit,
- @DrawableRes bookmarkIcon: Int,
+ bookmarked: Boolean,
onBookmarked: (recruitId: Long) -> Unit,
) {
val whetherMilitarySupported = when (recruitment.militarySupport) {
@@ -149,10 +144,20 @@ private fun RecruitmentItem(
Spacer(modifier = Modifier.width(4.dp))
JobisIconButton(
modifier = Modifier.padding(4.dp),
- painter = painterResource(id = bookmarkIcon),
+ painter = painterResource(
+ id = if (bookmarked) {
+ JobisIcon.BookmarkOn
+ } else {
+ JobisIcon.BookmarkOff
+ },
+ ),
contentDescription = "bookmark",
onClick = { onBookmarked(recruitment.id) },
- tint = JobisTheme.colors.onPrimary,
+ tint = if (bookmarked) {
+ JobisTheme.colors.onPrimary
+ } else {
+ JobisTheme.colors.onSurfaceVariant
+ },
)
}
}
diff --git a/feature/recruitment/src/main/res/drawable/ic_arrow_up.xml b/feature/recruitment/src/main/res/drawable/ic_arrow_up.xml
deleted file mode 100644
index 51cfebe25..000000000
--- a/feature/recruitment/src/main/res/drawable/ic_arrow_up.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
diff --git a/feature/recruitment/src/main/res/values/strings.xml b/feature/recruitment/src/main/res/values/strings.xml
index e8cdb2de1..6bbfaf80b 100644
--- a/feature/recruitment/src/main/res/values/strings.xml
+++ b/feature/recruitment/src/main/res/values/strings.xml
@@ -4,7 +4,6 @@
병역특례 O
병역특례 X
- 실습 수당
검색어와 관련된 모집의뢰서를 못 찾았어요
제대로 입력했는지 다시 한 번 확인해주세요
@@ -20,12 +19,11 @@
채용절차
필수 성적
근무시간
- 정규직 전환 시
복리후생
제출 서류
기타 사항
지원하기
- 3학년만 지원할 수 있어요
+ 지원할 수 없어요
주요 업무
오류가 발생했습니다
diff --git a/feature/signup/src/main/java/team/retum/signup/ui/InputEmailScreen.kt b/feature/signup/src/main/java/team/retum/signup/ui/InputEmailScreen.kt
index be87e80b8..f5cf3acbe 100644
--- a/feature/signup/src/main/java/team/retum/signup/ui/InputEmailScreen.kt
+++ b/feature/signup/src/main/java/team/retum/signup/ui/InputEmailScreen.kt
@@ -104,6 +104,7 @@ private fun InputEmailScreen(
showAuthenticationCodeDescription = { state.showAuthenticationCodeDescription },
sendAuthenticationCode = { state.sendAuthenticationCode },
remainTime = state.remainTime,
+ isResend = { state.isResend },
)
Spacer(modifier = Modifier.weight(1f))
JobisButton(
@@ -127,6 +128,7 @@ private fun EmailInputs(
showAuthenticationCodeDescription: () -> Boolean,
sendAuthenticationCode: () -> Boolean,
remainTime: String,
+ isResend: () -> Boolean,
) {
JobisTextField(
title = stringResource(id = R.string.email),
@@ -134,7 +136,13 @@ private fun EmailInputs(
hint = stringResource(id = R.string.hint_email),
onValueChange = onEmailChange,
showEmailHint = true,
- checkDescription = stringResource(id = R.string.description_email_sent),
+ checkDescription = stringResource(
+ id = if (isResend()) {
+ R.string.description_email_re_send
+ } else {
+ R.string.description_email_sent
+ },
+ ),
errorDescription = stringResource(id = R.string.description_conflict_email),
showDescription = showEmailDescription,
descriptionType = emailDescriptionType,
@@ -150,6 +158,7 @@ private fun EmailInputs(
color = ButtonColor.Secondary,
onClick = onAuthenticationClick,
keyboardInteractionEnabled = false,
+ enabled = email().isNotEmpty(),
)
}
JobisTextField(
diff --git a/feature/signup/src/main/java/team/retum/signup/viewmodel/InputEmailViewModel.kt b/feature/signup/src/main/java/team/retum/signup/viewmodel/InputEmailViewModel.kt
index 09b0cf4c1..73547f19a 100644
--- a/feature/signup/src/main/java/team/retum/signup/viewmodel/InputEmailViewModel.kt
+++ b/feature/signup/src/main/java/team/retum/signup/viewmodel/InputEmailViewModel.kt
@@ -25,6 +25,7 @@ internal class InputEmailViewModel @Inject constructor(
) : BaseViewModel(InputEmailState.getDefaultState()) {
private val timerUtil: TimerUtil = TimerUtil()
+ private var authenticationClickCount: Int = 0
internal fun onNextClick() {
setState { state.value.copy(buttonEnabled = false) }
@@ -82,6 +83,10 @@ internal class InputEmailViewModel @Inject constructor(
showEmailDescription = true,
)
}
+ if (authenticationClickCount > 0) {
+ setState { state.value.copy(isResend = true) }
+ }
+ authenticationClickCount++
}.onFailure {
when (it) {
is BadRequestException -> {
@@ -134,6 +139,7 @@ internal data class InputEmailState(
val buttonEnabled: Boolean,
val sendAuthenticationCode: Boolean,
val remainTime: String,
+ val isResend: Boolean,
) {
companion object {
fun getDefaultState() = InputEmailState(
@@ -145,6 +151,7 @@ internal data class InputEmailState(
buttonEnabled = false,
sendAuthenticationCode = false,
remainTime = "5:00",
+ isResend = false,
)
}
}
diff --git a/feature/signup/src/main/res/values/strings.xml b/feature/signup/src/main/res/values/strings.xml
index 2757eefd5..88e6cd35b 100644
--- a/feature/signup/src/main/res/values/strings.xml
+++ b/feature/signup/src/main/res/values/strings.xml
@@ -18,12 +18,13 @@
인증코드
인증 하기
- 재전송
+ 재발송
example
이메일로 온 코드를 입력해주세요
인증 메일이 발송되었어요
+ 인증 메일이 재발송되었어요
이미 가입 된 이메일이에요
이메일 형식을 확인해주세요
diff --git a/feature/verify-email/src/main/res/values/strings.xml b/feature/verify-email/src/main/res/values/strings.xml
index d780802bd..f9ed15431 100644
--- a/feature/verify-email/src/main/res/values/strings.xml
+++ b/feature/verify-email/src/main/res/values/strings.xml
@@ -2,7 +2,6 @@
비밀번호 변경을 위해\n이메일을 인증해주세요
이메일
- 인증 하기
인증 코드
example
이메일로 온 코드를 입력해주세요