diff --git a/app/src/main/java/io/homeassistant/companion/android/sensors/StorageSensorManager.kt b/app/src/main/java/io/homeassistant/companion/android/sensors/StorageSensorManager.kt index e8f3ec414..93c1c89ff 100644 --- a/app/src/main/java/io/homeassistant/companion/android/sensors/StorageSensorManager.kt +++ b/app/src/main/java/io/homeassistant/companion/android/sensors/StorageSensorManager.kt @@ -15,8 +15,15 @@ class StorageSensorManager : SensorManager { private val storageSensor = SensorManager.BasicSensor( "storage_sensor", "sensor", - R.string.sensor_name_storage, - R.string.sensor_description_storage_sensor, + R.string.basic_sensor_name_internal_storage, + R.string.sensor_description_internal_storage, + unitOfMeasurement = "%" + ) + private val externalStorage = SensorManager.BasicSensor( + "external_storage", + "sensor", + R.string.basic_sensor_name_external_storage, + R.string.sensor_description_external_storage, unitOfMeasurement = "%" ) val path: File = Environment.getDataDirectory() @@ -58,7 +65,7 @@ class StorageSensorManager : SensorManager { override val name: Int get() = R.string.sensor_name_storage override val availableSensors: List - get() = listOf(storageSensor) + get() = listOf(storageSensor, externalStorage) override fun requiredPermissions(): Array { return emptyArray() @@ -68,6 +75,7 @@ class StorageSensorManager : SensorManager { context: Context ) { updateStorageSensor(context) + updateExternalStorageSensor(context) } private fun updateStorageSensor(context: Context) { @@ -99,8 +107,40 @@ class StorageSensorManager : SensorManager { mapOf( "Free internal storage" to freeInternalStorage, "Total internal storage" to totalInternalStorage, - "Free external storage" to freeExternalStorage, - "Total external storage" to totalExternalStorage + "Free external storage" to freeExternalStorage, // Remove after next release + "Total external storage" to totalExternalStorage // Remove after next release + ) + ) + } + + private fun updateExternalStorageSensor(context: Context) { + if (!isEnabled(context, externalStorage.id)) + return + + externalPath = externalMemoryAvailable(context) + var totalExternalStorage = "No SD Card" + var freeExternalStorage = "No SD Card" + var percentFreeExternal = 0 + + if (externalPath != null) { + val statSD = StatFs(externalPath.toString()) + blockSizeSD = statSD.blockSizeLong + availableBlocksSD = statSD.availableBlocksLong + totalBlocksSD = statSD.blockCountLong + totalExternalStorage = getTotalExternalMemorySize() + freeExternalStorage = getAvailableExternalMemorySize() + percentFreeExternal = ((availableBlocksSD.toDouble() / totalBlocksSD.toDouble()) * 100).roundToInt() + } + + val icon = "mdi:micro-sd" + + onSensorUpdated(context, + externalStorage, + percentFreeExternal, + icon, + mapOf( + "free_external_storage" to freeExternalStorage, + "total_external_storage" to totalExternalStorage ) ) } diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 1a4bb1f95..d8f1aa3ba 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -144,7 +144,7 @@ instancia de Home Assistant Información sobre el proveedor de telefonía móvil actual en la ranura SIM 1 Información sobre el proveedor de telefonía móvil actual en la ranura SIM 2 El número total de pasos desde el último reinicio del dispositivo - Información sobre el espacio de almacenamiento total y disponible interno y externo + Información sobre el espacio de almacenamiento total y disponible interno y externo Información sobre la red WiFi conectada actualmente Usa esto para controlar qué sensores están activados/desactivados. Administrar sensores diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 79d9faa42..1fa96dcc5 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -147,7 +147,7 @@ Scansione della rete Informazioni sul provider di telefonia mobile corrente nello slot SIM 1 Informazioni sul provider di telefonia mobile corrente nello slot SIM 2 Il numero totale di passi dall\'ultimo riavvio del dispositivo - Informazioni sullo spazio di archiviazione totale e disponibile internamente ed esternamente + Informazioni sullo spazio di archiviazione totale e disponibile internamente ed esternamente Informazioni sulla rete WiFi attualmente connessa Consente di gestire i sensori abilitati/disabilitati. Gestione dei sensori diff --git a/app/src/main/res/values-pl-rPL/strings.xml b/app/src/main/res/values-pl-rPL/strings.xml index aab4baaad..1ec5e81e1 100644 --- a/app/src/main/res/values-pl-rPL/strings.xml +++ b/app/src/main/res/values-pl-rPL/strings.xml @@ -117,7 +117,7 @@ Bezpieczeństwo Wybierz encję do wyświetlenia Wybierz instancję, z którą chcesz się połączyć: - Informacje o całkowitej i dostępnej przestrzeni dysku wewnętrznego i karty pamięci + Informacje o całkowitej i dostępnej przestrzeni dysku wewnętrznego i karty pamięci Informacje o aktualnie podłączonej sieci WiFi Użyj tego, aby włączyć/wyłączyć sensory Zarządzaj sensorami diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 6bb284f43..309dbc3fe 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -144,7 +144,7 @@ Информация об операторе сотовой связи в слоте SIM 1 Информация об операторе сотовой связи в слоте SIM 2 Общее количество шагов с момента последней перезагрузки устройства - Информация о внутреннем и внешнем пространстве для хранения + Информация о внутреннем и внешнем пространстве для хранения Информация о сети Wi-Fi, к которой подключено устройство Включение или отключение сенсоров мобильного приложения Управление сенсорами diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 153df0df3..ce7f4ac59 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -146,7 +146,7 @@ Home Assistant实例 SIM插槽1中有关当前蜂窝电话提供商的信息 SIM插槽2中有关当前蜂窝电话提供商的信息 自上次重新启动设备以来的总步数 - 有关内部和外部总可用存储空间的信息 + 有关内部和外部总可用存储空间的信息 有关当前连接的WiFi网络的信息 使用它来管理启用/禁用的传感器。 管理传感器 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 44db3bb01..fe1c58090 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -161,6 +161,8 @@ like to connect to: The type of charger plugged into the device currently The health of the battery Power Sensors + Internal Storage + External Storage Power Save Interactive Doze Mode @@ -195,14 +197,15 @@ like to connect to: Pressure Sensor Proximity Sensor Steps Sensor - Storage Sensor + Storage Sensors Whether or not the phone is ringing or in a call, no other caller information is stored The current ambient air pressure reading The current proximity reading, some devices only report near or far Information about the current cellular provider in SIM slot 1 Information about the current cellular provider in SIM slot 2 The total number of steps since the last reboot of the device - Information about the total and available storage space internally and externally + Information about the total and available storage space internally + Information about the total and available storage space externally Information about the currently connected WiFi network Use this to manage what sensors are enabled/disabled. Manage Sensors