From 4387412c92c64dfe05792e0156977fc463e29714 Mon Sep 17 00:00:00 2001 From: Julien Humbert Date: Wed, 23 Aug 2023 09:05:04 +0900 Subject: [PATCH] Add pluralized string (WIP 1) --- .../activities/InstanceInfoActivity.java | 40 ++++++++++++++++--- .../ViewSubredditDetailActivity.java | 30 ++++++++++++-- ...redditAutocompleteRecyclerViewAdapter.java | 8 +++- .../SubredditListingRecyclerViewAdapter.java | 8 +++- .../fragments/SidebarFragment.java | 32 +++++++++++++-- .../activity_view_subreddit_detail.xml | 8 ++-- .../activity_view_subreddit_detail.xml | 8 ++-- .../res/layout/activity_instance_info.xml | 10 ++--- .../layout/activity_view_subreddit_detail.xml | 8 ++-- app/src/main/res/layout/fragment_sidebar.xml | 8 ++-- app/src/main/res/values/strings.xml | 30 +++++++++++--- 11 files changed, 148 insertions(+), 42 deletions(-) diff --git a/app/src/main/java/eu/toldi/infinityforlemmy/activities/InstanceInfoActivity.java b/app/src/main/java/eu/toldi/infinityforlemmy/activities/InstanceInfoActivity.java index 4d3383e1..a80113ba 100644 --- a/app/src/main/java/eu/toldi/infinityforlemmy/activities/InstanceInfoActivity.java +++ b/app/src/main/java/eu/toldi/infinityforlemmy/activities/InstanceInfoActivity.java @@ -153,11 +153,41 @@ public class InstanceInfoActivity extends BaseActivity { SiteStatistics siteStatistics = siteInfo.getSiteStatistics(); if (siteStatistics != null) { mStatisticsCardView.setVisibility(View.VISIBLE); - mUsersTextView.setText(getString(R.string.user_number_detail, siteStatistics.getUsers())); - mCommunitiesTextView.setText(getString(R.string.community_number_detail, siteStatistics.getCommunities())); - mPostsTextView.setText(getString(R.string.post_count_detail, siteStatistics.getPosts())); - mCommentsTextView.setText(getString(R.string.comment_count_detail, siteStatistics.getComments())); - mActiveUsersTextView.setText(getString(R.string.active_users_number_detail, siteStatistics.getUsers_active())); + mUsersTextView.setText( + getResources().getQuantityString( + R.plurals.user_number_detail, + siteStatistics.getUsers(), + siteStatistics.getUsers() + ) + ); + mCommunitiesTextView.setText( + getResources().getQuantityString( + R.plurals.community_number_detail, + siteStatistics.getCommunities(), + siteStatistics.getCommunities() + ) + ); + mPostsTextView.setText( + getResources().getQuantityString( + R.plurals.post_count_detail, + siteStatistics.getPosts(), + siteStatistics.getPosts() + ) + ); + mCommentsTextView.setText( + getResources().getQuantityString( + R.plurals.comment_count_detail, + siteStatistics.getComments(), + siteStatistics.getComments() + ) + ); + mActiveUsersTextView.setText( + getResources().getQuantityString( + R.plurals.active_users_number_detail, + siteStatistics.getUsers_active(), + siteStatistics.getUsers_active() + ) + ); } } diff --git a/app/src/main/java/eu/toldi/infinityforlemmy/activities/ViewSubredditDetailActivity.java b/app/src/main/java/eu/toldi/infinityforlemmy/activities/ViewSubredditDetailActivity.java index 23239b43..ce0598ea 100644 --- a/app/src/main/java/eu/toldi/infinityforlemmy/activities/ViewSubredditDetailActivity.java +++ b/app/src/main/java/eu/toldi/infinityforlemmy/activities/ViewSubredditDetailActivity.java @@ -596,14 +596,36 @@ public class ViewSubredditDetailActivity extends BaseActivity implements SortTyp subredditNameTextView.setText(subredditFullName); qualifiedName = LemmyUtils.actorID2FullName(subredditData.getActorId()); communityFullNameTextView.setText(qualifiedName); - String nSubscribers = getString(R.string.subscribers_number_detail, subredditData.getNSubscribers()); + String nSubscribers = getResources().getQuantityString( + R.plurals.subscribers_number_detail, + subredditData.getNSubscribers(), + subredditData.getNSubscribers() + ); nSubscribersTextView.setText(nSubscribers); if (mCommunityStats != null && showStatistics) { communityStatisticsBlock.setVisibility(View.VISIBLE); - nActiveUsersTextView.setText(getString(R.string.active_users_number_detail, mCommunityStats.getActiveUsers())); - nPostsTextView.setText(getString(R.string.post_count_detail, mCommunityStats.getPosts())); - nCommentsTextView.setText(getString(R.string.comment_count_detail, mCommunityStats.getComments())); + nActiveUsersTextView.setText( + getResources().getQuantityString( + R.plurals.active_users_number_detail, + mCommunityStats.getActiveUsers(), + mCommunityStats.getActiveUsers() + ) + ); + nPostsTextView.setText( + getResources().getQuantityString( + R.plurals.post_count_detail, + mCommunityStats.getPosts(), + mCommunityStats.getPosts() + ) + ); + nCommentsTextView.setText( + getResources().getQuantityString( + R.plurals.comment_count_detail, + mCommunityStats.getComments(), + mCommunityStats.getComments() + ) + ); } description = subredditData.getDescription(); diff --git a/app/src/main/java/eu/toldi/infinityforlemmy/adapters/SubredditAutocompleteRecyclerViewAdapter.java b/app/src/main/java/eu/toldi/infinityforlemmy/adapters/SubredditAutocompleteRecyclerViewAdapter.java index 07cf7c09..de878fd8 100644 --- a/app/src/main/java/eu/toldi/infinityforlemmy/adapters/SubredditAutocompleteRecyclerViewAdapter.java +++ b/app/src/main/java/eu/toldi/infinityforlemmy/adapters/SubredditAutocompleteRecyclerViewAdapter.java @@ -53,7 +53,13 @@ public class SubredditAutocompleteRecyclerViewAdapter extends RecyclerView.Adapt .apply(RequestOptions.bitmapTransform(new RoundedCornersTransformation(72, 0)))) .into(((SubredditViewHolder) holder).iconImageView); ((SubredditViewHolder) holder).subredditNameTextView.setText(subreddits.get(position).getName()); - ((SubredditViewHolder) holder).subscriberCountTextView.setText(activity.getString(R.string.subscribers_number_detail, subreddits.get(position).getNSubscribers())); + ((SubredditViewHolder) holder).subscriberCountTextView.setText( + activity.getResources().getQuantityString( + R.plurals.subscribers_number_detail, + subreddits.get(position).getNSubscribers(), + subreddits.get(position).getNSubscribers() + ) + ); } } diff --git a/app/src/main/java/eu/toldi/infinityforlemmy/adapters/SubredditListingRecyclerViewAdapter.java b/app/src/main/java/eu/toldi/infinityforlemmy/adapters/SubredditListingRecyclerViewAdapter.java index 3ba8cea6..be3ab36b 100644 --- a/app/src/main/java/eu/toldi/infinityforlemmy/adapters/SubredditListingRecyclerViewAdapter.java +++ b/app/src/main/java/eu/toldi/infinityforlemmy/adapters/SubredditListingRecyclerViewAdapter.java @@ -142,7 +142,13 @@ public class SubredditListingRecyclerViewAdapter extends PagedListAdapter @@ -126,7 +126,7 @@ android:layout_height="wrap_content" android:layout_marginStart="8dp" android:layout_marginTop="10dp" - android:text="@string/active_users_number_detail" + android:text="@plurals/active_users_number_detail" app:layout_constraintStart_toEndOf="@+id/active_user_count_image_view_view_subreddit_detail_activity" app:layout_constraintTop_toTopOf="parent" /> @@ -146,7 +146,7 @@ android:layout_height="wrap_content" android:layout_marginStart="8dp" android:layout_marginTop="18dp" - android:text="@string/post_count_detail" + android:text="@plurals/post_count_detail" app:layout_constraintStart_toEndOf="@+id/post_count_image_view_view_subreddit_detail_activity" app:layout_constraintTop_toBottomOf="@+id/subscriber_count_image_view_view_subreddit_detail_activity" /> @@ -166,7 +166,7 @@ android:layout_height="wrap_content" android:layout_marginStart="8dp" android:layout_marginTop="18dp" - android:text="@string/comment_count_detail" + android:text="@plurals/comment_count_detail" app:layout_constraintStart_toEndOf="@+id/comment_count_image_view_view_subreddit_detail_activity" app:layout_constraintTop_toBottomOf="@+id/active_user_count_image_view_view_subreddit_detail_activity" /> diff --git a/app/src/main/res/layout-sw600dp/activity_view_subreddit_detail.xml b/app/src/main/res/layout-sw600dp/activity_view_subreddit_detail.xml index af31cbbc..49e9074c 100644 --- a/app/src/main/res/layout-sw600dp/activity_view_subreddit_detail.xml +++ b/app/src/main/res/layout-sw600dp/activity_view_subreddit_detail.xml @@ -99,7 +99,7 @@ android:layout_height="wrap_content" android:layout_marginStart="8dp" android:layout_marginTop="10dp" - android:text="@string/subscribers_number_detail" + android:text="@plurals/subscribers_number_detail" app:layout_constraintStart_toEndOf="@+id/subscriber_count_image_view_view_subreddit_detail_activity" app:layout_constraintTop_toTopOf="parent" /> @@ -126,7 +126,7 @@ android:layout_height="wrap_content" android:layout_marginStart="8dp" android:layout_marginTop="10dp" - android:text="@string/active_users_number_detail" + android:text="@plurals/active_users_number_detail" app:layout_constraintStart_toEndOf="@+id/active_user_count_image_view_view_subreddit_detail_activity" app:layout_constraintTop_toTopOf="parent" /> @@ -146,7 +146,7 @@ android:layout_height="wrap_content" android:layout_marginStart="8dp" android:layout_marginTop="18dp" - android:text="@string/post_count_detail" + android:text="@plurals/post_count_detail" app:layout_constraintStart_toEndOf="@+id/post_count_image_view_view_subreddit_detail_activity" app:layout_constraintTop_toBottomOf="@+id/subscriber_count_image_view_view_subreddit_detail_activity" /> @@ -166,7 +166,7 @@ android:layout_height="wrap_content" android:layout_marginStart="8dp" android:layout_marginTop="18dp" - android:text="@string/comment_count_detail" + android:text="@plurals/comment_count_detail" app:layout_constraintStart_toEndOf="@+id/comment_count_image_view_view_subreddit_detail_activity" app:layout_constraintTop_toBottomOf="@+id/active_user_count_image_view_view_subreddit_detail_activity" /> diff --git a/app/src/main/res/layout/activity_instance_info.xml b/app/src/main/res/layout/activity_instance_info.xml index 5e4f362f..6376892f 100644 --- a/app/src/main/res/layout/activity_instance_info.xml +++ b/app/src/main/res/layout/activity_instance_info.xml @@ -121,7 +121,7 @@ android:layout_height="wrap_content" android:layout_marginStart="8dp" android:layout_marginTop="10dp" - android:text="@string/user_number_detail" + android:text="@plurals/user_number_detail" app:layout_constraintStart_toEndOf="@+id/registered_user_count_image_view_instance_info_activity" app:layout_constraintTop_toTopOf="parent" /> @@ -148,7 +148,7 @@ android:layout_height="wrap_content" android:layout_marginStart="8dp" android:layout_marginTop="10dp" - android:text="@string/active_users_number_detail" + android:text="@plurals/active_users_number_detail" app:layout_constraintStart_toEndOf="@+id/active_user_count_image_view_instance_info_activity" app:layout_constraintTop_toTopOf="parent" /> @@ -168,7 +168,7 @@ android:layout_height="wrap_content" android:layout_marginStart="8dp" android:layout_marginTop="18dp" - android:text="@string/post_count_detail" + android:text="@plurals/post_count_detail" app:layout_constraintStart_toEndOf="@+id/post_count_image_view_instance_info_activity" app:layout_constraintTop_toBottomOf="@+id/registered_user_count_image_view_instance_info_activity" /> @@ -188,7 +188,7 @@ android:layout_height="wrap_content" android:layout_marginStart="8dp" android:layout_marginTop="18dp" - android:text="@string/comment_count_detail" + android:text="@plurals/comment_count_detail" app:layout_constraintStart_toEndOf="@+id/comment_count_image_view_instance_info_activity" app:layout_constraintTop_toBottomOf="@+id/active_user_count_image_view_instance_info_activity" /> @@ -208,7 +208,7 @@ android:layout_height="wrap_content" android:layout_marginStart="8dp" android:layout_marginTop="18dp" - android:text="@string/community_number_detail" + android:text="@plurals/community_number_detail" app:layout_constraintStart_toEndOf="@+id/communities_icon_image_view_instance_info_activity" app:layout_constraintTop_toBottomOf="@+id/post_count_image_view_instance_info_activity" /> diff --git a/app/src/main/res/layout/activity_view_subreddit_detail.xml b/app/src/main/res/layout/activity_view_subreddit_detail.xml index 33632780..29b6b72f 100644 --- a/app/src/main/res/layout/activity_view_subreddit_detail.xml +++ b/app/src/main/res/layout/activity_view_subreddit_detail.xml @@ -98,7 +98,7 @@ android:layout_height="wrap_content" android:layout_marginStart="8dp" android:layout_marginTop="10dp" - android:text="@string/subscribers_number_detail" + android:text="@plurals/subscribers_number_detail" app:layout_constraintStart_toEndOf="@+id/subscriber_count_image_view_view_subreddit_detail_activity" app:layout_constraintTop_toTopOf="parent" /> @@ -125,7 +125,7 @@ android:layout_height="wrap_content" android:layout_marginStart="8dp" android:layout_marginTop="10dp" - android:text="@string/active_users_number_detail" + android:text="@plurals/active_users_number_detail" app:layout_constraintStart_toEndOf="@+id/active_user_count_image_view_view_subreddit_detail_activity" app:layout_constraintTop_toTopOf="parent" /> @@ -145,7 +145,7 @@ android:layout_height="wrap_content" android:layout_marginStart="8dp" android:layout_marginTop="18dp" - android:text="@string/post_count_detail" + android:text="@plurals/post_count_detail" app:layout_constraintStart_toEndOf="@+id/post_count_image_view_view_subreddit_detail_activity" app:layout_constraintTop_toBottomOf="@+id/subscriber_count_image_view_view_subreddit_detail_activity" /> @@ -165,7 +165,7 @@ android:layout_height="wrap_content" android:layout_marginStart="8dp" android:layout_marginTop="18dp" - android:text="@string/comment_count_detail" + android:text="@plurals/comment_count_detail" app:layout_constraintStart_toEndOf="@+id/comment_count_image_view_view_subreddit_detail_activity" app:layout_constraintTop_toBottomOf="@+id/active_user_count_image_view_view_subreddit_detail_activity" /> diff --git a/app/src/main/res/layout/fragment_sidebar.xml b/app/src/main/res/layout/fragment_sidebar.xml index a896db18..85f709c7 100644 --- a/app/src/main/res/layout/fragment_sidebar.xml +++ b/app/src/main/res/layout/fragment_sidebar.xml @@ -110,7 +110,7 @@ android:layout_height="wrap_content" android:layout_marginStart="8dp" android:layout_marginTop="10dp" - android:text="@string/subscribers_number_detail" + android:text="@plurals/subscribers_number_detail" app:layout_constraintStart_toEndOf="@+id/subscriber_count_image_view_sidebar_fragment" app:layout_constraintTop_toTopOf="parent" /> @@ -137,7 +137,7 @@ android:layout_height="wrap_content" android:layout_marginStart="8dp" android:layout_marginTop="10dp" - android:text="@string/active_users_number_detail" + android:text="@plurals/active_users_number_detail" app:layout_constraintStart_toEndOf="@+id/active_user_count_image_view_sidebar_fragment" app:layout_constraintTop_toTopOf="parent" /> @@ -157,7 +157,7 @@ android:layout_height="wrap_content" android:layout_marginStart="8dp" android:layout_marginTop="18dp" - android:text="@string/post_count_detail" + android:text="@plurals/post_count_detail" app:layout_constraintStart_toEndOf="@+id/post_count_image_view_sidebar_fragment" app:layout_constraintTop_toBottomOf="@+id/subscriber_count_image_view_sidebar_fragment" /> @@ -177,7 +177,7 @@ android:layout_height="wrap_content" android:layout_marginStart="8dp" android:layout_marginTop="18dp" - android:text="@string/comment_count_detail" + android:text="@plurals/comment_count_detail" app:layout_constraintStart_toEndOf="@+id/comment_count_image_view_sidebar_fragment" app:layout_constraintTop_toBottomOf="@+id/active_user_count_image_view_sidebar_fragment" /> diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 5deeb4d3..4552561d 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -146,12 +146,30 @@ Saved Gilded Settings - %1$,d Subscribers - %1$,d Active Users - %1$,d Posts - %1$,d Comments - %1$,d Users - %1$,d Communities + + %1$,d Subscriber + %1$,d Subscribers + + + %1$,d Active User + %1$,d Active Users + + + %1$,d Post + %1$,d Posts + + + %1$,d Comment + %1$,d Comments + + + %1$,d User + %1$,d Users + + + %1$,d Community + %1$,d Communities + Online: %1$,d Cannot fetch community info Cannot fetch user info