]> git.ktnx.net Git - mobile-ledger.git/blobdiff - app/src/main/java/net/ktnx/mobileledger/ui/activity/MainActivity.java
remove Exit item from the drawer
[mobile-ledger.git] / app / src / main / java / net / ktnx / mobileledger / ui / activity / MainActivity.java
index 931f783582bd6b95ba1ab62965ab0640033b5dff..488dbeae02d537405d56089f81720949a1ea9b78 100644 (file)
@@ -33,14 +33,14 @@ import android.support.v7.app.ActionBarDrawerToggle;
 import android.support.v7.app.AppCompatActivity;
 import android.support.v7.widget.Toolbar;
 import android.util.Log;
-import android.view.ContextMenu;
-import android.view.MenuItem;
 import android.view.View;
 import android.widget.LinearLayout;
 import android.widget.ProgressBar;
 import android.widget.TextView;
+import android.widget.Toast;
 
 import net.ktnx.mobileledger.R;
+import net.ktnx.mobileledger.async.RefreshDescriptionsTask;
 import net.ktnx.mobileledger.async.RetrieveTransactionsTask;
 import net.ktnx.mobileledger.model.Data;
 import net.ktnx.mobileledger.model.LedgerAccount;
@@ -51,11 +51,8 @@ import net.ktnx.mobileledger.ui.transaction_list.TransactionListFragment;
 import net.ktnx.mobileledger.utils.MLDB;
 
 import java.lang.ref.WeakReference;
-import java.time.ZoneId;
-import java.time.format.DateTimeFormatter;
+import java.text.DateFormat;
 import java.util.Date;
