add support for browsing FCL log dir

This commit is contained in:
ShirosakiMio 2024-07-07 10:23:40 +08:00
parent c4d3938258
commit b45df922e6
7 changed files with 52 additions and 5 deletions

View File

@ -10,6 +10,7 @@ import com.tungsten.fcl.setting.Profile;
import com.tungsten.fcl.ui.UIManager;
import com.tungsten.fcl.ui.version.Versions;
import com.tungsten.fcl.util.RequestCodes;
import com.tungsten.fclauncher.utils.FCLPath;
import com.tungsten.fclcore.fakefx.beans.property.BooleanProperty;
import com.tungsten.fclcore.fakefx.beans.property.SimpleBooleanProperty;
import com.tungsten.fclcore.task.Task;
@ -31,6 +32,7 @@ public class ManagePage extends FCLCommonPage implements ManageUI.VersionLoadabl
private ScrollView left;
private ScrollView right;
private FCLImageButton browseFCLLog;
private FCLImageButton browseGame;
private FCLImageButton browseMod;
private FCLImageButton browseConfig;
@ -70,6 +72,7 @@ public class ManagePage extends FCLCommonPage implements ManageUI.VersionLoadabl
ThemeEngine.getInstance().registerEvent(left, () -> left.setBackgroundTintList(new ColorStateList(new int[][] { { } }, new int[] { ThemeEngine.getInstance().getTheme().getLtColor() })));
ThemeEngine.getInstance().registerEvent(right, () -> right.setBackgroundTintList(new ColorStateList(new int[][] { { } }, new int[] { ThemeEngine.getInstance().getTheme().getLtColor() })));
browseFCLLog = findViewById(R.id.browse_fcl_logs);
browseGame = findViewById(R.id.browse_game_dir);
browseMod = findViewById(R.id.browse_mods);
browseConfig = findViewById(R.id.browse_config);
@ -85,6 +88,7 @@ public class ManagePage extends FCLCommonPage implements ManageUI.VersionLoadabl
redownload = findViewById(R.id.update_assets);
deleteLibs = findViewById(R.id.delete_libs);
deleteLogs = findViewById(R.id.delete_logs);
browseFCLLog.setOnClickListener(this);
browseGame.setOnClickListener(this);
browseMod.setOnClickListener(this);
browseConfig.setOnClickListener(this);
@ -105,10 +109,11 @@ public class ManagePage extends FCLCommonPage implements ManageUI.VersionLoadabl
updateLayout.visibilityProperty().bind(currentVersionUpgradable);
}
private void onBrowse(String sub) {
private void onBrowse(String dir) {
FileBrowser.Builder builder = new FileBrowser.Builder(getContext());
builder.setLibMode(LibMode.FILE_BROWSER);
builder.setInitDir(new File(getProfile().getRepository().getRunDirectory(getVersion()), sub).getAbsolutePath());
dir = dir.startsWith("/") ? dir : new File(getProfile().getRepository().getRunDirectory(getVersion()), dir).getAbsolutePath();
builder.setInitDir(dir);
builder.create().browse(getActivity(), RequestCodes.BROWSE_DIR_CODE, null);
}
@ -151,6 +156,9 @@ public class ManagePage extends FCLCommonPage implements ManageUI.VersionLoadabl
@Override
public void onClick(View view) {
if (view == browseFCLLog) {
onBrowse(FCLPath.LOG_DIR);
}
if (view == browseGame) {
onBrowse("");
}

View File

@ -28,6 +28,43 @@
android:layout_width="match_parent"
android:layout_height="wrap_content">
<com.tungsten.fcllibrary.component.view.FCLLinearLayout
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="10dp">
<com.tungsten.fcllibrary.component.view.FCLImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@drawable/ic_baseline_script_24"
app:auto_src_tint="true"/>
<com.tungsten.fcllibrary.component.view.FCLTextView
android:layout_marginStart="10dp"
android:text="@string/folder_fcl_log"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="1"
android:singleLine="true"
app:auto_text_tint="true"/>
<com.tungsten.fcllibrary.component.view.FCLImageButton
app:no_padding="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:auto_tint="true"
android:src="@drawable/ic_baseline_arrow_forward_24"
android:layout_gravity="center"
android:layout_marginStart="10dp"
android:id="@+id/browse_fcl_logs"/>
</com.tungsten.fcllibrary.component.view.FCLLinearLayout>
<com.tungsten.fcllibrary.component.view.FCLLinearLayout
android:layout_marginTop="10dp"
android:layout_width="match_parent"

View File

@ -323,6 +323,7 @@
<string name="folder_config">浏览配置文件夹</string>
<string name="folder_game">浏览游戏文件夹</string>
<string name="folder_log">浏览日志文件夹</string>
<string name="folder_fcl_log">浏览FCL日志文件夹</string>
<string name="folder_mod">浏览模组文件夹</string>
<string name="folder_resourcepacks">浏览资源包文件夹</string>
<string name="folder_saves">浏览存档文件夹</string>

View File

@ -345,6 +345,7 @@
<string name="folder_config">Browse configs</string>
<string name="folder_game">Browse game directory</string>
<string name="folder_log">Browse log directory</string>
<string name="folder_fcl_log">Browse FCL log directory</string>
<string name="folder_mod">Browse mods</string>
<string name="folder_resourcepacks">Browse resource packs</string>
<string name="folder_saves">Browse saves</string>

View File

@ -177,7 +177,7 @@ public class FileBrowserActivity extends FCLActivity implements View.OnClickList
intent.setDataAndType(uri, "*/*");
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
intent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
startActivity(intent);
startActivity(Intent.createChooser(intent,getString(R.string.file_browser_open_external)));
}
if (view == confirm) {
if (selectedFiles.size() == 0 && fileBrowser.getLibMode() != LibMode.FILE_BROWSER) {

View File

@ -5,7 +5,7 @@
<string name="file_browser_close">退出</string>
<string name="file_browser_shared">共有目录</string>
<string name="file_browser_private">私有目录</string>
<string name="file_browser_open_external">使用外部应用打开</string>
<string name="file_browser_open_external">使用外部应用打开(比如MT)</string>
<string name="file_browser_private_alert">无法进入私有目录,请检查应用权限</string>
<string name="file_browser_mode">模式:</string>
<string name="file_browser_mode_browse">浏览文件</string>

View File

@ -7,7 +7,7 @@
<string name="file_browser_close">Exit</string>
<string name="file_browser_shared">Shared directory</string>
<string name="file_browser_private">Private directory</string>
<string name="file_browser_open_external">Open in external APP</string>
<string name="file_browser_open_external">Open in external APP(Like MT)</string>
<string name="file_browser_private_alert">Cannot access to private directory, please check the permission.</string>
<string name="file_browser_mode">Mode:</string>
<string name="file_browser_mode_browse">Browse File</string>