All notable changes to this project will be documented in this file, this project
uses semantic versioning 2.0.0 spec in the format
major.minor.patch(-prerelease)(+buildmetadata).
Added: New featuresChanges: Changes in existing functionalityDeprecated: Soon-to-be removed featuresRemoved: Now removed featuresFixed: Bug fixesSecurity: VulnerabilitiesDocs: Documentation updatesContributors: Release contributorsFSC-ID: Firebase Crashlytics Issue ID
09-03-2025(Sunday, Mar 9, 2025)
Unfortunately I am unable to publish 1.1.0 because I lost the source code which is painful. The goal currently is to make sure this project works properly across the supported Android APIs Until I can recover the lost codes I would not implement certain feats, fixes and improvements
- Crashlytics and Analytics are now automatically sent, user can opt out in the setting
- The
ast-corelibrary until further notice.
09-03-2025(Sunday, Mar 9, 2025)
- Buffer size selection for dynamic IO operations
- Facebook page link to
Socials - Projects created from templates are now added to the recent project list
- File system monitoring
- Moved some pane window functionality from
BaseFragment.javatoPaneUtil.java - Removed support for editing removable storage volume:
- I'm working on a dual state file system API
MetaDocument.javathat uses bothFileandDocumentAPI'
- I'm working on a dual state file system API
- Updated inline copyright within all supported file type, ps: it's a new year
- Disable auto-rotate until i figure out how to stop code editor pane duplication
- Optimised
BinaryFileChecker.javato use weight instead of a majority rule system - Optimised
CodeEditor Paneto use resources optimally. - Optimised
BaseFragment.javato handle resources optimally. - File rename logic
- Code editor settings
Pin line numbersync; in terms which works Relative close depthsync; New configuration is synced in realtime with the Code Editor so you don't restart the app to apply the changes.Auto closing bracketssync; New configuration is synced in realtime to the Code Editor so you don't restart the app to apply the changes.Close unpinned project panessync; New configuration is synced in realtime so you don't restart the app to apply the changes.- Generally i've made a lot of improvements i still failed to track.
- Release notes support either plane text or html text.
-
Fix: Opened Issues
-
Fix: False positives within the
BinaryFileChecker -
Fix: Crash on android devices 11 and above due to storage related issues
- Summary: Crash occurs when user tries to perform file/folder selection
-
Fix: Crash on that occurs at certain times when user tries perform the
Clone git repositoryaction- Summary: This error occurred because the
Layout bindingwas initialized later i.e after the VM observer atGitRepository.java:123
- Summary: This error occurred because the
-
Fix: Failure to activate Code Editor
pin line numberpreference- Summary: Logic for this preference to be activated was not implemented
-
Fix: Sync error that occurred when refreshing the Code Editor color scheme
- Summary: If the
Auto complete windowpreference is disabled when ever the editor color scheme is refreshed the autocomplete window is displayed.
- Summary: If the
-
Fix: Failure to enable or disable
Font ligatureswhen the preference is selected- Summary: Logic to sync this feature with the Code Editor was not implemented
-
A lot of bug fixes were made, i only added those which were worth taking note of.
- Opening and editing files from a removable storage
26-12-2024(Thursday, Dec 26, 2024)
- Extra symbols for the input panel
- The input action MCR, MCL, MCU, MCD are essentially cursor actions where M (Move), C (Cursor), L( Left), R(Right), U(Up), D(Down)
- Moved Uri to file conversion from FileUtil to independent class
FileUriMediator.java - Decoupled storage permission handling to
MainActiviy.javafromMainFragment.java - Slowly migrating code base to more structural format
- Storage permission management
- Optimised the
ContextLifeCycleObserver.javaclass to handle URI related task gracefully - Optimised
LiveServer.javato load files optimally. - Optimised case conversion for
ContextualCodeEditor.java - Generally i've made a lot of improvements i failed to track.
-
Fix: Workaround for loading files via
LiveServerin theWebViewPane.javato an actual solution- Summary: Prior to this release when you init the
LiveServerthere is Ui lag due to the blocking operation, workaround was to load portion of the result and wait for the UI to settled before loading the blocking code.
- Summary: Prior to this release when you init the
-
Fix: Fixed the horrible crash that occurs when you select a file or folder
- Summary: Prior to this release crashes were a lot to often, i found that it mostly occurs on device with higher APIS
-
Crash when selecting a directory on android devices 11 and above
-
ArrayOutOfBoundExceptionthat occurs when we split the document id on certain dirs like ( emulated root(primary) & document(home) -
Failure to request storage permission on Android devices 11 and above
13-09-2024 (Thursday, Sep 13, 2024)
- Option to refresh file tree
- AST core module for future Node management
- Support for
.apkfile installation - Progress listener for case conversion in the
ContextualCodeEditor - Support for more symbols auto completions
\„ “ « ‚ ‘ ‹`
- Disable code obfuscation and resource shrinking
minifyEnabledandshrinkResources= falsebecause it breaks CodeOps Studio.
- Optimized file tree loading performance and reduced memory usage
- JavaDoc improvements
- Refactored Code base
Paneclass ID generation: shared ID list for all instances of thePaneclassPaneclass ID generation method:Pane#generateUUID()- Optimized
Wizard#getDeviceCountry(Context)method to retrieve the name of Country a device is currently in. Crashlytics now collects the actual Country Name instead of theDevice Locale - Revamp detection of invalid last opened project before opening
- Optimized
IdeApplicationandCrashActivityfor handling crash intent - Revamped
TreeView-TreeNodechildren sorting comparator - Optimised
ContextualCodeEditor#toLowerCase(String)andContextualCodeEditor#toUpperCase(String)method by reducing time complexity from O(n^2) to O(n) that was caused by thestring = string + ...reallocation - Case conversion by the
ContextualCodeEditoris now possible even whenClipBoardlimit is exceeded - Optimized line text duplication by the
CodeEditor - Optimized binary file detection, before a file is flagged as binary we compare how many times it
has been flagged as a binary across multiple
check+pointsagainst how many times it didn't, making the whole process more effective.
-
Fix: Case conversion failure.
- Summary: Case conversion failed because the result from the
AsyncTask#runNonCancelablewas not parsed into the editor.
- Summary: Case conversion failed because the result from the
-
Fix: Crash when parsing a string into
ReleaseType(String)in ChangelogAdapter due toNullPointerException- Summary: App crashed when trying to load saved release notes due on a null object
ReleaseType(null)reference in ChangelogAdapter.
- Summary: App crashed when trying to load saved release notes due on a null object
-
Fix: Pane Tab duplication. Proguard actually broke the project so it's disabled until further notice.
-
Fix:
CodeEditorPanepersistency.CodeEditorPanenow loads persisted arguments and restores them accordingly without text content history -
Fix: Failure to properly detect invalid projects when loading the last opened project.
- Summary: App crashed as a result of a null file path being passed to the
File.existsmethod
- Summary: App crashed as a result of a null file path being passed to the
-
Fix: Crash due to null
Logobject inLog.equals()method*- Summary: The app crashes with a
NullPointerExceptionwhen theequals()method is invoked on a nullLogobject in theLog.equals()method. This issue arises during item comparisons in theRecyclerView, particularly when updating the list usingAsyncListDifferin theLogAdapter. The crash often occurs when selecting an unsupportedUri. - Resolved Issue#10
- FCS-ID:
33308dfde6721aa4e51f9010a1f307ea
- Summary: The app crashes with a
-
Fix: Crash when accessing a null
CircularProgressIndicatorinCodeEditorPane.setLoading()- Summary: The app crashed due to a
NullPointerExceptionwhen attempting to access a nullCircularProgressIndicatorin theCodeEditorPane.setLoading()method. This occurred while loading a file, where theprogressbarwas not properly initialized. - Resolved Issue#9
- FCS-ID:
fcc3d4f7d3825fd148be619cf777948b
- Summary: The app crashed due to a
-
Fix: Crash when accessing null
ContextualCodeEditorinCodeEditorPane.canUndo()- Summary: The app crashed due to a
NullPointerExceptionwhen attempting to access a nullContextualCodeEditorobject in theCodeEditorPane.canUndo()method. This occurred during the preparation of the toolbar options menu when the undo state was being checked. - Resolved Issue#8
- FCS-ID:
c6f4d617cc63acaa3fe262dbb1e948ca
- Summary: The app crashed due to a
-
Fix: Crash when accessing a null
ViewHolderinRecyclerView- Summary: App crashed due to a
NullPointerExceptionwhen trying to reference a nullViewHolderin theRecyclerView. - Resolved Issue#7
- FCS-ID:
c12fd425b630739a67de5d35ea207be5
- Summary: App crashed due to a
-
Fix: JavaScript engine initialization failure. The issue was due to a failure in creating the VMBridge instance, and further investigation is needed to resolve the underlying problem.
- Summary: App crashed due to an
IllegalStateExceptionwhen attempting to initialize the JavaScript engine, specifically related to the VMBridge instance creation failure. - Resolved Issue#6
- FCS-ID:
8c42fe20ec460f1f2bb87c206438081f
- Summary: App crashed due to an
-
Fix:
TreeViewFragmentcontext attachment issue.- Summary: App crashed due to an
IllegalStateExceptionwhen attempting to access the fragment's context while it was not attached. - Resolved Issue#5
- FCS-ID:
5665f61e9b837932df3c90422eccb283
- Summary: App crashed due to an
-
Fix:
ChangeLogFragmentnull reference issue.ChangeLogFragmentnow correctly handles nullRecyclerViewreferences, preventing crashes when checking if logs are loaded.- Summary: App crashed due to a null
RecyclerViewreference being accessed in thecheckIfLoaded()method. - Resolved Issue#4
- FCS-ID:
4dfd5aed0ff4905420e59f5b3b09ce90
- Summary: App crashed due to a null
-
Fix:
NullPointerExceptionwhen handling back press inSettingsPanedue to nullFragment- Summary: App crashed because a null
Fragmentwas passed to theequals()method in theisPrimaryNavigation()check. - Resolved Issue#3
- FCS-ID:
516de67b0dd6824a7aec7f8bd411974d
- Summary: App crashed because a null
-
Fix: Crash when binding log data in the
LogAdapterdue toNullPointerException- Summary: App crashed when a null
CharSequencewas passed to theSpannableStringBuilder.append()method inonBindViewHolder() - Resolved Issue#2
- FCS-ID:
50dfb50c980fcffba644e7fa8debbafd
- Summary: App crashed when a null
-
Fix: Crash when accessing recent projects in the
WelcomePaneclass due toNullPointerException- Summary: App crashed as a result of a null file path being passed to the
File.existsmethod - Resolved Issue#1
- FCS-ID:
ba22d747cbd53061443dfc1c7a7698bf
- Summary: App crashed as a result of a null file path being passed to the
- Improved README
- Improved CONTRIBUTING