Giter Club home page Giter Club logo

xed-editor's Issues

Save button always displayed

Is your feature request related to a problem? Please describe.
I often need to save small changes to different files. Always having to open the menu to save the changes is a bit time-consuming.

Describe the solution you'd like
Have a save button next to the history buttons or make it an option to switch between both configurations.

Crash Report

Fatal Crash occurred on Thread named 'main'
Unix Time : 1721626431806
LocalTime : 22‏/07‏/2024 8:33:51 ص

ACTIVE_CODENAMES = []
app_version = 2.2.1
device_model = 2201117SG
SECURITY_PATCH = 2024-06-01
BASE_OS =
RELEASE = 13
MEDIA_PERFORMANCE_CLASS = 0
CODENAME = REL
manufacturer = Xiaomi
RELEASE_OR_CODENAME = 13
RELEASE_OR_PREVIEW_DISPLAY = 13
KNOWN_CODENAMES = {HoneycombMr1, HoneycombMr2, Lollipop, Kitkat, Tiramisu, Gingerbread, Cupcake, IceCreamSandwichMr1, JellyBean, IceCreamSandwich, LollipopMr1, M, N, O, P, Q, R, S, Sv2, Base, NMr1, OMr1, JellyBeanMr1, JellyBeanMr2, Donut, Froyo, GingerbreadMr1, EclairMr1, Honeycomb, Eclair01, KitkatWatch, Base11, Eclair}
SDK_INT = 33
PREVIEW_SDK_FINGERPRINT = REL
PREVIEW_SDK_INT = 0
SDK = 33
brand = Redmi
supported_abi = [arm64-v8a,armeabi-v7a,armeabi]
INCREMENTAL = V816.0.2.0.TKEMIXM

Error Message : Failure from system
Error Cause : android.os.TransactionTooLargeException: data parcel size 9979004 bytes
Error StackTrace :

java.lang.RuntimeException: Failure from system
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1861)
at android.app.Activity.startActivityForResult(Activity.java:5663)
at android.app.Activity.startActivityForResult(Activity.java:5616)
at android.app.Activity.startActivity(Activity.java:6134)
at android.app.Activity.startActivity(Activity.java:6101)
at io.github.rosemoe.sora.widget.component.EditorTextActionWindow.onClick(Unknown Source:194)
at android.view.View.performClick(View.java:7592)
at android.view.View.performClickInternal(View.java:7565)
at android.view.View.-$$Nest$mperformClickInternal(Unknown Source:0)
at android.view.View$PerformClick.run(View.java:29945)
at android.os.Handler.handleCallback(Handler.java:942)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:211)
at android.os.Looper.loop(Looper.java:300)
at android.app.ActivityThread.main(ActivityThread.java:8348)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:582)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1028)
Caused by: android.os.TransactionTooLargeException: data parcel size 9979004 bytes
at android.os.BinderProxy.transactNative(Native Method)
at android.os.BinderProxy.transact(BinderProxy.java:643)
at android.app.IActivityTaskManager$Stub$Proxy.startActivity(IActivityTaskManager.java:2638)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1854)
... 17 more

Option to disable custom cursor

Is your feature request related to a problem? Please describe.
I already have copy and paste on my keyboard and the custom text selection takes away the share option and all the other functions I normally have when selecting text. Personally, I don't like the delay and slowness of the smooth cursor movement.

Describe the solution you'd like
Have an option to return to normal cursor and text selection. If possible, have separate options for cursor smoothing, cursor appearance and the text selection menu.

Crash Report

Fatal Crash occurred on Thread named 'main'
Unix Time : 1721591848058
LocalTime : Jul 21, 2024 2:57:28 PM

ACTIVE_CODENAMES = []
app_version = 2.2.1
device_model = SM-F946U
SEM_INT = 3401
SECURITY_PATCH = 2024-07-01
BASE_OS = samsung/q5qsqw/q5q:14/UP1A.231005.007/F946USQU2CXCF:user/release-keys
SEM_FIRST_SDK_INT = 33
RELEASE = 14
MEDIA_PERFORMANCE_CLASS = 0
CODENAME = REL
manufacturer = samsung
RELEASE_OR_CODENAME = 14
RELEASE_OR_PREVIEW_DISPLAY = 14
KNOWN_CODENAMES = {HoneycombMr1, HoneycombMr2, Lollipop, Kitkat, Tiramisu, Gingerbread, Cupcake, IceCreamSandwichMr1, JellyBean, IceCreamSandwich, LollipopMr1, M, N, O, P, Q, R, S, Sv2, Base, NMr1, OMr1, JellyBeanMr1, JellyBeanMr2, Donut, Froyo, GingerbreadMr1, EclairMr1, UpsideDownCake, Honeycomb, Eclair01, KitkatWatch, Base11, Eclair}
SDK_INT = 34
PREVIEW_SDK_FINGERPRINT = REL
PREVIEW_SDK_INT = 0
SDK = 34
SEM_PLATFORM_INT = 150100
brand = samsung
supported_abi = [arm64-v8a,armeabi-v7a,armeabi]
INCREMENTAL = F946USQS4CXG2

Error Message : Attempt to invoke virtual method 'void android.app.Activity.finish()' on a null object reference
Error Cause : null
Error StackTrace :

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.app.Activity.finish()' on a null object reference
at com.rk.xededitor.Settings.SettingsActivity$$ExternalSyntheticLambda2.onClick(Unknown Source:57)
at androidx.appcompat.app.AlertController$ButtonHandler.handleMessage(Unknown Source:37)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:230)
at android.os.Looper.loop(Looper.java:319)
at android.app.ActivityThread.main(ActivityThread.java:8919)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:578)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103)

F-Droid can't build

ref: https://monitor.f-droid.org/builds/log/com.rk.xededitor/12#site-footer

diff log:

