diff --git a/android/app/src/main/java/com/created/team201/presentation/certification/CertificationActivity.kt b/android/app/src/main/java/com/created/team201/presentation/certification/CertificationActivity.kt index 2c94dd99..8068d618 100644 --- a/android/app/src/main/java/com/created/team201/presentation/certification/CertificationActivity.kt +++ b/android/app/src/main/java/com/created/team201/presentation/certification/CertificationActivity.kt @@ -5,8 +5,8 @@ import android.content.Intent import android.content.pm.PackageManager import android.net.Uri import android.os.Bundle -import android.view.MotionEvent -import android.view.inputmethod.InputMethodManager +import android.text.Editable +import android.text.TextWatcher import android.widget.Toast import androidx.activity.result.ActivityResultLauncher import androidx.activity.result.contract.ActivityResultContracts @@ -48,23 +48,10 @@ class CertificationActivity : setupGalleryButtonListener() setupCameraButtonListener() setupPostButtonListener() + setupBodyTextChangedListener() observeUiState() } - override fun dispatchTouchEvent(ev: MotionEvent): Boolean { - onHideKeyBoard() - - return super.dispatchTouchEvent(ev) - } - - private fun onHideKeyBoard() { - val imm: InputMethodManager = - getSystemService(INPUT_METHOD_SERVICE) as InputMethodManager - imm.hideSoftInputFromWindow(currentFocus?.windowToken, 0) - binding.etCertificationBody.clearFocus() - certificationViewModel.updateContent(binding.etCertificationBody.text.toString()) - } - private fun setupBinding() { binding.lifecycleOwner = this } @@ -134,10 +121,24 @@ class CertificationActivity : private fun setupPostButtonListener() { binding.tvCertificationPostButton.setOnClickListener { val studyId = intent.getLongExtra(KEY_STUDY_ID, KEY_NOT_FOUND_STUDY_ID) - certificationViewModel.uiState.value.imageUrl.toUri().toAdjustImageFile(this)?.let { file -> - certificationViewModel.updateCertification(file, studyId) + certificationViewModel.uiState.value.imageUrl.toUri().toAdjustImageFile(this) + ?.let { file -> + certificationViewModel.updateCertification(file, studyId) + } + } + } + + private fun setupBodyTextChangedListener() { + val textWatcher = object : TextWatcher { + override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {} + + override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {} + + override fun afterTextChanged(s: Editable?) { + certificationViewModel.updateContent(binding.etCertificationBody.text.toString()) } } + binding.etCertificationBody.addTextChangedListener(textWatcher) } private fun observeUiState() { diff --git a/android/app/src/main/java/com/created/team201/presentation/studyThread/ThreadActivity.kt b/android/app/src/main/java/com/created/team201/presentation/studyThread/ThreadActivity.kt index aca85edb..2000115e 100644 --- a/android/app/src/main/java/com/created/team201/presentation/studyThread/ThreadActivity.kt +++ b/android/app/src/main/java/com/created/team201/presentation/studyThread/ThreadActivity.kt @@ -105,8 +105,6 @@ class ThreadActivity : BindingActivity(R.layout.activity_ threadViewModel.dispatchFeed(message) binding.etThreadInput.run { text.clear() - clearFocus() - hideKeyboard() } } } diff --git a/android/app/src/main/res/drawable/cursor_color.xml b/android/app/src/main/res/drawable/cursor_color.xml index 6016139d..db3e0ceb 100644 --- a/android/app/src/main/res/drawable/cursor_color.xml +++ b/android/app/src/main/res/drawable/cursor_color.xml @@ -1,5 +1,5 @@ - + - - \ No newline at end of file + + diff --git a/android/app/src/main/res/layout/activity_certification.xml b/android/app/src/main/res/layout/activity_certification.xml index 22fb9380..68ee4a10 100644 --- a/android/app/src/main/res/layout/activity_certification.xml +++ b/android/app/src/main/res/layout/activity_certification.xml @@ -62,10 +62,11 @@ android:background="@drawable/bg_rectangle_radius_5dp" android:gravity="top" android:hint="@string/certification_post_body_hint" - android:maxLength="250" + android:maxLength="1000" android:maxLines="6" android:paddingHorizontal="16dp" android:paddingVertical="12dp" + android:scrollbars="vertical" android:textAppearance="@style/text_r14" android:textColor="@color/white" android:textColorHint="@color/grey02_78808B" diff --git a/android/app/src/main/res/layout/activity_certification_check.xml b/android/app/src/main/res/layout/activity_certification_check.xml index 87a42abe..df7609e8 100644 --- a/android/app/src/main/res/layout/activity_certification_check.xml +++ b/android/app/src/main/res/layout/activity_certification_check.xml @@ -42,9 +42,11 @@ android:layout_marginHorizontal="16dp" android:layout_marginBottom="40dp" android:background="@drawable/bg_rectangle_radius_5dp" + android:fadeScrollbars="false" android:gravity="top" android:paddingHorizontal="16dp" android:paddingVertical="12dp" + android:scrollbars="vertical" android:textAppearance="@style/text_r14" android:textColor="@color/white" android:textCursorDrawable="@drawable/cursor_color" @@ -55,4 +57,4 @@ tools:text="링링 머슷두 완료" /> - \ No newline at end of file + diff --git a/android/app/src/main/res/layout/activity_profile.xml b/android/app/src/main/res/layout/activity_profile.xml index 2fba2659..ced9dc88 100644 --- a/android/app/src/main/res/layout/activity_profile.xml +++ b/android/app/src/main/res/layout/activity_profile.xml @@ -149,13 +149,15 @@ android:layout_width="match_parent" android:layout_height="0dp" android:layout_marginTop="24dp" + android:autoLink="email|web" android:background="@drawable/bg_rectangle_radius_5dp" + android:lines="8" android:maxLines="8" android:padding="16dp" - android:lines="8" android:text="@{viewModel.profile.profile.profileInformation.introduction}" android:textAppearance="@style/text_r16" android:textColor="@color/white" + android:textIsSelectable="true" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/layout_profile_study_success_rate" diff --git a/android/app/src/main/res/layout/activity_study_detail.xml b/android/app/src/main/res/layout/activity_study_detail.xml index 298ae788..71628091 100644 --- a/android/app/src/main/res/layout/activity_study_detail.xml +++ b/android/app/src/main/res/layout/activity_study_detail.xml @@ -127,12 +127,14 @@ android:layout_height="wrap_content" android:layout_marginHorizontal="16dp" android:layout_marginTop="20dp" + android:autoLink="web|email" android:background="@drawable/bg_rectangle_radius_5dp" android:minHeight="150dp" android:padding="16dp" android:text="@{viewModel.study.introduction}" android:textAppearance="@style/text_r16" android:textColor="@color/white" + android:textIsSelectable="true" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/cl_study_detail_inform" diff --git a/android/app/src/main/res/layout/activity_thread.xml b/android/app/src/main/res/layout/activity_thread.xml index dbeba863..66d9a254 100644 --- a/android/app/src/main/res/layout/activity_thread.xml +++ b/android/app/src/main/res/layout/activity_thread.xml @@ -29,10 +29,10 @@ android:layout_marginStart="12dp" android:textAppearance="@style/picker_sb18" android:textColor="@color/white" - app:layout_constraintBottom_toBottomOf="@+id/iv_thread_back_button" - app:layout_constraintEnd_toStartOf="@+id/spinner_thread" - app:layout_constraintStart_toEndOf="@+id/iv_thread_back_button" - app:layout_constraintTop_toTopOf="@+id/iv_thread_back_button" + app:layout_constraintBottom_toBottomOf="@id/iv_thread_back_button" + app:layout_constraintEnd_toStartOf="@id/spinner_thread" + app:layout_constraintStart_toEndOf="@id/iv_thread_back_button" + app:layout_constraintTop_toTopOf="@id/iv_thread_back_button" tools:text="자두타먹는 스터디" /> @@ -61,7 +61,7 @@ app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@+id/iv_thread_back_button" + app:layout_constraintTop_toBottomOf="@id/iv_thread_back_button" tools:listitem="@layout/item_thread_must_do" /> @@ -99,16 +99,19 @@ android:layout_marginBottom="12dp" android:background="@drawable/bg_rectangle_radius_10dp_black02" android:ems="10" - android:hint="잡담 및 질답하기" - android:inputType="text" - android:maxLength="200" + android:hint="@string/thread_input_hint" + android:inputType="textMultiLine" + android:maxLength="1000" + android:maxLines="4" + android:minHeight="40dp" android:padding="8dp" + android:scrollbars="vertical" android:textAppearance="@style/text_r16" android:textColor="@color/white" android:textColorHint="@color/grey02_78808B" android:textCursorDrawable="@drawable/cursor_color" app:layout_constraintBottom_toBottomOf="parent" - app:layout_constraintEnd_toStartOf="@+id/iv_thread_direct_button" + app:layout_constraintEnd_toStartOf="@id/iv_thread_direct_button" app:layout_constraintStart_toStartOf="parent" /> + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" /> diff --git a/android/app/src/main/res/layout/dialog_study_informaion.xml b/android/app/src/main/res/layout/dialog_study_informaion.xml index c898b5a2..1e625b82 100644 --- a/android/app/src/main/res/layout/dialog_study_informaion.xml +++ b/android/app/src/main/res/layout/dialog_study_informaion.xml @@ -99,11 +99,13 @@ android:layout_width="0dp" android:layout_height="150dp" android:layout_marginTop="20dp" + android:autoLink="email|web" android:background="@drawable/bg_rectangle_radius_5dp" android:padding="16dp" android:text="@{studyDetail.introduction}" android:textAppearance="@style/text_r16" android:textColor="@color/white" + android:textIsSelectable="true" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/cl_study_information_header" @@ -111,4 +113,4 @@ - \ No newline at end of file + diff --git a/android/app/src/main/res/layout/item_home_study_list.xml b/android/app/src/main/res/layout/item_home_study_list.xml index 16ebc4e0..55d37636 100644 --- a/android/app/src/main/res/layout/item_home_study_list.xml +++ b/android/app/src/main/res/layout/item_home_study_list.xml @@ -117,10 +117,12 @@ android:layout_marginStart="20dp" android:layout_marginTop="8dp" android:layout_marginEnd="20dp" + android:autoLink="email|web" android:maxLines="2" android:text="@{item.mustDo.blank ? @string/hom_study_list_must_do_default_message : item.mustDo}" android:textAppearance="@style/text_r16" android:textColor="@{item.mustDo.blank ? @color/grey06_30363D : @color/white}" + android:textIsSelectable="true" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/tv_home_study_list_must_do" diff --git a/android/app/src/main/res/layout/item_thread_comment.xml b/android/app/src/main/res/layout/item_thread_comment.xml index 037853a6..b0a1e8ff 100644 --- a/android/app/src/main/res/layout/item_thread_comment.xml +++ b/android/app/src/main/res/layout/item_thread_comment.xml @@ -96,7 +96,7 @@ android:layout_marginTop="20dp" android:layout_marginEnd="20dp" android:layout_marginBottom="20dp" - android:maxLines="10" + android:autoLink="web|email" android:text="@{item.content}" android:textAppearance="@style/subtitle_r20" android:textColor="@color/white" @@ -105,7 +105,7 @@ app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/cl_member_info" - tools:text="아아 언제다하냐 진짜 ㅋㅋ" /> + tools:text="스터디 날짜가 언제인가요?" /> 내용을 입력해 주세요 + 잡담 및 질답하기 %d주차 diff --git a/android/app/src/main/res/values/themes.xml b/android/app/src/main/res/values/themes.xml index 7404a0b5..fbf6624e 100644 --- a/android/app/src/main/res/values/themes.xml +++ b/android/app/src/main/res/values/themes.xml @@ -15,6 +15,11 @@ @style/BottomSheetDialogTheme + + + @color/green02_E639D353 + @color/green04_26A641 + @color/green04_26A641