Git Product home page Git Product logo

moneymanagerex / android-money-manager-ex Goto Github PK

View Code? Open in Web Editor NEW
436.0 46.0 181.0 33.13 MB

Manage your finances on-the-go, encrypted for security, sync via your own cloud

Home Page: http://android.moneymanagerex.org/

License: GNU General Public License v3.0

Java 91.92% HTML 7.91% Batchfile 0.01% JavaScript 0.02% Python 0.14%
money-manager moneymanagerex finance android mmex4android cipher encryption

android-money-manager-ex's Introduction

Money Manager Ex (MMEX)

stable unstable a ci s gha ghl p w i cd c l o

Money Manager Ex (MMEX) is a free/libre, open-source, cross-platform, easy-to-use personal finance software. It helps organize finances and track cash flow.

MMEX includes all the basic features that 90% of users would want to see in a personal finance application. The design goals are to concentrate on simplicity and user-friendliness – an application that can be used everyday.

Features

Download

Download on Flathub

Github All Releases

Screenshots

Dashboard (MMEX 1.7.1-RC.1 64-bit on Linux Mint 21.3 Cinnamon) Payee Report (MMEX 1.7.1-RC.1 64-bit on Linux Mint 21.3 Cinnamon)
Budget Planner (MMEX 1.7.1-RC.1 64-bit on Linux Mint 21.3 Cinnamon) Multiple User Interface Language Support – Hungarian (magyar) (MMEX 1.7.1-RC.1 64-bit on Linux Mint 21.3 Cinnamon)
Category Manager – unlimited nested multi-level category support (MMEX 1.7.1-RC.1 64-bit on Linux Mint 21.3 Cinnamon) Transaction Report Filter (MMEX 1.7.1-RC.1 64-bit on Linux Mint 21.3 Cinnamon)
Import from CSV (Comma-Separated Values) file (MMEX 1.6.4-Beta.4 64-bit on Linux Mint 21.1 Cinnamon) Import from QIF (Quicken Interchange Format) file (MMEX 1.6.4-Beta.4 64-bit on Linux Mint 21.1 Cinnamon)
Export as XML (eXtensible Markup Language) file (MMEX 1.6.4-Beta.4 64-bit on Linux Mint 21.1 Cinnamon) Currency Manager – multi currency support (MMEX 1.7.1-RC.1 64-bit on Linux Mint 21.3 Cinnamon)

Credits

MMEX is mainly written in C++11 and uses the following open-source packages:

External public resources

Slack | Forum | Wiki | Facebook | YouTube | Crowdin | SourceForge | GitHub | Docker images | Twitter tw

Tips

  • Database file (both regular and encrypted) can be opened directly with wxsqliteplus
  • Download dozens of useful reports from the general reports repository
  • Star this repository if you feel it is helpful st

Support

Donate via PayPal

Buy us a Cofee

License

GPL

Translations

CrowdIn

Stargazers over time

Stargazers over time

android-money-manager-ex's People

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  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  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  avatar  avatar  avatar  avatar

Watchers

 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

android-money-manager-ex's Issues

Feature: Sync Dropbox on open or other events

There is an excellent suggestion in the reviews on Google Play. It asks for synchronizing Dropbox when the app is opened.
I second that the event-based synchronization is, to some, more convenient than time-based. They could also work in parallel. For example, having a daily sync scheduled + sync on open/close.

There are already settings to immediately sync on change.
Maybe the sync settings section could be reorganized to have event-based and time-based settings next to one another.
The options for time-based sync are already there.
The options for event-based sync can be assembled from existing ones + some new ones.

  • on app open (new)
  • on change (existing)
  • on app close (new, can this even be detected?)

Crash on manual dropbox sync

I'm getting this with the latest build (2.0 Alpha 2).

  • set-up Dropbox db sync
  • open menu drawer
  • tap on Synchronize

The app crashes.

Transfer between different currencies - wrong calculation

I updated the currency exchange rates, created accounts in three different currencies, and noticed the following. On the new transaction view, select Transfer, select the two accounts where one is the base. After entering the value to be transferred in the source field, the resulting suggestion for the destination amount will be calculated inversely. The rates are reversed in the calculation.
When using the two non-base currencies the difference is even much higher.

The app crashes when editing a transaction

version affected: 2.0.0. Alpha 2

In certain situations the app will crash completely. There is no crash dialog for submitting feedback.

One scenario is the following:

  • open the app
  • open the account transaction list
  • edit a transaction
  • modify the transaction date
  • tap Save

Here is the logcat

This is hapenning on Android 5.

Category list not collapsible

