Selaa lähdekoodia

New version, with draggable options menu as modal bottom sheet

sduduzog 7 vuotta sitten
vanhempi
sitoutus
f6c80fed4a
29 muutettua tiedostoa jossa 343 lisäystä ja 455 poistoa
  1. 26 10
      README.md
  2. 2 5
      app/build.gradle
  3. 0 22
      app/src/androidTest/java/com/sduduzog/slimlauncher/ExampleInstrumentedTest.kt
  4. 22 31
      app/src/main/java/com/sduduzog/slimlauncher/MainActivity.kt
  5. 1 1
      app/src/main/java/com/sduduzog/slimlauncher/data/AppRoomDatabase.java
  6. 1 0
      app/src/main/java/com/sduduzog/slimlauncher/ui/apps/SettingsFragment.kt
  7. 15 0
      app/src/main/java/com/sduduzog/slimlauncher/ui/apps/WhyQuestionDialog.kt
  8. 49 50
      app/src/main/java/com/sduduzog/slimlauncher/ui/main/MainFragment.kt
  9. 13 16
      app/src/main/java/com/sduduzog/slimlauncher/ui/main/ThemeChooserDialog.kt
  10. 9 0
      app/src/main/res/drawable-v21/ic_expand.xml
  11. 0 34
      app/src/main/res/drawable-v24/ic_launcher_foreground.xml
  12. 0 9
      app/src/main/res/drawable/ic_baseline_more_vert_24px.xml
  13. 0 170
      app/src/main/res/drawable/ic_launcher_background.xml
  14. 0 9
      app/src/main/res/drawable/ic_more.xml
  15. 60 0
      app/src/main/res/layout-large/main_content.xml
  16. 1 1
      app/src/main/res/layout/apps_list_item.xml
  17. 9 6
      app/src/main/res/layout/fragment_about.xml
  18. 3 3
      app/src/main/res/layout/main_activity.xml
  19. 24 21
      app/src/main/res/layout/main_bottom_sheet.xml
  20. 1 0
      app/src/main/res/layout/main_content.xml
  21. 1 2
      app/src/main/res/layout/settings_apps_list_item.xml
  22. 23 9
      app/src/main/res/layout/settings_fragment.xml
  23. 19 17
      app/src/main/res/values-v21/styles.xml
  24. 10 5
      app/src/main/res/values/colors.xml
  25. 0 1
      app/src/main/res/values/dimens.xml
  26. 37 2
      app/src/main/res/values/strings.xml
  27. 16 14
      app/src/main/res/values/styles.xml
  28. 0 16
      app/src/test/java/com/sduduzog/slimlauncher/ExampleUnitTest.kt
  29. 1 1
      build.gradle

+ 26 - 10
README.md

@@ -1,20 +1,36 @@
 # Slim Launcher
+
+## All you need is less
+
+### Short Description
+
+### Long Description
+
+- <h2>How to use the app</h2>
+
 Android minimalistic launcher
 
