diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index b9e1690..349ccb8 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -22,14 +22,49 @@
android:theme="@style/AppTheme">
+ android:name=".activities.SplashActivity"
+ android:exported="false"
+ android:theme="@style/SplashTheme" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
\ No newline at end of file
+
diff --git a/app/src/main/kotlin/com/simplemobiletools/launcher/MainActivity.kt b/app/src/main/kotlin/com/simplemobiletools/launcher/MainActivity.kt
deleted file mode 100644
index 0e61e4c..0000000
--- a/app/src/main/kotlin/com/simplemobiletools/launcher/MainActivity.kt
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.simplemobiletools.launcher
-
-import android.os.Bundle
-import androidx.appcompat.app.AppCompatActivity
-
-class MainActivity : AppCompatActivity() {
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- setContentView(R.layout.activity_main)
- }
-}
\ No newline at end of file
diff --git a/app/src/main/kotlin/com/simplemobiletools/launcher/activities/MainActivity.kt b/app/src/main/kotlin/com/simplemobiletools/launcher/activities/MainActivity.kt
new file mode 100644
index 0000000..77941df
--- /dev/null
+++ b/app/src/main/kotlin/com/simplemobiletools/launcher/activities/MainActivity.kt
@@ -0,0 +1,52 @@
+package com.simplemobiletools.launcher.activities
+
+import android.content.Intent
+import android.os.Bundle
+import com.simplemobiletools.commons.extensions.appLaunched
+import com.simplemobiletools.commons.extensions.hideKeyboard
+import com.simplemobiletools.commons.models.FAQItem
+import com.simplemobiletools.launcher.BuildConfig
+import com.simplemobiletools.launcher.R
+import kotlinx.android.synthetic.main.activity_main.*
+
+class MainActivity : SimpleActivity() {
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ setContentView(R.layout.activity_main)
+ appLaunched(BuildConfig.APPLICATION_ID)
+ setupOptionsMenu()
+ }
+
+ override fun onResume() {
+ super.onResume()
+ setupToolbar(main_toolbar)
+ }
+
+ private fun setupOptionsMenu() {
+ main_toolbar.setOnMenuItemClickListener { menuItem ->
+ when (menuItem.itemId) {
+ R.id.settings -> launchSettings()
+ R.id.about -> launchAbout()
+ else -> return@setOnMenuItemClickListener false
+ }
+ return@setOnMenuItemClickListener true
+ }
+ }
+
+ private fun launchSettings() {
+ hideKeyboard()
+ startActivity(Intent(applicationContext, SettingsActivity::class.java))
+ }
+
+ private fun launchAbout() {
+ val licenses = 0L
+ val faqItems = ArrayList()
+
+ if (!resources.getBoolean(R.bool.hide_google_relations)) {
+ faqItems.add(FAQItem(R.string.faq_2_title_commons, R.string.faq_2_text_commons))
+ faqItems.add(FAQItem(R.string.faq_6_title_commons, R.string.faq_6_text_commons))
+ }
+
+ startAboutActivity(R.string.app_name, licenses, BuildConfig.VERSION_NAME, faqItems, true)
+ }
+}
diff --git a/app/src/main/kotlin/com/simplemobiletools/launcher/activities/SettingsActivity.kt b/app/src/main/kotlin/com/simplemobiletools/launcher/activities/SettingsActivity.kt
new file mode 100644
index 0000000..8ad7464
--- /dev/null
+++ b/app/src/main/kotlin/com/simplemobiletools/launcher/activities/SettingsActivity.kt
@@ -0,0 +1,67 @@
+package com.simplemobiletools.launcher.activities
+
+import android.os.Bundle
+import com.simplemobiletools.commons.extensions.*
+import com.simplemobiletools.commons.helpers.NavigationIcon
+import com.simplemobiletools.launcher.R
+import com.simplemobiletools.launcher.extensions.config
+import kotlinx.android.synthetic.main.activity_settings.*
+import java.util.*
+
+class SettingsActivity : SimpleActivity() {
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ setContentView(R.layout.activity_settings)
+ }
+
+ override fun onResume() {
+ super.onResume()
+ setupToolbar(settings_toolbar, NavigationIcon.Arrow)
+
+ setupPurchaseThankYou()
+ setupCustomizeColors()
+ setupUseEnglish()
+ updateTextColors(settings_holder)
+
+ arrayOf(settings_color_customization_label, settings_general_settings_label).forEach {
+ it.setTextColor(getProperPrimaryColor())
+ }
+
+ arrayOf(
+ settings_color_customization_holder,
+ settings_general_settings_holder
+ ).forEach {
+ it.background.applyColorFilter(getProperBackgroundColor().getContrastColor())
+ }
+ }
+
+ private fun setupPurchaseThankYou() {
+ settings_purchase_thank_you_holder.beGoneIf(isOrWasThankYouInstalled())
+
+ // make sure the corners at ripple fit the stroke rounded corners
+ if (settings_purchase_thank_you_holder.isGone()) {
+ settings_use_english_holder.background = resources.getDrawable(R.drawable.ripple_top_corners, theme)
+ }
+
+ settings_purchase_thank_you_holder.setOnClickListener {
+ launchPurchaseThankYouIntent()
+ }
+ }
+
+ private fun setupCustomizeColors() {
+ settings_customize_colors_holder.setOnClickListener {
+ startCustomizationActivity()
+ }
+ }
+
+ private fun setupUseEnglish() {
+ settings_use_english_holder.beVisibleIf(config.wasUseEnglishToggled || Locale.getDefault().language != "en")
+ settings_use_english.isChecked = config.useEnglish
+
+ settings_use_english_holder.setOnClickListener {
+ settings_use_english.toggle()
+ config.useEnglish = settings_use_english.isChecked
+ System.exit(0)
+ }
+ }
+}
diff --git a/app/src/main/kotlin/com/simplemobiletools/launcher/activities/SimpleActivity.kt b/app/src/main/kotlin/com/simplemobiletools/launcher/activities/SimpleActivity.kt
new file mode 100644
index 0000000..496c366
--- /dev/null
+++ b/app/src/main/kotlin/com/simplemobiletools/launcher/activities/SimpleActivity.kt
@@ -0,0 +1,12 @@
+package com.simplemobiletools.launcher.activities
+
+import com.simplemobiletools.commons.activities.BaseSimpleActivity
+import com.simplemobiletools.launcher.R
+
+open class SimpleActivity : BaseSimpleActivity() {
+ override fun getAppIconIDs() = arrayListOf(
+ R.mipmap.ic_launcher
+ )
+
+ override fun getAppLauncherName() = getString(R.string.app_launcher_name)
+}
diff --git a/app/src/main/kotlin/com/simplemobiletools/launcher/activities/SplashActivity.kt b/app/src/main/kotlin/com/simplemobiletools/launcher/activities/SplashActivity.kt
new file mode 100644
index 0000000..58829ac
--- /dev/null
+++ b/app/src/main/kotlin/com/simplemobiletools/launcher/activities/SplashActivity.kt
@@ -0,0 +1,11 @@
+package com.simplemobiletools.launcher.activities
+
+import android.content.Intent
+import com.simplemobiletools.commons.activities.BaseSplashActivity
+
+class SplashActivity : BaseSplashActivity() {
+ override fun initActivity() {
+ startActivity(Intent(this, MainActivity::class.java))
+ finish()
+ }
+}
diff --git a/app/src/main/kotlin/com/simplemobiletools/launcher/extensions/Context.kt b/app/src/main/kotlin/com/simplemobiletools/launcher/extensions/Context.kt
new file mode 100644
index 0000000..e98238d
--- /dev/null
+++ b/app/src/main/kotlin/com/simplemobiletools/launcher/extensions/Context.kt
@@ -0,0 +1,6 @@
+package com.simplemobiletools.launcher.extensions
+
+import android.content.Context
+import com.simplemobiletools.launcher.helpers.Config
+
+val Context.config: Config get() = Config.newInstance(applicationContext)
diff --git a/app/src/main/kotlin/com/simplemobiletools/launcher/helpers/Config.kt b/app/src/main/kotlin/com/simplemobiletools/launcher/helpers/Config.kt
new file mode 100644
index 0000000..fa7fa45
--- /dev/null
+++ b/app/src/main/kotlin/com/simplemobiletools/launcher/helpers/Config.kt
@@ -0,0 +1,10 @@
+package com.simplemobiletools.launcher.helpers
+
+import android.content.Context
+import com.simplemobiletools.commons.helpers.BaseConfig
+
+class Config(context: Context) : BaseConfig(context) {
+ companion object {
+ fun newInstance(context: Context) = Config(context)
+ }
+}
diff --git a/app/src/main/res/layout/activity_settings.xml b/app/src/main/res/layout/activity_settings.xml
new file mode 100644
index 0000000..5e34919
--- /dev/null
+++ b/app/src/main/res/layout/activity_settings.xml
@@ -0,0 +1,118 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+