]> git.ktnx.net Git - mobile-ledger.git/blobdiff - app/src/main/java/net/ktnx/mobileledger/NewTransactionActivity.java
use clip-art check icon, and show it as soon as the submit completes
[mobile-ledger.git] / app / src / main / java / net / ktnx / mobileledger / NewTransactionActivity.java
index 1a86818a6204023f8b2a7e8b7d6b506f7119d7ac..6709b7d9e566af4acceb203c54e6df951b8f83cc 100644 (file)
@@ -1,11 +1,14 @@
 package net.ktnx.mobileledger;
 
+import android.animation.AnimatorInflater;
+import android.animation.AnimatorSet;
 import android.annotation.TargetApi;
 import android.database.Cursor;
 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 +26,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;
@@ -43,11 +47,14 @@ import java.util.Objects;
  * 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;
@@ -73,6 +80,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++) {
@@ -84,6 +93,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);
 
@@ -215,7 +225,27 @@ public class NewTransactionActivity extends AppCompatActivity implements TaskCal
 
     @Override
     public void done() {
+        fab.setImageResource(R.drawable.ic_check_white_24dp);
         fab.setEnabled(true);
+
+        AnimatorSet set = (AnimatorSet) AnimatorInflater.loadAnimator(this, R.animator.new_trans_animation);
+        set.setTarget(fab);
+        set.start();
+        final Handler at_fade_out = new Handler();
+        at_fade_out.postDelayed(new Runnable() {
+            @Override
+            public void run() {
+
+                final Handler at_fade_in = new Handler();
+                at_fade_in.postDelayed(new Runnable() {
+                    @Override
+                    public void run() {
+                        fab.setImageResource(R.drawable.ic_save_white_24dp);
+                    }
+                }, 1000);
+            }
+        }, 500);
+        progress.setVisibility(View.INVISIBLE);
         reset_form();
     }