Skip to content
This repository has been archived by the owner on Mar 30, 2024. It is now read-only.

Commit

Permalink
feat: dirs paging only below android 10
Browse files Browse the repository at this point in the history
  • Loading branch information
jaiselrahman committed May 23, 2020
1 parent 0a2ac17 commit 1e68f6e
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -46,10 +46,10 @@
import com.jaiselrahman.filepicker.R;
import com.jaiselrahman.filepicker.adapter.DirListAdapter;
import com.jaiselrahman.filepicker.config.Configurations;
import com.jaiselrahman.filepicker.model.MediaFileLoader;
import com.jaiselrahman.filepicker.model.Dir;
import com.jaiselrahman.filepicker.model.DirViewModel;
import com.jaiselrahman.filepicker.model.MediaFile;
import com.jaiselrahman.filepicker.model.MediaFileLoader;
import com.jaiselrahman.filepicker.view.DividerItemDecoration;

import java.io.File;
Expand Down Expand Up @@ -202,14 +202,12 @@ protected void onActivityResult(int requestCode, int resultCode, Intent data) {
new MediaScannerConnection.OnScanCompletedListener() {
@Override
public void onScanCompleted(String path, final Uri uri) {
if (uri != null) {
runOnUiThread(new Runnable() {
@Override
public void run() {
viewModel.refresh();
}
});
}
runOnUiThread(new Runnable() {
@Override
public void run() {
viewModel.refresh();
}
});
}
});
} else {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@
import androidx.paging.AsyncPagedListDiffer;
import androidx.paging.PagedList;
import androidx.recyclerview.widget.AsyncDifferConfig;
import androidx.recyclerview.widget.AsyncListDiffer;
import androidx.recyclerview.widget.DiffUtil;
import androidx.recyclerview.widget.ListUpdateCallback;
import androidx.recyclerview.widget.RecyclerView;
Expand All @@ -49,7 +48,6 @@
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Locale;

import static android.os.Environment.DIRECTORY_MOVIES;
Expand Down Expand Up @@ -78,7 +76,6 @@ public FileGalleryAdapter(Activity activity, int imageSize, boolean showCamera,
this.showCamera = showCamera;
this.showVideoCamera = showVideoCamera;


setDiffer(differ);

glideRequest = Glide.with(this.activity)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,8 @@
import static android.provider.MediaStore.MediaColumns.BUCKET_ID;
import static android.provider.MediaStore.MediaColumns.DATA;
import static android.provider.MediaStore.MediaColumns.DATE_ADDED;
import static android.provider.MediaStore.MediaColumns.DATE_MODIFIED;
import static android.provider.MediaStore.MediaColumns.DATE_TAKEN;
import static android.provider.MediaStore.MediaColumns.SIZE;
import static com.jaiselrahman.filepicker.model.MediaFileDataSource.appendDefaultFileSelection;
import static com.jaiselrahman.filepicker.model.MediaFileDataSource.appendFileSelection;
Expand Down Expand Up @@ -131,13 +133,27 @@ public void loadRange(@NonNull LoadRangeParams params, @NonNull LoadRangeCallbac
}

private List<Dir> getDirs(int offset, int limit) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
return getDirsQ(offset);
}

Cursor data = ContentResolverCompat.query(contentResolver, uri, projection,
selection, selectionArgs,
sortOrder + " LIMIT " + limit + " OFFSET " + offset, null);

return DirLoader.getDirs(data, configs);
}

private List<Dir> getDirsQ(int offset) {
if (offset != 0) return Collections.emptyList();

Cursor data = ContentResolverCompat.query(contentResolver, uri, projection,
selection, selectionArgs,
sortOrder, null);

return DirLoader.getDirs(data, configs);
}

private static String[] getDirProjection() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
return DirLoader.DIR_PROJECTION;
Expand Down

0 comments on commit 1e68f6e

Please sign in to comment.