│ │ │ │ │ │ │   --- xed-editor-v1.1.2/smali/com/rk/xededitor/activities/MainActivity/MainActivity.smali
│ │ │ │ │ │ ├── +++ com.rk.xededitor_12/smali/com/rk/xededitor/activities/MainActivity/MainActivity.smali
│ │ │ │ │ │ │ @@ -766,22 +766,14 @@
│ │ │ │ │ │ │      const/4 v1, 0x0
│ │ │ │ │ │ │  
│ │ │ │ │ │ │      invoke-static {p0, p1, v0, v1}, Landroidx/core/app/b;->i(Landroid/app/Activity;Landroid/content/Intent;ILandroid/os/Bundle;)V
│ │ │ │ │ │ │  
│ │ │ │ │ │ │      return-void
│ │ │ │ │ │ │  .end method
│ │ │ │ │ │ │  
│ │ │ │ │ │ │ -.method public redo(Landroid/view/View;)V
│ │ │ │ │ │ │ -    .locals 0
│ │ │ │ │ │ │ -
│ │ │ │ │ │ │ -    invoke-static {p0}, Lv1/g;->h(Landroid/content/Context;)V
│ │ │ │ │ │ │ -
│ │ │ │ │ │ │ -    return-void
│ │ │ │ │ │ │ -.end method
│ │ │ │ │ │ │ -
│ │ │ │ │ │ │  .method public reselect(Landroid/view/View;)V
│ │ │ │ │ │ │      .locals 3
│ │ │ │ │ │ │  
│ │ │ │ │ │ │      new-instance v0, Ljava/util/ArrayList;
│ │ │ │ │ │ │  
│ │ │ │ │ │ │      invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
│ │ │ │ │ │ │  
│ │ │ │ │ │ │ @@ -835,15 +827,7 @@
│ │ │ │ │ │ │  
│ │ │ │ │ │ │      invoke-static {v0, v1}, Lv1/g;->i(Landroid/view/View;Z)V
│ │ │ │ │ │ │  
│ │ │ │ │ │ │      invoke-virtual {p0, p1}, Lcom/rk/xededitor/activities/MainActivity/MainActivity;->open_folder(Landroid/view/View;)V
│ │ │ │ │ │ │  
│ │ │ │ │ │ │      return-void
│ │ │ │ │ │ │  .end method
│ │ │ │ │ │ │ -
│ │ │ │ │ │ │ -.method public undo(Landroid/view/View;)V
│ │ │ │ │ │ │ -    .locals 0
│ │ │ │ │ │ │ -
│ │ │ │ │ │ │ -    invoke-static {p0}, Lv1/g;->h(Landroid/content/Context;)V
│ │ │ │ │ │ │ -
│ │ │ │ │ │ │ -    return-void
│ │ │ │ │ │ │ -.end method

/LE: fyi https://gitlab.com/fdroid/fdroiddata/-/commit/eaadbf63a41fa9d07e61a8c8a6a7c829d8199dff

Crash Report

Fatal Crash occurred on Thread named 'main'
Unix Time : 1721941619900
LocalTime : 25. jul. 2024 23:06:59

ACTIVE_CODENAMES = []
app_version = 2.3.0
device_model = SM-G988B
SEM_INT = 3301
SECURITY_PATCH = 2024-05-01
BASE_OS = samsung/z3sxeea/z3s:13/TP1A.220624.014/G988BXXUIHWH9:user/release-keys
SEM_FIRST_SDK_INT = 29
RELEASE = 13
MEDIA_PERFORMANCE_CLASS = 0
CODENAME = REL
manufacturer = samsung
RELEASE_OR_CODENAME = 13
RELEASE_OR_PREVIEW_DISPLAY = 13
KNOWN_CODENAMES = {HoneycombMr1, HoneycombMr2, Lollipop, Kitkat, Tiramisu, Gingerbread, Cupcake, IceCreamSandwichMr1, JellyBean, IceCreamSandwich, LollipopMr1, M, N, O, P, Q, R, S, Sv2, Base, NMr1, OMr1, JellyBeanMr1, JellyBeanMr2, Donut, Froyo, GingerbreadMr1, EclairMr1, Honeycomb, Eclair01, KitkatWatch, Base11, Eclair}
SDK_INT = 33
PREVIEW_SDK_FINGERPRINT = REL
PREVIEW_SDK_INT = 0
SDK = 33
SEM_PLATFORM_INT = 140100
brand = samsung
supported_abi = [arm64-v8a,armeabi-v7a,armeabi]
INCREMENTAL = G988BXXSKHXEA

Error Message : Unable to start activity ComponentInfo{com.rk.xededitor/com.rk.xededitor.SimpleEditor.SimpleEditor}: java.lang.RuntimeException: java.util.ConcurrentModificationException
Error Cause : java.lang.RuntimeException: java.util.ConcurrentModificationException
Error StackTrace :

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.rk.xededitor/com.rk.xededitor.SimpleEditor.SimpleEditor}: java.lang.RuntimeException: java.util.ConcurrentModificationException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4169)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4325)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:101)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2574)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:226)
at android.os.Looper.loop(Looper.java:313)
at android.app.ActivityThread.main(ActivityThread.java:8762)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:604)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1067)
Caused by: java.lang.RuntimeException: java.util.ConcurrentModificationException
at com.rk.xededitor.SimpleEditor.SimpleEditor.onCreate(Unknown Source:504)
at android.app.Activity.performCreate(Activity.java:8591)
at android.app.Activity.performCreate(Activity.java:8570)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1384)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4150)
... 12 more
Caused by: java.util.ConcurrentModificationException
at java.util.LinkedHashMap$LinkedHashIterator.nextNode(LinkedHashMap.java:760)
at java.util.LinkedHashMap$LinkedKeyIterator.next(LinkedHashMap.java:782)
at com.rk.xededitor.SimpleEditor.SimpleEditor.onCreate(Unknown Source:82)
... 16 more

Crash Report (file writing issue with Google files)

Fatal Crash occurred on Thread named 'Thread-73'
Unix Time : 1721740389355
LocalTime : Jul 23, 2024 16:13:09

