Kaynağa Gözat

Merge branch 'develop' into release

Beautus 7 yıl önce
ebeveyn
işleme
e5c458f0d2
36 değiştirilmiş dosya ile 538 ekleme ve 615 silme
  1. 11 27
      README.md
  2. 10 6
      app/build.gradle
  3. 47 3
      app/src/main/java/com/sduduzog/slimlauncher/MainActivity.kt
  4. 10 1
      app/src/main/java/com/sduduzog/slimlauncher/ui/main/HomeAppsAdapter.kt
  5. 119 21
      app/src/main/java/com/sduduzog/slimlauncher/ui/main/MainFragment.kt
  6. 40 0
      app/src/main/java/com/sduduzog/slimlauncher/ui/main/StatusBarThemeFragment.kt
  7. 11 2
      app/src/main/java/com/sduduzog/slimlauncher/ui/main/settings/SettingsFragment.kt
  8. 0 47
      app/src/main/java/com/sduduzog/slimlauncher/ui/main/setup/ClockSetupFragment.kt
  9. 0 48
      app/src/main/java/com/sduduzog/slimlauncher/ui/main/setup/DialerSetupFragment.kt
  10. 0 44
      app/src/main/java/com/sduduzog/slimlauncher/ui/main/setup/HomeSetupFragment.kt
  11. 5 11
      app/src/main/java/com/sduduzog/slimlauncher/ui/main/setup/SetupFragment.kt
  12. 15 27
      app/src/main/java/com/sduduzog/slimlauncher/ui/main/setup/SplashFragment.kt
  13. 9 0
      app/src/main/res/drawable-v21/ic_call.xml
  14. 9 0
      app/src/main/res/drawable-v21/ic_chevron_left.xml
  15. 9 0
      app/src/main/res/drawable-v21/ic_expand.xml
  16. 12 0
      app/src/main/res/drawable-v21/ic_photo_camera.xml
  17. 1 1
      app/src/main/res/drawable/ic_call.xml
  18. 1 1
      app/src/main/res/drawable/ic_expand.xml
  19. 3 0
      app/src/main/res/drawable/ic_my_phone.xml
  20. 2 2
      app/src/main/res/drawable/ic_photo_camera.xml
  21. 0 72
      app/src/main/res/layout/clock_setup_fragment.xml
  22. 0 147
      app/src/main/res/layout/dialer_setup_fragment.xml
  23. 22 40
      app/src/main/res/layout/home_setup_fragment.xml
  24. 38 13
      app/src/main/res/layout/main_content.xml
  25. 2 4
      app/src/main/res/layout/main_list_item.xml
  26. 58 22
      app/src/main/res/layout/settings_fragment.xml
  27. 2 1
      app/src/main/res/layout/setup_fragment.xml
  28. 53 55
      app/src/main/res/layout/splash_fragment.xml
  29. 12 10
      app/src/main/res/layout/theme_setup_fragment.xml
  30. 2 0
      app/src/main/res/values-sw600dp/dimens.xml
  31. 4 0
      app/src/main/res/values/attrs.xml
  32. 17 0
      app/src/main/res/values/dimens.xml
  33. 14 3
      app/src/main/res/values/strings.xml
  34. 0 7
      app/src/main/res/values/styles.xml
  35. BIN
      docs/assets/google-play-badge.png
  36. BIN
      docs/assets/ic_launcher-web.png

+ 11 - 27
README.md

@@ -2,28 +2,10 @@
 
 > _All you need is less._
 
-<style>
-#app-logo{
-  height: 250px;
-  width: 100%;
-  clear: both;
-  object-fit: contain;
-}
-
-#g-badge{
-  height: 50px;
-  float: left
-}
 </style>
 <img id="app-logo" src="docs/assets/ic_launcher-web.png">
 