Currently the category list is expandable but the expanded groups are not collapsible.

Once this is resolved, it will be possible to make the list auto-close as soon as item is selected. Perhaps with a preference setting in case people prefer it to work in different ways.

Feature: Add Overview item to the drawer that opens the initial view

An 'Overview' item in the drawer would bring a user to the starting view of the application.

Currently, if a user opens Currencies, for example, it is only possible to come to the main view by pressing back. And, if she goes from Currencies to Repeating Transactions, to Payees, the scenario gets complex. Back will go through all the previous screens and it is easy to exit the application by repeated pressing of Back button or arrow.
Perhaps an item in the drawer would be a handy way to always come to the starting screen.

Open Dropbox configuration on "Configure Dropbox"

On the first app run, a screen is shown that contains the buttons 'create new database' and 'configure Dropbox'.
The 'configure Dropbox' button opens General settings.
The view that opens should be the Dropbox settings to make things simpler for the new users.

Feature: Add instructions on empty lists

The initial (empty) view of the lists (accounts, transactions, etc.) should display a short instructions on how to use the feature or add an item.
This is more user friendly and help guide users through the features.

Once the item is created, then this text does not show any longer.

Feature: Indicate split in the recurring transactions list

In the list of recurring transactions, when there is a split transaction, there is no category displayed.
This is a bit misleading. Since showing multiple categories would be inconvenient, showing some kind of "split indicator" would be preferable. Even just showing word "Split" would be better.

Feature: Remember the last Amount along with the last Category

There is a great time-saver of a feature used when entering new transactions, where the last chosen Category is remembered for a Payee. This avoids usually needless selection of the same values over and over.

I would suggest the Amount value to be saved, as well. It would further save time on entering the similar transactions.

Both of these options might (should?) be configurable in the Settings so that the users can set their individual preferences. I understand that not all the users will use the app in the same way so being able to set the preferences that differ from the defaults would be great.

The case where remembering an amount, along with a way to quickly overwrite it in cases where the new amount differs to the saved one, would be much easier for me compared to the case of entering the amount every time when the Payee is the same.
Something to discuss.

Currency update sets the reverse exchange rate

I have a few accounts with different currencies. In this case I used only EUR and HUF for a weekend trip.
The exchange transaction EUR->HUF was recorded as a transfer. (50 EUR = 15.000 HUF)
Then the payments were recorded in HUF account. (to total 6,000 HUF)
The remains were transferred HUF->EUR. (11,000 HUF = 30 EUR)

There are also a few transactions in 2 other EUR accounts (cash & bank) since the beginning of the month.

The main screen now shows that the total expenses for the current month amounts to 1,226,029.70 EUR (I wish!). However, there is no chance that the total amount is higher that 1000 EUR.

The currencies have been updated (currency exchange rates) before use.

Edit: I've just reproduced this again on a clean database:

  • create EUR account with initial balance 100.
  • create HUF account.
  • add a transfer 50 EUR -> 15000 HUF
  • add a withdrawal of 600 HUF in HUF account
  • set the default currency to EUR, for totals.

The total shows 600 EUR. Then I updated the currency exchange rates as they were initially 1:1. After the update, the total ammount for Expenses is 184,003.62 EUR.

Also Summary Total shows 4,416,136.88 EUR although there should now be less that €100.

Edit:
In HomeFragment.java, line 260, as the amounts are added, curTotal equals 50 in the first run, then 4416136 in the second one.

Choosing a base currency - list not sorted

It is quite difficult to select a base currency (during an initial application setup) due to the fact that the list is not sorted.

Settings -> General -> Base Currency.

Affected version is 2.0.0. Alpha 2

Add Transaction widget ignores security passcode on Cancel

When the user has been in the normal app (and entered the passcode), pressing 'Cancel' in the Add Transaction widget brings the user back to the main app without asking the pass code.

The widgets Cancel button should always exit the app and not go back to a previous activity.

Trouble with search

The case-sensitive search everywhere, for example, if there is a counterparty "Dentist" and I enter a word with a lowercase letter "dentist" then it does not find.Necessary to introduce either a large or a part within a word is not first.

Choose a contractor is not convenient.

When the chosen contractor - no buttons or select "OK". Have to push back, because of what happens accidentally come out of the wiring at all (twice tapnesh ago and everything necessary for a new skid)

Feature: Show options menu when tapping the Repeating Transactions item

The Repeating Transactions list currently displays the existing transactions and a button for creating a new one.
However, the main functionality lies in entering or skipping the next occurrence, or eventually editing an existing one. These options are in the menu that appears on long-tap. Single-tap on a transaction in the list has no effect.
I would expect that tapping on an item in the list would present me with the most common actions available. Maybe the list with the actions can be shown on tap instead of or inaddition to long-tap?

