Skip to content

Commit

Permalink
Merge pull request #44 from Team-Umbba/design/#37
Browse files Browse the repository at this point in the history
[Design/#37] 개인정보 이용동의, 온보딩 완료 화면 UI 구현
  • Loading branch information
yeoncheong authored Jul 11, 2023
2 parents 351a22b + 518bbee commit 9f3aac7
Show file tree
Hide file tree
Showing 17 changed files with 423 additions and 8 deletions.
10 changes: 9 additions & 1 deletion app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,17 @@
android:supportsRtl="true"
android:theme="@style/Theme.Umbbaandroid"
tools:targetApi="31">
<activity
android:name=".presentation.login.AgreePrivacyUseActivity"
android:exported="false"
android:screenOrientation="portrait"/>
<activity
android:name=".presentation.onboarding.OnboardingFinishActivity"
android:exported="false"
android:screenOrientation="portrait"/>
<activity
android:name=".presentation.onboarding.SetTimeActivity"
android:exported="true"
android:exported="false"
android:screenOrientation="portrait" />
<activity
android:name=".presentation.invite.InviteActivity"
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
package com.sopt.umbba_android.presentation.login

import android.graphics.Typeface
import android.os.Bundle
import android.text.Spannable
import android.text.SpannableStringBuilder
import android.text.style.StyleSpan
import android.text.util.Linkify
import android.view.View
import android.widget.TextView
import androidx.core.content.ContextCompat
import com.sopt.umbba_android.R
import com.sopt.umbba_android.databinding.ActivityAgreePrivacyUseBinding
import com.sopt.umbba_android.util.binding.BindingActivity
import java.util.regex.Pattern

class AgreePrivacyUseActivity : BindingActivity<ActivityAgreePrivacyUseBinding>(R.layout.activity_agree_privacy_use) {

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)

setHyperLinkAndColorInTermsTextView()
setHyperLinkAndColorInPrivacyTextView()
}

private fun setHyperLinkAndColorInTermsTextView() {
with(binding) {
setHyperLinkToTextView("서비스 이용약관", tvAgreeTermsAndCondition, "https://www.notion.so/f1a14bf60ed4421f9b3761ef88906adb?pvs=4")
setLinkTextColorToBlack(tvAgreeTermsAndCondition)
setLinkBold(tvAgreeTermsAndCondition, 13)
}
}

private fun setHyperLinkAndColorInPrivacyTextView() {
with(binding) {
setHyperLinkToTextView("개인정보 수집 및 이용", tvAgreePrivacy, "https://www.notion.so/99fe0f58825d4f87bd3b987fadc623b6?pvs=4")
setLinkTextColorToBlack(tvAgreePrivacy)
setLinkBold(tvAgreePrivacy, 17)
}
}

private fun setHyperLinkToTextView(text: String, view: TextView, uri: String) {
val transform = Linkify.TransformFilter { match, url -> "" }
val pattern = Pattern.compile(text)

Linkify.addLinks(view, pattern, uri, null, transform)
}

private fun setLinkTextColorToBlack(view: TextView) {
view.setLinkTextColor(ContextCompat.getColor(this, R.color.umbba_black))
}

private fun setLinkBold(view: TextView, end: Int) {
val sentence = SpannableStringBuilder(view.text)
sentence.setSpan(StyleSpan(Typeface.BOLD), 5, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
view.text = sentence
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package com.sopt.umbba_android.presentation.onboarding

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import com.sopt.umbba_android.R

class OnboardingFinishActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_onboarding_finish)
}
}
13 changes: 13 additions & 0 deletions app/src/main/res/drawable/ic_check_48.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="48dp"
android:height="48dp"
android:viewportWidth="48"
android:viewportHeight="48">
<path
android:pathData="M32,18L21,29L16,24"
android:strokeLineJoin="round"
android:strokeWidth="1.5"
android:fillColor="#00000000"
android:strokeColor="#C87759"
android:strokeLineCap="round"/>
</vector>
20 changes: 20 additions & 0 deletions app/src/main/res/drawable/ic_circle_check_48.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="48dp"
android:height="48dp"
android:viewportWidth="48"
android:viewportHeight="48">
<path
android:pathData="M29,21L22,28L19,25"
android:strokeLineJoin="round"
android:strokeWidth="1.5"
android:fillColor="#00000000"
android:strokeColor="#C87759"
android:strokeLineCap="round"/>
<path
android:pathData="M24,33C28.971,33 33,28.971 33,24C33,19.029 28.971,15 24,15C19.029,15 15,19.029 15,24C15,28.971 19.029,33 24,33Z"
android:strokeLineJoin="round"
android:strokeWidth="1.5"
android:fillColor="#00000000"
android:strokeColor="#C87759"
android:strokeLineCap="round"/>
</vector>
13 changes: 13 additions & 0 deletions app/src/main/res/drawable/ic_no_check_48.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="48dp"
android:height="48dp"
android:viewportWidth="48"
android:viewportHeight="48">
<path
android:pathData="M32,18L21,29L16,24"
android:strokeLineJoin="round"
android:strokeWidth="1.5"
android:fillColor="#00000000"
android:strokeColor="#BBADA4"
android:strokeLineCap="round"/>
</vector>
20 changes: 20 additions & 0 deletions app/src/main/res/drawable/ic_no_circle_check_48.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="48dp"
android:height="48dp"
android:viewportWidth="48"
android:viewportHeight="48">
<path
android:pathData="M29,21L22,28L19,25"
android:strokeLineJoin="round"
android:strokeWidth="1.5"
android:fillColor="#00000000"
android:strokeColor="#BBADA4"
android:strokeLineCap="round"/>
<path
android:pathData="M24,33C28.971,33 33,28.971 33,24C33,19.029 28.971,15 24,15C19.029,15 15,19.029 15,24C15,28.971 19.029,33 24,33Z"
android:strokeLineJoin="round"
android:strokeWidth="1.5"
android:fillColor="#00000000"
android:strokeColor="#BBADA4"
android:strokeLineCap="round"/>
</vector>
5 changes: 5 additions & 0 deletions app/src/main/res/drawable/sel_btn_next_agree.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/shape_g400_btn_r50_rect" android:state_enabled="false" />
<item android:drawable="@drawable/shape_pri500_btn_stroke_r50_rect" android:state_enabled="true" />
</selector>
5 changes: 5 additions & 0 deletions app/src/main/res/drawable/shape_grey_line_1dp_rect.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/grey_400" />
<size android:height="1dp" />
</shape>
204 changes: 204 additions & 0 deletions app/src/main/res/layout/activity_agree_privacy_use.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,204 @@
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">