ACTIVE_CODENAMES = []
app_version = 2.4.3
device_model = Mi 9T
SECURITY_PATCH = 2024-06-05
BASE_OS =
RELEASE = 14
MEDIA_PERFORMANCE_CLASS = 0
CODENAME = REL
manufacturer = Xiaomi
RELEASE_OR_CODENAME = 14
RELEASE_OR_PREVIEW_DISPLAY = 14
KNOWN_CODENAMES = {HoneycombMr1, HoneycombMr2, Lollipop, Kitkat, Tiramisu, Gingerbread, Cupcake, IceCreamSandwichMr1, JellyBean, IceCreamSandwich, LollipopMr1, M, N, O, P, Q, R, S, Sv2, Base, NMr1, OMr1, JellyBeanMr1, JellyBeanMr2, Donut, Froyo, GingerbreadMr1, EclairMr1, UpsideDownCake, Honeycomb, Eclair01, VanillaIceCream, KitkatWatch, Base11, Eclair}
SDK_INT = 34
PREVIEW_SDK_FINGERPRINT = REL
PREVIEW_SDK_INT = 0
SDK = 34
brand = Xiaomi
supported_abi = [arm64-v8a,armeabi-v7a,armeabi]
INCREMENTAL = eng.celest.20240628.193921

Error Message : Permission Denial: writing com.google.android.libraries.storage.storagelib.FileProvider uri content://com.google.android.apps.nbu.files.provider/1/file%3A%2F%2F%2Fstorage%2Femulated%2F0%2FDocuments%2Fnotification-silencer.sh from pid=25671, uid=10261 requires the provider be exported, or grantUriPermission()
Error Cause : null
Error StackTrace :

java.lang.SecurityException: Permission Denial: writing com.google.android.libraries.storage.storagelib.FileProvider uri content://com.google.android.apps.nbu.files.provider/1/file%3A%2F%2F%2Fstorage%2Femulated%2F0%2FDocuments%2Fnotification-silencer.sh from pid=25671, uid=10261 requires the provider be exported, or grantUriPermission()
at android.os.Parcel.createExceptionOrNull(Parcel.java:3183)
at android.os.Parcel.createException(Parcel.java:3167)
at android.os.Parcel.readException(Parcel.java:3150)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:202)
at android.database.DatabaseUtils.readExceptionWithFileNotFoundExceptionFromParcel(DatabaseUtils.java:165)
at android.content.ContentProviderProxy.openAssetFile(ContentProviderNative.java:737)
at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:1876)
at android.content.ContentResolver.openOutputStream(ContentResolver.java:1574)
at com.rk.xededitor.SimpleEditor.SimpleEditor.lambda$save$3(SimpleEditor.java:264)
at com.rk.xededitor.SimpleEditor.SimpleEditor.$r8$lambda$1dMwrvGOWmy15sn56jsM5sS8ftc(Unknown Source:0)
at com.rk.xededitor.SimpleEditor.SimpleEditor$$ExternalSyntheticLambda1.run(D8$$SyntheticClass:0)
at java.lang.Thread.run(Thread.java:1012)

Question

Why it is no longer an code editor?

[Feature Request] Add print dialogue

I want to export text files to PDF. By using Android's built-in print dialogue, I could use the "Print to PDF" function. And other users could also print the text on actual paper as well.

Example

Crash Report

Fatal Crash occurred on Thread named 'Thread-21'
Unix Time : 1721571905813
LocalTime : Jul 21, 2024 9:25:05 AM

ACTIVE_CODENAMES = []
app_version = 2.2.1
device_model = SM-T220
SEM_INT = 3401
SECURITY_PATCH = 2024-04-01
BASE_OS = samsung/gta7litewifixx/gta7litewifi:14/UP1A.231005.007/T220XXU6DWLB:user/release-keys
SEM_FIRST_SDK_INT = 30
RELEASE = 14
MEDIA_PERFORMANCE_CLASS = 0
CODENAME = REL
manufacturer = samsung
RELEASE_OR_CODENAME = 14
RELEASE_OR_PREVIEW_DISPLAY = 14
KNOWN_CODENAMES = {HoneycombMr1, HoneycombMr2, Lollipop, Kitkat, Tiramisu, Gingerbread, Cupcake, IceCreamSandwichMr1, JellyBean, IceCreamSandwich, LollipopMr1, M, N, O, P, Q, R, S, Sv2, Base, NMr1, OMr1, JellyBeanMr1, JellyBeanMr2, Donut, Froyo, GingerbreadMr1, EclairMr1, UpsideDownCake, Honeycomb, Eclair01, KitkatWatch, Base11, Eclair}
SDK_INT = 34
PREVIEW_SDK_FINGERPRINT = REL
PREVIEW_SDK_INT = 0
SDK = 34
SEM_PLATFORM_INT = 150000
brand = samsung
supported_abi = [arm64-v8a,armeabi-v7a,armeabi]
INCREMENTAL = T220XXS7DXF9

Error Message : com.rk.xededitor has no access to content://media/external/file/1000000059
Error Cause : null
Error StackTrace :

java.lang.SecurityException: com.rk.xededitor has no access to content://media/external/file/1000000059
at android.os.Parcel.createExceptionOrNull(Parcel.java:3069)
at android.os.Parcel.createException(Parcel.java:3053)
at android.os.Parcel.readException(Parcel.java:3036)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:190)
at android.database.DatabaseUtils.readExceptionWithFileNotFoundExceptionFromParcel(DatabaseUtils.java:153)
at android.content.ContentProviderProxy.openAssetFile(ContentProviderNative.java:737)
at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:1876)
at android.content.ContentResolver.openOutputStream(ContentResolver.java:1574)
at com.rk.xededitor.SimpleEditor.SimpleEditor$$ExternalSyntheticLambda0.run(Unknown Source:366)
at java.lang.Thread.run(Thread.java:1012)

SFTP support

Make it possible to edit files on a vps via sftp. So that you can open, select a folder from there and edit files from it

Pure black/OLED theme (feature request)

I noticed you have support for dark and light themes, and I was wondering if you could add a pure black theme. Pure black themes save battery on OLED screens and since this is an android-first editor I thought you might be interested in the idea.

Long text in option menu unreadable

Describe the bug
In the settings menu, there is a longer option that is truncated and unreadable.

Screenshots
Screenshot_20240630_145629_Xed Editor

  • Device: Samsung Galaxy A52 5G
  • OS: One UI 6.1
  • Android Version: Android 14

