- fab = mActivity.findViewById(R.id.btn_add_transaction);
-
- root.addOnItemTouchListener(new RecyclerItemListener(mActivity, root,
- new RecyclerItemListener.RecyclerTouchListener() {
- @Override
- public void onClickItem(View v, int position) {
- Log.d("list", String.format("item %d clicked", position));
- if (modelAdapter.isSelectionActive()) {
- modelAdapter.selectItem(position);
- }
- else {
- List<LedgerAccount> accounts = model.getAccounts(mActivity);
- if (accounts != null) {
- LedgerAccount account = accounts.get(position);
-
- mActivity.showAccountTransactions(account);
- }
- }
- }
-
- @Override
- public void onLongClickItem(View v, int position) {
- Log.d("list", String.format("item %d long-clicked", position));
- modelAdapter.startSelection();
- if (optMenu != null) {
- optMenu.findItem(R.id.menu_acc_summary_cancel_selection)
- .setVisible(true);
- optMenu.findItem(R.id.menu_acc_summary_confirm_selection)
- .setVisible(true);
- optMenu.findItem(R.id.menu_acc_summary_only_starred).setVisible(false);
- }
- {
- if (fab != null) fab.hide();
- }
- }
- }));
-
- root.addOnScrollListener(new RecyclerView.OnScrollListener() {
- @Override
- public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
- if (fab != null) {
- if (dy < 0) fab.show();
- if (dy > 0) fab.hide();
- }
- }
- });
- swiper = mActivity.findViewById(R.id.account_swiper);
- swiper.setColorSchemeResources(R.color.colorPrimary, R.color.colorAccent);
- swiper.setOnRefreshListener(() -> {
- Log.d("ui", "refreshing accounts via swipe");
- update_accounts(true);
- });
- prepare_db();
-// update_account_table();
- update_accounts(false);
-
- }
- private void prepare_db() {
- account_list_last_updated = MLDB.get_option_value(mActivity, "last_refresh", (long) 0);
- }
-
- private void update_accounts(boolean force) {
- long now = new Date().getTime();
- if ((now > (account_list_last_updated + (24 * 3600 * 1000))) || force) {
- Log.d("db",
- "accounts last updated at " + account_list_last_updated + " and now is " + now +
- ". re-fetching");
- update_accounts();
- }
- }
-
- private void update_accounts() {
- RetrieveAccountsTask task = new RetrieveAccountsTask(new WeakReference<>(this));
-
- task.setPref(PreferenceManager.getDefaultSharedPreferences(mActivity));
- task.execute();
-
- }
- public void onAccountRefreshDone(int error) {
- swiper.setRefreshing(false);
- if (error != 0) {
- String err_text = getResources().getString(error);
- Log.d("visual", String.format("showing snackbar: %s", err_text));
- Snackbar.make(swiper, err_text, Snackbar.LENGTH_LONG).show();
- }
- else {
- MLDB.set_option_value(mActivity, "last_refresh", new Date().getTime());
- update_account_table();
- }
- }
- private void update_account_table() {
- if (this.getContext() == null) return;
-
- model.reloadAccounts(this.getContext());
- modelAdapter.notifyDataSetChanged();
- }
- public void onRefreshAccountSummaryClicked(MenuItem mi) {
- update_accounts(true);
- }
-
- public void onShowOnlyStarredClicked(MenuItem mi) {
- SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(mActivity);
- boolean flag = pref.getBoolean(PREF_KEY_SHOW_ONLY_STARRED_ACCOUNTS, false);