Skip to content

Commit c719fdd

Browse files
committed
add preference to use built-in viewers by default (#124)
1 parent ab92318 commit c719fdd

File tree

12 files changed

+86
-2
lines changed

12 files changed

+86
-2
lines changed

app/src/main/java/com/raival/compose/file/explorer/screen/main/tab/files/FilesTab.kt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,12 @@ class FilesTab(
235235
if (item is LocalFileHolder && item.isApk()) {
236236
toggleApkDialog(item)
237237
} else {
238-
item.open(context, anonymous = false, skipSupportedExtensions = false, null)
238+
item.open(
239+
context = context,
240+
anonymous = false,
241+
skipSupportedExtensions = !globalClass.preferencesManager.useBuiltInViewer,
242+
customMimeType = null
243+
)
239244
}
240245
}
241246

app/src/main/java/com/raival/compose/file/explorer/screen/main/tab/files/holder/LocalFileHolder.kt

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,10 @@ import com.raival.compose.file.explorer.screen.main.tab.files.misc.FileMimeType
2121
import com.raival.compose.file.explorer.screen.main.tab.files.misc.FileMimeType.anyFileType
2222
import com.raival.compose.file.explorer.screen.main.tab.files.misc.FileMimeType.codeFileType
2323
import com.raival.compose.file.explorer.screen.main.tab.files.misc.FileMimeType.editableFileType
24+
import com.raival.compose.file.explorer.screen.viewer.audio.AudioPlayerActivity
25+
import com.raival.compose.file.explorer.screen.viewer.image.ImageViewerActivity
26+
import com.raival.compose.file.explorer.screen.viewer.pdf.PdfViewerActivity
27+
import com.raival.compose.file.explorer.screen.viewer.video.VideoPlayerActivity
2428
import kotlinx.coroutines.runBlocking
2529
import java.io.File
2630

@@ -269,6 +273,42 @@ class LocalFileHolder(val file: File) : ContentHolder() {
269273
return true
270274
}
271275

276+
if (FileMimeType.videoFileType.contains(extension)) {
277+
openFileWithPackage(
278+
context,
279+
context.packageName,
280+
VideoPlayerActivity::class.java.name
281+
)
282+
return true
283+
}
284+
285+
if (FileMimeType.audioFileType.contains(extension)) {
286+
openFileWithPackage(
287+
context,
288+
context.packageName,
289+
AudioPlayerActivity::class.java.name
290+
)
291+
return true
292+
}
293+
294+
if (FileMimeType.imageFileType.contains(extension)) {
295+
openFileWithPackage(
296+
context,
297+
context.packageName,
298+
ImageViewerActivity::class.java.name
299+
)
300+
return true
301+
}
302+
303+
if (FileMimeType.pdfFileType.contains(extension)) {
304+
openFileWithPackage(
305+
context,
306+
context.packageName,
307+
PdfViewerActivity::class.java.name
308+
)
309+
return true
310+
}
311+
272312
return false
273313
}
274314

