Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -146,4 +146,7 @@ dependencies {
implementation(libs.autofittextview)
implementation(libs.zip4j)
detektPlugins(libs.compose.detekt)

// Unit testing
testImplementation("junit:junit:4.13.2")
}
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ import org.fossify.commons.extensions.deleteFile
import org.fossify.commons.extensions.deleteFileBg
import org.fossify.commons.extensions.deleteFolderBg
import org.fossify.commons.extensions.formatDate
import org.fossify.commons.extensions.formatSize
import org.fossify.filemanager.extensions.formatSize
import org.fossify.commons.extensions.getAndroidSAFFileItems
import org.fossify.commons.extensions.getAndroidSAFUri
import org.fossify.commons.extensions.getColoredDrawableWithColor
Expand Down
31 changes: 31 additions & 0 deletions app/src/main/kotlin/org/fossify/filemanager/extensions/Long.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package org.fossify.filemanager.extensions

import java.util.Locale

/**
* Format bytes to human-readable size using binary (base 2) calculation
* This overrides the commons library's formatSize which uses decimal (base 10)
*
* Uses standard binary units: B, KiB, MiB, GiB, TiB, PiB
* where 1 KiB = 1024 bytes (instead of 1000 in decimal)
*/
@Suppress("MagicNumber")
fun Long.formatSize(): String {
if (this <= 0) return "0 B"

val units = arrayOf("B", "KB", "MB", "GB", "TB", "PB")
val base = 1024.0
val digitGroups = (Math.log10(this.toDouble()) / Math.log10(base)).toInt()

return if (digitGroups >= units.size) {
val maxIndex = units.size - 1
String.format(Locale.US, "%.1f %s", this / Math.pow(base, maxIndex.toDouble()), units[maxIndex])
} else {
val size = this / Math.pow(base, digitGroups.toDouble())
if (size % 1.0 == 0.0) {
String.format(Locale.US, "%d %s", size.toLong(), units[digitGroups])
} else {
String.format(Locale.US, "%.1f %s", size, units[digitGroups])
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ import org.fossify.commons.extensions.beGone
import org.fossify.commons.extensions.beVisible
import org.fossify.commons.extensions.beVisibleIf
import org.fossify.commons.extensions.fadeIn
import org.fossify.commons.extensions.formatSize
import org.fossify.commons.extensions.getIsPathDirectory
import org.fossify.filemanager.extensions.formatSize
import org.fossify.commons.extensions.getLongValue
import org.fossify.commons.extensions.getProperBackgroundColor
import org.fossify.commons.extensions.getProperPrimaryColor
Expand Down
4 changes: 3 additions & 1 deletion app/src/main/res/layout/activity_read_text.xml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fillViewport="true"
android:fitsSystemWindows="true"
android:orientation="vertical"
android:scrollbars="none"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
Expand All @@ -38,7 +39,8 @@
android:id="@+id/read_text_holder"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true">
android:fillViewport="true"
android:fitsSystemWindows="true">

<org.fossify.filemanager.views.GestureEditText
android:id="@+id/read_text_view"
Expand Down
Loading