FFDA / SourCherry

Android app to open CherryTree databases
GNU General Public License v3.0
56 stars 1 forks source link

Suggestions #6

Closed metal450 closed 2 years ago

metal450 commented 2 years ago

Incredible! After years of waiting, at last a way to read my data on Android - thank you so much for your work :)

A few quick suggestions on first use:

This is seriously already like 90% of the way there though - so much farther along than I would've guessed in such a short time. Thank you again!

FFDA commented 2 years ago

Hello,

Indentation formatting doesn't seem to show

What do you mean by indentation? If you mean Justify left/right/center/fill, I should be able to do it except the fill one. If tabs are not showing up on you device it is some kind of a bug.

On launch, remember/restore the previously-opened node

I thought about it and I think user should be allowed to choose if it should be done or not. So, it should be implemented with settings.

On selecting a node, close the side menu (to avoid the need to select node, then close the menu manually - 1 tap vs 2)

Don't you ever go down few nodes deep in your notes? Like if I have "Recipes" > "Cakes" > "Chocolate", "Strawberry" and want to open "Chocolate" node. Unless you will use node filter function you have to tap on "Recipes", "Cakes" and then "Chocolate" and after every tap you would have to open the Navigation Drawer again. That does not look like a good way to go about it.

Ability to remember the last selection in "Save or Open the File" dialog (i.e. to always open with 1 tap)

That's definitely possible. I could add a checkbox for that, however I think that app needs to have settings for that, because users fount be able to reverse that choice without clearing app data.

Ability to pinch/zoom the text to reduce its size

Again, maybe when I do the settings I will add some kind of setting to increase size for the whole app, but I doubt it will be in pinch and zoom way.

metal450 commented 2 years ago

What do you mean by indentation? If you mean Justify left/right/center/fill, I should be able to do it except the fill one. If tabs are not showing up on you device it is some kind of a bug.

Not Justify - indentation. Format -> Indent Paragraph.

Don't you ever go down few nodes deep in your notes? Like if I have "Recipes" > "Cakes" > "Chocolate", "Strawberry" and want to open "Chocolate" node. Unless you will use node filter function you have to tap on "Recipes", "Cakes" and then "Chocolate" and after every tap you would have to open the Navigation Drawer again. That does not look like a good way to go about it.

Oh yeah, good point - personally I only ever have content in bottom-level nodes (i.e. nodes are either "folders" with no content or "content"), but if nodes that contain other nodes also have content, then that would be an issue. Probably the nicest/cleanest way to handle it would be: 1) If you're tapping a node that doesn't contain any other nodes, then close the menu 2) If you're tapping (expanding) a node that contains other nodes, then don't auto-close the menu Sees like that should handle all cases :)

For the others: yup, settings makes sense!

FFDA commented 2 years ago

I'm using older version of CherryTree - 0.38.2, so it looks differently and does not support indentation. Now I'm wondering what other functions of CherryTree I missed. I implemented indentation for the app. If you want to try it out install this apk.

It might not look right to you, but I had to choose an arbitrary integer by how much pixels I want to indent a paragraph. So it should look differently on different devices (depending on screen size and density). For some of them indentation might be to big or to small. I guess indentation will be one of these things to add to the settings...

And I'm still not convinced that tapping on menu item should close the Drawer Menu. Maybe that one will be for the settings too.

metal450 commented 2 years ago

Interesting - I wasn't able to install that apk over the previous one, I had to completely uninstall & reinstall. Presumably won't be an issue once it's installing from the Play Store tho, so that's fine :)

Tapping the menu item

Well, for what it's worth, as a user who uses nodes exclusively as either "content" or "folder", it did feel pretty repetitive. Tap the note I want, then tap away...rather than just tapping the note I want to open it.

I had to choose an arbitrary integer by how much pixels I want to indent a paragraph

Yup, makes sense - & I can confirm it works in that build! And yeah, perhaps a setting would be great, particularly in tandem with text size.

Two other small observations:

1) Upon first opening the ctb (~300mb), it appeared that the app had frozen, but it was actually just loading/working. Perhaps a load progress indicator? Or if not numerical progress, at least a static message to say its reading the file so users are aware that the "freeze" is expected. 2) There's a fair amount of margin/padding at the left & right of the screen, which causes it to wrap a bit sooner than it really needs to. Might be a bit more efficient use of screen real estate to have no margins, i.e. the text can go all the way to the far left & right.

Great work again!

FFDA commented 2 years ago

Interesting - I wasn't able to install that apk over the previous one

It should be a one off. I changed the signing key for apk while playing around with publishing the app on play store. I'm waiting for the approval for 47 hours at this point and that apk already has bugs in it so I won't publish it. I just hope that only initial apk takes so long and the following ones will be approved quicker.

  1. Upon first opening the ctb (~300mb) ....

