Merged
Conversation
- Replace IArcusMenu/ArcusMenu with XML menu resource - Replace DictionaryConstants bag with PartOfSpeech enum and co-located constants - Delete ArcusDictionaryMockObjects, ArcusFavouritesActivity, dead code throughout - Migrate EditPreferencesActivity from deprecated PreferenceActivity to PreferenceFragmentCompat - Make DataFileManager self-contained; remove context threading through ArcusDictionary - Move ArcusApplication.dictionary to lazy instance property - Add SortOrder enum to FavouritesDbHelper; fix isFavourite to use COUNT(*) - Fix WordModel.type mutation in view layer; make type a val - Decouple QuickResultListAdapter from ArcusSearchActivity via Callbacks interface - Migrate ListView to RecyclerView with ViewHolder pattern - Replace Thread/Handler/Runnable with coroutines (lifecycleScope) - Replace onKeyDown back handling with OnBackPressedCallback - Add SearchViewModel for sortMethod and previousWord state - Remove dead onActivityResult, onConfigurationChanged, unused Pattern field Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
IArcusMenu/ArcusMenu(interface with single implementation, tightly coupled to Activity); replaced with standard XML menu resource and inline handlersDictionaryConstantsbag-of-constants; replaced part-of-speech data with aPartOfSpeechenum, moved remaining constants to their natural homesArcusDictionaryMockObjects,ArcusFavouritesActivity, unusedPatternfield,onActivityResult(was unreachable),onConfigurationChanged,doWarningNoOpEditPreferencesActivityfrom deprecatedPreferenceActivitytoPreferenceFragmentCompat; removed deaduseAutoCorrectpreference keyDataFileManagerself-contained (stores context at construction);ArcusDictionary.ensureLoaded()no longer needs a context param;ArcusApplication.dictionaryis now aby lazyinstance propertySortOrderenum toFavouritesDbHelper(closes SQL injection vector from raw sort strings); fixedisFavouriteto useSELECT COUNT(*)instead ofSELECT *WordModel.typechanged fromvartoval; removed mutation of the model insidegetView()QuickResultListAdapterno longer referencesArcusSearchActivity; communicates via aCallbacksinterfaceListViewand hand-rolledListAdapter(12 boilerplate methods) withRecyclerView.Adapter+ViewHolderThread/Handler/Runnable/SearchHandlerwithlifecycleScope+ coroutinesonKeyDownwithOnBackPressedCallbackSearchViewModelforsortMethodandpreviousWordstateTest plan
🤖 Generated with Claude Code