Ejemplo n.º 1
0
  /* Request updates at startup */
  @Override
  protected void onResume() {
    Log.i(TAG, "OnResume called");
    super.onResume();

    // register the broadcast receiver
    IntentFilter intentFilter = new IntentFilter(ReferenceStore.REF_UPDATED);
    m_referenceSavedReceiver =
        new BroadcastReceiver() {
          @Override
          public void onReceive(Context context, Intent intent) {
            // extract our message from intent
            String refName = intent.getStringExtra(Reference.EXTRA_REF_NAME);
            // log our message value
            Log.i(TAG, "Received broadcast, reference was updated:" + refName);

            // reload the spinners to make sure all refs are in the right sequence when current gets
            // refreshed
            //                if (refName.equals(Reference.CURRENT_REF_FILENAME))
            //                {
            refreshSpinners();
            //                }
          }
        };

    // registering our receiver
    this.registerReceiver(m_referenceSavedReceiver, intentFilter);

    // the service is always started as it handles the widget updates too
    SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(this);
    boolean serviceShouldBeRunning = sharedPrefs.getBoolean("ref_for_screen_off", false);
    if (serviceShouldBeRunning) {
      if (!EventWatcherService.isServiceRunning(this)) {
        Intent i = new Intent(this, EventWatcherService.class);
        this.startService(i);
      }
    }

    // make sure to create a valid "current" stat if none exists
    // or if prefs re set to auto refresh
    boolean bAutoRefresh = sharedPrefs.getBoolean("auto_refresh", true);

    if ((bAutoRefresh)
        || (!ReferenceStore.hasReferenceByName(Reference.CURRENT_REF_FILENAME, this))) {
      Intent serviceIntent = new Intent(this, WriteCurrentReferenceService.class);
      this.startService(serviceIntent);
      doRefresh(true);

    } else {
      refreshSpinners();
      doRefresh(false);
    }

    // check if active monitoring is on: if yes make sure the alarm is scheduled
    if (sharedPrefs.getBoolean("active_mon_enabled", false)) {
      if (!StatsProvider.isActiveMonAlarmScheduled(this)) {
        StatsProvider.scheduleActiveMonAlarm(this);
      }
    }
  }