Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ android {
buildConfigField "String", "BASE_URL", "\"https://api.themoviedb.org/3/\""
buildConfigField "String", "IMAGE_BASE_PATH", "\"https://image.tmdb.org/t/p/w500\""
buildConfigField "String", "TMDB_SIGNUP_URL", "\"https://www.themoviedb.org/signup\""
buildConfigField "String", "TMDB_FORGET_PASSWORD_URL", "\"https://www.themoviedb.org/reset-password\""
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,18 @@ class LoginFragment : BaseFragment<FragmentLoginBinding>() {
is LoginUIEvent.LoginEvent -> {
findNavController().navigate(LoginFragmentDirections.actionLoginFragmentToProfileFragment())
}

LoginUIEvent.SignUpEvent -> {
val browserIntent =
Intent(Intent.ACTION_VIEW, Uri.parse(BuildConfig.TMDB_SIGNUP_URL))
startActivity(browserIntent)
}

LoginUIEvent.ForgetPasswordEvent -> {
val browserIntent =
Intent(Intent.ACTION_VIEW, Uri.parse(BuildConfig.TMDB_FORGET_PASSWORD_URL))
startActivity(browserIntent)
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,5 @@ package com.karrar.movieapp.ui.login
sealed interface LoginUIEvent {
data class LoginEvent(val login: Int) : LoginUIEvent
object SignUpEvent : LoginUIEvent
object ForgetPasswordEvent : LoginUIEvent
}
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,10 @@ class LoginViewModel @Inject constructor(
login()
}

fun onForgetPassword() {
_loginEvent.update { Event(LoginUIEvent.SignUpEvent) }
}

fun onUserNameInputChange(text: CharSequence) {
val userNameFieldState = validateFiledUseCase(text.toString())
_loginUIState.update {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,6 @@ class WatchHistoryAdapter(

interface WatchHistoryInteractionListener : BaseInteractionListener {
fun onClickMovie(item: MediaHistoryUiState)

fun onClickExplore()
}
Original file line number Diff line number Diff line change
Expand Up @@ -35,13 +35,17 @@ class WatchHistoryFragment : BaseFragment<FragmentWatchHistoryBinding>() {
event.movieID
)
}

is WatchHistoryUIEvent.TVShowEvent -> {
WatchHistoryFragmentDirections.actionWatchHistoryFragmentToTvShowDetailsFragment(
event.tvShowID
)
}

is WatchHistoryUIEvent.NavigateExploreEvent -> {
WatchHistoryFragmentDirections.actionWatchHistoryFragmentToExploringFragment()
}
}
findNavController().navigate(action)
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,6 @@ package com.karrar.movieapp.ui.profile.watchhistory
sealed interface WatchHistoryUIEvent {
data class MovieEvent(val movieID: Int) : WatchHistoryUIEvent
data class TVShowEvent(val tvShowID: Int) : WatchHistoryUIEvent

class NavigateExploreEvent(): WatchHistoryUIEvent
}
Original file line number Diff line number Diff line change
Expand Up @@ -53,4 +53,7 @@ class WatchHistoryViewModel @Inject constructor(
}
}

override fun onClickExplore() {
_watchHistoryUIEvent.update { Event(WatchHistoryUIEvent.NavigateExploreEvent()) }
}
}
116 changes: 116 additions & 0 deletions app/src/main/java/com/karrar/movieapp/utilities/view/MovieEditText.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
package com.karrar.movieapp.utilities.view

import android.content.Context
import android.text.Editable
import android.text.TextUtils
import android.text.TextWatcher
import android.text.method.PasswordTransformationMethod
import android.util.AttributeSet
import android.view.View
import android.widget.EditText
import android.widget.FrameLayout
import android.widget.ImageView
import android.widget.TextView
import androidx.core.content.ContextCompat
import androidx.databinding.BindingAdapter
import androidx.databinding.adapters.ListenerUtil
import com.karrar.movieapp.R

class MovieEditText @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
defStyleAttr: Int = 0
) : FrameLayout(context, attrs, defStyleAttr) {

private val editText: EditText
private val helperText: TextView
private val passwordEye: ImageView

private var isEyeShow = true

init {
inflate(context, R.layout.view_edit_text, this)
editText = findViewById(R.id.innerEditText)
helperText = findViewById(R.id.helperText)
passwordEye = findViewById(R.id.passwordEye)

val typedArray = context.obtainStyledAttributes(attrs, R.styleable.MovieEditText)
val helperTextValue = typedArray.getString(R.styleable.MovieEditText_helperText)
val showEye = typedArray.getBoolean(R.styleable.MovieEditText_showEye, false)
helperText.text = helperTextValue
passwordEye.visibility = if (showEye) VISIBLE else GONE

typedArray.recycle()

passwordEye.setOnClickListener {
val selection = editText.selectionStart
isEyeShow = !isEyeShow
passwordEye.setImageDrawable(
if (isEyeShow)
ContextCompat.getDrawable(getContext(), R.drawable.eye_opened)
else
ContextCompat.getDrawable(getContext(), R.drawable.eye_closed)
)

if (isEyeShow)
editText.transformationMethod = null
else
editText.transformationMethod = PasswordTransformationMethod()

editText.setSelection(selection)
}
}

fun getText(): String = editText.text.toString()

fun setText(value: String) {
editText.setText(value)
}

fun setHelperText(value: String?) {
helperText.text = value

if (value != null && TextUtils.isEmpty(value.trim())) {
helperText.visibility = GONE
} else {
helperText.visibility = VISIBLE
}
}

companion object {
@JvmStatic
@BindingAdapter("afterTextChanged")
fun setAfterTextChanged(view: MovieEditText, listener: AfterTextChangedListener?) {
val old = ListenerUtil.trackListener(
view, listener, R.id.textWatcher
) as? TextWatcher
if (old != null) view.editText.removeTextChangedListener(old)

if (listener == null) return

val watcher = 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?) {
listener.afterTextChanged(s)
}
}

view.editText.addTextChangedListener(watcher)
ListenerUtil.trackListener(view, watcher, R.id.textWatcher)
}
}