folders with files aren't deletable

Describe the bug
folders with files aren't deletable

To Reproduce
Steps to reproduce the behavior:

  1. Create folder
  2. Inside the folder create atleast one file or move file inside it.
  3. Try to delete the folder
  4. You can't. folder just closes.

Expected behavior
Folder with files inside should delete.

Screenshots
no

complete the following information):

  • Device: Galaxy S21 5G
  • OS: One UI 6.1
  • Android Version Android 14

logcat output/logcat.txt(if applicable)
no

Additional context
i'm using last debug version (artifact)

Batch Replacement of Text

The Batch >> button in the Replace dialog extends the dialog box to include a list for multiple Find/Replace combinations with options. Pressing the Batch Replace All button then replaces all of the multiple matched strings with the respective specified strings. This user interface allows much faster and more intuitive replace operations for frequent use of the replace feature.

Crash ReportTest

Crash at 1720963485987(timestamp) in thread named 'main'
Local date and time:14 Jul 2024 20.24.45


ACTIVE_CODENAMES = []
app_version = 2.2.0
device_model = vivo 1901
SECURITY_PATCH = 2022-05-01
BASE_OS =
RELEASE = 11
CODENAME = REL
manufacturer = vivo
RELEASE_OR_CODENAME = 11
SDK_INT = 30
PREVIEW_SDK_FINGERPRINT = REL
PREVIEW_SDK_INT = 0
SDK = 30
brand = vivo
supported_abi = [arm64-v8a,armeabi-v7a,armeabi]
INCREMENTAL = eng.compil.20240513.161046

java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=123, result=-1, data=Intent { dat=content://com.android.externalstorage.documents/document/primary:avisualcodespace/main.kt flg=0x43 }} to activity {com.rk.xededitor/com.rk.xededitor.MainActivity.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.util.ArrayList.contains(java.lang.Object)' on a null object reference
at android.app.ActivityThread.deliverResults(ActivityThread.java:5370)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:5411)
at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:51)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2305)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:257)
at android.app.ActivityThread.main(ActivityThread.java:8192)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:626)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1015)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.util.ArrayList.contains(java.lang.Object)' on a null object reference
at com.rk.xededitor.MainActivity.MainActivity.newEditor(Unknown Source:51)
at com.rk.xededitor.MainActivity.MainActivity.onActivityResult(Unknown Source:47)
at android.app.Activity.dispatchActivityResult(Activity.java:8429)
at android.app.ActivityThread.deliverResults(ActivityThread.java:5363)
... 11 more
java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.util.ArrayList.contains(java.lang.Object)' on a null object reference
at com.rk.xededitor.MainActivity.MainActivity.newEditor(Unknown Source:51)
at com.rk.xededitor.MainActivity.MainActivity.onActivityResult(Unknown Source:47)
at android.app.Activity.dispatchActivityResult(Activity.java:8429)
at android.app.ActivityThread.deliverResults(ActivityThread.java:5363)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:5411)
at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:51)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2305)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:257)
at android.app.ActivityThread.main(ActivityThread.java:8192)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:626)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1015)

don't close all folders after deleting

Describe the bug
don't close all folders after deleting something/other actions

To Reproduce
Steps to reproduce the behavior:

  1. Open as many folders and subfolders you want.
  2. Delete random folder/file you don't need.
  3. All folders are folded, and you should open them again:(

Expected behavior
Folder should be just deleted, without folding all folders

Screenshots
If applicable, add screenshots to help explain your problem.

complete the following information):

  • Device: Galaxy S21
  • OS: One UI 6.1
  • Android Version A14

logcat output/logcat.txt(if applicable)

Additional context
Add any other context about the problem here.

features request

List of features i'd like to see in Xed Editor:

  1. Improved file browser - icons based on files extension.
  2. More customization - themes, fonts(from android itself, with changing size, ligatures), zoom level, cursor type.
  3. Tab button - with changing tab size, insert spaces. (or don't add tab button in ui, but let users with keyboard connected to phone/tab on keyboard like in hacker's keyboard have this feature)
  4. Code highlighting, support language servers (like in neovim/zed), etc.
  5. convert assets to bytes and use them where do you want for (maybe) faster speed.

Cannot launch app Crash Report

Crash at 1720903050535(timestamp) in thread named 'main'
Local date and time:14-Jul-2024 02:07:30


