static uint32_t getCapabilities(uint16_t maxInboxSize)
{
	uint32_t serializedCapabilities = 0;

	serializedCapabilities |= PBL_IF_MICROPHONE_ELSE(0x01, 0x00);
	serializedCapabilities |= PBL_IF_COLOR_ELSE(0x02, 0x00);
	serializedCapabilities |= PBL_IF_ROUND_ELSE(0x04, 0x00);
	serializedCapabilities |= PBL_IF_SMARTSTRAP_ELSE(0x08, 0x00);
	serializedCapabilities |= PBL_IF_HEALTH_ELSE(0x10, 0x00);
	serializedCapabilities |= maxInboxSize << 16;

	return serializedCapabilities;
}
Beispiel #2
0
/*
 * Load the saved color settings, or if they don't exist load defaults
 */
void Settings_loadFromStorage() {
  // load the default colors
  globalSettings.timeBgColor      = GColorBlack;
  globalSettings.sidebarTextColor = GColorBlack;

  #ifdef PBL_COLOR
    globalSettings.timeColor      = GColorOrange;
    globalSettings.sidebarColor   = GColorOrange;
  #else
    globalSettings.timeColor      = GColorWhite;
    globalSettings.sidebarColor   = GColorLightGray;
  #endif

  // set the default widgets
  globalSettings.widgets[0] = PBL_IF_HEALTH_ELSE(HEALTH, BATTERY_METER);
  globalSettings.widgets[1] = EMPTY;
  globalSettings.widgets[2] = DATE;

  // set default disconnect icon activation
  globalSettings.activateDisconnectIcon = true;

  strncpy(globalSettings.altclockName, "ALT", sizeof(globalSettings.altclockName));
  globalSettings.decimalSeparator = '.';

  globalSettings.showBatteryPct = true;

  int current_settings_version = persist_exists(SETTINGS_VERSION_KEY) ? persist_read_int(SETTINGS_VERSION_KEY) : -1;
  APP_LOG(APP_LOG_LEVEL_DEBUG,"current_settings_version: %d", current_settings_version);
  if( current_settings_version > 5 ) {
    // new settings format
    StoredSettings storedSettings;
    memset(&storedSettings,0,sizeof(StoredSettings));
    // if previous version settings are used than only first part of settings would be overwritten,
    // all the other fields will left filled with zeroes
    persist_read_data(SETTING_VERSION6_AND_HIGHER, &storedSettings, sizeof(StoredSettings));
    globalSettings.timeColor = storedSettings.timeColor;
    globalSettings.timeBgColor = storedSettings.timeBgColor;
    globalSettings.sidebarColor = storedSettings.sidebarColor;
    globalSettings.sidebarTextColor = storedSettings.sidebarTextColor;
    globalSettings.languageId = storedSettings.languageId;
    globalSettings.showLeadingZero = storedSettings.showLeadingZero;
    globalSettings.clockFontId = storedSettings.clockFontId;
    globalSettings.btVibe = storedSettings.btVibe;
    globalSettings.hourlyVibe = storedSettings.hourlyVibe;
    globalSettings.widgets[0] = storedSettings.widgets[0];
    globalSettings.widgets[1] = storedSettings.widgets[1];
    globalSettings.widgets[2] = storedSettings.widgets[2];
    globalSettings.sidebarOnLeft = storedSettings.sidebarOnLeft;
    globalSettings.useLargeFonts = storedSettings.useLargeFonts;
    globalSettings.useMetric = storedSettings.useMetric;
    globalSettings.showBatteryPct = storedSettings.showBatteryPct;
    globalSettings.disableAutobattery = storedSettings.disableAutobattery;
    globalSettings.healthUseDistance = storedSettings.healthUseDistance;
    globalSettings.healthUseRestfulSleep = storedSettings.healthUseRestfulSleep;
    globalSettings.decimalSeparator = storedSettings.decimalSeparator;
    memcpy(globalSettings.altclockName, storedSettings.altclockName, 8);
    globalSettings.altclockOffset = storedSettings.altclockOffset;
    globalSettings.activateDisconnectIcon = storedSettings.activateDisconnectIcon;
  } else if( current_settings_version >= 0 ) {
    // old settings format
    if(persist_exists(SETTING_TIME_COLOR_KEY) && persist_exists(SETTING_TIME_BG_COLOR_KEY) &&
       persist_exists(SETTING_SIDEBAR_COLOR_KEY) && persist_exists(SETTING_SIDEBAR_TEXT_COLOR_KEY)) {

      // if the color data exists, load the colors
      persist_read_data(SETTING_TIME_COLOR_KEY,         &globalSettings.timeColor,        sizeof(GColor));
      persist_read_data(SETTING_TIME_BG_COLOR_KEY,      &globalSettings.timeBgColor,      sizeof(GColor));
      persist_read_data(SETTING_SIDEBAR_COLOR_KEY,      &globalSettings.sidebarColor,     sizeof(GColor));
      persist_read_data(SETTING_SIDEBAR_TEXT_COLOR_KEY, &globalSettings.sidebarTextColor, sizeof(GColor));
    }

    // load widgets
    if(persist_exists(SETTING_SIDEBAR_WIDGET0_KEY)) {
      globalSettings.widgets[0] = persist_read_int(SETTING_SIDEBAR_WIDGET0_KEY);
      globalSettings.widgets[1] = persist_read_int(SETTING_SIDEBAR_WIDGET1_KEY);
      globalSettings.widgets[2] = persist_read_int(SETTING_SIDEBAR_WIDGET2_KEY);
    }

    if(persist_exists(SETTING_ALTCLOCK_NAME_KEY)) {
      persist_read_string(SETTING_ALTCLOCK_NAME_KEY, globalSettings.altclockName, sizeof(globalSettings.altclockName));
    }

    // load the rest of the settings, using default settings if none exist
    // all settings except colors automatically return "0" or "false" if
    // they haven't been set yet, so we don't need to check if they exist
    globalSettings.useMetric              = persist_read_bool(SETTING_USE_METRIC_KEY);
    globalSettings.sidebarOnLeft          = persist_read_bool(SETTING_SIDEBAR_LEFT_KEY);
    globalSettings.btVibe                 = persist_read_bool(SETTING_BT_VIBE_KEY);
    globalSettings.languageId             = persist_read_int(SETTING_LANGUAGE_ID_KEY);
    globalSettings.showLeadingZero        = persist_read_int(SETTING_LEADING_ZERO_KEY);
    globalSettings.showBatteryPct         = persist_read_bool(SETTING_SHOW_BATTERY_PCT_KEY);
    globalSettings.disableAutobattery     = persist_read_bool(SETTING_DISABLE_AUTOBATTERY);
    globalSettings.disableWeather         = persist_read_bool(SETTING_DISABLE_WEATHER_KEY);
    globalSettings.clockFontId            = persist_read_int(SETTING_CLOCK_FONT_ID_KEY);
    globalSettings.hourlyVibe             = persist_read_int(SETTING_HOURLY_VIBE_KEY);
    globalSettings.useLargeFonts          = persist_read_bool(SETTING_USE_LARGE_FONTS_KEY);
    globalSettings.altclockOffset         = persist_read_int(SETTING_ALTCLOCK_OFFSET_KEY);
    globalSettings.healthUseDistance      = persist_read_bool(SETTING_HEALTH_USE_DISTANCE);
    globalSettings.healthUseRestfulSleep  = persist_read_bool(SETTING_HEALTH_USE_RESTFUL_SLEEP);

    if(persist_exists(SETTING_DECIMAL_SEPARATOR_KEY)) {
      globalSettings.decimalSeparator = (char)persist_read_int(SETTING_DECIMAL_SEPARATOR_KEY);
    }
  }

  Settings_updateDynamicSettings();
}