From 21d1722cdbc76dc5dad633264b9469ffaee97c44 Mon Sep 17 00:00:00 2001 From: Akash Yadav Date: Mon, 25 Dec 2023 22:33:25 +0530 Subject: [PATCH] refactor(preferences): reorganize preference classes & files --- .../activities/PreferencesActivity.java | 7 +- .../androidide/preferences/aboutPrefExts.kt | 77 +++++++++++++++++++ ...{buildAndRun.kt => buildAndRunPrefExts.kt} | 0 .../{common.kt => commonPrefExts.kt} | 0 ...Options.kt => developerOptionsPrefExts.kt} | 0 .../{editor.kt => editorPrefExts.kt} | 0 .../{general.kt => generalPrefExts.kt} | 0 .../{javaPrefs.kt => javaPrefExts.kt} | 0 .../preferences/{root.kt => rootPrefExts.kt} | 64 ++------------- .../preferences/{stats.kt => statPrefExts.kt} | 0 .../{xmlPrefs.kt => xmlPrefExts.kt} | 0 11 files changed, 88 insertions(+), 60 deletions(-) create mode 100644 app/src/main/java/com/itsaky/androidide/preferences/aboutPrefExts.kt rename app/src/main/java/com/itsaky/androidide/preferences/{buildAndRun.kt => buildAndRunPrefExts.kt} (100%) rename app/src/main/java/com/itsaky/androidide/preferences/{common.kt => commonPrefExts.kt} (100%) rename app/src/main/java/com/itsaky/androidide/preferences/{developerOptions.kt => developerOptionsPrefExts.kt} (100%) rename app/src/main/java/com/itsaky/androidide/preferences/{editor.kt => editorPrefExts.kt} (100%) rename app/src/main/java/com/itsaky/androidide/preferences/{general.kt => generalPrefExts.kt} (100%) rename app/src/main/java/com/itsaky/androidide/preferences/{javaPrefs.kt => javaPrefExts.kt} (100%) rename app/src/main/java/com/itsaky/androidide/preferences/{root.kt => rootPrefExts.kt} (56%) rename app/src/main/java/com/itsaky/androidide/preferences/{stats.kt => statPrefExts.kt} (100%) rename app/src/main/java/com/itsaky/androidide/preferences/{xmlPrefs.kt => xmlPrefExts.kt} (100%) diff --git a/app/src/main/java/com/itsaky/androidide/activities/PreferencesActivity.java b/app/src/main/java/com/itsaky/androidide/activities/PreferencesActivity.java index a646f90d1..1d5371818 100755 --- a/app/src/main/java/com/itsaky/androidide/activities/PreferencesActivity.java +++ b/app/src/main/java/com/itsaky/androidide/activities/PreferencesActivity.java @@ -31,6 +31,7 @@ import com.itsaky.androidide.preferences.ConfigurationPreferences; import com.itsaky.androidide.preferences.DeveloperOptionsPreferences; import com.itsaky.androidide.preferences.IDEPreferences; import com.itsaky.androidide.preferences.PrivacyPreferences; +import com.itsaky.androidide.preferences.RootPrefExtsKt; import java.util.ArrayList; public class PreferencesActivity extends LimitlessIDEActivity { @@ -58,10 +59,8 @@ public class PreferencesActivity extends LimitlessIDEActivity { final var prefs = IDEPreferences.INSTANCE; prefs.getChildren().clear(); - prefs.addPreference(new ConfigurationPreferences()); - prefs.addPreference(new PrivacyPreferences()); - prefs.addPreference(new DeveloperOptionsPreferences()); - prefs.addPreference(new AboutPreferences()); + + RootPrefExtsKt.addRootPreferences(prefs); final var args = new Bundle(); args.putParcelableArrayList( diff --git a/app/src/main/java/com/itsaky/androidide/preferences/aboutPrefExts.kt b/app/src/main/java/com/itsaky/androidide/preferences/aboutPrefExts.kt new file mode 100644 index 000000000..c1db4d767 --- /dev/null +++ b/app/src/main/java/com/itsaky/androidide/preferences/aboutPrefExts.kt @@ -0,0 +1,77 @@ +/* + * This file is part of AndroidIDE. + * + * AndroidIDE is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * AndroidIDE is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with AndroidIDE. If not, see . + */ + +package com.itsaky.androidide.preferences + +import android.content.Intent +import com.itsaky.androidide.activities.AboutActivity +import com.itsaky.androidide.app.BaseApplication +import com.itsaky.androidide.app.IDEApplication +import com.itsaky.androidide.resources.R +import kotlinx.parcelize.Parcelize + +private const val KEY_GITHUB = "idepref_gh" +private const val KEY_TG_CHANNEL = "idepref_tg_channel" +private const val KEY_TG_GROUP = "idepref_tg_group" +private const val KEY_CHANGELOG = "idepref_changelog" +private const val KEY_ABOUT = "idepref_about" + +val github = + SimpleClickablePreference( + key = KEY_GITHUB, + title = R.string.title_github, + summary = R.string.idepref_github_summary + ) { + BaseApplication.getBaseInstance().openGitHub() + true + } +val channel = + SimpleClickablePreference( + key = KEY_TG_CHANNEL, + title = R.string.official_tg_channel, + summary = R.string.idepref_channel_summary + ) { + BaseApplication.getBaseInstance().openTelegramChannel() + true + } +val group = + SimpleClickablePreference( + key = KEY_TG_GROUP, + title = R.string.discussions_on_telegram, + summary = R.string.idepref_group_summary + ) { + BaseApplication.getBaseInstance().openTelegramGroup() + true + } +val changelog = + SimpleClickablePreference( + key = KEY_CHANGELOG, + title = R.string.pref_changelog, + summary = R.string.idepref_changelog_summary + ) { + IDEApplication.instance.showChangelog() + true + } +val about = + SimpleClickablePreference( + key = KEY_ABOUT, + title = R.string.idepref_about_title, + summary = R.string.idepref_about_summary + ) { + it.context.startActivity(Intent(it.context, AboutActivity::class.java)) + true + } \ No newline at end of file diff --git a/app/src/main/java/com/itsaky/androidide/preferences/buildAndRun.kt b/app/src/main/java/com/itsaky/androidide/preferences/buildAndRunPrefExts.kt similarity index 100% rename from app/src/main/java/com/itsaky/androidide/preferences/buildAndRun.kt rename to app/src/main/java/com/itsaky/androidide/preferences/buildAndRunPrefExts.kt diff --git a/app/src/main/java/com/itsaky/androidide/preferences/common.kt b/app/src/main/java/com/itsaky/androidide/preferences/commonPrefExts.kt similarity index 100% rename from app/src/main/java/com/itsaky/androidide/preferences/common.kt rename to app/src/main/java/com/itsaky/androidide/preferences/commonPrefExts.kt diff --git a/app/src/main/java/com/itsaky/androidide/preferences/developerOptions.kt b/app/src/main/java/com/itsaky/androidide/preferences/developerOptionsPrefExts.kt similarity index 100% rename from app/src/main/java/com/itsaky/androidide/preferences/developerOptions.kt rename to app/src/main/java/com/itsaky/androidide/preferences/developerOptionsPrefExts.kt diff --git a/app/src/main/java/com/itsaky/androidide/preferences/editor.kt b/app/src/main/java/com/itsaky/androidide/preferences/editorPrefExts.kt similarity index 100% rename from app/src/main/java/com/itsaky/androidide/preferences/editor.kt rename to app/src/main/java/com/itsaky/androidide/preferences/editorPrefExts.kt diff --git a/app/src/main/java/com/itsaky/androidide/preferences/general.kt b/app/src/main/java/com/itsaky/androidide/preferences/generalPrefExts.kt similarity index 100% rename from app/src/main/java/com/itsaky/androidide/preferences/general.kt rename to app/src/main/java/com/itsaky/androidide/preferences/generalPrefExts.kt diff --git a/app/src/main/java/com/itsaky/androidide/preferences/javaPrefs.kt b/app/src/main/java/com/itsaky/androidide/preferences/javaPrefExts.kt similarity index 100% rename from app/src/main/java/com/itsaky/androidide/preferences/javaPrefs.kt rename to app/src/main/java/com/itsaky/androidide/preferences/javaPrefExts.kt diff --git a/app/src/main/java/com/itsaky/androidide/preferences/root.kt b/app/src/main/java/com/itsaky/androidide/preferences/rootPrefExts.kt similarity index 56% rename from app/src/main/java/com/itsaky/androidide/preferences/root.kt rename to app/src/main/java/com/itsaky/androidide/preferences/rootPrefExts.kt index 0e1010906..703039e44 100644 --- a/app/src/main/java/com/itsaky/androidide/preferences/root.kt +++ b/app/src/main/java/com/itsaky/androidide/preferences/rootPrefExts.kt @@ -17,64 +17,16 @@ package com.itsaky.androidide.preferences -import android.content.Intent -import com.itsaky.androidide.activities.AboutActivity -import com.itsaky.androidide.app.BaseApplication -import com.itsaky.androidide.app.IDEApplication +import com.itsaky.androidide.resources.R import com.itsaky.androidide.resources.R.string import kotlinx.parcelize.Parcelize -private const val KEY_GITHUB = "idepref_gh" -private const val KEY_TG_CHANNEL = "idepref_tg_channel" -private const val KEY_TG_GROUP = "idepref_tg_group" -private const val KEY_CHANGELOG = "idepref_changelog" -private const val KEY_ABOUT = "idepref_about" - -val github = - SimpleClickablePreference( - key = KEY_GITHUB, - title = string.title_github, - summary = string.idepref_github_summary - ) { - BaseApplication.getBaseInstance().openGitHub() - true - } -val channel = - SimpleClickablePreference( - key = KEY_TG_CHANNEL, - title = string.official_tg_channel, - summary = string.idepref_channel_summary - ) { - BaseApplication.getBaseInstance().openTelegramChannel() - true - } -val group = - SimpleClickablePreference( - key = KEY_TG_GROUP, - title = string.discussions_on_telegram, - summary = string.idepref_group_summary - ) { - BaseApplication.getBaseInstance().openTelegramGroup() - true - } -val changelog = - SimpleClickablePreference( - key = KEY_CHANGELOG, - title = string.pref_changelog, - summary = string.idepref_changelog_summary - ) { - IDEApplication.instance.showChangelog() - true - } -val about = - SimpleClickablePreference( - key = KEY_ABOUT, - title = string.idepref_about_title, - summary = string.idepref_about_summary - ) { - it.context.startActivity(Intent(it.context, AboutActivity::class.java)) - true - } +internal fun IDEPreferences.addRootPreferences() { + addPreference(ConfigurationPreferences()) + addPreference(PrivacyPreferences()) + addPreference(DeveloperOptionsPreferences()) + addPreference(AboutPreferences()) +} @Parcelize class ConfigurationPreferences( @@ -117,7 +69,7 @@ class DeveloperOptionsPreferences( @Parcelize class AboutPreferences( override val key: String = "idepref_category_about", - override val title: Int = string.about, + override val title: Int = R.string.about, override val children: List = mutableListOf() ) : IPreferenceGroup() { diff --git a/app/src/main/java/com/itsaky/androidide/preferences/stats.kt b/app/src/main/java/com/itsaky/androidide/preferences/statPrefExts.kt similarity index 100% rename from app/src/main/java/com/itsaky/androidide/preferences/stats.kt rename to app/src/main/java/com/itsaky/androidide/preferences/statPrefExts.kt diff --git a/app/src/main/java/com/itsaky/androidide/preferences/xmlPrefs.kt b/app/src/main/java/com/itsaky/androidide/preferences/xmlPrefExts.kt similarity index 100% rename from app/src/main/java/com/itsaky/androidide/preferences/xmlPrefs.kt rename to app/src/main/java/com/itsaky/androidide/preferences/xmlPrefExts.kt