ACTIVE_CODENAMES = []
app_version = 2.2.0
device_model = RMX3521
SECURITY_PATCH = 2024-05-05
BASE_OS =
RELEASE = 14
MEDIA_PERFORMANCE_CLASS = 0
CODENAME = REL
manufacturer = realme
RELEASE_OR_CODENAME = 14
RELEASE_OR_PREVIEW_DISPLAY = 14
KNOWN_CODENAMES = {HoneycombMr1, HoneycombMr2, Lollipop, Kitkat, Tiramisu, Gingerbread, Cupcake, IceCreamSandwichMr1, JellyBean, IceCreamSandwich, LollipopMr1, M, N, O, P, Q, R, S, Sv2, Base, NMr1, OMr1, JellyBeanMr1, JellyBeanMr2, Donut, Froyo, GingerbreadMr1, EclairMr1, UpsideDownCake, Honeycomb, Eclair01, KitkatWatch, Base11, Eclair}
SDK_INT = 34
PREVIEW_SDK_FINGERPRINT = REL
PREVIEW_SDK_INT = 0
SDK = 34
brand = realme
supported_abi = [arm64-v8a,armeabi-v7a,armeabi]
INCREMENTAL = S.1843b92-57e-580

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.rk.xededitor/com.rk.xededitor.MainActivity.MainActivity}: java.lang.RuntimeException: java.util.ConcurrentModificationException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4018)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4168)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:114)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:144)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:101)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2630)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:257)
at android.os.Looper.loop(Looper.java:368)
at android.app.ActivityThread.main(ActivityThread.java:8826)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:572)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1049)
Caused by: java.lang.RuntimeException: java.util.ConcurrentModificationException
at kotlin.ResultKt.applyPrefs(Unknown Source:54)
at com.rk.xededitor.MainActivity.MainActivity.onCreate(Unknown Source:5)
at android.app.Activity.performCreate(Activity.java:8757)
at android.app.Activity.performCreate(Activity.java:8729)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1475)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3992)
... 12 more
Caused by: java.util.ConcurrentModificationException
at java.util.LinkedHashMap$LinkedHashIterator.nextNode(LinkedHashMap.java:760)
at java.util.LinkedHashMap$LinkedKeyIterator.next(LinkedHashMap.java:782)
at kotlin.ResultKt.applyPrefs(Unknown Source:23)
... 17 more
java.lang.RuntimeException: java.util.ConcurrentModificationException
at kotlin.ResultKt.applyPrefs(Unknown Source:54)
at com.rk.xededitor.MainActivity.MainActivity.onCreate(Unknown Source:5)
at android.app.Activity.performCreate(Activity.java:8757)
at android.app.Activity.performCreate(Activity.java:8729)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1475)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3992)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4168)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:114)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:144)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:101)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2630)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:257)
at android.os.Looper.loop(Looper.java:368)
at android.app.ActivityThread.main(ActivityThread.java:8826)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:572)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1049)
Caused by: java.util.ConcurrentModificationException
at java.util.LinkedHashMap$LinkedHashIterator.nextNode(LinkedHashMap.java:760)
at java.util.LinkedHashMap$LinkedKeyIterator.next(LinkedHashMap.java:782)
at kotlin.ResultKt.applyPrefs(Unknown Source:23)
... 17 more
java.util.ConcurrentModificationException
at java.util.LinkedHashMap$LinkedHashIterator.nextNode(LinkedHashMap.java:760)
at java.util.LinkedHashMap$LinkedKeyIterator.next(LinkedHashMap.java:782)
at kotlin.ResultKt.applyPrefs(Unknown Source:23)
at com.rk.xededitor.MainActivity.MainActivity.onCreate(Unknown Source:5)
at android.app.Activity.performCreate(Activity.java:8757)
at android.app.Activity.performCreate(Activity.java:8729)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1475)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3992)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4168)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:114)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:144)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:101)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2630)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:257)
at android.os.Looper.loop(Looper.java:368)
at android.app.ActivityThread.main(ActivityThread.java:8826)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:572)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1049)

Crash Report

dev build, when turning on plugins
Fatal Crash occurred on Thread named 'main'
Unix Time : 1721939825380
LocalTime : 25 июл. 2024 г. 23:37:05

ACTIVE_CODENAMES = []
app_version = 2.4.3
device_model = SM-G991B
SEM_INT = 3401
SECURITY_PATCH = 2024-05-01
BASE_OS = samsung/o1sxser/o1s:14/UP1A.231005.007/G991BXXUAGXDA:user/release-keys
SEM_FIRST_SDK_INT = 30
RELEASE = 14
MEDIA_PERFORMANCE_CLASS = 0
CODENAME = REL
manufacturer = samsung
RELEASE_OR_CODENAME = 14
RELEASE_OR_PREVIEW_DISPLAY = 14
KNOWN_CODENAMES = {HoneycombMr1, HoneycombMr2, Lollipop, Kitkat, Tiramisu, Gingerbread, Cupcake, IceCreamSandwichMr1, JellyBean, IceCreamSandwich, LollipopMr1, M, N, O, P, Q, R, S, Sv2, Base, NMr1, OMr1, JellyBeanMr1, JellyBeanMr2, Donut, Froyo, GingerbreadMr1, EclairMr1, UpsideDownCake, Honeycomb, Eclair01, KitkatWatch, Base11, Eclair}
SDK_INT = 34
PREVIEW_SDK_FINGERPRINT = REL
PREVIEW_SDK_INT = 0
SDK = 34
SEM_PLATFORM_INT = 150100
brand = samsung
supported_abi = [arm64-v8a,armeabi-v7a,armeabi]
INCREMENTAL = G991BXXSBGXDH

Error Message : View=DecorView@f129e2a[SettingsApp] not attached to window manager
Error Cause : null
Error StackTrace :

java.lang.IllegalArgumentException: View=DecorView@f129e2a[SettingsApp] not attached to window manager
at android.view.WindowManagerGlobal.findViewLocked(WindowManagerGlobal.java:729)
at android.view.WindowManagerGlobal.removeView(WindowManagerGlobal.java:626)
at android.view.WindowManagerImpl.removeViewImmediate(WindowManagerImpl.java:208)
at android.app.Dialog.dismissDialog(Dialog.java:801)
at android.app.Dialog.dismiss(Dialog.java:783)
at androidx.appcompat.app.AppCompatDialog.dismiss(AppCompatDialog.java:154)
at com.rk.xededitor.LoadingPopup.hide$lambda$4(LoadingPopup.kt:41)
at com.rk.xededitor.LoadingPopup.$r8$lambda$oq9YSbhp-RBvTiJq-PdY6SlLf20(Unknown Source:0)
at com.rk.xededitor.LoadingPopup$$ExternalSyntheticLambda0.run(D8$$SyntheticClass:0)
at android.app.Activity.runOnUiThread(Activity.java:7865)
at com.rk.xededitor.LoadingPopup.hide(LoadingPopup.kt:39)
at com.rk.xededitor.LoadingPopup.lambda$2$lambda$1$lambda$0(LoadingPopup.kt:24)
at com.rk.xededitor.LoadingPopup$$ExternalSyntheticLambda2.run(D8$$SyntheticClass:0)
at android.os.Handler.handleCallback(Handler.java:958)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:230)
at android.os.Looper.loop(Looper.java:319)
at android.app.ActivityThread.main(ActivityThread.java:8919)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:578)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103)

Option to ignore spaces when wrapping text

Is your feature request related to a problem? Please describe.
When text wraps to a new line and the space does not fit on the previous line, it is moved to the beginning of the next line. This makes normal text a little harder to read.

Describe the solution you'd like
Have an option to ignore the space at the start of a new line when wrapping text.

[Feature Request] VIM Keybinds

Like the title says, I would like to be able to use VIM keybinds to edit my text.
It's fine if this is implemented as a toggle in the settings, but what's the point of being an advanced and versatile text editor if you can't edit text using the VIM keybinds like a LOT of advanced Linux users do.

