[Android] virtual-device-app: Remove collapsing layout (#30948)
* virtual-device-app: Remove collapsing layout
Signed-off-by: Jaehoon You <jaehoon.you@samsung.com>
Signed-off-by: Charles Kim <chulspro.kim@samsung.com>
* virtual-device-app: Cleanup resources
Signed-off-by: Jaehoon You <jaehoon.you@samsung.com>
Signed-off-by: Charles Kim <chulspro.kim@samsung.com>
---------
Signed-off-by: Jaehoon You <jaehoon.you@samsung.com>
Signed-off-by: Charles Kim <chulspro.kim@samsung.com>
diff --git a/examples/virtual-device-app/android/App/core/common/src/main/res/values/themes.xml b/examples/virtual-device-app/android/App/core/common/src/main/res/values/themes.xml
index fcbe6bc..a485b51 100644
--- a/examples/virtual-device-app/android/App/core/common/src/main/res/values/themes.xml
+++ b/examples/virtual-device-app/android/App/core/common/src/main/res/values/themes.xml
@@ -19,9 +19,4 @@
<item name="android:navigationBarColor">@color/color_background_secondary</item>
</style>
- <style name="Theme.CollapsingToolbar" parent="Theme.App">
- <item name="statusBarScrim">@android:color/transparent</item>
- <item name="android:background">@color/action_bar_background_color_light</item>
- <item name="colorControlNormal">@color/toolbar_button_color</item>
- </style>
</resources>
\ No newline at end of file
diff --git a/examples/virtual-device-app/android/App/core/ui/src/main/java/com/matter/virtual/device/app/core/ui/BaseFragment.kt b/examples/virtual-device-app/android/App/core/ui/src/main/java/com/matter/virtual/device/app/core/ui/BaseFragment.kt
index 9a25464..f4ebea9 100644
--- a/examples/virtual-device-app/android/App/core/ui/src/main/java/com/matter/virtual/device/app/core/ui/BaseFragment.kt
+++ b/examples/virtual-device-app/android/App/core/ui/src/main/java/com/matter/virtual/device/app/core/ui/BaseFragment.kt
@@ -15,7 +15,6 @@
import com.matter.virtual.device.app.core.common.EventObserver
import com.matter.virtual.device.app.core.common.MatterSettings
import com.matter.virtual.device.app.core.ui.databinding.LayoutAppbarBinding
-import kotlin.math.abs
import timber.log.Timber
abstract class BaseFragment<T : ViewDataBinding, V : BaseViewModel>(
@@ -50,16 +49,6 @@
(activity as AppCompatActivity).setSupportActionBar(layoutAppBarBinding.toolbar)
(activity as AppCompatActivity).supportActionBar?.setDisplayHomeAsUpEnabled(true)
- layoutAppBarBinding.appBarLayout.addOnOffsetChangedListener { appBarLayout, verticalOffset ->
- var ratio = 0F
- if (abs(verticalOffset) != 0) {
- ratio = abs(verticalOffset).toFloat() / appBarLayout.totalScrollRange.toFloat()
- }
-
- layoutAppBarBinding.collapseTitle.alpha = 1f - ratio * 2f + 0.1f
- layoutAppBarBinding.toolbarTitle.alpha = (ratio - 0.5f) * 2f + 0.1f
- }
-
layoutAppBarBinding.toolbarMoreMenuButton.setOnClickListener {
Timber.d("More")
showMoreMenuPopup(it)
diff --git a/examples/virtual-device-app/android/App/core/ui/src/main/res/drawable/round_toggle_on_24.xml b/examples/virtual-device-app/android/App/core/ui/src/main/res/drawable/round_toggle_on_24.xml
deleted file mode 100644
index d42714c..0000000
--- a/examples/virtual-device-app/android/App/core/ui/src/main/res/drawable/round_toggle_on_24.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<vector android:height="24dp" android:tint="#000000"
- android:viewportHeight="24" android:viewportWidth="24"
- android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
- <path android:fillColor="@android:color/white" android:pathData="M17,7L7,7c-2.76,0 -5,2.24 -5,5s2.24,5 5,5h10c2.76,0 5,-2.24 5,-5s-2.24,-5 -5,-5zM17,15c-1.66,0 -3,-1.34 -3,-3s1.34,-3 3,-3 3,1.34 3,3 -1.34,3 -3,3z"/>
-</vector>
diff --git a/examples/virtual-device-app/android/App/core/ui/src/main/res/layout/layout_appbar.xml b/examples/virtual-device-app/android/App/core/ui/src/main/res/layout/layout_appbar.xml
index b612ae6..26495c1 100644
--- a/examples/virtual-device-app/android/App/core/ui/src/main/res/layout/layout_appbar.xml
+++ b/examples/virtual-device-app/android/App/core/ui/src/main/res/layout/layout_appbar.xml
@@ -5,75 +5,41 @@
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/app_bar_layout"
android:layout_width="match_parent"
- android:layout_height="@dimen/appbar_layout_height"
+ android:layout_height="?attr/actionBarSize"
android:background="@android:color/transparent"
- android:fitsSystemWindows="true"
- app:elevation="0dp"
- app:expanded="false"
- app:layout_behavior="com.matter.virtual.device.app.core.ui.DisableAppBarLayoutBehavior">
+ app:elevation="0dp">
- <com.google.android.material.appbar.CollapsingToolbarLayout
- android:id="@+id/toolbar_layout"
+ <com.google.android.material.appbar.MaterialToolbar
+ android:id="@+id/toolbar"
android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:fitsSystemWindows="true"
- android:theme="@style/Theme.CollapsingToolbar"
- app:layout_scrollFlags="scroll|exitUntilCollapsed">
+ android:layout_height="match_parent">
- <TextView
- android:id="@+id/collapse_title"
+ <androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:gravity="center"
- android:textAlignment="center"
- android:textSize="@dimen/collapse_title_text_size" />
+ android:layout_height="match_parent">
- <androidx.appcompat.widget.Toolbar
- android:id="@+id/toolbar"
- android:layout_width="match_parent"
- android:layout_height="?attr/actionBarSize"
- android:layout_gravity="bottom"
- android:background="@android:color/transparent"
- android:contentInsetStart="0dp"
- android:contentInsetLeft="0dp"
- android:contentInsetEnd="0dp"
- android:contentInsetRight="0dp"
- android:theme="@style/Theme.CollapsingToolbar"
- app:contentInsetEnd="0dp"
- app:contentInsetLeft="0dp"
- app:contentInsetRight="0dp"
- app:contentInsetStart="0dp"
- app:contentInsetStartWithNavigation="0dp"
- app:elevation="0dp"
- app:layout_collapseMode="pin">
-
- <androidx.constraintlayout.widget.ConstraintLayout
+ <TextView
+ android:id="@+id/toolbar_title"
android:layout_width="match_parent"
- android:layout_height="match_parent">
+ android:layout_height="wrap_content"
+ android:textAlignment="viewStart"
+ android:textSize="@dimen/toolbar_title_text_size"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent" />
- <TextView
- android:id="@+id/toolbar_title"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:textAlignment="viewStart"
- android:textSize="@dimen/toolbar_title_text_size"
- app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toTopOf="parent" />
-
- <androidx.appcompat.widget.AppCompatImageView
- android:id="@+id/toolbar_more_menu_button"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginEnd="@dimen/toolbar_more_menu_button_margin_end"
- android:scaleType="centerCrop"
- android:tint="@color/toolbar_button_color"
- app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintTop_toTopOf="parent"
- app:srcCompat="@drawable/round_more_vert_24" />
- </androidx.constraintlayout.widget.ConstraintLayout>
- </androidx.appcompat.widget.Toolbar>
- </com.google.android.material.appbar.CollapsingToolbarLayout>
+ <androidx.appcompat.widget.AppCompatImageView
+ android:id="@+id/toolbar_more_menu_button"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginEnd="@dimen/toolbar_more_menu_button_margin_end"
+ android:scaleType="centerCrop"
+ android:tint="@color/toolbar_button_color"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintTop_toTopOf="parent"
+ app:srcCompat="@drawable/round_more_vert_24" />
+ </androidx.constraintlayout.widget.ConstraintLayout>
+ </com.google.android.material.appbar.MaterialToolbar>
</com.google.android.material.appbar.AppBarLayout>
</layout>
\ No newline at end of file
diff --git a/examples/virtual-device-app/android/App/core/ui/src/main/res/layout/layout_space_bottom.xml b/examples/virtual-device-app/android/App/core/ui/src/main/res/layout/layout_bottom_space.xml
similarity index 100%
rename from examples/virtual-device-app/android/App/core/ui/src/main/res/layout/layout_space_bottom.xml
rename to examples/virtual-device-app/android/App/core/ui/src/main/res/layout/layout_bottom_space.xml
diff --git a/examples/virtual-device-app/android/App/core/ui/src/main/res/layout/layout_space_top.xml b/examples/virtual-device-app/android/App/core/ui/src/main/res/layout/layout_space_top.xml
deleted file mode 100644
index 4742103..0000000
--- a/examples/virtual-device-app/android/App/core/ui/src/main/res/layout/layout_space_top.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<View xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="@dimen/device_item_top_space_height" />
diff --git a/examples/virtual-device-app/android/App/core/ui/src/main/res/layout/layout_title.xml b/examples/virtual-device-app/android/App/core/ui/src/main/res/layout/layout_title.xml
deleted file mode 100644
index 7ad1491..0000000
--- a/examples/virtual-device-app/android/App/core/ui/src/main/res/layout/layout_title.xml
+++ /dev/null
@@ -1,39 +0,0 @@
-<?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">
-
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:orientation="vertical">
-
- <androidx.constraintlayout.widget.ConstraintLayout
- android:layout_width="@dimen/device_title_icon_width"
- android:layout_height="@dimen/device_title_icon_height"
- android:layout_gravity="center_horizontal"
- android:layout_marginTop="@dimen/device_title_icon_margin_top">
-
- <ImageView
- android:id="@+id/title_icon"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:background="@drawable/device_title_icon_bg"
- android:contentDescription="@string/description_icon"
- app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toTopOf="parent"
- app:tint="@color/image_background_color" />
-
- </androidx.constraintlayout.widget.ConstraintLayout>
-
- <TextView
- android:id="@+id/title_text"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_marginTop="@dimen/device_title_text_margin_top"
- android:gravity="center"
- android:textSize="@dimen/device_title_text_size" />
- </LinearLayout>
-
-</layout>
\ No newline at end of file
diff --git a/examples/virtual-device-app/android/App/core/ui/src/main/res/values/dimens.xml b/examples/virtual-device-app/android/App/core/ui/src/main/res/values/dimens.xml
index 24bd23b..f187911 100644
--- a/examples/virtual-device-app/android/App/core/ui/src/main/res/values/dimens.xml
+++ b/examples/virtual-device-app/android/App/core/ui/src/main/res/values/dimens.xml
@@ -1,17 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
- <dimen name="appbar_layout_height">350dp</dimen>
- <dimen name="collapse_title_text_size">25sp</dimen>
<dimen name="toolbar_title_text_size">17sp</dimen>
<dimen name="toolbar_more_menu_button_margin_end">20dp</dimen>
- <dimen name="device_title_icon_width">60dp</dimen>
- <dimen name="device_title_icon_height">60dp</dimen>
- <dimen name="device_title_icon_margin_top">20dp</dimen>
- <dimen name="device_title_text_margin_top">10sp</dimen>
- <dimen name="device_title_text_size">24sp</dimen>
-
- <dimen name="device_item_top_space_height">44dp</dimen>
<dimen name="device_item_margin_horizontal">12dp</dimen>
<dimen name="device_item_bottom_space_height">25dp</dimen>
<dimen name="device_item_padding_start">20dp</dimen>
diff --git a/examples/virtual-device-app/android/App/feature/closure/src/main/res/layout/fragment_door_lock.xml b/examples/virtual-device-app/android/App/feature/closure/src/main/res/layout/fragment_door_lock.xml
index 9caa1a2..5c4807cb 100644
--- a/examples/virtual-device-app/android/App/feature/closure/src/main/res/layout/fragment_door_lock.xml
+++ b/examples/virtual-device-app/android/App/feature/closure/src/main/res/layout/fragment_door_lock.xml
@@ -21,27 +21,20 @@
android:layout_height="wrap_content"
android:orientation="vertical">
- <LinearLayout
- android:id="@+id/door_lock_function_layout"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:orientation="vertical">
+ <include
+ android:id="@+id/door_lock_lock_state_layout"
+ layout="@layout/layout_item_title_value_simple_button" />
- <include
- android:id="@+id/door_lock_lock_state_layout"
- layout="@layout/layout_item_title_value_simple_button" />
+ <include
+ android:id="@+id/door_lock_send_alarm_layout"
+ layout="@layout/layout_item_title_value_simple_button" />
- <include
- android:id="@+id/door_lock_send_alarm_layout"
- layout="@layout/layout_item_title_value_simple_button" />
-
- <include
- android:id="@+id/door_lock_battery_layout"
- layout="@layout/layout_item_title_value_seekbar" />
- </LinearLayout>
+ <include
+ android:id="@+id/door_lock_battery_layout"
+ layout="@layout/layout_item_title_value_seekbar" />
<!-- Bottom Space -->
- <include layout="@layout/layout_space_bottom" />
+ <include layout="@layout/layout_bottom_space" />
<!-- Bottom Space -->
</LinearLayout>
</ScrollView>
diff --git a/examples/virtual-device-app/android/App/feature/control/src/main/java/com/matter/virtual/device/app/feature/control/OnOffSwitchFragment.kt b/examples/virtual-device-app/android/App/feature/control/src/main/java/com/matter/virtual/device/app/feature/control/OnOffSwitchFragment.kt
index 3b13eb0..f5142bf 100644
--- a/examples/virtual-device-app/android/App/feature/control/src/main/java/com/matter/virtual/device/app/feature/control/OnOffSwitchFragment.kt
+++ b/examples/virtual-device-app/android/App/feature/control/src/main/java/com/matter/virtual/device/app/feature/control/OnOffSwitchFragment.kt
@@ -27,11 +27,8 @@
override fun setupAppbar(): LayoutAppbarBinding = binding.appbar
override fun setupUi() {
- /** title icon */
- binding.onOffSwitchTitleLayout.titleIcon.setImageResource(matterSettings.device.deviceIconResId)
-
/** title text */
- binding.onOffSwitchTitleLayout.titleText.text = getString(matterSettings.device.deviceNameResId)
+ binding.appbar.toolbarTitle.text = getString(matterSettings.device.deviceNameResId)
/** OnOff layout */
binding.onOffSwitchOnOffLayout.buttonData =
diff --git a/examples/virtual-device-app/android/App/feature/control/src/main/res/layout/fragment_on_off_switch.xml b/examples/virtual-device-app/android/App/feature/control/src/main/res/layout/fragment_on_off_switch.xml
index 1978e7c..0635a23 100644
--- a/examples/virtual-device-app/android/App/feature/control/src/main/res/layout/fragment_on_off_switch.xml
+++ b/examples/virtual-device-app/android/App/feature/control/src/main/res/layout/fragment_on_off_switch.xml
@@ -1,11 +1,9 @@
<?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">
+<layout xmlns:android="http://schemas.android.com/apk/res/android">
- <androidx.coordinatorlayout.widget.CoordinatorLayout
+ <androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:fitsSystemWindows="true">
+ android:layout_height="match_parent">
<!-- appbar -->
<include
@@ -13,43 +11,24 @@
layout="@layout/layout_appbar" />
<!-- appbar -->
- <androidx.core.widget.NestedScrollView
- android:id="@+id/nested_scroll_view"
+ <ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:fillViewport="true"
- app:layout_behavior="@string/appbar_scrolling_view_behavior">
+ android:layout_marginTop="?attr/actionBarSize">
- <ScrollView
+ <LinearLayout
android:layout_width="match_parent"
- android:layout_height="match_parent">
+ android:layout_height="wrap_content"
+ android:orientation="vertical">
- <LinearLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:orientation="vertical">
+ <include
+ android:id="@+id/on_off_switch_on_off_layout"
+ layout="@layout/layout_item_value_on_off_button" />
- <!-- title -->
- <include
- android:id="@+id/on_off_switch_title_layout"
- layout="@layout/layout_title" />
- <!-- title -->
-
- <!-- Top Space -->
- <include layout="@layout/layout_space_top" />
- <!-- Top Space -->
-
- <!-- On Off Button -->
- <include
- android:id="@+id/on_off_switch_on_off_layout"
- layout="@layout/layout_item_value_on_off_button" />
- <!-- On Off Button -->
-
- <!-- Bottom Space -->
- <include layout="@layout/layout_space_bottom" />
- <!-- Bottom Space -->
- </LinearLayout>
- </ScrollView>
- </androidx.core.widget.NestedScrollView>
- </androidx.coordinatorlayout.widget.CoordinatorLayout>
+ <!-- Bottom Space -->
+ <include layout="@layout/layout_bottom_space" />
+ <!-- Bottom Space -->
+ </LinearLayout>
+ </ScrollView>
+ </androidx.constraintlayout.widget.ConstraintLayout>
</layout>
\ No newline at end of file
diff --git a/examples/virtual-device-app/android/App/feature/main/src/main/java/com/matter/virtual/device/app/feature/main/LoadingFragment.kt b/examples/virtual-device-app/android/App/feature/main/src/main/java/com/matter/virtual/device/app/feature/main/LoadingFragment.kt
index e5d768c..244b3b6 100644
--- a/examples/virtual-device-app/android/App/feature/main/src/main/java/com/matter/virtual/device/app/feature/main/LoadingFragment.kt
+++ b/examples/virtual-device-app/android/App/feature/main/src/main/java/com/matter/virtual/device/app/feature/main/LoadingFragment.kt
@@ -20,7 +20,6 @@
import com.matter.virtual.device.app.core.ui.SharedViewModel
import com.matter.virtual.device.app.feature.main.databinding.FragmentLoadingBinding
import dagger.hilt.android.AndroidEntryPoint
-import kotlin.math.abs
import kotlinx.serialization.ExperimentalSerializationApi
import kotlinx.serialization.decodeFromString
import kotlinx.serialization.encodeToString
@@ -57,16 +56,6 @@
(activity as AppCompatActivity).setSupportActionBar(binding.toolbar)
(activity as AppCompatActivity).supportActionBar?.setDisplayHomeAsUpEnabled(true)
- binding.appBarLayout.addOnOffsetChangedListener { appBarLayout, verticalOffset ->
- var ratio = 0F
- if (abs(verticalOffset) != 0) {
- ratio = abs(verticalOffset).toFloat() / appBarLayout.totalScrollRange.toFloat()
- }
-
- binding.collapseTitle.alpha = 1f - ratio * 2f + 0.1f
- binding.toolbarTitle.alpha = (ratio - 0.5f) * 2f + 0.1f
- }
-
val args: LoadingFragmentArgs by navArgs()
this.matterSettings = Json.decodeFromString(args.setting)
diff --git a/examples/virtual-device-app/android/App/feature/main/src/main/java/com/matter/virtual/device/app/feature/main/MainFragment.kt b/examples/virtual-device-app/android/App/feature/main/src/main/java/com/matter/virtual/device/app/feature/main/MainFragment.kt
index 861bf01..0365727 100644
--- a/examples/virtual-device-app/android/App/feature/main/src/main/java/com/matter/virtual/device/app/feature/main/MainFragment.kt
+++ b/examples/virtual-device-app/android/App/feature/main/src/main/java/com/matter/virtual/device/app/feature/main/MainFragment.kt
@@ -20,7 +20,6 @@
import com.matter.virtual.device.app.feature.main.databinding.FragmentMainBinding
import com.matter.virtual.device.app.feature.main.model.Menu
import dagger.hilt.android.AndroidEntryPoint
-import kotlin.math.abs
import kotlinx.serialization.ExperimentalSerializationApi
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
@@ -55,16 +54,6 @@
(activity as AppCompatActivity).setSupportActionBar(binding.toolbar)
(activity as AppCompatActivity).supportActionBar?.setDisplayHomeAsUpEnabled(true)
- binding.appBarLayout.addOnOffsetChangedListener { appBarLayout, verticalOffset ->
- var ratio = 0F
- if (abs(verticalOffset) != 0) {
- ratio = abs(verticalOffset).toFloat() / appBarLayout.totalScrollRange.toFloat()
- }
-
- binding.collapseTitle.alpha = 1f - ratio * 2f + 0.1f
- binding.toolbarTitle.alpha = (ratio - 0.5f) * 2f + 0.1f
- }
-
viewModel.uiState.observe(viewLifecycleOwner) { uiState ->
Timber.d("uiState:$uiState")
when (uiState) {
diff --git a/examples/virtual-device-app/android/App/feature/main/src/main/res/layout/fragment_loading.xml b/examples/virtual-device-app/android/App/feature/main/src/main/res/layout/fragment_loading.xml
index a76061e..0a16475 100644
--- a/examples/virtual-device-app/android/App/feature/main/src/main/res/layout/fragment_loading.xml
+++ b/examples/virtual-device-app/android/App/feature/main/src/main/res/layout/fragment_loading.xml
@@ -2,7 +2,7 @@
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
- <androidx.coordinatorlayout.widget.CoordinatorLayout
+ <androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">
@@ -10,121 +10,81 @@
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/app_bar_layout"
android:layout_width="match_parent"
- android:layout_height="@dimen/appbar_layout_height"
+ android:layout_height="?attr/actionBarSize"
android:background="@android:color/transparent"
- android:fitsSystemWindows="true"
app:elevation="0dp"
- app:expanded="false"
- app:layout_behavior="com.matter.virtual.device.app.core.ui.DisableAppBarLayoutBehavior">
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent">
- <com.google.android.material.appbar.CollapsingToolbarLayout
- android:id="@+id/toolbar_layout"
+ <com.google.android.material.appbar.MaterialToolbar
+ android:id="@+id/toolbar"
android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:fitsSystemWindows="true"
- android:theme="@style/Theme.CollapsingToolbar"
- app:layout_scrollFlags="scroll|exitUntilCollapsed">
-
- <TextView
- android:id="@+id/collapse_title"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:gravity="center"
- android:text="@string/title_loading"
- android:textAlignment="center"
- android:textSize="@dimen/collapse_title_text_size" />
-
- <androidx.appcompat.widget.Toolbar
- android:id="@+id/toolbar"
- android:layout_width="match_parent"
- android:layout_height="?attr/actionBarSize"
- android:layout_gravity="bottom"
- android:background="@android:color/transparent"
- android:contentInsetStart="0dp"
- android:contentInsetLeft="0dp"
- android:contentInsetEnd="0dp"
- android:contentInsetRight="0dp"
- android:theme="@style/Theme.CollapsingToolbar"
- app:contentInsetEnd="0dp"
- app:contentInsetLeft="0dp"
- app:contentInsetRight="0dp"
- app:contentInsetStart="0dp"
- app:contentInsetStartWithNavigation="0dp"
- app:elevation="0dp"
- app:layout_collapseMode="pin">
-
- <androidx.constraintlayout.widget.ConstraintLayout
- android:layout_width="match_parent"
- android:layout_height="match_parent">
-
- <TextView
- android:id="@+id/toolbar_title"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:text="@string/title_loading"
- android:textAlignment="viewStart"
- android:textSize="@dimen/toolbar_title_text_size"
- app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toTopOf="parent" />
- </androidx.constraintlayout.widget.ConstraintLayout>
- </androidx.appcompat.widget.Toolbar>
- </com.google.android.material.appbar.CollapsingToolbarLayout>
- </com.google.android.material.appbar.AppBarLayout>
-
- <androidx.core.widget.NestedScrollView
- android:id="@+id/nested_scroll_view"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:fillViewport="true"
- app:layout_behavior="@string/appbar_scrolling_view_behavior">
-
- <FrameLayout
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:animateLayoutChanges="true">
+ android:layout_height="match_parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_marginStart="@dimen/menu_item_side_space"
- android:layout_marginTop="20dp"
- android:layout_marginEnd="@dimen/menu_item_side_space"
- android:background="@drawable/menu_item_bg">
+ android:layout_height="match_parent">
- <com.google.android.material.progressindicator.CircularProgressIndicator
- android:id="@+id/loading_progress"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginStart="20dp"
- android:layout_marginTop="20dp"
- android:layout_marginEnd="20dp"
- android:layout_marginBottom="20dp"
- app:indicatorColor="@color/colorControlActivated"
- android:indeterminate="true"
- app:layout_constraintBottom_toTopOf="@+id/loading_description"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toTopOf="parent" />
-
- <androidx.appcompat.widget.AppCompatTextView
- android:id="@+id/loading_description"
+ <TextView
+ android:id="@+id/toolbar_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginStart="20dp"
- android:layout_marginTop="20dp"
- android:layout_marginEnd="20dp"
- android:layout_marginBottom="20dp"
- android:gravity="center"
- android:text="@string/description_loading"
- android:textAlignment="center"
- android:textSize="17sp"
+ android:text="@string/title_loading"
+ android:textAlignment="viewStart"
+ android:textSize="@dimen/toolbar_title_text_size"
app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toBottomOf="@+id/loading_progress" />
+ app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
- </FrameLayout>
- </androidx.core.widget.NestedScrollView>
- </androidx.coordinatorlayout.widget.CoordinatorLayout>
+ </com.google.android.material.appbar.MaterialToolbar>
+ </com.google.android.material.appbar.AppBarLayout>
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:layout_marginTop="?attr/actionBarSize"
+ android:orientation="vertical">
+
+ <androidx.constraintlayout.widget.ConstraintLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginStart="@dimen/menu_item_side_space"
+ android:layout_marginTop="20dp"
+ android:layout_marginEnd="@dimen/menu_item_side_space"
+ android:background="@drawable/menu_item_bg">
+
+ <com.google.android.material.progressindicator.CircularProgressIndicator
+ android:id="@+id/loading_progress"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginStart="20dp"
+ android:layout_marginTop="20dp"
+ android:layout_marginEnd="20dp"
+ android:layout_marginBottom="20dp"
+ android:indeterminate="true"
+ app:indicatorColor="@color/colorControlActivated"
+ app:layout_constraintBottom_toTopOf="@+id/loading_description"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent" />
+
+ <androidx.appcompat.widget.AppCompatTextView
+ android:id="@+id/loading_description"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginStart="20dp"
+ android:layout_marginTop="20dp"
+ android:layout_marginEnd="20dp"
+ android:layout_marginBottom="20dp"
+ android:text="@string/description_loading"
+ android:textAlignment="center"
+ android:textSize="17sp"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/loading_progress" />
+ </androidx.constraintlayout.widget.ConstraintLayout>
+ </LinearLayout>
+ </androidx.constraintlayout.widget.ConstraintLayout>
</layout>
\ No newline at end of file
diff --git a/examples/virtual-device-app/android/App/feature/main/src/main/res/layout/fragment_main.xml b/examples/virtual-device-app/android/App/feature/main/src/main/res/layout/fragment_main.xml
index 724e9f2..2bbe9df 100644
--- a/examples/virtual-device-app/android/App/feature/main/src/main/res/layout/fragment_main.xml
+++ b/examples/virtual-device-app/android/App/feature/main/src/main/res/layout/fragment_main.xml
@@ -2,103 +2,59 @@
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
- <data>
-
- </data>
-
- <androidx.coordinatorlayout.widget.CoordinatorLayout
+ <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/main_layout"
android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:fitsSystemWindows="true">
+ android:layout_height="match_parent">
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/app_bar_layout"
android:layout_width="match_parent"
- android:layout_height="@dimen/appbar_layout_height"
+ android:layout_height="?attr/actionBarSize"
android:background="@android:color/transparent"
- android:fitsSystemWindows="true"
app:elevation="0dp"
- app:expanded="true">
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent">
- <com.google.android.material.appbar.CollapsingToolbarLayout
- android:id="@+id/toolbar_layout"
+ <com.google.android.material.appbar.MaterialToolbar
+ android:id="@+id/toolbar"
android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:fitsSystemWindows="true"
- android:theme="@style/Theme.CollapsingToolbar"
- app:layout_scrollFlags="scroll|exitUntilCollapsed">
+ android:layout_height="?attr/actionBarSize">
- <TextView
- android:id="@+id/collapse_title"
+ <androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:gravity="center"
- android:text="@string/title_main"
- android:textAlignment="center"
- android:textSize="@dimen/collapse_title_text_size" />
+ android:layout_height="match_parent">
- <androidx.appcompat.widget.Toolbar
- android:id="@+id/toolbar"
- android:layout_width="match_parent"
- android:layout_height="?attr/actionBarSize"
- android:layout_gravity="bottom"
- android:background="@android:color/transparent"
- android:contentInsetStart="0dp"
- android:contentInsetLeft="0dp"
- android:contentInsetEnd="0dp"
- android:contentInsetRight="0dp"
- android:theme="@style/Theme.CollapsingToolbar"
- app:contentInsetEnd="0dp"
- app:contentInsetLeft="0dp"
- app:contentInsetRight="0dp"
- app:contentInsetStart="0dp"
- app:contentInsetStartWithNavigation="0dp"
- app:elevation="0dp"
- app:layout_collapseMode="pin">
-
- <androidx.constraintlayout.widget.ConstraintLayout
+ <TextView
+ android:id="@+id/toolbar_title"
android:layout_width="match_parent"
- android:layout_height="match_parent">
-
- <TextView
- android:id="@+id/toolbar_title"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:text="@string/title_main"
- android:textAlignment="viewStart"
- android:textSize="@dimen/toolbar_title_text_size"
- app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toTopOf="parent" />
- </androidx.constraintlayout.widget.ConstraintLayout>
- </androidx.appcompat.widget.Toolbar>
- </com.google.android.material.appbar.CollapsingToolbarLayout>
+ android:layout_height="wrap_content"
+ android:text="@string/title_main"
+ android:textAlignment="viewStart"
+ android:textSize="@dimen/toolbar_title_text_size"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent" />
+ </androidx.constraintlayout.widget.ConstraintLayout>
+ </com.google.android.material.appbar.MaterialToolbar>
</com.google.android.material.appbar.AppBarLayout>
- <androidx.core.widget.NestedScrollView
- android:id="@+id/nested_scroll_view"
+ <androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:fillViewport="true"
- app:layout_behavior="@string/appbar_scrolling_view_behavior">
+ android:layout_marginTop="?attr/actionBarSize">
- <androidx.constraintlayout.widget.ConstraintLayout
+ <androidx.recyclerview.widget.RecyclerView
+ android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:animateLayoutChanges="true">
-
- <androidx.recyclerview.widget.RecyclerView
- android:id="@+id/recyclerView"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:orientation="vertical"
- app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
- app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toTopOf="parent" />
- </androidx.constraintlayout.widget.ConstraintLayout>
- </androidx.core.widget.NestedScrollView>
- </androidx.coordinatorlayout.widget.CoordinatorLayout>
+ android:orientation="vertical"
+ app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent" />
+ </androidx.constraintlayout.widget.ConstraintLayout>
+ </androidx.constraintlayout.widget.ConstraintLayout>
</layout>
diff --git a/examples/virtual-device-app/android/App/feature/qrcode/src/main/java/com/matter/virtual/device/app/feature/qrcode/QrcodeFragment.kt b/examples/virtual-device-app/android/App/feature/qrcode/src/main/java/com/matter/virtual/device/app/feature/qrcode/QrcodeFragment.kt
index 6f220d7..a6ea23e 100644
--- a/examples/virtual-device-app/android/App/feature/qrcode/src/main/java/com/matter/virtual/device/app/feature/qrcode/QrcodeFragment.kt
+++ b/examples/virtual-device-app/android/App/feature/qrcode/src/main/java/com/matter/virtual/device/app/feature/qrcode/QrcodeFragment.kt
@@ -14,11 +14,14 @@
import androidx.fragment.app.viewModels
import androidx.navigation.fragment.findNavController
import androidx.navigation.fragment.navArgs
-import com.matter.virtual.device.app.core.common.*
+import com.matter.virtual.device.app.core.common.DeepLink
+import com.matter.virtual.device.app.core.common.EventObserver
+import com.matter.virtual.device.app.core.common.MatterConstants
+import com.matter.virtual.device.app.core.common.MatterSettings
+import com.matter.virtual.device.app.core.common.QrcodeUtil
import com.matter.virtual.device.app.core.ui.SharedViewModel
import com.matter.virtual.device.app.feature.qrcode.databinding.FragmentQrcodeBinding
import dagger.hilt.android.AndroidEntryPoint
-import kotlin.math.abs
import kotlinx.serialization.ExperimentalSerializationApi
import kotlinx.serialization.decodeFromString
import kotlinx.serialization.encodeToString
@@ -55,16 +58,6 @@
(activity as AppCompatActivity).setSupportActionBar(binding.toolbar)
(activity as AppCompatActivity).supportActionBar?.setDisplayHomeAsUpEnabled(true)
- binding.appBarLayout.addOnOffsetChangedListener { appBarLayout, verticalOffset ->
- var ratio = 0F
- if (abs(verticalOffset) != 0) {
- ratio = abs(verticalOffset).toFloat() / appBarLayout.totalScrollRange.toFloat()
- }
-
- binding.collapseTitle.alpha = 1f - ratio * 2f + 0.1f
- binding.toolbarTitle.alpha = (ratio - 0.5f) * 2f + 0.1f
- }
-
val args: QrcodeFragmentArgs by navArgs()
val matterSettings = Json.decodeFromString<MatterSettings>(args.setting)
diff --git a/examples/virtual-device-app/android/App/feature/qrcode/src/main/res/layout/fragment_qrcode.xml b/examples/virtual-device-app/android/App/feature/qrcode/src/main/res/layout/fragment_qrcode.xml
index 5bd72ce..0d141c9 100644
--- a/examples/virtual-device-app/android/App/feature/qrcode/src/main/res/layout/fragment_qrcode.xml
+++ b/examples/virtual-device-app/android/App/feature/qrcode/src/main/res/layout/fragment_qrcode.xml
@@ -9,86 +9,52 @@
type="com.matter.virtual.device.app.feature.qrcode.QrcodeViewModel" />
</data>
- <androidx.coordinatorlayout.widget.CoordinatorLayout
+ <androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:fitsSystemWindows="true">
+ android:layout_height="match_parent">
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/app_bar_layout"
android:layout_width="match_parent"
- android:layout_height="@dimen/appbar_layout_height"
+ android:layout_height="?attr/actionBarSize"
android:background="@android:color/transparent"
- android:fitsSystemWindows="true"
app:elevation="0dp"
- app:expanded="false"
- app:layout_behavior="com.matter.virtual.device.app.core.ui.DisableAppBarLayoutBehavior">
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent">
- <com.google.android.material.appbar.CollapsingToolbarLayout
- android:id="@+id/toolbar_layout"
+ <com.google.android.material.appbar.MaterialToolbar
+ android:id="@+id/toolbar"
android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:fitsSystemWindows="true"
- android:theme="@style/Theme.CollapsingToolbar"
- app:layout_scrollFlags="scroll|exitUntilCollapsed">
+ android:layout_height="match_parent">
- <TextView
- android:id="@+id/collapse_title"
+ <androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:gravity="center"
- android:text="@string/title_qrcode"
- android:textAlignment="center"
- android:textSize="@dimen/collapse_title_text_size" />
+ android:layout_height="match_parent">
- <androidx.appcompat.widget.Toolbar
- android:id="@+id/toolbar"
- android:layout_width="match_parent"
- android:layout_height="?attr/actionBarSize"
- android:layout_gravity="bottom"
- android:background="@android:color/transparent"
- android:contentInsetStart="0dp"
- android:contentInsetLeft="0dp"
- android:contentInsetEnd="0dp"
- android:contentInsetRight="0dp"
- android:theme="@style/Theme.CollapsingToolbar"
- app:contentInsetEnd="0dp"
- app:contentInsetLeft="0dp"
- app:contentInsetRight="0dp"
- app:contentInsetStart="0dp"
- app:contentInsetStartWithNavigation="0dp"
- app:elevation="0dp"
- app:layout_collapseMode="pin">
-
- <androidx.constraintlayout.widget.ConstraintLayout
+ <TextView
+ android:id="@+id/toolbar_title"
android:layout_width="match_parent"
- android:layout_height="match_parent">
-
- <TextView
- android:id="@+id/toolbar_title"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:text="@string/title_qrcode"
- android:textAlignment="viewStart"
- android:textSize="@dimen/toolbar_title_text_size"
- app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toTopOf="parent" />
- </androidx.constraintlayout.widget.ConstraintLayout>
- </androidx.appcompat.widget.Toolbar>
- </com.google.android.material.appbar.CollapsingToolbarLayout>
+ android:layout_height="wrap_content"
+ android:text="@string/title_qrcode"
+ android:textAlignment="viewStart"
+ android:textSize="@dimen/toolbar_title_text_size"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent" />
+ </androidx.constraintlayout.widget.ConstraintLayout>
+ </com.google.android.material.appbar.MaterialToolbar>
</com.google.android.material.appbar.AppBarLayout>
- <androidx.core.widget.NestedScrollView
- android:id="@+id/nested_scroll_view"
+ <androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:fillViewport="true"
- app:layout_behavior="@string/appbar_scrolling_view_behavior">
+ android:layout_marginTop="?attr/actionBarSize">
- <FrameLayout
+ <LinearLayout
android:layout_width="match_parent"
- android:layout_height="wrap_content">
+ android:layout_height="match_parent"
+ android:orientation="vertical">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
@@ -114,7 +80,6 @@
android:layout_height="@dimen/menu_item_image_height"
android:layout_marginTop="@dimen/menu_item_image_margin_top"
android:layout_marginBottom="@dimen/menu_item_image_margin_bottom"
- android:tint="@color/device_image_tint"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
@@ -124,7 +89,6 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginVertical="@dimen/menu_item_text_margin_vertical"
- android:layout_marginStart="@dimen/menu_item_image_margin_start"
android:layout_marginEnd="@dimen/menu_item_text_margin_end"
android:ellipsize="end"
android:singleLine="true"
@@ -235,24 +199,18 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/setup_pin_code_text" />
-
- <TextView
- android:id="@+id/device_name_text"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginTop="5dp"
- android:paddingBottom="10dp"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toBottomOf="@+id/discriminator_text" />
</androidx.constraintlayout.widget.ConstraintLayout>
- </FrameLayout>
- </androidx.core.widget.NestedScrollView>
+ </LinearLayout>
- <ProgressBar
- android:id="@+id/progress_bar"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center" />
- </androidx.coordinatorlayout.widget.CoordinatorLayout>
+ <ProgressBar
+ android:id="@+id/progress_bar"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent" />
+ </androidx.constraintlayout.widget.ConstraintLayout>
+ </androidx.constraintlayout.widget.ConstraintLayout>
</layout>
diff --git a/examples/virtual-device-app/android/App/feature/setup/src/main/java/com/matter/virtual/device/app/feature/setup/SetupFragment.kt b/examples/virtual-device-app/android/App/feature/setup/src/main/java/com/matter/virtual/device/app/feature/setup/SetupFragment.kt
index 79ede03..adf4c86 100644
--- a/examples/virtual-device-app/android/App/feature/setup/src/main/java/com/matter/virtual/device/app/feature/setup/SetupFragment.kt
+++ b/examples/virtual-device-app/android/App/feature/setup/src/main/java/com/matter/virtual/device/app/feature/setup/SetupFragment.kt
@@ -20,7 +20,6 @@
import com.matter.virtual.device.app.feature.setup.databinding.DialogSetupContinueBinding
import com.matter.virtual.device.app.feature.setup.databinding.FragmentSetupBinding
import dagger.hilt.android.AndroidEntryPoint
-import kotlin.math.abs
import kotlinx.coroutines.launch
import kotlinx.serialization.ExperimentalSerializationApi
import kotlinx.serialization.decodeFromString
@@ -57,16 +56,6 @@
(activity as AppCompatActivity).setSupportActionBar(binding.toolbar)
(activity as AppCompatActivity).supportActionBar?.setDisplayHomeAsUpEnabled(true)
- binding.appBarLayout.addOnOffsetChangedListener { appBarLayout, verticalOffset ->
- var ratio = 0F
- if (abs(verticalOffset) != 0) {
- ratio = abs(verticalOffset).toFloat() / appBarLayout.totalScrollRange.toFloat()
- }
-
- binding.collapseTitle.alpha = 1f - ratio * 2f + 0.1f
- binding.toolbarTitle.alpha = (ratio - 0.5f) * 2f + 0.1f
- }
-
val args: SetupFragmentArgs by navArgs()
this.matterSettings = Json.decodeFromString(args.setting)
diff --git a/examples/virtual-device-app/android/App/feature/setup/src/main/res/layout/fragment_setup.xml b/examples/virtual-device-app/android/App/feature/setup/src/main/res/layout/fragment_setup.xml
index 7bf2118..c76a55d 100644
--- a/examples/virtual-device-app/android/App/feature/setup/src/main/res/layout/fragment_setup.xml
+++ b/examples/virtual-device-app/android/App/feature/setup/src/main/res/layout/fragment_setup.xml
@@ -2,290 +2,243 @@
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
- <data>
-
- </data>
-
- <androidx.coordinatorlayout.widget.CoordinatorLayout
+ <androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:fitsSystemWindows="true">
+ android:layout_height="match_parent">
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/app_bar_layout"
android:layout_width="match_parent"
- android:layout_height="@dimen/appbar_layout_height"
+ android:layout_height="?attr/actionBarSize"
android:background="@android:color/transparent"
- android:fitsSystemWindows="true"
app:elevation="0dp"
- app:expanded="false">
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent">
- <com.google.android.material.appbar.CollapsingToolbarLayout
- android:id="@+id/toolbar_layout"
+ <com.google.android.material.appbar.MaterialToolbar
+ android:id="@+id/toolbar"
android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:fitsSystemWindows="true"
- android:theme="@style/Theme.CollapsingToolbar"
- app:layout_scrollFlags="scroll|exitUntilCollapsed">
+ android:layout_height="?attr/actionBarSize">
- <TextView
- android:id="@+id/collapse_title"
+ <androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:gravity="center"
- android:text="@string/title_setup"
- android:textAlignment="center"
- android:textSize="@dimen/collapse_title_text_size" />
+ android:layout_height="match_parent">
- <androidx.appcompat.widget.Toolbar
- android:id="@+id/toolbar"
- android:layout_width="match_parent"
- android:layout_height="?attr/actionBarSize"
- android:layout_gravity="bottom"
- android:background="@android:color/transparent"
- android:contentInsetStart="0dp"
- android:contentInsetLeft="0dp"
- android:contentInsetEnd="0dp"
- android:contentInsetRight="0dp"
- android:theme="@style/Theme.CollapsingToolbar"
- app:contentInsetEnd="0dp"
- app:contentInsetLeft="0dp"
- app:contentInsetRight="0dp"
- app:contentInsetStart="0dp"
- app:contentInsetStartWithNavigation="0dp"
- app:elevation="0dp"
- app:layout_collapseMode="pin">
-
- <androidx.constraintlayout.widget.ConstraintLayout
+ <TextView
+ android:id="@+id/toolbar_title"
android:layout_width="match_parent"
- android:layout_height="match_parent">
-
- <TextView
- android:id="@+id/toolbar_title"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:text="@string/title_setup"
- android:textAlignment="viewStart"
- android:textSize="@dimen/toolbar_title_text_size"
- app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toTopOf="parent" />
- </androidx.constraintlayout.widget.ConstraintLayout>
- </androidx.appcompat.widget.Toolbar>
- </com.google.android.material.appbar.CollapsingToolbarLayout>
+ android:layout_height="wrap_content"
+ android:text="@string/title_setup"
+ android:textAlignment="viewStart"
+ android:textSize="@dimen/toolbar_title_text_size"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent" />
+ </androidx.constraintlayout.widget.ConstraintLayout>
+ </com.google.android.material.appbar.MaterialToolbar>
</com.google.android.material.appbar.AppBarLayout>
- <androidx.core.widget.NestedScrollView
- android:id="@+id/nested_scroll_view"
+ <LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:fillViewport="true"
- app:layout_behavior="@string/appbar_scrolling_view_behavior">
+ android:layout_marginTop="?attr/actionBarSize"
+ android:orientation="vertical">
- <ScrollView
+ <androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
- android:layout_height="match_parent">
+ android:layout_height="wrap_content"
+ android:layout_marginHorizontal="12dp"
+ android:background="@drawable/menu_item_bg"
+ android:gravity="center_vertical"
+ android:paddingStart="20dp"
+ android:paddingTop="12dp"
+ android:paddingEnd="20dp"
+ android:paddingBottom="12dp">
- <LinearLayout
+ <TextView
+ android:id="@+id/setup_device_name_text"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/menu_device_name"
+ android:textAlignment="viewStart"
+ android:textSize="@dimen/device_item_text_size"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent" />
+
+ <TextView
+ android:id="@+id/setup_device_name_value_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:orientation="vertical">
+ android:textAlignment="viewStart"
+ android:textSize="@dimen/device_item_value_text_size"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/setup_device_name_text" />
- <androidx.constraintlayout.widget.ConstraintLayout
- android:layout_width="match_parent"
+ </androidx.constraintlayout.widget.ConstraintLayout>
+
+ <androidx.constraintlayout.widget.ConstraintLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginHorizontal="12dp"
+ android:layout_marginTop="12dp"
+ android:background="@drawable/menu_item_bg"
+ android:gravity="center_vertical"
+ android:paddingStart="20dp"
+ android:paddingTop="12dp"
+ android:paddingEnd="20dp"
+ android:paddingBottom="12dp">
+
+
+ <TextView
+ android:id="@+id/setup_discriminator_text"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/menu_discriminator"
+ android:textSize="@dimen/device_item_text_size"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent" />
+
+ <EditText
+ android:id="@+id/setup_discriminator_edit_text"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginStart="-4dp"
+ android:autofillHints="Discriminator"
+ android:backgroundTint="@color/edit_text_line_tint_color"
+ android:digits="1234567890"
+ android:hint="@string/hint_discriminator"
+ android:inputType="numberDecimal"
+ android:maxLength="4"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/setup_discriminator_text" />
+ </androidx.constraintlayout.widget.ConstraintLayout>
+
+ <androidx.constraintlayout.widget.ConstraintLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginHorizontal="12dp"
+ android:layout_marginTop="12dp"
+ android:background="@drawable/menu_item_bg"
+ android:gravity="center_vertical"
+ android:paddingStart="20dp"
+ android:paddingTop="12dp"
+ android:paddingEnd="20dp"
+ android:paddingBottom="12dp">
+
+ <RadioGroup
+ android:id="@+id/setup_onboarding_radio_group"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="horizontal"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent">
+
+ <RadioButton
+ android:id="@+id/setup_onboarding_wifi_only"
+ android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginHorizontal="12dp"
- android:background="@drawable/menu_item_bg"
- android:gravity="center_vertical"
- android:paddingStart="20dp"
- android:paddingTop="12dp"
- android:paddingEnd="20dp"
- android:paddingBottom="12dp">
+ android:layout_weight="1"
+ android:buttonTint="@color/textColor"
+ android:checked="true"
+ android:text="@string/wifi"
+ android:textSize="@dimen/device_item_value_text_small_size" />
- <TextView
- android:id="@+id/setup_device_name_text"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/menu_device_name"
- android:textAlignment="viewStart"
- android:textSize="@dimen/device_item_text_size"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toTopOf="parent" />
-
- <TextView
- android:id="@+id/setup_device_name_value_text"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:textAlignment="viewStart"
- android:textSize="@dimen/device_item_value_text_size"
- app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toBottomOf="@+id/setup_device_name_text" />
-
- </androidx.constraintlayout.widget.ConstraintLayout>
-
- <androidx.constraintlayout.widget.ConstraintLayout
- android:layout_width="match_parent"
+ <RadioButton
+ android:id="@+id/setup_onboarding_ble_only"
+ android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginHorizontal="12dp"
- android:layout_marginTop="12dp"
- android:background="@drawable/menu_item_bg"
- android:gravity="center_vertical"
- android:paddingStart="20dp"
- android:paddingTop="12dp"
- android:paddingEnd="20dp"
- android:paddingBottom="12dp">
+ android:layout_weight="1"
+ android:buttonTint="@color/textColor"
+ android:text="@string/ble"
+ android:textSize="@dimen/device_item_value_text_small_size" />
-
- <TextView
- android:id="@+id/setup_discriminator_text"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/menu_discriminator"
- android:textSize="@dimen/device_item_text_size"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toTopOf="parent" />
-
- <EditText
- android:id="@+id/setup_discriminator_edit_text"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_marginStart="-4dp"
- android:autofillHints="Discriminator"
- android:backgroundTint="@color/edit_text_line_tint_color"
- android:digits="1234567890"
- android:hint="@string/hint_discriminator"
- android:inputType="numberDecimal"
- android:maxLength="4"
- app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toBottomOf="@+id/setup_discriminator_text" />
- </androidx.constraintlayout.widget.ConstraintLayout>
-
- <androidx.constraintlayout.widget.ConstraintLayout
- android:layout_width="match_parent"
+ <RadioButton
+ android:id="@+id/setup_onboarding_wifi_ble"
+ android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginHorizontal="12dp"
- android:layout_marginTop="12dp"
- android:background="@drawable/menu_item_bg"
- android:gravity="center_vertical"
- android:paddingStart="20dp"
- android:paddingTop="12dp"
- android:paddingEnd="20dp"
- android:paddingBottom="12dp">
+ android:layout_weight="1"
+ android:buttonTint="@color/textColor"
+ android:text="@string/wifi_ble"
+ android:textSize="@dimen/device_item_value_text_small_size" />
- <RadioGroup
- android:id="@+id/setup_onboarding_radio_group"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:orientation="horizontal"
- app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toTopOf="parent">
+ </RadioGroup>
+ </androidx.constraintlayout.widget.ConstraintLayout>
- <RadioButton
- android:id="@+id/setup_onboarding_wifi_only"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:buttonTint="@color/textColor"
- android:checked="true"
- android:text="@string/wifi"
- android:textSize="@dimen/device_item_value_text_small_size" />
+ <androidx.constraintlayout.widget.ConstraintLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginHorizontal="12dp"
+ android:layout_marginTop="12dp"
+ android:background="@drawable/menu_item_bg"
+ android:backgroundTint="@color/setup_notification_background_tint"
+ android:gravity="center_vertical"
+ android:paddingStart="20dp"
+ android:paddingTop="12dp"
+ android:paddingEnd="20dp"
+ android:paddingBottom="12dp">
- <RadioButton
- android:id="@+id/setup_onboarding_ble_only"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:buttonTint="@color/textColor"
- android:text="@string/ble"
- android:textSize="@dimen/device_item_value_text_small_size" />
+ <androidx.constraintlayout.widget.ConstraintLayout
+ android:id="@+id/setup_network_notification_title_layout"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent">
- <RadioButton
- android:id="@+id/setup_onboarding_wifi_ble"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:buttonTint="@color/textColor"
- android:text="@string/wifi_ble"
- android:textSize="@dimen/device_item_value_text_small_size" />
+ <androidx.appcompat.widget.AppCompatImageView
+ android:id="@+id/setup_network_notification_icon"
+ android:layout_width="24dp"
+ android:layout_height="24dp"
+ android:src="@drawable/round_notification_important_24"
+ android:tint="@color/setup_notification_icon_tint"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent">
- </RadioGroup>
- </androidx.constraintlayout.widget.ConstraintLayout>
+ </androidx.appcompat.widget.AppCompatImageView>
- <androidx.constraintlayout.widget.ConstraintLayout
- android:layout_width="match_parent"
+ <TextView
+ android:id="@+id/setup_network_notification_title"
+ android:layout_width="0dp"
android:layout_height="wrap_content"
- android:layout_marginHorizontal="12dp"
- android:layout_marginTop="12dp"
- android:background="@drawable/menu_item_bg"
- android:backgroundTint="@color/setup_notification_background_tint"
- android:gravity="center_vertical"
- android:paddingStart="20dp"
- android:paddingTop="12dp"
- android:paddingEnd="20dp"
- android:paddingBottom="12dp">
+ android:gravity="center"
+ android:text="@string/setup_network_notification_title"
+ android:textSize="14sp"
+ android:textStyle="italic"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintStart_toEndOf="@+id/setup_network_notification_icon"
+ app:layout_constraintTop_toTopOf="parent" />
- <androidx.constraintlayout.widget.ConstraintLayout
- android:id="@+id/setup_network_notification_title_layout"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toTopOf="parent">
+ </androidx.constraintlayout.widget.ConstraintLayout>
- <androidx.appcompat.widget.AppCompatImageView
- android:id="@+id/setup_network_notification_icon"
- android:layout_width="24dp"
- android:layout_height="24dp"
- android:src="@drawable/round_notification_important_24"
- android:tint="@color/setup_notification_icon_tint"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toTopOf="parent">
-
- </androidx.appcompat.widget.AppCompatImageView>
-
- <TextView
- android:id="@+id/setup_network_notification_title"
- android:layout_width="0dp"
- android:layout_height="wrap_content"
- android:gravity="center"
- android:text="@string/setup_network_notification_title"
- android:textSize="14sp"
- android:textStyle="italic"
- app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintStart_toEndOf="@+id/setup_network_notification_icon"
- app:layout_constraintTop_toTopOf="parent" />
-
- </androidx.constraintlayout.widget.ConstraintLayout>
-
- <TextView
- android:id="@+id/setup_network_notification_text"
- android:layout_width="0dp"
- android:layout_height="wrap_content"
- android:layout_marginHorizontal="5dp"
- android:text="@string/setup_network_notification_message"
- android:textSize="@dimen/device_item_value_text_size"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toBottomOf="@+id/setup_network_notification_title_layout" />
- </androidx.constraintlayout.widget.ConstraintLayout>
- </LinearLayout>
- </ScrollView>
- </androidx.core.widget.NestedScrollView>
+ <TextView
+ android:id="@+id/setup_network_notification_text"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_marginHorizontal="5dp"
+ android:text="@string/setup_network_notification_message"
+ android:textSize="@dimen/device_item_value_text_size"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/setup_network_notification_title_layout" />
+ </androidx.constraintlayout.widget.ConstraintLayout>
+ </LinearLayout>
<androidx.appcompat.widget.AppCompatButton
android:id="@+id/setup_save_button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_gravity="bottom"
android:layout_marginHorizontal="30dp"
android:layout_marginBottom="30dp"
- android:text="@string/save" />
-
- </androidx.coordinatorlayout.widget.CoordinatorLayout>
+ android:text="@string/save"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent" />
+ </androidx.constraintlayout.widget.ConstraintLayout>
</layout>