I have that in "to do" list. A password protected database would take even longer. And if user selects database from cloud storage it can add to waiting time too depending on internet speed. Could you tell me why your database so big? Do you embed images/files or it just text? Moreover, how many nodes there are in you database? And how responsive node search/filter function is?

  1. There's a fair amount of margin/padding

Could you tell me model of your phone and android version?

metal450 commented 2 years ago

Could you tell me why your database so big? Do you embed images/files or it just text?

I have embedded files. I'm eagerly awaiting some improvements (https://github.com/giuspen/cherrytree/issues/1823) that will let me more easily keep these external to the db so it isn't so bulky, but for now, it's just a big db.

Moreover, how many nodes there are in you database?

1400.

And how responsive node search/filter function is?

Search is a bit laggy but not terrible. That does, however, remind me of one other thing that's missing: in the current CherryTree, it's possible to exclude parts of the tree from search - a large majority of my nodes are under a "Trash/Archive" subtree that I have disabled from searching, SourCherry does still include this in search, which no doubt contributes quite a bit to its search lag.

Could you tell me model of your phone and android version?

Galaxy S9

FFDA commented 2 years ago

Search is a bit laggy but not terrible.

I think I will have to add another setting to make it so that user can choose if filter/search results should be updated "live" or after tapping a button. Or maybe there is a way to make that filter option more efficient.

in the current CherryTree, it's possible to exclude parts of the tree from search

I don't see why not. It's just I have to think where to put the toggle to switch it on and off. I don't want to clutter the UI too much, but this type of option has to placed somewhere "handy" and not hidden in settings.

Galaxy S9

and Android Version? Could you try my test database that you can download from here and tell me if you see a "fair amount of margin/padding at the left & right of the screen" with it. If you do, please make a screenshot and upload it here.

metal450 commented 2 years ago

I think I will have to add another setting to make it so that user can choose if filter/search results should be updated "live" or after tapping a button

Not super necessary in my personal opinion, but sure, some might appreciate it :)

Or maybe there is a way to make that filter option more efficient.

It feels like the search is occurring on the same main UI thread as the input/typing - it probably wouldn't feel laggy if it didn't affect typing speed. i.e. it could still search realtime, but just in a lower-priority background thread while showing a spinning indicator while it's working. The results would of course take just as long to appear, but it wouldn't feel like it's causing the main user input to lag.

Could you try my test database that you can download from here and tell me if you see a "fair amount of margin/padding at the left & right of the screen" with it.

Yup, the same. Just to be clear, it's not a ridiculous amount or anything - it's just that on such small/thin screen as a phone, any wasted horizontal space becomes quite valuable, so in my opinion it would be great if the text would extend as far as it possibly could to the edge. Demo db:

Screenshot_20220702-070458_SourCherry

One more suggestion to add to my list: in the search results, it would be awesome if there were a "breadcrumb" showing where the node actually is in the tree, i.e. maybe just a small text above each item, something like:

2022-07-02_06 58 54

FFDA commented 2 years ago

it's not a ridiculous amount or anything - it's just that on such small/thin screen as a phone, any wasted horizontal space becomes quite valuable

At least you haven't encountered a new bug. This is by design. Because I'm really bad with UI design, choosing colors and things like that I try too look how other android apps display things. At least the apps I looked in to have padding/margin and do not display content from the edge of the screen.

"breadcrumb" showing where the node actually is in the tree

While it is not impossible I don't think I'll ever do it, because that would mean that for every node that is displayed in search field app would have to read database one more time. I think it actually could crash the app.

metal450 commented 2 years ago

At least the apps I looked in to have padding/margin and do not display content from the edge of the screen.

At the very least, it would be nice if this "dead space" could be minimized as much as possible. Currently there's enough margin for at least 2-3 extra characters worth of width, which considering that the whole screen holds ~40 characters (at least on my device), that's like 7% more usable space. Or alternatively, maybe an option to turn it off.

because that would mean that for every node that is displayed in search field app would have to read database one more time.

Not really. Just a simple in-memory hashmap of "node->its path" would provide instant O(1) lookups. But sure, fair enough, I'd also consider this lower priority - was just an idea that I noticed while searching :)

FFDA commented 2 years ago

Not really. Just a simple in-memory hashmap of "node->its path" would provide instant O(1) lookups

But CherryTree database do not provide that hash map that means I would have to create (that's couple database reads for every node) it and keep it in memory at every start up, or at least every time user opens a new database.

metal450 commented 2 years ago

Yeah. Kk forget that idea then, was just a thought/observation :)

FFDA commented 2 years ago

I'm closing this issue. Just to sum it up.

Suggestions that were mention in this issue:

metal450 commented 2 years ago

Everything looks great!!

Just one minor thing: the option for "change text size" is described as "File Size" in the settings ;)