-<a href="https://play.google.com/apps//details?id=com.sduduzog.slimlauncher">
-<img id="g-badge" src="docs/assets/google-play-badge.png">
-</a>
-
-### Now available for [download](https://play.google.com/apps//details?id=com.sduduzog.slimlauncher) on Google Play
-
-...Or get the latest unreleased [beta version](https://play.google.com/apps/testing/com.sduduzog.slimlauncher).
+## Now available on Google Play[![Google Play badge](docs/assets/google-play-badge.png)](https://play.google.com/store/apps/details?id=com.sduduzog.slimlauncher)
 
 ## Background
 
@@ -36,14 +18,16 @@ This project was inspired by LessPhone [LessPhone](https://play.google.com/store
 - [x] Release on Google Play _(release the kraken!)_
 - [x] Variety of themes
 - [x] Clean up README _...continuous_.
-- [] Journal (text and audio)
-- [] Gesture controls for home screen modes
-- [] Tasks (like journal but better)
-- [] Figure out whether to fully adopt Material Design or continue mixing with flat principles. Open an issue...if there is one.
-- [] Tests and README badges **!important;**
-- [] Landing page for the app.
-- [] A tutorial series in how to build an android launcher
+- [ ] Journal (text and audio)
+- [ ] Gesture controls for home screen modes
+- [ ] Tasks (like journal but better)
+- [ ] Figure out whether to fully adopt Material Design or continue mixing with flat principles. Open an issue...if there is one.
+- [ ] Tests and README badges **!important;**
+- [ ] Landing page for the app.
+- [ ] A tutorial series in how to build an android launcher
+- [ ] App usage analytics. Offline of course
 
 ## Contribute
 
-- YES! PRs are more than welcome.
+- PRs are more than welcome.
+- [Sign up as a tester](https://play.google.com/apps/testing/com.sduduzog.slimlauncher) and get releases before everyone else.

+ 10 - 6
app/build.gradle

@@ -10,7 +10,7 @@ android {
     compileSdkVersion 28
     defaultConfig {
         applicationId "com.sduduzog.slimlauncher"
-        minSdkVersion 21
+        minSdkVersion 16
         targetSdkVersion 28
         versionCode 21
         versionName "2.1.2"
@@ -39,21 +39,25 @@ dependencies {
 
     // Support Libraries
     implementation 'androidx.appcompat:appcompat:1.0.2'
-    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
     implementation 'androidx.cardview:cardview:1.0.0'
     implementation 'androidx.recyclerview:recyclerview:1.0.0'
+    implementation 'androidx.constraintlayout:constraintlayout:2.0.0-alpha3'
 
     // Google Libraries
     implementation 'com.google.android.material:material:1.0.0'
 
     // Arch Components
-    implementation 'androidx.core:core-ktx:1.0.1'
+    implementation 'androidx.core:core-ktx:1.1.0-alpha03'
     implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0'
     implementation 'android.arch.navigation:navigation-fragment:1.0.0-alpha09'
     implementation 'androidx.room:room-runtime:2.1.0-alpha03'
     kapt "androidx.room:room-compiler:2.1.0-alpha03"
     kapt "androidx.lifecycle:lifecycle-compiler:2.0.0"
 
+    //3rd party libs
+    implementation 'com.intuit.sdp:sdp-android:1.0.6'
+    implementation 'com.intuit.ssp:ssp-android:1.0.6'
+
     // Test libs
     testImplementation 'junit:junit:4.12'
     testImplementation 'org.mockito:mockito-core:2.19.0'
@@ -64,7 +68,7 @@ dependencies {
     androidTestImplementation 'androidx.test:runner:1.1.1'
     androidTestImplementation 'androidx.test:rules:1.1.1'
     androidTestImplementation "androidx.arch.core:core-testing:2.0.0"
-    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
-    androidTestImplementation 'com.android.support.test.espresso:espresso-intents:3.0.2'
-    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
+    androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
+    androidTestImplementation 'androidx.test.espresso:espresso-intents:3.1.1'
+
 }

+ 47 - 3
app/src/main/java/com/sduduzog/slimlauncher/MainActivity.kt

@@ -4,6 +4,7 @@ import android.content.SharedPreferences
 import android.content.pm.PackageManager
 import android.content.res.Resources
 import android.os.Bundle
+import android.view.View
 import androidx.appcompat.app.AppCompatActivity
 import androidx.lifecycle.ViewModelProviders
 import androidx.navigation.NavController
@@ -12,7 +13,11 @@ import androidx.navigation.Navigation.findNavController
 import com.sduduzog.slimlauncher.ui.main.MainViewModel
 
 
-class MainActivity : AppCompatActivity(), SharedPreferences.OnSharedPreferenceChangeListener, NavController.OnNavigatedListener {
+class MainActivity : AppCompatActivity(), SharedPreferences.OnSharedPreferenceChangeListener, NavController.OnDestinationChangedListener {
+
+    // TODO: Clickable apps while in preferences, intuitiveness
+    // TODO: Lock screen on double tap
+    // TODO: Move some apps to bottom sheet.
 
     private lateinit var settings: SharedPreferences
     private val label = "main_fragment"
@@ -47,7 +52,7 @@ class MainActivity : AppCompatActivity(), SharedPreferences.OnSharedPreferenceCh
         settings = getSharedPreferences(getString(R.string.prefs_settings), MODE_PRIVATE)
         settings.registerOnSharedPreferenceChangeListener(this)
         navigator = findNavController(this, R.id.nav_host_fragment)
-        navigator.addOnNavigatedListener(this)
+        navigator.addOnDestinationChangedListener(this)
         viewModel = ViewModelProviders.of(this).get(MainViewModel::class.java)
     }
 
@@ -56,10 +61,25 @@ class MainActivity : AppCompatActivity(), SharedPreferences.OnSharedPreferenceCh
         viewModel.refreshApps()
     }
 
+    override fun onResume() {
+        super.onResume()
+        overridePendingTransition(android.R.anim.fade_in, android.R.anim.fade_out)
+        toggleStatusBar()
+    }
+
+    override fun onWindowFocusChanged(hasFocus: Boolean) {
+        super.onWindowFocusChanged(hasFocus)
+        if (hasFocus) toggleStatusBar()
+    }
+
+
     override fun onSharedPreferenceChanged(sharedPreferences: SharedPreferences?, s: String?) {
         if (s.equals(getString(R.string.prefs_settings_key_theme), true)) {
             recreate()
         }
+        if (s.equals(getString(R.string.prefs_settings_key_hide_status_bar), true)) {
+            toggleStatusBar()
+        }
     }
 
     override fun getTheme(): Resources.Theme {
@@ -77,7 +97,10 @@ class MainActivity : AppCompatActivity(), SharedPreferences.OnSharedPreferenceCh
         else onBackPressedListener?.onBackPress()
     }
 
-    override fun onNavigated(controller: NavController, destination: NavDestination) {
+    /**
+     * Make the activity aware of the current destination in our NavController.
+     */
+    override fun onDestinationChanged(controller: NavController, destination: NavDestination, arguments: Bundle?) {
         currentLabel = destination.label.toString()
     }
 
@@ -97,7 +120,28 @@ class MainActivity : AppCompatActivity(), SharedPreferences.OnSharedPreferenceCh
         // permissions this app might request
     }
 
+    private fun showSystemUI() {
+        window.decorView.systemUiVisibility = (View.SYSTEM_UI_FLAG_LAYOUT_STABLE
+                or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN)
+    }
+
+    private fun hideSystemUI() {
+        window.decorView.systemUiVisibility = (View.SYSTEM_UI_FLAG_LAYOUT_STABLE
+                or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
+                or View.SYSTEM_UI_FLAG_FULLSCREEN)
+    }
+
+    private fun toggleStatusBar() {
+        val isHidden = settings.getBoolean(getString(R.string.prefs_settings_key_hide_status_bar), false)
+        if (isHidden) {
+            hideSystemUI()
+        } else {
+            showSystemUI()
+        }
+    }
+
     companion object {
+
         fun resolveTheme(i: Int): Int {
             when (i) {
                 1 -> {

+ 10 - 1
app/src/main/java/com/sduduzog/slimlauncher/ui/main/HomeAppsAdapter.kt

@@ -13,6 +13,10 @@ import androidx.lifecycle.ViewModelProviders
 import androidx.recyclerview.widget.RecyclerView
 import com.sduduzog.slimlauncher.R
 import com.sduduzog.slimlauncher.data.HomeApp
+import androidx.core.content.ContextCompat.startActivity
+import android.app.ActivityOptions
+import androidx.core.app.ActivityOptionsCompat
+
 
 class HomeAppsAdapter(private var fragment: MainFragment)
     : RecyclerView.Adapter<HomeAppsAdapter.ViewHolder>() {
@@ -46,7 +50,12 @@ class HomeAppsAdapter(private var fragment: MainFragment)
             intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED
             intent.component = name
             try {
-                fragment.startActivity(intent)
+                val left = 0
+                val top = 0
+                val width = it.measuredWidth
+                val height = it.measuredHeight
+                val opts = ActivityOptionsCompat.makeClipRevealAnimation(it, left, top, width, height)
+                fragment.startActivity(intent, opts.toBundle())
             } catch (e: ActivityNotFoundException) {
                 Toast.makeText(fragment.context, "${item.appName} seems to be uninstalled, removing from list", Toast.LENGTH_LONG).show()
                 viewModel.deleteApp(item)

+ 119 - 21
app/src/main/java/com/sduduzog/slimlauncher/ui/main/MainFragment.kt

@@ -1,19 +1,20 @@
 package com.sduduzog.slimlauncher.ui.main
 
+import android.annotation.SuppressLint
 import android.content.*
 import android.content.pm.PackageManager
 import android.net.Uri
+import android.os.Build
 import android.os.Bundle
 import android.provider.AlarmClock
 import android.provider.MediaStore
 import android.provider.Settings
-import android.view.LayoutInflater
-import android.view.View
-import android.view.ViewGroup
+import android.util.Log
+import android.view.*
 import android.widget.FrameLayout
 import androidx.core.app.ActivityCompat
+import androidx.core.app.ActivityOptionsCompat
 import androidx.core.content.ContextCompat
-import androidx.fragment.app.Fragment
 import androidx.navigation.Navigation
 import com.google.android.material.bottomsheet.BottomSheetBehavior
 import com.google.android.material.bottomsheet.BottomSheetBehavior.STATE_COLLAPSED
@@ -22,14 +23,16 @@ import com.sduduzog.slimlauncher.MainActivity
 import com.sduduzog.slimlauncher.R
 import kotlinx.android.synthetic.main.main_bottom_sheet.*
 import kotlinx.android.synthetic.main.main_content.*
+import kotlinx.android.synthetic.main.main_fragment.*
 import java.text.SimpleDateFormat
 import java.util.*
 
 
-class MainFragment : Fragment(), MainActivity.OnBackPressedListener {
+class MainFragment : StatusBarThemeFragment(), MainActivity.OnBackPressedListener {
 
     private lateinit var receiver: BroadcastReceiver
     private lateinit var sheetBehavior: BottomSheetBehavior<FrameLayout>
+    private val homeClickListener = HomeDoubleClickListener()
 
     override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
                               savedInstanceState: Bundle?): View {
@@ -53,6 +56,9 @@ class MainFragment : Fragment(), MainActivity.OnBackPressedListener {
         doBounceAnimation(ivExpand)
     }
 
+    override fun getFragmentView(): View {
+        return main
+    }
 
     override fun onResume() {
         super.onResume()
@@ -87,16 +93,45 @@ class MainFragment : Fragment(), MainActivity.OnBackPressedListener {
     }
 
     private fun setEventListeners() {
+
+        main.setOnTouchListener(homeClickListener)
+
+        mainAppsList.setOnTouchListener(homeClickListener)
+
         clockTextView.setOnClickListener {
             try {
-                val intent = Intent(AlarmClock.ACTION_SHOW_ALARMS)
+                val intent = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
+                    Intent(AlarmClock.ACTION_SHOW_ALARMS)
+                } else {
+                    alternativeClockIntent()
+                }
                 intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
-                startActivity(intent)
+                val left = 0
+                val top = 0
+                val width = it.measuredWidth
+                val height = it.measuredHeight
+                val opts = ActivityOptionsCompat.makeClipRevealAnimation(it, left, top, width, height)
+                startActivity(intent, opts.toBundle())
             } finally {
                 // Do nothing
             }
         }
 
+        dateTextView.setOnClickListener {
+            try {
+                val intent = Intent(Intent.ACTION_MAIN)
+                intent.addCategory(Intent.CATEGORY_APP_CALENDAR)
+                intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
+                val left = 0
+                val top = 0
+                val width = it.measuredWidth
+                val height = it.measuredHeight
+                val opts = ActivityOptionsCompat.makeClipRevealAnimation(it, left, top, width, height)
+                startActivity(intent, opts.toBundle())
+            } finally {
+                // Do nothing
+            }
+        }
 
         val settings = context!!.getSharedPreferences(getString(R.string.prefs_settings), Context.MODE_PRIVATE)
         val isChecked = settings.getBoolean(getString(R.string.prefs_settings_key_app_dialer), false)
@@ -106,7 +141,12 @@ class MainFragment : Fragment(), MainActivity.OnBackPressedListener {
             } else {
                 try {
                     val intent = Intent(Intent.ACTION_DIAL)
-                    startActivity(intent)
+                    val left = 0
+                    val top = 0
+                    val width = it.measuredWidth
+                    val height = it.measuredHeight
+                    val opts = ActivityOptionsCompat.makeClipRevealAnimation(it, left, top, width, height)
+                    startActivity(intent, opts.toBundle())
                 } catch (e: Exception) {
                     // Do nothing
                 }
@@ -116,7 +156,12 @@ class MainFragment : Fragment(), MainActivity.OnBackPressedListener {
             if (isChecked) {
                 try {
                     val intent = Intent(Intent.ACTION_DIAL, null)
-                    startActivity(intent)
+                    val left = 0
+                    val top = 0
+                    val width = it.measuredWidth
+                    val height = it.measuredHeight
+                    val opts = ActivityOptionsCompat.makeClipRevealAnimation(it, left, top, width, height)
+                    startActivity(intent, opts.toBundle())
                 } catch (e: ActivityNotFoundException) {
                     // Do nothing
                 }
@@ -130,7 +175,12 @@ class MainFragment : Fragment(), MainActivity.OnBackPressedListener {
         ivCamera.setOnClickListener {
             try {
                 val intent = Intent(MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA)
-                startActivity(intent)
+                val left = 0
+                val top = 0
+                val width = it.measuredWidth
+                val height = it.measuredHeight
+                val opts = ActivityOptionsCompat.makeClipRevealAnimation(it, left, top, width, height)
+                startActivity(intent, opts.toBundle())
             } catch (e: Exception) {
                 // Do nothing
             }
@@ -146,7 +196,9 @@ class MainFragment : Fragment(), MainActivity.OnBackPressedListener {
                 val multi = 3 * p1
                 optionsView.alpha = multi
                 optionsView.cardElevation = p1 * 8
-                optionsView.elevation = p1 * 8
+                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
+                    optionsView.elevation = p1 * 8
+                }
             }
 
             override fun onStateChanged(bottomSheet: View, newState: Int) {
@@ -161,19 +213,23 @@ class MainFragment : Fragment(), MainActivity.OnBackPressedListener {
 
         rateAppText.setOnClickListener {
             val uri = Uri.parse("market://details?id=" + context?.packageName)
-            val goToMarket = Intent(Intent.ACTION_VIEW, uri)
-            goToMarket.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY or
+            val intent = Intent(Intent.ACTION_VIEW, uri)
+            intent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY or
                     Intent.FLAG_ACTIVITY_MULTIPLE_TASK)
-            goToMarket.addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT)
+            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
+                intent.addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT)
+            }
             try {
-                startActivity(goToMarket)
+                startActivity(intent)
             } catch (e: ActivityNotFoundException) {
                 startActivity(Intent(Intent.ACTION_VIEW,
                         Uri.parse("http://play.google.com/store/apps/details?id=" + context?.packageName)))
             }
         }
         changeLauncherText.setOnClickListener {
-            startActivity(Intent(Settings.ACTION_HOME_SETTINGS))
+            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
+                startActivity(Intent(Settings.ACTION_HOME_SETTINGS))
+            }
         }
         aboutText.setOnClickListener(Navigation.createNavigateOnClickListener(R.id.action_mainFragment_to_aboutFragment))
 
@@ -181,18 +237,44 @@ class MainFragment : Fragment(), MainActivity.OnBackPressedListener {
             startActivity(Intent(Settings.ACTION_SETTINGS))
         }
         changeLauncherText.setOnClickListener {
-            startActivity(Intent(Settings.ACTION_HOME_SETTINGS))
+            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
+                startActivity(Intent(Settings.ACTION_HOME_SETTINGS))
+            }
         }
     }
 
+    private fun alternativeClockIntent(): Intent {
+        val alarmClockIntent = Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_LAUNCHER)
+
+// Verify clock implementation
+        val clockImpls = arrayOf(arrayOf("HTC Alarm Clock", "com.htc.android.worldclock", "com.htc.android.worldclock.WorldClockTabControl"), arrayOf("Standar Alarm Clock", "com.android.deskclock", "com.android.deskclock.AlarmClock"), arrayOf("Froyo Nexus Alarm Clock", "com.google.android.deskclock", "com.android.deskclock.DeskClock"), arrayOf("Moto Blur Alarm Clock", "com.motorola.blur.alarmclock", "com.motorola.blur.alarmclock.AlarmClock"), arrayOf("Samsung Galaxy Clock", "com.sec.android.app.clockpackage", "com.sec.android.app.clockpackage.ClockPackage"), arrayOf("Sony Ericsson Xperia Z", "com.sonyericsson.organizer", "com.sonyericsson.organizer.Organizer_WorldClock"), arrayOf("ASUS Tablets", "com.asus.deskclock", "com.asus.deskclock.DeskClock"))
+
+        var foundClockImpl = false
+
+        for (i in clockImpls.indices) {
+            val packageName = clockImpls[i][1]
+            val className = clockImpls[i][2]
+            val cn = ComponentName(packageName, className)
+            alarmClockIntent.component = cn
+            foundClockImpl = true
+        }
+
+        if (!foundClockImpl) {
+            throw Exception()
+        }
+        return alarmClockIntent
+
+    }
+
     private fun doBounceAnimation(targetView: View) {
         targetView.animate()
                 .setStartDelay(500)
                 .translationYBy(-20f).withEndAction {
-            targetView.animate()
-                    .setStartDelay(0)
-                    .translationYBy(20f).duration = 100
-        }.duration = 100
+                    targetView.animate()
+                            .setStartDelay(0)
+                            .translationYBy(20f).duration = 100
+                }.duration = 100
+
     }
 
     fun updateUi() {
@@ -228,6 +310,22 @@ class MainFragment : Fragment(), MainActivity.OnBackPressedListener {
         }
     }
 
+    inner class HomeDoubleClickListener : View.OnTouchListener {
+
+        private val gestureDetector = GestureDetector(context, object : GestureDetector.SimpleOnGestureListener() {
+            override fun onDoubleTap(e: MotionEvent?): Boolean {
+                Log.d("MAIN", "double click")
+                return super.onDoubleTap(e)
+            }
+        })
+
+        @SuppressLint("ClickableViewAccessibility")
+        override fun onTouch(p0: View?, p1: MotionEvent?): Boolean {
+            gestureDetector.onTouchEvent(p1)
+            return true
+        }
+    }
+
     companion object {
         const val REQUEST_PHONE_CALL = 1
     }

+ 40 - 0
app/src/main/java/com/sduduzog/slimlauncher/ui/main/StatusBarThemeFragment.kt

@@ -0,0 +1,40 @@
+package com.sduduzog.slimlauncher.ui.main
+
+import android.os.Build
+import android.util.TypedValue
+import android.view.View
+import androidx.appcompat.app.AppCompatActivity
+import androidx.fragment.app.Fragment
+import com.sduduzog.slimlauncher.R
+
+abstract class StatusBarThemeFragment : Fragment() {
+
+
+    /**
+     * @return [android.view.View] of the [androidx.fragment.app.Fragment] extending this class to apply flags to
+     */
+    abstract fun getFragmentView(): View
+
+
+    override fun onResume() {
+        super.onResume()
+        // When the Fragment resumes, check the theme and set the status bar color accordingly.
+        val settings = context!!.getSharedPreferences(getString(R.string.prefs_settings), AppCompatActivity.MODE_PRIVATE)
+        val active = settings.getInt(getString(R.string.prefs_settings_key_theme), 0)
+
+
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
+            when (active) {
+                0, 3, 5 -> {
+                    val flags = activity!!.window.decorView.systemUiVisibility or View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
+                    getFragmentView().systemUiVisibility = flags
+                }
+
+            }
+            val value = TypedValue()
+            context!!.theme.resolveAttribute(R.attr.colorPrimary, value, true)
+            activity!!.window.statusBarColor = value.data
+        }
+    }
+
+}

+ 11 - 2
app/src/main/java/com/sduduzog/slimlauncher/ui/main/settings/SettingsFragment.kt

@@ -8,15 +8,15 @@ import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
 import androidx.core.content.edit
-import androidx.fragment.app.Fragment
 import androidx.recyclerview.widget.ItemTouchHelper
 import androidx.recyclerview.widget.RecyclerView
 import com.sduduzog.slimlauncher.R
 import com.sduduzog.slimlauncher.ui.main.OnItemActionListener
+import com.sduduzog.slimlauncher.ui.main.StatusBarThemeFragment
 import kotlinx.android.synthetic.main.settings_fragment.*
 
 
-class SettingsFragment : Fragment() {
+class SettingsFragment : StatusBarThemeFragment() {
 
     override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
                               savedInstanceState: Bundle?): View? {
@@ -79,6 +79,8 @@ class SettingsFragment : Fragment() {
         initComponents()
     }
 
+    override fun getFragmentView(): View = settings_fragment
+
     private fun initComponents() {
         val settings = context!!.getSharedPreferences(getString(R.string.prefs_settings), MODE_PRIVATE)
         clockSwitch.isChecked = settings.getBoolean(getString(R.string.prefs_settings_key_clock_type), false)
@@ -94,5 +96,12 @@ class SettingsFragment : Fragment() {
                 putBoolean(getString(R.string.prefs_settings_key_app_dialer), b)
             }
         }
+
+        statusBarSwitch.isChecked = settings.getBoolean(getString(R.string.prefs_settings_key_hide_status_bar), false)
+        statusBarSwitch.setOnCheckedChangeListener { _, b ->
+            settings.edit {
+                putBoolean(getString(R.string.prefs_settings_key_hide_status_bar), b)
+            }
+        }
     }
 }

+ 0 - 47
app/src/main/java/com/sduduzog/slimlauncher/ui/main/setup/ClockSetupFragment.kt

@@ -1,47 +0,0 @@
-package com.sduduzog.slimlauncher.ui.main.setup
-
-
-import android.content.Context.MODE_PRIVATE
-import android.os.Bundle
-import android.view.LayoutInflater
-import android.view.View
-import android.view.ViewGroup
-import androidx.core.content.edit
-import com.sduduzog.slimlauncher.R
-import kotlinx.android.synthetic.main.clock_setup_fragment.*
-
-
-class ClockSetupFragment : PagerHelperFragment() {
-
-    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
-                              savedInstanceState: Bundle?): View? {
-        // Inflate the layout for this fragment
-        return inflater.inflate(R.layout.clock_setup_fragment, container, false)
-    }
-
-    override fun onActivityCreated(savedInstanceState: Bundle?) {
-        super.onActivityCreated(savedInstanceState)
-
-        val settings = activity!!.getSharedPreferences(getString(R.string.prefs_settings), MODE_PRIVATE)
-        clock_setup_switch.setOnCheckedChangeListener { _, b ->
-            settings.edit {
-                putBoolean(getString(R.string.prefs_settings_key_clock_type), b)
-            }
-            if (b) {
-                clock_setup_image.setImageResource(R.drawable.clock_zoomed2)
-            } else {
-                clock_setup_image.setImageResource(R.drawable.clock_zoomed)
-            }
-        }
-
-        clock_setup_button.setOnClickListener {
-            listener?.onPage(3) // Move to next section
-        }
-    }
-
-    companion object {
-
-        @JvmStatic
-        fun newInstance() = ClockSetupFragment()
-    }
-}

+ 0 - 48
app/src/main/java/com/sduduzog/slimlauncher/ui/main/setup/DialerSetupFragment.kt

@@ -1,48 +0,0 @@
-package com.sduduzog.slimlauncher.ui.main.setup
-
-
-import android.content.Context.MODE_PRIVATE
-import android.os.Bundle
-import android.view.LayoutInflater
-import android.view.View
-import android.view.ViewGroup
-import androidx.core.content.edit
-import com.sduduzog.slimlauncher.R
-import kotlinx.android.synthetic.main.dialer_setup_fragment.*
-
-
-class DialerSetupFragment : PagerHelperFragment() {
-
-    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
-                              savedInstanceState: Bundle?): View? {
-        // Inflate the layout for this fragment
-        return inflater.inflate(R.layout.dialer_setup_fragment, container, false)
-    }
-
-    override fun onActivityCreated(savedInstanceState: Bundle?) {
-        super.onActivityCreated(savedInstanceState)
-        setup_dialer_switch.setOnCheckedChangeListener { _, b ->
-            if (b) {
-                setup_dialer_text.text = getString(R.string.setup_dialer_note2)
-            } else {
-                setup_dialer_text.text = getString(R.string.setup_note_dialer)
-            }
-
-            val settings = context!!.getSharedPreferences(getString(R.string.prefs_settings), MODE_PRIVATE)
-
-            settings.edit {
-                putBoolean(getString(R.string.prefs_settings_key_app_dialer), b)
-            }
-        }
-
-        setup_button_next.setOnClickListener {
-            listener?.onPage(4) // Move to next section
-        }
-    }
-
-    companion object {
-
-        @JvmStatic
-        fun newInstance() = DialerSetupFragment()
-    }
-}

+ 0 - 44
app/src/main/java/com/sduduzog/slimlauncher/ui/main/setup/HomeSetupFragment.kt

@@ -1,44 +0,0 @@
-package com.sduduzog.slimlauncher.ui.main.setup
-
-
-import android.os.Bundle
-import android.view.LayoutInflater
-import android.view.View
-import android.view.ViewGroup
-import androidx.lifecycle.ViewModelProviders
-import com.sduduzog.slimlauncher.R
-import com.sduduzog.slimlauncher.data.App
-import com.sduduzog.slimlauncher.ui.main.MainViewModel
-import kotlinx.android.synthetic.main.home_setup_fragment.*
-
-
-class HomeSetupFragment : PagerHelperFragment(), ChooseAppsDialog.Companion.OnChooseAppsListener {
-
-    private lateinit var viewModel: MainViewModel
-
-    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
-                              savedInstanceState: Bundle?): View? {
-        // Inflate the layout for this fragment
-        return inflater.inflate(R.layout.home_setup_fragment, container, false)
-    }
-
-    override fun onActivityCreated(savedInstanceState: Bundle?) {
-        super.onActivityCreated(savedInstanceState)
-        viewModel = ViewModelProviders.of(this).get(MainViewModel::class.java)
-        setup_choose_button.setOnClickListener {
-            ChooseAppsDialog.getInstance(this).show(childFragmentManager, "HomeSetupFragment")
-        }
-    }
-
-    override fun onChooseApps(apps: List<App>) {
-        viewModel.clearHomeApps()
-        viewModel.addToHomeScreen(apps)
-        listener?.onPage(2) // Move to next section
-    }
-
-    companion object {
-
-        @JvmStatic
-        fun newInstance() = HomeSetupFragment()
-    }
-}

+ 5 - 11
app/src/main/java/com/sduduzog/slimlauncher/ui/main/setup/SetupFragment.kt

@@ -9,10 +9,11 @@ import androidx.fragment.app.Fragment
 import androidx.fragment.app.FragmentManager
 import androidx.fragment.app.FragmentPagerAdapter
 import com.sduduzog.slimlauncher.R
+import com.sduduzog.slimlauncher.ui.main.StatusBarThemeFragment
 import kotlinx.android.synthetic.main.setup_fragment.*
 
 
-class SetupFragment : Fragment() {
+class SetupFragment : StatusBarThemeFragment() {
 
     private lateinit var onPagerListener: OnPagerListener
     override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
@@ -38,20 +39,13 @@ class SetupFragment : Fragment() {
         }
     }
 
+    override fun getFragmentView(): View = setup_view_pager
+
     inner class SectionsPagerAdapter(fm: FragmentManager) : FragmentPagerAdapter(fm) {
 
         override fun getItem(position: Int): Fragment {
             return when (position) {
-                1 -> HomeSetupFragment.newInstance().apply {
-                    this.listener = onPagerListener
-                }
-                2 -> ClockSetupFragment.newInstance().apply {
-                    this.listener = onPagerListener
-                }
-                3 -> DialerSetupFragment.newInstance().apply {
-                    this.listener = onPagerListener
-                }
-                4 -> ThemeSetupFragment.newInstance().apply {
+                1 -> ThemeSetupFragment.newInstance().apply {
                     this.listener = onPagerListener
                 }
                 else -> SplashFragment.newInstance().apply {

+ 15 - 27
app/src/main/java/com/sduduzog/slimlauncher/ui/main/setup/SplashFragment.kt

@@ -6,11 +6,17 @@ import android.os.Bundle
 import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
+import androidx.lifecycle.ViewModelProviders
 import androidx.navigation.Navigation
 import com.sduduzog.slimlauncher.R
+import com.sduduzog.slimlauncher.data.App
+import com.sduduzog.slimlauncher.ui.main.MainViewModel
+import kotlinx.android.synthetic.main.home_setup_fragment.*
 import kotlinx.android.synthetic.main.splash_fragment.*
 
-class SplashFragment : PagerHelperFragment() {
+class SplashFragment : PagerHelperFragment(), ChooseAppsDialog.Companion.OnChooseAppsListener {
+
+    private lateinit var viewModel: MainViewModel
 
     override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
                               savedInstanceState: Bundle?): View? {
@@ -20,40 +26,22 @@ class SplashFragment : PagerHelperFragment() {
 
     override fun onActivityCreated(savedInstanceState: Bundle?) {
         super.onActivityCreated(savedInstanceState)
+        viewModel = ViewModelProviders.of(this).get(MainViewModel::class.java)
         setup_splash_button_start.setOnClickListener {
-            listener?.onPage(1) // Move to next item in pager
+                ChooseAppsDialog.getInstance(this).show(childFragmentManager, "HomeSetupFragment")
         }
         val settings = activity!!.getSharedPreferences(getString(R.string.prefs_settings), MODE_PRIVATE)
         if (!settings.getBoolean(getString(R.string.prefs_settings_key_fresh_install_setup), true)) {
             Navigation.findNavController(splash_fragment).navigate(R.id.action_setupFragment_to_mainFragment2)
         }
-        animateViews()
     }
 
-    private fun animateViews() {
-        setup_splash_button_start.alpha = 0f
-        setup_splash_button_start.translationX = -100f
-        welcome_text.alpha = 0f
-        welcome_text.translationY = 100f
-        welcome_title.alpha = 0f
-        welcome_title.translationY = 50f
-        cvIcon.alpha = 0f
-        cvIcon.scaleX = 0.5f
-        cvIcon.scaleY = 0.5f
-        cvIcon.animate().alpha(1f)
-                .scaleX(1f)
-                .scaleY(1f)
-                .duration = 2000
-        welcome_title.animate().alpha(1f)
-                .translationYBy(-50f)
-                .setStartDelay(1500).duration = 1000
-        welcome_text.animate().alpha(1f)
-                .translationYBy(-100f)
-                .setStartDelay(2000).duration = 1000
-        setup_splash_button_start.animate().alpha(1f)
-                .translationXBy(100f)
-                .setStartDelay(2500).duration = 1000
-    }
+        override fun onChooseApps(apps: List<App>) {
+            viewModel.clearHomeApps()
+            viewModel.addToHomeScreen(apps)
+            listener?.onPage(1) // Move to next section
+        }
+
 
     companion object {
         @JvmStatic

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

@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24.0"
+    android:viewportHeight="24.0">
+    <path
+        android:fillColor="?android:colorForeground"
+        android:pathData="M6.62,10.79c1.44,2.83 3.76,5.14 6.59,6.59l2.2,-2.2c0.27,-0.27 0.67,-0.36 1.02,-0.24 1.12,0.37 2.33,0.57 3.57,0.57 0.55,0 1,0.45 1,1V20c0,0.55 -0.45,1 -1,1 -9.39,0 -17,-7.61 -17,-17 0,-0.55 0.45,-1 1,-1h3.5c0.55,0 1,0.45 1,1 0,1.25 0.2,2.45 0.57,3.57 0.11,0.35 0.03,0.74 -0.25,1.02l-2.2,2.2z" />
+</vector>

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

@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24.0"
+    android:viewportHeight="24.0">
+    <path
+        android:fillColor="?android:colorForeground"
+        android:pathData="M15.41,7.41L14,6l-6,6 6,6 1.41,-1.41L10.83,12z" />
+</vector>

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

@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24.0"
+    android:viewportHeight="24.0">
+    <path
+        android:fillColor="?android:colorForeground"
+        android:pathData="M12,8l-6,6 1.41,1.41L12,10.83l4.59,4.58L18,14z" />
+</vector>

+ 12 - 0
app/src/main/res/drawable-v21/ic_photo_camera.xml

@@ -0,0 +1,12 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="24dp"
+    android:height="24dp"
+    android:viewportWidth="24.0"
+    android:viewportHeight="24.0">
+    <path
+        android:fillColor="?android:colorForeground"
+        android:pathData="M12,12m-3.2,0a3.2,3.2 0,1 1,6.4 0a3.2,3.2 0,1 1,-6.4 0" />
+    <path
+        android:fillColor="?android:colorForeground"
+        android:pathData="M9,2L7.17,4L4,4c-1.1,0 -2,0.9 -2,2v12c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2L22,6c0,-1.1 -0.9,-2 -2,-2h-3.17L15,2L9,2zM12,17c-2.76,0 -5,-2.24 -5,-5s2.24,-5 5,-5 5,2.24 5,5 -2.24,5 -5,5z" />
+</vector>

+ 1 - 1
app/src/main/res/drawable/ic_call.xml

@@ -4,6 +4,6 @@
     android:viewportWidth="24.0"
     android:viewportHeight="24.0">
     <path
-        android:fillColor="?android:colorForeground"
+        android:fillColor="@color/colorAccent"
         android:pathData="M6.62,10.79c1.44,2.83 3.76,5.14 6.59,6.59l2.2,-2.2c0.27,-0.27 0.67,-0.36 1.02,-0.24 1.12,0.37 2.33,0.57 3.57,0.57 0.55,0 1,0.45 1,1V20c0,0.55 -0.45,1 -1,1 -9.39,0 -17,-7.61 -17,-17 0,-0.55 0.45,-1 1,-1h3.5c0.55,0 1,0.45 1,1 0,1.25 0.2,2.45 0.57,3.57 0.11,0.35 0.03,0.74 -0.25,1.02l-2.2,2.2z" />
 </vector>

+ 1 - 1
app/src/main/res/drawable/ic_expand.xml

@@ -4,6 +4,6 @@
     android:viewportWidth="24.0"
     android:viewportHeight="24.0">
     <path
-        android:fillColor="?android:colorForeground"
+        android:fillColor="@color/colorAccent"
         android:pathData="M12,8l-6,6 1.41,1.41L12,10.83l4.59,4.58L18,14z" />
 </vector>

Dosya farkı çok büyük olduğundan ihmal edildi
+ 3 - 0
app/src/main/res/drawable/ic_my_phone.xml


+ 2 - 2
app/src/main/res/drawable/ic_photo_camera.xml

@@ -4,9 +4,9 @@
     android:viewportWidth="24.0"
     android:viewportHeight="24.0">
     <path
-        android:fillColor="?android:colorForeground"
+        android:fillColor="@color/colorAccent"
         android:pathData="M12,12m-3.2,0a3.2,3.2 0,1 1,6.4 0a3.2,3.2 0,1 1,-6.4 0" />
     <path
-        android:fillColor="?android:colorForeground"
+        android:fillColor="@color/colorAccent"
         android:pathData="M9,2L7.17,4L4,4c-1.1,0 -2,0.9 -2,2v12c0,1.1 0.9,2 2,2h16c1.1,0 2,-0.9 2,-2L22,6c0,-1.1 -0.9,-2 -2,-2h-3.17L15,2L9,2zM12,17c-2.76,0 -5,-2.24 -5,-5s2.24,-5 5,-5 5,2.24 5,5 -2.24,5 -5,5z" />
 </vector>

+ 0 - 72
app/src/main/res/layout/clock_setup_fragment.xml

@@ -1,72 +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/clock_setup_fragment"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    tools:context=".ui.main.setup.ClockSetupFragment">
-
-    <TextView
-        android:id="@+id/textView14"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_marginTop="32dp"
-        android:text="@string/setup_clock_type"
-        android:textAppearance="@style/TextAppearance.AppCompat.Headline"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toTopOf="parent" />
-
-    <ImageView
-        android:id="@+id/clock_setup_image"
-        android:layout_width="200dp"
-        android:layout_height="120dp"
-        android:layout_marginStart="8dp"
-        android:layout_marginTop="32dp"
-        android:layout_marginEnd="16dp"
-        android:contentDescription="@string/setup_home_screenshot"
-        android:src="@drawable/clock_zoomed"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="@+id/textView14"
-        app:layout_constraintTop_toBottomOf="@+id/textView14" />
-
-    <TextView
-        android:id="@+id/textView17"
-        android:layout_width="0dp"
-        android:layout_height="wrap_content"
-        android:layout_marginStart="32dp"
-        android:layout_marginTop="32dp"
-        android:layout_marginEnd="32dp"
-        android:gravity="center"
-        android:text="@string/setup_clock_type_text_description"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toBottomOf="@+id/clock_setup_image" />
-
-    <Switch
-        android:id="@+id/clock_setup_switch"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_marginStart="8dp"
-        android:layout_marginTop="32dp"
-        android:layout_marginEnd="8dp"
-        android:padding="8dp"
-        android:switchPadding="32dp"
-        android:text="@string/settings_text_use_24_hour_clock"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toBottomOf="@+id/textView17" />
-
-    <Button
-        android:id="@+id/clock_setup_button"
-        style="@style/Widget.AppCompat.Button.Borderless"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_marginEnd="16dp"
-        android:layout_marginBottom="16dp"
-        android:text="@string/setup_button_next"
-        app:layout_constraintBottom_toBottomOf="parent"
-        app:layout_constraintEnd_toEndOf="parent" />
-
-</androidx.constraintlayout.widget.ConstraintLayout>

+ 0 - 147
app/src/main/res/layout/dialer_setup_fragment.xml

@@ -1,147 +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/dialer_setup_fragment"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    tools:context=".ui.main.setup.DialerSetupFragment">
-
-    <!-- TODO: Update blank fragment layout -->
-    <TextView
-        android:id="@+id/textView19"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_marginTop="32dp"
-        android:text="@string/setup_we_re_almost_done"
-        android:textAppearance="@style/TextAppearance.AppCompat.Headline"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toTopOf="parent" />
-
-    <TextView
-        android:id="@+id/textView26"
-        android:layout_width="0dp"
-        android:layout_height="wrap_content"
-        android:layout_marginStart="16dp"
-        android:layout_marginTop="24dp"
-        android:layout_marginEnd="16dp"
-        android:text="@string/setup_expand_note"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toBottomOf="@+id/textView19" />
-
-    <ImageView
-        android:id="@+id/imageView2"
-        android:layout_width="200dp"
-        android:layout_height="69dp"
-        android:layout_marginStart="8dp"
-        android:layout_marginTop="8dp"
-        android:layout_marginEnd="8dp"
-        android:background="?android:attr/statusBarColor"
-        android:contentDescription="@string/screenshot_nav"
-        android:padding="1dp"
-        android:src="@drawable/nav_options"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toBottomOf="@+id/textView26" />
-
-    <View
-        android:id="@+id/divider5"
-        android:layout_width="0dp"
-        android:layout_height="1dp"
-        android:layout_marginStart="8dp"
-        android:layout_marginTop="16dp"
-        android:layout_marginEnd="8dp"
-        android:background="?android:attr/listDivider"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toBottomOf="@+id/imageView2" />
-
-    <TextView
-        android:id="@+id/setup_dialer_text"
-        android:layout_width="0dp"
-        android:layout_height="wrap_content"
-        android:layout_marginStart="16dp"
-        android:layout_marginTop="8dp"
-        android:layout_marginEnd="8dp"
-        android:text="@string/setup_note_dialer"
-        app:layout_constraintEnd_toStartOf="@+id/setup_dialer_switch"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toBottomOf="@+id/divider5" />
-
-    <Switch
-        android:id="@+id/setup_dialer_switch"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_marginEnd="24dp"
-        app:layout_constraintBottom_toBottomOf="@+id/setup_dialer_text"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintTop_toTopOf="@+id/setup_dialer_text" />
-
-    <ImageView
-        android:id="@+id/imageView4"
-        android:layout_width="200dp"
-        android:layout_height="69dp"
-        android:layout_marginStart="8dp"
-        android:layout_marginTop="16dp"
-        android:layout_marginEnd="8dp"
-        android:background="?android:attr/statusBarColor"
-        android:contentDescription="@string/screenshot_nav"
-        android:padding="1dp"
-        android:src="@drawable/nav_options2"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toBottomOf="@+id/setup_dialer_text" />
-
-    <View
-        android:id="@+id/divider6"
-        android:layout_width="0dp"
-        android:layout_height="1dp"
-        android:layout_marginStart="8dp"
-        android:layout_marginTop="24dp"
-        android:layout_marginEnd="8dp"
-        android:background="?android:attr/listDivider"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toBottomOf="@+id/imageView4" />
-
-    <TextView
-        android:id="@+id/textView29"
-        android:layout_width="0dp"
-        android:layout_height="wrap_content"
-        android:layout_marginStart="16dp"
-        android:layout_marginTop="8dp"
-        android:layout_marginEnd="16dp"
-        android:text="@string/setup_note_camera"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toBottomOf="@+id/divider6" />
-
-    <ImageView
-        android:id="@+id/imageView5"
-        android:layout_width="200dp"
-        android:layout_height="69dp"
-        android:layout_marginStart="8dp"
-        android:layout_marginTop="8dp"
-        android:layout_marginEnd="8dp"
-        android:background="?android:attr/statusBarColor"
-        android:contentDescription="@string/screenshot_nav"
-        android:padding="1dp"
-        android:src="@drawable/nav_options3"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toBottomOf="@+id/textView29" />
-
-    <Button
-        android:id="@+id/setup_button_next"
-        style="@style/Widget.AppCompat.Button.Borderless"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_marginEnd="16dp"
-        android:layout_marginBottom="16dp"
-        android:text="@string/setup_button_next"
-        app:layout_constraintBottom_toBottomOf="parent"
-        app:layout_constraintEnd_toEndOf="parent" />
-
-</androidx.constraintlayout.widget.ConstraintLayout>

+ 22 - 40
app/src/main/res/layout/home_setup_fragment.xml

@@ -9,59 +9,41 @@
 
     <!-- TODO: Update blank fragment layout -->
 
-    <TextView
-        android:id="@+id/textView15"
+    <Button
+        android:id="@+id/setup_choose_button"
+        style="@style/Widget.AppCompat.Button.Borderless"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
+        android:layout_marginBottom="16dp"
+        android:text="@string/setup_choose_apps"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintEnd_toEndOf="parent" />
+
+    <ImageView
+        android:id="@+id/imageView"
+        android:layout_width="300dp"
+        android:layout_height="300dp"
         android:layout_marginStart="8dp"
-        android:layout_marginTop="32dp"
+        android:layout_marginTop="64dp"
         android:layout_marginEnd="8dp"
-        android:text="@string/setup_your_home_screen"
-        android:textAppearance="@style/TextAppearance.AppCompat.Headline"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toTopOf="parent" />
+        app:layout_constraintTop_toTopOf="parent"
+        app:srcCompat="@drawable/ic_my_phone" />
 
     <TextView
-        android:id="@+id/textView16"
+        android:id="@+id/textView11"
         android:layout_width="0dp"
         android:layout_height="wrap_content"
-        android:layout_marginStart="16dp"
+        android:layout_marginStart="8dp"
+        android:layout_marginLeft="8dp"
+        android:layout_marginTop="256dp"
         android:layout_marginEnd="8dp"
-        android:gravity="end"
-        android:text="@string/setup_screen_description"
+        android:layout_marginRight="8dp"
+        android:text="This is what your home screen will look like...\nbut neater!"
         android:textSize="18sp"
-        app:layout_constraintBottom_toBottomOf="@+id/imageView"
-        app:layout_constraintEnd_toStartOf="@+id/imageView"
+        app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintTop_toTopOf="@+id/imageView" />
 
-    <ImageView
-        android:id="@+id/imageView"
-        android:layout_width="120dp"
-        android:layout_height="211dp"
-        android:layout_marginTop="8dp"
-        android:layout_marginEnd="32dp"
-        android:layout_marginBottom="8dp"
-        android:background="?attr/colorPrimaryDark"
-        android:contentDescription="@string/setup_home_screenshot"
-        android:padding="1dp"
-        android:scaleType="centerInside"
-        android:src="@drawable/screenshot"
-        app:layout_constraintBottom_toBottomOf="parent"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintTop_toBottomOf="@+id/textView15"
-        app:layout_constraintVertical_bias="0.16000003" />
-
-    <Button
-        android:id="@+id/setup_choose_button"
-        style="@style/Widget.AppCompat.Button.Borderless"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_marginEnd="16dp"
-        android:layout_marginBottom="16dp"
-        android:text="@string/setup_choose_apps"
-        app:layout_constraintBottom_toBottomOf="parent"
-        app:layout_constraintEnd_toEndOf="parent" />
-
 </androidx.constraintlayout.widget.ConstraintLayout>

+ 38 - 13
app/src/main/res/layout/main_content.xml

@@ -5,27 +5,44 @@
     android:id="@+id/main_content"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
+    android:background="?android:colorBackground"
     tools:showIn="@layout/main_fragment">
 
     <TextView
         android:id="@+id/clockTextView"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:layout_marginTop="32dp"
         android:text="@string/main_placeholder_clock"
-        android:textSize="64sp"
+        android:layout_marginTop="@dimen/_64sdp"
+        android:textSize="@dimen/_40ssp"
+        app:layout_constraintBottom_toTopOf="@+id/dateTextView"
         app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintHorizontal_bias="0.5"
         app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toTopOf="parent" />
+        app:layout_constraintTop_toTopOf="parent"
+        app:layout_constraintVertical_chainStyle="spread" />
+
+    <TextView
+        android:id="@+id/clockAmPm"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="16dp"
+        android:textSize="@dimen/_13sdp"
+        app:layout_constraintStart_toEndOf="@+id/clockTextView"
+        app:layout_constraintTop_toTopOf="@+id/clockTextView" />
 
     <TextView
         android:id="@+id/dateTextView"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:text="@string/main_placeholder_date"
+        android:textSize="@dimen/_12sdp"
+        app:layout_constraintBottom_toTopOf="@+id/guideline"
         app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintHorizontal_bias="0.5"
         app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toBottomOf="@+id/clockTextView" />
+        app:layout_constraintTop_toBottomOf="@+id/clockTextView"
+        app:layout_constraintVertical_bias="1.0" />
 
     <androidx.recyclerview.widget.RecyclerView
         android:id="@+id/mainAppsList"
@@ -33,21 +50,29 @@
         android:layout_height="wrap_content"
         android:layout_marginStart="16dp"
         android:layout_marginEnd="16dp"
+        android:layout_marginRight="16dp"
         app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
-        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintBottom_toTopOf="@+id/guideline2"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toTopOf="parent"
-        app:layout_constraintVertical_bias="0.6"
+        app:layout_constraintTop_toTopOf="@+id/guideline"
+        app:layout_constraintVertical_bias="0.5"
+        tools:itemCount="5"
         tools:listitem="@layout/main_list_item" />
 
-    <TextView
-        android:id="@+id/clockAmPm"
+    <androidx.constraintlayout.widget.Guideline
+        android:id="@+id/guideline"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:layout_marginTop="16dp"
-        android:textSize="18sp"
-        app:layout_constraintStart_toEndOf="@+id/clockTextView"
-        app:layout_constraintTop_toTopOf="@+id/clockTextView" />
+        android:orientation="horizontal"
+        app:layout_constraintGuide_begin="@dimen/_140sdp" />
+
+    <androidx.constraintlayout.widget.Guideline
+        android:id="@+id/guideline2"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:orientation="horizontal"
+        app:layout_constraintGuide_end="@dimen/main_bottom_guide_end" />
+
 
 </androidx.constraintlayout.widget.ConstraintLayout>

+ 2 - 4
app/src/main/res/layout/main_list_item.xml

@@ -8,10 +8,8 @@
         android:id="@+id/main_label"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:layout_marginStart="8dp"
-        android:layout_marginTop="16dp"
-        android:layout_marginBottom="8dp"
-        android:textSize="42sp"
+        android:layout_margin="@dimen/_10sdp"
+        android:textSize="@dimen/_26ssp"
         app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintTop_toTopOf="parent" />

+ 58 - 22
app/src/main/res/layout/settings_fragment.xml

@@ -2,7 +2,7 @@
 <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/frameLayout"
+    android:id="@+id/settings_fragment"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     tools:context=".ui.main.settings.SettingsFragment">
@@ -12,7 +12,8 @@
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_marginStart="16dp"
-        android:layout_marginTop="8dp"
+        android:layout_marginLeft="16dp"
+        android:layout_marginTop="24dp"
         android:alpha="0.5"
         android:text="@string/settings_title"
         app:layout_constraintStart_toStartOf="parent"
@@ -30,22 +31,61 @@
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintTop_toBottomOf="@+id/textView3" />
 
+    <TextView
+        android:id="@+id/textView14"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginStart="16dp"
+        android:layout_marginLeft="16dp"
+        android:text="@string/settings_hide_status_bar"
+        android:textAppearance="@style/TextAppearance.AppCompat"
+        android:textSize="18sp"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toBottomOf="@+id/divider4" />
+
+    <TextView
+        android:id="@+id/textView16"
+        android:layout_width="0dp"
+        android:layout_height="wrap_content"
+        android:layout_marginEnd="8dp"
+        android:layout_marginRight="8dp"
+        android:text="@string/settings_status_bar_when_switched"
+        app:layout_constraintEnd_toStartOf="@+id/statusBarSwitch"
+        app:layout_constraintStart_toStartOf="@+id/textView14"
+        app:layout_constraintTop_toBottomOf="@+id/textView14" />
+
+    <Switch
+        android:id="@+id/statusBarSwitch"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="8dp"
+        android:layout_marginEnd="24dp"
+        android:layout_marginRight="24dp"
+        android:layout_marginBottom="8dp"
+        android:padding="4dp"
+        app:layout_constraintBottom_toBottomOf="@+id/textView16"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintTop_toTopOf="@+id/textView14" />
+
     <TextView
         android:id="@+id/textView2"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_marginStart="16dp"
+        android:layout_marginLeft="16dp"
+        android:layout_marginTop="16dp"
         android:text="@string/settings_text_use_24_hour_clock"
         android:textAppearance="@style/TextAppearance.AppCompat"
         android:textSize="18sp"
         app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toBottomOf="@+id/divider4" />
+        app:layout_constraintTop_toBottomOf="@+id/textView16" />
 
     <TextView
         android:id="@+id/textView4"
         android:layout_width="0dp"
         android:layout_height="wrap_content"
         android:layout_marginEnd="8dp"
+        android:layout_marginRight="8dp"
         android:text="@string/settings_text_tap_to_check_between_24_hour_or_12_hour"
         app:layout_constraintEnd_toStartOf="@+id/clockSwitch"
         app:layout_constraintStart_toStartOf="@+id/textView2"
@@ -61,7 +101,8 @@
         android:padding="4dp"
         app:layout_constraintBottom_toBottomOf="@+id/textView4"
         app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintTop_toTopOf="@+id/textView2" />
+        app:layout_constraintTop_toTopOf="@+id/textView2"
+        android:layout_marginRight="24dp" />
 
     <TextView
         android:id="@+id/textView9"
@@ -73,7 +114,8 @@
         android:textAppearance="@style/TextAppearance.AppCompat"
         android:textSize="18sp"
         app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toBottomOf="@+id/textView4" />
+        app:layout_constraintTop_toBottomOf="@+id/textView4"
+        android:layout_marginLeft="16dp" />
 
     <TextView
         android:id="@+id/textView10"
@@ -93,7 +135,8 @@
         android:padding="4dp"
         app:layout_constraintBottom_toBottomOf="@+id/textView10"
         app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintTop_toTopOf="@+id/textView9" />
+        app:layout_constraintTop_toTopOf="@+id/textView9"
+        android:layout_marginRight="24dp" />
 
     <TextView
         android:id="@+id/changeThemeText"
@@ -105,7 +148,8 @@
         android:textAppearance="@style/TextAppearance.AppCompat"
         android:textSize="18sp"
         app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toBottomOf="@+id/textView10" />
+        app:layout_constraintTop_toBottomOf="@+id/textView10"
+        android:layout_marginLeft="16dp" />
 
     <TextView
         android:id="@+id/textView7"
@@ -120,7 +164,8 @@
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_marginStart="16dp"
-        android:layout_marginTop="16dp"
+        android:layout_marginLeft="16dp"
+        android:layout_marginTop="8dp"
         android:alpha="0.5"
         android:text="@string/settings_text_home_screen_apps"
         app:layout_constraintStart_toStartOf="parent"
@@ -137,17 +182,6 @@
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintTop_toBottomOf="@+id/textView8" />
 
-    <TextView
-        android:id="@+id/textView6"
-        android:layout_width="0dp"
-        android:layout_height="wrap_content"
-        android:layout_marginTop="8dp"
-        android:layout_marginEnd="8dp"
-        android:text="@string/settings_list_item_subtext"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="@+id/textView8"
-        app:layout_constraintTop_toBottomOf="@+id/divider2" />
-
     <androidx.recyclerview.widget.RecyclerView
         android:id="@+id/settingsAppList"
         android:layout_width="0dp"
@@ -159,7 +193,7 @@
         app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toBottomOf="@+id/textView6"
+        app:layout_constraintTop_toBottomOf="@+id/divider2"
         tools:listitem="@layout/settings_list_item" />
 
     <androidx.appcompat.widget.AppCompatCheckBox
@@ -172,7 +206,8 @@
         android:textAppearance="@style/TextAppearance.AppCompat"
         android:visibility="gone"
         app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintTop_toTopOf="@+id/textView2" />
+        app:layout_constraintTop_toTopOf="@+id/textView2"
+        android:layout_marginRight="24dp" />
 
     <Button
         android:id="@+id/buttonChangeTheme"
@@ -185,6 +220,7 @@
         android:text="@string/settings_button_change_theme"
         app:layout_constraintBottom_toBottomOf="@+id/textView7"
         app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintTop_toTopOf="@+id/changeThemeText" />
+        app:layout_constraintTop_toTopOf="@+id/changeThemeText"
+        android:layout_marginRight="16dp" />
 
 </androidx.constraintlayout.widget.ConstraintLayout>

+ 2 - 1
app/src/main/res/layout/setup_fragment.xml

@@ -1,6 +1,7 @@
 <androidx.viewpager.widget.ViewPager xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/setup_view_pager"
     android:layout_width="match_parent"
-    android:layout_height="match_parent">
+    android:layout_height="match_parent"
+    android:background="?android:colorBackground">
 
 </androidx.viewpager.widget.ViewPager>

+ 53 - 55
app/src/main/res/layout/splash_fragment.xml

@@ -5,67 +5,24 @@
     android:id="@+id/splash_fragment"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
+    android:background="?android:colorBackground"
     tools:context=".ui.main.setup.SplashFragment">
 
-    <!-- TODO: Update blank fragment layout -->
-
-    <androidx.cardview.widget.CardView
-        android:id="@+id/cvIcon"
-        android:layout_width="100dp"
-        android:layout_height="100dp"
-        android:layout_marginStart="32dp"
-        android:layout_marginTop="64dp"
-        android:layout_marginEnd="32dp"
-        app:cardBackgroundColor="@android:color/black"
-        app:cardCornerRadius="50dp"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toTopOf="parent">
-
-        <androidx.constraintlayout.widget.ConstraintLayout
-            android:layout_width="match_parent"
-            android:layout_height="match_parent">
-
-            <ImageView
-                android:id="@+id/imageView3"
-                android:layout_width="85dp"
-                android:layout_height="50dp"
-                android:contentDescription="@string/app_name"
-                android:scaleType="centerCrop"
-                android:src="@mipmap/ic_launcher"
-                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.cardview.widget.CardView>
-
-    <TextView
-        android:id="@+id/welcome_title"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
+    <ImageView
+        android:id="@+id/imageView3"
+        android:layout_width="@dimen/_60sdp"
+        android:layout_height="@dimen/_60sdp"
         android:layout_marginStart="8dp"
-        android:layout_marginTop="64dp"
+        android:layout_marginLeft="8dp"
+        android:layout_marginTop="@dimen/_50sdp"
         android:layout_marginEnd="8dp"
-        android:text="@string/setup_text_welcome"
-        android:textSize="36sp"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toBottomOf="@+id/cvIcon" />
-
-    <TextView
-        android:id="@+id/welcome_text"
-        android:layout_width="0dp"
-        android:layout_height="wrap_content"
-        android:layout_marginStart="32dp"
-        android:layout_marginTop="8dp"
-        android:layout_marginEnd="32dp"
-        android:gravity="center"
-        android:text="@string/setup_text_lets_get_you_set_up"
-        android:textSize="18sp"
+        android:layout_marginRight="8dp"
+        android:contentDescription="@string/app_name"
+        android:scaleType="fitCenter"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toBottomOf="@+id/welcome_title" />
+        app:layout_constraintTop_toTopOf="parent"
+        app:srcCompat="@mipmap/ic_launcher" />
 
     <Button
         android:id="@+id/setup_splash_button_start"
@@ -73,8 +30,49 @@
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_marginEnd="16dp"
+        android:layout_marginRight="16dp"
         android:layout_marginBottom="16dp"
         android:text="@string/setup_button_start"
         app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintEnd_toEndOf="parent" />
+
+    <TextView
+        android:id="@+id/textView13"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginStart="8dp"
+        android:layout_marginLeft="8dp"
+        android:layout_marginTop="@dimen/_16sdp"
+        android:layout_marginEnd="8dp"
+        android:layout_marginRight="8dp"
+        android:text="@string/setup_welcome"
+        android:textSize="@dimen/_24sdp"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toBottomOf="@+id/imageView3" />
+
+    <TextView
+        android:id="@+id/textView15"
+        android:layout_width="@dimen/_140sdp"
+        android:layout_height="wrap_content"
+        android:layout_marginStart="@dimen/_110sdp"
+        android:layout_marginLeft="@dimen/_110sdp"
+        android:layout_marginTop="@dimen/_94sdp"
+        android:text="@string/setup_welcome2"
+        android:textSize="@dimen/_14sdp"
+        app:layout_constraintStart_toStartOf="@+id/imageView6"
+        app:layout_constraintTop_toTopOf="@+id/imageView6" />
+
+    <ImageView
+        android:id="@+id/imageView6"
+        android:layout_width="@dimen/_160sdp"
+        android:layout_height="@dimen/_134sdp"
+        android:layout_marginStart="@dimen/_4sdp"
+        android:layout_marginLeft="@dimen/_4sdp"
+        android:layout_marginTop="@dimen/_16sdp"
+        android:contentDescription="@string/content_description_my_phone"
+        android:scaleType="centerCrop"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toBottomOf="@+id/textView13"
+        app:srcCompat="@drawable/ic_my_phone" />
 </androidx.constraintlayout.widget.ConstraintLayout>

+ 12 - 10
app/src/main/res/layout/theme_setup_fragment.xml

@@ -7,7 +7,6 @@
     android:layout_height="match_parent"
     tools:context=".ui.main.setup.ThemeSetupFragment">
 
-    <!-- TODO: Update blank fragment layout -->
     <TextView
         android:id="@+id/textView18"
         android:layout_width="wrap_content"
@@ -27,13 +26,14 @@
         android:layout_marginTop="32dp"
         android:clickable="true"
         android:focusable="true"
-        android:src="@drawable/ic_text_fields"
+        app:srcCompat="@drawable/ic_text_fields"
         app:backgroundTint="@color/colorWhite"
         app:fabSize="normal"
         app:layout_constraintEnd_toStartOf="@+id/setup_fab_dark"
         app:layout_constraintHorizontal_bias="0.5"
         app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toBottomOf="@+id/textView18" />
+        app:layout_constraintTop_toBottomOf="@+id/textView18"
+        android:layout_marginLeft="8dp" />
 
     <com.google.android.material.floatingactionbutton.FloatingActionButton
         android:id="@+id/setup_fab_dark"
@@ -41,7 +41,7 @@
         android:layout_height="wrap_content"
         android:clickable="true"
         android:focusable="true"
-        android:src="@drawable/ic_text_fields"
+        app:srcCompat="@drawable/ic_text_fields"
         android:tint="@color/inverseTextColor"
         app:backgroundTint="@color/primaryDarkColor"
         app:fabSize="normal"
@@ -57,14 +57,15 @@
         android:layout_marginEnd="8dp"
         android:clickable="true"
         android:focusable="true"
-        android:src="@drawable/ic_text_fields"
+        app:srcCompat="@drawable/ic_text_fields"
         android:tint="@color/inverseTextColor"
         app:backgroundTint="@color/colorBlueGrey"
         app:fabSize="normal"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintHorizontal_bias="0.5"
         app:layout_constraintStart_toEndOf="@+id/setup_fab_dark"
-        app:layout_constraintTop_toTopOf="@+id/setup_fab_dark" />
+        app:layout_constraintTop_toTopOf="@+id/setup_fab_dark"
+        android:layout_marginRight="8dp" />
 
     <com.google.android.material.floatingactionbutton.FloatingActionButton
         android:id="@+id/setup_fab_teal"
@@ -73,7 +74,7 @@
         android:layout_marginTop="32dp"
         android:clickable="true"
         android:focusable="true"
-        android:src="@drawable/ic_text_fields"
+        app:srcCompat="@drawable/ic_text_fields"
         app:backgroundTint="@color/colorTeal"
         app:fabSize="normal"
         app:layout_constraintEnd_toStartOf="@+id/setup_fab_candy"
@@ -87,7 +88,7 @@
         android:layout_height="wrap_content"
         android:clickable="true"
         android:focusable="true"
-        android:src="@drawable/ic_text_fields"
+        app:srcCompat="@drawable/ic_text_fields"
         android:tint="@color/inverseTextColor"
         app:backgroundTint="@color/colorCandy"
         app:fabSize="normal"
@@ -102,7 +103,7 @@
         android:layout_height="wrap_content"
         android:clickable="true"
         android:focusable="true"
-        android:src="@drawable/ic_text_fields"
+        app:srcCompat="@drawable/ic_text_fields"
         app:backgroundTint="@color/colorPink"
         app:fabSize="normal"
         app:layout_constraintEnd_toEndOf="parent"
@@ -175,6 +176,7 @@
         android:layout_marginBottom="16dp"
         android:text="@string/setup_button_finish"
         app:layout_constraintBottom_toBottomOf="parent"
-        app:layout_constraintEnd_toEndOf="parent" />
+        app:layout_constraintEnd_toEndOf="parent"
+        android:layout_marginRight="16dp" />
 
 </androidx.constraintlayout.widget.ConstraintLayout>

+ 2 - 0
app/src/main/res/values-sw600dp/dimens.xml

@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources></resources>

+ 4 - 0
app/src/main/res/values/attrs.xml

@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <attr name="customColor" format="reference"/>
+</resources>

+ 17 - 0
app/src/main/res/values/dimens.xml

@@ -1,4 +1,21 @@
 <?xml version="1.0" encoding="utf-8"?>
 <resources>
+    <!--<dimen name="splash_ic_box_size">30dp</dimen>-->
+    <!--<dimen name="splash_ic_box_marginTop">32dp</dimen>-->
 
+    <!--<dimen name="splash_welcome_margin">32dp</dimen>-->
+
+    <!--<dimen name="splash_welcome_font_size">24sp</dimen>-->
+    <!--<dimen name="splash_welcome_text_font_size">16sp</dimen>-->
+    <!--<dimen name="splash_welcome_text_width">164dp</dimen>-->
+    <!--<dimen name="splash_welcome_text_marginTop">90dp</dimen>-->
+    <!--<dimen name="splash_welcome_text_marginLeft">110dp</dimen>-->
+
+    <!--<dimen name="splash_phone_width">160dp</dimen>-->
+    <!--<dimen name="splash_phone_height">113dp</dimen>-->
+    <!--<dimen name="splash_phone_marginLeft">8dp</dimen>-->
+
+    <!--<dimen name="main_clock_marginTop">16dp</dimen>-->
+    <!--<dimen name="main_top_guide_begin">150dp</dimen>-->
+    <dimen name="main_bottom_guide_end">56dp</dimen>
 </resources>

+ 14 - 3
app/src/main/res/values/strings.xml

@@ -15,11 +15,15 @@
     <string name="prefs_settings">settings</string>
     <string name="prefs_settings_key_theme">key_theme</string>
     <string name="prefs_settings_key_clock_type">clock_type</string>
+    <string name="prefs_settings_key_hide_status_bar">hide_status_bar</string>
     <string name="prefs_settings_key_app_dialer">app_dialer</string>
     <string name="prefs_settings_key_fresh_install_setup">key_fresh_install_setup</string>
 
     <!--main package strings-->
 
+    <string name="setup_welcome">Welcome!</string>
+    <string name="setup_welcome2">This is what your home screen will look like. But better! Let\'s get you setup.</string>
+
     <string name="main_slim_options">Slim options</string>
     <string name="main_options_change_theme">Change theme</string>
     <string name="main_options_home_screen_apps">Preferences</string>
@@ -38,6 +42,10 @@
     <string name="settings_text_tap_to_change_app_theme">Choose from a variety of themes</string>
     <string name="settings_text_home_screen_apps">Home screen apps</string>
     <string name="settings_title">Preferences</string>
+    <string name="settings_use_slim_s_built_in_dialer">Use Slim\'s built-in dialer</string>
+    <string name="settings_faster_shortcut_to_your_calls">Faster shortcut to your calls</string>
+    <string name="settings_status_bar_when_switched">When switched on, you can still drag down from the top to reveal it</string>
+    <string name="settings_hide_status_bar">Hide status bar</string>
 
     <string name="settings_list_item_button_set_app">Set app</string>
     <string name="settings_list_item_text">Slot empty</string>
@@ -51,7 +59,7 @@
     <string name="main_call_icon">call icon</string>
     <string name="main_photo_camera_icon">photo camera icon</string>
     <string name="setup_button_start">start</string>
-    <string name="setup_text_welcome">Welcome!</string>
+
     <string name="setup_text_lets_get_you_set_up">
     "Lets get you set up!\n Just a few tweaks and your new home screen will be ready for you."
     </string>
@@ -91,7 +99,10 @@
     <string name="setup_home_screenshot">Screenshot</string>
     <string name="setup_clock_type_text_description">This is also changeable in preferences. Whether you prefer a 12hr clock type or a 24hr clock type</string>
     <string name="setup_clock_type">Clock Type</string>
-    <string name="settings_use_slim_s_built_in_dialer">Use Slim\'s built-in dialer</string>
-    <string name="settings_faster_shortcut_to_your_calls">Faster shortcut to your calls</string>
+
+
+    <!-- Content Description For Image Resources-->
+    <string name="content_description_my_phone">My phone</string>
+
 
 </resources>

+ 0 - 7
app/src/main/res/values/styles.xml

@@ -4,11 +4,9 @@
     <style name="AppTheme" parent="@style/Theme.AppCompat.Light.NoActionBar">
         <item name="colorAccent">@color/colorAccent</item>
         <item name="android:colorForeground">@android:color/black</item>
-        <!--<item name="android:statusBarColor">@color/colorWhiteDark</item>-->
         <item name="colorPrimary">@color/colorWhite</item>
         <item name="colorPrimaryDark">@color/colorWhiteDark</item>
         <item name="android:colorBackground">@color/colorWhite</item>
-        <item name="android:statusBarColor">?android:attr/colorPrimaryDark</item>
     </style>
 
     <style name="AppDarkTheme" parent="@style/Theme.AppCompat.NoActionBar">
@@ -16,16 +14,13 @@
         <item name="colorPrimary">@color/primaryDarkColor</item>
         <item name="colorPrimaryDark">@color/primaryColor</item>
         <item name="android:colorBackground">@color/primaryDarkColor</item>
-        <!--<item name="android:statusBarColor">?android:attr/colorPrimaryDark</item>-->
         <item name="android:colorForeground">@color/inverseTextColor</item>
-        <item name="android:statusBarColor">?android:attr/colorPrimary</item>
     </style>
 
     <style name="AppGreyTheme" parent="@style/AppDarkTheme">
         <item name="colorPrimary">@color/colorBlueGrey</item>
         <item name="colorPrimaryDark">@color/colorBlueGreyDark</item>
         <item name="android:colorBackground">@color/colorBlueGrey</item>
-        <!--<item name="android:statusBarColor">?attr/colorPrimaryDark</item>-->
         <item name="cardBackgroundColor">@color/colorBlueGreyDark</item>
         <item name="colorAccent">@color/inverseAccentColor</item>
     </style>
@@ -34,8 +29,6 @@
         <item name="colorPrimary">@color/colorCandy</item>
         <item name="colorPrimaryDark">@color/colorCandyDark</item>
         <item name="android:colorBackground">@color/colorCandy</item>
-        <item name="android:statusBarColor">?android:attr/colorPrimary</item>
-        <!--<item name="android:statusBarColor">@color/colorCandyDark</item>-->
     </style>
 
     <style name="AppPinkTheme" parent="AppTheme">

BIN
docs/assets/google-play-badge.png


BIN
docs/assets/ic_launcher-web.png


Bu fark içinde çok fazla dosya değişikliği olduğu için bazı dosyalar gösterilmiyor