Skip to content
This repository was archived by the owner on Oct 18, 2024. It is now read-only.

Commit 765d81b

Browse files
committed
fix: move pref props from top-level to class fields
1 parent 108cb00 commit 765d81b

File tree

56 files changed

+1117
-1085
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

56 files changed

+1117
-1085
lines changed

app/src/main/java/com/itsaky/androidide/activities/MainActivity.kt

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,7 @@ import com.google.android.material.transition.MaterialSharedAxis
3131
import com.itsaky.androidide.activities.editor.EditorActivityKt
3232
import com.itsaky.androidide.app.LimitlessIDEActivity
3333
import com.itsaky.androidide.databinding.ActivityMainBinding
34-
import com.itsaky.androidide.preferences.internal.NO_OPENED_PROJECT
35-
import com.itsaky.androidide.preferences.internal.autoOpenProjects
36-
import com.itsaky.androidide.preferences.internal.confirmProjectOpen
37-
import com.itsaky.androidide.preferences.internal.lastOpenedProject
34+
import com.itsaky.androidide.preferences.internal.GeneralPreferences
3835
import com.itsaky.androidide.projects.ProjectManagerImpl
3936
import com.itsaky.androidide.resources.R.string
4037
import com.itsaky.androidide.templates.ITemplateProvider
@@ -158,12 +155,12 @@ class MainActivity : LimitlessIDEActivity() {
158155
}
159156

