X-Git-Url: https://git.ktnx.net/?p=mobile-ledger.git;a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fui%2Factivity%2FMainActivity.java;h=488dbeae02d537405d56089f81720949a1ea9b78;hp=760f6aacfbbdfffda4d69ede20cf59dcd4a5f9be;hb=7ff1c26d71d1f13fab1d7e1dc93c0d9469b64236;hpb=34e4db096ade208e89aec5b519883a76b698a254 diff --git a/app/src/main/java/net/ktnx/mobileledger/ui/activity/MainActivity.java b/app/src/main/java/net/ktnx/mobileledger/ui/activity/MainActivity.java index 760f6aac..488dbeae 100644 --- a/app/src/main/java/net/ktnx/mobileledger/ui/activity/MainActivity.java +++ b/app/src/main/java/net/ktnx/mobileledger/ui/activity/MainActivity.java @@ -33,12 +33,11 @@ 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; @@ -53,11 +52,7 @@ import net.ktnx.mobileledger.utils.MLDB; import java.lang.ref.WeakReference; import java.text.DateFormat; -import java.time.ZoneId; -import java.time.format.DateTimeFormatter; import java.util.Date; -import java.util.Observable; -import java.util.Observer; public class MainActivity extends AppCompatActivity { public MobileLedgerListFragment currentFragment = null; @@ -98,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(); @@ -170,13 +162,9 @@ public class MainActivity extends AppCompatActivity { 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(DateFormat.getDateTimeInstance().format(date)); - } + final String text = DateFormat.getDateTimeInstance().format(date); + tvLastUpdate.setText(text); + Log.d("despair", String.format("Date formatted: %s", text)); } }); }); @@ -185,7 +173,7 @@ public class MainActivity extends AppCompatActivity { 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()); @@ -217,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); @@ -229,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); @@ -265,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(); @@ -305,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); @@ -320,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) { @@ -357,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) { @@ -379,11 +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(); - new RefreshDescriptionsTask().execute(); + if (error == null) { + updateLastUpdateTextFromDB(); + + new RefreshDescriptionsTask().execute(); + } + else Toast.makeText(this, error, Toast.LENGTH_LONG).show(); } public void onRetrieveStart() { progressBar.setIndeterminate(true); @@ -409,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);