From fb00ab91656afd88a115728b916593f9eaa71fad Mon Sep 17 00:00:00 2001 From: lotosbin Date: Wed, 9 Mar 2022 17:46:19 +0800 Subject: [PATCH] Fix issues#812: https://github.com/zhihu/Matisse/issues/812 --- .../matisse/internal/model/AlbumMediaCollection.java | 9 +++++++-- .../matisse/internal/ui/MediaSelectionFragment.java | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/matisse/src/main/java/com/zhihu/matisse/internal/model/AlbumMediaCollection.java b/matisse/src/main/java/com/zhihu/matisse/internal/model/AlbumMediaCollection.java index fa25939ec..442ee1102 100644 --- a/matisse/src/main/java/com/zhihu/matisse/internal/model/AlbumMediaCollection.java +++ b/matisse/src/main/java/com/zhihu/matisse/internal/model/AlbumMediaCollection.java @@ -21,6 +21,7 @@ import android.os.Bundle; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentActivity; import androidx.loader.app.LoaderManager; import androidx.loader.content.Loader; @@ -76,10 +77,14 @@ public void onLoaderReset(Loader loader) { public void onCreate(@NonNull FragmentActivity context, @NonNull AlbumMediaCallbacks callbacks) { mContext = new WeakReference(context); - mLoaderManager = context.getSupportLoaderManager(); + mLoaderManager = LoaderManager.getInstance(context); + mCallbacks = callbacks; + } + public void onCreate(@NonNull Fragment fragment, @NonNull AlbumMediaCallbacks callbacks) { + mContext = new WeakReference<>(fragment.getContext()); + mLoaderManager = LoaderManager.getInstance(fragment); mCallbacks = callbacks; } - public void onDestroy() { if (mLoaderManager != null) { mLoaderManager.destroyLoader(LOADER_ID); diff --git a/matisse/src/main/java/com/zhihu/matisse/internal/ui/MediaSelectionFragment.java b/matisse/src/main/java/com/zhihu/matisse/internal/ui/MediaSelectionFragment.java index 86c46e2f7..69c5926c3 100644 --- a/matisse/src/main/java/com/zhihu/matisse/internal/ui/MediaSelectionFragment.java +++ b/matisse/src/main/java/com/zhihu/matisse/internal/ui/MediaSelectionFragment.java @@ -109,7 +109,7 @@ public void onActivityCreated(@Nullable Bundle savedInstanceState) { int spacing = getResources().getDimensionPixelSize(R.dimen.media_grid_spacing); mRecyclerView.addItemDecoration(new MediaGridInset(spanCount, spacing, false)); mRecyclerView.setAdapter(mAdapter); - mAlbumMediaCollection.onCreate(getActivity(), this); + mAlbumMediaCollection.onCreate(this, this); mAlbumMediaCollection.load(album, selectionSpec.capture); }