From 6015afdb9fdbae1b5ee26d4a275bcfbd6fc0a40f Mon Sep 17 00:00:00 2001 From: tibbi Date: Sun, 10 Dec 2017 11:04:45 +0100 Subject: [PATCH] adding some shared activities --- README.md | 2 +- app/src/main/AndroidManifest.xml | 24 ++++++++- .../com/simplemobiletools/contacts/App.kt | 11 ++++ .../contacts/activities/MainActivity.kt | 44 +++++++++++++++ .../contacts/activities/SettingsActivity.kt | 41 ++++++++++++++ .../contacts/extensions/Context.kt | 6 +++ .../contacts/helpers/Config.kt | 11 ++++ app/src/main/res/layout/activity_settings.xml | 53 +++++++++++++++++++ app/src/main/res/menu/menu.xml | 12 +++++ 9 files changed, 202 insertions(+), 2 deletions(-) create mode 100644 app/src/main/java/com/simplemobiletools/contacts/App.kt create mode 100644 app/src/main/java/com/simplemobiletools/contacts/activities/SettingsActivity.kt create mode 100644 app/src/main/java/com/simplemobiletools/contacts/extensions/Context.kt create mode 100644 app/src/main/java/com/simplemobiletools/contacts/helpers/Config.kt create mode 100644 app/src/main/res/layout/activity_settings.xml create mode 100644 app/src/main/res/menu/menu.xml diff --git a/README.md b/README.md index 95a9882a..efe0ba0c 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # Simple Contacts -An app for handling your contacts stored on the device +An app for handling your contacts stored on the device. License ------- diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 8ff29087..c413730b 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -5,9 +5,10 @@ android:installLocation="auto"> @@ -22,5 +23,26 @@ + + + + + + + + + diff --git a/app/src/main/java/com/simplemobiletools/contacts/App.kt b/app/src/main/java/com/simplemobiletools/contacts/App.kt new file mode 100644 index 00000000..c383c533 --- /dev/null +++ b/app/src/main/java/com/simplemobiletools/contacts/App.kt @@ -0,0 +1,11 @@ +package com.simplemobiletools.contacts + +import android.app.Application +import com.simplemobiletools.commons.extensions.checkUseEnglish + +class App : Application() { + override fun onCreate() { + super.onCreate() + checkUseEnglish() + } +} diff --git a/app/src/main/java/com/simplemobiletools/contacts/activities/MainActivity.kt b/app/src/main/java/com/simplemobiletools/contacts/activities/MainActivity.kt index 92fcdf9e..e46d2553 100644 --- a/app/src/main/java/com/simplemobiletools/contacts/activities/MainActivity.kt +++ b/app/src/main/java/com/simplemobiletools/contacts/activities/MainActivity.kt @@ -1,14 +1,58 @@ package com.simplemobiletools.contacts.activities +import android.content.Intent import android.os.Bundle +import android.view.Menu +import android.view.MenuItem import com.simplemobiletools.commons.extensions.appLaunched +import com.simplemobiletools.commons.extensions.restartActivity +import com.simplemobiletools.commons.helpers.LICENSE_KOTLIN +import com.simplemobiletools.commons.helpers.LICENSE_MULTISELECT +import com.simplemobiletools.contacts.BuildConfig import com.simplemobiletools.contacts.R +import com.simplemobiletools.contacts.extensions.config class MainActivity : SimpleActivity() { + var storedUseEnglish = false override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) appLaunched() } + + override fun onResume() { + super.onResume() + if (storedUseEnglish != config.useEnglish) { + restartActivity() + return + } + } + + override fun onPause() { + super.onPause() + storeStateVariables() + } + + override fun onCreateOptionsMenu(menu: Menu): Boolean { + menuInflater.inflate(R.menu.menu, 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 storeStateVariables() { + storedUseEnglish = config.useEnglish + } + + private fun launchAbout() { + startAboutActivity(R.string.app_name, LICENSE_KOTLIN or LICENSE_MULTISELECT, BuildConfig.VERSION_NAME) + } } diff --git a/app/src/main/java/com/simplemobiletools/contacts/activities/SettingsActivity.kt b/app/src/main/java/com/simplemobiletools/contacts/activities/SettingsActivity.kt new file mode 100644 index 00000000..eebb0b28 --- /dev/null +++ b/app/src/main/java/com/simplemobiletools/contacts/activities/SettingsActivity.kt @@ -0,0 +1,41 @@ +package com.simplemobiletools.contacts.activities + +import android.os.Bundle +import com.simplemobiletools.commons.extensions.beVisibleIf +import com.simplemobiletools.commons.extensions.updateTextColors +import com.simplemobiletools.commons.extensions.useEnglishToggled +import com.simplemobiletools.contacts.R +import com.simplemobiletools.contacts.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) + } + + 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 + useEnglishToggled() + } + } +} diff --git a/app/src/main/java/com/simplemobiletools/contacts/extensions/Context.kt b/app/src/main/java/com/simplemobiletools/contacts/extensions/Context.kt new file mode 100644 index 00000000..1d949958 --- /dev/null +++ b/app/src/main/java/com/simplemobiletools/contacts/extensions/Context.kt @@ -0,0 +1,6 @@ +package com.simplemobiletools.contacts.extensions + +import android.content.Context +import com.simplemobiletools.contacts.helpers.Config + +val Context.config: Config get() = Config.newInstance(applicationContext) diff --git a/app/src/main/java/com/simplemobiletools/contacts/helpers/Config.kt b/app/src/main/java/com/simplemobiletools/contacts/helpers/Config.kt new file mode 100644 index 00000000..613d45a9 --- /dev/null +++ b/app/src/main/java/com/simplemobiletools/contacts/helpers/Config.kt @@ -0,0 +1,11 @@ +package com.simplemobiletools.contacts.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 00000000..9b9b39c4 --- /dev/null +++ b/app/src/main/res/layout/activity_settings.xml @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/menu/menu.xml b/app/src/main/res/menu/menu.xml new file mode 100644 index 00000000..815619cd --- /dev/null +++ b/app/src/main/res/menu/menu.xml @@ -0,0 +1,12 @@ + + + + +