X-Git-Url: https://git.ktnx.net/?a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2FLatestTransactions.java;h=43f58e556c3559498b3ef9deed795cf74ecf63aa;hb=ffc95038b7866b378e2c38a0e1b708253a36637b;hp=98391f29f04d2fcd9a1a86ffc01efb852ffd5ac7;hpb=b3fff85cf8314bb335eab4e9e9aa0fa9681ad12b;p=mobile-ledger.git diff --git a/app/src/main/java/net/ktnx/mobileledger/LatestTransactions.java b/app/src/main/java/net/ktnx/mobileledger/LatestTransactions.java index 98391f29..43f58e55 100644 --- a/app/src/main/java/net/ktnx/mobileledger/LatestTransactions.java +++ b/app/src/main/java/net/ktnx/mobileledger/LatestTransactions.java @@ -1,8 +1,11 @@ package net.ktnx.mobileledger; +import android.app.Activity; import android.content.Intent; import android.content.pm.PackageInfo; import android.os.Bundle; +import android.preference.PreferenceManager; +import android.support.design.widget.Snackbar; import android.support.v4.view.GravityCompat; import android.support.v4.widget.DrawerLayout; import android.support.v7.app.ActionBarDrawerToggle; @@ -12,8 +15,22 @@ import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.view.View; +import android.widget.ProgressBar; +import android.widget.TextView; + +import java.util.Date; + +import static android.view.View.GONE; +import static net.ktnx.mobileledger.MobileLedgerDB.db; public class LatestTransactions extends AppCompatActivity { + DrawerLayout drawer; + + private static Date account_list_last_updated; + private static boolean account_list_needs_update = true; + public static void preferences_changed() { + account_list_needs_update = true; + } @Override protected void onCreate(Bundle savedInstanceState) { @@ -22,7 +39,7 @@ public class LatestTransactions extends AppCompatActivity { Toolbar toolbar = findViewById(R.id.toolbar); setSupportActionBar(toolbar); - DrawerLayout drawer = findViewById(R.id.drawer_layout); + drawer = findViewById(R.id.drawer_layout); ActionBarDrawerToggle toggle = new ActionBarDrawerToggle( this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close); drawer.addDrawerListener(toggle); @@ -34,7 +51,10 @@ public class LatestTransactions extends AppCompatActivity { PackageInfo pi = getApplicationContext().getPackageManager().getPackageInfo(getPackageName(), 0); ver.setText(pi.versionName); } catch (Exception e) { + e.printStackTrace(); } + + update_accounts(); } public void fab_new_transaction_clicked(View view) { @@ -84,4 +104,39 @@ public class LatestTransactions extends AppCompatActivity { return super.onOptionsItemSelected(item); } + private void prepare_db() { + MobileLedgerDB.setDb_filename(this.getApplicationInfo().deviceProtectedDataDir + "/" + MobileLedgerDB.DATABASE_NAME); + MobileLedgerDB.initDB(); + } + private void update_accounts() { + prepare_db(); + + Activity activity = this; + + ProgressBar pb = findViewById(R.id.progressBar); + TextView pt = findViewById(R.id.textProgress); + pb.setIndeterminate(true); + + RetrieveAccountsTask task = new RetrieveAccountsTask() { + @Override + protected void onProgressUpdate(Integer... values) { + if ( values[0] == 0 ) + pt.setText(R.string.progress_connecting); + else + pt.setText(String.format(getResources().getString(R.string.progress_N_accounts_loaded), values[0])); + } + + @Override + protected void onPostExecute(Void result) { + pb.setVisibility(GONE); + pt.setVisibility(GONE); + if (this.error != 0) + Snackbar.make(drawer, activity.getResources().getString(this.error), Snackbar.LENGTH_LONG ); + } + }; + + task.setPref(PreferenceManager.getDefaultSharedPreferences(this)); + task.execute(db); + + } }