Make creating files more intuitive.

Is your feature request related to a problem?

I am solely able to create files outside the application, and then modify them utilizing it – there is no button to create one.

Describe the solution you'd like

Allow them to be created using the application.

Describe alternatives you've considered

No response

Additional context

No response

doesn't handle text intents from other apps

Describe the bug
The app does not announce that it handles text intents from other apps.
That means, if the user shares text from another app, XED does not come up as an option to handle it.

To Reproduce
Steps to reproduce the behavior:

  1. Find another text handling app, which supports the Android "share" functionality. (There are many.)
  2. Share some text with that app.
  3. Observe that XED does not appear in the list of apps to handle the intent.

Expected behavior
XED should handle the intent, take the text data, and present it for editing.

complete the following information):

  • Device: any modern Android device
  • OS: Android
  • Android Version Android 12, for example

Additional context
This is very basic Android behavior. It should just work.
It would greatly increase the usefulness of your app.

Crash Report

Fatal Crash occurred on Thread named 'Thread-27'
Unix Time : 1722137538235
LocalTime : Jul 28, 2024 00:32:18

ACTIVE_CODENAMES = []
app_version = 2.5.0
device_model = POCOPHONE F1
RESOURCES_SDK_INT = 29
SECURITY_PATCH = 2020-12-01
BASE_OS =
RELEASE = 10
CODENAME = REL
manufacturer = Xiaomi
SDK_INT = 29
PREVIEW_SDK_FINGERPRINT = REL
FIRST_SDK_INT = 27
PREVIEW_SDK_INT = 0
SDK = 29
brand = Xiaomi
supported_abi = [arm64-v8a,armeabi-v7a,armeabi]
INCREMENTAL = V12.0.3.0.QEJMIXM

Error Message : listFiles(...) must not be null
Error Cause : null
Error StackTrace :

java.lang.NullPointerException: listFiles(...) must not be null
at com.rk.xededitor.MainActivity.treeview2.TreeViewAdapter$Companion.merge(TreeViewAdapter.kt:97)
at com.rk.xededitor.MainActivity.treeview2.TreeView.init$lambda$3(TreeView.kt:35)
at com.rk.xededitor.MainActivity.treeview2.TreeView.$r8$lambda$JBvSDOOqbKRJBQ0KIXzLdcjWoLM(Unknown Source:0)
at com.rk.xededitor.MainActivity.treeview2.TreeView$$ExternalSyntheticLambda0.run(D8$$SyntheticClass:0)
at java.lang.Thread.run(Thread.java:919)

Design issue

Describe the bug
The Enable/Disable plugin toggler and the plugin manager aren't at the same interface in the app's settings. This isn't a very intuitive layout at first.

Screenshot_2024-07-25-06-21-52-029_com rk xededitor
Screenshot_2024-07-25-06-21-45-708_com rk xededitor
Screenshot_2024-07-25-06-21-49-470_com rk xededitor

theme change doesn't work

On my phone, a old Samsung Galaxy A7, when I change the theme in the setttings then restart the app, the theme remain the white one.

When I go back to the setting,s the theme settibg is how I left it.

Visibly, the other settings work properly but this one remain ignored.

Please remember increasing versionCode

Please remember to always increase versionCode when preparing a new release, or your updates won't reach those having previous versions installed. Android uses this internally to keep versions apart – and if it's not changed considers the APK as "already installed" and ignores it.

Binary files /web/ftp/repo/fdroid/repo/com.rk.xededitor_1.apk and /web/ftp/repo/fdroid/repo/com.rk.xededitor_1.0.3.apk differ

This means, the file was just replaced in my repo – but will still be shown as first and only release. Oh, and for F-Droid.org (where you applied for inclusion IIRC) it will mean it will never arrive there even, as their update checker will say "versionCode: 1? We already have that, so no need to build it."

Crash Report

Fatal Crash occurred on Thread named 'main'
Unix Time : 1721725925166
LocalTime : Jul 23, 2024 12:12:05

ACTIVE_CODENAMES = []
app_version = 2.4.2
device_model = Mi 9T
SECURITY_PATCH = 2024-06-05
BASE_OS =
RELEASE = 14
MEDIA_PERFORMANCE_CLASS = 0
CODENAME = REL
manufacturer = Xiaomi
RELEASE_OR_CODENAME = 14
RELEASE_OR_PREVIEW_DISPLAY = 14
KNOWN_CODENAMES = {HoneycombMr1, HoneycombMr2, Lollipop, Kitkat, Tiramisu, Gingerbread, Cupcake, IceCreamSandwichMr1, JellyBean, IceCreamSandwich, LollipopMr1, M, N, O, P, Q, R, S, Sv2, Base, NMr1, OMr1, JellyBeanMr1, JellyBeanMr2, Donut, Froyo, GingerbreadMr1, EclairMr1, UpsideDownCake, Honeycomb, Eclair01, VanillaIceCream, KitkatWatch, Base11, Eclair}
SDK_INT = 34
PREVIEW_SDK_FINGERPRINT = REL
PREVIEW_SDK_INT = 0
SDK = 34
brand = Xiaomi
supported_abi = [arm64-v8a,armeabi-v7a,armeabi]
INCREMENTAL = eng.celest.20240628.193921

Error Message : Unable to find explicit activity class {com.rk.xededitor/com.rk.xededitor.Settings.SettingsBaseActivity}; have you declared this activity in your AndroidManifest.xml, or does your intent not match its declared ?
Error Cause : null
Error StackTrace :

