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)
- 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.java
toPaneUtil.java
- Removed support for editing removeable storage volume:
- I'm working on a dual state file system API
MetaDocument.java
that uses bothFile
andDocument
API
'
- 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
- Optmised
BinaryFileChecker.java
to use weight instead of a majority rule system - Optmised
CodeEditor Pane
to use resources optimally. - Optmised
BaseFragment.java
to handle resources optimally. - File rename logic
- Code editor settings
Pin line number
sync; in terms which works Relative close depth
sync; New configuration is synced in realtime with the Code Editor so you don't restart the app to apply the changes.Auto closing brackets
sync; New configuration is synced in realtime to the Code Editor so you don't restart the app to apply the changes.Close unpinned project panes
sync; New configuration is synced in realtime so you don't restart the app to apply the changes.- Generally i've made alot 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 repository
action- Summary: This error occurred because the
Layout binding
was 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 number
perference- Summary: Logic for this perference to be activated was not implemented
-
Fix: Sync error that occurred when refreshing the Code Editor color scheme
- Summary: If the
Auto complete window
preference 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 ligatures
when the preference is selected- Summary: Logic to sync this feature with the Code Editor was not implemented
-
Alot of bug fixes were made, i only added those which were worth taking note of.
- Opening and editing files from a removeable 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.java
fromMainFragment.java
- Slowly migrating code base to more structural format
- Storage permission management
- Optimised the
ContextLifeCycleObserver.java
class to handle URI related task gracefully - Optimised
LiveServer.java
to load files optimally. - Optimised case conversion for
ContextualCodeEditor.java
- Generally i've made alot of improvements i failed to track.
-
Fix: Workaround for loading files via
LiveServer
in theWebViewPane.java
to an actual solution- Summary: Prior to this release when you init the
LiveServer
there 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 alot to often, i found that it mostly occurs on device with higher APIS
-
Crash when selecting a directory on android devices 11 and above
-
ArrayOutOfBoundException
that 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 managment
- Support for
.apk
file installation - Progress listener for case conversion in the
ContextualCodeEditor
- Support for more symbols auto completions
\
„ “ « ‚ ‘ ‹`
- Disable code obfuscation and resource shrinking
minifyEnabled
andshrinkResources
= false
because it breaks CodeOps Studio.
- Optimized file tree loading performance and reduced memory usage
- JavaDoc improvements
- Refactored Code base
Pane
class ID generation: shared ID list for all instances of thePane
classPane
class 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
IdeApplication
andCrashActivity
for handling crash intent - Revamped
TreeView-TreeNode
children 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
ContextualCodeEditor
is now possible even whenClipBoard
limit 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+points
against 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#runNonCancelable
was 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:
CodeEditorPane
persistency.CodeEditorPane
now 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.exists
method
- Summary: App crashed as a result of a null file path being passed to the
-
Fix: Crash due to null
Log
object inLog.equals()
method*- Summary: The app crashes with a
NullPointerException
when theequals()
method is invoked on a nullLog
object in theLog.equals()
method. This issue arises during item comparisons in theRecyclerView
, particularly when updating the list usingAsyncListDiffer
in 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
CircularProgressIndicator
inCodeEditorPane.setLoading()
- Summary: The app crashed due to a
NullPointerException
when attempting to access a nullCircularProgressIndicator
in theCodeEditorPane.setLoading()
method. This occurred while loading a file, where theprogressbar
was not properly initialized. - Resolved Issue#9
- FCS-ID:
fcc3d4f7d3825fd148be619cf777948b
- Summary: The app crashed due to a
-
Fix: Crash when accessing null
ContextualCodeEditor
inCodeEditorPane.canUndo()
- Summary: The app crashed due to a
NullPointerException
when attempting to access a nullContextualCodeEditor
object 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
ViewHolder
inRecyclerView
- Summary: App crashed due to a
NullPointerException
when trying to reference a nullViewHolder
in 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
IllegalStateException
when 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:
TreeViewFragment
context attachment issue.- Summary: App crashed due to an
IllegalStateException
when 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:
ChangeLogFragment
null reference issue.ChangeLogFragment
now correctly handles nullRecyclerView
references, preventing crashes when checking if logs are loaded.- Summary: App crashed due to a null
RecyclerView
reference being accessed in thecheckIfLoaded()
method. - Resolved Issue#4
- FCS-ID:
4dfd5aed0ff4905420e59f5b3b09ce90
- Summary: App crashed due to a null
-
Fix:
NullPointerException
when handling back press inSettingsPane
due to nullFragment
- Summary: App crashed because a null
Fragment
was 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
LogAdapter
due toNullPointerException
- Summary: App crashed when a null
CharSequence
was 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
WelcomePane
class due toNullPointerException
- Summary: App crashed as a result of a null file path being passed to the
File.exists
method - 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