From db58d939e7deece6d817844ee7ba947310cf89c1 Mon Sep 17 00:00:00 2001 From: ssonghyun101 Date: Wed, 22 Dec 2021 02:58:59 +0900 Subject: [PATCH 01/12] [FEAT] login network --- 29th_first_semina/app/build.gradle | 3 + .../app/src/main/AndroidManifest.xml | 12 +-- .../ui/view/sigin/Service.kt | 24 +++++ .../ui/view/sigin/ServiceCreater.kt | 18 ++++ .../ui/view/sigin/SignInActivity.kt | 61 ----------- .../ui/view/sigin/data/RequsetLoginData.kt | 9 ++ .../ui/view/sigin/data/RequsetSignUpdata.kt | 8 ++ .../ui/view/sigin/data/ResponseLoginData.kt | 15 +++ .../ui/view/sigin/data/ResponseSignUpData.kt | 17 +++ .../ui/view/sigin/view/SignInActivity.kt | 102 ++++++++++++++++++ .../view/sigin/{ => view}/SignUpActivity.kt | 7 +- .../src/main/res/layout/activity_sign_up.xml | 2 +- .../src/main/res/layout/activity_signin.xml | 2 +- 13 files changed, 207 insertions(+), 73 deletions(-) create mode 100644 29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/Service.kt create mode 100644 29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/ServiceCreater.kt delete mode 100644 29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/SignInActivity.kt create mode 100644 29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/data/RequsetLoginData.kt create mode 100644 29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/data/RequsetSignUpdata.kt create mode 100644 29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/data/ResponseLoginData.kt create mode 100644 29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/data/ResponseSignUpData.kt create mode 100644 29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/view/SignInActivity.kt rename 29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/{ => view}/SignUpActivity.kt (92%) diff --git a/29th_first_semina/app/build.gradle b/29th_first_semina/app/build.gradle index 211b7b2..a83babc 100644 --- a/29th_first_semina/app/build.gradle +++ b/29th_first_semina/app/build.gradle @@ -38,6 +38,9 @@ android { dependencies { + implementation "com.squareup.retrofit2:retrofit:2.9.0" + implementation "com.squareup.retrofit2:converter-gson:2.9.0" + implementation "com.google.code.gson:gson:2.8.6" implementation 'com.github.bumptech.glide:glide:4.12.0' annotationProcessor 'com.github.bumptech.glide:compiler:4.12.0' implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" diff --git a/29th_first_semina/app/src/main/AndroidManifest.xml b/29th_first_semina/app/src/main/AndroidManifest.xml index 09ee285..c8f1704 100644 --- a/29th_first_semina/app/src/main/AndroidManifest.xml +++ b/29th_first_semina/app/src/main/AndroidManifest.xml @@ -5,20 +5,14 @@ - - - - - - - - + @@ -28,7 +22,7 @@ - + diff --git a/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/Service.kt b/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/Service.kt new file mode 100644 index 0000000..99b3808 --- /dev/null +++ b/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/Service.kt @@ -0,0 +1,24 @@ +package com.example.a29th_first_semina.ui.view.sigin + +import android.telecom.Call +import com.example.a29th_first_semina.ui.view.sigin.data.RequsetLoginData +import com.example.a29th_first_semina.ui.view.sigin.data.RequsetSignUpdata +import com.example.a29th_first_semina.ui.view.sigin.data.ResponseLoginData +import com.example.a29th_first_semina.ui.view.sigin.data.ResponseSignUpData +import retrofit2.http.Body +import retrofit2.http.Headers +import retrofit2.http.POST + +interface Service { + @Headers("Content-Type:application/json") + @POST("user/login") + fun postLogin( + @Body body : RequsetLoginData + ) : retrofit2.Call + + + @POST("user/signup") + fun postSignup( + @Body body : RequsetSignUpdata + ) : retrofit2.Call +} \ No newline at end of file diff --git a/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/ServiceCreater.kt b/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/ServiceCreater.kt new file mode 100644 index 0000000..1186e49 --- /dev/null +++ b/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/ServiceCreater.kt @@ -0,0 +1,18 @@ +package com.example.a29th_first_semina.ui.view.sigin + +import retrofit2.Retrofit +import retrofit2.converter.gson.GsonConverterFactory + +object ServiceCreater { + + private const val BASE_URL = "https://asia-northeast3-we-sopt-29.cloudfunctions.net/api/" + + private val retrofit : Retrofit = Retrofit.Builder() + .baseUrl(BASE_URL) + .addConverterFactory(GsonConverterFactory.create()) + .build() + + val service : Service = retrofit.create(Service::class.java) + + +} \ No newline at end of file diff --git a/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/SignInActivity.kt b/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/SignInActivity.kt deleted file mode 100644 index fd1f25e..0000000 --- a/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/SignInActivity.kt +++ /dev/null @@ -1,61 +0,0 @@ -package com.example.a29th_first_semina.ui.view.sigin - -import android.content.Intent -import androidx.appcompat.app.AppCompatActivity -import android.os.Bundle -import android.widget.Toast -import com.example.a29th_first_semina.databinding.ActivitySigninBinding -import com.example.a29th_first_semina.ui.view.home.HomeActivity - -class SignInActivity : AppCompatActivity() { - private lateinit var binding: ActivitySigninBinding - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - binding = ActivitySigninBinding.inflate(layoutInflater) - setContentView(binding.root) - initButtonClickEvent() - - } - - private fun initButtonClickEvent() { - - clickLoginEvent() - clickSignUpEvent() - } - - private fun moveHomeActivity() { - val homeIntent = Intent(this, HomeActivity::class.java) - startActivity(homeIntent) - } - - private fun moveSignUpActivity() { - val signupIntent = Intent(this, SignUpActivity::class.java) - startActivity(signupIntent) - - } - - private fun clickLoginEvent() { - - with(binding) { - btnLogin.setOnClickListener { - val userId = etId.text - val userPassword= etPwd.text - if (userId.isEmpty() || userPassword.isEmpty()) { - Toast.makeText(this@SignInActivity, "로그인 실패", Toast.LENGTH_SHORT).show() - } else { - moveHomeActivity() - } - - } - - } - - } - - private fun clickSignUpEvent() { - binding.tvSignup.setOnClickListener { - moveSignUpActivity() - } - - } -} \ No newline at end of file diff --git a/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/data/RequsetLoginData.kt b/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/data/RequsetLoginData.kt new file mode 100644 index 0000000..1c21f47 --- /dev/null +++ b/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/data/RequsetLoginData.kt @@ -0,0 +1,9 @@ +package com.example.a29th_first_semina.ui.view.sigin.data + +import com.google.gson.annotations.SerializedName + +data class RequsetLoginData( + @SerializedName("email") + val email : String, + val password : String, +) diff --git a/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/data/RequsetSignUpdata.kt b/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/data/RequsetSignUpdata.kt new file mode 100644 index 0000000..8eb3dec --- /dev/null +++ b/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/data/RequsetSignUpdata.kt @@ -0,0 +1,8 @@ +package com.example.a29th_first_semina.ui.view.sigin.data + +data class RequsetSignUpdata( + val email : String, + val name : String, + val password : String, + +) diff --git a/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/data/ResponseLoginData.kt b/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/data/ResponseLoginData.kt new file mode 100644 index 0000000..bced1c6 --- /dev/null +++ b/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/data/ResponseLoginData.kt @@ -0,0 +1,15 @@ +package com.example.a29th_first_semina.ui.view.sigin.data + +data class ResponseLoginData( + val status : Int, + val success : Boolean, + val message : String, + val data : Data +) { + + data class Data( + val id: Int, + val name: String, + val email: String + ) +} diff --git a/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/data/ResponseSignUpData.kt b/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/data/ResponseSignUpData.kt new file mode 100644 index 0000000..f8b1388 --- /dev/null +++ b/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/data/ResponseSignUpData.kt @@ -0,0 +1,17 @@ +package com.example.a29th_first_semina.ui.view.sigin.data + +data class ResponseSignUpData( + + val status : Int, + val success : Boolean, + val message : String, + val data : Data +) { + + data class Data( + val id: Int, + val name: String, + val email: String + + ) +} diff --git a/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/view/SignInActivity.kt b/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/view/SignInActivity.kt new file mode 100644 index 0000000..77ef9b0 --- /dev/null +++ b/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/view/SignInActivity.kt @@ -0,0 +1,102 @@ +package com.example.a29th_first_semina.ui.view.sigin.view + +import android.content.Intent +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import android.telecom.Call +import android.util.Log +import android.widget.Toast +import com.example.a29th_first_semina.databinding.ActivitySigninBinding +import com.example.a29th_first_semina.ui.view.home.HomeActivity +import com.example.a29th_first_semina.ui.view.sigin.ServiceCreater +import com.example.a29th_first_semina.ui.view.sigin.data.RequsetLoginData +import com.example.a29th_first_semina.ui.view.sigin.data.ResponseLoginData +import retrofit2.Callback +import retrofit2.Response + +class SignInActivity : AppCompatActivity() { + private lateinit var binding: ActivitySigninBinding + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + binding = ActivitySigninBinding.inflate(layoutInflater) + setContentView(binding.root) + initButtonClickEvent() + + } + + private fun initButtonClickEvent() { + + clickLoginEvent() + clickSignUpEvent() + } + + private fun moveHomeActivity() { + val homeIntent = Intent(this, HomeActivity::class.java) + startActivity(homeIntent) + } + + private fun moveSignUpActivity() { + val signupIntent = Intent(this, SignUpActivity::class.java) + startActivity(signupIntent) + + } + + private fun clickLoginEvent() { + + with(binding) { + btnLogin.setOnClickListener { + val userId = etId.text + val userPassword= etPwd.text + if (userId.isEmpty() || userPassword.isEmpty()) { + Toast.makeText(this@SignInActivity, "아이디/비번 둘 다 입력해라", Toast.LENGTH_SHORT).show() + } else { + initNetwork() + } + + } + + } + + } + + private fun clickSignUpEvent() { + binding.tvSignup.setOnClickListener { + moveSignUpActivity() + } + + } + + private fun initNetwork(){ + val requsetLoginData = RequsetLoginData( + email = binding.etId.text.toString(), + password = binding.etPwd.text.toString() + ) + + val call : retrofit2.Call = ServiceCreater.service.postLogin(requsetLoginData) + + call.enqueue(object : Callback{ + override fun onResponse( + call: retrofit2.Call, + response: Response + ) { + if(response.isSuccessful){ + val data = response.body()?.data + moveHomeActivity() + Log.d("서버통신 상태",response.body()?.status.toString()) + } + else { + Toast.makeText( + this@SignInActivity, + response.body()?.status.toString(), + Toast.LENGTH_SHORT + ).show() + Log.d("서버통신 상태", response.body()?.status.toString()) + } + } + + override fun onFailure(call: retrofit2.Call, t: Throwable) { + Log.d("로그인통신 실패","실패임") + } + }) + } +} \ No newline at end of file diff --git a/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/SignUpActivity.kt b/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/view/SignUpActivity.kt similarity index 92% rename from 29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/SignUpActivity.kt rename to 29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/view/SignUpActivity.kt index 199b107..6eed54e 100644 --- a/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/SignUpActivity.kt +++ b/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/view/SignUpActivity.kt @@ -1,4 +1,4 @@ -package com.example.a29th_first_semina.ui.view.sigin +package com.example.a29th_first_semina.ui.view.sigin.view import androidx.appcompat.app.AppCompatActivity import android.os.Bundle @@ -37,5 +37,10 @@ class SignUpActivity : AppCompatActivity() { } + } + + private fun initNetwork() { + + } } \ No newline at end of file diff --git a/29th_first_semina/app/src/main/res/layout/activity_sign_up.xml b/29th_first_semina/app/src/main/res/layout/activity_sign_up.xml index f39715a..83764bf 100644 --- a/29th_first_semina/app/src/main/res/layout/activity_sign_up.xml +++ b/29th_first_semina/app/src/main/res/layout/activity_sign_up.xml @@ -5,7 +5,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:background="@color/white" - tools:context=".ui.view.sigin.SignUpActivity"> + tools:context=".ui.view.sigin.view.SignUpActivity"> + tools:context=".ui.view.sigin.view.SignInActivity"> Date: Wed, 22 Dec 2021 03:08:48 +0900 Subject: [PATCH 02/12] [FEAT] signup network --- .../ui/view/sigin/view/SignUpActivity.kt | 37 ++++++++++++++++++- .../src/main/res/layout/activity_sign_up.xml | 2 +- 2 files changed, 37 insertions(+), 2 deletions(-) diff --git a/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/view/SignUpActivity.kt b/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/view/SignUpActivity.kt index 6eed54e..e98636e 100644 --- a/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/view/SignUpActivity.kt +++ b/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/view/SignUpActivity.kt @@ -2,8 +2,15 @@ package com.example.a29th_first_semina.ui.view.sigin.view import androidx.appcompat.app.AppCompatActivity import android.os.Bundle +import android.util.Log import android.widget.Toast import com.example.a29th_first_semina.databinding.ActivitySignUpBinding +import com.example.a29th_first_semina.ui.view.sigin.ServiceCreater +import com.example.a29th_first_semina.ui.view.sigin.data.RequsetSignUpdata +import com.example.a29th_first_semina.ui.view.sigin.data.ResponseSignUpData +import retrofit2.Call +import retrofit2.Callback +import retrofit2.Response class SignUpActivity : AppCompatActivity() { private lateinit var binding: ActivitySignUpBinding @@ -31,7 +38,7 @@ class SignUpActivity : AppCompatActivity() { .show() } else { - finish() + initNetwork() } } } @@ -40,6 +47,34 @@ class SignUpActivity : AppCompatActivity() { } private fun initNetwork() { + val requsetSignupData = RequsetSignUpdata( + email = binding.etId.text.toString(), + password = binding.etPwd.toString(), + name = binding.etName.toString() + ) + + val call : Call = ServiceCreater.service.postSignup(requsetSignupData) + + call.enqueue(object : Callback{ + override fun onResponse( + call: Call, + response: Response + ) { + if(response.isSuccessful){ + val data = response.body()?.data + Log.d("서버통신 상태", response.body()?.status.toString()) + finish() + } + + else{ + Log.d("서버통신 상태", response.body()?.status.toString()) + } + } + + override fun onFailure(call: Call, t: Throwable) { + Log.d("서버통신 상태", "실패") + } + }) } diff --git a/29th_first_semina/app/src/main/res/layout/activity_sign_up.xml b/29th_first_semina/app/src/main/res/layout/activity_sign_up.xml index 83764bf..a33cdcb 100644 --- a/29th_first_semina/app/src/main/res/layout/activity_sign_up.xml +++ b/29th_first_semina/app/src/main/res/layout/activity_sign_up.xml @@ -151,7 +151,7 @@ android:id="@+id/btn_signup" android:layout_width="0dp" android:layout_height="wrap_content" - android:background="@drawable/selector_sample_text" + android:background="@drawable/rectangle_fill_pink" android:fontFamily="@font/notosanskr_bold" android:text="@string/signin" android:textColor="@color/white" From 0cd1b272b23abf085667965bf29eae5e60b4afcc Mon Sep 17 00:00:00 2001 From: ssonghyun101 Date: Wed, 22 Dec 2021 03:14:22 +0900 Subject: [PATCH 03/12] [CHORE] change pacakage --- .../a29th_first_semina/ui/view/sigin/{ => di}/Service.kt | 2 +- .../ui/view/sigin/{ => di}/ServiceCreater.kt | 2 +- .../a29th_first_semina/ui/view/sigin/view/SignInActivity.kt | 3 +-- .../a29th_first_semina/ui/view/sigin/view/SignUpActivity.kt | 2 +- 4 files changed, 4 insertions(+), 5 deletions(-) rename 29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/{ => di}/Service.kt (92%) rename 29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/{ => di}/ServiceCreater.kt (88%) diff --git a/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/Service.kt b/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/di/Service.kt similarity index 92% rename from 29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/Service.kt rename to 29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/di/Service.kt index 99b3808..462e1b6 100644 --- a/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/Service.kt +++ b/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/di/Service.kt @@ -1,4 +1,4 @@ -package com.example.a29th_first_semina.ui.view.sigin +package com.example.a29th_first_semina.ui.view.sigin.di import android.telecom.Call import com.example.a29th_first_semina.ui.view.sigin.data.RequsetLoginData diff --git a/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/ServiceCreater.kt b/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/di/ServiceCreater.kt similarity index 88% rename from 29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/ServiceCreater.kt rename to 29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/di/ServiceCreater.kt index 1186e49..aca30ac 100644 --- a/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/ServiceCreater.kt +++ b/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/di/ServiceCreater.kt @@ -1,4 +1,4 @@ -package com.example.a29th_first_semina.ui.view.sigin +package com.example.a29th_first_semina.ui.view.sigin.di import retrofit2.Retrofit import retrofit2.converter.gson.GsonConverterFactory diff --git a/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/view/SignInActivity.kt b/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/view/SignInActivity.kt index 77ef9b0..2e413e8 100644 --- a/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/view/SignInActivity.kt +++ b/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/view/SignInActivity.kt @@ -3,12 +3,11 @@ package com.example.a29th_first_semina.ui.view.sigin.view import android.content.Intent import androidx.appcompat.app.AppCompatActivity import android.os.Bundle -import android.telecom.Call import android.util.Log import android.widget.Toast import com.example.a29th_first_semina.databinding.ActivitySigninBinding import com.example.a29th_first_semina.ui.view.home.HomeActivity -import com.example.a29th_first_semina.ui.view.sigin.ServiceCreater +import com.example.a29th_first_semina.ui.view.sigin.di.ServiceCreater import com.example.a29th_first_semina.ui.view.sigin.data.RequsetLoginData import com.example.a29th_first_semina.ui.view.sigin.data.ResponseLoginData import retrofit2.Callback diff --git a/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/view/SignUpActivity.kt b/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/view/SignUpActivity.kt index e98636e..43010ca 100644 --- a/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/view/SignUpActivity.kt +++ b/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/view/SignUpActivity.kt @@ -5,7 +5,7 @@ import android.os.Bundle import android.util.Log import android.widget.Toast import com.example.a29th_first_semina.databinding.ActivitySignUpBinding -import com.example.a29th_first_semina.ui.view.sigin.ServiceCreater +import com.example.a29th_first_semina.ui.view.sigin.di.ServiceCreater import com.example.a29th_first_semina.ui.view.sigin.data.RequsetSignUpdata import com.example.a29th_first_semina.ui.view.sigin.data.ResponseSignUpData import retrofit2.Call From c9fc1d20a0da37a0dd9456519c5a9a4aa49495bb Mon Sep 17 00:00:00 2001 From: ssonghyun101 Date: Fri, 24 Dec 2021 14:57:02 +0900 Subject: [PATCH 04/12] [FEAT] onbording 1,2,3 fragment --- 29th_first_semina/app/build.gradle | 3 +- .../app/src/main/AndroidManifest.xml | 7 +-- .../ui/view/onboarding/OnboardingActivity.kt | 12 +++++ .../ui/view/onboarding/OnboardingFragment1.kt | 35 ++++++++++++++ .../ui/view/onboarding/OnboardingFragment2.kt | 35 ++++++++++++++ .../ui/view/onboarding/OnbordingFragment3.kt | 33 +++++++++++++ .../main/res/layout/activity_onboarding.xml | 43 +++++++++++++++++ .../main/res/layout/fragment_onboarding1.xml | 47 +++++++++++++++++++ .../main/res/layout/fragment_onboarding2.xml | 46 ++++++++++++++++++ .../main/res/layout/fragment_onbording3.xml | 46 ++++++++++++++++++ .../main/res/navigation/nav_onboarding.xml | 6 +++ .../app/src/main/res/values/strings.xml | 10 ++++ 12 files changed, 319 insertions(+), 4 deletions(-) create mode 100644 29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/onboarding/OnboardingActivity.kt create mode 100644 29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/onboarding/OnboardingFragment1.kt create mode 100644 29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/onboarding/OnboardingFragment2.kt create mode 100644 29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/onboarding/OnbordingFragment3.kt create mode 100644 29th_first_semina/app/src/main/res/layout/activity_onboarding.xml create mode 100644 29th_first_semina/app/src/main/res/layout/fragment_onboarding1.xml create mode 100644 29th_first_semina/app/src/main/res/layout/fragment_onboarding2.xml create mode 100644 29th_first_semina/app/src/main/res/layout/fragment_onbording3.xml create mode 100644 29th_first_semina/app/src/main/res/navigation/nav_onboarding.xml diff --git a/29th_first_semina/app/build.gradle b/29th_first_semina/app/build.gradle index a83babc..edc6684 100644 --- a/29th_first_semina/app/build.gradle +++ b/29th_first_semina/app/build.gradle @@ -53,5 +53,6 @@ dependencies { androidTestImplementation 'androidx.test.ext:junit:1.1.3' androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' implementation "androidx.fragment:fragment-ktx:1.3.6" - + implementation 'androidx.navigation:navigation-fragment-ktx:2.3.5' + implementation 'androidx.navigation:navigation-ui-ktx:2.3.5' } \ No newline at end of file diff --git a/29th_first_semina/app/src/main/AndroidManifest.xml b/29th_first_semina/app/src/main/AndroidManifest.xml index c8f1704..75b0091 100644 --- a/29th_first_semina/app/src/main/AndroidManifest.xml +++ b/29th_first_semina/app/src/main/AndroidManifest.xml @@ -2,16 +2,17 @@ - + + android:theme="@style/Theme.29th_first_semina" + android:usesCleartextTraffic="true"> + + + + + + + + + + + + \ No newline at end of file diff --git a/29th_first_semina/app/src/main/res/layout/fragment_onboarding1.xml b/29th_first_semina/app/src/main/res/layout/fragment_onboarding1.xml new file mode 100644 index 0000000..2594883 --- /dev/null +++ b/29th_first_semina/app/src/main/res/layout/fragment_onboarding1.xml @@ -0,0 +1,47 @@ + + + + + + + + + + \ No newline at end of file diff --git a/29th_first_semina/app/src/main/res/layout/fragment_onboarding2.xml b/29th_first_semina/app/src/main/res/layout/fragment_onboarding2.xml new file mode 100644 index 0000000..c8198dc --- /dev/null +++ b/29th_first_semina/app/src/main/res/layout/fragment_onboarding2.xml @@ -0,0 +1,46 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/29th_first_semina/app/src/main/res/layout/fragment_onbording3.xml b/29th_first_semina/app/src/main/res/layout/fragment_onbording3.xml new file mode 100644 index 0000000..c463ac5 --- /dev/null +++ b/29th_first_semina/app/src/main/res/layout/fragment_onbording3.xml @@ -0,0 +1,46 @@ + + + + + + + + + + \ No newline at end of file diff --git a/29th_first_semina/app/src/main/res/navigation/nav_onboarding.xml b/29th_first_semina/app/src/main/res/navigation/nav_onboarding.xml new file mode 100644 index 0000000..78b9ddb --- /dev/null +++ b/29th_first_semina/app/src/main/res/navigation/nav_onboarding.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/29th_first_semina/app/src/main/res/values/strings.xml b/29th_first_semina/app/src/main/res/values/strings.xml index a71a836..c02aadf 100644 --- a/29th_first_semina/app/src/main/res/values/strings.xml +++ b/29th_first_semina/app/src/main/res/values/strings.xml @@ -39,6 +39,16 @@ 팔로잉 팔로워 준비 중입니다 + + + + 온보딩 + 다음으로 + SOPTHub에 오신걸\n환영합니다! + SOPTHub에서 즐거운 시간\n보내시길 바랍니다! + SOPTHub를\n시작해볼까요? + 시작하기 + Hello blank fragment From 07a095e5bf3b5651bbc2fc8d34114c9e27b002ee Mon Sep 17 00:00:00 2001 From: ssonghyun101 Date: Fri, 24 Dec 2021 15:08:45 +0900 Subject: [PATCH 05/12] [FEAT] navigate onboardingfragment --- .../ui/view/onboarding/OnboardingActivity.kt | 6 +++- .../ui/view/onboarding/OnboardingFragment1.kt | 5 ++++ .../ui/view/onboarding/OnboardingFragment2.kt | 4 +++ .../main/res/navigation/nav_onboarding.xml | 28 +++++++++++++++++-- 4 files changed, 40 insertions(+), 3 deletions(-) diff --git a/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/onboarding/OnboardingActivity.kt b/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/onboarding/OnboardingActivity.kt index 537abd6..6bbae19 100644 --- a/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/onboarding/OnboardingActivity.kt +++ b/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/onboarding/OnboardingActivity.kt @@ -3,10 +3,14 @@ package com.example.a29th_first_semina.ui.view.onboarding import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import com.example.a29th_first_semina.R +import com.example.a29th_first_semina.databinding.ActivityOnboardingBinding class OnboardingActivity : AppCompatActivity() { + private lateinit var binding : ActivityOnboardingBinding override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - setContentView(R.layout.activity_onboarding) + + binding = ActivityOnboardingBinding.inflate(layoutInflater) + setContentView(binding.root) } } \ No newline at end of file diff --git a/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/onboarding/OnboardingFragment1.kt b/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/onboarding/OnboardingFragment1.kt index f3ef01f..14f6025 100644 --- a/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/onboarding/OnboardingFragment1.kt +++ b/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/onboarding/OnboardingFragment1.kt @@ -5,6 +5,7 @@ import androidx.fragment.app.Fragment import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import androidx.navigation.fragment.findNavController import com.example.a29th_first_semina.R import com.example.a29th_first_semina.databinding.FragmentOnboarding1Binding @@ -23,6 +24,10 @@ class OnboardingFragment1 : Fragment() { container, false ) + + binding.btnNext.setOnClickListener { + findNavController().navigate(R.id.action_onboardingFragment1_to_onboardingFragment2) + } return binding.root } diff --git a/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/onboarding/OnboardingFragment2.kt b/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/onboarding/OnboardingFragment2.kt index 551bfda..bd64fdd 100644 --- a/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/onboarding/OnboardingFragment2.kt +++ b/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/onboarding/OnboardingFragment2.kt @@ -5,6 +5,7 @@ import androidx.fragment.app.Fragment import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import androidx.navigation.fragment.findNavController import com.example.a29th_first_semina.R import com.example.a29th_first_semina.databinding.FragmentOnboarding2Binding @@ -23,6 +24,9 @@ class OnboardingFragment2 : Fragment() { container, false ) + binding.btnNext.setOnClickListener { + findNavController().navigate(R.id.action_onboardingFragment2_to_onbordingFragment3) + } return binding.root } diff --git a/29th_first_semina/app/src/main/res/navigation/nav_onboarding.xml b/29th_first_semina/app/src/main/res/navigation/nav_onboarding.xml index 78b9ddb..25653e1 100644 --- a/29th_first_semina/app/src/main/res/navigation/nav_onboarding.xml +++ b/29th_first_semina/app/src/main/res/navigation/nav_onboarding.xml @@ -1,6 +1,30 @@ - + xmlns:tools="http://schemas.android.com/tools" + android:id="@+id/nav_onboarding" + app:startDestination="@id/onboardingFragment1"> + + + + + + + \ No newline at end of file From 81d3d5b989cd7553c9680f1218f143bdba1d9de7 Mon Sep 17 00:00:00 2001 From: ssonghyun101 Date: Fri, 24 Dec 2021 15:30:01 +0900 Subject: [PATCH 06/12] [FEAT] complete --- 29th_first_semina/app/src/main/AndroidManifest.xml | 8 +++++++- .../ui/view/onboarding/OnboardingActivity.kt | 3 +++ .../ui/view/onboarding/OnbordingFragment3.kt | 7 +++++++ .../app/src/main/res/layout/activity_onboarding.xml | 1 + .../app/src/main/res/layout/fragment_onboarding1.xml | 3 ++- .../app/src/main/res/layout/fragment_onboarding2.xml | 3 ++- .../app/src/main/res/layout/fragment_onbording3.xml | 3 ++- 7 files changed, 24 insertions(+), 4 deletions(-) diff --git a/29th_first_semina/app/src/main/AndroidManifest.xml b/29th_first_semina/app/src/main/AndroidManifest.xml index 75b0091..9d770a1 100644 --- a/29th_first_semina/app/src/main/AndroidManifest.xml +++ b/29th_first_semina/app/src/main/AndroidManifest.xml @@ -12,7 +12,13 @@ android:supportsRtl="true" android:theme="@style/Theme.29th_first_semina" android:usesCleartextTraffic="true"> - + + + + + + + diff --git a/29th_first_semina/app/src/main/res/layout/fragment_onboarding1.xml b/29th_first_semina/app/src/main/res/layout/fragment_onboarding1.xml index 2594883..dd84723 100644 --- a/29th_first_semina/app/src/main/res/layout/fragment_onboarding1.xml +++ b/29th_first_semina/app/src/main/res/layout/fragment_onboarding1.xml @@ -26,7 +26,7 @@ android:text="@string/tv_1" android:textColor="@color/pink" android:textSize="20sp" - android:layout_marginTop="100dp" + android:layout_marginTop="70dp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/iv_sopthub" /> @@ -41,6 +41,7 @@ android:textColor="@color/white" android:layout_marginHorizontal="20dp" android:layout_marginTop="350dp" + android:layout_marginBottom="30dp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" /> diff --git a/29th_first_semina/app/src/main/res/layout/fragment_onboarding2.xml b/29th_first_semina/app/src/main/res/layout/fragment_onboarding2.xml index c8198dc..fddeecf 100644 --- a/29th_first_semina/app/src/main/res/layout/fragment_onboarding2.xml +++ b/29th_first_semina/app/src/main/res/layout/fragment_onboarding2.xml @@ -25,7 +25,7 @@ android:text="@string/tv_2" android:textColor="@color/pink" android:textSize="20sp" - android:layout_marginTop="100dp" + android:layout_marginTop="70dp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/iv_sopthub" /> @@ -39,6 +39,7 @@ android:text="@string/btn_next" android:textColor="@color/white" android:layout_marginHorizontal="20dp" + android:layout_marginBottom="30dp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent"/> diff --git a/29th_first_semina/app/src/main/res/layout/fragment_onbording3.xml b/29th_first_semina/app/src/main/res/layout/fragment_onbording3.xml index c463ac5..af0ddbd 100644 --- a/29th_first_semina/app/src/main/res/layout/fragment_onbording3.xml +++ b/29th_first_semina/app/src/main/res/layout/fragment_onbording3.xml @@ -21,7 +21,7 @@ android:id="@+id/tv2" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginTop="100dp" + android:layout_marginTop="70dp" android:fontFamily="@font/notosanskr_bold" android:text="@string/tv_3" android:textColor="@color/pink" @@ -39,6 +39,7 @@ android:text="@string/start" android:textColor="@color/white" android:layout_marginHorizontal="20dp" + android:layout_marginBottom="30dp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" /> From 26782888ffd700f3803340b679a9d51982639077 Mon Sep 17 00:00:00 2001 From: ssonghyun101 Date: Fri, 24 Dec 2021 16:03:53 +0900 Subject: [PATCH 07/12] [FEAT] make SophubUserAuthStorag --- .../SheredPreference/SophubUserAuthStorage.kt | 79 +++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/SheredPreference/SophubUserAuthStorage.kt diff --git a/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/SheredPreference/SophubUserAuthStorage.kt b/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/SheredPreference/SophubUserAuthStorage.kt new file mode 100644 index 0000000..804310e --- /dev/null +++ b/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/SheredPreference/SophubUserAuthStorage.kt @@ -0,0 +1,79 @@ +package com.example.a29th_first_semina.ui.view.sigin.SheredPreference + +import android.content.Context + +object SophubUserAuthStorage { + + private const val STORAGE_KEY = "user_auth" + private const val USER_ID_KEY = "user_id" + private const val USER_PWD_KEY = "user_pwd" + + fun getUserId(context: Context) : String { + val sharedPreferences = context.getSharedPreferences( + "${context.packageName}.$STORAGE_KEY", + Context.MODE_PRIVATE + ) + return sharedPreferences.getString(USER_ID_KEY,"") ?: "" + } + + fun getUserPwd(context: Context) : String { + val sharedPreferences = context.getSharedPreferences( + "${context.packageName}.$STORAGE_KEY", + Context.MODE_PRIVATE + ) + return sharedPreferences.getString(USER_PWD_KEY,"") ?: "" + } + + fun saveUserId(context: Context, id : String) { + val sharedPreferences = context.getSharedPreferences( + "${context.packageName}.$STORAGE_KEY", + Context.MODE_PRIVATE + ) + sharedPreferences.edit() + .putString(USER_ID_KEY,id) + .apply() + } + + fun saveUserPwd(context: Context, pwd : String){ + val sharedPreferences = context.getSharedPreferences( + "${context.packageName}.$STORAGE_KEY", + Context.MODE_PRIVATE + ) + sharedPreferences.edit() + .putString(USER_PWD_KEY,pwd) + .apply() + } + + fun removeUserId(context: Context){ + val sharedPreferences = context.getSharedPreferences( + "${context.packageName}.$STORAGE_KEY", + Context.MODE_PRIVATE + ) + sharedPreferences.edit() + .remove(USER_ID_KEY) + .apply() + } + + fun removeUserPwe(context: Context){ + val sharedPreferences = context.getSharedPreferences( + "${context.packageName}.$STORAGE_KEY", + Context.MODE_PRIVATE + ) + sharedPreferences.edit() + .remove(USER_PWD_KEY) + .apply() + } + + + fun clearAuthStorage(context: Context){ + val sharedPreferences = context.getSharedPreferences( + "${context.packageName}.$STORAGE_KEY", + Context.MODE_PRIVATE + ) + + sharedPreferences.edit() + .clear() + .apply() + } + +} \ No newline at end of file From 2ee1b9a55a6abc1885c99a9824851a38a8cb906b Mon Sep 17 00:00:00 2001 From: ssonghyun101 Date: Fri, 24 Dec 2021 17:10:16 +0900 Subject: [PATCH 08/12] [FEAT] complete auto login and logout --- .../app/src/main/AndroidManifest.xml | 1 + .../ui/view/ProfileFragment.kt | 10 ++++ .../ui/view/setting/SettingActivity.kt | 33 ++++++++++++ .../ui/view/sigin/view/SignInActivity.kt | 31 ++++++++++- .../src/main/res/drawable/ic_main_back.xml | 13 +++++ .../res/drawable/ic_settings_div_grey.xml | 9 ++++ .../src/main/res/layout/activity_setting.xml | 52 +++++++++++++++++++ .../app/src/main/res/values/strings.xml | 3 ++ 8 files changed, 151 insertions(+), 1 deletion(-) create mode 100644 29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/setting/SettingActivity.kt create mode 100644 29th_first_semina/app/src/main/res/drawable/ic_main_back.xml create mode 100644 29th_first_semina/app/src/main/res/drawable/ic_settings_div_grey.xml create mode 100644 29th_first_semina/app/src/main/res/layout/activity_setting.xml diff --git a/29th_first_semina/app/src/main/AndroidManifest.xml b/29th_first_semina/app/src/main/AndroidManifest.xml index 9d770a1..662247f 100644 --- a/29th_first_semina/app/src/main/AndroidManifest.xml +++ b/29th_first_semina/app/src/main/AndroidManifest.xml @@ -12,6 +12,7 @@ android:supportsRtl="true" android:theme="@style/Theme.29th_first_semina" android:usesCleartextTraffic="true"> + diff --git a/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/ProfileFragment.kt b/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/ProfileFragment.kt index 89fd535..9ae387d 100644 --- a/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/ProfileFragment.kt +++ b/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/ProfileFragment.kt @@ -1,5 +1,6 @@ package com.example.a29th_first_semina.ui.view +import android.content.Intent import android.os.Bundle import androidx.fragment.app.Fragment import android.view.LayoutInflater @@ -10,6 +11,7 @@ import com.example.a29th_first_semina.R import com.example.a29th_first_semina.databinding.FragmentProfileBinding import com.example.a29th_first_semina.ui.view.follwer.FollowerFragment import com.example.a29th_first_semina.ui.view.repository.RepositoryFragment +import com.example.a29th_first_semina.ui.view.setting.SettingActivity class ProfileFragment : Fragment() { @@ -28,6 +30,7 @@ class ProfileFragment : Fragment() { ) initImage() initTransactionEvent() + clickBtnSetting() return binding.root } @@ -72,4 +75,11 @@ class ProfileFragment : Fragment() { } + private fun clickBtnSetting() { + binding.btnSetting.setOnClickListener { + startActivity(Intent(context,SettingActivity::class.java)) + } + } + + } \ No newline at end of file diff --git a/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/setting/SettingActivity.kt b/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/setting/SettingActivity.kt new file mode 100644 index 0000000..57fbb6a --- /dev/null +++ b/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/setting/SettingActivity.kt @@ -0,0 +1,33 @@ +package com.example.a29th_first_semina.ui.view.setting + +import android.content.Intent +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle +import android.util.Log +import com.example.a29th_first_semina.R +import com.example.a29th_first_semina.databinding.ActivitySettingBinding +import com.example.a29th_first_semina.ui.view.sigin.SheredPreference.SophubUserAuthStorage +import com.example.a29th_first_semina.ui.view.sigin.view.SignInActivity + +class SettingActivity : AppCompatActivity() { + private lateinit var binding : ActivitySettingBinding + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + binding = ActivitySettingBinding.inflate(layoutInflater) + + + binding.btnBack.setOnClickListener { + finish() + } + + binding.tvLogout.setOnClickListener { + SophubUserAuthStorage.clearAuthStorage(this) + startActivity(Intent(this,SignInActivity::class.java)) + Log.d("자동 로그아웃","해제") + + } + + + setContentView(binding.root) + } +} \ No newline at end of file diff --git a/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/view/SignInActivity.kt b/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/view/SignInActivity.kt index 2e413e8..a531856 100644 --- a/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/view/SignInActivity.kt +++ b/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/view/SignInActivity.kt @@ -7,6 +7,7 @@ import android.util.Log import android.widget.Toast import com.example.a29th_first_semina.databinding.ActivitySigninBinding import com.example.a29th_first_semina.ui.view.home.HomeActivity +import com.example.a29th_first_semina.ui.view.sigin.SheredPreference.SophubUserAuthStorage import com.example.a29th_first_semina.ui.view.sigin.di.ServiceCreater import com.example.a29th_first_semina.ui.view.sigin.data.RequsetLoginData import com.example.a29th_first_semina.ui.view.sigin.data.ResponseLoginData @@ -19,6 +20,9 @@ class SignInActivity : AppCompatActivity() { super.onCreate(savedInstanceState) binding = ActivitySigninBinding.inflate(layoutInflater) setContentView(binding.root) + + + searchSopthubUserStoage() initButtonClickEvent() } @@ -79,9 +83,16 @@ class SignInActivity : AppCompatActivity() { response: Response ) { if(response.isSuccessful){ - val data = response.body()?.data moveHomeActivity() Log.d("서버통신 상태",response.body()?.status.toString()) + + if(!hasUserAutoData()){ + Log.d("저장소에 있는","아이디 비번 없음") + binding.apply { + SophubUserAuthStorage.saveUserId(this@SignInActivity,etId.text.toString()) + SophubUserAuthStorage.saveUserPwd(this@SignInActivity,etPwd.text.toString()) + } + } } else { Toast.makeText( @@ -98,4 +109,22 @@ class SignInActivity : AppCompatActivity() { } }) } + + private fun searchSopthubUserStoage(){ + if(hasUserAutoData()){ + val requsetLoginData = RequsetLoginData( + email = binding.etId.text.toString(), + password = binding.etPwd.text.toString() + ) + + ServiceCreater.service.postLogin(requsetLoginData) + Log.d("자동 로그인","성공") + moveHomeActivity() + + } + + } + + private fun hasUserAutoData() = SophubUserAuthStorage.getUserId(this).isNotEmpty() && + SophubUserAuthStorage.getUserPwd(this).isNotEmpty() } \ No newline at end of file diff --git a/29th_first_semina/app/src/main/res/drawable/ic_main_back.xml b/29th_first_semina/app/src/main/res/drawable/ic_main_back.xml new file mode 100644 index 0000000..77ffb2d --- /dev/null +++ b/29th_first_semina/app/src/main/res/drawable/ic_main_back.xml @@ -0,0 +1,13 @@ + + + diff --git a/29th_first_semina/app/src/main/res/drawable/ic_settings_div_grey.xml b/29th_first_semina/app/src/main/res/drawable/ic_settings_div_grey.xml new file mode 100644 index 0000000..a798659 --- /dev/null +++ b/29th_first_semina/app/src/main/res/drawable/ic_settings_div_grey.xml @@ -0,0 +1,9 @@ + + + diff --git a/29th_first_semina/app/src/main/res/layout/activity_setting.xml b/29th_first_semina/app/src/main/res/layout/activity_setting.xml new file mode 100644 index 0000000..43184f0 --- /dev/null +++ b/29th_first_semina/app/src/main/res/layout/activity_setting.xml @@ -0,0 +1,52 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/29th_first_semina/app/src/main/res/values/strings.xml b/29th_first_semina/app/src/main/res/values/strings.xml index c02aadf..5fddd14 100644 --- a/29th_first_semina/app/src/main/res/values/strings.xml +++ b/29th_first_semina/app/src/main/res/values/strings.xml @@ -49,6 +49,9 @@ SOPTHub를\n시작해볼까요? 시작하기 + + 로그아웃 + 세팅 Hello blank fragment From 1bf4380a492be6661d0f1746cb211633785c901f Mon Sep 17 00:00:00 2001 From: ssonghyun101 Date: Fri, 24 Dec 2021 17:18:32 +0900 Subject: [PATCH 09/12] [FEAT] make ToastUtil --- .../a29th_first_semina/ui/view/home/HomeActivity.kt | 3 ++- .../com/example/a29th_first_semina/util/IntentUtil.kt | 6 ++++++ .../com/example/a29th_first_semina/util/ToastUtil.kt | 11 +++++++++++ 3 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 29th_first_semina/app/src/main/java/com/example/a29th_first_semina/util/IntentUtil.kt create mode 100644 29th_first_semina/app/src/main/java/com/example/a29th_first_semina/util/ToastUtil.kt diff --git a/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/home/HomeActivity.kt b/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/home/HomeActivity.kt index 2b0e4cf..d2b611a 100644 --- a/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/home/HomeActivity.kt +++ b/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/home/HomeActivity.kt @@ -10,6 +10,7 @@ import com.example.a29th_first_semina.ui.view.CameraFragment import com.example.a29th_first_semina.ui.view.ProfileFragment import com.example.a29th_first_semina.ui.view.follwer.FollowerFragment import com.example.a29th_first_semina.ui.view.repository.RepositoryFragment +import com.example.a29th_first_semina.util.ToastUtil.makeToast class HomeActivity : AppCompatActivity() { private lateinit var binding: ActivityHomeBinding @@ -19,7 +20,7 @@ class HomeActivity : AppCompatActivity() { setContentView(binding.root) initButtomNavigation() - Toast.makeText(this, "김송현님 환영합니다", Toast.LENGTH_SHORT).show() + makeToast("김송현님 환영합니다") } private fun initButtomNavigation(){ diff --git a/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/util/IntentUtil.kt b/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/util/IntentUtil.kt new file mode 100644 index 0000000..75dc8ca --- /dev/null +++ b/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/util/IntentUtil.kt @@ -0,0 +1,6 @@ +package com.example.a29th_first_semina.util + +object IntentUtil { + + startActivity(Intent(context,SettingActivity::class.java)) +} \ No newline at end of file diff --git a/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/util/ToastUtil.kt b/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/util/ToastUtil.kt new file mode 100644 index 0000000..0d81f05 --- /dev/null +++ b/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/util/ToastUtil.kt @@ -0,0 +1,11 @@ +package com.example.a29th_first_semina.util + +import android.content.Context +import android.widget.Toast + +object ToastUtil { + + fun Context.makeToast(message : String){ + Toast.makeText(this,message,Toast.LENGTH_SHORT).show() + } +} \ No newline at end of file From 493059e167edccc8f4edc500ad95de94dbe091c4 Mon Sep 17 00:00:00 2001 From: ssonghyun101 Date: Fri, 24 Dec 2021 17:44:19 +0900 Subject: [PATCH 10/12] [DOCS] delete error code --- .../a29th_first_semina/ui/view/ProfileFragment.kt | 4 ++-- .../ui/view/onboarding/OnbordingFragment3.kt | 4 ++-- .../ui/view/setting/SettingActivity.kt | 3 ++- .../ui/view/sigin/view/SignInActivity.kt | 12 ++++++------ .../ui/view/sigin/view/SignUpActivity.kt | 4 ++-- .../example/a29th_first_semina/util/IntentUtil.kt | 7 ++++++- 6 files changed, 20 insertions(+), 14 deletions(-) diff --git a/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/ProfileFragment.kt b/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/ProfileFragment.kt index 9ae387d..9e9b068 100644 --- a/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/ProfileFragment.kt +++ b/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/ProfileFragment.kt @@ -1,6 +1,5 @@ package com.example.a29th_first_semina.ui.view -import android.content.Intent import android.os.Bundle import androidx.fragment.app.Fragment import android.view.LayoutInflater @@ -12,6 +11,7 @@ import com.example.a29th_first_semina.databinding.FragmentProfileBinding import com.example.a29th_first_semina.ui.view.follwer.FollowerFragment import com.example.a29th_first_semina.ui.view.repository.RepositoryFragment import com.example.a29th_first_semina.ui.view.setting.SettingActivity +import com.example.a29th_first_semina.util.IntentUtil.moveActivity class ProfileFragment : Fragment() { @@ -77,7 +77,7 @@ class ProfileFragment : Fragment() { private fun clickBtnSetting() { binding.btnSetting.setOnClickListener { - startActivity(Intent(context,SettingActivity::class.java)) + moveActivity(context,SettingActivity::class.java) } } diff --git a/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/onboarding/OnbordingFragment3.kt b/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/onboarding/OnbordingFragment3.kt index b8ab7bc..9359321 100644 --- a/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/onboarding/OnbordingFragment3.kt +++ b/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/onboarding/OnbordingFragment3.kt @@ -1,6 +1,5 @@ package com.example.a29th_first_semina.ui.view.onboarding -import android.content.Intent import android.os.Bundle import androidx.fragment.app.Fragment import android.view.LayoutInflater @@ -8,6 +7,7 @@ import android.view.View import android.view.ViewGroup import com.example.a29th_first_semina.databinding.FragmentOnbording3Binding import com.example.a29th_first_semina.ui.view.sigin.view.SignInActivity +import com.example.a29th_first_semina.util.IntentUtil class OnbordingFragment3 : Fragment() { private var _binding : FragmentOnbording3Binding ?= null @@ -25,7 +25,7 @@ class OnbordingFragment3 : Fragment() { ) binding.btnNext.setOnClickListener { - startActivity(Intent(context, SignInActivity::class.java)) + IntentUtil.moveActivity(context, SignInActivity::class.java) requireActivity().finish() } return binding.root diff --git a/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/setting/SettingActivity.kt b/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/setting/SettingActivity.kt index 57fbb6a..9cf20dc 100644 --- a/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/setting/SettingActivity.kt +++ b/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/setting/SettingActivity.kt @@ -8,6 +8,7 @@ import com.example.a29th_first_semina.R import com.example.a29th_first_semina.databinding.ActivitySettingBinding import com.example.a29th_first_semina.ui.view.sigin.SheredPreference.SophubUserAuthStorage import com.example.a29th_first_semina.ui.view.sigin.view.SignInActivity +import com.example.a29th_first_semina.util.IntentUtil class SettingActivity : AppCompatActivity() { private lateinit var binding : ActivitySettingBinding @@ -22,7 +23,7 @@ class SettingActivity : AppCompatActivity() { binding.tvLogout.setOnClickListener { SophubUserAuthStorage.clearAuthStorage(this) - startActivity(Intent(this,SignInActivity::class.java)) + IntentUtil.moveActivity(this, SignInActivity::class.java) Log.d("자동 로그아웃","해제") } diff --git a/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/view/SignInActivity.kt b/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/view/SignInActivity.kt index a531856..75a85cf 100644 --- a/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/view/SignInActivity.kt +++ b/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/view/SignInActivity.kt @@ -11,6 +11,8 @@ import com.example.a29th_first_semina.ui.view.sigin.SheredPreference.SophubUserA import com.example.a29th_first_semina.ui.view.sigin.di.ServiceCreater import com.example.a29th_first_semina.ui.view.sigin.data.RequsetLoginData import com.example.a29th_first_semina.ui.view.sigin.data.ResponseLoginData +import com.example.a29th_first_semina.util.IntentUtil +import com.example.a29th_first_semina.util.ToastUtil.makeToast import retrofit2.Callback import retrofit2.Response @@ -34,14 +36,12 @@ class SignInActivity : AppCompatActivity() { } private fun moveHomeActivity() { - val homeIntent = Intent(this, HomeActivity::class.java) - startActivity(homeIntent) + IntentUtil.moveActivity(this, HomeActivity::class.java) + } private fun moveSignUpActivity() { - val signupIntent = Intent(this, SignUpActivity::class.java) - startActivity(signupIntent) - + IntentUtil.moveActivity(this, SignUpActivity::class.java) } private fun clickLoginEvent() { @@ -51,7 +51,7 @@ class SignInActivity : AppCompatActivity() { val userId = etId.text val userPassword= etPwd.text if (userId.isEmpty() || userPassword.isEmpty()) { - Toast.makeText(this@SignInActivity, "아이디/비번 둘 다 입력해라", Toast.LENGTH_SHORT).show() + makeToast("아이디/비번 둘 다 입력해라") } else { initNetwork() } diff --git a/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/view/SignUpActivity.kt b/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/view/SignUpActivity.kt index 43010ca..56f14c0 100644 --- a/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/view/SignUpActivity.kt +++ b/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/view/SignUpActivity.kt @@ -8,6 +8,7 @@ import com.example.a29th_first_semina.databinding.ActivitySignUpBinding import com.example.a29th_first_semina.ui.view.sigin.di.ServiceCreater import com.example.a29th_first_semina.ui.view.sigin.data.RequsetSignUpdata import com.example.a29th_first_semina.ui.view.sigin.data.ResponseSignUpData +import com.example.a29th_first_semina.util.ToastUtil.makeToast import retrofit2.Call import retrofit2.Callback import retrofit2.Response @@ -34,8 +35,7 @@ class SignUpActivity : AppCompatActivity() { btnSignup.setOnClickListener { if (userName.isEmpty() || userId.isEmpty() || userPwd.isEmpty() ){ - Toast.makeText(this@SignUpActivity, "입력되지 않은 정보가 있습니다", Toast.LENGTH_SHORT) - .show() + makeToast("입력되지 않은 정보가 있습니다") } else { initNetwork() diff --git a/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/util/IntentUtil.kt b/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/util/IntentUtil.kt index 75dc8ca..46e2db8 100644 --- a/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/util/IntentUtil.kt +++ b/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/util/IntentUtil.kt @@ -1,6 +1,11 @@ package com.example.a29th_first_semina.util +import android.content.Context +import android.content.Intent object IntentUtil { + fun moveActivity(context: Context?, activity: Class<*>){ + val intent = Intent(context,activity) + context?.startActivity(intent) + } - startActivity(Intent(context,SettingActivity::class.java)) } \ No newline at end of file From 1f34cc235e28cba122f9714b5a8a0be7d41ad00a Mon Sep 17 00:00:00 2001 From: ssonghyun101 Date: Fri, 24 Dec 2021 17:46:31 +0900 Subject: [PATCH 11/12] [FEAT] make IntentUtil --- .../main/java/com/example/a29th_first_semina/util/IntentUtil.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/util/IntentUtil.kt b/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/util/IntentUtil.kt index 46e2db8..4ec31ed 100644 --- a/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/util/IntentUtil.kt +++ b/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/util/IntentUtil.kt @@ -6,6 +6,7 @@ object IntentUtil { fun moveActivity(context: Context?, activity: Class<*>){ val intent = Intent(context,activity) context?.startActivity(intent) + } } \ No newline at end of file From 06d7c0e13256f20c50cc164d835a2ae3139b7ff7 Mon Sep 17 00:00:00 2001 From: ssonghyun101 Date: Fri, 24 Dec 2021 18:04:20 +0900 Subject: [PATCH 12/12] [FEAT] update IntentUtil --- .../ui/view/sigin/view/SignInActivity.kt | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/view/SignInActivity.kt b/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/view/SignInActivity.kt index 75a85cf..64ebb52 100644 --- a/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/view/SignInActivity.kt +++ b/29th_first_semina/app/src/main/java/com/example/a29th_first_semina/ui/view/sigin/view/SignInActivity.kt @@ -37,12 +37,8 @@ class SignInActivity : AppCompatActivity() { private fun moveHomeActivity() { IntentUtil.moveActivity(this, HomeActivity::class.java) - } - private fun moveSignUpActivity() { - IntentUtil.moveActivity(this, SignUpActivity::class.java) - } private fun clickLoginEvent() { @@ -55,16 +51,13 @@ class SignInActivity : AppCompatActivity() { } else { initNetwork() } - } - } - } private fun clickSignUpEvent() { binding.tvSignup.setOnClickListener { - moveSignUpActivity() + IntentUtil.moveActivity(this, SignUpActivity::class.java) } } @@ -119,7 +112,7 @@ class SignInActivity : AppCompatActivity() { ServiceCreater.service.postLogin(requsetLoginData) Log.d("자동 로그인","성공") - moveHomeActivity() + IntentUtil.moveActivity(this, HomeActivity::class.java) }