Android Open Source - makler Updating Thread






From Project

Back to project page makler.

License

The source code is released under:

GNU General Public License

If you think the Android project makler listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package pl.net.newton.Makler.gpw.service;
//from w  w  w  .  ja v a  2s.co  m
import java.util.Calendar;

import pl.net.newton.Makler.common.GpwUtils;
import android.util.Log;

class UpdatingThread implements Runnable {
  private final QuotesService quotesService;

  private volatile Thread runner;

  private Calendar lastUpdate;

  UpdatingThread(QuotesService quotesService) {
    this.quotesService = quotesService;
  }

  public void run() {
    while (Thread.currentThread() == runner) {
      lastUpdate = Calendar.getInstance();
      int freq = this.quotesService.config.getFreqForeground();
      if (GpwUtils.gpwActive() && freq != 0 && this.quotesService.foreground) {
        try {
          this.quotesService.updateQuotes();
          notifyListeners();
        } catch (Exception e) {
          Log.e(QuotesService.TAG, "can't update quotes", e);
        }
      }
      Log.d(QuotesService.TAG, "waiting for " + freq + "s");
      try {
        Thread.sleep(1000 * freq);
      } catch (InterruptedException e) {
        Log.e(QuotesService.TAG, "Interrupted quote update loop", e);
        return;
      }
    }
  }

  private void notifyListeners() {
    for (QuotesListener listener : this.quotesService.listeners) {
      listener.quotesUpdated();
    }
  }

  public synchronized void startThread() {
    if (!isAlive()) {
      runner = new Thread(this);
      runner.start();
    }
  }

  public synchronized void stopThread() {
    if (runner != null) {
      Thread moribund = runner;
      runner = null;
      moribund.interrupt();
    }
  }

  private boolean isAlive() {
    if (runner == null) {
      return false;
    }
    if (!runner.isAlive()) {
      return false;
    }
    Calendar now = Calendar.getInstance();
    now.add(Calendar.SECOND, -(this.quotesService.config.getFreqForeground() + 30));
    return lastUpdate.after(now);
  }
}




Java Source Code List

pl.net.newton.Makler.common.Configuration.java
pl.net.newton.Makler.common.DateFormatUtils.java
pl.net.newton.Makler.common.GpwUtils.java
pl.net.newton.Makler.common.LocaleUtils.java
pl.net.newton.Makler.common.NumberFormatUtils.java
pl.net.newton.Makler.db.Constants.java
pl.net.newton.Makler.db.DbHelper.java
pl.net.newton.Makler.db.SqlConnection.java
pl.net.newton.Makler.db.alert.AlertBuilder.java
pl.net.newton.Makler.db.alert.AlertChecker.java
pl.net.newton.Makler.db.alert.AlertValue.java
pl.net.newton.Makler.db.alert.Alert.java
pl.net.newton.Makler.db.alert.AlertsDao.java
pl.net.newton.Makler.db.alert.Event.java
pl.net.newton.Makler.db.alert.Subject.java
pl.net.newton.Makler.db.quote.QuoteField.java
pl.net.newton.Makler.db.quote.Quote.java
pl.net.newton.Makler.db.quote.QuotesDao.java
pl.net.newton.Makler.db.service.SqlProvider.java
pl.net.newton.Makler.db.symbol.SymbolBuilder.java
pl.net.newton.Makler.db.symbol.Symbol.java
pl.net.newton.Makler.db.symbol.SymbolsDb.java
pl.net.newton.Makler.db.wallet.WalletDb.java
pl.net.newton.Makler.db.wallet.WalletItemBuilder.java
pl.net.newton.Makler.db.wallet.WalletItem.java
pl.net.newton.Makler.gpw.DefaultQuotesReceiver.java
pl.net.newton.Makler.gpw.QuotesReceiver.java
pl.net.newton.Makler.gpw.ex.GpwException.java
pl.net.newton.Makler.gpw.service.QuotesListener.java
pl.net.newton.Makler.gpw.service.QuotesService.java
pl.net.newton.Makler.gpw.service.UpdatingThread.java
pl.net.newton.Makler.history.BossaProvider.java
pl.net.newton.Makler.history.ByteArrayUtils.java
pl.net.newton.Makler.history.Cache.java
pl.net.newton.Makler.history.ChannelTools.java
pl.net.newton.Makler.history.EntryListWithIndexes.java
pl.net.newton.Makler.history.EntryList.java
pl.net.newton.Makler.history.HistoryFilter.java
pl.net.newton.Makler.history.HistoryProvider.java
pl.net.newton.Makler.history.service.HistoryListener.java
pl.net.newton.Makler.history.service.HistoryService.java
pl.net.newton.Makler.httpClient.Connector.java
pl.net.newton.Makler.receivers.QuotesAlarmReceiver.java
pl.net.newton.Makler.receivers.StartupReceiver.java
pl.net.newton.Makler.service.ServiceManager.java
pl.net.newton.Makler.ui.About.java
pl.net.newton.Makler.ui.AbstractActivity.java
pl.net.newton.Makler.ui.Alerts.java
pl.net.newton.Makler.ui.FullScreenGraph.java
pl.net.newton.Makler.ui.Preferences.java
pl.net.newton.Makler.ui.QuoteDetails.java
pl.net.newton.Makler.ui.Quotes.java
pl.net.newton.Makler.ui.Symbols.java
pl.net.newton.Makler.ui.WalletForm.java
pl.net.newton.Makler.ui.WalletItemCalculator.java
pl.net.newton.Makler.ui.Wallet.java
pl.net.newton.Makler.ui.adapter.AlertsAdapter.java
pl.net.newton.Makler.ui.adapter.QuotesAdapter.java
pl.net.newton.Makler.ui.adapter.SymbolsAdapter.java
pl.net.newton.Makler.ui.adapter.WalletAdapter.java
pl.net.newton.Makler.ui.graph.GraphView.java
pl.net.newton.Makler.ui.graph.MaklerGraphicalView.java