diff --git a/app/src/main/java/com/into/websoso/ui/createFeed/CreateFeedActivity.kt b/app/src/main/java/com/into/websoso/ui/createFeed/CreateFeedActivity.kt index 1f493ede5..0b4d10882 100644 --- a/app/src/main/java/com/into/websoso/ui/createFeed/CreateFeedActivity.kt +++ b/app/src/main/java/com/into/websoso/ui/createFeed/CreateFeedActivity.kt @@ -1,14 +1,19 @@ package com.into.websoso.ui.createFeed +import android.annotation.SuppressLint import android.content.Context import android.content.Intent import android.os.Bundle +import android.text.method.ScrollingMovementMethod import android.view.MotionEvent import android.view.View import android.view.inputmethod.InputMethodManager import androidx.activity.addCallback import androidx.activity.result.ActivityResultLauncher import androidx.activity.viewModels +import coil.ImageLoader +import coil.decode.ImageDecoderDecoder +import coil.load import com.into.websoso.R.color.bg_detail_explore_chip_background_selector import com.into.websoso.R.color.bg_detail_explore_chip_stroke_selector import com.into.websoso.R.color.bg_detail_explore_chip_text_selector @@ -28,6 +33,7 @@ import com.into.websoso.core.common.util.toFloatPxFromDp import com.into.websoso.core.common.util.tracker.Tracker import com.into.websoso.core.designsystem.theme.WebsosoTheme import com.into.websoso.core.resource.R.drawable.ic_blocked_user_snack_bar +import com.into.websoso.core.resource.R.drawable.ic_load_load import com.into.websoso.core.resource.R.string.create_feed_image_limit import com.into.websoso.core.resource.R.string.tv_create_feed_characters_count import com.into.websoso.core.resource.R.string.wset_create_feed_search_novel @@ -59,11 +65,13 @@ class CreateFeedActivity : BaseActivity(activity_crea super.onCreate(savedInstanceState) setupView() + setupCustomScroll() onCreateFeedClick() bindViewModel() setupObservers() setupEventCollectors() setupCreateFeedImageContainer() + setupLoadingAnimation() createFeedViewModel.categories.setupCategoryChips() tracker.trackEvent("write") } @@ -86,6 +94,20 @@ class CreateFeedActivity : BaseActivity(activity_crea } } + @SuppressLint("ClickableViewAccessibility") + private fun setupCustomScroll() { + binding.etCreateFeedContent.setOnTouchListener { view, event -> + if (view.hasFocus()) { + view.parent.requestDisallowInterceptTouchEvent(true) + if ((event.action and MotionEvent.ACTION_MASK) == MotionEvent.ACTION_UP) { + view.parent.requestDisallowInterceptTouchEvent(false) + } + } + false + } + binding.etCreateFeedContent.movementMethod = ScrollingMovementMethod() + } + private fun onCreateFeedClick() { onBackPressedDispatcher.addCallback(this) { singleEventHandler.throttleFirst { @@ -225,6 +247,15 @@ class CreateFeedActivity : BaseActivity(activity_crea } } + private fun setupLoadingAnimation() { + val gifImageLoader = ImageLoader + .Builder(this) + .components { + add(ImageDecoderDecoder.Factory()) + }.build() + binding.ivCreateFeedLoad.load(ic_load_load, gifImageLoader) + } + private fun createFeedImagePickerLauncher() = registerForActivityResult(DynamicLimitPhotoPicker()) { uris -> if (uris.isNullOrEmpty()) return@registerForActivityResult diff --git a/app/src/main/res/layout/activity_create_feed.xml b/app/src/main/res/layout/activity_create_feed.xml index e3b993b55..45154dc7c 100644 --- a/app/src/main/res/layout/activity_create_feed.xml +++ b/app/src/main/res/layout/activity_create_feed.xml @@ -107,7 +107,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="20dp" - android:layout_marginTop="36dp" + android:layout_marginTop="32dp" android:text="@string/tv_create_feed_write_content" android:textAppearance="@style/title2" android:textColor="@color/black" @@ -128,7 +128,6 @@ app:layout_constraintTop_toBottomOf="@+id/tv_create_feed_category" app:singleSelection="false" /> - @@ -317,5 +317,27 @@ + + + + +