diff --git a/app/build.gradle b/app/build.gradle
index 1e819f5e..76f7f0c1 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -11,7 +11,7 @@ android {
minSdkVersion 23
targetSdkVersion 29
versionCode 1
- versionName "1.0"
+ versionName "5.0.0"
setProperty("archivesBaseName", "dialer")
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index ad1d6c31..4935252b 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -21,6 +21,8 @@
+
+
+
+
-
+
+
diff --git a/app/src/main/kotlin/com/simplemobiletools/dialer/activities/MainActivity.kt b/app/src/main/kotlin/com/simplemobiletools/dialer/activities/MainActivity.kt
index df11f0bb..ea133032 100644
--- a/app/src/main/kotlin/com/simplemobiletools/dialer/activities/MainActivity.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/dialer/activities/MainActivity.kt
@@ -1,13 +1,46 @@
package com.simplemobiletools.dialer.activities
+import android.content.Intent
import android.os.Bundle
-import androidx.appcompat.app.AppCompatActivity
+import android.view.Menu
+import android.view.MenuItem
+import com.simplemobiletools.commons.extensions.appLaunched
+import com.simplemobiletools.commons.models.FAQItem
+import com.simplemobiletools.dialer.BuildConfig
import com.simplemobiletools.dialer.R
-class MainActivity : AppCompatActivity() {
+class MainActivity : SimpleActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
+ appLaunched(BuildConfig.APPLICATION_ID)
+ }
+
+ override fun onCreateOptionsMenu(menu: Menu): Boolean {
+ menuInflater.inflate(R.menu.menu, menu)
+ updateMenuItemColors(menu)
+ return true
+ }
+
+ override fun onOptionsItemSelected(item: MenuItem): Boolean {
+ when (item.itemId) {
+ R.id.settings -> startActivity(Intent(applicationContext, SettingsActivity::class.java))
+ R.id.about -> launchAbout()
+ else -> return super.onOptionsItemSelected(item)
+ }
+ return true
+ }
+
+ private fun launchAbout() {
+ val licenses = 0
+
+ val faqItems = arrayListOf(
+ FAQItem(R.string.faq_2_title_commons, R.string.faq_2_text_commons),
+ FAQItem(R.string.faq_6_title_commons, R.string.faq_6_text_commons),
+ FAQItem(R.string.faq_7_title_commons, R.string.faq_7_text_commons)
+ )
+
+ startAboutActivity(R.string.app_name, licenses, BuildConfig.VERSION_NAME, faqItems, true)
}
}
diff --git a/app/src/main/kotlin/com/simplemobiletools/dialer/activities/SettingsActivity.kt b/app/src/main/kotlin/com/simplemobiletools/dialer/activities/SettingsActivity.kt
new file mode 100644
index 00000000..5363eaf2
--- /dev/null
+++ b/app/src/main/kotlin/com/simplemobiletools/dialer/activities/SettingsActivity.kt
@@ -0,0 +1,47 @@
+package com.simplemobiletools.dialer.activities
+
+import android.os.Bundle
+import android.view.Menu
+import com.simplemobiletools.commons.extensions.beVisibleIf
+import com.simplemobiletools.commons.extensions.updateTextColors
+import com.simplemobiletools.dialer.R
+import com.simplemobiletools.dialer.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()
+
+ setupCustomizeColors()
+ setupUseEnglish()
+ updateTextColors(settings_holder)
+ invalidateOptionsMenu()
+ }
+
+ override fun onCreateOptionsMenu(menu: Menu): Boolean {
+ updateMenuItemColors(menu)
+ return super.onCreateOptionsMenu(menu)
+ }
+
+ 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/dialer/extensions/Context.kt b/app/src/main/kotlin/com/simplemobiletools/dialer/extensions/Context.kt
new file mode 100644
index 00000000..ffd71d6e
--- /dev/null
+++ b/app/src/main/kotlin/com/simplemobiletools/dialer/extensions/Context.kt
@@ -0,0 +1,6 @@
+package com.simplemobiletools.dialer.extensions
+
+import android.content.Context
+import com.simplemobiletools.dialer.helpers.Config
+
+val Context.config: Config get() = Config.newInstance(applicationContext)
diff --git a/app/src/main/kotlin/com/simplemobiletools/dialer/helpers/Config.kt b/app/src/main/kotlin/com/simplemobiletools/dialer/helpers/Config.kt
new file mode 100644
index 00000000..00806000
--- /dev/null
+++ b/app/src/main/kotlin/com/simplemobiletools/dialer/helpers/Config.kt
@@ -0,0 +1,10 @@
+package com.simplemobiletools.dialer.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/kotlin/com/simplemobiletools/dialer/helpers/Constants.kt b/app/src/main/kotlin/com/simplemobiletools/dialer/helpers/Constants.kt
new file mode 100644
index 00000000..57c4b8d1
--- /dev/null
+++ b/app/src/main/kotlin/com/simplemobiletools/dialer/helpers/Constants.kt
@@ -0,0 +1 @@
+package com.simplemobiletools.dialer.helpers
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 00000000..10f819bd
--- /dev/null
+++ b/app/src/main/res/layout/activity_settings.xml
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/menu/menu.xml b/app/src/main/res/menu/menu.xml
new file mode 100644
index 00000000..a0c32233
--- /dev/null
+++ b/app/src/main/res/menu/menu.xml
@@ -0,0 +1,12 @@
+
+