diff --git a/gallery/build.properties b/gallery/build.properties index b9a9b97..09b4abb 100644 --- a/gallery/build.properties +++ b/gallery/build.properties @@ -1,8 +1,8 @@ #Created by .winboll/winboll_app_build.gradle -#Sat Apr 25 19:42:01 CST 2026 +#Sat Apr 25 19:56:18 CST 2026 stageCount=3 libraryProject= baseVersion=15.0 publishVersion=15.0.2 -buildCount=8 +buildCount=10 baseBetaVersion=15.0.3 diff --git a/gallery/src/main/java/cc/winboll/studio/gallery/AlbumActivity.java b/gallery/src/main/java/cc/winboll/studio/gallery/AlbumActivity.java index 9f5dc4d..c5cbb5c 100644 --- a/gallery/src/main/java/cc/winboll/studio/gallery/AlbumActivity.java +++ b/gallery/src/main/java/cc/winboll/studio/gallery/AlbumActivity.java @@ -48,6 +48,7 @@ public class AlbumActivity extends AppCompatActivity { recyclerView = findViewById(R.id.recycler_view); recyclerView.setLayoutManager(new GridLayoutManager(this, 3)); adapter = new ImageAdapter(); + adapter.setContext(this); recyclerView.setAdapter(adapter); adapter.setOnImageClickListener(new OnImageClickListener() { @@ -149,5 +150,8 @@ public class AlbumActivity extends AppCompatActivity { if (checkPermission()) { loadImages(); } + if (adapter != null) { + adapter.refreshBg(); + } } } \ No newline at end of file diff --git a/gallery/src/main/java/cc/winboll/studio/gallery/AlbumAdapter.java b/gallery/src/main/java/cc/winboll/studio/gallery/AlbumAdapter.java index e078ec3..15b0615 100644 --- a/gallery/src/main/java/cc/winboll/studio/gallery/AlbumAdapter.java +++ b/gallery/src/main/java/cc/winboll/studio/gallery/AlbumAdapter.java @@ -20,6 +20,21 @@ public class AlbumAdapter extends RecyclerView.Adapter public static final String TAG = "AlbumAdapter"; private ArrayList albums = new ArrayList<>(); private OnAlbumClickListener listener; + private Preferences prefs; + private int bgType = 0; + + private int getBgRes() { + switch (bgType) { + case 0: + return R.drawable.bg_checkerboard; + case 1: + return R.drawable.bg_white; + case 2: + return R.drawable.bg_black; + default: + return R.drawable.bg_checkerboard; + } + } public interface OnAlbumClickListener { void onAlbumClick(Album album); @@ -34,6 +49,18 @@ public class AlbumAdapter extends RecyclerView.Adapter LogUtils.d(TAG, "setData: " + albums.size() + " albums"); notifyDataSetChanged(); } + + public void setContext(android.content.Context context) { + prefs = new Preferences(context); + bgType = prefs.getBgType(); + } + + public void refreshBg() { + if (prefs != null) { + bgType = prefs.getBgType(); + notifyDataSetChanged(); + } + } @NonNull @Override @@ -48,6 +75,8 @@ public class AlbumAdapter extends RecyclerView.Adapter final Album album = albums.get(position); LogUtils.d(TAG, "bind: " + album.getName() + ", cover=" + album.getCoverUri()); + holder.coverImage.setBackgroundResource(getBgRes()); + holder.albumName.setText(album.getName()); holder.imageCount.setText(album.getImageCount() + " photos"); diff --git a/gallery/src/main/java/cc/winboll/studio/gallery/ImageAdapter.java b/gallery/src/main/java/cc/winboll/studio/gallery/ImageAdapter.java index 20a566d..21f2882 100644 --- a/gallery/src/main/java/cc/winboll/studio/gallery/ImageAdapter.java +++ b/gallery/src/main/java/cc/winboll/studio/gallery/ImageAdapter.java @@ -18,6 +18,21 @@ public class ImageAdapter extends RecyclerView.Adapter private ArrayList imageUrls = new ArrayList<>(); private ArrayList imagePaths = new ArrayList<>(); private OnImageClickListener listener; + private int bgType = 0; + private Preferences prefs; + + private int getBgRes() { + switch (bgType) { + case 0: + return R.drawable.bg_checkerboard; + case 1: + return R.drawable.bg_white; + case 2: + return R.drawable.bg_black; + default: + return R.drawable.bg_checkerboard; + } + } public interface OnImageClickListener { void onImageClick(int position, ArrayList urls, ArrayList paths); @@ -33,6 +48,18 @@ public class ImageAdapter extends RecyclerView.Adapter LogUtils.d(TAG, "setData: " + urls.size() + " images"); notifyDataSetChanged(); } + + public void setContext(android.content.Context context) { + prefs = new Preferences(context); + bgType = prefs.getBgType(); + } + + public void refreshBg() { + if (prefs != null) { + bgType = prefs.getBgType(); + notifyDataSetChanged(); + } + } @NonNull @Override @@ -44,6 +71,8 @@ public class ImageAdapter extends RecyclerView.Adapter @Override public void onBindViewHolder(@NonNull ViewHolder holder, final int position) { + holder.imageView.setBackgroundResource(getBgRes()); + Glide.with(holder.imageView.getContext()) .load(imageUrls.get(position)) .centerCrop() diff --git a/gallery/src/main/java/cc/winboll/studio/gallery/MainActivity.java b/gallery/src/main/java/cc/winboll/studio/gallery/MainActivity.java index 4a919c5..1373f20 100644 --- a/gallery/src/main/java/cc/winboll/studio/gallery/MainActivity.java +++ b/gallery/src/main/java/cc/winboll/studio/gallery/MainActivity.java @@ -52,6 +52,7 @@ public class MainActivity extends AppCompatActivity { recyclerView = findViewById(R.id.recycler_view); recyclerView.setLayoutManager(new GridLayoutManager(this, 2)); adapter = new AlbumAdapter(); + adapter.setContext(this); recyclerView.setAdapter(adapter); adapter.setOnAlbumClickListener(new OnAlbumClickListener() { @@ -244,6 +245,9 @@ public class MainActivity extends AppCompatActivity { scanMediaStore(); loadAlbums(); } + if (adapter != null) { + adapter.refreshBg(); + } } private void scanMediaStore() {