X-Git-Url: https://git.ktnx.net/?a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2FNewTransactionActivity.java;h=148eacb1a46f56e4d056534fc538df531280c667;hb=4c2a5558d23013ad8855997df0d8be067a2bf23d;hp=29d021f3cbf71c38db04c1ffa8c5dd9b0cf4405d;hpb=3706b46dd68042c64910cf75758c07f59b7fd263;p=mobile-ledger.git diff --git a/app/src/main/java/net/ktnx/mobileledger/NewTransactionActivity.java b/app/src/main/java/net/ktnx/mobileledger/NewTransactionActivity.java index 29d021f3..148eacb1 100644 --- a/app/src/main/java/net/ktnx/mobileledger/NewTransactionActivity.java +++ b/app/src/main/java/net/ktnx/mobileledger/NewTransactionActivity.java @@ -6,6 +6,7 @@ import android.database.MatrixCursor; import android.database.sqlite.SQLiteDatabase; import android.os.Build; import android.os.Bundle; +import android.os.Handler; import android.preference.PreferenceManager; import android.provider.FontsContract; import android.support.design.widget.FloatingActionButton; @@ -23,6 +24,7 @@ import android.view.View; import android.widget.AutoCompleteTextView; import android.widget.EditText; import android.widget.FilterQueryProvider; +import android.widget.ProgressBar; import android.widget.SimpleCursorAdapter; import android.widget.TableLayout; import android.widget.TableRow; @@ -30,9 +32,27 @@ import android.widget.TextView; import java.util.Objects; +/* + * TODO: auto-fill of transaction description + * if Android O's implementation won't work, add a custom one + * TODO: nicer progress while transaction is submitted + * TODO: periodic and manual refresh of available accounts + * (now done forcibly each time the main activity is started) + * TODO: latest transactions, maybe with browsing further in the past? + * TODO: reports + * TODO: get rid of the custom session/cookie and auth code? + * (the last problem with the POST was the missing content-length header) + * TODO: app icon + * TODO: nicer swiping removal with visual feedback + * TODO: activity with current balance + * TODO: setup wizard + * TODO: update accounts/check settings upon change of backend settings + * */ + public class NewTransactionActivity extends AppCompatActivity implements TaskCallback { private TableLayout table; private FloatingActionButton fab; + private ProgressBar progress; private TextView text_date; private TextView text_descr; private static SaveTransactionTask saver; @@ -58,6 +78,8 @@ public class NewTransactionActivity extends AppCompatActivity implements TaskCal new_transaction_save_clicked(view); } }); + progress = findViewById(R.id.save_transaction_progress); + Objects.requireNonNull(getSupportActionBar()).setDisplayHomeAsUpEnabled(true); table = findViewById(R.id.new_transaction_accounts_table); for (int i = 0; i < table.getChildCount(); i++) { @@ -69,6 +91,7 @@ public class NewTransactionActivity extends AppCompatActivity implements TaskCal public void new_transaction_save_clicked(View view) { fab.setEnabled(false); + progress.setVisibility(View.VISIBLE); saver = new SaveTransactionTask(this); @@ -201,7 +224,17 @@ public class NewTransactionActivity extends AppCompatActivity implements TaskCal @Override public void done() { fab.setEnabled(true); + + fab.setImageResource(R.drawable.ic_thick_check_white); + progress.setVisibility(View.INVISIBLE); reset_form(); + final Handler handler = new Handler(); + handler.postDelayed(new Runnable() { + @Override + public void run() { + fab.setImageResource(R.drawable.ic_save_white_24dp); + } + }, 1500); } private void reset_form() {