Add title to file picker
This commit is contained in:
parent
14bf4ada91
commit
6b3ff39d77
@ -1,5 +1,6 @@
|
|||||||
package org.citra.citra_android.activities;
|
package org.citra.citra_android.activities;
|
||||||
|
|
||||||
|
import android.content.Intent;
|
||||||
import android.os.Environment;
|
import android.os.Environment;
|
||||||
import android.support.annotation.Nullable;
|
import android.support.annotation.Nullable;
|
||||||
|
|
||||||
@ -11,16 +12,22 @@ import org.citra.citra_android.fragments.CustomFilePickerFragment;
|
|||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
|
||||||
public class CustomFilePickerActivity extends FilePickerActivity {
|
public class CustomFilePickerActivity extends FilePickerActivity {
|
||||||
|
public static final String EXTRA_TITLE = "filepicker.intent.TITLE";
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected AbstractFilePickerFragment<File> getFragment(
|
protected AbstractFilePickerFragment<File> getFragment(
|
||||||
@Nullable final String startPath, final int mode, final boolean allowMultiple,
|
@Nullable final String startPath, final int mode, final boolean allowMultiple,
|
||||||
final boolean allowCreateDir, final boolean allowExistingFile,
|
final boolean allowCreateDir, final boolean allowExistingFile,
|
||||||
final boolean singleClick) {
|
final boolean singleClick) {
|
||||||
AbstractFilePickerFragment<File> fragment = new CustomFilePickerFragment();
|
CustomFilePickerFragment fragment = new CustomFilePickerFragment();
|
||||||
// startPath is allowed to be null. In that case, default folder should be SD-card and not "/"
|
// startPath is allowed to be null. In that case, default folder should be SD-card and not "/"
|
||||||
fragment.setArgs(
|
fragment.setArgs(
|
||||||
startPath != null ? startPath : Environment.getExternalStorageDirectory().getPath(),
|
startPath != null ? startPath : Environment.getExternalStorageDirectory().getPath(),
|
||||||
mode, allowMultiple, allowCreateDir, allowExistingFile, singleClick);
|
mode, allowMultiple, allowCreateDir, allowExistingFile, singleClick);
|
||||||
|
|
||||||
|
Intent intent = getIntent();
|
||||||
|
String title = intent == null ? null : intent.getStringExtra(EXTRA_TITLE);
|
||||||
|
fragment.setTitle(title);
|
||||||
return fragment;
|
return fragment;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,12 +3,21 @@ package org.citra.citra_android.fragments;
|
|||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
import android.support.v4.content.FileProvider;
|
import android.support.v4.content.FileProvider;
|
||||||
|
import android.support.v7.widget.Toolbar;
|
||||||
|
import android.view.LayoutInflater;
|
||||||
|
import android.view.View;
|
||||||
|
import android.view.ViewGroup;
|
||||||
|
import android.widget.TextView;
|
||||||
|
|
||||||
import com.nononsenseapps.filepicker.FilePickerFragment;
|
import com.nononsenseapps.filepicker.FilePickerFragment;
|
||||||
|
|
||||||
|
import org.citra.citra_android.R;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
|
||||||
public class CustomFilePickerFragment extends FilePickerFragment {
|
public class CustomFilePickerFragment extends FilePickerFragment {
|
||||||
|
private String mTitle;
|
||||||
|
|
||||||
@NonNull
|
@NonNull
|
||||||
@Override
|
@Override
|
||||||
public Uri toUri(@NonNull final File file) {
|
public Uri toUri(@NonNull final File file) {
|
||||||
@ -17,4 +26,24 @@ public class CustomFilePickerFragment extends FilePickerFragment {
|
|||||||
getContext().getApplicationContext().getPackageName() + ".filesprovider",
|
getContext().getApplicationContext().getPackageName() + ".filesprovider",
|
||||||
file);
|
file);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected View inflateRootView(LayoutInflater inflater, ViewGroup container) {
|
||||||
|
View view = super.inflateRootView(inflater, container);
|
||||||
|
if (mTitle != null) {
|
||||||
|
Toolbar toolbar = view.findViewById(com.nononsenseapps.filepicker.R.id.nnf_picker_toolbar);
|
||||||
|
ViewGroup parent = (ViewGroup) toolbar.getParent();
|
||||||
|
int index = parent.indexOfChild(toolbar);
|
||||||
|
View newToolbar = inflater.inflate(R.layout.filepicker_toolbar, toolbar, false);
|
||||||
|
TextView title = newToolbar.findViewById(R.id.filepicker_title);
|
||||||
|
title.setText(mTitle);
|
||||||
|
parent.removeView(toolbar);
|
||||||
|
parent.addView(newToolbar, index);
|
||||||
|
}
|
||||||
|
return view;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTitle(String title) {
|
||||||
|
mTitle = title;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -114,7 +114,8 @@ public final class MainActivity extends AppCompatActivity implements MainView {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void launchFileListActivity() {
|
public void launchFileListActivity() {
|
||||||
FileBrowserHelper.openDirectoryPicker(this);
|
FileBrowserHelper.openDirectoryPicker(this, MainPresenter.REQUEST_ADD_DIRECTORY,
|
||||||
|
"Select game folder");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -118,7 +118,8 @@ public final class TvMainActivity extends FragmentActivity implements MainView {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void launchFileListActivity() {
|
public void launchFileListActivity() {
|
||||||
FileBrowserHelper.openDirectoryPicker(this);
|
FileBrowserHelper.openDirectoryPicker(this, MainPresenter.REQUEST_ADD_DIRECTORY,
|
||||||
|
"Select game folder");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -10,13 +10,12 @@ import com.nononsenseapps.filepicker.FilePickerActivity;
|
|||||||
import com.nononsenseapps.filepicker.Utils;
|
import com.nononsenseapps.filepicker.Utils;
|
||||||
|
|
||||||
import org.citra.citra_android.activities.CustomFilePickerActivity;
|
import org.citra.citra_android.activities.CustomFilePickerActivity;
|
||||||
import org.citra.citra_android.ui.main.MainPresenter;
|
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public final class FileBrowserHelper {
|
public final class FileBrowserHelper {
|
||||||
public static void openDirectoryPicker(FragmentActivity activity) {
|
public static void openDirectoryPicker(FragmentActivity activity, int requestCode, String title) {
|
||||||
Intent i = new Intent(activity, CustomFilePickerActivity.class);
|
Intent i = new Intent(activity, CustomFilePickerActivity.class);
|
||||||
|
|
||||||
i.putExtra(FilePickerActivity.EXTRA_ALLOW_MULTIPLE, false);
|
i.putExtra(FilePickerActivity.EXTRA_ALLOW_MULTIPLE, false);
|
||||||
@ -24,11 +23,12 @@ public final class FileBrowserHelper {
|
|||||||
i.putExtra(FilePickerActivity.EXTRA_MODE, FilePickerActivity.MODE_DIR);
|
i.putExtra(FilePickerActivity.EXTRA_MODE, FilePickerActivity.MODE_DIR);
|
||||||
i.putExtra(FilePickerActivity.EXTRA_START_PATH,
|
i.putExtra(FilePickerActivity.EXTRA_START_PATH,
|
||||||
Environment.getExternalStorageDirectory().getPath());
|
Environment.getExternalStorageDirectory().getPath());
|
||||||
|
i.putExtra(CustomFilePickerActivity.EXTRA_TITLE, title);
|
||||||
|
|
||||||
activity.startActivityForResult(i, MainPresenter.REQUEST_ADD_DIRECTORY);
|
activity.startActivityForResult(i, requestCode);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void openFilePicker(FragmentActivity activity, int requestCode) {
|
public static void openFilePicker(FragmentActivity activity, int requestCode, String title) {
|
||||||
Intent i = new Intent(activity, CustomFilePickerActivity.class);
|
Intent i = new Intent(activity, CustomFilePickerActivity.class);
|
||||||
|
|
||||||
i.putExtra(FilePickerActivity.EXTRA_ALLOW_MULTIPLE, false);
|
i.putExtra(FilePickerActivity.EXTRA_ALLOW_MULTIPLE, false);
|
||||||
@ -36,6 +36,7 @@ public final class FileBrowserHelper {
|
|||||||
i.putExtra(FilePickerActivity.EXTRA_MODE, FilePickerActivity.MODE_FILE);
|
i.putExtra(FilePickerActivity.EXTRA_MODE, FilePickerActivity.MODE_FILE);
|
||||||
i.putExtra(FilePickerActivity.EXTRA_START_PATH,
|
i.putExtra(FilePickerActivity.EXTRA_START_PATH,
|
||||||
Environment.getExternalStorageDirectory().getPath());
|
Environment.getExternalStorageDirectory().getPath());
|
||||||
|
i.putExtra(CustomFilePickerActivity.EXTRA_TITLE, title);
|
||||||
|
|
||||||
activity.startActivityForResult(i, requestCode);
|
activity.startActivityForResult(i, requestCode);
|
||||||
}
|
}
|
||||||
|
32
src/android/app/src/main/res/layout/filepicker_toolbar.xml
Normal file
32
src/android/app/src/main/res/layout/filepicker_toolbar.xml
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<android.support.v7.widget.Toolbar
|
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:id="@+id/nnf_picker_toolbar"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_alignParentTop="true"
|
||||||
|
android:background="?attr/colorPrimary"
|
||||||
|
android:minHeight="?attr/actionBarSize"
|
||||||
|
android:theme="?nnf_toolbarTheme">
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:orientation="vertical" >
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/filepicker_title"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:ellipsize="start"
|
||||||
|
android:singleLine="true"
|
||||||
|
android:textAppearance="@style/TextAppearance.AppCompat.Widget.ActionBar.Title" />
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/nnf_current_dir"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:ellipsize="start"
|
||||||
|
android:singleLine="true"
|
||||||
|
android:textAppearance="@style/TextAppearance.AppCompat.Widget.ActionBar.Subtitle" />
|
||||||
|
</LinearLayout>
|
||||||
|
</android.support.v7.widget.Toolbar>
|
Loading…
x
Reference in New Issue
Block a user