Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Guoxiangrui/feature/remove databinding #514

Merged
merged 9 commits into from
Jan 4, 2025
Prev Previous commit
Next Next commit
🧱 移除 map 模块 databinding
985892345 committed Jan 2, 2025
commit 3dfbeffef2b9bf2730c16e736aa6d810ede88900
1 change: 0 additions & 1 deletion cyxbs-pages/map/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -4,7 +4,6 @@ plugins {
}

useKtProvider()
useDataBinding()

kotlin {
sourceSets {
Original file line number Diff line number Diff line change
@@ -5,14 +5,13 @@ import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import androidx.databinding.ObservableArrayList
import androidx.databinding.ObservableList
import androidx.recyclerview.widget.RecyclerView
import com.cyxbs.pages.map.R
import com.cyxbs.pages.map.bean.PlaceItem
import com.cyxbs.pages.map.model.DataSet
import com.cyxbs.pages.map.viewmodel.MapViewModel
import com.cyxbs.components.utils.extensions.setOnSingleClickListener
import com.cyxbs.pages.map.util.ObservableArrayList

/**
*@author zhangzhe
@@ -32,29 +31,28 @@ class SearchResultAdapter(context: Context, private val viewModel: MapViewModel)

init {
viewModel.searchResult.addOnListChangedCallback(
object : ObservableList.OnListChangedCallback<ObservableArrayList<PlaceItem>>() {
override fun onChanged(sender: ObservableArrayList<PlaceItem>?) {
notifyDataSetChanged()
}

override fun onItemRangeRemoved(sender: ObservableArrayList<PlaceItem>?, positionStart: Int, itemCount: Int) {
object : ObservableArrayList.OnListChangedCallback<PlaceItem>() {
override fun onItemRangeRemoved(
sender: ObservableArrayList<PlaceItem>,
positionStart: Int,
itemCount: Int
) {
notifyItemRangeChanged(positionStart, itemCount)
notifyDataSetChanged()
}

override fun onItemRangeMoved(sender: ObservableArrayList<PlaceItem>?, fromPosition: Int, toPosition: Int, itemCount: Int) {
if (itemCount == 1) {
notifyItemMoved(fromPosition, toPosition)
} else {
notifyDataSetChanged()
}
}

override fun onItemRangeInserted(sender: ObservableArrayList<PlaceItem>?, positionStart: Int, itemCount: Int) {
override fun onItemRangeInserted(
sender: ObservableArrayList<PlaceItem>,
positionStart: Int,
itemCount: Int
) {
notifyItemRangeInserted(positionStart, itemCount)
}

override fun onItemRangeChanged(sender: ObservableArrayList<PlaceItem>?, positionStart: Int, itemCount: Int) {
override fun onItemRangeChanged(
sender: ObservableArrayList<PlaceItem>,
positionStart: Int,
itemCount: Int
) {
notifyItemRangeChanged(positionStart, itemCount)
}
}
Original file line number Diff line number Diff line change
@@ -5,22 +5,19 @@ import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import androidx.databinding.DataBindingUtil
import androidx.lifecycle.ViewModelProvider
import com.cyxbs.components.base.ui.BaseFragment
import com.cyxbs.components.utils.extensions.setOnSingleClickListener
import com.cyxbs.pages.map.R
import com.cyxbs.pages.map.databinding.MapFragmentFavoriteEditBinding
import com.cyxbs.pages.map.component.FavoriteEditText
import com.cyxbs.pages.map.viewmodel.MapViewModel
import com.cyxbs.pages.map.widget.MapDialog
import com.cyxbs.pages.map.widget.OnSelectListener
import com.cyxbs.pages.map.widget.ProgressDialog
import com.cyxbs.pages.map.component.FavoriteEditText
import com.cyxbs.components.base.ui.BaseFragment
import com.cyxbs.components.utils.extensions.setOnSingleClickListener


class FavoriteEditFragment : BaseFragment() {
private lateinit var viewModel: MapViewModel
private lateinit var mBinding: MapFragmentFavoriteEditBinding

private val mTvFavoriteCancel by R.id.map_tv_favorite_cancel.view<TextView>()
private val mTvFavoriteCancelFavorite by R.id.map_tv_favorite_cancel_favorite.view<TextView>()
@@ -29,8 +26,7 @@ class FavoriteEditFragment : BaseFragment() {
private val mTvFavoritePlaceName by R.id.map_tv_favorite_place_name.view<TextView>()

override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
mBinding = DataBindingUtil.inflate(inflater, R.layout.map_fragment_favorite_edit, container, false)
return mBinding.root
return inflater.inflate(R.layout.map_fragment_favorite_edit, container, false)
}

override fun onActivityCreated(savedInstanceState: Bundle?) {
Original file line number Diff line number Diff line change
@@ -6,33 +6,30 @@ import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import android.widget.TextView
import androidx.databinding.DataBindingUtil
import androidx.lifecycle.Observer
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.google.android.flexbox.FlexWrap
import com.google.android.flexbox.FlexboxLayoutManager
import com.google.android.material.bottomsheet.BottomSheetBehavior
import com.cyxbs.components.base.operations.doIfLogin
import com.cyxbs.components.base.ui.BaseFragment
import com.cyxbs.components.utils.extensions.gone
import com.cyxbs.components.utils.extensions.visible
import com.cyxbs.pages.map.R
import com.cyxbs.pages.map.bean.FavoritePlace
import com.cyxbs.pages.map.component.BannerIndicator
import com.cyxbs.pages.map.component.BannerView
import com.cyxbs.pages.map.databinding.MapFragmentPlaceDetailContainerBinding
import com.cyxbs.pages.map.ui.adapter.BannerViewAdapter
import com.cyxbs.pages.map.ui.adapter.DetailAttributeRvAdapter
import com.cyxbs.pages.map.ui.adapter.DetailTagRvAdapter
import com.cyxbs.pages.map.util.BannerPageTransformer
import com.cyxbs.pages.map.viewmodel.MapViewModel
import com.cyxbs.components.base.operations.doIfLogin
import com.cyxbs.components.base.ui.BaseFragment
import com.cyxbs.components.utils.extensions.gone
import com.cyxbs.components.utils.extensions.visible
import com.google.android.flexbox.FlexWrap
import com.google.android.flexbox.FlexboxLayoutManager
import com.google.android.material.bottomsheet.BottomSheetBehavior


class PlaceDetailBottomSheetFragment : BaseFragment() {
private lateinit var viewModel: MapViewModel
private lateinit var mBinding: MapFragmentPlaceDetailContainerBinding
private var isFavoritePlace = false

private val mBannerDetailImage by R.id.map_banner_detail_image.view<BannerView>()
@@ -43,13 +40,13 @@ class PlaceDetailBottomSheetFragment : BaseFragment() {
private val mTvDetailPlaceNickname by R.id.map_tv_detail_place_nickname.view<TextView>()
private val mTvDetailMore by R.id.map_tv_detail_more.view<TextView>()
private val mTvDetailShare by R.id.map_tv_detail_share.view<TextView>()
private val mapTvDetailAboutText by R.id.map_tv_detail_about_text.view<TextView>()
private val mapTvDetailPlaceName by R.id.map_tv_detail_place_name.view<TextView>()


override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?): View {
mBinding = DataBindingUtil.inflate(inflater, R.layout.map_fragment_place_detail_container, container, false)
// mBinding.lifecycleOwner = viewLifecycleOwner
return mBinding.root
return inflater.inflate(R.layout.map_fragment_place_detail_container, container, false)
}

override fun onActivityCreated(savedInstanceState: Bundle?) {
@@ -87,8 +84,7 @@ class PlaceDetailBottomSheetFragment : BaseFragment() {
viewModel.placeDetails.observe(
viewLifecycleOwner,
Observer { t ->
//数据绑定
mBinding.placeDetails = t
mapTvDetailPlaceName.text = t.placeName
//数据传给adapter
if (bannerViewAdapter != null) {
if (t.images != null) {
@@ -104,12 +100,12 @@ class PlaceDetailBottomSheetFragment : BaseFragment() {
}
}
if (t.tags != null) {
mBinding.mapTvDetailAboutText.visible()
mBinding.mapRvDetailAboutList.visible()
mapTvDetailAboutText.visible()
mRvDetailAboutList.visible()
tagAdapter.submitList(t.tags ?: emptyList())
} else {
mBinding.mapTvDetailAboutText.gone()
mBinding.mapRvDetailAboutList.gone()
mapTvDetailAboutText.gone()
mRvDetailAboutList.gone()
}

if (attributeAdapter != null) {
Original file line number Diff line number Diff line change
@@ -36,7 +36,7 @@ class SearchResultFragment : BaseFragment() {
viewModel = ViewModelProvider(requireActivity()).get(MapViewModel::class.java)


val searchResultAdapter = context?.let { SearchResultAdapter(it, viewModel) }
val searchResultAdapter = SearchResultAdapter(requireContext(), viewModel)
mRvSearchResult.adapter = searchResultAdapter
mRvSearchResult.layoutManager = LinearLayoutManager(context)

Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
package com.cyxbs.pages.map.util

import androidx.compose.ui.util.fastForEachReversed


/**
* 移植 dataBinding 中的 ObservableArrayList
*
* @author 985892345
* @date 2025/1/2
*/
class ObservableArrayList<T> : ArrayList<T>() {

private var mListeners = mutableListOf<OnListChangedCallback<T>>()

fun addOnListChangedCallback(listener: OnListChangedCallback<T>) {
mListeners.add(listener)
}

fun removeOnListChangedCallback(listener: OnListChangedCallback<*>) {
mListeners.remove(listener)
}

override fun add(element: T): Boolean {
super.add(element)
notifyAdd(size - 1, 1)
return true
}

override fun add(index: Int, element: T) {
super.add(index, element)
notifyAdd(index, 1)
}

override fun addAll(elements: Collection<T>): Boolean {
val oldSize = size
val added = super.addAll(elements)
if (added) {
notifyAdd(oldSize, size - oldSize)
}
return added
}

override fun addAll(index: Int, elements: Collection<T>): Boolean {
val added = super.addAll(index, elements)
if (added) {
notifyAdd(index, elements.size)
}
return added
}

override fun clear() {
val oldSize = size
super.clear()
if (oldSize != 0) {
notifyRemove(0, oldSize)
}
}

override fun removeAt(index: Int): T {
val `val` = super.removeAt(index)
notifyRemove(index, 1)
return `val`
}

override fun remove(element: T): Boolean {
val index = indexOf(element)
if (index >= 0) {
removeAt(index)
return true
} else {
return false
}
}

override fun set(index: Int, element: T): T {
val `val` = super.set(index, element)
mListeners.fastForEachReversed { it.onItemRangeChanged(this, index, 1) }
return `val`
}

override fun removeRange(fromIndex: Int, toIndex: Int) {
super.removeRange(fromIndex, toIndex)
notifyRemove(fromIndex, toIndex - fromIndex)
}

private fun notifyAdd(start: Int, count: Int) {
mListeners.fastForEachReversed { it.onItemRangeInserted(this, start, count) }
}

private fun notifyRemove(start: Int, count: Int) {
mListeners.fastForEachReversed { it.onItemRangeRemoved(this, start, count) }
}

abstract class OnListChangedCallback<T> {

/**
* Called whenever one or more items in the list have changed.
* @param sender The changing list.
* @param positionStart The starting index that has changed.
* @param itemCount The number of items that have changed.
*/
abstract fun onItemRangeChanged(sender: ObservableArrayList<T>, positionStart: Int, itemCount: Int)

/**
* Called whenever items have been inserted into the list.
* @param sender The changing list.
* @param positionStart The insertion index
* @param itemCount The number of items that have been inserted
*/
abstract fun onItemRangeInserted(sender: ObservableArrayList<T>, positionStart: Int, itemCount: Int)

/**
* Called whenever items in the list have been deleted.
* @param sender The changing list.
* @param positionStart The starting index of the deleted items.
* @param itemCount The number of items removed.
*/
abstract fun onItemRangeRemoved(sender: ObservableArrayList<T>, positionStart: Int, itemCount: Int)
}
}
Original file line number Diff line number Diff line change
@@ -4,7 +4,6 @@ import android.Manifest
import android.app.Activity
import android.content.Context
import android.content.pm.PackageManager
import androidx.databinding.ObservableArrayList
import androidx.fragment.app.Fragment
import androidx.lifecycle.MutableLiveData
import com.google.android.material.bottomsheet.BottomSheetBehavior
@@ -23,6 +22,7 @@ import com.cyxbs.components.utils.network.CommonApiService
import com.cyxbs.components.utils.network.DownMessageParams
import com.cyxbs.components.utils.network.mapOrInterceptException
import com.cyxbs.components.utils.network.mapOrThrowApiException
import com.cyxbs.pages.map.util.ObservableArrayList
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
import io.reactivex.rxjava3.schedulers.Schedulers
import okhttp3.MediaType.Companion.toMediaTypeOrNull
Original file line number Diff line number Diff line change
@@ -1,114 +1,108 @@
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
<FrameLayout
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">
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="true"
android:background="@color/map_favorite_edit_background_color"
tools:context=".ui.fragment.FavoriteEditFragment"
android:focusable="true">

<data>

</data>

<FrameLayout
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="true"
android:background="@color/map_favorite_edit_background_color"
tools:context=".ui.fragment.FavoriteEditFragment"
android:focusable="true">

<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
android:layout_height="match_parent">

<com.cyxbs.pages.map.component.FavoriteEditText
android:id="@+id/map_et_favorite_nickname"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="16dp"
android:hint="@string/map_favorite_et_hint"
android:background="@drawable/map_shape_search_background"
android:gravity="center_vertical"
android:imeOptions="actionNext"
android:inputType="text"
android:maxEms="250"
android:maxLength="180"
android:maxLines="1"
android:paddingStart="14dp"
android:paddingTop="8dp"
android:paddingEnd="14dp"
android:paddingBottom="8dp"
android:textColor="@color/common_transaction_completion_edit_view_color"
android:textColorHint="@color/common_transaction_completion_edit_view_color"
android:textSize="@dimen/map_search_edit_text_size"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/map_tv_favorite_change" />
<com.cyxbs.pages.map.component.FavoriteEditText
android:id="@+id/map_et_favorite_nickname"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="16dp"
android:hint="@string/map_favorite_et_hint"
android:background="@drawable/map_shape_search_background"
android:gravity="center_vertical"
android:imeOptions="actionNext"
android:inputType="text"
android:maxEms="250"
android:maxLength="180"
android:maxLines="1"
android:paddingStart="14dp"
android:paddingTop="8dp"
android:paddingEnd="14dp"
android:paddingBottom="8dp"
android:textColor="@color/common_transaction_completion_edit_view_color"
android:textColorHint="@color/common_transaction_completion_edit_view_color"
android:textSize="@dimen/map_search_edit_text_size"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/map_tv_favorite_change" />

<TextView
android:id="@+id/map_tv_favorite_change"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="20dp"
android:text="收藏为"
android:textColor="@color/map_favorite_change_color"
android:textSize="@dimen/map_favorite_change_text_size"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/map_tv_favorite_place_name" />
<TextView
android:id="@+id/map_tv_favorite_change"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="20dp"
android:text="收藏为"
android:textColor="@color/map_favorite_change_color"
android:textSize="@dimen/map_favorite_change_text_size"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/map_tv_favorite_place_name" />

<TextView
android:id="@+id/map_tv_favorite_cancel_favorite"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="20dp"
android:text="@string/map_favorite_cancel_favorite"
android:textColor="@color/map_favorite_cancel_favorite_text_color"
android:textSize="@dimen/map_favorite_accept_or_cancel_text_size"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/map_et_favorite_nickname" />
<TextView
android:id="@+id/map_tv_favorite_cancel_favorite"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="20dp"
android:text="@string/map_favorite_cancel_favorite"
android:textColor="@color/map_favorite_cancel_favorite_text_color"
android:textSize="@dimen/map_favorite_accept_or_cancel_text_size"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/map_et_favorite_nickname" />

<TextView
android:id="@+id/map_tv_favorite_cancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"
android:text="@string/map_favorite_cancel"
android:textColor="@color/map_favorite_cancel_text_color"
android:textSize="@dimen/map_favorite_accept_or_cancel_text_size"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/map_tv_favorite_cancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"
android:text="@string/map_favorite_cancel"
android:textColor="@color/map_favorite_cancel_text_color"
android:textSize="@dimen/map_favorite_accept_or_cancel_text_size"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />

<TextView
android:id="@+id/map_tv_favorite_accept"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginEnd="16dp"
android:text="@string/map_favorite_accept"
android:textColor="@color/map_favorite_accept_text_color"
android:textSize="@dimen/map_favorite_accept_or_cancel_text_size"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/map_tv_favorite_accept"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginEnd="16dp"
android:text="@string/map_favorite_accept"
android:textColor="@color/map_favorite_accept_text_color"
android:textSize="@dimen/map_favorite_accept_or_cancel_text_size"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />

<com.cyxbs.components.config.view.MarqueeTextView
android:id="@+id/map_tv_favorite_place_name"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="32dp"
android:singleLine="true"
android:marqueeRepeatLimit="-1"
android:ellipsize="marquee"
android:focusable="true"
android:textColor="@color/map_favorite_place_name_text_color"
android:textSize="@dimen/map_favorite_place_name_text_size"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/map_tv_favorite_cancel"
tools:text="风雨操场" />
<com.cyxbs.components.config.view.MarqueeTextView
android:id="@+id/map_tv_favorite_place_name"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="32dp"
android:singleLine="true"
android:marqueeRepeatLimit="-1"
android:ellipsize="marquee"
android:focusable="true"
android:textColor="@color/map_favorite_place_name_text_color"
android:textSize="@dimen/map_favorite_place_name_text_size"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/map_tv_favorite_cancel"
tools:text="风雨操场" />

</androidx.constraintlayout.widget.ConstraintLayout>
</FrameLayout>
</layout>
</androidx.constraintlayout.widget.ConstraintLayout>
</FrameLayout>
128 changes: 61 additions & 67 deletions cyxbs-pages/map/src/androidMain/res/layout/map_fragment_main.xml
Original file line number Diff line number Diff line change
@@ -1,76 +1,70 @@
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
<FrameLayout
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">
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".ui.fragment.MainFragment">

<data>

</data>

<FrameLayout
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/map_cl"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".ui.fragment.MainFragment">

<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/map_cl"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:focusable="true"
android:focusableInTouchMode="true"
android:background="@color/map_main_background">
android:focusable="true"
android:focusableInTouchMode="true"
android:background="@color/map_main_background">

<com.cyxbs.pages.map.component.SearchEditText
android:id="@+id/map_et_search"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="6dp"
android:layout_marginTop="6dp"
android:layout_marginEnd="16dp"
android:background="@drawable/map_shape_search_background"
android:gravity="center_vertical"
android:imeOptions="actionNext"
android:inputType="text"
android:maxEms="250"
android:maxLength="180"
android:maxLines="1"
android:paddingStart="16dp"
android:paddingTop="9dp"
android:paddingEnd="16dp"
android:paddingBottom="9dp"
android:textColor="@color/map_search_text_color"
android:textColorHint="@color/map_search_text_color_hint"
android:textSize="@dimen/map_search_edit_text_size"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/map_iv_back"
app:layout_constraintTop_toTopOf="parent" />
<com.cyxbs.pages.map.component.SearchEditText
android:id="@+id/map_et_search"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="6dp"
android:layout_marginTop="6dp"
android:layout_marginEnd="16dp"
android:background="@drawable/map_shape_search_background"
android:gravity="center_vertical"
android:imeOptions="actionNext"
android:inputType="text"
android:maxEms="250"
android:maxLength="180"
android:maxLines="1"
android:paddingStart="16dp"
android:paddingTop="9dp"
android:paddingEnd="16dp"
android:paddingBottom="9dp"
android:textColor="@color/map_search_text_color"
android:textColorHint="@color/map_search_text_color_hint"
android:textSize="@dimen/map_search_edit_text_size"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/map_iv_back"
app:layout_constraintTop_toTopOf="parent" />

<ImageView
android:id="@+id/map_iv_back"
android:layout_width="30dp"
android:layout_height="0dp"
android:layout_marginStart="6dp"
android:adjustViewBounds="false"
android:fitsSystemWindows="false"
android:paddingStart="10dp"
android:paddingEnd="10dp"
app:layout_constraintBottom_toBottomOf="@+id/map_et_search"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/map_et_search"
app:srcCompat="@drawable/map_ic_back"
tools:ignore="ContentDescription" />
<ImageView
android:id="@+id/map_iv_back"
android:layout_width="30dp"
android:layout_height="0dp"
android:layout_marginStart="6dp"
android:adjustViewBounds="false"
android:fitsSystemWindows="false"
android:paddingStart="10dp"
android:paddingEnd="10dp"
app:layout_constraintBottom_toBottomOf="@+id/map_et_search"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/map_et_search"
app:srcCompat="@drawable/map_ic_back"
tools:ignore="ContentDescription" />

<LinearLayout
android:id="@+id/map_ll_map_fragment"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginTop="6dp"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/map_et_search" />
<LinearLayout
android:id="@+id/map_ll_map_fragment"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginTop="6dp"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/map_et_search" />

</androidx.constraintlayout.widget.ConstraintLayout>
</FrameLayout>
</layout>
</androidx.constraintlayout.widget.ConstraintLayout>
</FrameLayout>
286 changes: 140 additions & 146 deletions cyxbs-pages/map/src/androidMain/res/layout/map_fragment_map_view.xml
Original file line number Diff line number Diff line change
@@ -1,160 +1,154 @@
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
<FrameLayout
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>

<FrameLayout
android:id="@+id/map_root_map_view"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/map_root_map_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/common_white_background"
tools:context=".ui.fragment.inner.MapViewFragment">

<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/map_cl_map_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/common_white_background"
tools:context=".ui.fragment.inner.MapViewFragment">

<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/map_cl_map_view"
android:layout_width="match_parent"
android:layout_height="match_parent">

<LinearLayout
android:id="@+id/map_ll_map_view_my_favorite"
android:layout_height="match_parent">

<LinearLayout
android:id="@+id/map_ll_map_view_my_favorite"
android:layout_width="wrap_content"
android:layout_height="54dp"
android:layout_marginEnd="8dp"
android:clickable="true"
android:focusable="true"
android:gravity="center_horizontal"
android:orientation="vertical"
android:paddingStart="4dp"
android:paddingTop="8dp"
android:paddingEnd="4dp"
android:paddingBottom="4dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent">

<ImageView
android:id="@+id/map_iv_map_view_my_favorite"
android:layout_width="23dp"
android:layout_height="17dp"
app:srcCompat="@drawable/map_ic_my_favorate" />

<TextView
android:id="@+id/map_tv_map_view_my_favorite"
android:layout_width="wrap_content"
android:layout_height="54dp"
android:layout_marginEnd="8dp"
android:clickable="true"
android:focusable="true"
android:gravity="center_horizontal"
android:orientation="vertical"
android:paddingStart="4dp"
android:paddingTop="8dp"
android:paddingEnd="4dp"
android:paddingBottom="4dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent">

<ImageView
android:id="@+id/map_iv_map_view_my_favorite"
android:layout_width="23dp"
android:layout_height="17dp"
app:srcCompat="@drawable/map_ic_my_favorate" />

<TextView
android:id="@+id/map_tv_map_view_my_favorite"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:text="@string/map_place_map_view_my_favorite"
android:textSize="11sp" />
</LinearLayout>

<androidx.recyclerview.widget.RecyclerView
android:id="@+id/map_rv_symbol_places"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginStart="8dp"
android:paddingStart="8dp"
android:paddingEnd="1dp"
app:layout_constraintBottom_toBottomOf="@+id/map_ll_map_view_my_favorite"
app:layout_constraintEnd_toStartOf="@+id/map_view_divider"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/map_ll_map_view_my_favorite" />
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:text="@string/map_place_map_view_my_favorite"
android:textSize="11sp" />
</LinearLayout>

<androidx.recyclerview.widget.RecyclerView
android:id="@+id/map_rv_symbol_places"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginStart="8dp"
android:paddingStart="8dp"
android:paddingEnd="1dp"
app:layout_constraintBottom_toBottomOf="@+id/map_ll_map_view_my_favorite"
app:layout_constraintEnd_toStartOf="@+id/map_view_divider"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/map_ll_map_view_my_favorite" />

<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="@+id/content"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/map_rv_symbol_places">

<com.cyxbs.pages.map.component.MapLayout
android:id="@+id/map_layout"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.0">

</com.cyxbs.pages.map.component.MapLayout>

<com.cyxbs.pages.map.component.ClickView
android:id="@+id/map_iv_vr"
android:layout_width="36dp"
android:layout_height="36dp"
android:layout_marginLeft="16dp"
android:scaleType="centerCrop"
android:src="@drawable/map_ic_vr"
app:layout_constraintBottom_toBottomOf="@+id/map_iv_compass"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="@+id/map_iv_compass" />

<com.cyxbs.pages.map.component.ClickView
android:id="@+id/map_iv_compass"
android:layout_width="66dp"
android:layout_height="66dp"
android:layout_marginTop="32dp"
android:layout_marginRight="16dp"
android:scaleType="centerCrop"
android:src="@drawable/map_ic_compass"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />

<com.cyxbs.pages.map.component.ClickView
android:id="@+id/map_iv_lock"
android:layout_width="36dp"
android:layout_height="36dp"
android:layout_marginTop="20dp"
android:scaleType="centerCrop"
android:src="@drawable/map_ic_unlock"
app:layout_constraintEnd_toEndOf="@id/map_iv_compass"
app:layout_constraintStart_toStartOf="@id/map_iv_compass"
app:layout_constraintTop_toBottomOf="@id/map_iv_compass" />

</androidx.constraintlayout.widget.ConstraintLayout>


<androidx.coordinatorlayout.widget.CoordinatorLayout
android:id="@+id/content"
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="@+id/content"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/map_rv_symbol_places">

<com.cyxbs.pages.map.component.MapLayout
android:id="@+id/map_layout"
android:layout_width="0dp"
android:layout_height="0dp"
android:animateLayoutChanges="true"
android:fitsSystemWindows="false"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/map_rv_symbol_places"
tools:background="@color/common_white_background"
tools:context=".ui.MainActivity">
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.0">

</com.cyxbs.pages.map.component.MapLayout>

<com.cyxbs.pages.map.component.ClickView
android:id="@+id/map_iv_vr"
android:layout_width="36dp"
android:layout_height="36dp"
android:layout_marginLeft="16dp"
android:scaleType="centerCrop"
android:src="@drawable/map_ic_vr"
app:layout_constraintBottom_toBottomOf="@+id/map_iv_compass"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="@+id/map_iv_compass" />

<com.cyxbs.pages.map.component.ClickView
android:id="@+id/map_iv_compass"
android:layout_width="66dp"
android:layout_height="66dp"
android:layout_marginTop="32dp"
android:layout_marginRight="16dp"
android:scaleType="centerCrop"
android:src="@drawable/map_ic_compass"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />

<com.cyxbs.pages.map.component.ClickView
android:id="@+id/map_iv_lock"
android:layout_width="36dp"
android:layout_height="36dp"
android:layout_marginTop="20dp"
android:scaleType="centerCrop"
android:src="@drawable/map_ic_unlock"
app:layout_constraintEnd_toEndOf="@id/map_iv_compass"
app:layout_constraintStart_toStartOf="@id/map_iv_compass"
app:layout_constraintTop_toBottomOf="@id/map_iv_compass" />

<FrameLayout
android:id="@+id/map_bottom_sheet_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:behavior_hideable="true"
app:behavior_peekHeight="120dp"
app:layout_behavior="@string/bottom_sheet_behavior">

</FrameLayout>

</androidx.coordinatorlayout.widget.CoordinatorLayout>

<View
android:id="@+id/map_view_divider"
android:layout_width="1dp"
android:layout_height="0dp"
android:layout_marginEnd="8dp"
android:background="@color/map_divider_color"
app:layout_constraintBottom_toBottomOf="@+id/map_ll_map_view_my_favorite"
app:layout_constraintEnd_toStartOf="@+id/map_ll_map_view_my_favorite"
app:layout_constraintTop_toTopOf="@+id/map_ll_map_view_my_favorite" />
</androidx.constraintlayout.widget.ConstraintLayout>


</FrameLayout>
</layout>
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:id="@+id/content"
android:layout_width="0dp"
android:layout_height="0dp"
android:animateLayoutChanges="true"
android:fitsSystemWindows="false"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/map_rv_symbol_places"
tools:background="@color/common_white_background"
tools:context=".ui.MainActivity">

<FrameLayout
android:id="@+id/map_bottom_sheet_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:behavior_hideable="true"
app:behavior_peekHeight="120dp"
app:layout_behavior="@string/bottom_sheet_behavior">

</FrameLayout>

</androidx.coordinatorlayout.widget.CoordinatorLayout>

<View
android:id="@+id/map_view_divider"
android:layout_width="1dp"
android:layout_height="0dp"
android:layout_marginEnd="8dp"
android:background="@color/map_divider_color"
app:layout_constraintBottom_toBottomOf="@+id/map_ll_map_view_my_favorite"
app:layout_constraintEnd_toStartOf="@+id/map_ll_map_view_my_favorite"
app:layout_constraintTop_toTopOf="@+id/map_ll_map_view_my_favorite" />
</androidx.constraintlayout.widget.ConstraintLayout>


</FrameLayout>

Large diffs are not rendered by default.

24 changes: 9 additions & 15 deletions cyxbs-pages/map/src/androidMain/res/layout/map_fragment_search.xml
Original file line number Diff line number Diff line change
@@ -1,16 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">

<data>

</data>

<FrameLayout
android:id="@+id/map_fl_search_fragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="true"
android:focusable="true"
tools:context=".ui.fragment.inner.SearchFragment" />
</layout>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/map_fl_search_fragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="true"
android:focusable="true"
tools:context=".ui.fragment.inner.SearchFragment" />