android.content.ActivityNotFoundException: Unable to find explicit activity class {com.rk.xededitor/com.rk.xededitor.Settings.SettingsBaseActivity}; have you declared this activity in your AndroidManifest.xml, or does your intent not match its declared ?
at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:2430)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:2008)
at android.app.Activity.startActivityForResult(Activity.java:5840)
at androidx.activity.ComponentActivity.startActivityForResult(SourceFile:2)
at android.app.Activity.startActivityForResult(Activity.java:5798)
at androidx.activity.ComponentActivity.startActivityForResult(SourceFile:1)
at android.app.Activity.startActivity(Activity.java:6295)
at android.app.Activity.startActivity(Activity.java:6262)
at com.rk.xededitor.SimpleEditor.SimpleEditor.onOptionsItemSelected(Unknown Source:26)
at android.app.Activity.onMenuItemSelected(Activity.java:4658)
at androidx.activity.ComponentActivity.onMenuItemSelected(Unknown Source:5)
at androidx.appcompat.app.AppCompatActivity.onMenuItemSelected$androidx$fragment$app$FragmentActivity(Unknown Source:0)
at androidx.appcompat.app.AppCompatActivity.onMenuItemSelected(Unknown Source:0)
at androidx.appcompat.app.AppCompatDelegateImpl$AppCompatWindowCallback.onMenuItemSelected(Unknown Source:2)
at androidx.appcompat.widget.PopupMenu$1.onMenuItemSelected(Unknown Source:66)
at androidx.appcompat.view.menu.MenuBuilder.dispatchMenuItemSelected(Unknown Source:4)
at androidx.appcompat.view.menu.MenuBuilder.performItemAction(Unknown Source:28)
at androidx.appcompat.view.menu.MenuPopup.onItemClick(Unknown Source:40)
at android.widget.AdapterView.performItemClick(AdapterView.java:330)
at android.widget.AbsListView.performItemClick(AbsListView.java:1273)
at android.widget.AbsListView$PerformClick.run(AbsListView.java:3286)
at android.widget.AbsListView.onTouchUp(AbsListView.java:4264)
at android.widget.AbsListView.onTouchEvent(AbsListView.java:4005)
at androidx.appcompat.widget.DropDownListView.onTouchEvent(Unknown Source:37)
at android.view.View.performOnTouchCallback(View.java:16265)
at android.view.View.dispatchTouchEvent(View.java:16222)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3119)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2792)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3125)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2806)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3125)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2806)
at android.widget.PopupWindow$PopupDecorView.dispatchTouchEvent(PopupWindow.java:2569)
at android.view.View.dispatchPointerEvent(View.java:16547)
at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:7564)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:7326)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:6723)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:6780)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:6746)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:6912)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:6754)
at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:6969)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:6727)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:6780)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:6746)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:6754)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:6727)
at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:9832)
at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:9783)
at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:9752)
at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:9974)
at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:295)
at android.os.MessageQueue.nativePollOnce(Native Method)
at android.os.MessageQueue.next(MessageQueue.java:349)
at android.os.Looper.loopOnce(Looper.java:189)
at android.os.Looper.loop(Looper.java:317)
at android.app.ActivityThread.main(ActivityThread.java:8592)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:580)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:878)

unwanted screen orientation changes

Describe the bug
The app changes the screen orientation from landscape to portrait for no apparent reason,
and sometimes leaves it in the changed orientation.

To Reproduce
Steps to reproduce the behavior:

  1. Set Auto-rotate to ON, turn device so it goes into landscape mode.
  2. Turn Auto-rotate OFF.
  3. Start XED. It will change the screen to Portrait mode. Go ahead and open a file.
  4. Quit XED
  5. Screen will still be in undesired Portrait mode.
  6. User has to re-set the device to Auto-rotate ON, then rotate the screen, then set Auto-rotate OFF, to get the desired orientation back.

Expected behavior

There is no conceivable reason for a text editor to override the system's screen orientation mode.
(If the user wants to change the mode, they can easily do so manually.)

complete the following information):

  • Device: Jumper EZPad M10 SE
  • OS: Android
  • Android Version Android 12

Additional context
This is intolerable behavior. I will uninstall the app because of this.

I recommend that you remove all orientation-changing code from the app.

Let me know when you've done that! I would love to give it a try!

Java and kotlin support

I see that the xed editor is light, please add plugins for Kotlin & Java: syntax highlighting, code suggestions, auto complete, code compilation (multi tab/file support)

F-Droid reproducible build failed

Describe the bug
https://monitor.f-droid.org/builds/log/com.rk.xededitor/27#site-footer

Could you please take a look? Thanks!

To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

complete the following information):

  • Device: [e.g. Redmi 5A]
  • OS: [e.g. MIUI 11]
  • Android Version [e.g. Android 10]

logcat output/logcat.txt(if applicable)

Additional context
Add any other context about the problem here.

Close the drawer when opening a file

Could the drawer be automatically closed after clicking a note to be opened? If a user wants to open multiple files in the background, perhaps this could be a toggle in the settings?

Also, is it possible to select a whole string of text by long-tapping, such as a link? Currently the app seems to select only a part of it. Material Files built-in text editor handles this perfectly; just tap and hold on a link and it selects it entirely, which can then directly be opened by your installed browser of choice.

RTL and Mixed RTL Support

Is your feature request related to a problem? Please describe.
Somehow.
Texts in RTL Languages are shown in LTR.

Screenshot_20240704-180626_Xed_Editor_1

Describe the solution you'd like
RTL texts in correct side.

Describe alternatives you've considered

Additional context

word wrap spillover

Thanks for word-wrap. But it has bug. On writing, edge of screen is not properly detected so several letters on end of line are not shown since they are out of screen.

Anyway, word-wrap enabled me for testing, so I see that you still have basic issues, like following:

  • after minimize-maximize app, open text file is not shown
  • on exit, there is no message about unsaved changes

Terminal Key support

Describe the bug
Terminal return key triggers escape extra-key on hardware keyboard

To Reproduce
Steps to reproduce the behavior:

  1. Go to 'terminal'
  2. Click on 'return key (unexpected keyboard2) '
  3. Scroll down to ''
  4. See error

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

complete the following information):

Device
Board: NEN
Codename: REL
Device Name: HUAWEI NEN-LX1
Hardware: qcom
ID: HUAWEINEN-LX1
Manufacture: HUAWEI
Model: NEN-LX1
Product: NEN-L01CQ

System
API Level: 29
Android: 10
Kernel: 4.19.95+
Preview SDK: 0
Security Patch Level: 2020-07-01
VM Version: ART 2.1.0

