From f83adbef4452add53dda6857e848b4c865cf8205 Mon Sep 17 00:00:00 2001 From: Peter Serwylo Date: Wed, 29 Mar 2017 10:38:30 +1100 Subject: [PATCH 1/6] Repeat grid pattern every 5 items Previously it would show a grid patter for the first five items, and then resort to list items. This continues the grid pattern indefinetly. Fixes #866. --- .../views/whatsnew/WhatsNewAdapter.java | 35 +++++++++++-------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/org/fdroid/fdroid/views/whatsnew/WhatsNewAdapter.java b/app/src/main/java/org/fdroid/fdroid/views/whatsnew/WhatsNewAdapter.java index d5e2bb2b7..93391776c 100644 --- a/app/src/main/java/org/fdroid/fdroid/views/whatsnew/WhatsNewAdapter.java +++ b/app/src/main/java/org/fdroid/fdroid/views/whatsnew/WhatsNewAdapter.java @@ -53,19 +53,27 @@ public class WhatsNewAdapter extends RecyclerView.Adapter { } return new AppCardController(activity, activity.getLayoutInflater().inflate(layout, parent, false)); - } @Override public int getItemViewType(int position) { if (position == 0) { return R.id.whats_new_feature; - } else if (position <= 2) { - return R.id.whats_new_large_tile; - } else if (position <= 4) { - return R.id.whats_new_small_tile; } else { - return R.id.whats_new_regular_list; + int relativePositionInCycle = position % 5; + switch (relativePositionInCycle) { + case 1: + case 2: + return R.id.whats_new_large_tile; + + case 3: + case 4: + return R.id.whats_new_small_tile; + + case 0: + default: + return R.id.whats_new_regular_list; + } } } @@ -85,17 +93,14 @@ public class WhatsNewAdapter extends RecyclerView.Adapter { notifyDataSetChanged(); } - // TODO: Replace with https://github.com/lucasr/twoway-view which looks really really cool, but - // no longer under active development (despite heaps of forks/stars on github). public static class SpanSizeLookup extends GridLayoutManager.SpanSizeLookup { @Override public int getSpanSize(int position) { - if (position == 0) { + int relativePositionInCycle = position % 5; + if (relativePositionInCycle == 0) { return 2; - } else if (position <= 4) { - return 1; } else { - return 2; + return 1; } } } @@ -119,18 +124,18 @@ public class WhatsNewAdapter extends RecyclerView.Adapter { int horizontalPadding = (int) context.getResources().getDimension(R.dimen.whats_new__padding__app_card__horizontal); int verticalPadding = (int) context.getResources().getDimension(R.dimen.whats_new__padding__app_card__vertical); + int relativePositionInCycle = position % 5; if (position == 0) { // Don't set any padding for the first item as the FeatureImage behind it needs to butt right // up against the left/top/right of the screen. outRect.set(0, 0, 0, verticalPadding); - } else if (position <= 4) { - // Odd items are on the left, even on the right. + } else if (relativePositionInCycle != 0) { // The item on the left will have both left and right padding. The item on the right // will only have padding on the right. This will allow the same amount of padding // on the left, centre, and right of the grid, rather than double the padding in the // middle (which would happen if both left+right paddings were set for both items). boolean isLtr = ViewCompat.getLayoutDirection(parent) == ViewCompat.LAYOUT_DIRECTION_LTR; - boolean isAtStart = (position % 2) == 1; + boolean isAtStart = relativePositionInCycle == 1 || relativePositionInCycle == 3; int paddingStart = isAtStart ? horizontalPadding : 0; int paddingLeft = isLtr ? paddingStart : horizontalPadding; int paddingRight = isLtr ? horizontalPadding : paddingStart; From 37e608dbadc8326c17a7429e15de9cd7fba5a3ea Mon Sep 17 00:00:00 2001 From: Peter Serwylo Date: Wed, 29 Mar 2017 14:16:04 +1100 Subject: [PATCH 2/6] Use textAlignment + gravity. TextAlignment was only added in API 17. --- app/src/main/res/layout/app_details2_donate.xml | 1 + app/src/main/res/layout/installed_apps_layout.xml | 1 + app/src/main/res/layout/main_tab_swap.xml | 2 ++ app/src/main/res/layout/swap_connecting.xml | 3 ++- app/src/main/res/values-v17/styles.xml | 4 ++++ 5 files changed, 10 insertions(+), 1 deletion(-) diff --git a/app/src/main/res/layout/app_details2_donate.xml b/app/src/main/res/layout/app_details2_donate.xml index b6d8d5204..54fa19110 100644 --- a/app/src/main/res/layout/app_details2_donate.xml +++ b/app/src/main/res/layout/app_details2_donate.xml @@ -16,6 +16,7 @@ android:layout_height="wrap_content" android:textSize="15sp" android:textAlignment="center" + android:gravity="center" tools:text="F-Droid is created by F-Droid Limited and Contributors. Buy them a coffee!" android:layout_marginBottom="12dp" /> diff --git a/app/src/main/res/layout/installed_apps_layout.xml b/app/src/main/res/layout/installed_apps_layout.xml index 7e8b6edb7..423b42c95 100644 --- a/app/src/main/res/layout/installed_apps_layout.xml +++ b/app/src/main/res/layout/installed_apps_layout.xml @@ -38,6 +38,7 @@ app:layout_constraintRight_toRightOf="parent" android:padding="16dp" android:textAlignment="center" + android:gravity="center" android:textColor="#424242" android:textSize="14sp" android:text="Tap and hold on an app for more options" diff --git a/app/src/main/res/layout/main_tab_swap.xml b/app/src/main/res/layout/main_tab_swap.xml index adc254e3e..b706f9515 100644 --- a/app/src/main/res/layout/main_tab_swap.xml +++ b/app/src/main/res/layout/main_tab_swap.xml @@ -18,6 +18,7 @@ android:layout_marginTop="48dp" android:text="@string/nearby_splash__download_apps_from_people_nearby" android:textAlignment="center" + android:gravity="center" android:textSize="20sp" android:textColor="#4a4a4a" app:layout_constraintLeft_toLeftOf="parent" @@ -42,6 +43,7 @@ tools:text="@string/nearby_splash__both_parties_need_fdroid" android:textSize="15sp" android:textAlignment="center" + android:gravity="center" android:textColor="#5B5B5B" app:layout_constraintTop_toBottomOf="@+id/button" app:layout_constraintRight_toRightOf="parent" diff --git a/app/src/main/res/layout/swap_connecting.xml b/app/src/main/res/layout/swap_connecting.xml index 2b02e1a35..c9e319935 100644 --- a/app/src/main/res/layout/swap_connecting.xml +++ b/app/src/main/res/layout/swap_connecting.xml @@ -11,10 +11,10 @@ android:id="@+id/heading" android:layout_width="match_parent" android:layout_height="wrap_content" - android:gravity="center" android:textSize="20sp" android:padding="30dp" android:textAlignment="center" + android:gravity="center" tools:text="Connecting with Nexus 4" tools:ignore="UnusedAttribute" /> @@ -30,6 +30,7 @@ android:id="@+id/error" android:textSize="20sp" android:textAlignment="center" + android:gravity="center" android:text="@string/swap_connection_misc_error" android:visibility="gone" android:padding="30dp" diff --git a/app/src/main/res/values-v17/styles.xml b/app/src/main/res/values-v17/styles.xml index 1500affdb..26165dfa1 100644 --- a/app/src/main/res/values-v17/styles.xml +++ b/app/src/main/res/values-v17/styles.xml @@ -15,19 +15,23 @@