GithubHelp home page GithubHelp logo

chvp / nanoledger Goto Github PK

View Code? Open in Web Editor NEW
32.0 32.0 3.0 1.03 MB

Ledger (plain text accounting) data entry app for Android

License: MIT License

Kotlin 96.09% Nix 3.91%
android data-entry hacktoberfest kotlin plaintextaccounting

nanoledger's People

Contributors

ajnasz avatar chvp avatar dependabot[bot] avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

nanoledger's Issues

Android version

I would like to repurpose two old Samsung phones with Android 5 and Android 7.1. Would you consider lowering the minimum Android version? I'm not an Android dev and don't know if it's feasible though. Thank you.

Enable sponsorship

Looks like it's the only active mobile app for hledger. I am sure many hledger users, including myself, would be happy to chip in.

Cursor in pre-filled negative amount field is confusing

Having the remaining amount needed to balance a transaction show up is a nice touch, but it's actually kind of confusing to us. The "grey" is so subtly different from the actual value color it isn't always apparent unless I squint what element is a preview value and what is actually filled in.

This makes it super confusing what is happening when you add a second transaction with a blank amount. Now it isn't really obvious that both are blank.

Also when taping into the field, the cursor is displayed in the center of the input which is in the center of the preview amount. That's really confusing, and I kept trying to move the cursor or select the text that was there.

  1. The preview amount needs more visual distinction, maybe more color contrast or maybe some other treatment (e.g. not drawing the input field box?).
  2. Focusing on the input field should completely remove the preview amount from the background. Since a new input line gets added anyway, the unbalanced/preview amount should probably move to the empty transaction not the one being currently edited. Then if the amount box isn't focused it can be moved to where the implied amount it would actually be applied.

Save button transparently hangs

I just gave NanoLedger v0.8.0 a spin and ran into a fairly confusing UX issue.

When entering a new transaction the "save" button (check box in floating action button bar) would frequently be non-functional.

First a minor detail: the "greyed out" non-active color scheme was not apparent, so even before there was a valid balanced transaction I was confused why it didn't work.

But then after it did activate, pressing it frequently got no response. My first transaction worked fine, but the second one took me a whole bunch of tries and I couldn't figure out why. I still didn't understand the active/non active color scheme, so I thought something was wrong with my transaction and kept fiddling with it.

Eventually it went through with no apparent reason why.

During later attempts a couple times I saw a toast message a few seconds after hitting the non-responsive button a few times about "unable to write file". No details just a brief toast that disappears. Eventually the save works if I press it enough times. I think the save must be hanging while the file backed (Nextcloud in my case) resolves and confirms a file sync.

It might be good that this is a blocker, but there should be some sort of feedback in the UI that a save attempt is underway at the very least and maybe something more prominent than an ephemeral toast when it fails.

Editing transactions

Edit transactions isn't trivial, because the parser throws away everything that isn't strictly what it needs. To be able to edit a transaction, we need to keep a transaction's "source". This might include extraneous data such as leading comments if we want to be able to write out the entire file, so we need to be careful that editing a transaction doesn't delete too much.

App crashes constantly

The App crashes instantly when I want to open it. There are no error reports.
This happens since version 0.1.3

Reproduction steps

Install Nanoleger 0.1.4
Open
Instantcrash

Expected behaviour

App doesnt crash

System information

Samsung Galaxy A6+
Android 10

Currency printed when amount not filled in

Reproduction steps
  1. Add a transaction but only fill in the amount in the first box (leave the second amount one empty)

  2. notice that the second box has a prefilled value
    Screenshot_20230914-152518_NanoLedger

  3. Click save (:white_check_mark: )

Expected behaviour
2023-09-14 test | test
    test amount filled in                42 EUR
    amount not filled in                -42 EUR

or

2023-09-14 test | test
    test amount filled in                42 EUR
    amount not filled in  
Actual behaviour
2023-09-14 test | test
    test amount filled in                42 EUR
    amount not filled in                EUR
System information

I have currency on the right but the error is also there with currency on the left.

Version: v0.1.1

Deletion of transactions

Deleting transactions isn't trivial, because the parser throws away everything that isn't strictly what it needs. To be able to delete a transaction, we need to keep a transaction's "source". This might include extraneous data such as leading comments if we want to be able to write out the entire file, so we need to be careful that deleting a transaction doesn't delete too much.

Add completion sources separate from edited ledger file

Until such a time as this app is a 100% robust and feature complete hledger file editor (not the foreseeable future), I foresee keeping my main ledger data files separate and keeping a mobile only ledger file for data entry that I can sync/merge into the full fledged ledgers from a computer. This is also the workflow I'd want for quick mobile data entry (especially for my wife) that I expect to want to touch up later with perhaps missing tags or other extra information.

That puts completions (both payee and account) in an awkward position. For desktop editing I use a plugin that reads payees from a generated file that sees all the possible payees and a curated list of defined accounts (predefined so I can lint ledgers and reject ones that are not predefined).

I would like to use these sources on mobile too. This probably means being able to read a separate ledger and extract payees and accounts from there while editing a different file. That way the mobile ledger data could be periodically flushed out and moved to other files without loosing access to the payee and account completions.

crash on add transaction

Reproduction steps

Add transaction, fill all fields (2 accounts), save

System information

NanoLedger 0.1.4
Redmi Note 5, Android 11
DivestOs 18.1

Logcat

FATAL EXCEPTION: DefaultDispatcher-worker-2
Process: be.chvp.nanoledger, PID: 22807
java.util.NoSuchElementException: List is empty.
at m3.o.F0(Unknown Source:24)
at x2.e.a(Unknown Source:92)
at z2.c0.g(Unknown Source:342)
at r3.a.c(Unknown Source:8)
at g4.g0.run(Unknown Source:109)
at kotlinx.coroutines.internal.f.run(Unknown Source:12)
at kotlinx.coroutines.scheduling.i.run(Unknown Source:2)
at kotlinx.coroutines.scheduling.a.run(Unknown Source:76)
Suppressed: g4.e0: [n1{Cancelling}@6ee7885, Dispatchers.IO]

Comma as a decimal seperator

It'd be nice to be able to configure another decimal seperator. Ideally would be parsing the comodity directive, but being able to configure it in the settings would also be fine.

That way, i can write amounts as 5,23 โ‚ฌ and use the autocompletion of the negative ammount on the other account.

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.