diff --git a/app/build.gradle b/app/build.gradle
index e6c2b509..6993bd54 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -97,6 +97,7 @@ dependencies {
// Coroutine
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3'
+ implementation("io.coil-kt:coil:2.0.0-rc03")
// RoomDB
def room_version = '2.5.2'
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 66facdfa..3e861d28 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -3,6 +3,11 @@
xmlns:tools="http://schemas.android.com/tools">
+
+
+
+
"steel" "석유·화학" -> "Petroleum/Chemical" "정유" -> "oilrefining" "2차 전지" -> "secondarybattery"
- "반도체" -> "Semiconductor" "디스플레이" -> "Display" "휴대폰" -> "Mobile" "IT" -> "it"
- "자동차" -> "car" "조선" -> "Shipbuilding" "해운" -> "Shipping" "F&B" -> "FnB"
- "소매유통" -> "RetailDistribution" "건설" -> "Construction" "호텔·여행·항공" -> "HotelTravel" "섬유·의류" -> "FiberClothing"
- else -> ""
- }
- }
}
diff --git a/app/src/main/java/com/example/cherry_pick_android/presentation/ui/jobGroup/JobGroupActivity.kt b/app/src/main/java/com/example/cherry_pick_android/presentation/ui/jobGroup/JobGroupActivity.kt
index b717de7d..4fd80915 100644
--- a/app/src/main/java/com/example/cherry_pick_android/presentation/ui/jobGroup/JobGroupActivity.kt
+++ b/app/src/main/java/com/example/cherry_pick_android/presentation/ui/jobGroup/JobGroupActivity.kt
@@ -18,6 +18,7 @@ import com.example.cherry_pick_android.databinding.ActivityJobGroupBinding
import com.example.cherry_pick_android.presentation.adapter.JobGroupAdapter
import com.example.cherry_pick_android.presentation.ui.home.HomeActivity
import com.example.cherry_pick_android.presentation.ui.jobGroup.JobGroups.jobgroups
+import com.example.cherry_pick_android.presentation.ui.mypage.ProfileActivity
import com.example.cherry_pick_android.presentation.viewmodel.login.LoginViewModel
import dagger.hilt.android.AndroidEntryPoint
import kotlinx.coroutines.Dispatchers
@@ -74,7 +75,6 @@ class JobGroupActivity: AppCompatActivity() {
}
- /* 주요 변경 사항 (밑에 2문단 코드) */
private val onCompleteButtonStateChanged: () -> Unit = {
updateCompleteButtonState() // 완료 버튼 상태 갱신
}
@@ -91,6 +91,17 @@ class JobGroupActivity: AppCompatActivity() {
}
}
+ // 직군을 영문으로 매핑 작업
+ fun mapperToJob(value: String): String{
+ return when(value){
+ "철강" -> "steel" "석유·화학" -> "Petroleum/Chemical" "정유" -> "oilrefining" "2차 전지" -> "secondarybattery"
+ "반도체" -> "Semiconductor" "디스플레이" -> "Display" "휴대폰" -> "Mobile" "IT" -> "it"
+ "자동차" -> "car" "조선" -> "Shipbuilding" "해운" -> "Shipping" "F&B" -> "FnB"
+ "소매유통" -> "RetailDistribution" "건설" -> "Construction" "호텔·여행·항공" -> "HotelTravel" "섬유·의류" -> "FiberClothing"
+ else -> ""
+ }
+ }
+
// 최초사용자의 여부에 따라 화면전환
private fun onCompleteBtn(){
binding.btnJobComplete.setOnClickListener {
@@ -108,9 +119,9 @@ class JobGroupActivity: AppCompatActivity() {
gender = gender,
memberNumber = userId,
name = name,
- industryKeyword1 = selecetedJobList.getOrElse(0){ "" },
- industryKeyword2 = selecetedJobList.getOrElse(1){ "" },
- industryKeyword3 = selecetedJobList.getOrElse(2){" "}
+ industryKeyword1 = mapperToJob(selecetedJobList.getOrElse(0){ "" }),
+ industryKeyword2 = mapperToJob(selecetedJobList.getOrElse(1){ "" }),
+ industryKeyword3 = mapperToJob(selecetedJobList.getOrElse(2){" "})
)
lifecycleScope.launch {
val saveUserResponse = saveUserService.saveUserInform(request)
diff --git a/app/src/main/java/com/example/cherry_pick_android/presentation/ui/login/LoginActivity.kt b/app/src/main/java/com/example/cherry_pick_android/presentation/ui/login/LoginActivity.kt
index aff0680e..afb6960f 100644
--- a/app/src/main/java/com/example/cherry_pick_android/presentation/ui/login/LoginActivity.kt
+++ b/app/src/main/java/com/example/cherry_pick_android/presentation/ui/login/LoginActivity.kt
@@ -81,7 +81,8 @@ class LoginActivity: AppCompatActivity() {
binding.tvExplain.text = textToBold(binding.tvExplain.text.toString(), 7, 17)
binding.tvExplain2.text = textToBold(binding.tvExplain2.text.toString(), 0, 16)
- onClickLogin()
+
+ //onClickLogin()
}
diff --git a/app/src/main/java/com/example/cherry_pick_android/presentation/ui/mypage/MyPageFragment.kt b/app/src/main/java/com/example/cherry_pick_android/presentation/ui/mypage/MyPageFragment.kt
index 29abb1f7..d84daf86 100644
--- a/app/src/main/java/com/example/cherry_pick_android/presentation/ui/mypage/MyPageFragment.kt
+++ b/app/src/main/java/com/example/cherry_pick_android/presentation/ui/mypage/MyPageFragment.kt
@@ -8,6 +8,7 @@ import android.view.View
import android.view.ViewGroup
import com.example.cherry_pick_android.R
import com.example.cherry_pick_android.databinding.FragmentMypageBinding
+import com.example.cherry_pick_android.presentation.ui.newsSearch.NewsSearchActivity
class MyPageFragment : Fragment() {
private var _binding: FragmentMypageBinding? = null
@@ -31,11 +32,18 @@ class MyPageFragment : Fragment() {
private fun setButton() {
binding.apply {
+ // 로그아웃
+ ibtnMypageLogout.setOnClickListener {
+
+ }
// 계정설정 (프로필) 페이지로 이동
- ibtnMypageToProfile.setOnClickListener{
- val intent = Intent(it.context,ProfileActivity::class.java)
- it.context.startActivity(intent)
+ ibtnMypageSetting.setOnClickListener {
+ activity?.let {
+ val intent = Intent(it, ProfileActivity::class.java)
+ it.startActivity(intent)
+ }
}
+
// 스토어 별점 남기기 이동
ibtnMoveToScore.setOnClickListener {
// val intent = Intent(Intent.ACTION_VIEW)
diff --git a/app/src/main/java/com/example/cherry_pick_android/presentation/ui/mypage/ProfileActivity.kt b/app/src/main/java/com/example/cherry_pick_android/presentation/ui/mypage/ProfileActivity.kt
index 84df2c69..c20252dd 100644
--- a/app/src/main/java/com/example/cherry_pick_android/presentation/ui/mypage/ProfileActivity.kt
+++ b/app/src/main/java/com/example/cherry_pick_android/presentation/ui/mypage/ProfileActivity.kt
@@ -1,19 +1,67 @@
package com.example.cherry_pick_android.presentation.ui.mypage
-import android.app.Activity
+import android.content.ContentValues
import android.content.Intent
+import android.content.pm.PackageManager
+import android.net.Uri
import android.os.Bundle
+import android.provider.MediaStore
import android.util.Log
+import android.view.Gravity
+import android.view.Window
+import android.widget.Toast
import androidx.activity.result.contract.ActivityResultContracts
import androidx.appcompat.app.AppCompatActivity
-import androidx.databinding.DataBindingUtil.setContentView
+import androidx.core.content.ContextCompat
+import coil.load
import com.example.cherry_pick_android.R
import com.example.cherry_pick_android.databinding.ActivityProfileBinding
import com.example.cherry_pick_android.presentation.ui.jobGroup.JobGroupActivity
+import com.example.cherry_pick_android.presentation.ui.mypage.dialog.CameraDialog
+import com.example.cherry_pick_android.presentation.ui.mypage.dialog.CameraDialogInterface
+import java.sql.Date
+import java.text.SimpleDateFormat
-class ProfileActivity : AppCompatActivity() {
+
+class ProfileActivity : AppCompatActivity(),CameraDialogInterface {
private lateinit var binding: ActivityProfileBinding
+ companion object {
+ const val REQUEST_CODE_PERMISSIONS = 1001
+ const val ALBUM_OK = 2002
+ const val CAMERA_OK = 2003
+ const val BASIC_OK = 2004
+ const val TAG = "ProfileActivity"
+ }
+
+
+ private fun checkPermission(permissions: Array): Boolean {
+ return permissions.all {
+ ContextCompat.checkSelfPermission(this, it) == PackageManager.PERMISSION_GRANTED
+ }
+ }
+
+ // 이미지 로드
+ private val readImage = registerForActivityResult(
+ ActivityResultContracts.GetContent()) {
+ uri -> binding.ivProfilePic.load(uri)
+ }
+
+ // 카메라를 실행한 후 찍은 사진을 저장
+ var pictureUri: Uri? = null
+ private val getTakePicture = registerForActivityResult(ActivityResultContracts.TakePicture()) {
+ if(it) {
+ pictureUri.let { binding.ivProfilePic.setImageURI(pictureUri) }
+ }
+ }
+ // 파일 불러오기
+ private val getContentImage = registerForActivityResult(
+ ActivityResultContracts.GetContent()) {
+ uri ->
+ uri.let { binding.ivProfilePic.setImageURI(uri)
+ }
+ }
+ // 직군선택 결과 받아오기
private val getResultText = registerForActivityResult(
ActivityResultContracts.StartActivityForResult()){
result-> if (result.resultCode == RESULT_OK){
@@ -30,7 +78,7 @@ class ProfileActivity : AppCompatActivity() {
setContentView(view)
goBack()
- ChangeImage()
+ showCameraDialog()
ChangeName()
ChangeJobInterest()
LeaveAccount()
@@ -45,21 +93,44 @@ class ProfileActivity : AppCompatActivity() {
}
// 프로필 사진 변경
- private fun ChangeImage() {
- binding.ivProfilePic.setOnClickListener{
-
- // 앨범에서 사진 선택
-
- // 촬영하기->고유 이름으로 파일 생성->갤러리에 사진추가
- //dispatchTakePictureIntent()
- //createImageFile()
- //galleryAddPic()
- // 기본 이미지로 변경
-
- // 취소
-
+ fun showCameraDialog() {
+ binding.ibtnProfileCamera.setOnClickListener{
+ val dialog = CameraDialog(this)
+ dialog.show(this.supportFragmentManager, "CameraDialog")
+ }
+ }
+ override fun onCameraClick(cameraMenu: String) {
+ val camera_menu = cameraMenu
+
+ //readImage.launch()
+ // 권한 확인
+ //checkPermission.launch(permissionList)
+ //if (!checkPermission(permissions)) {
+ // requestPermissions(permissions, REQUEST_CODE_PERMISSIONS)
+ //}
+
+ if (camera_menu=="@string/profile_img_fromAlbum"){
+ getContentImage.launch("image/*")
+ }
+ else if (camera_menu=="@string/profile_img_fromCamera"){
+ pictureUri = createImageFile()
+ getTakePicture.launch(pictureUri)
+ }
+ else if (camera_menu=="@string/profile_img_basic"){
+ binding.ivProfilePic.setImageResource(R.drawable.ic_my_page_user)
+ }
+ else if (camera_menu=="@string/profile_img_cancel"){
+ // 변화없음
}
}
+ private fun createImageFile(): Uri? {
+ val now = SimpleDateFormat("yyMMdd_HHmmss").format(System.currentTimeMillis())
+ val content = ContentValues().apply {
+ put(MediaStore.Images.Media.DISPLAY_NAME, "img_$now.jpg")
+ put(MediaStore.Images.Media.MIME_TYPE, "image/jpg")
+ }
+ return contentResolver.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, content)
+ }
// 직군정보 변경페이지로 이동
private fun ChangeJobInterest() {
@@ -102,4 +173,5 @@ class ProfileActivity : AppCompatActivity() {
}
}
+
}
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_mypage_to_profile.xml b/app/src/main/res/drawable/ic_my_page_logout.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_mypage_to_profile.xml
rename to app/src/main/res/drawable/ic_my_page_logout.xml
diff --git a/app/src/main/res/drawable/ic_mypage_menu.xml b/app/src/main/res/drawable/ic_my_page_menu.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_mypage_menu.xml
rename to app/src/main/res/drawable/ic_my_page_menu.xml
diff --git a/app/src/main/res/drawable/ic_setting.xml b/app/src/main/res/drawable/ic_my_page_setting.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_setting.xml
rename to app/src/main/res/drawable/ic_my_page_setting.xml
diff --git a/app/src/main/res/drawable/ic_mypage_user.xml b/app/src/main/res/drawable/ic_my_page_user.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_mypage_user.xml
rename to app/src/main/res/drawable/ic_my_page_user.xml
diff --git a/app/src/main/res/layout/activity_job_group.xml b/app/src/main/res/layout/activity_job_group.xml
index 855c2f9e..795d6f41 100644
--- a/app/src/main/res/layout/activity_job_group.xml
+++ b/app/src/main/res/layout/activity_job_group.xml
@@ -17,8 +17,8 @@
@@ -82,6 +84,7 @@
android:text="@string/job_change_instruction2"
android:textColor="@color/black"
android:textSize="20sp"
+ android:fontFamily="@font/pretendard_medium"
app:layout_constraintTop_toBottomOf="@+id/ll_job_change_guide"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
@@ -94,6 +97,7 @@
android:text="@string/job_change_instruction3"
android:textColor="@color/gray_5"
android:textSize="14sp"
+ android:fontFamily="@font/pretendard_regular"
android:layout_marginTop="15dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
@@ -135,7 +139,8 @@
android:text="@string/job_change_complete"
android:textColor="@color/white"
android:textSize="16sp"
- android:enabled="true" />
+ android:fontFamily="@font/pretendard_semi_bold"
+ android:enabled="false" />
diff --git a/app/src/main/res/layout/activity_profile.xml b/app/src/main/res/layout/activity_profile.xml
index c87b00e2..7e94785b 100644
--- a/app/src/main/res/layout/activity_profile.xml
+++ b/app/src/main/res/layout/activity_profile.xml
@@ -13,13 +13,16 @@
android:layout_height="wrap_content"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
- tools:ignore="MissingConstraints">
+ tools:ignore="MissingConstraints"
+ tools:layout_editor_absoluteX="0dp"
+ tools:layout_editor_absoluteY="-2dp">
+ android:textColor="@color/gray_5"
+ android:textSize="20sp" />
+ android:textSize="14sp" />
@@ -74,7 +79,7 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
- app:srcCompat="@drawable/ic_mypage_user" />
+ app:srcCompat="@drawable/ic_my_page_user" />
+ android:textColor="@color/gray_4"
+ android:fontFamily="@font/pretendard_regular" />
+ android:textSize="18sp"
+ android:fontFamily="@font/pretendard_medium"/>
@@ -151,7 +157,7 @@
@@ -167,7 +173,8 @@
android:layout_height="wrap_content"
android:text="@string/profile_sex"
android:textSize="12sp"
- android:textColor="@color/gray_4" />
+ android:textColor="@color/gray_4"
+ android:fontFamily="@font/pretendard_regular" />
+ android:textSize="18sp"
+ android:fontFamily="@font/pretendard_medium" />
@@ -198,13 +206,15 @@
android:layout_height="wrap_content"
android:text="@string/profile_birth"
android:textSize="12sp"
- android:textColor="@color/gray_4" />
+ android:textColor="@color/gray_4"
+ android:fontFamily="@font/pretendard_regular" />
@@ -213,7 +223,7 @@
@@ -229,7 +239,8 @@
android:layout_height="wrap_content"
android:text="@string/profile_job"
android:textSize="12sp"
- android:textColor="@color/gray_4" />
+ android:textColor="@color/gray_4"
+ android:fontFamily="@font/pretendard_regular" />
+ android:textSize="18sp"
+ android:fontFamily="@font/pretendard_medium" />
diff --git a/app/src/main/res/layout/fragment_mypage.xml b/app/src/main/res/layout/fragment_mypage.xml
index 903a9fd6..2a01300d 100644
--- a/app/src/main/res/layout/fragment_mypage.xml
+++ b/app/src/main/res/layout/fragment_mypage.xml
@@ -22,31 +22,31 @@
android:id="@+id/ll_mypage_buttons"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginTop="12dp"
+ android:layout_marginTop="20dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toTopOf="@+id/ll_mypage_user">
+ app:layout_constraintEnd_toStartOf="@+id/ibtn_mypage_setting"/>
@@ -73,14 +73,17 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
- app:srcCompat="@drawable/ic_mypage_user" />
+ app:srcCompat="@drawable/ic_my_page_user" />
+ android:text="@string/mypage_user_id"
+ android:textColor="@color/black"
+ android:textSize="16sp"
+ android:fontFamily="@font/pretendard_medium" />
@@ -99,9 +102,9 @@
+ android:layout_marginBottom="20dp"/>
+ android:textColor="@color/black"
+ android:textSize="16sp" />
@@ -134,45 +140,51 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
- android:layout_marginTop="15dp">
+ android:layout_marginTop="20dp">
+ android:textColor="@color/black"
+ android:textSize="16sp" />
+
+ android:layout_marginTop="20dp"
+ android:layout_marginBottom="20dp"/>
+ android:textColor="@color/gray_6"
+ android:textSize="14sp" />
+ android:text="@string/mypage_privacy_policy"
+ android:textSize="14sp"
+ android:fontFamily="@font/pretendard_light" />
diff --git a/app/src/main/res/layout/item_job_group.xml b/app/src/main/res/layout/item_job_group.xml
index e2b67da9..8f086569 100644
--- a/app/src/main/res/layout/item_job_group.xml
+++ b/app/src/main/res/layout/item_job_group.xml
@@ -35,6 +35,7 @@
android:text="철강"
android:textColor="@color/black"
android:textSize="17sp"
+ android:fontFamily="@font/pretendard_medium"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 8e68d3b8..de8d6624 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -37,9 +37,6 @@
유저네임a
- 저장한 기사
- 직군 정보 변경
- 키워드 설정
스토어 별점 남기기
이용약관 및 사용자 정책
언론사 연락처
@@ -53,8 +50,11 @@
생년월일
직군 정보
-
로그아웃
+ 앨범에서 사진 선택
+ 촬영하기
+ 기본 이미지로 변경
+ 취소