fun interface AfterTextChangedListener {
fun afterTextChanged(s: Editable?)
}

fun getEditText(): EditText = editText
}
61 changes: 61 additions & 0 deletions app/src/main/res/drawable/cineverse_logo.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:aapt="http://schemas.android.com/aapt"
android:width="104dp"
android:height="104dp"
android:viewportWidth="104"
android:viewportHeight="104">
<path
android:pathData="M70.53,67.8C71.14,67.67 71.7,67.77 72.22,68.1C73.52,68.94 74.79,69.8 76.04,70.68C77.99,71.63 79.86,72.71 81.63,73.92C81.73,74.18 81.7,74.43 81.56,74.66C78.61,80.06 74.37,84.24 68.85,87.2C64.61,89.25 60.12,90.43 55.37,90.74C52.66,91.13 49.96,91.08 47.26,90.59L46.86,90.54C42.79,90 39,88.73 35.47,86.76L35.33,86.72C34.68,86.52 34.11,86.19 33.63,85.73C32.45,85.11 31.33,84.39 30.26,83.59C29.7,83.14 28.96,82.51 28.24,81.88C28.15,81.8 28.06,81.72 27.97,81.64C29.44,81.43 34.91,80.62 38.2,79.84C42.03,78.93 47.52,76.9 47.52,76.9L47.31,76.8C47.72,76.94 48.16,77.07 48.63,77.18C48.64,77.19 48.65,77.19 48.65,77.19C52.87,77.93 57.4,77.42 61.34,75.84L61.7,75.66C65.34,73.8 68.28,71.18 70.53,67.8Z"
android:fillColor="#313131"/>
<path
android:pathData="M70.53,67.8C71.14,67.67 71.7,67.77 72.22,68.1C73.52,68.94 74.79,69.8 76.04,70.68C77.99,71.63 79.86,72.71 81.63,73.92C81.73,74.18 81.7,74.43 81.56,74.66C78.61,80.06 74.37,84.24 68.85,87.2C64.61,89.25 60.12,90.43 55.37,90.74C52.66,91.13 49.96,91.08 47.26,90.59L46.86,90.54C42.79,90 39,88.73 35.47,86.76L35.33,86.72C34.68,86.52 34.11,86.19 33.63,85.73C32.45,85.11 31.33,84.39 30.26,83.59C29.7,83.14 28.96,82.51 28.24,81.88C28.15,81.8 28.06,81.72 27.97,81.64C29.44,81.43 34.91,80.62 38.2,79.84C42.03,78.93 47.52,76.9 47.52,76.9L47.31,76.8C47.72,76.94 48.16,77.07 48.63,77.18C48.64,77.19 48.65,77.19 48.65,77.19C52.87,77.93 57.4,77.42 61.34,75.84L61.7,75.66C65.34,73.8 68.28,71.18 70.53,67.8Z">
<aapt:attr name="android:fillColor">
<gradient
android:startX="95.33"
android:startY="13"
android:endX="11.31"
android:endY="93.75"
android:type="linear">
<item android:offset="0" android:color="#FFA015F8"/>
<item android:offset="0.5" android:color="#FF1E46FC"/>
<item android:offset="1" android:color="#FF0FBEF6"/>
</gradient>
</aapt:attr>
</path>
<path
android:pathData="M51.24,16.84C52.51,16.64 53.79,16.64 55.07,16.84C60,16.91 64.65,18.06 69,20.3C69.52,20.55 69.98,20.87 70.38,21.26C71.43,21.78 72.35,22.47 73.13,23.33C75.37,25.13 77.06,27.34 78.19,29.96C78.78,30.91 79.11,31.95 79.18,33.06C76.34,34.96 73.46,36.81 70.53,38.59C70.17,38.69 69.82,38.69 69.46,38.59C68.44,37.37 67.37,36.19 66.24,35.05C64.97,34.05 63.65,33.14 62.26,32.32C58.63,30.66 54.8,29.92 50.78,30.11C43.95,31.24 38.64,34.58 34.85,40.14C31.71,45.39 30.49,51.05 31.18,57.11C31.33,57.42 31.38,57.76 31.33,58.14C31.73,60.3 32.34,62.41 33.17,64.48C33.31,64.6 33.41,64.75 33.47,64.93C34.04,66.13 34.55,67.13 35.31,68.23C31.31,69.72 27.06,70.56 22.79,70.72C22.79,70.72 22.78,70.72 22.78,70.72C22.78,70.72 22.77,70.72 22.77,70.72C22.45,70.73 22.13,70.74 21.82,70.75C21.22,70.78 20.66,70.8 20.31,70.68C20.3,70.68 20.05,70.65 20,70.53C19.42,70 18.98,69.36 18.7,68.61C18.02,67.08 17.49,65.51 17.09,63.89C16.6,62.22 16.27,60.5 16.1,58.73C15.95,58.97 15.77,59.16 15.56,59.32C14.25,61.27 13.3,63.39 12.73,65.66C12.22,69.34 13.82,71.54 17.53,72.27L17.7,72.3L18.16,72.36C22.89,72.9 27.59,72.63 32.25,71.56L33.23,71.35C35.52,70.83 37.8,70.27 40.06,69.65L41.27,69.22C44.09,68.23 46.9,67.19 49.71,66.11C54.46,63.94 59.11,61.58 63.64,59.03C68.54,56.23 73.18,53.08 77.57,49.58C81.03,47 83.94,43.95 86.3,40.44C86.3,40.34 86.35,40.29 86.46,40.29C87.86,38.18 88.93,35.92 89.67,33.5C89.63,33.31 89.69,33.17 89.82,33.06L89.85,32.84C89.99,31.74 90.01,30.63 89.9,29.52C91.68,31.13 92.58,33.13 92.58,35.5C92.49,38.29 91.62,40.82 89.98,43.09C87.29,47.78 83.92,51.98 79.87,55.71C72.1,62.67 63.32,68.21 53.53,72.3C50.58,73.53 47.56,74.6 44.47,75.51L44.47,75.51C44.47,75.51 39.33,76.92 35.63,77.67C32.12,78.39 26.03,79.28 25.4,79.37C24.24,79.29 22.67,79.16 21.53,79.09C20.37,78.98 19.25,78.79 18.16,78.5L17.91,78.46C15.31,78.03 13.1,76.91 11.27,75.1C9.94,73.63 9.1,71.9 8.75,69.94C8.33,65.54 9.58,61.66 12.5,58.29C13.44,56.86 14.59,55.58 15.94,54.45C15.97,52.33 16.1,50.22 16.33,48.11C16.36,47.59 16.47,47.1 16.63,46.63C17.01,44.15 17.68,41.74 18.62,39.41C21.52,32.48 26.17,26.93 32.56,22.74C38.19,19.09 44.41,17.13 51.24,16.84Z"
android:fillColor="#313131"/>
<path
android:pathData="M51.24,16.84C52.51,16.64 53.79,16.64 55.07,16.84C60,16.91 64.65,18.06 69,20.3C69.52,20.55 69.98,20.87 70.38,21.26C71.43,21.78 72.35,22.47 73.13,23.33C75.37,25.13 77.06,27.34 78.19,29.96C78.78,30.91 79.11,31.95 79.18,33.06C76.34,34.96 73.46,36.81 70.53,38.59C70.17,38.69 69.82,38.69 69.46,38.59C68.44,37.37 67.37,36.19 66.24,35.05C64.97,34.05 63.65,33.14 62.26,32.32C58.63,30.66 54.8,29.92 50.78,30.11C43.95,31.24 38.64,34.58 34.85,40.14C31.71,45.39 30.49,51.05 31.18,57.11C31.33,57.42 31.38,57.76 31.33,58.14C31.73,60.3 32.34,62.41 33.17,64.48C33.31,64.6 33.41,64.75 33.47,64.93C34.04,66.13 34.55,67.13 35.31,68.23C31.31,69.72 27.06,70.56 22.79,70.72C22.79,70.72 22.78,70.72 22.78,70.72C22.78,70.72 22.77,70.72 22.77,70.72C22.45,70.73 22.13,70.74 21.82,70.75C21.22,70.78 20.66,70.8 20.31,70.68C20.3,70.68 20.05,70.65 20,70.53C19.42,70 18.98,69.36 18.7,68.61C18.02,67.08 17.49,65.51 17.09,63.89C16.6,62.22 16.27,60.5 16.1,58.73C15.95,58.97 15.77,59.16 15.56,59.32C14.25,61.27 13.3,63.39 12.73,65.66C12.22,69.34 13.82,71.54 17.53,72.27L17.7,72.3L18.16,72.36C22.89,72.9 27.59,72.63 32.25,71.56L33.23,71.35C35.52,70.83 37.8,70.27 40.06,69.65L41.27,69.22C44.09,68.23 46.9,67.19 49.71,66.11C54.46,63.94 59.11,61.58 63.64,59.03C68.54,56.23 73.18,53.08 77.57,49.58C81.03,47 83.94,43.95 86.3,40.44C86.3,40.34 86.35,40.29 86.46,40.29C87.86,38.18 88.93,35.92 89.67,33.5C89.63,33.31 89.69,33.17 89.82,33.06L89.85,32.84C89.99,31.74 90.01,30.63 89.9,29.52C91.68,31.13 92.58,33.13 92.58,35.5C92.49,38.29 91.62,40.82 89.98,43.09C87.29,47.78 83.92,51.98 79.87,55.71C72.1,62.67 63.32,68.21 53.53,72.3C50.58,73.53 47.56,74.6 44.47,75.51L44.47,75.51C44.47,75.51 39.33,76.92 35.63,77.67C32.12,78.39 26.03,79.28 25.4,79.37C24.24,79.29 22.67,79.16 21.53,79.09C20.37,78.98 19.25,78.79 18.16,78.5L17.91,78.46C15.31,78.03 13.1,76.91 11.27,75.1C9.94,73.63 9.1,71.9 8.75,69.94C8.33,65.54 9.58,61.66 12.5,58.29C13.44,56.86 14.59,55.58 15.94,54.45C15.97,52.33 16.1,50.22 16.33,48.11C16.36,47.59 16.47,47.1 16.63,46.63C17.01,44.15 17.68,41.74 18.62,39.41C21.52,32.48 26.17,26.93 32.56,22.74C38.19,19.09 44.41,17.13 51.24,16.84Z">
<aapt:attr name="android:fillColor">
<gradient
android:startX="95.33"
android:startY="13"
android:endX="11.31"
android:endY="93.75"
android:type="linear">
<item android:offset="0" android:color="#FFA015F8"/>
<item android:offset="0.5" android:color="#FF1E46FC"/>
<item android:offset="1" android:color="#FF0FBEF6"/>
</gradient>
</aapt:attr>
</path>
<path
android:pathData="M84.54,13.3C85,12.9 85.46,12.9 85.92,13.3C86.64,14.89 87.31,16.52 87.91,18.16C88.32,18.73 88.81,19.22 89.36,19.64C90.88,20.05 92.41,20.42 93.96,20.74C94.35,20.81 94.65,20.98 94.88,21.26C95.49,21.71 95.49,22.18 94.88,22.66C93.32,23.43 91.69,24.02 89.98,24.43C89.35,24.77 88.79,25.19 88.29,25.69C87.73,27.3 87.2,28.92 86.69,30.55C86.58,30.82 86.41,31.02 86.15,31.14C85.56,31.76 85.03,31.71 84.54,31C83.86,29.29 83.22,27.57 82.63,25.83C82.27,25.59 81.96,25.29 81.71,24.95C80.2,24.44 78.67,23.97 77.12,23.55C75.67,23.14 75.37,22.35 76.2,21.19C77.37,20.65 78.6,20.29 79.87,20.08C80.44,19.88 81.01,19.63 81.56,19.34L81.68,19.26C82.3,18.83 82.74,18.27 83.01,17.57C83.36,16.09 83.87,14.66 84.54,13.3Z"
android:fillColor="#313131"/>
<path
android:pathData="M84.54,13.3C85,12.9 85.46,12.9 85.92,13.3C86.64,14.89 87.31,16.52 87.91,18.16C88.32,18.73 88.81,19.22 89.36,19.64C90.88,20.05 92.41,20.42 93.96,20.74C94.35,20.81 94.65,20.98 94.88,21.26C95.49,21.71 95.49,22.18 94.88,22.66C93.32,23.43 91.69,24.02 89.98,24.43C89.35,24.77 88.79,25.19 88.29,25.69C87.73,27.3 87.2,28.92 86.69,30.55C86.58,30.82 86.41,31.02 86.15,31.14C85.56,31.76 85.03,31.71 84.54,31C83.86,29.29 83.22,27.57 82.63,25.83C82.27,25.59 81.96,25.29 81.71,24.95C80.2,24.44 78.67,23.97 77.12,23.55C75.67,23.14 75.37,22.35 76.2,21.19C77.37,20.65 78.6,20.29 79.87,20.08C80.44,19.88 81.01,19.63 81.56,19.34L81.68,19.26C82.3,18.83 82.74,18.27 83.01,17.57C83.36,16.09 83.87,14.66 84.54,13.3Z">
<aapt:attr name="android:fillColor">
<gradient
android:startX="95.33"
android:startY="13"
android:endX="11.31"
android:endY="93.75"
android:type="linear">
<item android:offset="0" android:color="#FFA015F8"/>
<item android:offset="0.5" android:color="#FF1E46FC"/>
<item android:offset="1" android:color="#FF0FBEF6"/>
</gradient>
</aapt:attr>
</path>
</vector>
3 changes: 3 additions & 0 deletions app/src/main/res/drawable/click_ripple.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="?attr/colorControlHighlight" />
10 changes: 10 additions & 0 deletions app/src/main/res/drawable/eye_closed.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="20dp"
android:height="20dp"
android:viewportWidth="20"
android:viewportHeight="20">
<path
android:pathData="M18.58,5.259C18.897,5.395 19.044,5.762 18.908,6.079L18.334,5.833C18.908,6.079 18.908,6.079 18.908,6.079L18.907,6.081L18.907,6.083L18.904,6.089L18.895,6.109C18.888,6.126 18.877,6.149 18.863,6.179C18.835,6.239 18.795,6.323 18.741,6.428C18.634,6.639 18.473,6.934 18.257,7.28C17.903,7.849 17.394,8.565 16.719,9.275L17.525,10.082C17.77,10.326 17.77,10.722 17.525,10.966C17.281,11.21 16.886,11.21 16.642,10.966L15.808,10.132C15.258,10.593 14.628,11.025 13.913,11.38L14.691,12.576C14.879,12.865 14.797,13.252 14.508,13.44C14.219,13.629 13.831,13.547 13.643,13.257L12.735,11.863C12.086,12.075 11.383,12.219 10.625,12.27V13.75C10.625,14.095 10.345,14.375 10,14.375C9.655,14.375 9.375,14.095 9.375,13.75V12.27C8.641,12.22 7.958,12.083 7.325,11.882L6.43,13.257C6.242,13.547 5.855,13.629 5.565,13.44C5.276,13.252 5.194,12.865 5.382,12.576L6.143,11.407C5.422,11.055 4.787,10.625 4.232,10.165L3.432,10.966C3.187,11.21 2.792,11.21 2.548,10.966C2.304,10.722 2.304,10.326 2.548,10.082L3.317,9.312C2.63,8.596 2.113,7.872 1.753,7.295C1.534,6.945 1.371,6.646 1.262,6.433C1.207,6.326 1.166,6.241 1.138,6.18C1.124,6.15 1.113,6.126 1.106,6.109L1.097,6.089L1.094,6.083L1.093,6.081L1.093,6.08C1.093,6.08 1.092,6.079 1.667,5.833L1.093,6.08C0.957,5.763 1.103,5.395 1.421,5.259C1.738,5.123 2.105,5.269 2.241,5.586C2.241,5.586 2.241,5.586 2.241,5.586L2.242,5.588L2.247,5.599C2.252,5.61 2.26,5.628 2.271,5.652C2.293,5.7 2.328,5.772 2.375,5.864C2.47,6.05 2.615,6.317 2.813,6.633C3.209,7.267 3.81,8.089 4.63,8.851C5.352,9.522 6.236,10.139 7.293,10.546C8.089,10.852 8.988,11.042 10,11.042C11.035,11.042 11.952,10.844 12.761,10.526C13.812,10.112 14.69,9.49 15.406,8.818C16.214,8.06 16.806,7.246 17.197,6.619C17.391,6.307 17.534,6.043 17.627,5.86C17.674,5.769 17.708,5.698 17.73,5.651C17.741,5.627 17.749,5.61 17.754,5.599L17.759,5.588L17.759,5.587C17.759,5.587 17.759,5.587 17.759,5.587M18.58,5.259C18.263,5.123 17.895,5.27 17.759,5.587L18.58,5.259ZM2.241,5.586C2.241,5.586 2.241,5.586 2.241,5.586V5.586Z"
android:fillColor="#717171"
android:fillType="evenOdd"/>
</vector>
14 changes: 14 additions & 0 deletions app/src/main/res/drawable/eye_opened.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="20dp"
android:height="20dp"
android:viewportWidth="20"
android:viewportHeight="20">
<path
android:pathData="M10,6.875C8.274,6.875 6.875,8.274 6.875,10C6.875,11.726 8.274,13.125 10,13.125C11.726,13.125 13.125,11.726 13.125,10C13.125,8.274 11.726,6.875 10,6.875ZM8.125,10C8.125,8.965 8.965,8.125 10,8.125C11.036,8.125 11.875,8.965 11.875,10C11.875,11.036 11.036,11.875 10,11.875C8.965,11.875 8.125,11.036 8.125,10Z"
android:fillColor="#717171"
android:fillType="evenOdd"/>
<path
android:pathData="M10,2.708C6.239,2.708 3.705,4.962 2.234,6.873L2.208,6.907C1.875,7.339 1.569,7.737 1.361,8.207C1.138,8.711 1.042,9.26 1.042,10C1.042,10.74 1.138,11.289 1.361,11.793C1.569,12.264 1.875,12.661 2.208,13.093L2.234,13.128C3.705,15.038 6.239,17.292 10,17.292C13.762,17.292 16.296,15.038 17.767,13.128L17.793,13.093C18.126,12.661 18.432,12.264 18.64,11.793C18.862,11.289 18.959,10.74 18.959,10C18.959,9.26 18.862,8.711 18.64,8.207C18.432,7.737 18.126,7.339 17.793,6.907L17.767,6.873C16.296,4.962 13.762,2.708 10,2.708ZM3.225,7.635C4.583,5.871 6.792,3.958 10,3.958C13.208,3.958 15.418,5.871 16.776,7.635C17.142,8.11 17.355,8.394 17.496,8.712C17.628,9.01 17.709,9.374 17.709,10C17.709,10.626 17.628,10.99 17.496,11.288C17.355,11.607 17.142,11.891 16.776,12.365C15.418,14.129 13.208,16.042 10,16.042C6.792,16.042 4.583,14.129 3.225,12.365C2.859,11.891 2.645,11.607 2.504,11.288C2.373,10.99 2.292,10.626 2.292,10C2.292,9.374 2.373,9.01 2.504,8.712C2.645,8.394 2.859,8.11 3.225,7.635Z"
android:fillColor="#717171"
android:fillType="evenOdd"/>
</vector>
Loading