Logcat share throws an error

Just found this feature: About -> Logcat
Very handy for exporting logcats. However, the share button only comes up with an error: "Failed binder transaction!".

Fortunately the error can be seen in the logcat itself. :)

Repeating Transaction activity crash, because 'Monthly (last day)' options missing from app

These options are provided on the desktop, but not on Android:

  • Montly (last day), BILLSDEPOSITS_V1.REPEAT = 15
  • Montly (last business day), BILLSDEPOSITS_V1.REPEAT = 16

When entering or viewing such transactions on Android, the activity will crash:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.money.manager.ex/com.money.manager.ex.RepeatingTransactionActivity}: java.lang.IndexOutOfBoundsException: Invalid index 15, size is 15
...
at com.money.manager.ex.RepeatingTransactionActivity.onCreate(RepeatingTransactionActivity.java:511)

Thanks.

The wording in recurring transactions overdue is misleading

The notification in the drawer shows two transactions overdue:
notification-error

However, in the transactions list,
recurring-transactions
only one of them is shown as overdue. The other one is due today.

So, perhaps a clearer wording would be more appropriate here? The transaction which is due today shows Inactive. Maybe this could be made to say Due Today or something similar.

three

Note: the snapshot is taken on day 13. The transaction on 12th is overdue, the one on 13th is due, and on 15th is in the future.

Currency exchange rate chart options

Allow showing a full-screen (landscape) chart of the currency exchange rate for the currency. Implemented

A few options should be available on the chart:

  • reverse currency pair
  • modify the date range
  • modify chart type (bar, line, ...)

The currency chart is always paired with the default currency for displaying the chart.
The selected options should be persisted so that the next time the chart opens, it uses the last settings for the date range and chart type.

investment watchlist(s)

Since the investments are already part of the desktop application, maybe starting something in the mobile version would be handy. Perhaps a simple watchlist that updates the prices and details from Yahoo for the beginning.

The watchlist can display the securities that are already entered, and their current prices (also in the db).
Update prices would refresh the values and store them in the database.
There is the table for saving the stock history prices.

Indicator for the difference to the previous record might be added. (+/- x.y%)

Remember which account groups are collapsed on dashboard

I would find it quite handy if the account groups could be collapsed and have them stay this way when the dashboard is displayed the next time.
Perhaps a setting to enable/disable this behaviour.

Example: Collapse 'Credit Card' accounts. The next time the app opens, this account group should show collapsed.

The + button should be visible when keyboard is shown

In the lists (payees, currencies, etc.), when no record is found after search, the + button is the most needed. But only in this case, it is hidden behind the keyboard. :)
While there are payees in the list, it is visible.

The button also disappears when a long list is scrolled down.

Feature: Persistence of app settings

A number of app customizations are not stored in the MMEX database.

It would be useful to have an ability to export app settings that are not stored in the database.
Or persist them in the database using an Android-specific prefix.
This would allow backup of app customizations (look/feel/behaviour).

Perhaps the better of the two options would be to store the settings in the database. But users could have different settings on different devices so I'm not 100% sure what should go into db and what not.
Exporting a json file into Dropbox would also be a good option.

Now that I updated the title it would be good to clarify that this also implies ability to import and restore app settings from the settings file.

Menu button does not open the drawer

The hardware menu button does not open the sidebar menu drawer on the main screen.

Affected version 2.0.0 Alpha 2.

Toggling the drawer by tapping the menu button would be great.

Pressing DEL in the calculator results in unexpected behaviour for the last digit

There is an issue in the amount entry view, the mini calculator.

capture

The behaviour with the last digit is a bit unexpected. Pressing the DEL button will delete the digits correctly until the last one remains. Pressing it again with the last digit will leave the last digit visible.
However, if a number is typed then it will not append that digit to the one already displayed but will replace it completely.

I think it would be more consistent to delete the last digit and reset the value to 0. In that case typing a new digit will result in display of that digit, which would be expected and is similar to the starting situation in this view.

This behaviour is related to the new request I'm about to make, which is to remember the last amount along with the last category of the payee. In that case, if the amount is remembered, there should be a way for the user to replace the value and the current behaviour is a bit unintuitive.

After deleting a currency the update hangs

While testing the issue with currency update, I ran into the following:

on the Currencies screen,

  • remove a currency
  • update currencies

When the update hits the currency that was deleted, it hangs.

Base currency defaults to EURO-BELGIUM

