Skip to content
Permalink
Browse files
Merge pull request #9064 from JosJuice/android-filepicker-normal
Android: Make FilePicker act like a normal setting
  • Loading branch information
lioncash committed Sep 8, 2020
2 parents 48cfc32 + 00a8f4f commit 9537620
Show file tree
Hide file tree
Showing 4 changed files with 9 additions and 25 deletions.
@@ -20,6 +20,11 @@ public String getSelectedValue(Settings settings)
return settings.getSection(getFile(), getSection()).getString(getKey(), mDefaultValue);
}

public void setSelectedValue(Settings settings, String selection)
{
settings.getSection(getFile(), getSection()).setString(getKey(), selection);
}

public int getRequestType()
{
return mRequestType;
@@ -171,26 +171,12 @@ protected void onActivityResult(int requestCode, int resultCode, Intent result)
{
super.onActivityResult(requestCode, resultCode, result);

// Save modified non-FilePicker settings beforehand since finish() won't save them.
// onStop() must come before handling the resultCode to properly save FilePicker selection.
mPresenter.onStop(true);

// If the user picked a file, as opposed to just backing out.
if (resultCode == MainActivity.RESULT_OK)
{
String path = FileBrowserHelper.getSelectedPath(result);
getFragment().getAdapter().onFilePickerConfirmation(path);

// Prevent duplicate Toasts.
if (!mPresenter.shouldSave())
{
Toast.makeText(this, "Saved settings to INI files", Toast.LENGTH_SHORT).show();
}
}

// TODO: After result of FilePicker, duplicate SettingsActivity appears.
// Finish to avoid this. Is there a better method?
finish();
}

@Override
@@ -310,12 +310,10 @@ public void onFilePickerConfirmation(String selectedFile)
{
FilePicker filePicker = (FilePicker) mClickedItem;

File file = SettingsFile.getSettingsFile(filePicker.getFile());
IniFile ini = new IniFile(file);
ini.setString(filePicker.getSection(), filePicker.getKey(), selectedFile);
ini.save(file);
if (!filePicker.getSelectedValue(mView.getSettings()).equals(selectedFile))
mView.onSettingChanged(filePicker.getKey());

NativeLibrary.ReloadConfig();
filePicker.setSelectedValue(mView.getSettings(), selectedFile);

mClickedItem = null;
}
@@ -7,9 +7,7 @@
import org.dolphinemu.dolphinemu.features.settings.model.view.FilePicker;
import org.dolphinemu.dolphinemu.features.settings.model.view.SettingsItem;
import org.dolphinemu.dolphinemu.features.settings.ui.SettingsAdapter;
import org.dolphinemu.dolphinemu.features.settings.utils.SettingsFile;
import org.dolphinemu.dolphinemu.ui.main.MainPresenter;
import org.dolphinemu.dolphinemu.utils.IniFile;

public final class FilePickerViewHolder extends SettingViewHolder
{
@@ -45,10 +43,7 @@ public void bind(SettingsItem item)
}
else
{
// TODO: Reopening INI files all the time is slow
IniFile ini = new IniFile(SettingsFile.getSettingsFile(mFilePicker.getFile()));
mTextSettingDescription.setText(ini.getString(item.getSection(), item.getKey(),
mFilePicker.getSelectedValue(getAdapter().getSettings())));
mTextSettingDescription.setText(mFilePicker.getSelectedValue(getAdapter().getSettings()));
}
}

0 comments on commit 9537620

Please sign in to comment.