public void setEmergency(final int code) {
    int res = emergencyStringMap.get(code);

    if (res != 0) {
      txtAlert.setText(context.getString(res));
      txtAlert.setVisibility(Text.VISIBLE);
      txtAlert.blink(true);
    } else {
      txtAlert.setVisibility(Text.INVISIBLE);
      txtAlert.blink(false);
    }
  }
  public void setBatteryValue(final int percent) {
    if (percent > 100 || percent < 0) {
      Log.w(TAG, "Can't set battery value. Invalid value " + percent);
      return;
    }

    int imgNum = Math.round((float) percent / 100.0f * 3.0f);

    txtBatteryStatus.setText(percent + "%");

    if (imgNum < 0) imgNum = 0;

    if (imgNum > 3) imgNum = 3;

    if (batteryIndicator != null) {
      batteryIndicator.setValue(imgNum);
    }
  }
  public void setUsbRemainingTime(int seconds) {
    boolean needColor = false;
    String remainingTime = null;

    if (seconds != prevRemainingTime) {
      if (3600 < seconds) {
        remainingTime = "> 1h";
      } else if (2700 < seconds) {
        remainingTime = "45m";
      } else if (1800 < seconds) {
        remainingTime = "30m";
      } else if (900 < seconds) {
        remainingTime = "15m";
      } else if (600 < seconds) {
        remainingTime = "10m";
      } else if (300 < seconds) {
        remainingTime = "5m";
      } else {
        if (30 > seconds) {
          needColor = true;
        } // No else

        int remMin = seconds / 60;
        int remSec = seconds % 60;

        if (0 == remSec && 0 == remMin) {
          remainingTime = "FULL";
        } else {
          remainingTime = "" + remMin + ":" + (remSec >= 10 ? remSec : ("0" + remSec));
        }
      }

      prevRemainingTime = seconds;
      txtUsbRemaining.setText(remainingTime);

      if (needColor) {
        txtUsbRemaining.setTextColor(0xffAA0000);
      } else {
        txtUsbRemaining.setTextColor(Color.WHITE);
      }
    }
  }