-The project got inspired by LessPhone [LessPhone](https://play.google.com/store/apps/details?id=me.aswinmohan.nophone) by Aswin Mohan so... I made [this!](https://play.google.com/apps/testing/com.sduduzog.slimlauncher)
+[Get it here](https://play.google.com/apps//details?id=com.sduduzog.slimlauncher)
+
+or get the latest unreleased [beta version](https://play.google.com/apps/testing/com.sduduzog.slimlauncher)
+
+The project got inspired by LessPhone [LessPhone](https://play.google.com/store/apps/details?id=me.aswinmohan.nophone) by Aswin Mohan
 
 I liked it so much but I couldn't do with just 3 apps as daily apps so tah-daaa Slim launcher, everyone!
 
 ### TODO (cool features that couls make this thing more of a tool)
-* calculator app
-* quick voice recorder
-* personal diary
-* notes app
-* todo list
-* tic-tac-toe game
+
+- quick voice recorder
+- personal diary
+- notes app
+- todo list
+- tic-tac-toe game
 
 # Contribute
-* PRs are more than welcome
+
+- PRs are more than welcome.
+
 ## Become a tester
-* Help me make this thing cool, ABSOLUTELY FREE [here](https://play.google.com/apps/testing/com.sduduzog.slimlauncher)
-* After installing, set it as your default and post me your feedback on the play store
+
+- Help me make this thing cool, ABSOLUTELY FREE [here](https://play.google.com/apps/testing/com.sduduzog.slimlauncher)
+- After installing, remember to post me your feedback on the play store

+ 2 - 5
app/build.gradle

@@ -10,8 +10,8 @@ android {
         applicationId "com.sduduzog.slimlauncher"
         minSdkVersion 15
         targetSdkVersion 28
-        versionCode 5
-        versionName "1.0.0"
+        versionCode 6
+        versionName "1.1.0"
         testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
         versionNameSuffix '-beta'
         vectorDrawables.useSupportLibrary = true
@@ -35,9 +35,6 @@ dependencies {
     implementation 'com.android.support:appcompat-v7:28.0.0'
     implementation 'com.android.support.constraint:constraint-layout:1.1.3'
     implementation 'android.arch.lifecycle:extensions:1.1.1'
-    testImplementation 'junit:junit:4.12'
-    androidTestImplementation 'com.android.support.test:runner:1.0.2'
-    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
     implementation 'com.android.support:recyclerview-v7:28.0.0'
     implementation 'android.arch.navigation:navigation-fragment:1.0.0-alpha06'
     implementation 'android.arch.persistence.room:runtime:1.1.1'

+ 0 - 22
app/src/androidTest/java/com/sduduzog/slimlauncher/ExampleInstrumentedTest.kt

@@ -1,22 +0,0 @@
-package com.sduduzog.slimlauncher
-
-import android.support.test.InstrumentationRegistry
-import android.support.test.runner.AndroidJUnit4
-import org.junit.Assert.assertEquals
-import org.junit.Test
-import org.junit.runner.RunWith
-
-/**
- * Instrumented test, which will execute on an Android device.
- *
- * See [testing documentation](http://d.android.com/tools/testing).
- */
-@RunWith(AndroidJUnit4::class)
-class ExampleInstrumentedTest {
-    @Test
-    fun useAppContext() {
-        // Context of the app under test.
-        val appContext = InstrumentationRegistry.getTargetContext()
-        assertEquals("com.sduduzog.slimlauncher", appContext.packageName)
-    }
-}

+ 22 - 31
app/src/main/java/com/sduduzog/slimlauncher/MainActivity.kt

@@ -15,14 +15,12 @@ class MainActivity : AppCompatActivity(), SharedPreferences.OnSharedPreferenceCh
     private lateinit var settings: SharedPreferences
     private val label = "main_fragment"
     private lateinit var currentLabel: String
-    var fragmentBackPressed: IOnBackPressed? = null
     private lateinit var viewModel: MainViewModel
-    private val TAG: String = "MainActivity"
 
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
         setContentView(R.layout.main_activity)
-        settings = getSharedPreferences("settings", MODE_PRIVATE)
+        settings = getSharedPreferences(getString(R.string.prefs_settings), MODE_PRIVATE)
         settings.registerOnSharedPreferenceChangeListener(this)
         val navigator = findNavController(this, R.id.nav_host_fragment)
         navigator.addOnNavigatedListener(this)
@@ -40,35 +38,13 @@ class MainActivity : AppCompatActivity(), SharedPreferences.OnSharedPreferenceCh
 
     override fun getTheme(): Resources.Theme {
         val theme = super.getTheme()
-        settings = getSharedPreferences("settings", MODE_PRIVATE)
-
-        val active = settings.getInt("theme", 0)
-        when (active) {
-            0 -> {
-                theme.applyStyle(R.style.AppTheme, true)
-            }
-            1 -> {
-                theme.applyStyle(R.style.AppDarkTheme, true)
-            }
-            2 -> {
-                theme.applyStyle(R.style.AppGreyTheme, true)
-            }
-            3 -> {
-                theme.applyStyle(R.style.AppTealTheme, true)
-            }
-            4 -> {
-                theme.applyStyle(R.style.AppPinkTheme, true)
-            }
-        }
+        settings = getSharedPreferences(getString(R.string.prefs_settings), MODE_PRIVATE)
+        val active = settings.getInt(getString(R.string.prefs_settings_key_theme), 0)
+        theme.applyStyle(resolveTheme(active), true)
         return theme
     }
 
     override fun onBackPressed() {
-        if (fragmentBackPressed != null) {
-            if (fragmentBackPressed?.onBackPressed() as Boolean) {
-                return
-            }
-        }
         if (currentLabel != label)
             super.onBackPressed()
     }
@@ -77,8 +53,23 @@ class MainActivity : AppCompatActivity(), SharedPreferences.OnSharedPreferenceCh
         currentLabel = destination.label.toString()
     }
 
-    interface IOnBackPressed {
-        fun onBackPressed(): Boolean
+    companion object {
+        fun resolveTheme(i: Int): Int {
+            when (i) {
+                1 -> {
+                    return R.style.AppDarkTheme
+                }
+                2 -> {
+                    return R.style.AppGreyTheme
+                }
+                3 -> {
+                    return R.style.AppTealTheme
+                }
+                4 -> {
+                    return R.style.AppPinkTheme
+                }
+            }
+            return R.style.AppTheme
+        }
     }
-
 }

+ 1 - 1
app/src/main/java/com/sduduzog/slimlauncher/data/AppRoomDatabase.java

@@ -9,7 +9,7 @@ import android.content.Context;
 public abstract class AppRoomDatabase extends RoomDatabase {
     private static volatile AppRoomDatabase INSTANCE;
 
-    static AppRoomDatabase getDatabase(final Context context) {
+    public static AppRoomDatabase getDatabase(final Context context) {
         if (INSTANCE == null) {
             synchronized (AppRoomDatabase.class) {
                 if (INSTANCE == null) {

+ 1 - 0
app/src/main/java/com/sduduzog/slimlauncher/ui/apps/SettingsFragment.kt

@@ -46,6 +46,7 @@ class SettingsFragment : Fragment() {
         settingsAppList.layoutManager = LinearLayoutManager(activity)
 
         addButton.setOnClickListener(Navigation.createNavigateOnClickListener(R.id.action_openAppsFragment))
+
     }
 
     inner class InteractionHandler : OnListFragmentInteractionListener {

+ 15 - 0
app/src/main/java/com/sduduzog/slimlauncher/ui/apps/WhyQuestionDialog.kt

@@ -0,0 +1,15 @@
+package com.sduduzog.slimlauncher.ui.apps
+
+import android.app.Dialog
+import android.os.Bundle
+import android.support.v4.app.DialogFragment
+import android.support.v7.app.AlertDialog
+
+class WhyQuestionDialog : DialogFragment(){
+    override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
+        val builder = AlertDialog.Builder(context!!)
+        builder.setTitle("Why?")
+        builder.setMessage("That's the point exactly!, this app is supposed to help you use less of your phone.")
+        return builder.create()
+    }
+}

+ 49 - 50
app/src/main/java/com/sduduzog/slimlauncher/ui/main/MainFragment.kt

@@ -9,7 +9,8 @@ import android.os.Build
 import android.os.Bundle
 import android.support.constraint.ConstraintLayout
 import android.support.design.widget.BottomSheetBehavior
-import android.support.design.widget.BottomSheetBehavior.*
+import android.support.design.widget.BottomSheetBehavior.STATE_COLLAPSED
+import android.support.design.widget.BottomSheetBehavior.STATE_HALF_EXPANDED
 import android.support.v4.app.Fragment
 import android.util.Log
 import android.view.LayoutInflater
@@ -36,7 +37,8 @@ class MainFragment : Fragment() {
     private lateinit var sheetBehavior: BottomSheetBehavior<ConstraintLayout>
     private lateinit var themeChooser: ThemeChooserDialog
 
-    private val TAG: String = "MainFragment"
+    @Suppress("PropertyName")
+    val TAG: String = "MainFragment"
 
     override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
                               savedInstanceState: Bundle?): View {
@@ -45,62 +47,19 @@ class MainFragment : Fragment() {
 
     override fun onActivityCreated(savedInstanceState: Bundle?) {
         super.onActivityCreated(savedInstanceState)
-        viewModel = ViewModelProviders.of(this).get(MainViewModel::class.java)
+        sheetBehavior = BottomSheetBehavior.from(bottomSheet)
+        bottomSheet.alpha = 0.0f
+        viewModel = ViewModelProviders.of(activity!!).get(MainViewModel::class.java)
         adapter = MainAppsAdapter(mutableSetOf(), InteractionHandler())
-        themeChooser = ThemeChooserDialog(context!!)
+        themeChooser = ThemeChooserDialog.getThemeChooser()
         mainAppsList.adapter = adapter
         viewModel.homeApps.observe(this, Observer {
             if (it != null) {
                 adapter.setApps(it)
             }
         })
-        clockTextView.setOnClickListener {
-            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
-                try {
-                    val intent = Intent(android.provider.AlarmClock.ACTION_SHOW_ALARMS)
-                    intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
-                    startActivity(intent)
-                } catch (e: Exception) {
-                    Log.e(TAG, e.message)
-                }
-            }
-        }
-        bottomSheet.alpha = 0.0f
-        sheetBehavior = BottomSheetBehavior.from(bottomSheet)
-
-        sheetBehavior.setBottomSheetCallback(object : BottomSheetBehavior.BottomSheetCallback() {
-            override fun onSlide(p0: View, p1: Float) {
-
-            }
-
-            override fun onStateChanged(bottomSheet: View, newState: Int) {
-                ivExpand.visibility = View.INVISIBLE
-                when (newState) {
-                    STATE_COLLAPSED -> {
-                        bottomSheet.animate().alpha(0.0f).duration = 100
-                        ivExpand.visibility = View.VISIBLE
-                    }
-                    STATE_EXPANDED -> {
-                        bottomSheet.animate().alpha(1.0f).duration = 50
-                    }
-                    STATE_DRAGGING -> {
-                        bottomSheet.alpha = 1.0f
-                    }
-                }
-            }
-        })
-        bottomSheet.setOnClickListener { }
-        changeThemeText.setOnClickListener { changeTheme() }
-        settingsText.setOnClickListener(Navigation.createNavigateOnClickListener(R.id.action_openSettingsFragment))
-        deviceSettingsText.setOnClickListener { openSettings() }
-        rateAppText.setOnClickListener { rateApp() }
-        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
-            changeLauncherText.setOnClickListener {
-                startActivity(Intent(android.provider.Settings.ACTION_HOME_SETTINGS))
-            }
-        } else changeLauncherText.visibility = View.INVISIBLE
-        aboutText.setOnClickListener(Navigation.createNavigateOnClickListener(R.id.action_openAboutFragment))
         updateUi()
+        setEventListeners()
     }
 
     override fun onStart() {
@@ -186,4 +145,44 @@ class MainFragment : Fragment() {
     private fun changeTheme() {
         themeChooser.show(fragmentManager, TAG)
     }
+
+    private fun setEventListeners(){
+        clockTextView.setOnClickListener {
+            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
+                try {
+                    val intent = Intent(android.provider.AlarmClock.ACTION_SHOW_ALARMS)
+                    intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
+                    startActivity(intent)
+                } catch (e: Exception) {
+                    Log.e(TAG, e.message)
+                }
+            }
+        }
+        bottomSheet.setOnClickListener {
+            if (sheetBehavior.state == STATE_COLLAPSED) sheetBehavior.state = STATE_HALF_EXPANDED
+        }
+        sheetBehavior.setBottomSheetCallback(object : BottomSheetBehavior.BottomSheetCallback() {
+            override fun onSlide(p0: View, p1: Float) {
+                val alpha = 3 * p1
+                bottomSheet.alpha = alpha
+            }
+
+            override fun onStateChanged(bottomSheet: View, newState: Int) {
+                ivExpand.visibility = View.INVISIBLE
+                if (newState == STATE_COLLAPSED) {
+                    ivExpand.visibility = View.VISIBLE
+                }
+            }
+        })
+        changeThemeText.setOnClickListener { changeTheme() }
+        settingsText.setOnClickListener(Navigation.createNavigateOnClickListener(R.id.action_openSettingsFragment))
+        deviceSettingsText.setOnClickListener { openSettings() }
+        rateAppText.setOnClickListener { rateApp() }
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
+            changeLauncherText.setOnClickListener {
+                startActivity(Intent(android.provider.Settings.ACTION_HOME_SETTINGS))
+            }
+        } else changeLauncherText.visibility = View.INVISIBLE
+        aboutText.setOnClickListener(Navigation.createNavigateOnClickListener(R.id.action_openAboutFragment))
+    }
 }

+ 13 - 16
app/src/main/java/com/sduduzog/slimlauncher/ui/main/ThemeChooserDialog.kt

@@ -1,34 +1,31 @@
 package com.sduduzog.slimlauncher.ui.main
 
-import android.annotation.SuppressLint
 import android.app.Dialog
-import android.content.Context
 import android.content.Context.MODE_PRIVATE
 import android.content.SharedPreferences
 import android.os.Bundle
 import android.support.v4.app.DialogFragment
 import android.support.v7.app.AlertDialog
-import android.util.Log
 import com.sduduzog.slimlauncher.R
 
-@SuppressLint("ValidFragment")
-class ThemeChooserDialog(private val ctx: Context) : DialogFragment() {
+class ThemeChooserDialog : DialogFragment() {
 
-    private val settings: SharedPreferences = ctx.getSharedPreferences("settings", MODE_PRIVATE)
-    private var choice: Int = 0
+    private lateinit var settings: SharedPreferences
 
     override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
-        val builder = AlertDialog.Builder(ctx)
-        builder.setTitle("Choose theme")
-
-
-        val active = settings.getInt("theme", 0)
-        builder.setSingleChoiceItems(R.array.themes_array, active) { _, i -> choice = i }.setPositiveButton("Done") { _, i -> Log.d("DIALOG", "val$i") }
+        val builder = AlertDialog.Builder(context!!)
+        settings = context!!.getSharedPreferences(getString(R.string.prefs_settings), MODE_PRIVATE)
+        val active = settings.getInt(getString(R.string.prefs_settings_key_theme), 0)
+        builder.setSingleChoiceItems(R.array.themes_array, active) { dialogInterface, i ->
+            dialogInterface.dismiss()
+            settings.edit().putInt(getString(R.string.prefs_settings_key_theme), i).apply()
+        }
         return builder.create()
     }
 
-    override fun onDestroy() {
-        super.onDestroy()
-        settings.edit().putInt("theme", choice).apply()
+    companion object {
+        fun getThemeChooser(): ThemeChooserDialog {
+            return ThemeChooserDialog()
+        }
     }
 }

+ 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="50dp"
+    android:height="50dp"
+    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>

+ 0 - 34
app/src/main/res/drawable-v24/ic_launcher_foreground.xml

@@ -1,34 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:aapt="http://schemas.android.com/aapt"
-    android:width="108dp"
-    android:height="108dp"
-    android:viewportWidth="108"
-    android:viewportHeight="108">
-    <path
-        android:fillType="evenOdd"
-        android:pathData="M32,64C32,64 38.39,52.99 44.13,50.95C51.37,48.37 70.14,49.57 70.14,49.57L108.26,87.69L108,109.01L75.97,107.97L32,64Z"
-        android:strokeWidth="1"
-        android:strokeColor="#00000000">
-        <aapt:attr name="android:fillColor">
-            <gradient
-                android:endX="78.5885"
-                android:endY="90.9159"
-                android:startX="48.7653"
-                android:startY="61.0927"
-                android:type="linear">
-                <item
-                    android:color="#44000000"
-                    android:offset="0.0" />
-                <item
-                    android:color="#00000000"
-                    android:offset="1.0" />
-            </gradient>
-        </aapt:attr>
-    </path>
-    <path
-        android:fillColor="#FFFFFF"
-        android:fillType="nonZero"
-        android:pathData="M66.94,46.02L66.94,46.02C72.44,50.07 76,56.61 76,64L32,64C32,56.61 35.56,50.11 40.98,46.06L36.18,41.19C35.45,40.45 35.45,39.3 36.18,38.56C36.91,37.81 38.05,37.81 38.78,38.56L44.25,44.05C47.18,42.57 50.48,41.71 54,41.71C57.48,41.71 60.78,42.57 63.68,44.05L69.11,38.56C69.84,37.81 70.98,37.81 71.71,38.56C72.44,39.3 72.44,40.45 71.71,41.19L66.94,46.02ZM62.94,56.92C64.08,56.92 65,56.01 65,54.88C65,53.76 64.08,52.85 62.94,52.85C61.8,52.85 60.88,53.76 60.88,54.88C60.88,56.01 61.8,56.92 62.94,56.92ZM45.06,56.92C46.2,56.92 47.13,56.01 47.13,54.88C47.13,53.76 46.2,52.85 45.06,52.85C43.92,52.85 43,53.76 43,54.88C43,56.01 43.92,56.92 45.06,56.92Z"
-        android:strokeWidth="1"
-        android:strokeColor="#00000000" />
-</vector>

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

@@ -1,9 +0,0 @@
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="24dp"
-    android:height="24dp"
-    android:viewportWidth="24"
-    android:viewportHeight="24">
-    <path
-        android:fillColor="#FF000000"
-        android:pathData="M12,8c1.1,0 2,-0.9 2,-2s-0.9,-2 -2,-2 -2,0.9 -2,2 0.9,2 2,2zM12,10c-1.1,0 -2,0.9 -2,2s0.9,2 2,2 2,-0.9 2,-2 -0.9,-2 -2,-2zM12,16c-1.1,0 -2,0.9 -2,2s0.9,2 2,2 2,-0.9 2,-2 -0.9,-2 -2,-2z" />
-</vector>

+ 0 - 170
app/src/main/res/drawable/ic_launcher_background.xml

@@ -1,170 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="108dp"
-    android:height="108dp"
-    android:viewportWidth="108"
-    android:viewportHeight="108">
-    <path
-        android:fillColor="#008577"
-        android:pathData="M0,0h108v108h-108z" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M9,0L9,108"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M19,0L19,108"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M29,0L29,108"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M39,0L39,108"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M49,0L49,108"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M59,0L59,108"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M69,0L69,108"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M79,0L79,108"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M89,0L89,108"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M99,0L99,108"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M0,9L108,9"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M0,19L108,19"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M0,29L108,29"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M0,39L108,39"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M0,49L108,49"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M0,59L108,59"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M0,69L108,69"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M0,79L108,79"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M0,89L108,89"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M0,99L108,99"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M19,29L89,29"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M19,39L89,39"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M19,49L89,49"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M19,59L89,59"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M19,69L89,69"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M19,79L89,79"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M29,19L29,89"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M39,19L39,89"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M49,19L49,89"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M59,19L59,89"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M69,19L69,89"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-    <path
-        android:fillColor="#00000000"
-        android:pathData="M79,19L79,89"
-        android:strokeWidth="0.8"
-        android:strokeColor="#33FFFFFF" />
-</vector>

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

@@ -1,9 +0,0 @@
-<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="@color/colorAccent"
-        android:pathData="M6,10c-1.1,0 -2,0.9 -2,2s0.9,2 2,2 2,-0.9 2,-2 -0.9,-2 -2,-2zM18,10c-1.1,0 -2,0.9 -2,2s0.9,2 2,2 2,-0.9 2,-2 -0.9,-2 -2,-2zM12,10c-1.1,0 -2,0.9 -2,2s0.9,2 2,2 2,-0.9 2,-2 -0.9,-2 -2,-2z" />
-</vector>

+ 60 - 0
app/src/main/res/layout-large/main_content.xml

@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="utf-8"?>
+<android.support.constraint.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/main_content"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <TextView
+        android:id="@+id/clockTextView"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="64dp"
+        android:text="@string/main_placeholder_clock"
+        android:textSize="64sp"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="parent" />
+
+    <TextView
+        android:id="@+id/dateTextView"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="@string/main_placeholder_date"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toBottomOf="@+id/clockTextView" />
+
+    <android.support.v7.widget.RecyclerView
+        android:id="@+id/mainAppsList"
+        android:layout_width="0dp"
+        android:layout_height="wrap_content"
+        android:layout_marginStart="16dp"
+        android:layout_marginLeft="16dp"
+        android:layout_marginTop="32dp"
+        android:layout_marginEnd="16dp"
+        android:layout_marginRight="16dp"
+        app:layoutManager="android.support.v7.widget.LinearLayoutManager"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toTopOf="parent"
+        tools:listitem="@layout/main_list_item" />
+
+    <ImageView
+        android:id="@+id/ivExpand"
+        android:layout_width="50dp"
+        android:layout_height="50dp"
+        android:layout_marginStart="8dp"
+        android:layout_marginLeft="8dp"
+        android:layout_marginEnd="8dp"
+        android:layout_marginRight="8dp"
+        android:padding="8dp"
+        app:layout_constraintBottom_toBottomOf="parent"
+        android:contentDescription="@string/content_description_expand_up"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
+        app:srcCompat="@drawable/ic_expand" />
+
+</android.support.constraint.ConstraintLayout>

+ 1 - 1
app/src/main/res/layout/apps_list_item.xml

@@ -8,6 +8,6 @@
         android:id="@+id/label"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:layout_margin="@dimen/text_margin"
+        android:layout_margin="8dp"
         android:textSize="24sp" />
 </LinearLayout>

+ 9 - 6
app/src/main/res/layout/fragment_about.xml

@@ -16,7 +16,7 @@
         android:layout_marginTop="32dp"
         android:layout_marginEnd="16dp"
         android:layout_marginRight="16dp"
-        android:text="Slim launcher"
+        android:text="@string/about_title"
         android:textSize="36sp"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintStart_toStartOf="parent"
@@ -25,13 +25,16 @@
 
     <TextView
         android:id="@+id/textView4"
-        android:layout_width="wrap_content"
+        android:layout_width="0dp"
         android:layout_height="wrap_content"
-        android:layout_marginStart="8dp"
-        android:layout_marginLeft="8dp"
+        android:layout_marginStart="32dp"
+        android:layout_marginLeft="32dp"
         android:layout_marginTop="8dp"
-        android:text="To be updated..."
-        app:layout_constraintStart_toStartOf="@+id/textView5"
+        android:layout_marginEnd="32dp"
+        android:layout_marginRight="32dp"
+        android:text="@string/about_text"
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintTop_toBottomOf="@+id/textView5" />
 
 </android.support.constraint.ConstraintLayout>

+ 3 - 3
app/src/main/res/layout/main_activity.xml

@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
-<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<merge xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:tools="http://schemas.android.com/tools"
-    android:id="@+id/container"
+    android:id="@+id/main_activity_container"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     tools:context=".MainActivity">
@@ -13,4 +13,4 @@
         android:layout_height="match_parent"
         app:defaultNavHost="true"
         app:navGraph="@navigation/nav_graph" />
-</FrameLayout>
+</merge>

+ 24 - 21
app/src/main/res/layout/main_bottom_sheet.xml

@@ -10,7 +10,8 @@
     app:behavior_skipCollapsed="true"
     app:layout_behavior="android.support.design.widget.BottomSheetBehavior"
     tools:context=".MainActivity"
-    tools:layout_editor_absoluteY="25dp">
+    tools:layout_editor_absoluteY="25dp"
+    tools:ignore="Overdraw">
 
     <TextView
         android:id="@+id/textView"
@@ -19,7 +20,7 @@
         android:layout_marginStart="16dp"
         android:layout_marginLeft="16dp"
         android:layout_marginTop="16dp"
-        android:text="Slim options"
+        android:text="@string/main_slim_options"
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintTop_toTopOf="parent" />
 
@@ -27,20 +28,18 @@
         android:id="@+id/changeThemeText"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:layout_marginStart="32dp"
-        android:layout_marginLeft="32dp"
-        android:layout_marginTop="24dp"
-        android:text="Change theme"
+        android:layout_marginTop="32dp"
+        android:text="@string/main_options_change_theme"
         android:textSize="24sp"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toBottomOf="@+id/textView" />
+        app:layout_constraintStart_toStartOf="@+id/deviceSettingsText"
+        app:layout_constraintTop_toBottomOf="@+id/deviceSettingsText" />
 
     <TextView
         android:id="@+id/settingsText"
         android:layout_width="wrap_content"
         android:layout_height="0dp"
         android:layout_marginTop="32dp"
-        android:text="Home screen apps"
+        android:text="@string/main_options_home_screen_apps"
         android:textSize="24sp"
         app:layout_constraintStart_toStartOf="@+id/changeThemeText"
         app:layout_constraintTop_toBottomOf="@+id/changeThemeText" />
@@ -49,31 +48,35 @@
         android:id="@+id/deviceSettingsText"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
+        android:layout_marginStart="32dp"
+        android:layout_marginLeft="32dp"
         android:layout_marginTop="32dp"
-        android:text="Open device settings"
+        android:text="@string/main_options_settings"
         android:textSize="24sp"
-        app:layout_constraintStart_toStartOf="@+id/settingsText"
-        app:layout_constraintTop_toBottomOf="@+id/settingsText" />
+        app:layout_constraintStart_toStartOf="parent"
+        app:layout_constraintTop_toBottomOf="@+id/textView" />
 
     <TextView
         android:id="@+id/aboutText"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_marginTop="32dp"
-        android:text="About Slim"
+        android:text="@string/main_options_about_slim"
         android:textSize="24sp"
-        app:layout_constraintStart_toStartOf="@+id/deviceSettingsText"
-        app:layout_constraintTop_toBottomOf="@+id/deviceSettingsText" />
+        app:layout_constraintStart_toStartOf="@+id/settingsText"
+        app:layout_constraintTop_toBottomOf="@+id/settingsText" />
 
     <TextView
         android:id="@+id/rateAppText"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:layout_marginTop="32dp"
-        android:text="Rate the app"
-        android:textSize="24sp"
-        app:layout_constraintStart_toStartOf="@+id/aboutText"
-        app:layout_constraintTop_toBottomOf="@+id/aboutText" />
+        android:layout_marginEnd="32dp"
+        android:layout_marginRight="32dp"
+        android:layout_marginBottom="24dp"
+        android:text="@string/main_options_rate_the_app"
+        android:textSize="16sp"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintEnd_toEndOf="parent" />
 
     <TextView
         android:id="@+id/changeLauncherText"
@@ -82,7 +85,7 @@
         android:layout_marginStart="32dp"
         android:layout_marginLeft="32dp"
         android:layout_marginBottom="24dp"
-        android:text="Change launcher"
+        android:text="@string/main_options_change_launcher"
         android:textSize="16sp"
         app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintStart_toStartOf="parent" />

+ 1 - 0
app/src/main/res/layout/main_content.xml

@@ -49,6 +49,7 @@
         android:layout_marginStart="8dp"
         android:layout_marginLeft="8dp"
         android:layout_marginEnd="8dp"
+        android:contentDescription="@string/content_description_expand_up"
         android:layout_marginRight="8dp"
         android:padding="8dp"
         app:layout_constraintBottom_toBottomOf="parent"

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

@@ -15,7 +15,6 @@
         android:layout_marginEnd="8dp"
         android:layout_marginRight="8dp"
         android:layout_marginBottom="8dp"
-        android:text="TextView"
         android:textSize="24sp"
         app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintEnd_toStartOf="@+id/settings_item_removeButton"
@@ -27,7 +26,7 @@
         style="@style/Widget.AppCompat.Button.Borderless"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:text="remove"
+        android:text="@string/settings_item_button_remove"
         app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintTop_toTopOf="parent" />

+ 23 - 9
app/src/main/res/layout/settings_fragment.xml

@@ -13,8 +13,8 @@
         android:id="@+id/textView3"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:layout_marginTop="16dp"
-        android:text="Home screen apps"
+        android:layout_marginTop="32dp"
+        android:text="@string/settings_title"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintTop_toTopOf="parent" />
@@ -24,12 +24,12 @@
         style="@style/Widget.AppCompat.Button.Borderless"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:layout_marginTop="8dp"
-        android:layout_marginEnd="16dp"
-        android:layout_marginRight="16dp"
-        android:text="Add"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintTop_toTopOf="parent" />
+        android:layout_marginEnd="24dp"
+        android:layout_marginRight="24dp"
+        android:layout_marginBottom="16dp"
+        android:text="@string/settings_button_add"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintEnd_toEndOf="parent" />
 
     <android.support.v7.widget.RecyclerView
         android:id="@+id/settingsAppList"
@@ -40,11 +40,25 @@
         android:layout_marginTop="32dp"
         android:layout_marginEnd="16dp"
         android:layout_marginRight="16dp"
-        android:layout_marginBottom="8dp"
+        android:layout_marginBottom="64dp"
         app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintTop_toBottomOf="@+id/textView3"
         tools:listitem="@layout/settings_apps_list_item" />
 
+    <TextView
+        android:id="@+id/whyCantText"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginStart="32dp"
+        android:layout_marginLeft="32dp"
+        android:layout_marginBottom="24dp"
+        android:padding="4dp"
+        android:text="@string/settings_option_why"
+        android:textSize="16sp"
+        android:visibility="invisible"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintStart_toStartOf="parent" />
+
 </android.support.constraint.ConstraintLayout>

+ 19 - 17
app/src/main/res/values-v21/styles.xml

@@ -7,22 +7,24 @@
         <item name="colorPrimaryDark">@color/primaryDarkColor</item>
         <item name="android:colorBackground">@color/primaryDarkColor</item>
         <item name="android:statusBarColor">?android:attr/colorPrimaryDark</item>
+        <item name="android:colorForeground">@android:color/white</item>
     </style>
 
     <style name="AppGreyTheme" parent="@style/AppDarkTheme">
-        <item name="colorPrimary">@color/primaryGrey</item>
-        <item name="colorPrimaryDark">@color/darkGrey</item>
-        <item name="android:colorBackground">@color/primaryGrey</item>
-        <item name="android:statusBarColor">?android:attr/colorPrimary</item>
+        <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>
     </style>
 
-    <style name="AppPinkTheme" parent="@style/AppTheme">
-        <item name="colorPrimary">@color/primaryPink</item>
-        <item name="colorPrimaryDark">@color/darkPink</item>
-        <item name="android:colorBackground">@color/primaryPink</item>
-        <item name="android:colorForeground">@color/primaryColor</item>
-        <item name="colorAccent">@color/primaryTeal</item>
-        <item name="android:statusBarColor">?android:attr/colorPrimary</item>
+    <style name="AppPinkTheme" parent="AppDarkTheme">
+        <item name="colorPrimary">@color/colorPink</item>
+        <item name="colorPrimaryDark">@color/colorPinkDark</item>
+        <item name="android:colorBackground">@color/colorPink</item>
+        <item name="android:colorForeground">@android:color/white</item>
+        <item name="colorAccent">@color/colorAccent</item>
+        <item name="android:statusBarColor">@color/colorPinkDark</item>
+        <item name="android:textColorPrimaryInverse">@color/primaryDarkColor</item>
     </style>
 
     <style name="AppTheme" parent="@style/Theme.AppCompat.Light.NoActionBar">
@@ -31,11 +33,11 @@
         <item name="android:statusBarColor">?android:attr/colorPrimaryDark</item>
     </style>
 
-    <style name="AppTealTheme" parent="@style/AppTheme">
-        <item name="colorPrimary">@color/darkTeal</item>
-        <item name="colorPrimaryDark">@color/darkTeal</item>
-        <item name="android:colorBackground">@color/primaryTeal</item>
-        <item name="android:colorForeground">@color/primaryColor</item>
-        <item name="android:statusBarColor">@color/primaryTeal</item>
+    <style name="AppTealTheme" parent="AppDarkTheme">
+        <item name="colorPrimary">@color/colorTeal</item>
+        <item name="colorPrimaryDark">@color/colorTealDark</item>
+        <item name="android:colorBackground">@color/colorTeal</item>
+        <item name="android:colorForeground">@android:color/white</item>
+        <item name="android:statusBarColor">@color/colorTealDark</item>
     </style>
 </resources>

+ 10 - 5
app/src/main/res/values/colors.xml

@@ -1,22 +1,27 @@
 <?xml version="1.0" encoding="utf-8"?>
 <resources>
-    <color name="colorAccent">#D81B60</color>
+    <color name="colorAccent">#795548</color>
 
     <color name="primaryColor">#212121</color>
-    <color name="primaryLightColor">#484848</color>
     <color name="primaryDarkColor">#000000</color>
 
 
     <color name="primaryGrey">#263238</color>
-    <color name="lightGrey">#4f5b62</color>
     <color name="darkGrey">#000a12</color>
 
     <color name="primaryTeal">#b2dfdb</color>
-    <color name="lightTeal">#e5ffff</color>
     <color name="darkTeal">#82ada9</color>
 
     <color name="primaryPink">#fce4ec</color>
-    <color name="lightPink">#ffffff</color>
     <color name="darkPink">#c9b2ba</color>
 
+    <color name="colorBlueGrey">#607d8b</color>
+    <color name="colorBlueGreyDark">#455a64</color>
+
+    <color name="colorPink">#F06292</color>
+    <color name="colorPinkDark">#E91E63</color>
+
+    <color name="colorTeal">#009688</color>
+    <color name="colorTealDark">#00796b</color>
+
 </resources>

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

@@ -1,4 +1,3 @@
 <?xml version="1.0" encoding="utf-8"?>
 <resources>
-    <dimen name="text_margin">16dp</dimen>
 </resources>

+ 37 - 2
app/src/main/res/values/strings.xml

@@ -11,6 +11,41 @@
         <item>Pink</item>
     </string-array>
 
-    <!-- TODO: Remove or change this placeholder text -->
-    <string name="hello_blank_fragment">Hello blank fragment</string>
+    <string name="prefs_settings">settings</string>
+    <string name="prefs_settings_key_theme">key_theme</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">Home screen apps</string>
+    <string name="main_options_settings">Settings</string>
+    <string name="main_options_about_slim">About Slim</string>
+    <string name="main_options_rate_the_app">Rate the app</string>
+    <string name="main_options_change_launcher">Change launcher</string>
+    <string name="settings_item_button_remove">remove</string>
+    <string name="settings_title">Home screen apps</string>
+    <string name="settings_button_add">Add</string>
+    <string name="settings_option_why">Why can\'t I add more?</string>
+    <string name="about_title">Slim launcher</string>
+    <string name="about_text">
+        Created by : Beautus S Gumede\n
+        Source : https://github.com/sduduzog/slim-launcher\n\n
+        3rd party credits/licences\n\n
+        Copyright 2015 MasayukiSuda\n\n
+        MIT License\n\n
+        Permission is hereby granted, free of charge, to any person obtaining a copy of this
+        software and associated documentation files (the "Software"), to deal in the Software
+        without restriction, including without limitation the rights to use, copy, modify, merge,
+        publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
+        to whom the Software is furnished to do so, subject to the following conditions:\n\n
+        The above copyright notice and this permission notice shall be included in all copies or
+        substantial portions of the Software.\n\n
+
+        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+        INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+        PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
+        FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+        OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+        DEALINGS IN THE SOFTWARE.
+    </string>
+    <string name="content_description_expand_up">Expand up icon</string>
+
 </resources>

+ 16 - 14
app/src/main/res/values/styles.xml

@@ -11,26 +11,28 @@
         <item name="colorPrimary">@color/primaryColor</item>
         <item name="colorPrimaryDark">@color/primaryDarkColor</item>
         <item name="android:colorBackground">@color/primaryDarkColor</item>
+        <item name="android:colorForeground">@android:color/white</item>
     </style>
 
     <style name="AppGreyTheme" parent="@style/AppDarkTheme">
-        <item name="colorPrimary">@color/primaryGrey</item>
-        <item name="colorPrimaryDark">@color/darkGrey</item>
-        <item name="android:colorBackground">@color/primaryGrey</item>
+        <item name="colorPrimary">@color/colorBlueGrey</item>
+        <item name="colorPrimaryDark">@color/colorBlueGreyDark</item>
+        <item name="android:colorBackground">@color/colorBlueGrey</item>
     </style>
 
-    <style name="AppTealTheme" parent="@style/AppTheme">
-        <item name="colorPrimary">@color/darkTeal</item>
-        <item name="colorPrimaryDark">@color/darkTeal</item>
-        <item name="android:colorBackground">@color/primaryTeal</item>
-        <item name="android:colorForeground">@color/primaryColor</item>
+    <style name="AppTealTheme" parent="AppDarkTheme">
+        <item name="colorPrimary">@color/colorTeal</item>
+        <item name="colorPrimaryDark">@color/colorTealDark</item>
+        <item name="android:colorBackground">@color/colorTeal</item>
+        <item name="android:colorForeground">@android:color/white</item>
     </style>
 
-    <style name="AppPinkTheme" parent="@style/AppTheme">
-        <item name="colorPrimary">@color/primaryPink</item>
-        <item name="colorPrimaryDark">@color/darkPink</item>
-        <item name="android:colorBackground">@color/primaryPink</item>
-        <item name="android:colorForeground">@color/primaryColor</item>
-        <item name="colorAccent">@color/primaryTeal</item>
+    <style name="AppPinkTheme" parent="AppDarkTheme">
+        <item name="colorPrimary">@color/colorPink</item>
+        <item name="colorPrimaryDark">@color/colorPinkDark</item>
+        <item name="android:colorBackground">@color/colorPink</item>
+        <item name="android:colorForeground">@android:color/white</item>
+        <item name="colorAccent">@color/colorAccent</item>
+        <item name="android:textColorPrimaryInverse">@color/primaryDarkColor</item>
     </style>
 </resources>

+ 0 - 16
app/src/test/java/com/sduduzog/slimlauncher/ExampleUnitTest.kt

@@ -1,16 +0,0 @@
-package com.sduduzog.slimlauncher
-
-import org.junit.Assert.assertEquals
-import org.junit.Test
-
-/**
- * Example local unit test, which will execute on the development machine (host).
- *
- * See [testing documentation](http://d.android.com/tools/testing).
- */
-class ExampleUnitTest {
-    @Test
-    fun addition_isCorrect() {
-        assertEquals(4, 2 + 2)
-    }
-}

+ 1 - 1
build.gradle

@@ -1,7 +1,7 @@
 // Top-level build file where you can add configuration options common to all sub-projects/modules.
 
 buildscript {
-    ext.kotlin_version = '1.2.61'
+    ext.kotlin_version = '1.2.71'
     repositories {
         google()
         jcenter()