From d9db15e314d7e20616fe02336c25162972e4aba4 Mon Sep 17 00:00:00 2001 From: rnk00 Date: Mon, 5 Feb 2024 20:41:52 +0900 Subject: [PATCH] =?UTF-8?q?(=EC=9C=8C=EB=A1=9C=EC=9A=B0)Feat:=20[=EC=9E=91?= =?UTF-8?q?=EC=97=85=ED=95=9C=20=EB=82=B4=EC=9A=A9]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/AndroidManifest.xml | 7 +- .../notation/campusnote/GlobalApplication.kt | 18 ----- .../com/notation/campusnote/LoginActivity.kt | 49 ----------- .../campusnote/login/LoginActivity.kt | 35 ++++---- .../sharedPreference/MyPreferences.kt | 29 +++++++ .../main/res/drawable/btn_chevron_left.xml | 13 +++ .../main/res/drawable/btn_chevron_right.xml | 13 +++ app/src/main/res/drawable/btn_edit_04.xml | 13 +++ app/src/main/res/drawable/btn_share.xml | 16 ++++ app/src/main/res/drawable/btn_trash_full.xml | 13 +++ .../main/res/drawable/icon_calendar_days.xml | 13 +++ app/src/main/res/drawable/icon_clock.xml | 13 +++ app/src/main/res/drawable/icon_ellipse_38.xml | 11 +++ app/src/main/res/drawable/icon_file_check.xml | 13 +++ .../main/res/drawable/icon_file_edit_02.xml | 13 +++ app/src/main/res/drawable/icon_flag.xml | 13 +++ app/src/main/res/drawable/icon_frame_1.xml | 20 +++++ app/src/main/res/drawable/icon_image.xml | 19 +++++ app/src/main/res/drawable/icon_image_03.xml | 9 +++ app/src/main/res/drawable/icon_microphone.xml | 9 +++ app/src/main/res/drawable/icon_vector.xml | 9 +++ app/src/main/res/drawable/icon_waveform.xml | 13 +++ .../res/drawable/kakao_btn_background.xml | 5 ++ app/src/main/res/drawable/progress.xml | 12 +++ app/src/main/res/drawable/temporary.png | Bin 0 -> 39826 bytes app/src/main/res/layout/activity_class.xml | 7 ++ app/src/main/res/layout/activity_login.xml | 76 +++++++++++++++--- app/src/main/res/layout/test_login.xml | 72 +++++++++++++++++ app/src/main/res/values-night/themes.xml | 1 + app/src/main/res/values/themes.xml | 2 +- 30 files changed, 438 insertions(+), 98 deletions(-) delete mode 100644 app/src/main/java/com/notation/campusnote/GlobalApplication.kt delete mode 100644 app/src/main/java/com/notation/campusnote/LoginActivity.kt create mode 100644 app/src/main/java/com/notation/campusnote/sharedPreference/MyPreferences.kt create mode 100644 app/src/main/res/drawable/btn_chevron_left.xml create mode 100644 app/src/main/res/drawable/btn_chevron_right.xml create mode 100644 app/src/main/res/drawable/btn_edit_04.xml create mode 100644 app/src/main/res/drawable/btn_share.xml create mode 100644 app/src/main/res/drawable/btn_trash_full.xml create mode 100644 app/src/main/res/drawable/icon_calendar_days.xml create mode 100644 app/src/main/res/drawable/icon_clock.xml create mode 100644 app/src/main/res/drawable/icon_ellipse_38.xml create mode 100644 app/src/main/res/drawable/icon_file_check.xml create mode 100644 app/src/main/res/drawable/icon_file_edit_02.xml create mode 100644 app/src/main/res/drawable/icon_flag.xml create mode 100644 app/src/main/res/drawable/icon_frame_1.xml create mode 100644 app/src/main/res/drawable/icon_image.xml create mode 100644 app/src/main/res/drawable/icon_image_03.xml create mode 100644 app/src/main/res/drawable/icon_microphone.xml create mode 100644 app/src/main/res/drawable/icon_vector.xml create mode 100644 app/src/main/res/drawable/icon_waveform.xml create mode 100644 app/src/main/res/drawable/kakao_btn_background.xml create mode 100644 app/src/main/res/drawable/progress.xml create mode 100644 app/src/main/res/drawable/temporary.png create mode 100644 app/src/main/res/layout/activity_class.xml create mode 100644 app/src/main/res/layout/test_login.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a46ebf1c..08b69167 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -5,7 +5,7 @@ @@ -29,6 +29,9 @@ + + diff --git a/app/src/main/java/com/notation/campusnote/GlobalApplication.kt b/app/src/main/java/com/notation/campusnote/GlobalApplication.kt deleted file mode 100644 index 749a4b4a..00000000 --- a/app/src/main/java/com/notation/campusnote/GlobalApplication.kt +++ /dev/null @@ -1,18 +0,0 @@ -package com.notation.campusnote - -import android.app.Application -import android.util.Log -import com.kakao.sdk.common.KakaoSdk -import com.kakao.sdk.common.util.Utility - - -class GlobalApplication : Application() { - override fun onCreate() { - super.onCreate() - - //Kakao SDK 초기화 - KakaoSdk.init(this, "3fb9a572bb1f2e3cd66d370d2f7888dd") - - Log.d("hash", "keyhash : ${Utility.getKeyHash(this)}") - } -} diff --git a/app/src/main/java/com/notation/campusnote/LoginActivity.kt b/app/src/main/java/com/notation/campusnote/LoginActivity.kt deleted file mode 100644 index 954a0404..00000000 --- a/app/src/main/java/com/notation/campusnote/LoginActivity.kt +++ /dev/null @@ -1,49 +0,0 @@ -package com.notation.campusnote - -import android.os.Bundle -import android.util.Log -import androidx.appcompat.app.AppCompatActivity -import com.notation.campusnote.databinding.ActivityLoginBinding -import com.kakao.sdk.auth.model.OAuthToken -import com.kakao.sdk.user.UserApiClient - -class LoginActivity :AppCompatActivity(){ - private val TAG = "KakaoLoginExample" - private lateinit var binding: ActivityLoginBinding - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - binding = ActivityLoginBinding.inflate(layoutInflater) - setContentView(binding.root) - - binding.kakaoLoginButton.setOnClickListener { - login() - } - } - - private fun login() { - // 카카오계정으로 로그인 공통 콜백 설정 - val callback: (OAuthToken?, Throwable?) -> Unit = { token, error -> - if (error != null) { - Log.e(TAG, "카카오계정으로 로그인 실패", error) - } else if (token != null) { - Log.i(TAG, "카카오계정으로 로그인 성공 ${token.accessToken}") - } - } - - // 카카오톡이 설치되어 있으면 카카오톡으로 로그인, 아니면 카카오계정으로 로그인 - if (UserApiClient.instance.isKakaoTalkLoginAvailable(this)) { - UserApiClient.instance.loginWithKakaoTalk(this) { token, error -> - if (error != null) { - Log.e(TAG, "카카오톡으로 로그인 실패", error) - - // 특정 상황(취소 등)에 대한 처리 추가 - } else if (token != null) { - Log.i(TAG, "카카오톡으로 로그인 성공 ${token.accessToken}") - // 성공적인 로그인 처리 추가 - } - } - } else { - UserApiClient.instance.loginWithKakaoAccount(this, callback = callback) - } - } -} \ No newline at end of file diff --git a/app/src/main/java/com/notation/campusnote/login/LoginActivity.kt b/app/src/main/java/com/notation/campusnote/login/LoginActivity.kt index 46bc90fe..d83f57fb 100644 --- a/app/src/main/java/com/notation/campusnote/login/LoginActivity.kt +++ b/app/src/main/java/com/notation/campusnote/login/LoginActivity.kt @@ -7,6 +7,7 @@ import androidx.appcompat.app.AppCompatActivity import com.notation.campusnote.databinding.ActivityLoginBinding import com.kakao.sdk.auth.model.OAuthToken import com.kakao.sdk.user.UserApiClient +import com.notation.campusnote.sharedPreference.MyPreferences import com.notation.campusnote.signUp.SignUpActivity class LoginActivity :AppCompatActivity(){ @@ -37,30 +38,32 @@ class LoginActivity :AppCompatActivity(){ UserApiClient.instance.loginWithKakaoTalk(this) { token, error -> if (error != null) { Log.e(TAG, "카카오톡으로 로그인 실패", error) - // 특정 상황(취소 등)에 대한 처리 추가 } else if (token != null) { Log.i(TAG, "카카오톡으로 로그인 성공 ${token.accessToken}") // 성공적인 로그인 처리 추가 - val intent = Intent(this, SignUpActivity::class.java) - startActivity(intent) + + var myPreferences = MyPreferences(this) + + UserApiClient.instance.me { user, error -> + if (error != null) { + Log.e(TAG, "사용자 정보 요청 실패", error) + } else if (user != null) { + Log.i( + TAG, "사용자 정보 요청 성공" + + "\n회원번호: ${user.id}" + + "\n프로필사진: ${user.kakaoAccount?.profile?.thumbnailImageUrl}" + ) + myPreferences.saveClientId(token.accessToken) + myPreferences.saveProfilePic("user.kakaoAccount?.profile?.thumbnailImageUrl") + + startActivity(Intent(this, SignUpActivity::class.java)) + } + } } } } else { UserApiClient.instance.loginWithKakaoAccount(this, callback = callback) } } - - private fun updateKakaoLoginUi() { - UserApiClient.instance.me { user, error -> - if (error != null) { - Log.e(TAG, "사용자 정보 요청 실패", error) - } - else if (user != null) { - Log.i(TAG, "사용자 정보 요청 성공" + - "\n회원번호: ${user.id}" + - "\n프로필사진: ${user.kakaoAccount?.profile?.thumbnailImageUrl}") - } - } - } } \ No newline at end of file diff --git a/app/src/main/java/com/notation/campusnote/sharedPreference/MyPreferences.kt b/app/src/main/java/com/notation/campusnote/sharedPreference/MyPreferences.kt new file mode 100644 index 00000000..d0403c04 --- /dev/null +++ b/app/src/main/java/com/notation/campusnote/sharedPreference/MyPreferences.kt @@ -0,0 +1,29 @@ +package com.notation.campusnote.sharedPreference + +import android.content.Context +import android.content.SharedPreferences + +class MyPreferences(context: Context) { + private val sharedPreferences: SharedPreferences = context.getSharedPreferences("MyPrefs", Context.MODE_PRIVATE) + + // 클라이언트 ID 저장 + fun saveClientId(clientId: String) { + sharedPreferences.edit().putString("client_id", clientId).apply() + } + + // 클라이언트 ID 가져오기 + fun getClientId(): String? { + return sharedPreferences.getString("client_id", null) + } + + // 클라이언트 ID 저장 + fun saveProfilePic(profilePic: String) { + sharedPreferences.edit().putString("profile_pic", profilePic).apply() + } + + // 클라이언트 ID 가져오기 + fun getProfilePic(): String? { + return sharedPreferences.getString("profile_pic", null) + } + +} \ No newline at end of file diff --git a/app/src/main/res/drawable/btn_chevron_left.xml b/app/src/main/res/drawable/btn_chevron_left.xml new file mode 100644 index 00000000..6e249eb1 --- /dev/null +++ b/app/src/main/res/drawable/btn_chevron_left.xml @@ -0,0 +1,13 @@ + + + diff --git a/app/src/main/res/drawable/btn_chevron_right.xml b/app/src/main/res/drawable/btn_chevron_right.xml new file mode 100644 index 00000000..9f5e0b59 --- /dev/null +++ b/app/src/main/res/drawable/btn_chevron_right.xml @@ -0,0 +1,13 @@ + + + diff --git a/app/src/main/res/drawable/btn_edit_04.xml b/app/src/main/res/drawable/btn_edit_04.xml new file mode 100644 index 00000000..2cf99ba7 --- /dev/null +++ b/app/src/main/res/drawable/btn_edit_04.xml @@ -0,0 +1,13 @@ + + + diff --git a/app/src/main/res/drawable/btn_share.xml b/app/src/main/res/drawable/btn_share.xml new file mode 100644 index 00000000..95d8db64 --- /dev/null +++ b/app/src/main/res/drawable/btn_share.xml @@ -0,0 +1,16 @@ + + + + diff --git a/app/src/main/res/drawable/btn_trash_full.xml b/app/src/main/res/drawable/btn_trash_full.xml new file mode 100644 index 00000000..cbc0c72a --- /dev/null +++ b/app/src/main/res/drawable/btn_trash_full.xml @@ -0,0 +1,13 @@ + + + diff --git a/app/src/main/res/drawable/icon_calendar_days.xml b/app/src/main/res/drawable/icon_calendar_days.xml new file mode 100644 index 00000000..be921d78 --- /dev/null +++ b/app/src/main/res/drawable/icon_calendar_days.xml @@ -0,0 +1,13 @@ + + + diff --git a/app/src/main/res/drawable/icon_clock.xml b/app/src/main/res/drawable/icon_clock.xml new file mode 100644 index 00000000..a3c3dbb6 --- /dev/null +++ b/app/src/main/res/drawable/icon_clock.xml @@ -0,0 +1,13 @@ + + + diff --git a/app/src/main/res/drawable/icon_ellipse_38.xml b/app/src/main/res/drawable/icon_ellipse_38.xml new file mode 100644 index 00000000..44f36f39 --- /dev/null +++ b/app/src/main/res/drawable/icon_ellipse_38.xml @@ -0,0 +1,11 @@ + + + diff --git a/app/src/main/res/drawable/icon_file_check.xml b/app/src/main/res/drawable/icon_file_check.xml new file mode 100644 index 00000000..5ab9defa --- /dev/null +++ b/app/src/main/res/drawable/icon_file_check.xml @@ -0,0 +1,13 @@ + + + diff --git a/app/src/main/res/drawable/icon_file_edit_02.xml b/app/src/main/res/drawable/icon_file_edit_02.xml new file mode 100644 index 00000000..15da8686 --- /dev/null +++ b/app/src/main/res/drawable/icon_file_edit_02.xml @@ -0,0 +1,13 @@ + + + diff --git a/app/src/main/res/drawable/icon_flag.xml b/app/src/main/res/drawable/icon_flag.xml new file mode 100644 index 00000000..1fd89aee --- /dev/null +++ b/app/src/main/res/drawable/icon_flag.xml @@ -0,0 +1,13 @@ + + + diff --git a/app/src/main/res/drawable/icon_frame_1.xml b/app/src/main/res/drawable/icon_frame_1.xml new file mode 100644 index 00000000..88b0fa60 --- /dev/null +++ b/app/src/main/res/drawable/icon_frame_1.xml @@ -0,0 +1,20 @@ + + + + diff --git a/app/src/main/res/drawable/icon_image.xml b/app/src/main/res/drawable/icon_image.xml new file mode 100644 index 00000000..0828775c --- /dev/null +++ b/app/src/main/res/drawable/icon_image.xml @@ -0,0 +1,19 @@ + + + + + diff --git a/app/src/main/res/drawable/icon_image_03.xml b/app/src/main/res/drawable/icon_image_03.xml new file mode 100644 index 00000000..df512126 --- /dev/null +++ b/app/src/main/res/drawable/icon_image_03.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/icon_microphone.xml b/app/src/main/res/drawable/icon_microphone.xml new file mode 100644 index 00000000..cc95cbe1 --- /dev/null +++ b/app/src/main/res/drawable/icon_microphone.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/icon_vector.xml b/app/src/main/res/drawable/icon_vector.xml new file mode 100644 index 00000000..ac37439c --- /dev/null +++ b/app/src/main/res/drawable/icon_vector.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/icon_waveform.xml b/app/src/main/res/drawable/icon_waveform.xml new file mode 100644 index 00000000..4d1b247e --- /dev/null +++ b/app/src/main/res/drawable/icon_waveform.xml @@ -0,0 +1,13 @@ + + + diff --git a/app/src/main/res/drawable/kakao_btn_background.xml b/app/src/main/res/drawable/kakao_btn_background.xml new file mode 100644 index 00000000..afd9994d --- /dev/null +++ b/app/src/main/res/drawable/kakao_btn_background.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/progress.xml b/app/src/main/res/drawable/progress.xml new file mode 100644 index 00000000..16d04935 --- /dev/null +++ b/app/src/main/res/drawable/progress.xml @@ -0,0 +1,12 @@ + + + diff --git a/app/src/main/res/drawable/temporary.png b/app/src/main/res/drawable/temporary.png new file mode 100644 index 0000000000000000000000000000000000000000..15a19adff0d4a427c411bc28e87591487186521e GIT binary patch literal 39826 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 h2{R_`VzN2#e*nC1f9hRg4n6 + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_login.xml b/app/src/main/res/layout/activity_login.xml index 6de5c611..6cbbc152 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -4,19 +4,71 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" - tools:context=".LoginActivity"> + tools:context="com.notation.campusnote.login.LoginActivity" + android:background="#77967d"> + + -