I'm coming from MoneyManagerEx and starting to use the Android version. On the desktop, the base currency and currency of all accounts in the database is "Australian Dollar" (AUD). However, it also has the following currency configured:
image

In the Android app general settings, the base currency correctly shows as "Australian Dollar":
screenshot_2014-08-20-19-27-32

However, when I press it to open the selection dialog, the default changes to EURO-BELGIUM:
screenshot_2014-08-20-19-27-42

If I then proceed and select "Australia Dollar" the problem no longer happens.

Feature: Short tutorial on the first run

On the first run, show how to use

  • Accounts,
  • Currencies,
  • Transactions,
  • Recurring Transactions,
  • Dropbox Synchronization.

After the first run the tutorial does not appear. There is a setting, however, to enable turning it on the next time the app runs.

Force close while opening "Help" in dropbox settings

I noticed a force close when trying to open the "Help" in the dropbox section of the settings :
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.money.manager.ex/com.money.manager.ex.HelpActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v7.app.ActionBar.setDisplayHomeAsUpEnabled(boolean)' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
at android.app.ActivityThread.access$800(ActivityThread.java:144)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5221)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v7.app.ActionBar.setDisplayHomeAsUpEnabled(boolean)' on a null object reference
at com.money.manager.ex.fragment.BaseFragmentActivity.setDisplayHomeAsUpEnabled(BaseFragmentActivity.java:196)
at com.money.manager.ex.HelpActivity.onCreate(HelpActivity.java:40)
at android.app.Activity.performCreate(Activity.java:5933)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
            at android.app.ActivityThread.access$800(ActivityThread.java:144)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5221)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)

Force close when saving a new transaction or account with missing mandatory fields

The application crash when saving a transaction with missing mandatory field : for exemple saving an account with no name or a transaction with no payee.

I have the following stacktrace : com.afollestad.materialdialogs.MaterialDialog$DialogException: Bad window token, you cannot show a dialog before an Activity is created or after it's hidden.
at com.afollestad.materialdialogs.MaterialDialog.show(MaterialDialog.java:1546)
at com.money.manager.ex.CheckingAccountActivity.validateData(CheckingAccountActivity.java:1037)
at com.money.manager.ex.CheckingAccountActivity.updateData(CheckingAccountActivity.java:1065)
at com.money.manager.ex.CheckingAccountActivity.onActionDoneClick(CheckingAccountActivity.java:768)
at com.money.manager.ex.fragment.BaseFragmentActivity$4.onClick(BaseFragmentActivity.java:159)
at android.view.View.performClick(View.java:4756)
at android.view.View$PerformClick.run(View.java:19749)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5221)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)

Text display problem in overflow menu in Material Light Theme

The text of the overflow menu is dark over a grey/dark background (with a white line in front of it) wich makes it difficult to read. It is visible in the "Where the money goes" report section when changing the period with the calendar icon (for exemple). A white (or light green) background with a dark text would be easier to read. This problem is only visible with the "Material Light Theme", not with the "Material Dark Theme".
screenshot_2015-03-27-21-38-26

Show split transactions as one record

The account transactions containing splits are currently displayed as multiple transactions in the list.
This is not necessarily a bad thing but it would be more convenient to see these as one transaction record in the account. The details of the split are accessible through transaction details view.

This feature is now required in order to support split categories in qif export.

Display message on start when checking Dropbox for changes

The feature for checking Dropbox for updates is excellent.
There should be a message that indicates that something is happening as this is pretty important. In case there is an update on Dropbox, the user could have alreday started a new transaction, resulting in possible conflict?
A transient message at the bottom of the screen (like the one that displays which db is being used) would be great, in my opinion.
This is important on application start, before the user performs any action(s).

This can be merged with #116

Show selectors on single tap in Recurring Transaction Edit view

On a "new recurring transaction" screen, the selection of parameters (Date, Amount, Payee, Category...) requires double tap. This is a bit redundant as there is no real benefit. Using a single tap would make selection much simpler and would take less effort in filling the details.
Affects the current v2.

Rounding error

2015-01-28 19 02 34
As shown in the picture, the android version has an issue with floating point numbers and rounding. Desktop version does not have this for the exact same database file.

Allow downloading the currency exchange rate for a single currency

I believe most users, most of the time, will need to update only a handful of currencies that are in active use.

  • For this, it would be handy to have an option of updating the currency exchange rate from the currency edit view. A simple button or a menu option would download the rate for the open currency and update the value in the Conversion Rate input box.
  • Another option would be to add a menu item for Update in the currency list screen. This could be a more practical option when several currencies are to be updated in sequence.
  • Optionally, allow multi-select or updating the currencies used in the accounts

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.