160157
private fun tryOpenLastProject() {
161-
if (!autoOpenProjects) {
158+
if (!GeneralPreferences.autoOpenProjects) {
162159
return
163160
}
164161

165-
val openedProject = lastOpenedProject
166-
if (NO_OPENED_PROJECT == openedProject) {
162+
val openedProject = GeneralPreferences.lastOpenedProject
163+
if (GeneralPreferences.NO_OPENED_PROJECT == openedProject) {
167164
return
168165
}
169166

@@ -179,7 +176,7 @@ class MainActivity : LimitlessIDEActivity() {
179176
return
180177
}
181178

182-
if (confirmProjectOpen) {
179+
if (GeneralPreferences.confirmProjectOpen) {
183180
askProjectOpenPermission(project)
184181
return
185182
}

app/src/main/java/com/itsaky/androidide/activities/OnboardingActivity.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@ import com.itsaky.androidide.fragments.onboarding.OnboardingInfoFragment
3535
import com.itsaky.androidide.fragments.onboarding.PermissionsFragment
3636
import com.itsaky.androidide.fragments.onboarding.StatisticsFragment
3737
import com.itsaky.androidide.models.JdkDistribution
38+
import com.itsaky.androidide.preferences.internal.StatPreferences
3839
import com.itsaky.androidide.preferences.internal.prefManager
39-
import com.itsaky.androidide.preferences.internal.statConsentDialogShown
4040
import com.itsaky.androidide.tasks.launchAsyncWithProgress
4141
import com.itsaky.androidide.ui.themes.IThemeManager
4242
import com.itsaky.androidide.utils.Environment
@@ -119,9 +119,9 @@ class OnboardingActivity : AppIntro2() {
119119
return
120120
}
121121

122-
if (!statConsentDialogShown) {
122+
if (!StatPreferences.statConsentDialogShown) {
123123
addSlide(StatisticsFragment.newInstance(this))
124-
statConsentDialogShown = true
124+
StatPreferences.statConsentDialogShown = true
125125
}
126126

127127
if (!PermissionsFragment.areAllPermissionsGranted(this)) {
@@ -178,7 +178,7 @@ class OnboardingActivity : AppIntro2() {
178178

179179
private fun isSetupCompleted(): Boolean {
180180
return checkToolsIsInstalled()
181-
&& statConsentDialogShown
181+
&& StatPreferences.statConsentDialogShown
182182
&& PermissionsFragment.areAllPermissionsGranted(this)
183183
}
184184

app/src/main/java/com/itsaky/androidide/activities/editor/BaseEditorActivity.kt

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ import com.itsaky.androidide.models.DiagnosticGroup
6565
import com.itsaky.androidide.models.OpenedFile
6666
import com.itsaky.androidide.models.Range
6767
import com.itsaky.androidide.models.SearchResult
68-
import com.itsaky.androidide.preferences.internal.launchAppAfterInstall
68+
import com.itsaky.androidide.preferences.internal.BuildPreferences
6969
import com.itsaky.androidide.projects.IProjectManager
7070
import com.itsaky.androidide.projects.ProjectManagerImpl
7171
import com.itsaky.androidide.tasks.cancelIfActive
@@ -203,7 +203,7 @@ abstract class BaseEditorActivity : IDEActivity(), TabLayout.OnTabSelectedListen
203203

204204
val packageName = onResult(this, intent) ?: return
205205

206-
if (launchAppAfterInstall) {
206+
if (BuildPreferences.launchAppAfterInstall) {
207207
IntentUtils.launchApp(this, packageName)
208208
return
209209
}
@@ -400,7 +400,8 @@ abstract class BaseEditorActivity : IDEActivity(), TabLayout.OnTabSelectedListen
400400

401401
private fun handleUiDesignerResult(result: ActivityResult) {
402402
if (result.resultCode != RESULT_OK || result.data == null) {
403-
log.warn("UI Designer returned invalid result: resultCode={}, data={}", result.resultCode, result.data)
403+
log.warn("UI Designer returned invalid result: resultCode={}, data={}", result.resultCode,
404+
result.data)
404405
return
405406
}
406407
val generated = result.data!!.getStringExtra(UIDesignerActivity.RESULT_GENERATED_XML)

app/src/main/java/com/itsaky/androidide/activities/editor/ProjectHandlerActivity.kt

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,7 @@ import com.itsaky.androidide.handlers.LspHandler.destroyLanguageServers
3838
import com.itsaky.androidide.lookup.Lookup
3939
import com.itsaky.androidide.lsp.IDELanguageClientImpl
4040
import com.itsaky.androidide.lsp.java.utils.CancelChecker
41-
import com.itsaky.androidide.preferences.internal.NO_OPENED_PROJECT
42-
import com.itsaky.androidide.preferences.internal.lastOpenedProject
41+
import com.itsaky.androidide.preferences.internal.GeneralPreferences
4342
import com.itsaky.androidide.projects.ProjectManagerImpl
4443
import com.itsaky.androidide.projects.api.GradleProject
4544
import com.itsaky.androidide.projects.builder.BuildService
@@ -495,7 +494,7 @@ abstract class ProjectHandlerActivity : BaseEditorActivity() {
495494
val initFailed = getString(string.msg_project_initialization_failed)
496495
setStatus(initFailed)
497496

498-
val msg = when(failure) {
497+
val msg = when (failure) {
499498
PROJECT_DIRECTORY_INACCESSIBLE -> string.msg_project_dir_inaccessible
500499
PROJECT_NOT_DIRECTORY -> string.msg_file_is_not_dir
501500
PROJECT_NOT_FOUND -> string.msg_project_dir_doesnt_exist
@@ -634,7 +633,7 @@ abstract class ProjectHandlerActivity : BaseEditorActivity() {
634633

635634
private fun initialSetup() {
636635
val manager = ProjectManagerImpl.getInstance()
637-
lastOpenedProject = manager.projectDirPath
636+
GeneralPreferences.lastOpenedProject = manager.projectDirPath
638637
try {
639638
val project = manager.rootProject
640639
if (project == null) {
@@ -662,7 +661,7 @@ abstract class ProjectHandlerActivity : BaseEditorActivity() {
662661
saveOpenedFiles()
663662

664663
// reset the lastOpenedProject if the user explicitly chose to close the project
665-
lastOpenedProject = NO_OPENED_PROJECT
664+
GeneralPreferences.lastOpenedProject = GeneralPreferences.NO_OPENED_PROJECT
666665
}
667666

668667
// Make sure we close files

app/src/main/java/com/itsaky/androidide/app/IDEApplication.kt

Lines changed: 14 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -43,13 +43,9 @@ import com.itsaky.androidide.events.EditorEventsIndex
4343
import com.itsaky.androidide.events.LspApiEventsIndex
4444
import com.itsaky.androidide.events.LspJavaEventsIndex
4545
import com.itsaky.androidide.events.ProjectsApiEventsIndex
46-
import com.itsaky.androidide.preferences.KEY_DEVOPTS_DEBUGGING_DUMPLOGS
47-
import com.itsaky.androidide.preferences.dumpLogs
48-
import com.itsaky.androidide.preferences.internal.SELECTED_LOCALE
49-
import com.itsaky.androidide.preferences.internal.STAT_OPT_IN
50-
import com.itsaky.androidide.preferences.internal.UI_MODE
51-
import com.itsaky.androidide.preferences.internal.statOptIn
52-
import com.itsaky.androidide.preferences.internal.uiMode
46+
import com.itsaky.androidide.preferences.internal.DevOpsPreferences
47+
import com.itsaky.androidide.preferences.internal.GeneralPreferences
48+
import com.itsaky.androidide.preferences.internal.StatPreferences
5349
import com.itsaky.androidide.resources.localization.LocaleProvider
5450
import com.itsaky.androidide.stats.AndroidIDEStats
5551
import com.itsaky.androidide.stats.StatUploadWorker
@@ -95,7 +91,7 @@ class IDEApplication : TermuxApplication() {
9591
StrictMode.setVmPolicy(
9692
StrictMode.VmPolicy.Builder(StrictMode.getVmPolicy()).penaltyLog().detectAll().build())
9793

98-
if (dumpLogs) {
94+
if (DevOpsPreferences.dumpLogs) {
9995
startLogcatReader()
10096
}
10197
}
@@ -106,7 +102,7 @@ class IDEApplication : TermuxApplication() {
106102

107103
EventBus.getDefault().register(this)
108104

109-
AppCompatDelegate.setDefaultNightMode(uiMode)
105+
AppCompatDelegate.setDefaultNightMode(GeneralPreferences.uiMode)
110106

111107
if (IThemeManager.getInstance().getCurrentTheme() == IDETheme.MATERIAL_YOU) {
112108
DynamicColors.applyToActivitiesIfAvailable(this)
@@ -155,21 +151,21 @@ class IDEApplication : TermuxApplication() {
155151

156152
fun reportStatsIfNecessary() {
157153

158-
if (!statOptIn) {
154+
if (!StatPreferences.statOptIn) {
159155
log.info("Stat collection is disabled.")
160156
return
161157
}
162158

163159
val constraints = Constraints.Builder().setRequiredNetworkType(NetworkType.CONNECTED).build()
164160
val request = PeriodicWorkRequestBuilder<StatUploadWorker>(Duration.ofHours(24)).setInputData(
165-
AndroidIDEStats.statData.toInputData()).setConstraints(constraints)
161+
AndroidIDEStats.statData.toInputData()).setConstraints(constraints)
166162
.addTag(StatUploadWorker.WORKER_WORK_NAME).build()
167163

168164
val workManager = WorkManager.getInstance(this)
169165

170166
log.info("reportStatsIfNecessary: Enqueuing StatUploadWorker...")
171167
val operation = workManager.enqueueUniquePeriodicWork(StatUploadWorker.WORKER_WORK_NAME,
172-
ExistingPeriodicWorkPolicy.UPDATE, request)
168+
ExistingPeriodicWorkPolicy.UPDATE, request)
173169

174170
operation.state.observeForever(object : Observer<Operation.State> {
175171
override fun onChanged(value: Operation.State) {
@@ -198,24 +194,24 @@ class IDEApplication : TermuxApplication() {
198194
@Subscribe(threadMode = ThreadMode.MAIN)
199195
fun onPrefChanged(event: PreferenceChangeEvent) {
200196
val enabled = event.value as? Boolean?
201-
if (event.key == STAT_OPT_IN) {
197+
if (event.key == StatPreferences.STAT_OPT_IN) {
202198
if (enabled == true) {
203199
reportStatsIfNecessary()
204200
} else {
205201
cancelStatUploadWorker()
206202
}
207-
} else if (event.key == KEY_DEVOPTS_DEBUGGING_DUMPLOGS) {
203+
} else if (event.key == DevOpsPreferences.KEY_DEVOPTS_DEBUGGING_DUMPLOGS) {
208204
if (enabled == true) {
209205
startLogcatReader()
210206
} else {
211207
stopLogcatReader()
212208
}
213-
} else if (event.key == UI_MODE && uiMode != AppCompatDelegate.getDefaultNightMode()) {
214-
AppCompatDelegate.setDefaultNightMode(uiMode)
215-
} else if (event.key == SELECTED_LOCALE) {
209+
} else if (event.key == GeneralPreferences.UI_MODE && GeneralPreferences.uiMode != AppCompatDelegate.getDefaultNightMode()) {
210+
AppCompatDelegate.setDefaultNightMode(GeneralPreferences.uiMode)
211+
} else if (event.key == GeneralPreferences.SELECTED_LOCALE) {
216212

217213
// Use empty locale list if the locale has been reset to 'System Default'
218-
val selectedLocale = com.itsaky.androidide.preferences.internal.selectedLocale
214+
val selectedLocale = GeneralPreferences.selectedLocale
219215
val localeListCompat = selectedLocale?.let {
220216
LocaleListCompat.create(LocaleProvider.getLocale(selectedLocale))
221217
} ?: LocaleListCompat.getEmptyLocaleList()

app/src/main/java/com/itsaky/androidide/app/configuration/JdkDistributionProviderImpl.kt

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ package com.itsaky.androidide.app.configuration
1919

2020
import com.google.auto.service.AutoService
2121
import com.itsaky.androidide.models.JdkDistribution
22-
import com.itsaky.androidide.preferences.internal.javaHome
22+
import com.itsaky.androidide.preferences.internal.BuildPreferences
2323
import com.itsaky.androidide.utils.Environment
2424
import com.itsaky.androidide.utils.JdkUtils
2525
import org.slf4j.LoggerFactory
@@ -49,7 +49,7 @@ class JdkDistributionProviderImpl : IJdkDistributionProvider {
4949
return JdkUtils.findJavaInstallations().also { distributions ->
5050

5151
// set the default value for the 'javaHome' preference
52-
if (javaHome.isBlank() && distributions.isNotEmpty()) {
52+
if (BuildPreferences.javaHome.isBlank() && distributions.isNotEmpty()) {
5353
var defaultDist = distributions.find {
5454
it.javaVersion.startsWith(IJdkDistributionProvider.DEFAULT_JAVA_VERSION)
5555
}
@@ -59,10 +59,10 @@ class JdkDistributionProviderImpl : IJdkDistributionProvider {
5959
defaultDist = distributions[0]
6060
}
6161

62-
javaHome = defaultDist.javaHome
62+
BuildPreferences.javaHome = defaultDist.javaHome
6363
}
6464

65-
val home = File(javaHome)
65+
val home = File(BuildPreferences.javaHome)
6666
val java = File(home, "bin/java")
6767

6868
// the previously selected JDK distribution does not exist
@@ -71,17 +71,17 @@ class JdkDistributionProviderImpl : IJdkDistributionProvider {
7171
if (distributions.isNotEmpty()) {
7272
log.warn(
7373
"Previously selected java.home does not exists! Falling back to ${distributions[0]}...")
74-
javaHome = distributions[0].javaHome
74+
BuildPreferences.javaHome = distributions[0].javaHome
7575
}
7676
}
7777

7878
if (!java.canExecute()) {
7979
java.setExecutable(true)
8080
}
8181

82-
log.debug("Setting Environment.JAVA_HOME to {}", javaHome)
82+
log.debug("Setting Environment.JAVA_HOME to {}", BuildPreferences.javaHome)
8383

84-
Environment.JAVA_HOME = File(javaHome)
84+
Environment.JAVA_HOME = File(BuildPreferences.javaHome)
8585
Environment.JAVA = Environment.JAVA_HOME.resolve("bin/java")
8686
}
8787
}

app/src/main/java/com/itsaky/androidide/fragments/onboarding/StatisticsFragment.kt

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import android.view.ViewGroup
66
import com.itsaky.androidide.R
77
import com.itsaky.androidide.app.IDEApplication
88
import com.itsaky.androidide.databinding.LayoutOnboardingStatisticsBinding
9-
import com.itsaky.androidide.preferences.internal.statOptIn
109

1110
class StatisticsFragment : OnboardingFragment() {
1211

@@ -15,12 +14,15 @@ class StatisticsFragment : OnboardingFragment() {
1514
get() = checkNotNull(_content) { "Fragment has been destroyed" }
1615

1716
companion object {
17+
1818
@JvmStatic
19-
fun newInstance(context: Context) : StatisticsFragment {
19+
fun newInstance(context: Context): StatisticsFragment {
2020
return StatisticsFragment().apply {
2121
arguments = Bundle().apply {
22-
putCharSequence(KEY_ONBOARDING_TITLE, context.getString(R.string.title_androidide_statistics))
23-
putCharSequence(KEY_ONBOARDING_SUBTITLE, context.getString(R.string.idepref_stats_optIn_summary))
22+
putCharSequence(KEY_ONBOARDING_TITLE,
23+
context.getString(R.string.title_androidide_statistics))
24+
putCharSequence(KEY_ONBOARDING_SUBTITLE,
25+
context.getString(R.string.idepref_stats_optIn_summary))
2426
}
2527
}
2628
}
@@ -37,7 +39,9 @@ class StatisticsFragment : OnboardingFragment() {
3739
}
3840

3941
fun updateStatOptInStatus() {
40-
statOptIn = _content?.statOptIn?.isChecked ?: false
42+
com.itsaky.androidide.preferences.internal.StatPreferences.statOptIn =
43+
_content?.statOptIn?.isChecked ?: false
44+
4145
IDEApplication.instance.reportStatsIfNecessary()
4246
}
4347
}

app/src/main/java/com/itsaky/androidide/fragments/output/AppLogFragment.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import android.os.Bundle
2525
import android.view.View
2626
import androidx.localbroadcastmanager.content.LocalBroadcastManager
2727
import com.itsaky.androidide.R
28-
import com.itsaky.androidide.preferences.logsenderEnabled
28+
import com.itsaky.androidide.preferences.internal.DevOpsPreferences
2929
import com.itsaky.androidide.services.log.ConnectionObserverParams
3030
import com.itsaky.androidide.services.log.LogReceiverImpl
3131
import com.itsaky.androidide.services.log.LogReceiverService
@@ -86,7 +86,7 @@ class AppLogFragment : LogViewFragment() {
8686

8787
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
8888
super.onViewCreated(view, savedInstanceState)
89-
emptyStateViewModel.emptyMessage.value = if (logsenderEnabled) {
89+
emptyStateViewModel.emptyMessage.value = if (DevOpsPreferences.logsenderEnabled) {
9090
getString(R.string.msg_emptyview_applogs)
9191
} else {
9292
getString(R.string.msg_logsender_disabled)
@@ -125,7 +125,7 @@ class AppLogFragment : LogViewFragment() {
125125

126126
private fun bindToLogReceiver() {
127127
try {
128-
if (!logsenderEnabled) {
128+
if (!DevOpsPreferences.logsenderEnabled) {
129129
log.info("LogSender is disabled. LogReceiver service won't be started...")
130130

131131
// release the connection listener
@@ -135,7 +135,7 @@ class AppLogFragment : LogViewFragment() {
135135

136136
val context = context ?: return
137137
val intent = Intent(context, LogReceiverService::class.java).setAction(
138-
LogReceiverService.ACTION_CONNECT_LOG_CONSUMER)
138+
LogReceiverService.ACTION_CONNECT_LOG_CONSUMER)
139139

140140
val serviceConnection = logServiceConnection ?: LogReceiverServiceConnection { binder ->
141141
logReceiverImpl = binder
@@ -155,7 +155,7 @@ class AppLogFragment : LogViewFragment() {
155155

156156
private fun unbindFromLogReceiver() {
157157
try {
158-
if (!logsenderEnabled) {
158+
if (!DevOpsPreferences.logsenderEnabled) {
159159
return
160160
}
161161

app/src/main/java/com/itsaky/androidide/handlers/EditorBuildEventListener.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ package com.itsaky.androidide.handlers
1919

2020
import com.itsaky.androidide.R
2121
import com.itsaky.androidide.activities.editor.EditorHandlerActivity
22-
import com.itsaky.androidide.preferences.internal.isFirstBuild
22+
import com.itsaky.androidide.preferences.internal.GeneralPreferences
2323
import com.itsaky.androidide.resources.R.string
2424
import com.itsaky.androidide.services.builder.GradleBuildService
2525
import com.itsaky.androidide.tooling.api.messages.result.BuildInfo
@@ -63,7 +63,7 @@ class EditorBuildEventListener : GradleBuildService.EventListener {
6363
override fun prepareBuild(buildInfo: BuildInfo) {
6464
checkActivity("prepareBuild") ?: return
6565

66-
val isFirstBuild = isFirstBuild
66+
val isFirstBuild = GeneralPreferences.isFirstBuild
6767
activity
6868
.setStatus(
6969
activity.getString(if (isFirstBuild) string.preparing_first else string.preparing)
@@ -87,7 +87,7 @@ class EditorBuildEventListener : GradleBuildService.EventListener {
8787

8888
analyzeCurrentFile()
8989

90-
isFirstBuild = false
90+
GeneralPreferences.isFirstBuild = false
9191
activity.editorViewModel.isBuildInProgress = false
9292

9393
activity.flashSuccess(R.string.build_status_sucess)
@@ -106,7 +106,7 @@ class EditorBuildEventListener : GradleBuildService.EventListener {
106106

107107
analyzeCurrentFile()
108108

109-
isFirstBuild = false
109+
GeneralPreferences.isFirstBuild = false
110110
activity.editorViewModel.isBuildInProgress = false
111111

112112
activity.flashError(R.string.build_status_failed)

0 commit comments

Comments
 (0)