CPU
ABI: arm64-v8a
CPU Freq: 4 x 2016MHz - 300MHz 4 x 1804MHz - 300MHz
CPU cores: 8

Memory
Low Ram device: false
Ram: 5700 MB

Display
Ratio: 11:5
Resolution: 1080 x 2376
xdpi / ydpi: 398 / 392 dpi

Features
Bluetooth: true
GPS: true
NFC: true

Software
WebView Implementation: Huawei WebView 12.1.2.323

QUERY_ALL_PACKAGES?

The scanner here just reported on your latest APK:

! repo/com.rk.xededitor_20.apk declares sensitive permission(s): android.permission.QUERY_ALL_PACKAGES

Could you please clarify what this permission is needed for? The app description gave me no clue. Thanks in advance!

App name suggestion

I was really confused when I saw "Karbon" on my home page after obtanium auto updated xed editor in the background. In my opinion Karbon sounds way too generic. My name ideas:
Xedroid
Androditor

Open last used folder

Would it be possible to get a toggle for remembering the last used file (or preferably folder) on app launch? This app is also useful for managing simple notes stored in txt files, but having to always navigate to the files i want seems a hassle.

Currently, if i open a folder, all the notes appear correctly in the side drawer but they are forgotten the next time i launch the app.

Also, unless "legacy file browser" is enabled, i get a toast "onitemclick" when selecting a file from the drawer. Running GrapheneOS, based on Android 14. With the legacy browser enabled i can open them, but they are no longer in alphabetical order.

Crash Report

Fatal Crash occurred on Thread named 'Thread-12'
Unix Time : 1721623314000
LocalTime : 22‏/07‏/2024 7:41:54 ص

ACTIVE_CODENAMES = []
app_version = 2.2.1
device_model = 2201117SG
SECURITY_PATCH = 2024-06-01
BASE_OS =
RELEASE = 13
MEDIA_PERFORMANCE_CLASS = 0
CODENAME = REL
manufacturer = Xiaomi
RELEASE_OR_CODENAME = 13
RELEASE_OR_PREVIEW_DISPLAY = 13
KNOWN_CODENAMES = {HoneycombMr1, HoneycombMr2, Lollipop, Kitkat, Tiramisu, Gingerbread, Cupcake, IceCreamSandwichMr1, JellyBean, IceCreamSandwich, LollipopMr1, M, N, O, P, Q, R, S, Sv2, Base, NMr1, OMr1, JellyBeanMr1, JellyBeanMr2, Donut, Froyo, GingerbreadMr1, EclairMr1, Honeycomb, Eclair01, KitkatWatch, Base11, Eclair}
SDK_INT = 33
PREVIEW_SDK_FINGERPRINT = REL
PREVIEW_SDK_INT = 0
SDK = 33
brand = Redmi
supported_abi = [arm64-v8a,armeabi-v7a,armeabi]
INCREMENTAL = V816.0.2.0.TKEMIXM

Error Message : Failed to allocate a 131854144 byte allocation with 25165824 free bytes and 29MB until OOM, target footprint 262809352, growth limit 268435456
Error Cause : null
Error StackTrace :

java.lang.OutOfMemoryError: Failed to allocate a 131854144 byte allocation with 25165824 free bytes and 29MB until OOM, target footprint 262809352, growth limit 268435456
at java.lang.StringUTF16.newBytesFor(StringUTF16.java:50)
at java.lang.AbstractStringBuilder.inflate(AbstractStringBuilder.java:233)
at java.lang.AbstractStringBuilder.appendChars(AbstractStringBuilder.java:1685)
at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:692)
at java.lang.StringBuilder.append(StringBuilder.java:242)
at io.github.rosemoe.sora.text.Content.toStringBuilder(Unknown Source:38)
at io.github.rosemoe.sora.text.Content.toString(Unknown Source:0)
at com.rk.xededitor.MainActivity.DynamicFragment$$ExternalSyntheticLambda1.run(Unknown Source:47)
at java.lang.Thread.run(Thread.java:1012)

Crash Report

Fatal Crash occurred on Thread named 'main'
Unix Time : 1721496408656
LocalTime : 21 July 2024 3:26:48 am

ACTIVE_CODENAMES = []
app_version = 2.2.1
device_model = SM-A156E
SEM_INT = 3401
SECURITY_PATCH = 2024-05-01
BASE_OS =
SEM_FIRST_SDK_INT = 34
RELEASE = 14
MEDIA_PERFORMANCE_CLASS = 0
CODENAME = REL
manufacturer = samsung
RELEASE_OR_CODENAME = 14
RELEASE_OR_PREVIEW_DISPLAY = 14
KNOWN_CODENAMES = {HoneycombMr1, HoneycombMr2, Lollipop, Kitkat, Tiramisu, Gingerbread, Cupcake, IceCreamSandwichMr1, JellyBean, IceCreamSandwich, LollipopMr1, M, N, O, P, Q, R, S, Sv2, Base, NMr1, OMr1, JellyBeanMr1, JellyBeanMr2, Donut, Froyo, GingerbreadMr1, EclairMr1, UpsideDownCake, Honeycomb, Eclair01, KitkatWatch, Base11, Eclair}
SDK_INT = 34
PREVIEW_SDK_FINGERPRINT = REL
PREVIEW_SDK_INT = 0
SDK = 34
SEM_PLATFORM_INT = 150100
brand = samsung
supported_abi = [arm64-v8a,armeabi-v7a,armeabi]
INCREMENTAL = A156EDXU2BXE5

Error Message : Attempt to invoke virtual method 'void android.app.Activity.finish()' on a null object reference
Error Cause : null
Error StackTrace :

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.app.Activity.finish()' on a null object reference
at com.rk.xededitor.Settings.SettingsActivity$$ExternalSyntheticLambda2.onClick(Unknown Source:57)
at androidx.appcompat.app.AlertController$ButtonHandler.handleMessage(Unknown Source:37)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:230)
at android.os.Looper.loop(Looper.java:319)
at android.app.ActivityThread.main(ActivityThread.java:8919)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:578)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103)

Settings Management

On some devices dark theme and legacy file browser won't get activated Even after restart

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.