From bf91e81e3de13a6146709292ab226d8efa2e689a Mon Sep 17 00:00:00 2001 From: Jeel Dobariya Date: Sun, 24 Aug 2025 18:36:58 +0530 Subject: [PATCH 1/5] refactor: code translation --- app/src/main/res/values/strings.xml | 14 +++++++------- lint.xml | 4 +++- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 42183db6..7a537531 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -21,12 +21,12 @@ Username Password Notes - Copied Successfully + Copied Successfully e.g. Google, Instagram, WhatsApp, etc. e.g. Liam15, Noha, Olivia, Ava_25, etc. e.g. 12345, abc123xyz, qwerty, etc. Password Manager - Copy Password + Copy Password Save Password Load Password Update Password @@ -39,7 +39,7 @@ Language: Contributor: Themes: - Preview Features: + Preview Features: About Us @@ -47,8 +47,8 @@ Security Guidelines View Release Notes View License - Third Party License - Passcodes Telegram Community + Third Party License + Passcodes Telegram Community Password Manager @@ -86,11 +86,11 @@ Something Went Wrong: Invalid ID!! - Copy to Clipboard? + Copy to Clipboard? Update password? Delete password? This action cannot be undone. - Copying sensitive data like passwords to clipboard is not so good for security!!! + Copying sensitive data like passwords to clipboard is not so good for security!!! Confirm Discard diff --git a/lint.xml b/lint.xml index e1452c37..f6db615e 100644 --- a/lint.xml +++ b/lint.xml @@ -3,4 +3,6 @@ - \ No newline at end of file + + + From 0fa3f2eb1f693c1bb35517a53315e8dc59ab66ef Mon Sep 17 00:00:00 2001 From: Jeel Dobariya Date: Sun, 24 Aug 2025 18:48:37 +0530 Subject: [PATCH 2/5] refactor: pref name constants --- .../passcodes/flags/FeatureFlagManager.kt | 10 ++++------ .../passcodes/ui/SettingsActivity.kt | 16 ++++++---------- .../jeeldobariya/passcodes/utils/Constants.kt | 9 +++++++++ 3 files changed, 19 insertions(+), 16 deletions(-) diff --git a/app/src/main/kotlin/com/jeeldobariya/passcodes/flags/FeatureFlagManager.kt b/app/src/main/kotlin/com/jeeldobariya/passcodes/flags/FeatureFlagManager.kt index e4dcf6c1..1bd2445b 100644 --- a/app/src/main/kotlin/com/jeeldobariya/passcodes/flags/FeatureFlagManager.kt +++ b/app/src/main/kotlin/com/jeeldobariya/passcodes/flags/FeatureFlagManager.kt @@ -2,18 +2,16 @@ package com.jeeldobariya.passcodes.flags import android.content.Context import androidx.core.content.edit +import com.jeeldobariya.passcodes.utils.Constant class FeatureFlagManager private constructor(context: Context) { - private val prefs = context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE) + private val prefs = context.getSharedPreferences(Constant.FEATURE_FLAGS_PREFS_NAME, Context.MODE_PRIVATE) var latestFeaturesEnabled: Boolean - get() = prefs.getBoolean(KEY_LATEST_FEATURES, false) - set(value) { prefs.edit { putBoolean(KEY_LATEST_FEATURES, value) } } + get() = prefs.getBoolean(Constant.LATEST_FEATURES_KEY, false) + set(value) { prefs.edit { putBoolean(Constant.LATEST_FEATURES_KEY, value) } } companion object { - private const val PREFS_NAME = "feature_flags" - private const val KEY_LATEST_FEATURES = "latest_features_enabled" - @Volatile private var INSTANCE: FeatureFlagManager? = null fun get(context: Context): FeatureFlagManager { diff --git a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/SettingsActivity.kt b/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/SettingsActivity.kt index 54e0a6a7..772bb829 100644 --- a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/SettingsActivity.kt +++ b/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/SettingsActivity.kt @@ -15,15 +15,11 @@ import com.jeeldobariya.passcodes.R import com.jeeldobariya.passcodes.databinding.ActivitySettingsBinding import com.jeeldobariya.passcodes.flags.FeatureFlagManager import androidx.core.content.edit +import com.jeeldobariya.passcodes.utils.Constant class SettingsActivity : AppCompatActivity() { private lateinit var binding: ActivitySettingsBinding - - companion object { - const val THEME_PREFS_NAME = "theme_prefs" - const val THEME_KEY = "selected_theme" - } // List of available themes to cycle through @@ -36,8 +32,8 @@ class SettingsActivity : AppCompatActivity() { ) override fun onCreate(savedInstanceState: Bundle?) { - val sharedPrefs = getSharedPreferences(SettingsActivity.THEME_PREFS_NAME, Context.MODE_PRIVATE) - val savedThemeStyle = sharedPrefs.getInt(SettingsActivity.THEME_KEY, R.style.PasscodesTheme_Default) + val sharedPrefs = getSharedPreferences(Constant.APP_PREFS_NAME, MODE_PRIVATE) + val savedThemeStyle = sharedPrefs.getInt(Constant.THEME_KEY, R.style.PasscodesTheme_Default) setTheme(savedThemeStyle) super.onCreate(savedInstanceState) @@ -86,15 +82,15 @@ class SettingsActivity : AppCompatActivity() { } binding.toggleThemeBtn.setOnClickListener { - val sharedPrefs = getSharedPreferences(SettingsActivity.THEME_PREFS_NAME, Context.MODE_PRIVATE) - val currentThemeStyle = sharedPrefs.getInt(SettingsActivity.THEME_KEY, R.style.PasscodesTheme_Default) + val sharedPrefs = getSharedPreferences(Constant.APP_PREFS_NAME, Context.MODE_PRIVATE) + val currentThemeStyle = sharedPrefs.getInt(Constant.THEME_KEY, R.style.PasscodesTheme_Default) val currentIndex = THEMES.indexOf(currentThemeStyle) val nextIndex = (currentIndex + 1) % THEMES.size val newThemeStyle = THEMES[nextIndex] // Save the new theme and restart the application to apply it - sharedPrefs.edit { putInt(THEME_KEY, newThemeStyle) } + sharedPrefs.edit { putInt(Constant.THEME_KEY, newThemeStyle) } recreate() Toast.makeText(this@SettingsActivity, getString(R.string.restart_app_require), Toast.LENGTH_SHORT).show() diff --git a/app/src/main/kotlin/com/jeeldobariya/passcodes/utils/Constants.kt b/app/src/main/kotlin/com/jeeldobariya/passcodes/utils/Constants.kt index 3b062c31..5dc959bd 100644 --- a/app/src/main/kotlin/com/jeeldobariya/passcodes/utils/Constants.kt +++ b/app/src/main/kotlin/com/jeeldobariya/passcodes/utils/Constants.kt @@ -1,9 +1,18 @@ package com.jeeldobariya.passcodes.utils object Constant { + // Url Constants const val REPO_URL = "https://github.com/JeelDobariya38/Passcodes" const val REPORT_BUG_URL = "https://github.com/JeelDobariya38/password-manager/issues/new?template=bug-report.md" const val RELEASE_NOTE_URL = "https://github.com/JeelDobariya38/Passcodes/blob/main/docs/release-notes.md" const val SECURITY_GUIDE_URL = "https://github.com/JeelDobariya38/Passcodes/blob/main/docs/security-guide.md" const val TELEGRAM_COMMUNITY_URL = "https://t.me/passcodescommunity" + + + // Shared Preferences Constants + const val APP_PREFS_NAME = "app_prefs" + const val THEME_KEY = "selected_theme" + + const val FEATURE_FLAGS_PREFS_NAME = "feature_flags_prefs" + const val LATEST_FEATURES_KEY = "latest_features_enabled" } From 71437b1dc740cf7d40936bbad65cd68253a51786 Mon Sep 17 00:00:00 2001 From: Jeel Dobariya Date: Sun, 24 Aug 2025 18:58:51 +0530 Subject: [PATCH 3/5] refactor: made a CommonUtils --- .../passcodes/ui/LoadPasswordActivity.kt | 5 ++--- .../com/jeeldobariya/passcodes/ui/MainActivity.kt | 6 +++--- .../passcodes/ui/PasswordManagerActivity.kt | 5 ++--- .../passcodes/ui/SavePasswordActivity.kt | 6 ++---- .../jeeldobariya/passcodes/ui/SettingsActivity.kt | 5 ++--- .../passcodes/ui/UpdatePasswordActivity.kt | 5 ++--- .../passcodes/ui/ViewPasswordActivity.kt | 5 ++--- .../jeeldobariya/passcodes/utils/CommonUtils.kt | 15 +++++++++++++++ 8 files changed, 30 insertions(+), 22 deletions(-) create mode 100644 app/src/main/kotlin/com/jeeldobariya/passcodes/utils/CommonUtils.kt diff --git a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/LoadPasswordActivity.kt b/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/LoadPasswordActivity.kt index f4c4527c..6e122ce5 100644 --- a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/LoadPasswordActivity.kt +++ b/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/LoadPasswordActivity.kt @@ -11,6 +11,7 @@ import com.jeeldobariya.passcodes.R import com.jeeldobariya.passcodes.database.Password import com.jeeldobariya.passcodes.databinding.ActivityLoadPasswordBinding import com.jeeldobariya.passcodes.ui.adapter.PasswordAdapter +import com.jeeldobariya.passcodes.utils.CommonUtils import com.jeeldobariya.passcodes.utils.Controller import com.jeeldobariya.passcodes.utils.DatabaseOperationException import kotlinx.coroutines.Dispatchers @@ -25,9 +26,7 @@ class LoadPasswordActivity : AppCompatActivity() { private lateinit var controller: Controller override fun onCreate(savedInstanceState: Bundle?) { - val sharedPrefs = getSharedPreferences(SettingsActivity.THEME_PREFS_NAME, Context.MODE_PRIVATE) - val savedThemeStyle = sharedPrefs.getInt(SettingsActivity.THEME_KEY, R.style.PasscodesTheme_Default) - setTheme(savedThemeStyle) + setTheme(CommonUtils.getCurrTheme(this)) super.onCreate(savedInstanceState) binding = ActivityLoadPasswordBinding.inflate(layoutInflater) diff --git a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/MainActivity.kt b/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/MainActivity.kt index 587a4a31..bba049a2 100644 --- a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/MainActivity.kt +++ b/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/MainActivity.kt @@ -9,6 +9,8 @@ import android.view.LayoutInflater import com.jeeldobariya.passcodes.R import com.jeeldobariya.passcodes.databinding.ActivityMainBinding +import com.jeeldobariya.passcodes.utils.CommonUtils + // import com.jeeldobariya.passcodes.utils.Permissions class MainActivity : AppCompatActivity() { @@ -18,9 +20,7 @@ class MainActivity : AppCompatActivity() { private lateinit var binding: ActivityMainBinding override fun onCreate(savedInstanceState: Bundle?) { - val sharedPrefs = getSharedPreferences(SettingsActivity.THEME_PREFS_NAME, Context.MODE_PRIVATE) - val savedThemeStyle = sharedPrefs.getInt(SettingsActivity.THEME_KEY, R.style.PasscodesTheme_Default) - setTheme(savedThemeStyle) + setTheme(CommonUtils.getCurrTheme(this)) super.onCreate(savedInstanceState) binding = ActivityMainBinding.inflate(layoutInflater) diff --git a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/PasswordManagerActivity.kt b/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/PasswordManagerActivity.kt index fb366b63..e2a5a301 100644 --- a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/PasswordManagerActivity.kt +++ b/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/PasswordManagerActivity.kt @@ -7,6 +7,7 @@ import androidx.appcompat.app.AppCompatActivity import androidx.core.view.WindowCompat import com.jeeldobariya.passcodes.R import com.jeeldobariya.passcodes.databinding.ActivityPasswordManagerBinding +import com.jeeldobariya.passcodes.utils.CommonUtils class PasswordManagerActivity : AppCompatActivity() { @@ -14,9 +15,7 @@ class PasswordManagerActivity : AppCompatActivity() { private lateinit var binding: ActivityPasswordManagerBinding // Use late init for binding override fun onCreate(savedInstanceState: Bundle?) { - val sharedPrefs = getSharedPreferences(SettingsActivity.THEME_PREFS_NAME, MODE_PRIVATE) - val savedThemeStyle = sharedPrefs.getInt(SettingsActivity.THEME_KEY, R.style.PasscodesTheme_Default) - setTheme(savedThemeStyle) + setTheme(CommonUtils.getCurrTheme(this)) super.onCreate(savedInstanceState) binding = ActivityPasswordManagerBinding.inflate(layoutInflater) diff --git a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/SavePasswordActivity.kt b/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/SavePasswordActivity.kt index 7404bdf0..8e5aab5e 100644 --- a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/SavePasswordActivity.kt +++ b/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/SavePasswordActivity.kt @@ -1,6 +1,5 @@ package com.jeeldobariya.passcodes.ui -import android.content.Context import android.os.Bundle import android.widget.Toast import androidx.appcompat.app.AppCompatActivity @@ -8,6 +7,7 @@ import androidx.core.view.WindowCompat import androidx.lifecycle.lifecycleScope import com.jeeldobariya.passcodes.R import com.jeeldobariya.passcodes.databinding.ActivitySavePasswordBinding +import com.jeeldobariya.passcodes.utils.CommonUtils import com.jeeldobariya.passcodes.utils.Controller import com.jeeldobariya.passcodes.utils.DatabaseOperationException import com.jeeldobariya.passcodes.utils.InvalidInputException @@ -21,9 +21,7 @@ class SavePasswordActivity : AppCompatActivity() { private lateinit var binding: ActivitySavePasswordBinding override fun onCreate(savedInstanceState: Bundle?) { - val sharedPrefs = getSharedPreferences(SettingsActivity.THEME_PREFS_NAME, Context.MODE_PRIVATE) - val savedThemeStyle = sharedPrefs.getInt(SettingsActivity.THEME_KEY, R.style.PasscodesTheme_Default) - setTheme(savedThemeStyle) + setTheme(CommonUtils.getCurrTheme(this)) super.onCreate(savedInstanceState) binding = ActivitySavePasswordBinding.inflate(layoutInflater) diff --git a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/SettingsActivity.kt b/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/SettingsActivity.kt index 772bb829..3e60ab6e 100644 --- a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/SettingsActivity.kt +++ b/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/SettingsActivity.kt @@ -15,6 +15,7 @@ import com.jeeldobariya.passcodes.R import com.jeeldobariya.passcodes.databinding.ActivitySettingsBinding import com.jeeldobariya.passcodes.flags.FeatureFlagManager import androidx.core.content.edit +import com.jeeldobariya.passcodes.utils.CommonUtils import com.jeeldobariya.passcodes.utils.Constant class SettingsActivity : AppCompatActivity() { @@ -32,9 +33,7 @@ class SettingsActivity : AppCompatActivity() { ) override fun onCreate(savedInstanceState: Bundle?) { - val sharedPrefs = getSharedPreferences(Constant.APP_PREFS_NAME, MODE_PRIVATE) - val savedThemeStyle = sharedPrefs.getInt(Constant.THEME_KEY, R.style.PasscodesTheme_Default) - setTheme(savedThemeStyle) + setTheme(CommonUtils.getCurrTheme(this)) super.onCreate(savedInstanceState) binding = ActivitySettingsBinding.inflate(layoutInflater) diff --git a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/UpdatePasswordActivity.kt b/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/UpdatePasswordActivity.kt index 2a1af6b5..a1023c08 100644 --- a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/UpdatePasswordActivity.kt +++ b/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/UpdatePasswordActivity.kt @@ -11,6 +11,7 @@ import androidx.lifecycle.lifecycleScope import com.jeeldobariya.passcodes.R import com.jeeldobariya.passcodes.database.Password import com.jeeldobariya.passcodes.databinding.ActivityUpdatePasswordBinding +import com.jeeldobariya.passcodes.utils.CommonUtils import com.jeeldobariya.passcodes.utils.Controller import com.jeeldobariya.passcodes.utils.DatabaseOperationException import com.jeeldobariya.passcodes.utils.InvalidInputException @@ -29,9 +30,7 @@ class UpdatePasswordActivity : AppCompatActivity() { private lateinit var binding: ActivityUpdatePasswordBinding override fun onCreate(savedInstanceState: Bundle?) { - val sharedPrefs = getSharedPreferences(SettingsActivity.THEME_PREFS_NAME, Context.MODE_PRIVATE) - val savedThemeStyle = sharedPrefs.getInt(SettingsActivity.THEME_KEY, R.style.PasscodesTheme_Default) - setTheme(savedThemeStyle) + setTheme(CommonUtils.getCurrTheme(this)) super.onCreate(savedInstanceState) binding = ActivityUpdatePasswordBinding.inflate(layoutInflater) diff --git a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/ViewPasswordActivity.kt b/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/ViewPasswordActivity.kt index d41bfe2f..6190c4f2 100644 --- a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/ViewPasswordActivity.kt +++ b/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/ViewPasswordActivity.kt @@ -14,6 +14,7 @@ import com.jeeldobariya.passcodes.R import com.jeeldobariya.passcodes.database.Password import com.jeeldobariya.passcodes.databinding.ActivityViewPasswordBinding import com.jeeldobariya.passcodes.flags.FeatureFlagManager +import com.jeeldobariya.passcodes.utils.CommonUtils import com.jeeldobariya.passcodes.utils.Controller import com.jeeldobariya.passcodes.utils.DatabaseOperationException import com.jeeldobariya.passcodes.utils.DateTimeUtils @@ -33,9 +34,7 @@ class ViewPasswordActivity : AppCompatActivity() { private lateinit var passwordEntity: Password override fun onCreate(savedInstanceState: Bundle?) { - val sharedPrefs = getSharedPreferences(SettingsActivity.THEME_PREFS_NAME, Context.MODE_PRIVATE) - val savedThemeStyle = sharedPrefs.getInt(SettingsActivity.THEME_KEY, R.style.PasscodesTheme_Default) - setTheme(savedThemeStyle) + setTheme(CommonUtils.getCurrTheme(this)) super.onCreate(savedInstanceState) binding = ActivityViewPasswordBinding.inflate(layoutInflater) diff --git a/app/src/main/kotlin/com/jeeldobariya/passcodes/utils/CommonUtils.kt b/app/src/main/kotlin/com/jeeldobariya/passcodes/utils/CommonUtils.kt new file mode 100644 index 00000000..ed535190 --- /dev/null +++ b/app/src/main/kotlin/com/jeeldobariya/passcodes/utils/CommonUtils.kt @@ -0,0 +1,15 @@ +package com.jeeldobariya.passcodes.utils + +import android.content.Context +import android.content.Context.MODE_PRIVATE +import com.jeeldobariya.passcodes.R + +class CommonUtils { + companion object { + fun getCurrTheme(context: Context): Int { + val sharedPrefs = context.getSharedPreferences(Constant.APP_PREFS_NAME, MODE_PRIVATE) + val savedThemeStyle = sharedPrefs.getInt(Constant.THEME_KEY, R.style.PasscodesTheme_Default) + return savedThemeStyle + } + } +} From e1444b9c9b34690576df2722eec0f4dfbf12e90f Mon Sep 17 00:00:00 2001 From: Jeel Dobariya Date: Sun, 24 Aug 2025 19:13:44 +0530 Subject: [PATCH 4/5] refactor: to directly modify theme --- .../kotlin/com/jeeldobariya/passcodes/ui/AboutUsActivity.kt | 2 ++ .../kotlin/com/jeeldobariya/passcodes/ui/LicenseActivity.kt | 2 ++ .../com/jeeldobariya/passcodes/ui/LoadPasswordActivity.kt | 3 +-- .../main/kotlin/com/jeeldobariya/passcodes/ui/MainActivity.kt | 3 +-- .../com/jeeldobariya/passcodes/ui/PasswordManagerActivity.kt | 3 +-- .../com/jeeldobariya/passcodes/ui/SavePasswordActivity.kt | 3 +-- .../kotlin/com/jeeldobariya/passcodes/ui/SettingsActivity.kt | 3 +-- .../com/jeeldobariya/passcodes/ui/UpdatePasswordActivity.kt | 3 +-- .../com/jeeldobariya/passcodes/ui/ViewPasswordActivity.kt | 3 +-- .../kotlin/com/jeeldobariya/passcodes/utils/CommonUtils.kt | 4 ++++ 10 files changed, 15 insertions(+), 14 deletions(-) diff --git a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/AboutUsActivity.kt b/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/AboutUsActivity.kt index 1d4d9964..b8824ab8 100644 --- a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/AboutUsActivity.kt +++ b/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/AboutUsActivity.kt @@ -6,12 +6,14 @@ import android.content.Intent import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import androidx.core.net.toUri +import com.jeeldobariya.passcodes.utils.CommonUtils class AboutUsActivity : AppCompatActivity() { private lateinit var binding: ActivityAboutUsBinding override fun onCreate(savedInstanceState: Bundle?) { + CommonUtils.updateCurrTheme(this) super.onCreate(savedInstanceState) binding = ActivityAboutUsBinding.inflate(layoutInflater) setContentView(binding.root) diff --git a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/LicenseActivity.kt b/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/LicenseActivity.kt index 512e7b71..7cb9ad01 100644 --- a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/LicenseActivity.kt +++ b/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/LicenseActivity.kt @@ -5,12 +5,14 @@ import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import com.google.android.gms.oss.licenses.OssLicensesMenuActivity import com.jeeldobariya.passcodes.databinding.ActivityLicenseBinding +import com.jeeldobariya.passcodes.utils.CommonUtils import java.io.BufferedReader import java.io.InputStreamReader class LicenseActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { + CommonUtils.updateCurrTheme(this) super.onCreate(savedInstanceState) var binding = ActivityLicenseBinding.inflate(layoutInflater) setContentView(binding.root) diff --git a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/LoadPasswordActivity.kt b/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/LoadPasswordActivity.kt index 6e122ce5..e53687ce 100644 --- a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/LoadPasswordActivity.kt +++ b/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/LoadPasswordActivity.kt @@ -26,8 +26,7 @@ class LoadPasswordActivity : AppCompatActivity() { private lateinit var controller: Controller override fun onCreate(savedInstanceState: Bundle?) { - setTheme(CommonUtils.getCurrTheme(this)) - + CommonUtils.updateCurrTheme(this) super.onCreate(savedInstanceState) binding = ActivityLoadPasswordBinding.inflate(layoutInflater) setContentView(binding.root) diff --git a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/MainActivity.kt b/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/MainActivity.kt index bba049a2..f1fe9825 100644 --- a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/MainActivity.kt +++ b/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/MainActivity.kt @@ -20,8 +20,7 @@ class MainActivity : AppCompatActivity() { private lateinit var binding: ActivityMainBinding override fun onCreate(savedInstanceState: Bundle?) { - setTheme(CommonUtils.getCurrTheme(this)) - + CommonUtils.updateCurrTheme(this) super.onCreate(savedInstanceState) binding = ActivityMainBinding.inflate(layoutInflater) setContentView(binding.root) diff --git a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/PasswordManagerActivity.kt b/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/PasswordManagerActivity.kt index e2a5a301..ecdc6d52 100644 --- a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/PasswordManagerActivity.kt +++ b/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/PasswordManagerActivity.kt @@ -15,8 +15,7 @@ class PasswordManagerActivity : AppCompatActivity() { private lateinit var binding: ActivityPasswordManagerBinding // Use late init for binding override fun onCreate(savedInstanceState: Bundle?) { - setTheme(CommonUtils.getCurrTheme(this)) - + CommonUtils.updateCurrTheme(this) super.onCreate(savedInstanceState) binding = ActivityPasswordManagerBinding.inflate(layoutInflater) setContentView(binding.root) diff --git a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/SavePasswordActivity.kt b/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/SavePasswordActivity.kt index 8e5aab5e..2f2c846b 100644 --- a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/SavePasswordActivity.kt +++ b/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/SavePasswordActivity.kt @@ -21,8 +21,7 @@ class SavePasswordActivity : AppCompatActivity() { private lateinit var binding: ActivitySavePasswordBinding override fun onCreate(savedInstanceState: Bundle?) { - setTheme(CommonUtils.getCurrTheme(this)) - + CommonUtils.updateCurrTheme(this) super.onCreate(savedInstanceState) binding = ActivitySavePasswordBinding.inflate(layoutInflater) setContentView(binding.root) diff --git a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/SettingsActivity.kt b/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/SettingsActivity.kt index 3e60ab6e..e83f3ef6 100644 --- a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/SettingsActivity.kt +++ b/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/SettingsActivity.kt @@ -33,8 +33,7 @@ class SettingsActivity : AppCompatActivity() { ) override fun onCreate(savedInstanceState: Bundle?) { - setTheme(CommonUtils.getCurrTheme(this)) - + CommonUtils.updateCurrTheme(this) super.onCreate(savedInstanceState) binding = ActivitySettingsBinding.inflate(layoutInflater) setContentView(binding.root) diff --git a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/UpdatePasswordActivity.kt b/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/UpdatePasswordActivity.kt index a1023c08..8f0f7288 100644 --- a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/UpdatePasswordActivity.kt +++ b/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/UpdatePasswordActivity.kt @@ -30,8 +30,7 @@ class UpdatePasswordActivity : AppCompatActivity() { private lateinit var binding: ActivityUpdatePasswordBinding override fun onCreate(savedInstanceState: Bundle?) { - setTheme(CommonUtils.getCurrTheme(this)) - + CommonUtils.updateCurrTheme(this) super.onCreate(savedInstanceState) binding = ActivityUpdatePasswordBinding.inflate(layoutInflater) setContentView(binding.root) diff --git a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/ViewPasswordActivity.kt b/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/ViewPasswordActivity.kt index 6190c4f2..54d54150 100644 --- a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/ViewPasswordActivity.kt +++ b/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/ViewPasswordActivity.kt @@ -34,8 +34,7 @@ class ViewPasswordActivity : AppCompatActivity() { private lateinit var passwordEntity: Password override fun onCreate(savedInstanceState: Bundle?) { - setTheme(CommonUtils.getCurrTheme(this)) - + CommonUtils.updateCurrTheme(this) super.onCreate(savedInstanceState) binding = ActivityViewPasswordBinding.inflate(layoutInflater) setContentView(binding.root) diff --git a/app/src/main/kotlin/com/jeeldobariya/passcodes/utils/CommonUtils.kt b/app/src/main/kotlin/com/jeeldobariya/passcodes/utils/CommonUtils.kt index ed535190..c0644414 100644 --- a/app/src/main/kotlin/com/jeeldobariya/passcodes/utils/CommonUtils.kt +++ b/app/src/main/kotlin/com/jeeldobariya/passcodes/utils/CommonUtils.kt @@ -11,5 +11,9 @@ class CommonUtils { val savedThemeStyle = sharedPrefs.getInt(Constant.THEME_KEY, R.style.PasscodesTheme_Default) return savedThemeStyle } + + fun updateCurrTheme(context: Context) { + context.setTheme(getCurrTheme(context.applicationContext)) + } } } From 01e28c8fe37144da751a8a91d35e4b4ad55b65d0 Mon Sep 17 00:00:00 2001 From: Jeel Dobariya Date: Sun, 24 Aug 2025 19:33:48 +0530 Subject: [PATCH 5/5] feat: improve buttons --- .../jeeldobariya/passcodes/ui/PasswordManagerActivity.kt | 7 +++++++ app/src/main/res/layout/activity_main.xml | 2 ++ app/src/main/res/layout/activity_password_manager.xml | 4 ++-- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/PasswordManagerActivity.kt b/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/PasswordManagerActivity.kt index ecdc6d52..5ff2b07b 100644 --- a/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/PasswordManagerActivity.kt +++ b/app/src/main/kotlin/com/jeeldobariya/passcodes/ui/PasswordManagerActivity.kt @@ -1,12 +1,14 @@ package com.jeeldobariya.passcodes.ui import android.content.Intent +import android.view.View.GONE import android.os.Bundle import android.widget.Toast import androidx.appcompat.app.AppCompatActivity import androidx.core.view.WindowCompat import com.jeeldobariya.passcodes.R import com.jeeldobariya.passcodes.databinding.ActivityPasswordManagerBinding +import com.jeeldobariya.passcodes.flags.FeatureFlagManager import com.jeeldobariya.passcodes.utils.CommonUtils @@ -20,6 +22,11 @@ class PasswordManagerActivity : AppCompatActivity() { binding = ActivityPasswordManagerBinding.inflate(layoutInflater) setContentView(binding.root) + if (!FeatureFlagManager.get(this).latestFeaturesEnabled) { + binding.importPasswordBtn.visibility = GONE + binding.exportPasswordBtn.visibility = GONE + } + // Add event onclick listener addOnClickListenerOnButton(binding) diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 90dacb61..67998b5f 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -47,6 +47,7 @@