diff --git a/src/android/app/src/main/java/org/citra/citra_android/adapters/GameAdapter.java b/src/android/app/src/main/java/org/citra/citra_android/adapters/GameAdapter.java index 10c148d24..897d79583 100644 --- a/src/android/app/src/main/java/org/citra/citra_android/adapters/GameAdapter.java +++ b/src/android/app/src/main/java/org/citra/citra_android/adapters/GameAdapter.java @@ -73,7 +73,7 @@ public final class GameAdapter extends RecyclerView.Adapter impl PicassoUtils.loadGameBanner(holder.imageScreenshot, mCursor.getString(GameDatabase.GAME_COLUMN_PATH)); - holder.textGameTitle.setText(mCursor.getString(GameDatabase.GAME_COLUMN_TITLE)); + holder.textGameTitle.setText(mCursor.getString(GameDatabase.GAME_COLUMN_TITLE).replaceAll("[\\t\\n\\r]+"," ")); holder.textCompany.setText(mCursor.getString(GameDatabase.GAME_COLUMN_COMPANY)); // TODO These shouldn't be necessary once the move to a DB-based model is complete. @@ -201,10 +201,10 @@ public final class GameAdapter extends RecyclerView.Adapter impl @Override public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) { - outRect.left = space; - outRect.right = space; + outRect.left = 0; + outRect.right = 0; outRect.bottom = space; - outRect.top = space; + outRect.top = 0; } } diff --git a/src/android/app/src/main/java/org/citra/citra_android/ui/platform/PlatformGamesFragment.java b/src/android/app/src/main/java/org/citra/citra_android/ui/platform/PlatformGamesFragment.java index f6fc0846b..b047c9f34 100644 --- a/src/android/app/src/main/java/org/citra/citra_android/ui/platform/PlatformGamesFragment.java +++ b/src/android/app/src/main/java/org/citra/citra_android/ui/platform/PlatformGamesFragment.java @@ -47,7 +47,7 @@ public final class PlatformGamesFragment extends Fragment implements PlatformGam mRecyclerView.setLayoutManager(layoutManager); mRecyclerView.setAdapter(mAdapter); - mRecyclerView.addItemDecoration(new GameAdapter.SpacesItemDecoration(8)); + mRecyclerView.addItemDecoration(new GameAdapter.SpacesItemDecoration(1)); // Add swipe down to refresh gesture final SwipeRefreshLayout pullToRefresh = view.findViewById(R.id.refresh_grid_games); diff --git a/src/android/app/src/main/java/org/citra/citra_android/utils/PicassoRoundedCornersTransformation.java b/src/android/app/src/main/java/org/citra/citra_android/utils/PicassoRoundedCornersTransformation.java new file mode 100644 index 000000000..49f5f9327 --- /dev/null +++ b/src/android/app/src/main/java/org/citra/citra_android/utils/PicassoRoundedCornersTransformation.java @@ -0,0 +1,44 @@ +package org.citra.citra_android.utils; + +import android.graphics.Bitmap; +import android.graphics.BitmapShader; +import android.graphics.Canvas; +import android.graphics.Paint; +import android.graphics.Rect; +import android.graphics.RectF; + +import com.squareup.picasso.Transformation; + +public class PicassoRoundedCornersTransformation implements Transformation { + @Override + public Bitmap transform(Bitmap icon) { + final Rect rect = new Rect(0, 0, icon.getWidth(), icon.getHeight()); + final int size = Math.min(icon.getWidth(), icon.getHeight()); + final int x = (icon.getWidth() - size) / 2; + final int y = (icon.getHeight() - size) / 2; + + Bitmap squaredBitmap = Bitmap.createBitmap(icon, x, y, size, size); + if (squaredBitmap != icon) { + icon.recycle(); + } + + Bitmap output = + Bitmap.createBitmap(icon.getWidth(), icon.getHeight(), Bitmap.Config.ARGB_8888); + Canvas canvas = new Canvas(output); + BitmapShader shader = new BitmapShader(squaredBitmap, BitmapShader.TileMode.CLAMP, BitmapShader.TileMode.CLAMP); + Paint paint = new Paint(); + paint.setAntiAlias(true); + paint.setShader(shader); + + canvas.drawRoundRect(new RectF(rect), 10,10, paint); + + squaredBitmap.recycle(); + + return output; + } + + @Override + public String key() { + return "circle"; + } +} \ No newline at end of file diff --git a/src/android/app/src/main/java/org/citra/citra_android/utils/PicassoUtils.java b/src/android/app/src/main/java/org/citra/citra_android/utils/PicassoUtils.java index 2ee1e06dc..f3c2ba1e3 100644 --- a/src/android/app/src/main/java/org/citra/citra_android/utils/PicassoUtils.java +++ b/src/android/app/src/main/java/org/citra/citra_android/utils/PicassoUtils.java @@ -7,6 +7,7 @@ import android.widget.ImageView; import com.squareup.picasso.Picasso; import org.citra.citra_android.R; +import org.citra.citra_android.utils.PicassoRoundedCornersTransformation; public class PicassoUtils { public static void loadGameBanner(ImageView imageView, String gamePath) { @@ -22,6 +23,7 @@ public class PicassoUtils { .centerInside() .config(Bitmap.Config.RGB_565) .error(R.drawable.no_banner) + .transform(new PicassoRoundedCornersTransformation()) .into(imageView); } } diff --git a/src/android/app/src/main/res/layout/card_game.xml b/src/android/app/src/main/res/layout/card_game.xml index def4a9425..5ade752f5 100644 --- a/src/android/app/src/main/res/layout/card_game.xml +++ b/src/android/app/src/main/res/layout/card_game.xml @@ -18,8 +18,8 @@