diff --git a/app/src/main/java/com/jaiselrahman/filepickersample/MainActivity.java b/app/src/main/java/com/jaiselrahman/filepickersample/MainActivity.java index eb17889..ced074b 100644 --- a/app/src/main/java/com/jaiselrahman/filepickersample/MainActivity.java +++ b/app/src/main/java/com/jaiselrahman/filepickersample/MainActivity.java @@ -97,6 +97,7 @@ public void onClick(View v) { .setShowAudios(true) .setSingleChoiceMode(true) .setSelectedMediaFile(file) + .setTitle("Select an audio") .build()); startActivityForResult(intent, FILE_REQUEST_CODE); } @@ -118,6 +119,7 @@ public void onClick(View v) { .enableImageCapture(true) .setIgnoreHiddenFile(false) .setMaxSelection(10) + .setTitle("Select a file") .build()); startActivityForResult(intent, FILE_REQUEST_CODE); } diff --git a/filepicker/src/main/java/com/jaiselrahman/filepicker/activity/DirSelectActivity.java b/filepicker/src/main/java/com/jaiselrahman/filepicker/activity/DirSelectActivity.java index 89a2849..74b29f3 100644 --- a/filepicker/src/main/java/com/jaiselrahman/filepicker/activity/DirSelectActivity.java +++ b/filepicker/src/main/java/com/jaiselrahman/filepicker/activity/DirSelectActivity.java @@ -114,6 +114,9 @@ protected void onCreate(Bundle savedInstanceState) { Toolbar toolbar = findViewById(R.id.toolbar); setSupportActionBar(toolbar); + if (configs.getTitle() != null) + setTitle(configs.getTitle()); + int spanCount; if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) { @@ -138,7 +141,8 @@ protected void onCreate(Bundle savedInstanceState) { public void onClick(Dir dir) { Intent intent = new Intent(DirSelectActivity.this, FilePickerActivity.class) .putExtra(FilePickerActivity.CONFIGS, configs) - .putExtra(FilePickerActivity.DIR_ID, dir.getId()); + .putExtra(FilePickerActivity.DIR_ID, dir.getId()) + .putExtra(FilePickerActivity.DIR_TITLE, dir.getName()); startActivityForResult(intent, REQUEST_FILE); } }); diff --git a/filepicker/src/main/java/com/jaiselrahman/filepicker/activity/FilePickerActivity.java b/filepicker/src/main/java/com/jaiselrahman/filepicker/activity/FilePickerActivity.java index 7f002e3..344fc88 100644 --- a/filepicker/src/main/java/com/jaiselrahman/filepicker/activity/FilePickerActivity.java +++ b/filepicker/src/main/java/com/jaiselrahman/filepicker/activity/FilePickerActivity.java @@ -53,12 +53,14 @@ import java.io.File; import java.util.ArrayList; +@SuppressLint("StringFormatMatches") public class FilePickerActivity extends AppCompatActivity implements OnSelectionListener, OnCameraClickListener { public static final String MEDIA_FILES = "MEDIA_FILES"; public static final String SELECTED_MEDIA_FILES = "SELECTED_MEDIA_FILES"; public static final String CONFIGS = "CONFIGS"; public static final String DIR_ID = "DIR_ID"; + public static final String DIR_TITLE = "DIR_TITLE"; public static final String TAG = "FilePicker"; private static final String PATH = "PATH"; private static final String URI = "URI"; @@ -71,6 +73,8 @@ public class FilePickerActivity extends AppCompatActivity private FileGalleryAdapter fileGalleryAdapter; private int maxCount; private Long dirId = null; + private String title = null; + private int title_res = R.string.selection_count; private FileResultCallback fileResultCallback = new FileResultCallback() { @Override @@ -121,6 +125,14 @@ protected void onCreate(Bundle savedInstanceState) { Toolbar toolbar = findViewById(R.id.toolbar); setSupportActionBar(toolbar); + if (getIntent().hasExtra(DIR_TITLE)) + title = getIntent().getStringExtra(DIR_TITLE); + else if (configs.getTitle() != null) + title = configs.getTitle(); + + if (title != null) + title_res = R.string.selection_count_title; + int spanCount; if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) { @@ -166,7 +178,7 @@ public boolean isAutoMeasureEnabled() { maxCount = configs.getMaxSelection(); if (maxCount > 0) { - setTitle(getResources().getString(R.string.selection_count, fileGalleryAdapter.getSelectedItemCount(), maxCount)); + setTitle(getResources().getString(title_res, fileGalleryAdapter.getSelectedItemCount(), maxCount, title)); } } @@ -336,14 +348,14 @@ public void onSelectionBegin() { @Override public void onSelected(FileGalleryAdapter.ViewHolder viewHolder, int position) { if (maxCount > 0) { - setTitle(getResources().getString(R.string.selection_count, fileGalleryAdapter.getSelectedItemCount(), maxCount)); + setTitle(getResources().getString(title_res, fileGalleryAdapter.getSelectedItemCount(), maxCount, title)); } } @Override public void onUnSelected(FileGalleryAdapter.ViewHolder viewHolder, int position) { if (maxCount > 0) { - setTitle(getResources().getString(R.string.selection_count, fileGalleryAdapter.getSelectedItemCount(), maxCount)); + setTitle(getResources().getString(title_res, fileGalleryAdapter.getSelectedItemCount(), maxCount, title)); } } diff --git a/filepicker/src/main/java/com/jaiselrahman/filepicker/adapter/DirListAdapter.java b/filepicker/src/main/java/com/jaiselrahman/filepicker/adapter/DirListAdapter.java index cafa25a..c544873 100644 --- a/filepicker/src/main/java/com/jaiselrahman/filepicker/adapter/DirListAdapter.java +++ b/filepicker/src/main/java/com/jaiselrahman/filepicker/adapter/DirListAdapter.java @@ -56,7 +56,6 @@ public class DirListAdapter extends RecyclerView.Adapter implements ListUpdateCallback { public static final int CAPTURE_IMAGE_VIDEO = 1; - // private ArrayList mediaDirs; private Activity activity; private RequestManager glideRequest; private OnClickListener onClickListener; diff --git a/filepicker/src/main/java/com/jaiselrahman/filepicker/config/Configurations.java b/filepicker/src/main/java/com/jaiselrahman/filepicker/config/Configurations.java index 0a42208..6fa7ba6 100644 --- a/filepicker/src/main/java/com/jaiselrahman/filepicker/config/Configurations.java +++ b/filepicker/src/main/java/com/jaiselrahman/filepicker/config/Configurations.java @@ -57,6 +57,7 @@ public Configurations[] newArray(int size) { private Matcher[] ignorePathMatchers; private final boolean ignoreNoMedia; private final boolean ignoreHiddenFile; + private final String title; private Configurations(Builder builder) { this.imageCaptureEnabled = builder.imageCapture; @@ -79,6 +80,7 @@ private Configurations(Builder builder) { setIgnorePathMatchers(builder.ignorePaths); this.ignoreNoMedia = builder.ignoreNoMedia; this.ignoreHiddenFile = builder.ignoreHiddenFile; + this.title = builder.title; } protected Configurations(Parcel in) { @@ -102,6 +104,7 @@ protected Configurations(Parcel in) { setIgnorePathMatchers(in.createStringArray()); ignoreNoMedia = in.readByte() != 0; ignoreHiddenFile = in.readByte() != 0; + title = in.readString(); } public boolean isShowVideos() { @@ -150,6 +153,7 @@ public void writeToParcel(Parcel dest, int flags) { dest.writeStringArray(getIgnorePaths()); dest.writeByte((byte) (ignoreNoMedia ? 1 : 0)); dest.writeByte((byte) (ignoreHiddenFile ? 1 : 0)); + dest.writeString(title); } @Override @@ -234,6 +238,10 @@ private String[] getIgnorePaths() { return null; } + public String getTitle() { + return title; + } + public static class Builder { private boolean imageCapture = false, videoCapture = false, checkPermission = false, showImages = true, showVideos = true, @@ -253,6 +261,7 @@ public static class Builder { private String[] ignorePaths = null; private boolean ignoreNoMedia = true; private boolean ignoreHiddenFile = true; + private String title = null; public Builder setSingleClickSelection(boolean singleClickSelection) { this.singleClickSelection = singleClickSelection; @@ -366,6 +375,11 @@ public Builder setIgnoreHiddenFile(boolean ignoreHiddenFile) { return this; } + public Builder setTitle(String title) { + this.title = title; + return this; + } + public Configurations build() { return new Configurations(this); } diff --git a/filepicker/src/main/res/values/strings.xml b/filepicker/src/main/res/values/strings.xml index df308e3..9187fca 100644 --- a/filepicker/src/main/res/values/strings.xml +++ b/filepicker/src/main/res/values/strings.xml @@ -3,6 +3,7 @@ File Thumbnail Open Camera Done + %3$s (%1$d/%2$d) %1$d/%2$d Permission not given