mirror of
https://github.com/skyline-emu/skyline.git
synced 2024-11-26 22:14:17 +01:00
Add option to view internal directory
With the Skyline document provider, easy access to the internal directory is required which may be hard to navigate to through the system file manager. This adds an option in settings to directly open up the directory in the system file manager.
This commit is contained in:
parent
ba97985b55
commit
e1cc8676cf
@ -0,0 +1,39 @@
|
||||
/*
|
||||
* SPDX-License-Identifier: MPL-2.0
|
||||
* Copyright © 2020 Skyline Team and Contributors (https://github.com/skyline-emu/)
|
||||
*/
|
||||
|
||||
package emu.skyline.preference
|
||||
|
||||
import android.content.ActivityNotFoundException
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.provider.DocumentsContract
|
||||
import android.util.AttributeSet
|
||||
import androidx.preference.Preference
|
||||
import androidx.preference.R
|
||||
import com.google.android.material.snackbar.Snackbar
|
||||
import emu.skyline.SettingsActivity
|
||||
import emu.skyline.provider.DocumentsProvider
|
||||
|
||||
|
||||
class DocumentsProviderPreference @JvmOverloads constructor(context : Context, attrs : AttributeSet? = null, defStyleAttr : Int = R.attr.preferenceStyle) : Preference(context, attrs, defStyleAttr) {
|
||||
fun launchOpenIntent(action : String) : Boolean {
|
||||
return try {
|
||||
val intent = Intent(action)
|
||||
intent.addCategory(Intent.CATEGORY_DEFAULT)
|
||||
intent.data = DocumentsContract.buildRootUri(DocumentsProvider.AUTHORITY, DocumentsProvider.ROOT_ID)
|
||||
intent.addFlags(Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION or Intent.FLAG_GRANT_PREFIX_URI_PERMISSION or Intent.FLAG_GRANT_WRITE_URI_PERMISSION)
|
||||
context.startActivity(intent)
|
||||
true
|
||||
} catch (e: ActivityNotFoundException) {
|
||||
false
|
||||
}
|
||||
}
|
||||
|
||||
override fun onClick() {
|
||||
if (launchOpenIntent(Intent.ACTION_VIEW) or launchOpenIntent("android.provider.action.BROWSE"))
|
||||
return
|
||||
Snackbar.make((context as SettingsActivity).binding.root, emu.skyline.R.string.failed_open_directory, Snackbar.LENGTH_SHORT).show()
|
||||
}
|
||||
}
|
@ -24,6 +24,9 @@
|
||||
<!-- Settings - Emulator -->
|
||||
<string name="emulator">Emulator</string>
|
||||
<string name="search_location">Search Location</string>
|
||||
<string name="open_data_directory">View Internal Directory</string>
|
||||
<string name="open_data_directory_summary">Opens Skyline\'s internal directory in a file manager</string>
|
||||
<string name="failed_open_directory">Cannot find an external file manager to open Skyline\'s internal directory</string>
|
||||
<string name="theme">Theme</string>
|
||||
<string name="layout_type">Game Display Layout</string>
|
||||
<string name="select_action">Always Show Game Information</string>
|
||||
@ -73,6 +76,8 @@
|
||||
<string name="osc_not_shown">On-Screen Controls won\'t be shown</string>
|
||||
<string name="osc_shown">On-Screen Controls will be shown</string>
|
||||
<string name="osc_edit">Edit On-Screen Controls layout</string>
|
||||
<string name="setup_guide">Setup Guide</string>
|
||||
<string name="setup_guide_description">Sequentially map every stick and button</string>
|
||||
<string name="joystick">Joystick</string>
|
||||
<string name="confirm">Confirm</string>
|
||||
<string name="cancel">Cancel</string>
|
||||
@ -164,6 +169,4 @@
|
||||
<!-- Misc -->
|
||||
<!--suppress AndroidLintUnusedResources -->
|
||||
<string name="expand_button_title" tools:override="true">Expand</string>
|
||||
<string name="setup_guide">Setup Guide</string>
|
||||
<string name="setup_guide_description">Sequentially map every stick and button</string>
|
||||
</resources>
|
||||
|
@ -6,6 +6,10 @@
|
||||
<emu.skyline.preference.FolderPickerPreference
|
||||
app:key="search_location"
|
||||
app:title="@string/search_location" />
|
||||
<emu.skyline.preference.DocumentsProviderPreference
|
||||
app:key="document_provider"
|
||||
app:title="@string/open_data_directory"
|
||||
app:summary="@string/open_data_directory_summary"/>
|
||||
<emu.skyline.preference.ThemePreference
|
||||
android:defaultValue="2"
|
||||
android:entries="@array/app_theme"
|
||||
|
Loading…
Reference in New Issue
Block a user