Преглед изворни кода

Support swiping directly into the app drawer (#34)

Joshua Kuestersteffen пре 5 година
родитељ
комит
9a72ef33b4
24 измењених фајлова са 354 додато и 449 уклоњено
  1. 3 3
      README.md
  2. 7 0
      app/src/main/java/com/sduduzog/slimlauncher/models/MainViewModel.kt
  3. 66 16
      app/src/main/java/com/sduduzog/slimlauncher/ui/main/HomeFragment.kt
  4. 1 30
      app/src/main/java/com/sduduzog/slimlauncher/ui/options/AddAppFragment.kt
  5. 1 1
      app/src/main/java/com/sduduzog/slimlauncher/ui/options/CustomiseAppsFragment.kt
  6. 0 26
      app/src/main/java/com/sduduzog/slimlauncher/ui/options/OpenAppsFragment.kt
  7. 35 0
      app/src/main/java/com/sduduzog/slimlauncher/utils/BaseFragment.kt
  8. 1 1
      app/src/main/play/listings/en-US/full-description.txt
  9. BIN
      app/src/main/play/listings/en-US/graphics/phone-screenshots/1.png
  10. BIN
      app/src/main/play/listings/en-US/graphics/phone-screenshots/2.png
  11. 1 1
      app/src/main/play/listings/en-US/short-description.txt
  12. 9 0
      app/src/main/res/drawable/ic_cog.xml
  13. 31 15
      app/src/main/res/layout/home_fragment.xml
  14. 0 124
      app/src/main/res/layout/home_motion_01.xml
  15. 0 128
      app/src/main/res/layout/home_motion_02.xml
  16. 0 59
      app/src/main/res/layout/open_apps_fragment.xml
  17. 0 8
      app/src/main/res/navigation/nav_graph.xml
  18. 0 1
      app/src/main/res/values/strings.xml
  19. 0 16
      app/src/main/res/xml/home_motion_01_scene.xml
  20. 0 16
      app/src/main/res/xml/home_motion_02_scene.xml
  21. 199 4
      app/src/main/res/xml/home_motion_scene.xml
  22. BIN
      docs/assets/home-screen-1.png
  23. BIN
      docs/assets/home-screen-2.png
  24. BIN
      docs/assets/home-screen.png

+ 3 - 3
README.md

@@ -14,7 +14,7 @@
      alt="Get it on F-Droid"
      height="80">](https://f-droid.org/packages/com.jkuester.unlauncher/)
 
-The goal of Unlauncher is to provide a clean and simple Android experience. We believe you should have easy access to all of your apps without the distraction of bells, whistles, and notifications clamouring for your attention. You want to be able to use your phone, not have your phone use you!
+The goal of Unlauncher is to provide a clean and simple Android launcher experience. We believe you should have easy access to all of your apps without the distraction of bells, whistles, and notifications clamouring for your attention. You want to be able to use your phone, not have your phone use you!
 
 <p float="left">
   <img height="724" width="400" src="docs/assets/home-screen-1.png">
@@ -25,7 +25,7 @@ The goal of Unlauncher is to provide a clean and simple Android experience. We b
 
 Features:
 
-- Top 8 spaces to pin apps
+- List your top apps on the home screen
 - No app icons
 - Customizable app titles
 - Searchable drawer with all apps
@@ -37,7 +37,7 @@ Features:
 
 This project is a downstream fork of the great [Slim Launcher](https://github.com/sduduzog/slim-launcher) by [sduduzog](https://github.com/sduduzog). The contributors to that project deserve all the credit for the beautiful layout of this app and most of its functionality.
 
-The main differentiator between Unlauncher and Slim Launcher lies in the number of apps the launcher gives you access too.  Slim Launcher takes the Spartan approach of only allowing access to seven apps. Unlauncher, on the other hand, allows you to pin eight apps to the home screen and then gives you access to all the rest of your apps through a new "Apps" button at the bottom of the home screen
+The main differentiator between Unlauncher and Slim Launcher lies in the number of apps the launcher gives you access too.  Slim Launcher takes the Spartan approach of only allowing access to seven apps. Unlauncher, on the other hand, allows you to pin up to six apps on the home screen and then gives you access to all the rest of your apps by swiping up into a searchable app drawer.
 
 The goal of this project is continue to remain synchronized, where possible, with Slim Launcher and to submit any new contributions back upstream (if they align with the design philosophy and goals of Slim Launcher).
 

+ 7 - 0
app/src/main/java/com/sduduzog/slimlauncher/models/MainViewModel.kt

@@ -19,8 +19,15 @@ class MainViewModel @Inject constructor(baseDao: BaseDao) : ViewModel() {
     val apps: LiveData<List<HomeApp>>
         get() = _apps
 
+    val addAppViewModel = AddAppViewModel(baseDao)
+
     fun add(app: App) {
         val index = _apps.value!!.size
         _baseRepository.add(HomeApp.from(app, index))
     }
+
+    // This is needed temporarily so that the HomeFragment can transition the max number of home apps
+    fun remove(app: HomeApp) {
+        _baseRepository.remove(app)
+    }
 }

+ 66 - 16
app/src/main/java/com/sduduzog/slimlauncher/ui/main/HomeFragment.kt

@@ -3,20 +3,27 @@ package com.sduduzog.slimlauncher.ui.main
 import android.content.*
 import android.content.pm.LauncherApps
 import android.os.Bundle
+import android.os.Process
 import android.os.UserManager
 import android.provider.AlarmClock
 import android.provider.CalendarContract
 import android.provider.MediaStore
+import android.text.Editable
+import android.text.TextWatcher
 import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
 import androidx.lifecycle.Observer
 import androidx.navigation.Navigation
+import com.sduduzog.slimlauncher.BuildConfig
 import com.sduduzog.slimlauncher.R
+import com.sduduzog.slimlauncher.adapters.AddAppAdapter
 import com.sduduzog.slimlauncher.adapters.HomeAdapter
+import com.sduduzog.slimlauncher.data.model.App
 import com.sduduzog.slimlauncher.models.HomeApp
 import com.sduduzog.slimlauncher.models.MainViewModel
 import com.sduduzog.slimlauncher.utils.BaseFragment
+import com.sduduzog.slimlauncher.utils.OnAppClickedListener
 import com.sduduzog.slimlauncher.utils.OnLaunchAppListener
 import dagger.hilt.android.AndroidEntryPoint
 import kotlinx.android.synthetic.main.home_fragment.*
@@ -25,7 +32,7 @@ import java.text.SimpleDateFormat
 import java.util.*
 
 @AndroidEntryPoint
-class HomeFragment(private val viewModel: MainViewModel) : BaseFragment(), OnLaunchAppListener {
+class HomeFragment(private val viewModel: MainViewModel) : BaseFragment(), OnLaunchAppListener, OnAppClickedListener {
 
     private lateinit var receiver: BroadcastReceiver
 
@@ -44,17 +51,32 @@ class HomeFragment(private val viewModel: MainViewModel) : BaseFragment(), OnLau
         viewModel.apps.observe(viewLifecycleOwner, Observer { list ->
             list?.let { apps ->
                 adapter1.setItems(apps.filter {
-                    it.sortingIndex < 4
+                    it.sortingIndex < 3
                 })
                 adapter2.setItems(apps.filter {
-                    it.sortingIndex >= 4
+                    it.sortingIndex >= 3
                 })
+
+                // Since the app previously supported more than 6 apps, we need this as a transition to only
+                // allowing 6 home apps. This can be removed in the future when it is likely everyone has
+                // upgraded to a version that only supports 6 home apps.
+                if(apps.size > 6) {
+                    apps.subList(6, apps.size).forEach(viewModel::remove)
+                }
             }
         })
 
         setEventListeners()
         home_fragment_options.setOnClickListener(Navigation.createNavigateOnClickListener(R.id.action_homeFragment_to_optionsFragment))
-        home_fragment_apps.setOnClickListener(Navigation.createNavigateOnClickListener(R.id.action_homeFragment_to_openAppsFragment))
+
+        // Populate the app drawer
+        val openAppAdapter = AddAppAdapter(this)
+        app_drawer_fragment_list.adapter = openAppAdapter
+        viewModel.addAppViewModel.apps.observe(viewLifecycleOwner, Observer {
+            it?.let { apps ->
+                openAppAdapter.setItems(apps)
+            }
+        })
     }
 
     override fun onStart() {
@@ -68,6 +90,10 @@ class HomeFragment(private val viewModel: MainViewModel) : BaseFragment(), OnLau
     override fun onResume() {
         super.onResume()
         updateClock()
+
+        viewModel.addAppViewModel.setInstalledApps(getInstalledApps())
+        viewModel.addAppViewModel.filterApps("")
+        app_drawer_edit_text.addTextChangedListener(onTextChangeListener)
     }
 
     override fun onStop() {
@@ -141,17 +167,7 @@ class HomeFragment(private val viewModel: MainViewModel) : BaseFragment(), OnLau
     }
 
     override fun onLaunch(app: HomeApp, view: View) {
-        try {
-            val manager = requireContext().getSystemService(Context.USER_SERVICE) as UserManager
-            val launcher = requireContext().getSystemService(Context.LAUNCHER_APPS_SERVICE) as LauncherApps
-
-            val componentName = ComponentName(app.packageName, app.activityName)
-            val userHandle = manager.getUserForSerialNumber(app.userSerial)
-
-            launcher.startMainActivity(componentName, userHandle, view.clipBounds, null)
-        } catch (e: Exception) {
-            // Do no shit yet
-        }
+        launchApp(app.packageName, app.activityName, app.userSerial)
     }
 
     override fun onBack(): Boolean {
@@ -160,7 +176,7 @@ class HomeFragment(private val viewModel: MainViewModel) : BaseFragment(), OnLau
     }
 
     override fun onHome() {
-        home_fragment.transitionToEnd()
+        home_fragment.transitionToStart()
     }
 
     inner class ClockReceiver : BroadcastReceiver() {
@@ -168,4 +184,38 @@ class HomeFragment(private val viewModel: MainViewModel) : BaseFragment(), OnLau
             updateClock()
         }
     }
+
+    override fun onAppClicked(app: App) {
+        launchApp(app.packageName, app.activityName, app.userSerial)
+        home_fragment.transitionToStart()
+    }
+
+    private fun launchApp(packageName: String, activityName: String, userSerial: Long) {
+        try {
+            val manager = requireContext().getSystemService(Context.USER_SERVICE) as UserManager
+            val launcher = requireContext().getSystemService(Context.LAUNCHER_APPS_SERVICE) as LauncherApps
+
+            val componentName = ComponentName(packageName, activityName)
+            val userHandle = manager.getUserForSerialNumber(userSerial)
+
+            launcher.startMainActivity(componentName, userHandle, view?.clipBounds, null)
+        } catch (e: Exception) {
+            // Do no shit yet
+        }
+    }
+
+    private val onTextChangeListener: TextWatcher = object : TextWatcher {
+
+        override fun afterTextChanged(s: Editable?) {
+            // Do nothing
+        }
+
+        override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) {
+            // Do nothing
+        }
+
+        override fun onTextChanged(s: CharSequence, start: Int, before: Int, count: Int) {
+            viewModel.addAppViewModel.filterApps(s.toString())
+        }
+    }
 }

+ 1 - 30
app/src/main/java/com/sduduzog/slimlauncher/ui/options/AddAppFragment.kt

@@ -24,7 +24,7 @@ import dagger.hilt.android.AndroidEntryPoint
 import kotlinx.android.synthetic.main.add_app_fragment.*
 
 @AndroidEntryPoint
-open class AddAppFragment : BaseFragment(), OnAppClickedListener {
+class AddAppFragment : BaseFragment(), OnAppClickedListener {
 
     override fun getFragmentView(): ViewGroup = add_app_fragment
 
@@ -81,33 +81,4 @@ open class AddAppFragment : BaseFragment(), OnAppClickedListener {
         viewModel.addAppToHomeScreen(app)
         Navigation.findNavController(add_app_fragment).popBackStack()
     }
-
-    private fun getInstalledApps(): List<App> {
-        val list = mutableListOf<App>()
-
-        val manager = requireContext().getSystemService(Context.USER_SERVICE) as UserManager
-        val launcher = requireContext().getSystemService(Context.LAUNCHER_APPS_SERVICE) as LauncherApps
-        val myUserHandle = Process.myUserHandle()
-
-        for (profile in manager.userProfiles) {
-            val prefix = if (profile.equals(myUserHandle)) "" else "\uD83C\uDD46 " //Unicode for boxed w
-            val profileSerial = manager.getSerialNumberForUser(profile)
-
-            for (activityInfo in launcher.getActivityList(null, profile)) {
-                val app = App(
-                        appName = prefix + activityInfo.label.toString(),
-                        packageName = activityInfo.applicationInfo.packageName,
-                        activityName = activityInfo.name,
-                        userSerial = profileSerial
-                )
-                list.add(app)
-            }
-        }
-
-        list.sortBy{it.appName}
-
-        val filter = mutableListOf<String>()
-        filter.add(BuildConfig.APPLICATION_ID)
-        return list.filterNot { filter.contains(it.packageName) }
-    }
 }

+ 1 - 1
app/src/main/java/com/sduduzog/slimlauncher/ui/options/CustomiseAppsFragment.kt

@@ -43,7 +43,7 @@ class CustomiseAppsFragment : BaseFragment(), OnShitDoneToAppsListener {
         viewModel.apps.observe(viewLifecycleOwner, Observer {
             it?.let { apps ->
                 adapter.setItems(apps)
-                customise_apps_fragment_add.visibility = if(apps.size < 8) View.VISIBLE else View.INVISIBLE
+                customise_apps_fragment_add.visibility = if(apps.size < 6) View.VISIBLE else View.INVISIBLE
             } ?: adapter.setItems(listOf())
         })
         customise_apps_fragment_remove_all.setOnClickListener {

+ 0 - 26
app/src/main/java/com/sduduzog/slimlauncher/ui/options/OpenAppsFragment.kt

@@ -1,26 +0,0 @@
-package com.sduduzog.slimlauncher.ui.options
-
-import android.content.ComponentName
-import android.content.Intent
-import androidx.navigation.fragment.NavHostFragment
-import com.sduduzog.slimlauncher.data.model.App
-
-class OpenAppsFragment : AddAppFragment() {
-
-    override fun onAppClicked(app: App) {
-        try {
-            val intent = Intent()
-            val name = ComponentName(app.packageName, app.activityName)
-            intent.action = Intent.ACTION_MAIN
-            intent.addCategory(Intent.CATEGORY_LAUNCHER)
-            intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED
-            intent.component = name
-
-            intent.resolveActivity(requireActivity().packageManager)?.let {
-                launchActivity(getFragmentView(), intent)
-            }
-        } catch (e: Exception) {
-        }
-        NavHostFragment.findNavController(this).popBackStack();
-    }
-}

+ 35 - 0
app/src/main/java/com/sduduzog/slimlauncher/utils/BaseFragment.kt

@@ -1,15 +1,21 @@
 package com.sduduzog.slimlauncher.utils
 
+import android.content.Context
 import android.content.Intent
+import android.content.pm.LauncherApps
 import android.os.Build
+import android.os.Process
+import android.os.UserManager
 import android.util.TypedValue
 import android.view.View
 import android.view.ViewGroup
 import androidx.appcompat.app.AppCompatActivity
 import androidx.core.app.ActivityOptionsCompat
 import androidx.fragment.app.Fragment
+import com.sduduzog.slimlauncher.BuildConfig
 import com.sduduzog.slimlauncher.MainActivity
 import com.sduduzog.slimlauncher.R
+import com.sduduzog.slimlauncher.data.model.App
 
 abstract class BaseFragment : Fragment(), ISubscriber {
 
@@ -63,4 +69,33 @@ abstract class BaseFragment : Fragment(), ISubscriber {
     open fun onBack(): Boolean = false
 
     open fun onHome() {}
+
+    protected fun getInstalledApps(): List<App> {
+        val list = mutableListOf<App>()
+
+        val manager = requireContext().getSystemService(Context.USER_SERVICE) as UserManager
+        val launcher = requireContext().getSystemService(Context.LAUNCHER_APPS_SERVICE) as LauncherApps
+        val myUserHandle = Process.myUserHandle()
+
+        for (profile in manager.userProfiles) {
+            val prefix = if (profile == myUserHandle) "" else "\uD83C\uDD46 " //Unicode for boxed w
+            val profileSerial = manager.getSerialNumberForUser(profile)
+
+            for (activityInfo in launcher.getActivityList(null, profile)) {
+                val app = App(
+                        appName = prefix + activityInfo.label.toString(),
+                        packageName = activityInfo.applicationInfo.packageName,
+                        activityName = activityInfo.name,
+                        userSerial = profileSerial
+                )
+                list.add(app)
+            }
+        }
+
+        list.sortBy{it.appName}
+
+        val filter = mutableListOf<String>()
+        filter.add(BuildConfig.APPLICATION_ID)
+        return list.filterNot { filter.contains(it.packageName) }
+    }
 }

+ 1 - 1
app/src/main/play/listings/en-US/full-description.txt

@@ -1,4 +1,4 @@
-The goal of Unlauncher is to provide a clean and simple Android experience.
+The goal of Unlauncher is to provide a clean and simple Android launcher experience.
 
 We believe you should have easy access to all of your apps without the distraction of bells, whistles, and notifications clamouring for your attention. You want to be able to use your phone, not have your phone use you!
 

BIN
app/src/main/play/listings/en-US/graphics/phone-screenshots/1.png


BIN
app/src/main/play/listings/en-US/graphics/phone-screenshots/2.png


+ 1 - 1
app/src/main/play/listings/en-US/short-description.txt

@@ -1 +1 @@
-Freedom from your phone - a clean and simple Android experience!
+Freedom from your phone - a clean and simple Android launcher experience!

+ 9 - 0
app/src/main/res/drawable/ic_cog.xml

@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportHeight="256.00003"
+    android:viewportWidth="256.00006"
+    >
+    <path android:fillColor="?attr/colorAccent"
+        android:pathData="m153.999,0c-16.977,0 -2.706,22.35 -35.288,25.296 -38.616,3.492 -17.377,-31.661 -51.717,-13.656 -34.34,18.005 6.654,20.532 -18.182,50.307 -24.836,29.775 -34.679,-10.104 -46.231,26.91 -11.551,37.013 19.221,9.816 22.713,48.432 3.492,38.616 -31.66,17.376 -13.656,51.717 18.004,34.34 20.531,-6.649 50.306,18.187 29.775,24.837 -10.098,34.675 26.915,46.226 37.013,11.552 9.816,-19.221 48.431,-22.714 38.616,-3.492 17.377,31.661 51.717,13.656 34.34,-18.004 -6.654,-20.532 18.182,-50.307 24.836,-29.775 34.679,10.098 46.231,-26.915 11.552,-37.013 -19.221,-9.81 -22.713,-48.427 -3.492,-38.617 31.66,-17.382 13.656,-51.722 -18.004,-34.34 -20.532,6.654 -50.306,-18.183 -29.775,-24.836 10.098,-34.675 -26.915,-46.226 -5.784,-1.805 -9.999,-2.579 -13.143,-2.583zM128,58.603c18.168,0 36.223,7.479 49.069,20.325 12.846,12.846 20.325,30.902 20.325,49.07 0,18.168 -7.479,36.224 -20.325,49.07 -12.846,12.846 -30.902,20.325 -49.069,20.325 -18.168,0 -36.223,-7.479 -49.07,-20.325 -12.846,-12.846 -20.325,-30.902 -20.325,-49.07 0,-18.168 7.479,-36.224 20.325,-49.07 12.846,-12.846 30.902,-20.325 49.07,-20.325z" />
+</vector>

+ 31 - 15
app/src/main/res/layout/home_fragment.xml

@@ -30,7 +30,7 @@
         android:layout_width="0dp"
         android:layout_height="wrap_content"
         app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
-        tools:itemCount="4"
+        tools:itemCount="3"
         tools:listitem="@layout/main_fragment_list_item" />
 
     <androidx.recyclerview.widget.RecyclerView
@@ -38,26 +38,16 @@
         android:layout_width="0dp"
         android:layout_height="wrap_content"
         app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
-        tools:itemCount="4"
+        tools:itemCount="3"
         tools:listitem="@layout/main_fragment_list_item" />
 
-    <TextView
+    <ImageView
         android:id="@+id/home_fragment_options"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:padding="@dimen/_8sdp"
-        android:text="@string/main_fragment_options"
-        android:textAppearance="@style/TextAppearance.AppCompat"
-        android:textSize="@dimen/_18ssp" />
-
-    <TextView
-        android:id="@+id/home_fragment_apps"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:padding="@dimen/_8sdp"
-        android:text="@string/main_fragment_apps"
-        android:textAppearance="@style/TextAppearance.AppCompat"
-        android:textSize="@dimen/_18ssp" />
+        app:srcCompat="@drawable/ic_cog"
+        tools:ignore="ContentDescription"/>
 
     <ImageView
         android:id="@+id/home_fragment_call"
@@ -75,4 +65,30 @@
         app:srcCompat="@drawable/ic_photo_camera"
         tools:ignore="ContentDescription" />
 
+    <EditText
+        android:id="@+id/app_drawer_edit_text"
+        android:layout_width="0dp"
+        android:layout_height="wrap_content"
+        android:layout_marginStart="8dp"
+        android:layout_marginLeft="8dp"
+        android:layout_marginTop="32dp"
+        android:layout_marginEnd="8dp"
+        android:layout_marginRight="8dp"
+        android:ems="10"
+        android:hint="@string/add_apps_fragment_search_apps"
+        android:imeOptions="actionDone"
+        android:inputType="none|textNoSuggestions|textCapWords"
+        android:textSize="@dimen/_18ssp"
+        tools:ignore="Autofill,LabelFor" />
+
+    <androidx.recyclerview.widget.RecyclerView
+        android:id="@+id/app_drawer_fragment_list"
+        android:layout_width="0dp"
+        android:layout_height="0dp"
+        android:layout_marginStart="8dp"
+        android:layout_marginLeft="8dp"
+        android:layout_marginEnd="8dp"
+        android:layout_marginRight="8dp"
+        app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
+        tools:listitem="@layout/add_app_fragment_list_item" />
 </androidx.constraintlayout.motion.widget.MotionLayout>

+ 0 - 124
app/src/main/res/layout/home_motion_01.xml

@@ -1,124 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<androidx.constraintlayout.motion.widget.MotionLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    xmlns:tools="http://schemas.android.com/tools"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    tools:ignore="MotionLayoutInvalidSceneFileReference">
-
-    <TextView
-        android:id="@+id/home_fragment_time"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_marginTop="@dimen/_42sdp"
-        android:text="@string/main_placeholder_clock"
-        android:textAppearance="@style/TextAppearance.AppCompat"
-        android:textSize="@dimen/_40ssp"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintHorizontal_bias="0.506"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toTopOf="parent" />
-
-    <TextView
-        android:id="@+id/home_fragment_date"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:padding="@dimen/_4sdp"
-        android:text="@string/main_placeholder_date"
-        android:textAppearance="@style/TextAppearance.AppCompat"
-        android:textSize="@dimen/_12sdp"
-        app:layout_constraintEnd_toEndOf="@+id/home_fragment_time"
-        app:layout_constraintStart_toStartOf="@+id/home_fragment_time"
-        app:layout_constraintTop_toBottomOf="@+id/home_fragment_time" />
-
-    <androidx.recyclerview.widget.RecyclerView
-        android:id="@+id/home_fragment_list"
-        android:layout_width="0dp"
-        android:layout_height="wrap_content"
-        android:layout_marginStart="@dimen/_16sdp"
-        android:layout_marginLeft="@dimen/_16sdp"
-        android:layout_marginTop="8dp"
-        android:layout_marginEnd="@dimen/_16sdp"
-        android:layout_marginRight="@dimen/_16sdp"
-        android:layout_marginBottom="@dimen/_8sdp"
-        app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
-        app:layout_constraintBottom_toBottomOf="parent"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintHorizontal_bias="0.0"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toTopOf="parent"
-        app:layout_constraintVertical_bias="0.55"
-        tools:itemCount="4"
-        tools:listitem="@layout/main_fragment_list_item" />
-
-    <androidx.recyclerview.widget.RecyclerView
-        android:id="@+id/home_fragment_list_exp"
-        android:layout_width="0dp"
-        android:layout_height="wrap_content"
-        android:layout_marginStart="@dimen/_16sdp"
-        android:layout_marginLeft="@dimen/_16sdp"
-        android:layout_marginTop="@dimen/_16sdp"
-        android:layout_marginEnd="@dimen/_16sdp"
-        android:layout_marginRight="@dimen/_16sdp"
-        android:layout_marginBottom="@dimen/_8sdp"
-        android:alpha="-2"
-        app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintHorizontal_bias="0.5"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toBottomOf="parent"
-        tools:itemCount="4"
-        tools:listitem="@layout/main_fragment_list_item" />
-
-    <TextView
-        android:id="@+id/home_fragment_options"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:alpha="-3"
-        android:padding="@dimen/_8sdp"
-        android:text="@string/main_fragment_options"
-        android:textAppearance="@style/TextAppearance.AppCompat"
-        android:textSize="@dimen/_18ssp"
-        app:layout_constraintBottom_toBottomOf="parent"
-        app:layout_constraintStart_toStartOf="@+id/home_fragment_list_exp"
-        app:layout_constraintTop_toBottomOf="@+id/home_fragment_list_exp" />
-
-    <TextView
-        android:id="@+id/home_fragment_apps"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:alpha="-3"
-        android:padding="@dimen/_8sdp"
-        android:text="@string/main_fragment_apps"
-        android:textAppearance="@style/TextAppearance.AppCompat"
-        android:textSize="@dimen/_18ssp"
-        app:layout_constraintBottom_toBottomOf="parent"
-        app:layout_constraintEnd_toEndOf="@+id/home_fragment_list_exp"
-        app:layout_constraintTop_toBottomOf="@+id/home_fragment_list_exp"  />
-
-    <ImageView
-        android:id="@+id/home_fragment_call"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_marginStart="@dimen/_8sdp"
-        android:layout_marginBottom="@dimen/_8sdp"
-        android:padding="@dimen/_8sdp"
-        app:layout_constraintBottom_toBottomOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:srcCompat="@drawable/ic_call"
-        tools:ignore="ContentDescription" />
-
-
-    <ImageView
-        android:id="@+id/home_fragment_camera"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_marginEnd="@dimen/_8sdp"
-        android:layout_marginBottom="@dimen/_8sdp"
-        android:padding="@dimen/_8sdp"
-        app:layout_constraintBottom_toBottomOf="parent"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:srcCompat="@drawable/ic_photo_camera"
-        tools:ignore="ContentDescription" />
-
-</androidx.constraintlayout.motion.widget.MotionLayout>

+ 0 - 128
app/src/main/res/layout/home_motion_02.xml

@@ -1,128 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<androidx.constraintlayout.motion.widget.MotionLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    xmlns:tools="http://schemas.android.com/tools"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    tools:ignore="MotionLayoutInvalidSceneFileReference">
-
-    <TextView
-        android:id="@+id/home_fragment_time"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_marginTop="@dimen/_64sdp"
-        android:alpha="-1"
-        android:text="@string/main_placeholder_clock"
-        android:textAppearance="@style/TextAppearance.AppCompat"
-        android:textSize="@dimen/_40ssp"
-        app:layout_constraintBottom_toTopOf="@+id/home_fragment_date"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintHorizontal_bias="0.5"
-        app:layout_constraintStart_toStartOf="parent" />
-
-    <TextView
-        android:id="@+id/home_fragment_date"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:alpha="-1"
-        android:padding="@dimen/_4sdp"
-        android:text="@string/main_placeholder_date"
-        android:textAppearance="@style/TextAppearance.AppCompat"
-        android:textSize="@dimen/_12sdp"
-        app:layout_constraintBottom_toTopOf="parent"
-        app:layout_constraintEnd_toEndOf="@+id/home_fragment_time"
-        app:layout_constraintStart_toStartOf="@+id/home_fragment_time" />
-
-
-    <androidx.recyclerview.widget.RecyclerView
-        android:id="@+id/home_fragment_list"
-        android:layout_width="0dp"
-        android:layout_height="wrap_content"
-        android:layout_marginStart="@dimen/_16sdp"
-        android:layout_marginLeft="@dimen/_16sdp"
-        android:layout_marginEnd="@dimen/_16sdp"
-        android:layout_marginRight="@dimen/_16sdp"
-        app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
-        app:layout_constraintBottom_toTopOf="@+id/home_fragment_list_exp"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintHorizontal_bias="0.5"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toBottomOf="@+id/home_fragment_date"
-        app:layout_constraintVertical_chainStyle="packed"
-        tools:itemCount="4"
-        tools:listitem="@layout/main_fragment_list_item" />
-
-    <androidx.recyclerview.widget.RecyclerView
-        android:id="@+id/home_fragment_list_exp"
-        android:layout_width="0dp"
-        android:layout_height="wrap_content"
-        android:layout_marginStart="@dimen/_16sdp"
-        android:layout_marginLeft="@dimen/_16sdp"
-        android:layout_marginEnd="@dimen/_16sdp"
-        android:layout_marginRight="@dimen/_16sdp"
-        android:layout_marginBottom="@dimen/_32sdp"
-        app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
-        app:layout_constraintBottom_toBottomOf="parent"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintHorizontal_bias="0.5"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toBottomOf="@+id/home_fragment_list"
-        tools:itemCount="4"
-        tools:listitem="@layout/main_fragment_list_item" />
-
-
-    <TextView
-        android:id="@+id/home_fragment_options"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_marginStart="@dimen/_16sdp"
-        android:layout_marginBottom="@dimen/_16sdp"
-        android:padding="@dimen/_8sdp"
-        android:text="@string/main_fragment_options"
-        android:textAppearance="@style/TextAppearance.AppCompat"
-        android:textSize="@dimen/_18ssp"
-        app:layout_constraintBottom_toBottomOf="parent"
-        app:layout_constraintStart_toStartOf="@+id/home_fragment_list_exp" />
-
-
-    <TextView
-        android:id="@+id/home_fragment_apps"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_marginStart="@dimen/_16sdp"
-        android:layout_marginLeft="@dimen/_16sdp"
-        android:layout_marginBottom="@dimen/_16sdp"
-        android:padding="@dimen/_8sdp"
-        android:text="@string/main_fragment_apps"
-        android:textAppearance="@style/TextAppearance.AppCompat"
-        android:textSize="@dimen/_18ssp"
-        app:layout_constraintBottom_toBottomOf="parent"
-        app:layout_constraintEnd_toEndOf="@+id/home_fragment_list_exp" />
-
-
-    <ImageView
-        android:id="@+id/home_fragment_call"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_marginStart="@dimen/_8sdp"
-        android:alpha="-1"
-        android:padding="@dimen/_8sdp"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toBottomOf="parent"
-        app:srcCompat="@drawable/ic_call"
-        tools:ignore="ContentDescription" />
-
-    <ImageView
-        android:id="@+id/home_fragment_camera"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_marginEnd="@dimen/_8sdp"
-        android:alpha="-1"
-        android:padding="@dimen/_8sdp"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintTop_toBottomOf="parent"
-        app:srcCompat="@drawable/ic_photo_camera"
-        tools:ignore="ContentDescription" />
-
-</androidx.constraintlayout.motion.widget.MotionLayout>
-

+ 0 - 59
app/src/main/res/layout/open_apps_fragment.xml

@@ -1,59 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
-    xmlns:tools="http://schemas.android.com/tools"
-    android:id="@+id/open_apps_fragment"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    tools:context=".ui.options.OpenAppsFragment">
-
-    <EditText
-        android:id="@+id/add_app_fragment_edit_text"
-        android:layout_width="0dp"
-        android:layout_height="wrap_content"
-        android:layout_marginStart="8dp"
-        android:layout_marginLeft="8dp"
-        android:layout_marginTop="32dp"
-        android:layout_marginEnd="8dp"
-        android:layout_marginRight="8dp"
-        android:ems="10"
-        android:imeOptions="actionDone"
-        android:inputType="none|textNoSuggestions|textCapWords"
-        android:textSize="@dimen/_18ssp"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toTopOf="parent"
-        tools:ignore="Autofill,LabelFor"
-        android:hint="@string/add_apps_fragment_search_apps" />
-
-    <androidx.recyclerview.widget.RecyclerView
-        android:id="@+id/add_app_fragment_list"
-        android:layout_width="0dp"
-        android:layout_height="0dp"
-        android:layout_marginStart="8dp"
-        android:layout_marginLeft="8dp"
-        android:layout_marginEnd="8dp"
-        android:layout_marginRight="8dp"
-        app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
-        app:layout_constraintBottom_toBottomOf="parent"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toBottomOf="@+id/add_app_fragment_edit_text"
-        tools:listitem="@layout/add_app_fragment_list_item" />
-
-    <ProgressBar
-        android:id="@+id/add_app_fragment_progress_bar"
-        style="?android:attr/progressBarStyle"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_marginStart="8dp"
-        android:layout_marginLeft="8dp"
-        android:layout_marginTop="8dp"
-        android:layout_marginEnd="8dp"
-        android:layout_marginRight="8dp"
-        app:layout_constraintBottom_toBottomOf="parent"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toTopOf="parent"
-        app:layout_constraintVertical_bias="0.25" />
-</androidx.constraintlayout.widget.ConstraintLayout>

+ 0 - 8
app/src/main/res/navigation/nav_graph.xml

@@ -13,9 +13,6 @@
         <action
             android:id="@+id/action_homeFragment_to_optionsFragment"
             app:destination="@id/optionsFragment" />
-        <action
-            android:id="@+id/action_homeFragment_to_openAppsFragment"
-            app:destination="@id/openAppsFragment" />
     </fragment>
     <fragment
         android:id="@+id/optionsFragment"
@@ -40,10 +37,5 @@
         android:name="com.sduduzog.slimlauncher.ui.options.AddAppFragment"
         android:label="add_app_fragment"
         tools:layout="@layout/add_app_fragment" />
-    <fragment
-        android:id="@+id/openAppsFragment"
-        android:name="com.sduduzog.slimlauncher.ui.options.OpenAppsFragment"
-        android:label="open_apps_fragment"
-        tools:layout="@layout/open_apps_fragment" />
 
 </navigation>

+ 0 - 1
app/src/main/res/values/strings.xml

@@ -43,6 +43,5 @@
     <string name="remove_all_apps_dialog_title" translatable="false">Remove All Apps</string>
     <string name="remove_all_apps_dialog_message" translatable="false">"This action will not uninstall your apps."
     "It is just to confirm if you're clearing this list on purpose"</string>
-    <string name="main_fragment_apps">Apps</string>
 
 </resources>

+ 0 - 16
app/src/main/res/xml/home_motion_01_scene.xml

@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<MotionScene xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto">
-
-    <ConstraintSet android:id="@+id/start">
-        <Constraint android:id="@+id/home_fragment_time" />
-    </ConstraintSet>
-
-    <ConstraintSet android:id="@+id/end">
-        <Constraint android:id="@id/home_fragment_time" />
-    </ConstraintSet>
-
-    <Transition
-        app:constraintSetEnd="@id/end"
-        app:constraintSetStart="@+id/start" />
-</MotionScene>

+ 0 - 16
app/src/main/res/xml/home_motion_02_scene.xml

@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<MotionScene xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto">
-
-    <ConstraintSet android:id="@+id/start">
-        <Constraint android:id="@+id/home_fragment_time" />
-    </ConstraintSet>
-
-    <ConstraintSet android:id="@+id/end">
-        <Constraint android:id="@id/home_fragment_time" />
-    </ConstraintSet>
-
-    <Transition
-        app:constraintSetEnd="@id/end"
-        app:constraintSetStart="@+id/start" />
-</MotionScene>

+ 199 - 4
app/src/main/res/xml/home_motion_scene.xml

@@ -1,13 +1,208 @@
 <?xml version="1.0" encoding="utf-8"?>
-<MotionScene xmlns:motion="http://schemas.android.com/apk/res-auto">
+<MotionScene xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:motion="http://schemas.android.com/apk/res-auto">
     <Transition
-        motion:constraintSetEnd="@layout/home_motion_02"
-        motion:constraintSetStart="@layout/home_motion_01"
+        motion:constraintSetEnd="@+id/home_motion_02"
+        motion:constraintSetStart="@+id/home_motion_01"
         motion:duration="250">
         <OnSwipe
             motion:dragDirection="dragUp"
-            motion:touchAnchorId="@+id/home_fragment_date"
+            motion:touchAnchorId="@+id/home_fragment_list"
             motion:touchAnchorSide="bottom" />
     </Transition>
 
+    <ConstraintSet android:id="@+id/home_motion_01">
+        <Constraint
+            android:id="@+id/home_fragment_time"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="@dimen/_42sdp"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintHorizontal_bias="0.506"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toTopOf="parent" />
+        <Constraint
+            android:id="@+id/home_fragment_date"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:padding="@dimen/_4sdp"
+            android:textSize="@dimen/_12sdp"
+            app:layout_constraintEnd_toEndOf="@+id/home_fragment_time"
+            app:layout_constraintStart_toStartOf="@+id/home_fragment_time"
+            app:layout_constraintTop_toBottomOf="@+id/home_fragment_time" />
+        <Constraint
+            android:id="@+id/home_fragment_list"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_marginStart="@dimen/_16sdp"
+            android:layout_marginLeft="@dimen/_16sdp"
+            android:layout_marginTop="8dp"
+            android:layout_marginEnd="@dimen/_16sdp"
+            android:layout_marginRight="@dimen/_16sdp"
+            app:layout_constraintBottom_toTopOf="@+id/home_fragment_list_exp"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintHorizontal_bias="0.0"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toBottomOf="@+id/home_fragment_date"
+            app:layout_constraintVertical_bias="0.3"
+            app:layout_constraintVertical_chainStyle="packed" />
+        <Constraint
+            android:id="@+id/home_fragment_list_exp"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_marginStart="@dimen/_16sdp"
+            android:layout_marginLeft="@dimen/_16sdp"
+            android:layout_marginEnd="@dimen/_16sdp"
+            android:layout_marginRight="@dimen/_16sdp"
+            android:layout_marginBottom="@dimen/_8sdp"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintHorizontal_bias="0.0"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toBottomOf="@+id/home_fragment_list" />
+        <Constraint
+            android:id="@+id/home_fragment_options"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginBottom="@dimen/_8sdp"
+            android:alpha="1"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintEnd_toStartOf="@+id/home_fragment_camera"
+            app:layout_constraintStart_toEndOf="@+id/home_fragment_call" />
+        <Constraint
+            android:id="@+id/home_fragment_call"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginStart="@dimen/_8sdp"
+            android:layout_marginBottom="@dimen/_8sdp"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintStart_toStartOf="parent" />
+        <Constraint
+            android:id="@+id/home_fragment_camera"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginEnd="@dimen/_8sdp"
+            android:layout_marginBottom="@dimen/_8sdp"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintEnd_toEndOf="parent" />
+        <Constraint
+            android:id="@+id/app_drawer_edit_text"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_marginStart="8dp"
+            android:layout_marginLeft="8dp"
+            android:layout_marginTop="32dp"
+            android:layout_marginEnd="8dp"
+            android:layout_marginRight="8dp"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toBottomOf="parent" />
+        <Constraint
+            android:id="@+id/app_drawer_fragment_list"
+            android:layout_width="0dp"
+            android:layout_height="0dp"
+            android:layout_marginStart="8dp"
+            android:layout_marginLeft="8dp"
+            android:layout_marginEnd="8dp"
+            android:layout_marginRight="8dp"
+            android:alpha="-1"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toBottomOf="@+id/app_drawer_edit_text" />
+    </ConstraintSet>
+
+    <ConstraintSet android:id="@+id/home_motion_02">
+        <Constraint
+            android:id="@+id/home_fragment_time"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="@dimen/_64sdp"
+            android:alpha="-1"
+            app:layout_constraintBottom_toTopOf="@+id/home_fragment_date"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintHorizontal_bias="0.5"
+            app:layout_constraintStart_toStartOf="parent" />
+        <Constraint
+            android:id="@+id/home_fragment_date"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:alpha="-1"
+            app:layout_constraintBottom_toTopOf="parent"
+            app:layout_constraintEnd_toEndOf="@+id/home_fragment_time"
+            app:layout_constraintStart_toStartOf="@+id/home_fragment_time" />
+        <Constraint
+            android:id="@+id/home_fragment_list"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_marginStart="@dimen/_16sdp"
+            android:layout_marginLeft="@dimen/_16sdp"
+            android:layout_marginEnd="@dimen/_16sdp"
+            android:layout_marginRight="@dimen/_16sdp"
+            android:alpha="-1"
+            app:layout_constraintBottom_toTopOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintHorizontal_bias="0.5"
+            app:layout_constraintStart_toStartOf="parent" />
+        <Constraint
+            android:id="@+id/home_fragment_list_exp"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_marginStart="@dimen/_16sdp"
+            android:layout_marginLeft="@dimen/_16sdp"
+            android:layout_marginEnd="@dimen/_16sdp"
+            android:layout_marginRight="@dimen/_16sdp"
+            android:layout_marginBottom="@dimen/_8sdp"
+            android:alpha="-1"
+            app:layout_constraintBottom_toTopOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintHorizontal_bias="0.5"
+            app:layout_constraintStart_toStartOf="parent" />
+        <Constraint
+            android:id="@+id/home_fragment_options"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:alpha="-3"
+            app:layout_constraintTop_toBottomOf="parent" />
+        <Constraint
+            android:id="@+id/home_fragment_call"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginStart="@dimen/_8sdp"
+            android:alpha="-1"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toBottomOf="parent" />
+        <Constraint
+            android:id="@+id/home_fragment_camera"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginEnd="@dimen/_8sdp"
+            android:alpha="-1"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintTop_toBottomOf="parent" />
+        <Constraint
+            android:id="@+id/app_drawer_edit_text"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_marginStart="8dp"
+            android:layout_marginLeft="8dp"
+            android:layout_marginTop="32dp"
+            android:layout_marginEnd="8dp"
+            android:layout_marginRight="8dp"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toTopOf="parent" />
+        <Constraint
+            android:id="@+id/app_drawer_fragment_list"
+            android:layout_width="0dp"
+            android:layout_height="0dp"
+            android:layout_marginStart="8dp"
+            android:layout_marginLeft="8dp"
+            android:layout_marginEnd="8dp"
+            android:layout_marginRight="8dp"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toBottomOf="@+id/app_drawer_edit_text" />
+    </ConstraintSet>
 </MotionScene>

BIN
docs/assets/home-screen-1.png


BIN
docs/assets/home-screen-2.png


BIN
docs/assets/home-screen.png