From e4ab0d4ef10d727dfe47cbc08816a6b1e7d6f545 Mon Sep 17 00:00:00 2001 From: Jin Yu <94737714+HI-JIN2@users.noreply.github.com> Date: Sun, 30 Jul 2023 21:42:48 +0900 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20SharedPreference=EC=97=90=20?= =?UTF-8?q?=EB=8B=89=EB=84=A4=EC=9E=84,=20=EC=9D=B4=EB=A9=94=EC=9D=BC=20?= =?UTF-8?q?=EC=A0=80=EC=9E=A5=ED=95=B4=EB=86=93=EA=B3=A0=20=EB=A7=88?= =?UTF-8?q?=EC=9D=B4=ED=8E=98=EC=9D=B4=EC=A7=80=EC=97=90=EC=84=9C=20?= =?UTF-8?q?=EB=B3=B4=EC=97=AC=EC=A3=BC=EA=B2=8C=20=EC=84=A4=EC=A0=95.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 닉네임은 처음 진입시 SP에 없으면 닉네임 설정창이 뜨게 해놓고 그 후로 SP에 있으면 안뜸. --- .idea/misc.xml | 2 +- .../android/data/MySharedPreferences.kt | 42 +++++++++++++++++++ .../android/ui/login/SocialLoginActivity.kt | 5 +++ .../eatssu/android/ui/main/MainActivity.kt | 10 +++++ .../ui/mypage/ChangeNicknameActivity.kt | 5 ++- .../android/ui/mypage/MyPageActivity.kt | 7 +++- .../res/layout/activity_change_nickname.xml | 2 +- app/src/main/res/layout/activity_my_page.xml | 25 ++++++----- app/src/main/res/layout/include_actionbar.xml | 2 +- 9 files changed, 80 insertions(+), 20 deletions(-) diff --git a/.idea/misc.xml b/.idea/misc.xml index bdd92780..704c883b 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,7 +1,7 @@ - + diff --git a/app/src/main/java/com/eatssu/android/data/MySharedPreferences.kt b/app/src/main/java/com/eatssu/android/data/MySharedPreferences.kt index b6d9624f..247816e5 100644 --- a/app/src/main/java/com/eatssu/android/data/MySharedPreferences.kt +++ b/app/src/main/java/com/eatssu/android/data/MySharedPreferences.kt @@ -36,6 +36,48 @@ object MySharedPreferences { return prefs.getString("MY_PW", "").toString() } + fun setUserEmail(context: Context, input: String) { + val prefs: SharedPreferences = + context.getSharedPreferences(MY_ACCOUNT, Context.MODE_PRIVATE) + val editor: SharedPreferences.Editor = prefs.edit() + editor.putString("MY_EMAIL", input) + editor.commit() + } + + fun getUserEmail(context: Context): String { + val prefs: SharedPreferences = + context.getSharedPreferences(MY_ACCOUNT, Context.MODE_PRIVATE) + return prefs.getString("MY_EMAIL", "").toString() + } + + fun setUserPlatform(context: Context, input: String) { + val prefs: SharedPreferences = + context.getSharedPreferences(MY_ACCOUNT, Context.MODE_PRIVATE) + val editor: SharedPreferences.Editor = prefs.edit() + editor.putString("MY_PLATFORM", input) + editor.commit() + } + + fun getUserPlatform(context: Context): String { + val prefs: SharedPreferences = + context.getSharedPreferences(MY_ACCOUNT, Context.MODE_PRIVATE) + return prefs.getString("MY_PLATFORM", "").toString() + } + + fun setUserName(context: Context, input: String) { + val prefs: SharedPreferences = + context.getSharedPreferences(MY_ACCOUNT, Context.MODE_PRIVATE) + val editor: SharedPreferences.Editor = prefs.edit() + editor.putString("MY_NAME", input) + editor.commit() + } + + fun getUserName(context: Context): String { + val prefs: SharedPreferences = + context.getSharedPreferences(MY_ACCOUNT, Context.MODE_PRIVATE) + return prefs.getString("MY_NAME", "").toString() + } + fun clearUser(context: Context) { val prefs: SharedPreferences = context.getSharedPreferences(MY_ACCOUNT, Context.MODE_PRIVATE) diff --git a/app/src/main/java/com/eatssu/android/ui/login/SocialLoginActivity.kt b/app/src/main/java/com/eatssu/android/ui/login/SocialLoginActivity.kt index 638ef6a7..7eb542fb 100644 --- a/app/src/main/java/com/eatssu/android/ui/login/SocialLoginActivity.kt +++ b/app/src/main/java/com/eatssu/android/ui/login/SocialLoginActivity.kt @@ -11,11 +11,13 @@ import android.widget.Toast import androidx.appcompat.app.AppCompatActivity import androidx.lifecycle.lifecycleScope import com.eatssu.android.App +import com.eatssu.android.data.MySharedPreferences import com.eatssu.android.data.model.request.loginWithKakaoRequest import com.eatssu.android.data.model.response.TokenResponse import com.eatssu.android.data.service.OauthService import com.eatssu.android.databinding.ActivitySocialLoginBinding import com.eatssu.android.ui.main.MainActivity +import com.eatssu.android.ui.mypage.ChangeNicknameActivity import com.kakao.sdk.common.model.ClientError import com.kakao.sdk.common.model.ClientErrorCause import com.kakao.sdk.user.UserApiClient @@ -115,6 +117,9 @@ class SocialLoginActivity : AppCompatActivity() { Log.d("post", "onResponse 성공: " + response.body().toString()); // MySharedPreferences.setUserId(this@LoginActivity, email) // MySharedPreferences.setUserPw(this@LoginActivity, providerID)//자동로그인 구현 + MySharedPreferences.setUserEmail(this@SocialLoginActivity,email) + MySharedPreferences.setUserPlatform(this@SocialLoginActivity,"KAKAO") + App.token_prefs.accessToken = response.body()!!.accessToken App.token_prefs.refreshToken = diff --git a/app/src/main/java/com/eatssu/android/ui/main/MainActivity.kt b/app/src/main/java/com/eatssu/android/ui/main/MainActivity.kt index 26b32cdd..9d2396b3 100644 --- a/app/src/main/java/com/eatssu/android/ui/main/MainActivity.kt +++ b/app/src/main/java/com/eatssu/android/ui/main/MainActivity.kt @@ -18,11 +18,13 @@ import android.view.MenuItem import android.widget.FrameLayout import androidx.annotation.RequiresApi import androidx.viewpager2.widget.ViewPager2 +import com.eatssu.android.data.MySharedPreferences import com.eatssu.android.databinding.ActivityMainBinding import com.eatssu.android.ui.calendar.CalendarFragment import com.eatssu.android.ui.BaseActivity import com.eatssu.android.ui.calendar.CalendarActivity import com.eatssu.android.ui.main.ViewPager2Adapter +import com.eatssu.android.ui.mypage.ChangeNicknameActivity import com.eatssu.android.ui.mypage.MyPageActivity import com.google.android.material.tabs.TabLayout import com.google.android.material.tabs.TabLayoutMediator @@ -52,6 +54,14 @@ class MainActivity : AppCompatActivity() { binding = ActivityMainBinding.inflate(layoutInflater) setContentView(binding.root) + + val intent = Intent(this,ChangeNicknameActivity::class.java) + // SharedPreferences 안에 값이 저장되어 있지 않을 때 -> Login + if (MySharedPreferences.getUserName(this@MainActivity).isBlank()) { + startActivity(intent) + } + + supportActionBar?.title = "EAT-SSU" // 1) ViewPager2 참조 diff --git a/app/src/main/java/com/eatssu/android/ui/mypage/ChangeNicknameActivity.kt b/app/src/main/java/com/eatssu/android/ui/mypage/ChangeNicknameActivity.kt index f24e56e1..3f986c52 100644 --- a/app/src/main/java/com/eatssu/android/ui/mypage/ChangeNicknameActivity.kt +++ b/app/src/main/java/com/eatssu/android/ui/mypage/ChangeNicknameActivity.kt @@ -8,6 +8,7 @@ import android.view.LayoutInflater import android.widget.FrameLayout import android.widget.Toast import com.eatssu.android.R +import com.eatssu.android.data.MySharedPreferences import com.eatssu.android.data.model.request.ChangeNickname import com.eatssu.android.data.service.UserService import com.eatssu.android.databinding.ActivityChangeNicknameBinding @@ -29,7 +30,7 @@ class ChangeNicknameActivity : BaseActivity() { inflater.inflate(R.layout.activity_change_nickname, findViewById(R.id.frame_layout), true) findViewById(R.id.frame_layout).addView(binding.root) - supportActionBar?.title = "닉네임 변경" + supportActionBar?.title = "닉네임 설정" binding.etChNickname.addTextChangedListener(object : TextWatcher { override fun beforeTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) {} @@ -56,8 +57,8 @@ class ChangeNicknameActivity : BaseActivity() { Toast.makeText( this@ChangeNicknameActivity, "닉네임 변경에 성공했습니다.", Toast.LENGTH_SHORT ).show() + MySharedPreferences.setUserName(this@ChangeNicknameActivity,chNick) finish() - } else { Toast.makeText( this@ChangeNicknameActivity, "닉네임 변경에 실패했습니다.\"", Toast.LENGTH_SHORT diff --git a/app/src/main/java/com/eatssu/android/ui/mypage/MyPageActivity.kt b/app/src/main/java/com/eatssu/android/ui/mypage/MyPageActivity.kt index d68aa74c..ee718b1d 100644 --- a/app/src/main/java/com/eatssu/android/ui/mypage/MyPageActivity.kt +++ b/app/src/main/java/com/eatssu/android/ui/mypage/MyPageActivity.kt @@ -5,9 +5,9 @@ import android.content.Intent import android.os.Bundle import android.view.LayoutInflater import android.widget.FrameLayout -import android.widget.TextView import androidx.appcompat.app.AlertDialog import com.eatssu.android.R +import com.eatssu.android.data.MySharedPreferences import com.eatssu.android.databinding.ActivityMyPageBinding import com.eatssu.android.ui.BaseActivity @@ -25,6 +25,9 @@ class MyPageActivity : BaseActivity() { supportActionBar?.title = "마이페이지" + binding.tvNickname.text = MySharedPreferences.getUserName(this) + binding.tvEmail.text = MySharedPreferences.getUserEmail(this) + binding.clNickname.setOnClickListener{ val intent = Intent(this, ChangeNicknameActivity::class.java) startActivity(intent) @@ -51,7 +54,7 @@ class MyPageActivity : BaseActivity() { .setMessage("로그아웃 하시겠습니까?") .setPositiveButton("로그아웃", DialogInterface.OnClickListener { dialog, id -> - //탈퇴처리 + //로그아웃 }) .setNegativeButton("취소", DialogInterface.OnClickListener { dialog, id -> diff --git a/app/src/main/res/layout/activity_change_nickname.xml b/app/src/main/res/layout/activity_change_nickname.xml index a6196760..4b515198 100644 --- a/app/src/main/res/layout/activity_change_nickname.xml +++ b/app/src/main/res/layout/activity_change_nickname.xml @@ -13,7 +13,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:fontFamily="@font/noto_black" - android:text="새로운 닉네임" + android:text="닉네임" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> diff --git a/app/src/main/res/layout/activity_my_page.xml b/app/src/main/res/layout/activity_my_page.xml index 7a10f1a7..9dd9cfbb 100644 --- a/app/src/main/res/layout/activity_my_page.xml +++ b/app/src/main/res/layout/activity_my_page.xml @@ -33,29 +33,28 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:fontFamily="@font/noto_bold" - android:text="닉네임" + android:text="" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> - + + + + + + + + + + diff --git a/app/src/main/res/layout/include_actionbar.xml b/app/src/main/res/layout/include_actionbar.xml index 336bda2c..c76f5e3a 100644 --- a/app/src/main/res/layout/include_actionbar.xml +++ b/app/src/main/res/layout/include_actionbar.xml @@ -4,12 +4,12 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content"> + Date: Sun, 30 Jul 2023 22:42:35 +0900 Subject: [PATCH 2/2] =?UTF-8?q?feat:=20intentNick=EC=9C=BC=EB=A1=9C=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/java/com/eatssu/android/ui/main/MainActivity.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/eatssu/android/ui/main/MainActivity.kt b/app/src/main/java/com/eatssu/android/ui/main/MainActivity.kt index 9d2396b3..22a6858d 100644 --- a/app/src/main/java/com/eatssu/android/ui/main/MainActivity.kt +++ b/app/src/main/java/com/eatssu/android/ui/main/MainActivity.kt @@ -55,10 +55,10 @@ class MainActivity : AppCompatActivity() { setContentView(binding.root) - val intent = Intent(this,ChangeNicknameActivity::class.java) + val intentNick = Intent(this,ChangeNicknameActivity::class.java) // SharedPreferences 안에 값이 저장되어 있지 않을 때 -> Login if (MySharedPreferences.getUserName(this@MainActivity).isBlank()) { - startActivity(intent) + startActivity(intentNick) }