app/src/main/java/com/raival/compose/file/explorer/screen/main/tab/home/ui/HomeTabContentView.kt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -226,7 +226,12 @@ private fun RecentFilesSection(
226226
.clip(RoundedCornerShape(8.dp))
227227
.combinedClickable(
228228
onClick = {
229-
it.file.open(context, false, false, null)
229+
it.file.open(
230+
context = context,
231+
anonymous = false,
232+
skipSupportedExtensions = !globalClass.preferencesManager.useBuiltInViewer,
233+
customMimeType = null
234+
)
230235
},
231236
onLongClick = {
232237
mainActivityManager.replaceCurrentTabWith(

app/src/main/java/com/raival/compose/file/explorer/screen/preferences/PreferencesManager.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,12 @@ class PreferencesManager {
105105
getPreferencesKey = { booleanPreferencesKey(it) }
106106
)
107107

108+
var useBuiltInViewer by prefMutableState(
109+
keyName = "useBuiltInViewer",
110+
defaultValue = true,
111+
getPreferencesKey = { booleanPreferencesKey(it) }
112+
)
113+
108114
var startupTabs by prefMutableState(
109115
keyName = "startupTabs",
110116
defaultValue = StartupTabs.default().toJson(),

app/src/main/java/com/raival/compose/file/explorer/screen/preferences/ui/BehaviorContainer.kt

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.raival.compose.file.explorer.screen.preferences.ui
22

33
import androidx.compose.material.icons.Icons
4+
import androidx.compose.material.icons.rounded.OpenInBrowser
45
import androidx.compose.material.icons.rounded.Refresh
56
import androidx.compose.material.icons.rounded.TouchApp
67
import androidx.compose.material3.HorizontalDivider
@@ -50,5 +51,18 @@ fun BehaviorContainer() {
5051
switchState = prefs.skipHomeWhenTabClosed,
5152
onSwitchChange = { prefs.skipHomeWhenTabClosed = it }
5253
)
54+
55+
HorizontalDivider(
56+
color = MaterialTheme.colorScheme.surfaceContainerLow,
57+
thickness = 3.dp
58+
)
59+
60+
PreferenceItem(
61+
label = stringResource(R.string.use_builtin_viewers),
62+
supportingText = stringResource(R.string.use_builtin_viewers_desc),
63+
icon = Icons.Rounded.OpenInBrowser,
64+
switchState = prefs.useBuiltInViewer,
65+
onSwitchChange = { prefs.useBuiltInViewer = it }
66+
)
5367
}
5468
}

app/src/main/res/values-fa/strings.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -400,4 +400,6 @@
400400
<string name="check_for_updates_failed_failed_to_connect_to_server">بررسی به‌روزرسانی ناموفق بود: اتصال به سرور ناموفق بود</string>
401401
<string name="title_upgrade">ارتقا</string>
402402
<string name="download_new_update">دانلود به‌روزرسانی جدید</string>
403+
<string name="use_builtin_viewers">استفاده از نمایشگرهای داخلی</string>
404+
<string name="use_builtin_viewers_desc">باز کردن خودکار فایل‌های پشتیبانی شده با نمایشگرهای داخلی</string>
403405
</resources>

app/src/main/res/values-pl/strings.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -400,4 +400,6 @@
400400
<string name="check_for_updates_failed_failed_to_connect_to_server">Sprawdzanie aktualizacji nie powiodło się: Nie udało się połączyć z serwerem</string>
401401
<string name="title_upgrade">Aktualizacja</string>
402402
<string name="download_new_update">Pobierz nową aktualizację</string>
403+
<string name="use_builtin_viewers">Użyj wbudowanych przeglądarek</string>
404+
<string name="use_builtin_viewers_desc">Automatycznie otwieraj obsługiwane pliki za pomocą wbudowanych przeglądarek</string>
403405
</resources>

app/src/main/res/values-pt-rBR/strings.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -400,4 +400,6 @@
400400
<string name="check_for_updates_failed_failed_to_connect_to_server">Falha ao verificar atualizações: Falha ao conectar ao servidor</string>
401401
<string name="title_upgrade">Atualizar</string>
402402
<string name="download_new_update">Baixar nova atualização</string>
403+
<string name="use_builtin_viewers">Usar visualizadores integrados</string>
404+
<string name="use_builtin_viewers_desc">Abrir automaticamente arquivos suportados com visualizadores integrados</string>
403405
</resources>

app/src/main/res/values-ru/strings.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -400,4 +400,6 @@
400400
<string name="check_for_updates_failed_failed_to_connect_to_server">Проверка обновлений не удалась: Не удалось подключиться к серверу</string>
401401
<string name="title_upgrade">Обновить</string>
402402
<string name="download_new_update">Загрузить новое обновление</string>
403+
<string name="use_builtin_viewers">Использовать встроенные просмотрщики</string>
404+
<string name="use_builtin_viewers_desc">Автоматически открывать поддерживаемые файлы с помощью встроенных просмотрщиков</string>
403405
</resources>

app/src/main/res/values-tr/strings.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -401,4 +401,6 @@
401401
<string name="check_for_updates_failed_failed_to_connect_to_server">Güncellemeler kontrol edilemedi: Sunucuya bağlanılamadı</string>
402402
<string name="title_upgrade">Yükselt</string>
403403
<string name="download_new_update">Yeni güncellemeyi indir</string>
404+
<string name="use_builtin_viewers">Yerleşik görüntüleyicileri kullan</string>
405+
<string name="use_builtin_viewers_desc">Desteklenen dosyaları yerleşik görüntüleyicilerle otomatik olarak aç</string>
404406
</resources>

0 commit comments

Comments
 (0)