<data>

</data>

<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/umbba_white"
tools:context=".presentation.login.AgreePrivacyUseActivity">

<ImageView
android:id="@+id/iv_logo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="60dp"
android:src="@drawable/ic_umbba_logo"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

<TextView
android:id="@+id/tv_app_title"
style="@style/BrandTypeBigRegular20"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
android:text="@string/app_title"
android:textColor="@color/primary_500"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/iv_logo" />

<TextView
android:id="@+id/tv_app_description"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:text="@string/app_description"
android:textColor="@color/primary_500"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_app_title" />

<ImageView
android:id="@+id/iv_line1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginHorizontal="30dp"
android:layout_marginTop="88dp"
android:src="@drawable/shape_grey_line_1dp_rect"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_app_description" />

<TextView
android:id="@+id/tv_all_agree"
style="@style/AndroidBody1_1SemiBold16"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="28dp"
android:layout_marginTop="48dp"
android:text="@string/all_agree"
android:textColor="@color/umbba_black"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/iv_line1" />

<ImageView
android:id="@+id/btn_all_agree_check"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="33dp"
android:layout_marginEnd="28dp"
android:src="@drawable/ic_no_check_48"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/iv_line1" />

<TextView
android:id="@+id/tv_all_agree_description"
style="@style/AndroidBody2_2Regular12"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="28dp"
android:layout_marginTop="14dp"
android:layout_marginEnd="14dp"
android:text="@string/all_agree_description"
android:textColor="@color/grey_800"
app:layout_constraintEnd_toStartOf="@id/btn_all_agree_check"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_all_agree" />

<TextView
android:id="@+id/tv_up_14"
style="@style/AndroidBody2_2Regular12"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="28dp"
android:layout_marginTop="29dp"
android:text="@string/up_14"
android:textColor="@color/umbba_black"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_all_agree_description" />

<ImageView
android:id="@+id/btn_up_14"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:layout_marginEnd="28dp"
android:src="@drawable/ic_no_circle_check_48"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_all_agree_description" />

<TextView
android:id="@+id/tv_up_14_description"
style="@style/AndroidCaptionRegular10"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="28dp"
android:layout_marginTop="9dp"
android:layout_marginEnd="7dp"
android:text="@string/up_14_description"
android:textColor="@color/grey_800"
app:layout_constraintEnd_toStartOf="@+id/btn_up_14"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_up_14" />

<TextView
android:id="@+id/tv_agree_terms_and_condition"
style="@style/AndroidBody2_2Regular12"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="28dp"
android:layout_marginTop="29dp"
android:text="@string/agree_terms_and_condition"
android:textColor="@color/umbba_black"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_up_14_description" />

<ImageView
android:id="@+id/btn_agree_terms_and_condition"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:layout_marginEnd="28dp"
android:src="@drawable/ic_no_circle_check_48"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_up_14_description" />

<TextView
android:id="@+id/tv_agree_privacy"
style="@style/AndroidBody2_2Regular12"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/agree_privacy"
android:textColor="@color/umbba_black"
android:layout_marginStart="28dp"
android:layout_marginTop="34dp"
app:layout_constraintTop_toBottomOf="@id/tv_agree_terms_and_condition"
app:layout_constraintStart_toStartOf="parent"/>

<ImageView
android:id="@+id/btn_agree_privacy"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_no_circle_check_48"
android:layout_marginEnd="28dp"
android:layout_marginTop="17dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/tv_agree_terms_and_condition" />

<TextView
android:id="@+id/tv_agree_privacy_description"
style="@style/AndroidCaptionRegular10"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="@string/agree_privacy_description"
android:textColor="@color/grey_800"
android:layout_marginTop="9dp"
android:layout_marginStart="28dp"
android:layout_marginEnd="7dp"
app:layout_constraintTop_toBottomOf="@id/tv_agree_privacy"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/btn_agree_privacy"/>

<androidx.appcompat.widget.AppCompatButton
android:id="@+id/btn_next"
style="@style/AndroidBody1_1SemiBold16"
android:layout_width="match_parent"
android:layout_height="60dp"
android:layout_marginHorizontal="21dp"
android:layout_marginVertical="24dp"
android:background="@drawable/sel_btn_next_agree"
android:enabled="false"
android:stateListAnimator="@null"
android:text="@string/btn_start_code"
android:textColor="@color/sel_btn_pri500_text"
app:layout_constraintBottom_toBottomOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>
2 changes: 1 addition & 1 deletion app/src/main/res/layout/activity_invite.xml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
style="@style/BrandTypeBigRegular20"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginTop="2dp"
android:text="@string/app_title"
android:textColor="@color/primary_500"
app:layout_constraintEnd_toEndOf="parent"
Expand Down
Loading

0 comments on commit 9f3aac7

Please sign in to comment.