Loading packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/template/app/AppStorageSize.kt +9 −7 Original line number Diff line number Diff line Loading @@ -22,25 +22,27 @@ import android.text.format.Formatter import android.util.Log import androidx.compose.runtime.Composable import androidx.compose.runtime.State import androidx.compose.runtime.produceState import androidx.compose.runtime.remember import androidx.compose.ui.platform.LocalContext import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.android.settingslib.spaprivileged.framework.common.storageStatsManager import com.android.settingslib.spaprivileged.framework.compose.placeholder import com.android.settingslib.spaprivileged.model.app.userHandle import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext import kotlinx.coroutines.flow.flow import kotlinx.coroutines.flow.flowOn private const val TAG = "AppStorageSize" @Composable fun ApplicationInfo.getStorageSize(): State<String> { val context = LocalContext.current return produceState(initialValue = placeholder()) { withContext(Dispatchers.IO) { return remember { flow { val sizeBytes = calculateSizeBytes(context) value = if (sizeBytes != null) Formatter.formatFileSize(context, sizeBytes) else "" } } this.emit(if (sizeBytes != null) Formatter.formatFileSize(context, sizeBytes) else "") }.flowOn(Dispatchers.IO) }.collectAsStateWithLifecycle(initialValue = placeholder()) } fun ApplicationInfo.calculateSizeBytes(context: Context): Long? { Loading Loading
packages/SettingsLib/SpaPrivileged/src/com/android/settingslib/spaprivileged/template/app/AppStorageSize.kt +9 −7 Original line number Diff line number Diff line Loading @@ -22,25 +22,27 @@ import android.text.format.Formatter import android.util.Log import androidx.compose.runtime.Composable import androidx.compose.runtime.State import androidx.compose.runtime.produceState import androidx.compose.runtime.remember import androidx.compose.ui.platform.LocalContext import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.android.settingslib.spaprivileged.framework.common.storageStatsManager import com.android.settingslib.spaprivileged.framework.compose.placeholder import com.android.settingslib.spaprivileged.model.app.userHandle import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext import kotlinx.coroutines.flow.flow import kotlinx.coroutines.flow.flowOn private const val TAG = "AppStorageSize" @Composable fun ApplicationInfo.getStorageSize(): State<String> { val context = LocalContext.current return produceState(initialValue = placeholder()) { withContext(Dispatchers.IO) { return remember { flow { val sizeBytes = calculateSizeBytes(context) value = if (sizeBytes != null) Formatter.formatFileSize(context, sizeBytes) else "" } } this.emit(if (sizeBytes != null) Formatter.formatFileSize(context, sizeBytes) else "") }.flowOn(Dispatchers.IO) }.collectAsStateWithLifecycle(initialValue = placeholder()) } fun ApplicationInfo.calculateSizeBytes(context: Context): Long? { Loading