-import java.util.Observable;
-import java.util.Observer;
 
 public class MainActivity extends AppCompatActivity {
     public MobileLedgerListFragment currentFragment = null;
@@ -96,15 +93,12 @@ public class MainActivity extends AppCompatActivity {
         Toolbar toolbar = findViewById(R.id.toolbar);
         setSupportActionBar(toolbar);
 
-        Data.profile.addObserver(new Observer() {
-            @Override
-            public void update(Observable o, Object arg) {
-                MobileLedgerProfile profile = Data.profile.get();
-                runOnUiThread(() -> {
-                    if (profile == null) toolbar.setSubtitle("");
-                    else toolbar.setSubtitle(profile.getName());
-                });
-            }
+        Data.profile.addObserver((o, arg) -> {
+            MobileLedgerProfile profile = Data.profile.get();
+            runOnUiThread(() -> {
+                if (profile == null) setTitle(R.string.app_name);
+                else setTitle(profile.getName());
+            });
         });
 
         setupProfile();
@@ -160,33 +154,26 @@ public class MainActivity extends AppCompatActivity {
             }
         });
 
-        Data.lastUpdateDate.addObserver(new Observer() {
-            @Override
-            public void update(Observable o, Object arg) {
-                Log.d("main", "lastUpdateDate changed");
-                runOnUiThread(() -> {
-                    Date date = Data.lastUpdateDate.get();
-                    if (date == null) {
-                        tvLastUpdate.setText(R.string.transaction_last_update_never);
-                    }
-                    else {
-                        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
-                            tvLastUpdate.setText(date.toInstant().atZone(ZoneId.systemDefault())
-                                    .format(DateTimeFormatter.ISO_LOCAL_DATE_TIME));
-                        }
-                        else {
-                            tvLastUpdate.setText(date.toLocaleString());
-                        }
-                    }
-                });
-            }
+        Data.lastUpdateDate.addObserver((o, arg) -> {
+            Log.d("main", "lastUpdateDate changed");
+            runOnUiThread(() -> {
+                Date date = Data.lastUpdateDate.get();
+                if (date == null) {
+                    tvLastUpdate.setText(R.string.transaction_last_update_never);
+                }
+                else {
+                    final String text = DateFormat.getDateTimeInstance().format(date);
+                    tvLastUpdate.setText(text);
+                    Log.d("despair", String.format("Date formatted: %s", text));
+                }
+            });
         });
     }
     private void setupProfile() {
         Data.profiles.setList(MobileLedgerProfile.loadAllFromDB());
         MobileLedgerProfile profile = null;
 
-        String profileUUID = MLDB.get_option_value(MLDB.OPT_PROFILE_UUID, null);
+        String profileUUID = MLDB.getOption(MLDB.OPT_PROFILE_UUID, null);
         if (profileUUID == null) {
             if (Data.profiles.isEmpty()) {
                 Data.profiles.setList(MobileLedgerProfile.createInitialProfileList());
@@ -218,8 +205,7 @@ public class MainActivity extends AppCompatActivity {
 
         if (profile == null) throw new AssertionError("profile must have a value");
 
-        Data.profile.set(profile);
-        MLDB.set_option_value(MLDB.OPT_PROFILE_UUID, profile.getUuid());
+        Data.setCurrentProfile(profile);
 
         if (profile.getUrl().isEmpty()) {
             Intent intent = new Intent(this, ProfileListActivity.class);
@@ -230,32 +216,25 @@ public class MainActivity extends AppCompatActivity {
             startActivity(intent, args);
         }
     }
-    public void fab_new_transaction_clicked(View view) {
+    public void fabNewTransactionClicked(View view) {
         Intent intent = new Intent(this, NewTransactionActivity.class);
         startActivity(intent);
         overridePendingTransition(R.anim.slide_in_right, R.anim.dummy);
     }
-
-    public void nav_exit_clicked(View view) {
-        Log.w("app", "exiting");
-        finish();
-    }
-
-    public void nav_settings_clicked(View view) {
+    public void navSettingsClicked(View view) {
         Intent intent = new Intent(this, SettingsActivity.class);
         startActivity(intent);
+        drawer.closeDrawers();
     }
     public void markDrawerItemCurrent(int id) {
         TextView item = drawer.findViewById(id);
         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
-            item.setBackgroundColor(getResources().getColor(R.color.table_row_even_bg, getTheme()));
+            item.setBackgroundColor(getResources().getColor(R.color.table_row_dark_bg, getTheme()));
         }
         else {
-            item.setBackgroundColor(getResources().getColor(R.color.table_row_even_bg));
+            item.setBackgroundColor(getResources().getColor(R.color.table_row_dark_bg));
         }
 
-        setTitle(item.getText());
-
         @ColorInt int transparent = getResources().getColor(android.R.color.transparent);
 
         LinearLayout actions = drawer.findViewById(R.id.nav_actions);
@@ -266,39 +245,6 @@ public class MainActivity extends AppCompatActivity {
             }
         }
     }
-    public void onOptionsMenuClicked(MenuItem menuItem) {
-        ContextMenu.ContextMenuInfo info = menuItem.getMenuInfo();
-        switch (menuItem.getItemId()) {
-            case R.id.menu_acc_summary_cancel_selection:
-                if (accountSummaryFragment != null)
-                    accountSummaryFragment.onCancelAccSelection(menuItem);
-                break;
-            case R.id.menu_acc_summary_confirm_selection:
-                if (accountSummaryFragment != null)
-                    accountSummaryFragment.onConfirmAccSelection(menuItem);
-                break;
-            case R.id.menu_acc_summary_only_starred:
-                if (accountSummaryFragment != null)
-                    accountSummaryFragment.onShowOnlyStarredClicked(menuItem);
-                break;
-            case R.id.menu_transaction_list_filter:
-                if (transactionListFragment != null)
-                    transactionListFragment.onShowFilterClick(menuItem);
-                break;
-            default:
-                Log.e("menu", String.format("Menu item %d not handled", menuItem.getItemId()));
-        }
-    }
-    public void onViewClicked(View view) {
-        switch (view.getId()) {
-            case R.id.clearAccountNameFilter:
-                if (transactionListFragment != null)
-                    transactionListFragment.onClearAccountNameClick(view);
-                break;
-            default:
-                Log.e("click", String.format("View %d click not handled", view.getId()));
-        }
-    }
     public void onAccountSummaryClicked(View view) {
         drawer.closeDrawers();
 
@@ -306,6 +252,7 @@ public class MainActivity extends AppCompatActivity {
     }
     private void showAccountSummaryFragment() {
         mViewPager.setCurrentItem(0, true);
+        TransactionListFragment.accountFilter.set(null);
 //        FragmentTransaction ft = fragmentManager.beginTransaction();
 //        accountSummaryFragment = new AccountSummaryFragment();
 //        ft.replace(R.id.root_frame, accountSummaryFragment);
@@ -321,6 +268,7 @@ public class MainActivity extends AppCompatActivity {
 //        fragmentManager.popBackStack(0, FragmentManager.POP_BACK_STACK_INCLUSIVE);
     }
     private void showTransactionsFragment(LedgerAccount account) {
+        if (account != null) TransactionListFragment.accountFilter.set(account.getName());
         mViewPager.setCurrentItem(1, true);
 //        FragmentTransaction ft = fragmentManager.beginTransaction();
 //        if (transactionListFragment == null) {
@@ -358,7 +306,7 @@ public class MainActivity extends AppCompatActivity {
     }
     public void updateLastUpdateTextFromDB() {
         {
-            long last_update = Data.profile.get().get_option_value(MLDB.OPT_LAST_SCRAPE, 0L);
+            long last_update = Data.profile.get().getLongOption(MLDB.OPT_LAST_SCRAPE, 0L);
 
             Log.d("transactions", String.format("Last update = %d", last_update));
             if (last_update == 0) {
@@ -380,9 +328,15 @@ public class MainActivity extends AppCompatActivity {
         if (retrieveTransactionsTask != null) retrieveTransactionsTask.cancel(false);
         bTransactionListCancelDownload.setEnabled(false);
     }
-    public void onRetrieveDone(boolean success) {
+    public void onRetrieveDone(String error) {
         progressLayout.setVisibility(View.GONE);
-        updateLastUpdateTextFromDB();
+
+        if (error == null) {
+            updateLastUpdateTextFromDB();
+
+            new RefreshDescriptionsTask().execute();
+        }
+        else Toast.makeText(this, error, Toast.LENGTH_LONG).show();
     }
     public void onRetrieveStart() {
         progressBar.setIndeterminate(true);
@@ -408,7 +362,7 @@ public class MainActivity extends AppCompatActivity {
             progressBar.setIndeterminate(false);
         }
     }
-    public void nav_profiles_clicked(View view) {
+    public void navProfilesClicked(View view) {
         drawer.closeDrawers();
         Intent intent = new Intent(this, ProfileListActivity.class);
         startActivity(intent);