diff --git a/Modules/RuuviDiscover/Sources/RuuviDiscover/VMP/View/Table/DiscoverTableHeaderView.swift b/Modules/RuuviDiscover/Sources/RuuviDiscover/VMP/View/Table/DiscoverTableHeaderView.swift
index 068d60ba9..3e6b2dc4d 100644
--- a/Modules/RuuviDiscover/Sources/RuuviDiscover/VMP/View/Table/DiscoverTableHeaderView.swift
+++ b/Modules/RuuviDiscover/Sources/RuuviDiscover/VMP/View/Table/DiscoverTableHeaderView.swift
@@ -152,10 +152,12 @@ class DiscoverTableHeaderView: UIView {
extension DiscoverTableHeaderView {
func handleNFCButtonViewVisibility(show: Bool) {
- nfcButtonTopConstraint.isActive = show
- nfcButtonBottomConstraint.isActive = show
+ if isBluetoothPermissionGranted && isNFCAvailable {
+ nfcButtonTopConstraint.isActive = show
+ nfcButtonBottomConstraint.isActive = show
+ nfcButton.isHidden = !show
+ }
descriptionLabelBottomConstraint.isActive = !show
- nfcButton.isHidden = !show
let addSensorString: String = addSensorDescriptionKey.localized(for: Self.self)
let addSensorViaNFCString = addSensorViaNFCKey.localized(for: Self.self)
let descriptionString =
diff --git a/station.localization b/station.localization
index 14e51876b..1e2526a4f 160000
--- a/station.localization
+++ b/station.localization
@@ -1 +1 @@
-Subproject commit 14e51876becd7974580071fd7065147f9ea85def
+Subproject commit 1e2526a4fa4c26d90bb115c944b837ec3aed5166
diff --git a/station.xcodeproj/project.pbxproj b/station.xcodeproj/project.pbxproj
index 942d54fcb..af3136ea8 100644
--- a/station.xcodeproj/project.pbxproj
+++ b/station.xcodeproj/project.pbxproj
@@ -6369,7 +6369,7 @@
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CODE_SIGN_STYLE = Manual;
- CURRENT_PROJECT_VERSION = 398;
+ CURRENT_PROJECT_VERSION = 402;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEVELOPMENT_TEAM = 4MUYJ4YYH4;
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = 4MUYJ4YYH4;
@@ -6379,7 +6379,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
- MARKETING_VERSION = 2.3.0;
+ MARKETING_VERSION = 2.3.1;
OTHER_SWIFT_FLAGS = "$(inherited) -D COCOAPODS -D DEVELOPMENT";
PRODUCT_BUNDLE_IDENTIFIER = com.ruuvi.station;
PRODUCT_NAME = "$(TARGET_NAME)";
@@ -6401,7 +6401,7 @@
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CODE_SIGN_STYLE = Manual;
- CURRENT_PROJECT_VERSION = 398;
+ CURRENT_PROJECT_VERSION = 402;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEVELOPMENT_TEAM = 4MUYJ4YYH4;
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = 4MUYJ4YYH4;
@@ -6411,7 +6411,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
- MARKETING_VERSION = 2.3.0;
+ MARKETING_VERSION = 2.3.1;
OTHER_SWIFT_FLAGS = "$(inherited) -D COCOAPODS";
PRODUCT_BUNDLE_IDENTIFIER = com.ruuvi.station;
PRODUCT_NAME = "$(TARGET_NAME)";
@@ -6433,7 +6433,7 @@
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CODE_SIGN_STYLE = Manual;
- CURRENT_PROJECT_VERSION = 398;
+ CURRENT_PROJECT_VERSION = 402;
DEVELOPMENT_TEAM = 4MUYJ4YYH4;
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = 4MUYJ4YYH4;
GENERATE_INFOPLIST_FILE = YES;
@@ -6446,7 +6446,7 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
- MARKETING_VERSION = 2.3.0;
+ MARKETING_VERSION = 2.3.1;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = com.ruuvi.station.widgets;
@@ -6470,7 +6470,7 @@
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CODE_SIGN_STYLE = Manual;
- CURRENT_PROJECT_VERSION = 398;
+ CURRENT_PROJECT_VERSION = 402;
DEVELOPMENT_TEAM = 4MUYJ4YYH4;
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = 4MUYJ4YYH4;
GENERATE_INFOPLIST_FILE = YES;
@@ -6483,7 +6483,7 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
- MARKETING_VERSION = 2.3.0;
+ MARKETING_VERSION = 2.3.1;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = com.ruuvi.station.widgets;
PRODUCT_NAME = "$(TARGET_NAME)";
@@ -6505,7 +6505,7 @@
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CODE_SIGN_STYLE = Manual;
- CURRENT_PROJECT_VERSION = 398;
+ CURRENT_PROJECT_VERSION = 402;
DEVELOPMENT_TEAM = 4MUYJ4YYH4;
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = 4MUYJ4YYH4;
GENERATE_INFOPLIST_FILE = YES;
@@ -6518,7 +6518,7 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
- MARKETING_VERSION = 2.3.0;
+ MARKETING_VERSION = 2.3.1;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = com.ruuvi.station.intents;
@@ -6541,7 +6541,7 @@
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CODE_SIGN_STYLE = Manual;
- CURRENT_PROJECT_VERSION = 398;
+ CURRENT_PROJECT_VERSION = 402;
DEVELOPMENT_TEAM = 4MUYJ4YYH4;
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = 4MUYJ4YYH4;
GENERATE_INFOPLIST_FILE = YES;
@@ -6554,7 +6554,7 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
- MARKETING_VERSION = 2.3.0;
+ MARKETING_VERSION = 2.3.1;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = com.ruuvi.station.intents;
PRODUCT_NAME = "$(TARGET_NAME)";
@@ -6693,7 +6693,7 @@
CODE_SIGN_ENTITLEMENTS = station/station.entitlements;
CODE_SIGN_IDENTITY = "iPhone Developer";
CODE_SIGN_STYLE = Manual;
- CURRENT_PROJECT_VERSION = 398;
+ CURRENT_PROJECT_VERSION = 402;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEVELOPMENT_TEAM = 4MUYJ4YYH4;
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = 4MUYJ4YYH4;
@@ -6735,7 +6735,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
- MARKETING_VERSION = 2.3.0;
+ MARKETING_VERSION = 2.3.1;
OTHER_SWIFT_FLAGS = "$(inherited) -D COCOAPODS";
PRODUCT_BUNDLE_IDENTIFIER = com.ruuvi.station;
PRODUCT_NAME = "$(TARGET_NAME)";
@@ -6755,7 +6755,7 @@
CODE_SIGN_ENTITLEMENTS = station/station.entitlements;
CODE_SIGN_IDENTITY = "iPhone Developer";
CODE_SIGN_STYLE = Manual;
- CURRENT_PROJECT_VERSION = 398;
+ CURRENT_PROJECT_VERSION = 402;
DEVELOPMENT_TEAM = 4MUYJ4YYH4;
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = 4MUYJ4YYH4;
INFOPLIST_FILE = "$(SRCROOT)/station/Resources/Plists/Info.plist";
@@ -6764,7 +6764,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
- MARKETING_VERSION = 2.3.0;
+ MARKETING_VERSION = 2.3.1;
OTHER_SWIFT_FLAGS = "$(inherited) -D COCOAPODS";
PRODUCT_BUNDLE_IDENTIFIER = com.ruuvi.station;
PRODUCT_NAME = "$(TARGET_NAME)";
@@ -6869,7 +6869,7 @@
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CODE_SIGN_STYLE = Manual;
- CURRENT_PROJECT_VERSION = 398;
+ CURRENT_PROJECT_VERSION = 402;
DEVELOPMENT_TEAM = "";
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = 4MUYJ4YYH4;
GENERATE_INFOPLIST_FILE = YES;
@@ -6882,7 +6882,7 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
- MARKETING_VERSION = 2.3.0;
+ MARKETING_VERSION = 2.3.1;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = com.ruuvi.station.pnservice;
@@ -6904,7 +6904,7 @@
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CODE_SIGN_STYLE = Manual;
- CURRENT_PROJECT_VERSION = 398;
+ CURRENT_PROJECT_VERSION = 402;
DEVELOPMENT_TEAM = "";
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = 4MUYJ4YYH4;
GENERATE_INFOPLIST_FILE = YES;
@@ -6917,7 +6917,7 @@
"@executable_path/Frameworks",
"@executable_path/../../Frameworks",
);
- MARKETING_VERSION = 2.3.0;
+ MARKETING_VERSION = 2.3.1;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = com.ruuvi.station.pnservice;
PRODUCT_NAME = "$(TARGET_NAME)";
diff --git a/station/Resources/Plists/DevInfo.plist b/station/Resources/Plists/DevInfo.plist
index 92b2609c8..0aee76370 100644
--- a/station/Resources/Plists/DevInfo.plist
+++ b/station/Resources/Plists/DevInfo.plist
@@ -24,7 +24,7 @@
CFBundleShortVersionString
$(MARKETING_VERSION)
CFBundleVersion
- 398
+ 402
FirebaseMessagingAutoInitEnabled
LSRequiresIPhoneOS
diff --git a/station/Resources/Strings/de.lproj/Localizable.strings b/station/Resources/Strings/de.lproj/Localizable.strings
index 22ba79752..c0b9f31f3 100644
--- a/station/Resources/Strings/de.lproj/Localizable.strings
+++ b/station/Resources/Strings/de.lproj/Localizable.strings
@@ -273,7 +273,7 @@
"About.Privacy.header" = "Datenschutz-bestimmungen";
"About.Troubleshooting.contents" = "Hilfe bei der Verwendung der Ruuvi Station-Apps, Ruuvi-Produkte und des Ruuvi Cloud-Dienstes finden Sie in unserem Support-Center: ruuvi.com/support";
"About.Troubleshooting.header" = "Fehlerbehebung";
-"Interval.Hour.string" = "Stunden";
+"hours" = "Stunden";
"Interval.Days.string" = "Tage";
"TagSettings.AirHumidityAlert.title" = "Luftfeuchtigkeit (%@)";
"HumidityUnit.gm3.title" = "Absolut (g/m³)";
@@ -519,6 +519,7 @@ Ihr RuuviTag-Sensor ist einsatzbereit!";
"TagSettings.Share.title" = "Teilen";
"Menu.LoggedIn.title" = "Eingeloggt:";
"Interval.Day.string" = "Tag";
+"hour" = "Stunde";
"TagSettings.tagNameTitleLabel.rename.text" = "Ihre Sensoren werden in alphabetischer Reihenfolge angezeigt.";
"On" = "An";
"Off" = "Aus";
diff --git a/station/Resources/Strings/en.lproj/Localizable.strings b/station/Resources/Strings/en.lproj/Localizable.strings
index 237040ebc..ee64606b4 100644
--- a/station/Resources/Strings/en.lproj/Localizable.strings
+++ b/station/Resources/Strings/en.lproj/Localizable.strings
@@ -274,7 +274,7 @@ If you cannot see the Language option in the settings, make sure that you have a
"About.Privacy.header" = "Privacy policy";
"About.Troubleshooting.contents" = "Find help using the Ruuvi Station apps, Ruuvi products and Ruuvi Cloud service from our support center: ruuvi.com/support";
"About.Troubleshooting.header" = "Troubleshooting";
-"Interval.Hour.string" = "Hours";
+"hours" = "Hours";
"Interval.Days.string" = "Days";
"TagSettings.AirHumidityAlert.title" = "Air Humidity (%@)";
"HumidityUnit.gm3.title" = "Absolute (g/m³)";
@@ -520,6 +520,7 @@ Your RuuviTag sensor is ready for use!";
"TagSettings.Share.title" = "Share";
"Menu.LoggedIn.title" = "Signed in:";
"Interval.Day.string" = "Day";
+"hour" = "Hour";
"TagSettings.tagNameTitleLabel.rename.text" = "Your sensors are displayed in alphabetical order.";
"On" = "On";
"Off" = "Off";
diff --git a/station/Resources/Strings/fi.lproj/Localizable.strings b/station/Resources/Strings/fi.lproj/Localizable.strings
index e4f4d0d47..d265df115 100644
--- a/station/Resources/Strings/fi.lproj/Localizable.strings
+++ b/station/Resources/Strings/fi.lproj/Localizable.strings
@@ -274,7 +274,7 @@ Mikäli et näe Kieli-valintaa asetuksissa, varmista, että sinulla on vähintä
"About.Privacy.header" = "Tietosuojakäytäntö";
"About.Troubleshooting.contents" = "Löydä apua Ruuvi Station -sovellusten, Ruuvi-tuotteiden ja Ruuvi Cloud -palvelun käyttöön tukikeskuksestamme: ruuvi.com/fi/tuki";
"About.Troubleshooting.header" = "Vianetsintä";
-"Interval.Hour.string" = "tuntia";
+"hours" = "tuntia";
"Interval.Days.string" = "päivää";
"TagSettings.AirHumidityAlert.title" = "Ilmankosteus (%@)";
"HumidityUnit.gm3.title" = "Absoluuttinen (g/m³)";
@@ -520,6 +520,7 @@ RuuviTag on valmis käyttöön!";
"TagSettings.Share.title" = "Jaa";
"Menu.LoggedIn.title" = "Kirjautunut:";
"Interval.Day.string" = "päivä";
+"hour" = "tunti";
"TagSettings.tagNameTitleLabel.rename.text" = "Anturisi asettuvat automaattisesti aakkosjärjestykseen.";
"On" = "Päällä";
"Off" = "Pois";
diff --git a/station/Resources/Strings/fr.lproj/Localizable.strings b/station/Resources/Strings/fr.lproj/Localizable.strings
index 6b2d2191b..a3cd770bd 100644
--- a/station/Resources/Strings/fr.lproj/Localizable.strings
+++ b/station/Resources/Strings/fr.lproj/Localizable.strings
@@ -273,7 +273,7 @@
"About.Privacy.header" = "Protection des données personnelles";
"About.Troubleshooting.contents" = "Trouvez de l'aide en utilisant les applications Ruuvi Station, les produits Ruuvi et le service Ruuvi Cloud depuis notre centre d'assistance : ruuvi.com/support";
"About.Troubleshooting.header" = "Dépannage technique";
-"Interval.Hour.string" = "Heures";
+"hours" = "Heures";
"Interval.Days.string" = "Jours";
"TagSettings.AirHumidityAlert.title" = "Humidité de l'air (%@)";
"HumidityUnit.gm3.title" = "Absolue (g/m³)";
@@ -519,6 +519,7 @@ RuuviTag est prêt à être utilisé !";
"TagSettings.Share.title" = "Partager";
"Menu.LoggedIn.title" = "Connecté :";
"Interval.Day.string" = "Jour";
+"hour" = "Heure";
"TagSettings.tagNameTitleLabel.rename.text" = "Les capteurs sont dans l'ordre alphabétique.";
"On" = "Activé";
"Off" = "Désactivé";
diff --git a/station/Resources/Strings/ru.lproj/Localizable.strings b/station/Resources/Strings/ru.lproj/Localizable.strings
index d4e4f6053..50a94fba6 100644
--- a/station/Resources/Strings/ru.lproj/Localizable.strings
+++ b/station/Resources/Strings/ru.lproj/Localizable.strings
@@ -274,7 +274,7 @@ If you cannot see the Language option in the settings, make sure that you have a
"About.Privacy.header" = "Политика конфиденциальности";
"About.Troubleshooting.contents" = "Получите помощь по использованию приложений Ruuvi Station, продуктов Ruuvi и облачной службы Ruuvi в нашем центре поддержки: ruuvi.com/support";
"About.Troubleshooting.header" = "Решение проблем";
-"Interval.Hour.string" = "Часов";
+"hours" = "Часов";
"Interval.Days.string" = "Дней";
"TagSettings.AirHumidityAlert.title" = "Влажность воздуха (%@)";
"HumidityUnit.gm3.title" = "Абсолютная влажность (г/м³)";
@@ -520,6 +520,7 @@ If you cannot see the Language option in the settings, make sure that you have a
"TagSettings.Share.title" = "Поделиться";
"Menu.LoggedIn.title" = "Пользователь:";
"Interval.Day.string" = "день";
+"hour" = "час";
"TagSettings.tagNameTitleLabel.rename.text" = "Датчики будут отсортированы в алфавитном порядке.";
"On" = "Вкл";
"Off" = "Выкл";
diff --git a/station/Resources/Strings/sv.lproj/Localizable.strings b/station/Resources/Strings/sv.lproj/Localizable.strings
index 5ccbc2211..2d1357c48 100644
--- a/station/Resources/Strings/sv.lproj/Localizable.strings
+++ b/station/Resources/Strings/sv.lproj/Localizable.strings
@@ -274,7 +274,7 @@ Om du inte kan se språkalternativet i inställningarna, se till att du har lagt
"About.Privacy.header" = "Integritetspolicy";
"About.Troubleshooting.contents" = "Hitta hjälp med att använda Ruuvi Station-appar, Ruuvi-produkter och Ruuvi Cloud-tjänst från vårt supportcenter: ruuvi.com/support";
"About.Troubleshooting.header" = "Felsökning";
-"Interval.Hour.string" = "Timmar";
+"hours" = "Timmar";
"Interval.Days.string" = "Dagar";
"TagSettings.AirHumidityAlert.title" = "Luftfuktighet (%@)";
"HumidityUnit.gm3.title" = "Absolut (g/m³)";
@@ -520,6 +520,7 @@ RuuviTag-sensorn är redo att användas!";
"TagSettings.Share.title" = "Dela";
"Menu.LoggedIn.title" = "Inloggad:";
"Interval.Day.string" = "Dag";
+"hour" = "Timme";
"TagSettings.tagNameTitleLabel.rename.text" = "Dina sensorer kommer att vara i alfabetisk ordning.";
"On" = "På";
"Off" = "Av";