[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>