diff --git a/app/build.gradle b/app/build.gradle index c921f8b..09ae771 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -4,6 +4,7 @@ plugins { id 'kotlin-kapt' id 'dagger.hilt.android.plugin' id("com.google.devtools.ksp") version("1.8.0-1.0.9") + id 'org.jetbrains.kotlin.android' } android { @@ -67,6 +68,7 @@ dependencies { implementation 'androidx.legacy:legacy-support-v4:1.0.0' implementation 'androidx.databinding:databinding-runtime:7.4.0' implementation 'com.android.car.ui:car-ui-lib:2.3.0' + implementation 'androidx.core:core-ktx:+' androidTestImplementation "androidx.arch.core:core-testing:$arch_version" implementation 'androidx.lifecycle:lifecycle-viewmodel-savedstate:2.5.1' implementation 'androidx.fragment:fragment-ktx:1.5.5' @@ -75,7 +77,6 @@ dependencies { implementation "androidx.room:room-ktx:$room_version" implementation("androidx.room:room-runtime:$room_version") annotationProcessor("androidx.room:room-compiler:$room_version") - kapt("androidx.room:room-compiler:$room_version") implementation "androidx.room:room-rxjava2:$room_version" testImplementation "androidx.room:room-testing:$room_version" ksp("androidx.room:room-compiler:$room_version") @@ -122,8 +123,11 @@ dependencies { //naver maps implementation "com.naver.maps:map-sdk:$naver_map_version" + //location request implementation "com.google.android.gms:play-services-location:$fused_location_provider_client_version" + + implementation 'androidx.core:core-ktx:1.9.0' implementation 'androidx.appcompat:appcompat:1.6.0' @@ -132,6 +136,7 @@ dependencies { testImplementation 'junit:junit:4.13.2' androidTestImplementation 'androidx.test.ext:junit:1.1.5' androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' + } kapt { diff --git a/app/src/debug/ic_cazait-playstore.png b/app/src/debug/ic_cazait-playstore.png new file mode 100644 index 0000000..48ba205 Binary files /dev/null and b/app/src/debug/ic_cazait-playstore.png differ diff --git a/app/src/debug/res/mipmap-anydpi-v26/ic_kazait.xml b/app/src/debug/res/mipmap-anydpi-v26/ic_cazait.xml similarity index 75% rename from app/src/debug/res/mipmap-anydpi-v26/ic_kazait.xml rename to app/src/debug/res/mipmap-anydpi-v26/ic_cazait.xml index 2e46a73..ab9eabc 100644 --- a/app/src/debug/res/mipmap-anydpi-v26/ic_kazait.xml +++ b/app/src/debug/res/mipmap-anydpi-v26/ic_cazait.xml @@ -1,5 +1,5 @@ - + \ No newline at end of file diff --git a/app/src/debug/res/mipmap-anydpi-v26/ic_kazait_round.xml b/app/src/debug/res/mipmap-anydpi-v26/ic_cazait_round.xml similarity index 75% rename from app/src/debug/res/mipmap-anydpi-v26/ic_kazait_round.xml rename to app/src/debug/res/mipmap-anydpi-v26/ic_cazait_round.xml index 2e46a73..ab9eabc 100644 --- a/app/src/debug/res/mipmap-anydpi-v26/ic_kazait_round.xml +++ b/app/src/debug/res/mipmap-anydpi-v26/ic_cazait_round.xml @@ -1,5 +1,5 @@ - + \ No newline at end of file diff --git a/app/src/debug/res/mipmap-hdpi/ic_cazait.png b/app/src/debug/res/mipmap-hdpi/ic_cazait.png new file mode 100644 index 0000000..12f78b8 Binary files /dev/null and b/app/src/debug/res/mipmap-hdpi/ic_cazait.png differ diff --git a/app/src/debug/res/mipmap-hdpi/ic_cazait_foreground.png b/app/src/debug/res/mipmap-hdpi/ic_cazait_foreground.png new file mode 100644 index 0000000..bd2cf74 Binary files /dev/null and b/app/src/debug/res/mipmap-hdpi/ic_cazait_foreground.png differ diff --git a/app/src/debug/res/mipmap-hdpi/ic_cazait_round.png b/app/src/debug/res/mipmap-hdpi/ic_cazait_round.png new file mode 100644 index 0000000..7f03f54 Binary files /dev/null and b/app/src/debug/res/mipmap-hdpi/ic_cazait_round.png differ diff --git a/app/src/debug/res/mipmap-hdpi/ic_kazait.png b/app/src/debug/res/mipmap-hdpi/ic_kazait.png deleted file mode 100644 index d9f63d9..0000000 Binary files a/app/src/debug/res/mipmap-hdpi/ic_kazait.png and /dev/null differ diff --git a/app/src/debug/res/mipmap-hdpi/ic_kazait_foreground.png b/app/src/debug/res/mipmap-hdpi/ic_kazait_foreground.png deleted file mode 100644 index b4533af..0000000 Binary files a/app/src/debug/res/mipmap-hdpi/ic_kazait_foreground.png and /dev/null differ diff --git a/app/src/debug/res/mipmap-hdpi/ic_kazait_round.png b/app/src/debug/res/mipmap-hdpi/ic_kazait_round.png deleted file mode 100644 index 8ea620a..0000000 Binary files a/app/src/debug/res/mipmap-hdpi/ic_kazait_round.png and /dev/null differ diff --git a/app/src/debug/res/mipmap-mdpi/ic_cazait.png b/app/src/debug/res/mipmap-mdpi/ic_cazait.png new file mode 100644 index 0000000..4a44063 Binary files /dev/null and b/app/src/debug/res/mipmap-mdpi/ic_cazait.png differ diff --git a/app/src/debug/res/mipmap-mdpi/ic_cazait_foreground.png b/app/src/debug/res/mipmap-mdpi/ic_cazait_foreground.png new file mode 100644 index 0000000..63e732d Binary files /dev/null and b/app/src/debug/res/mipmap-mdpi/ic_cazait_foreground.png differ diff --git a/app/src/debug/res/mipmap-mdpi/ic_cazait_round.png b/app/src/debug/res/mipmap-mdpi/ic_cazait_round.png new file mode 100644 index 0000000..ac8d2c1 Binary files /dev/null and b/app/src/debug/res/mipmap-mdpi/ic_cazait_round.png differ diff --git a/app/src/debug/res/mipmap-mdpi/ic_kazait.png b/app/src/debug/res/mipmap-mdpi/ic_kazait.png deleted file mode 100644 index c1249e3..0000000 Binary files a/app/src/debug/res/mipmap-mdpi/ic_kazait.png and /dev/null differ diff --git a/app/src/debug/res/mipmap-mdpi/ic_kazait_foreground.png b/app/src/debug/res/mipmap-mdpi/ic_kazait_foreground.png deleted file mode 100644 index 475939a..0000000 Binary files a/app/src/debug/res/mipmap-mdpi/ic_kazait_foreground.png and /dev/null differ diff --git a/app/src/debug/res/mipmap-mdpi/ic_kazait_round.png b/app/src/debug/res/mipmap-mdpi/ic_kazait_round.png deleted file mode 100644 index 818661d..0000000 Binary files a/app/src/debug/res/mipmap-mdpi/ic_kazait_round.png and /dev/null differ diff --git a/app/src/debug/res/mipmap-xhdpi/ic_cazait.png b/app/src/debug/res/mipmap-xhdpi/ic_cazait.png new file mode 100644 index 0000000..a8e56a8 Binary files /dev/null and b/app/src/debug/res/mipmap-xhdpi/ic_cazait.png differ diff --git a/app/src/debug/res/mipmap-xhdpi/ic_cazait_foreground.png b/app/src/debug/res/mipmap-xhdpi/ic_cazait_foreground.png new file mode 100644 index 0000000..7a860b7 Binary files /dev/null and b/app/src/debug/res/mipmap-xhdpi/ic_cazait_foreground.png differ diff --git a/app/src/debug/res/mipmap-xhdpi/ic_cazait_round.png b/app/src/debug/res/mipmap-xhdpi/ic_cazait_round.png new file mode 100644 index 0000000..68bb9e0 Binary files /dev/null and b/app/src/debug/res/mipmap-xhdpi/ic_cazait_round.png differ diff --git a/app/src/debug/res/mipmap-xhdpi/ic_kazait.png b/app/src/debug/res/mipmap-xhdpi/ic_kazait.png deleted file mode 100644 index 35b2e22..0000000 Binary files a/app/src/debug/res/mipmap-xhdpi/ic_kazait.png and /dev/null differ diff --git a/app/src/debug/res/mipmap-xhdpi/ic_kazait_foreground.png b/app/src/debug/res/mipmap-xhdpi/ic_kazait_foreground.png deleted file mode 100644 index cf14b0a..0000000 Binary files a/app/src/debug/res/mipmap-xhdpi/ic_kazait_foreground.png and /dev/null differ diff --git a/app/src/debug/res/mipmap-xhdpi/ic_kazait_round.png b/app/src/debug/res/mipmap-xhdpi/ic_kazait_round.png deleted file mode 100644 index a21b4de..0000000 Binary files a/app/src/debug/res/mipmap-xhdpi/ic_kazait_round.png and /dev/null differ diff --git a/app/src/debug/res/mipmap-xxhdpi/ic_cazait.png b/app/src/debug/res/mipmap-xxhdpi/ic_cazait.png new file mode 100644 index 0000000..e96444a Binary files /dev/null and b/app/src/debug/res/mipmap-xxhdpi/ic_cazait.png differ diff --git a/app/src/debug/res/mipmap-xxhdpi/ic_cazait_foreground.png b/app/src/debug/res/mipmap-xxhdpi/ic_cazait_foreground.png new file mode 100644 index 0000000..73cbced Binary files /dev/null and b/app/src/debug/res/mipmap-xxhdpi/ic_cazait_foreground.png differ diff --git a/app/src/debug/res/mipmap-xxhdpi/ic_cazait_round.png b/app/src/debug/res/mipmap-xxhdpi/ic_cazait_round.png new file mode 100644 index 0000000..48cb3b4 Binary files /dev/null and b/app/src/debug/res/mipmap-xxhdpi/ic_cazait_round.png differ diff --git a/app/src/debug/res/mipmap-xxhdpi/ic_kazait.png b/app/src/debug/res/mipmap-xxhdpi/ic_kazait.png deleted file mode 100644 index 3416a49..0000000 Binary files a/app/src/debug/res/mipmap-xxhdpi/ic_kazait.png and /dev/null differ diff --git a/app/src/debug/res/mipmap-xxhdpi/ic_kazait_foreground.png b/app/src/debug/res/mipmap-xxhdpi/ic_kazait_foreground.png deleted file mode 100644 index a97ddc6..0000000 Binary files a/app/src/debug/res/mipmap-xxhdpi/ic_kazait_foreground.png and /dev/null differ diff --git a/app/src/debug/res/mipmap-xxhdpi/ic_kazait_round.png b/app/src/debug/res/mipmap-xxhdpi/ic_kazait_round.png deleted file mode 100644 index 02dc338..0000000 Binary files a/app/src/debug/res/mipmap-xxhdpi/ic_kazait_round.png and /dev/null differ diff --git a/app/src/debug/res/mipmap-xxxhdpi/ic_cazait.png b/app/src/debug/res/mipmap-xxxhdpi/ic_cazait.png new file mode 100644 index 0000000..cb534d5 Binary files /dev/null and b/app/src/debug/res/mipmap-xxxhdpi/ic_cazait.png differ diff --git a/app/src/debug/res/mipmap-xxxhdpi/ic_cazait_foreground.png b/app/src/debug/res/mipmap-xxxhdpi/ic_cazait_foreground.png new file mode 100644 index 0000000..718b969 Binary files /dev/null and b/app/src/debug/res/mipmap-xxxhdpi/ic_cazait_foreground.png differ diff --git a/app/src/debug/res/mipmap-xxxhdpi/ic_cazait_round.png b/app/src/debug/res/mipmap-xxxhdpi/ic_cazait_round.png new file mode 100644 index 0000000..138fe16 Binary files /dev/null and b/app/src/debug/res/mipmap-xxxhdpi/ic_cazait_round.png differ diff --git a/app/src/debug/res/mipmap-xxxhdpi/ic_kazait.png b/app/src/debug/res/mipmap-xxxhdpi/ic_kazait.png deleted file mode 100644 index 2ab5b19..0000000 Binary files a/app/src/debug/res/mipmap-xxxhdpi/ic_kazait.png and /dev/null differ diff --git a/app/src/debug/res/mipmap-xxxhdpi/ic_kazait_foreground.png b/app/src/debug/res/mipmap-xxxhdpi/ic_kazait_foreground.png deleted file mode 100644 index 30a41ed..0000000 Binary files a/app/src/debug/res/mipmap-xxxhdpi/ic_kazait_foreground.png and /dev/null differ diff --git a/app/src/debug/res/mipmap-xxxhdpi/ic_kazait_round.png b/app/src/debug/res/mipmap-xxxhdpi/ic_kazait_round.png deleted file mode 100644 index 386ebc0..0000000 Binary files a/app/src/debug/res/mipmap-xxxhdpi/ic_kazait_round.png and /dev/null differ diff --git a/app/src/debug/res/values/ic_cazait_background.xml b/app/src/debug/res/values/ic_cazait_background.xml index fe07ac8..fe07b14 100644 --- a/app/src/debug/res/values/ic_cazait_background.xml +++ b/app/src/debug/res/values/ic_cazait_background.xml @@ -1,4 +1,4 @@ - #FAF0DD + #F5F5F5 \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 2423c87..01f8aa8 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -11,9 +11,9 @@ android:allowBackup="true" android:dataExtractionRules="@xml/data_extraction_rules" android:fullBackupContent="@xml/backup_rules" - android:icon="@mipmap/ic_kazait" + android:icon="@mipmap/ic_cazait" android:label="@string/app_name" - android:roundIcon="@mipmap/ic_kazait_round" + android:roundIcon="@mipmap/ic_cazait_round" android:supportsRtl="true" android:theme="@style/Theme.CaZaItAndroid" tools:targetApi="31"> @@ -51,7 +51,7 @@ + android:exported="true"> diff --git a/app/src/main/ic_cazait-playstore.png b/app/src/main/ic_cazait-playstore.png new file mode 100644 index 0000000..88e7958 Binary files /dev/null and b/app/src/main/ic_cazait-playstore.png differ diff --git a/app/src/main/java/org/cazait/cazait_android/SignUpDBHelper.kt b/app/src/main/java/org/cazait/cazait_android/SignUpDBHelper.kt new file mode 100644 index 0000000..e7e35fd --- /dev/null +++ b/app/src/main/java/org/cazait/cazait_android/SignUpDBHelper.kt @@ -0,0 +1,49 @@ +package org.cazait.cazait_android + +import android.content.ContentValues +import android.content.Context +import android.database.sqlite.SQLiteDatabase +import android.database.sqlite.SQLiteOpenHelper + +class SignUpDBHelper(context: Context?) : + SQLiteOpenHelper(context, "Login.db", null, 1) { + override fun onCreate(MyDB: SQLiteDatabase) { + MyDB.execSQL("create Table users(username TEXT primary key, password TEXT)") + } + + override fun onUpgrade(MyDB: SQLiteDatabase, i: Int, i1: Int) { + MyDB.execSQL("drop Table if exists users") + } + + fun insertData(username: String?, password: String?): Boolean { + val MyDB = this.writableDatabase + val contentValues = ContentValues() + contentValues.put("username", username) + contentValues.put("password", password) + val result = MyDB.insert("users", null, contentValues) + return if (result == -1L) false else true + } + + fun checkUsername(username: String): Boolean { + val MyDB = this.writableDatabase + var res = true + val cursor = MyDB.rawQuery("Select * from users where username = ?", arrayOf(username)) + if (cursor.count <= 0) res = false + return res + } + + fun checkUserpass(username: String, password: String): Boolean { + val MyDB = this.writableDatabase + var res = true + val cursor = MyDB.rawQuery( + "Select * from users where username = ? and password = ?", + arrayOf(username, password) + ) + if (cursor.count <= 0) res = false + return res + } + + companion object { + const val DBNAME = "Login.db" + } +} diff --git a/app/src/main/java/org/cazait/cazait_android/ui/adapter/CafeListItemAdapter.kt b/app/src/main/java/org/cazait/cazait_android/ui/adapter/CafeListItemAdapter.kt index 06dd65a..529bfbf 100644 --- a/app/src/main/java/org/cazait/cazait_android/ui/adapter/CafeListItemAdapter.kt +++ b/app/src/main/java/org/cazait/cazait_android/ui/adapter/CafeListItemAdapter.kt @@ -4,6 +4,10 @@ import android.content.Context import android.view.LayoutInflater import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Deferred +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.launch import org.cazait.cazait_android.data.model.CafeState import org.cazait.cazait_android.databinding.ItemCafeMainBinding @@ -16,6 +20,7 @@ class CafeListItemAdapter( fun bind(item: CafeState) { binding.cafeState = item } + } override fun getItemCount() = dataset.size diff --git a/app/src/main/java/org/cazait/cazait_android/ui/view/cafelist/CafeListFragment.kt b/app/src/main/java/org/cazait/cazait_android/ui/view/cafelist/CafeListFragment.kt index b452931..9da018e 100644 --- a/app/src/main/java/org/cazait/cazait_android/ui/view/cafelist/CafeListFragment.kt +++ b/app/src/main/java/org/cazait/cazait_android/ui/view/cafelist/CafeListFragment.kt @@ -21,6 +21,7 @@ class CafeListFragment : BaseFragment() { @@ -22,7 +28,10 @@ class MyPageFragment : BaseFragment() { } + override fun initView() { } -} \ No newline at end of file +} + + diff --git a/app/src/main/java/org/cazait/cazait_android/ui/view/signup/SignUpActivity.kt b/app/src/main/java/org/cazait/cazait_android/ui/view/signup/SignUpActivity.kt index eda92a4..941dd9a 100644 --- a/app/src/main/java/org/cazait/cazait_android/ui/view/signup/SignUpActivity.kt +++ b/app/src/main/java/org/cazait/cazait_android/ui/view/signup/SignUpActivity.kt @@ -2,16 +2,26 @@ package org.cazait.cazait_android.ui.view.signup import android.content.Intent import android.os.Bundle +import android.text.Editable +import android.text.TextWatcher +import android.widget.Toast import androidx.appcompat.app.AppCompatActivity import androidx.databinding.DataBindingUtil import dagger.hilt.android.AndroidEntryPoint import org.cazait.cazait_android.R +import org.cazait.cazait_android.SignUpDBHelper import org.cazait.cazait_android.databinding.ActivitySignupBinding import org.cazait.cazait_android.ui.view.login.LoginActivity -import kotlin.text.Typography.dagger @AndroidEntryPoint class SignUpActivity : AppCompatActivity() { + private var idFlag = false + private var passwordFlag = false + private var passwordCheckFlag = false + private var emailFlag = false + private var DB: SignUpDBHelper? = null + + private val binding: ActivitySignupBinding by lazy { DataBindingUtil.setContentView( this, @@ -19,12 +29,247 @@ class SignUpActivity : AppCompatActivity() { ) } + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - setContentView(R.layout.activity_signup) - binding.tvSignupJoin.setOnClickListener { - val back = Intent(this, LoginActivity::class.java) - startActivity(back) + DB = SignUpDBHelper(this) + + binding.btnSignupJoin.setOnClickListener { + val id = binding.etSignupIdExample.editText?.text.toString() + val pw = binding.etSignupPasswordInsert.editText?.text.toString() + val repw = binding.etSignupPasswordInsertMore.editText?.text.toString() + val email = binding.etSignupEmailExample.editText?.text.toString() + if (id == "" || pw == "" || repw == "" || email == "") + Toast.makeText( + this@SignUpActivity, + "회원정보를 전부 입력하세요", + Toast.LENGTH_SHORT + ).show() + else { + if (pw == repw) { + val checkUsername = DB!!.checkUsername(id) + if (checkUsername == false) { + val insert = DB!!.insertData(id, pw) + if (insert == true) { + Toast.makeText( + this@SignUpActivity, + "가입되었습니다", + Toast.LENGTH_SHORT + ).show() + val back = Intent(applicationContext, LoginActivity::class.java) + startActivity(back) + } else { + Toast.makeText( + this@SignUpActivity, + "비밀번호가 일치하지 않습니다", + Toast.LENGTH_SHORT + ).show() + } + } + } + } + } + + binding.etSignupIdExample.editText?.addTextChangedListener(idListener) + binding.etSignupPasswordInsert.editText?.addTextChangedListener(passwordListener) + binding.etSignupPasswordInsertMore.editText?.addTextChangedListener(passwordCheckListener) + binding.etSignupIdExample.hint = resources.getString(R.string.signup_id_example) + binding.etSignupEmailExample.editText?.addTextChangedListener(emailListener) + binding.etSignupIdExample.setOnFocusChangeListener { _, hasFocus -> + if (hasFocus) { + binding.etSignupIdExample.hint = "" + } else { + binding.etSignupIdExample.hint = resources.getString(R.string.signup_id_example) + } + } + + } + + private fun hasSpecialCharacter(string: String): Boolean { + for (i in string.indices) { + if (!Character.isLetterOrDigit(string[i])) { + return true + } + } + return false + } + + + private fun hasAlphabet(string: String): Boolean { + for (i in string.indices) { + if (Character.isAlphabetic(string[i].code)) { + return true + } + } + return false + } + + + fun idRegex(id: String): Boolean { + if ((!hasSpecialCharacter(id)) and (hasAlphabet(id)) and (id.length >= 6)) { + return true + } + return false + } + + fun passwordRegex(password: String): Boolean { + return password.matches("^(?=.*[A-Za-z])(?=.*[0-9])(?=.*[$@$!%*#?&.])[A-Za-z[0-9]$@$!%*#?&.]{8,16}$".toRegex()) + } + + fun passwordCheckRegex(passwordCheck: String): Boolean { + return passwordCheck.matches("^(?=.*[A-Za-z])(?=.*[0-9])(?=.*[$@$!%*#?&.])[A-Za-z[0-9]$@$!%*#?&.]{8,16}$".toRegex()) + } + + fun emailRegex(email: String): Boolean { + val regexEmail = + """^([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5})${'$'}""".toRegex() + return regexEmail.matches(email) + } + + private val idListener = object : TextWatcher { + override fun beforeTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) { + } + + override fun onTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) { } + + override fun afterTextChanged(s: Editable?) { + if (s != null) { + when { + s.isEmpty() -> { + binding.etSignupIdExample.error = "아이디를 입력해주세요." + idFlag = false + } + !idRegex(s.toString()) -> { + binding.etSignupIdExample.error = "아이디 양식이 맞지 않습니다" + idFlag = false + } + else -> { + binding.etSignupIdExample.error = null + idFlag = true + } + } + flagCheck() + } + } + } + private val passwordListener = object : TextWatcher { + override fun beforeTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) { + + } + + override fun onTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) { + } + + override fun afterTextChanged(s: Editable?) { + if (s != null) { + when { + s.isEmpty() -> { + binding.etSignupPasswordInsert.error = "비밀번호를 입력해주세요." + passwordFlag = false + } + !passwordRegex(s.toString()) -> { + binding.etSignupPasswordInsert.error = "영문/숫자/특수문자(공백 제외)으로 8~16자로 조합" + passwordFlag = false + } + !passwordCheckRegex(s.toString()) -> { + binding.etSignupPasswordInsertMore.error = "영문/숫자/특수문자(공백 제외)으로 8~16자로 조합" + passwordCheckFlag = false + } + + s.isNotEmpty() -> { + binding.etSignupPasswordInsert.error = null + passwordFlag = true + when { + binding.etSignupPasswordInsertMore.editText?.text.toString() != "" + && binding.etSignupPasswordInsertMore.editText?.text.toString() != binding.etSignupPasswordInsert.editText?.text.toString() -> { + binding.etSignupPasswordInsertMore.error = "비밀번호가 일치하지 않습니다" + passwordCheckFlag = false + passwordFlag = true + } + else -> { + binding.etSignupPasswordInsertMore.error = null + passwordCheckFlag = true + } + } + } + } + flagCheck() + } + } + } + + private val passwordCheckListener = object : TextWatcher { + override fun beforeTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) { + + } + + override fun onTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) { + } + + override fun afterTextChanged(s: Editable?) { + if (s != null) { + when { + s.isEmpty() -> { + binding.etSignupPasswordInsertMore.error = "비밀번호를 입력해주세요." + passwordFlag = false + } + !passwordCheckRegex(s.toString()) -> { + binding.etSignupPasswordInsertMore.error = "영문/숫자/특수문자(공백 제외)으로 8~16자로 조합" + passwordCheckFlag = false + } + + s.isNotEmpty() -> { + binding.etSignupPasswordInsertMore.error = null + passwordFlag = true + when { + binding.etSignupPasswordInsertMore.editText?.text.toString() != "" + && binding.etSignupPasswordInsertMore.editText?.text.toString() != binding.etSignupPasswordInsert.editText?.text.toString() -> { + binding.etSignupPasswordInsertMore.error = "비밀번호가 일치하지 않습니다" + passwordCheckFlag = false + passwordFlag = true + } + else -> { + binding.etSignupPasswordInsertMore.error = null + passwordCheckFlag = true + } + } + } + } + flagCheck() + } + } + } + + private val emailListener = object : TextWatcher { + override fun beforeTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) { + } + + override fun onTextChanged(p0: CharSequence?, p1: Int, p2: Int, p3: Int) { + } + + override fun afterTextChanged(s: Editable?) { + if (s != null) { + when { + s.isEmpty() -> { + binding.etSignupEmailExample.error = "이메일을 입력해주세요." + emailFlag = false + } + !emailRegex(s.toString()) -> { + binding.etSignupEmailExample.error = "이메일 양식이 맞지 않습니다" + emailFlag = false + } + else -> { + binding.etSignupEmailExample.error = null + emailFlag = true + } + } + flagCheck() + } + } + } + + fun flagCheck() { + binding.btnSignupJoin.isEnabled = idFlag && passwordFlag && passwordCheckFlag && emailFlag } -} \ No newline at end of file +} diff --git a/app/src/main/java/org/cazait/cazait_android/ui/view/signup/SignupActivity.kt b/app/src/main/java/org/cazait/cazait_android/ui/view/signup/SignupActivity.kt deleted file mode 100644 index eda92a4..0000000 --- a/app/src/main/java/org/cazait/cazait_android/ui/view/signup/SignupActivity.kt +++ /dev/null @@ -1,30 +0,0 @@ -package org.cazait.cazait_android.ui.view.signup - -import android.content.Intent -import android.os.Bundle -import androidx.appcompat.app.AppCompatActivity -import androidx.databinding.DataBindingUtil -import dagger.hilt.android.AndroidEntryPoint -import org.cazait.cazait_android.R -import org.cazait.cazait_android.databinding.ActivitySignupBinding -import org.cazait.cazait_android.ui.view.login.LoginActivity -import kotlin.text.Typography.dagger - -@AndroidEntryPoint -class SignUpActivity : AppCompatActivity() { - private val binding: ActivitySignupBinding by lazy { - DataBindingUtil.setContentView( - this, - R.layout.activity_signup - ) - } - - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - setContentView(R.layout.activity_signup) - binding.tvSignupJoin.setOnClickListener { - val back = Intent(this, LoginActivity::class.java) - startActivity(back) - } - } -} \ No newline at end of file diff --git a/app/src/main/res/drawable-hdpi/favorite.9.png b/app/src/main/res/drawable-hdpi/iv_interest_unclick.9.png similarity index 100% rename from app/src/main/res/drawable-hdpi/favorite.9.png rename to app/src/main/res/drawable-hdpi/iv_interest_unclick.9.png diff --git a/app/src/main/res/drawable-mdpi/favorite.9.png b/app/src/main/res/drawable-mdpi/iv_interest_unclick.9.png similarity index 100% rename from app/src/main/res/drawable-mdpi/favorite.9.png rename to app/src/main/res/drawable-mdpi/iv_interest_unclick.9.png diff --git a/app/src/main/res/drawable-v24/logo.png b/app/src/main/res/drawable-v24/logo.png index 3e8efd7..ced6250 100644 Binary files a/app/src/main/res/drawable-v24/logo.png and b/app/src/main/res/drawable-v24/logo.png differ diff --git a/app/src/main/res/drawable-xhdpi/favorite.9.png b/app/src/main/res/drawable-xhdpi/iv_interest_unclick.9.png similarity index 100% rename from app/src/main/res/drawable-xhdpi/favorite.9.png rename to app/src/main/res/drawable-xhdpi/iv_interest_unclick.9.png diff --git a/app/src/main/res/drawable-xxhdpi/favorite.9.png b/app/src/main/res/drawable-xxhdpi/iv_interest_unclick.9.png similarity index 100% rename from app/src/main/res/drawable-xxhdpi/favorite.9.png rename to app/src/main/res/drawable-xxhdpi/iv_interest_unclick.9.png diff --git a/app/src/main/res/drawable-xxxhdpi/favorite.9.png b/app/src/main/res/drawable-xxxhdpi/iv_interest_unclick.9.png similarity index 100% rename from app/src/main/res/drawable-xxxhdpi/favorite.9.png rename to app/src/main/res/drawable-xxxhdpi/iv_interest_unclick.9.png diff --git a/app/src/main/res/drawable/favorite.png b/app/src/main/res/drawable/iv_interest_unclick.png similarity index 100% rename from app/src/main/res/drawable/favorite.png rename to app/src/main/res/drawable/iv_interest_unclick.png diff --git a/app/src/main/res/drawable/round_beige_rectangle.xml b/app/src/main/res/drawable/round_beige_rectangle.xml new file mode 100644 index 0000000..7de139c --- /dev/null +++ b/app/src/main/res/drawable/round_beige_rectangle.xml @@ -0,0 +1,7 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/round_white_rectangle.xml b/app/src/main/res/drawable/round_white_rectangle.xml index 30da9ae..e24fce4 100644 --- a/app/src/main/res/drawable/round_white_rectangle.xml +++ b/app/src/main/res/drawable/round_white_rectangle.xml @@ -3,6 +3,7 @@ android:shape="rectangle"> + \ 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 fc25d62..6942a89 100644 --- a/app/src/main/res/layout/activity_login.xml +++ b/app/src/main/res/layout/activity_login.xml @@ -14,14 +14,24 @@ + + - - - + app:layout_constraintTop_toBottomOf="@+id/tv_login_signup" /> diff --git a/app/src/main/res/layout/activity_signup.xml b/app/src/main/res/layout/activity_signup.xml index 1fbcbed..7743414 100644 --- a/app/src/main/res/layout/activity_signup.xml +++ b/app/src/main/res/layout/activity_signup.xml @@ -2,22 +2,25 @@ + + + @@ -28,19 +31,18 @@ android:layout_height="wrap_content" android:layout_alignBottom="@+id/tv_signup_enrollment" android:layout_marginStart="30dp" - android:layout_marginTop="67dp" + android:layout_marginTop="30dp" android:layout_marginBottom="2dp" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" - app:srcCompat="@drawable/arrow_back" - android:contentDescription="@null" /> + app:srcCompat="@drawable/arrow_back" /> - + app:layout_constraintTop_toBottomOf="@+id/tv_signup_id"> - + + + @@ -120,8 +125,8 @@ android:id="@+id/tv_signup_password" android:layout_width="wrap_content" android:layout_height="19dp" - android:layout_marginStart="29dp" - android:layout_marginTop="27dp" + android:layout_marginStart="39dp" + android:layout_marginTop="15dp" android:text="@string/signup_password" android:textColor="@color/brown" android:textSize="16sp" @@ -129,33 +134,37 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/tv_signup_id_below" /> - + app:layout_constraintTop_toBottomOf="@+id/tv_signup_password" + app:passwordToggleEnabled="true"> + + + - + app:layout_constraintTop_toBottomOf="@+id/tv_signup_password_check" + app:passwordToggleEnabled="true"> + + + - + app:layout_constraintTop_toBottomOf="@+id/tv_signup_email"> - + + + - + tools:context=".SplashActivity"> diff --git a/app/src/main/res/menu/menu_bottom_nav.xml b/app/src/main/res/menu/menu_bottom_nav.xml index 999b53e..43aeb48 100644 --- a/app/src/main/res/menu/menu_bottom_nav.xml +++ b/app/src/main/res/menu/menu_bottom_nav.xml @@ -6,6 +6,11 @@ android:icon="@drawable/bnv_home" android:title="@string/cafe_list_frag_title_home"/> + + + + + + \ No newline at end of file diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_cazait_round.xml b/app/src/main/res/mipmap-anydpi-v26/ic_cazait_round.xml new file mode 100644 index 0000000..ab9eabc --- /dev/null +++ b/app/src/main/res/mipmap-anydpi-v26/ic_cazait_round.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/mipmap-hdpi/ic_cazait.png b/app/src/main/res/mipmap-hdpi/ic_cazait.png new file mode 100644 index 0000000..525ff15 Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/ic_cazait.png differ diff --git a/app/src/main/res/mipmap-hdpi/ic_cazait_foreground.png b/app/src/main/res/mipmap-hdpi/ic_cazait_foreground.png new file mode 100644 index 0000000..525eb65 Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/ic_cazait_foreground.png differ diff --git a/app/src/main/res/mipmap-hdpi/ic_cazait_round.png b/app/src/main/res/mipmap-hdpi/ic_cazait_round.png new file mode 100644 index 0000000..f891c8b Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/ic_cazait_round.png differ diff --git a/app/src/main/res/mipmap-mdpi/ic_cazait.png b/app/src/main/res/mipmap-mdpi/ic_cazait.png new file mode 100644 index 0000000..02c26ea Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/ic_cazait.png differ diff --git a/app/src/main/res/mipmap-mdpi/ic_cazait_foreground.png b/app/src/main/res/mipmap-mdpi/ic_cazait_foreground.png new file mode 100644 index 0000000..7e4c8ef Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/ic_cazait_foreground.png differ diff --git a/app/src/main/res/mipmap-mdpi/ic_cazait_round.png b/app/src/main/res/mipmap-mdpi/ic_cazait_round.png new file mode 100644 index 0000000..eb2bf68 Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/ic_cazait_round.png differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_cazait.png b/app/src/main/res/mipmap-xhdpi/ic_cazait.png new file mode 100644 index 0000000..db950bd Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/ic_cazait.png differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_cazait_foreground.png b/app/src/main/res/mipmap-xhdpi/ic_cazait_foreground.png new file mode 100644 index 0000000..c475be3 Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/ic_cazait_foreground.png differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_cazait_round.png b/app/src/main/res/mipmap-xhdpi/ic_cazait_round.png new file mode 100644 index 0000000..e27d723 Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/ic_cazait_round.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_cazait.png b/app/src/main/res/mipmap-xxhdpi/ic_cazait.png new file mode 100644 index 0000000..af3db9f Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_cazait.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_cazait_foreground.png b/app/src/main/res/mipmap-xxhdpi/ic_cazait_foreground.png new file mode 100644 index 0000000..b48e823 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_cazait_foreground.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_cazait_round.png b/app/src/main/res/mipmap-xxhdpi/ic_cazait_round.png new file mode 100644 index 0000000..26f989c Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_cazait_round.png differ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_cazait.png b/app/src/main/res/mipmap-xxxhdpi/ic_cazait.png new file mode 100644 index 0000000..df9c34a Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/ic_cazait.png differ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_cazait_foreground.png b/app/src/main/res/mipmap-xxxhdpi/ic_cazait_foreground.png new file mode 100644 index 0000000..cabd87b Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/ic_cazait_foreground.png differ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_cazait_round.png b/app/src/main/res/mipmap-xxxhdpi/ic_cazait_round.png new file mode 100644 index 0000000..87453d5 Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/ic_cazait_round.png differ diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 3b98b54..ff805c7 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -8,6 +8,7 @@ #FF000000 #FFFFFFFF #FAF0DD + #E5D3CB @@ -19,10 +20,8 @@ #FF0000 - #FAF0DD - #8A5F5F - #B5B5B5 - #8D6060 + #F5F5F5 + #5D2424 #757575 diff --git a/app/src/main/res/values/ic_cazait_background.xml b/app/src/main/res/values/ic_cazait_background.xml new file mode 100644 index 0000000..fe07b14 --- /dev/null +++ b/app/src/main/res/values/ic_cazait_background.xml @@ -0,0 +1,4 @@ + + + #F5F5F5 + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 566dd52..19239f0 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -101,4 +101,7 @@ 리뷰쓰기 카페는 어떠셨나요? 별점을 남겨주세요. 다른 이용자를 위해 카페 리뷰를 남겨주세요. + + + 관심 매장 \ No newline at end of file diff --git a/build.gradle b/build.gradle index aa1d7df..5ee9166 100644 --- a/build.gradle +++ b/build.gradle @@ -42,6 +42,7 @@ buildscript { } dependencies { classpath("com.google.dagger:hilt-android-gradle-plugin:$hiltVersion") + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } } diff --git a/iv_logo.png b/iv_logo.png new file mode 100644 index 0000000..ced6250 Binary files /dev/null and b/iv_logo.png differ diff --git a/iv_splash.png b/iv_splash.png new file mode 100644 index 0000000..c848c14 Binary files /dev/null and b/iv_splash.png differ