added a setting to show dislikes as a percentage (closes #44)

This commit is contained in:
polymorphicshade 2024-04-07 16:46:37 -06:00
parent dee69e4ae8
commit 9ec4d8e1fe
5 changed files with 32 additions and 2 deletions

View file

@ -1619,8 +1619,23 @@ public final class VideoDetailFragment
// RYD override: dislikes
if (rydInfo != null && isRydEnabled) {
binding.detailThumbsDownCountView.setText(Localization
.shortCount(activity, rydInfo.dislikes));
final boolean showAsPercentage = prefs.getBoolean(
activity.getString(
R.string.return_youtube_dislike_show_dislikes_as_percentage_key),
false);
final String dislikeText;
if (showAsPercentage) {
final double percentage =
(double) rydInfo.dislikes / (rydInfo.likes + rydInfo.dislikes) * 100.0;
dislikeText = Localization.localizePercentage(percentage);
} else {
dislikeText = Localization.shortCount(activity, rydInfo.dislikes);
}
binding.detailThumbsDownCountView.setText(dislikeText);
binding.detailThumbsDownCountView.setVisibility(View.VISIBLE);
binding.detailThumbsDownImgView.setVisibility(View.VISIBLE);
}

View file

@ -165,6 +165,10 @@ public final class Localization {
localizeNumber(context, watchingCount));
}
public static String localizePercentage(final double number) {
return String.format(Locale.US, "%.0f%%", number);
}
public static String shortCount(@NonNull final Context context, final long count) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
return CompactDecimalFormat.getInstance(getAppLocale(context),

View file

@ -1525,4 +1525,5 @@
<string name="return_youtube_dislike_api_url_key" translatable="false">return_youtube_dislike_api_url</string>
<string name="return_youtube_dislike_override_like_count_key" translatable="false">return_youtube_dislike_override_like_count</string>
<string name="return_youtube_dislike_override_view_count_key" translatable="false">return_youtube_dislike_override_view_count</string>
<string name="return_youtube_dislike_show_dislikes_as_percentage_key" translatable="false">return_youtube_dislike_show_dislikes_as_percentage</string>
</resources>

View file

@ -971,6 +971,8 @@
<string name="return_youtube_dislike_override_like_count_summary">Use the like count reported by the ReturnYouTubeDislike API instead of YouTube\'s.</string>
<string name="return_youtube_dislike_override_view_count_title">Override View Count</string>
<string name="return_youtube_dislike_override_view_count_summary">Use the view count reported by the ReturnYouTubeDislike API instead of YouTube\'s.</string>
<string name="return_youtube_dislike_show_dislikes_as_percentage_title">Show Dislikes as a percentage</string>
<string name="return_youtube_dislike_show_dislikes_as_percentage_summary">Display dislike count as a percentage instead of a number.</string>
<string name="return_youtube_dislike_privacy_policy_text">ReturnYouTubeDislike Security FAQ</string>
<string name="return_youtube_dislike_home_page_url">https://returnyoutubedislike.com/</string>
<string name="return_youtube_dislike_security_faq_url">https://www.returnyoutubedislike.com/faq/</string>

View file

@ -48,6 +48,14 @@
android:summary="@string/return_youtube_dislike_override_view_count_summary"
android:title="@string/return_youtube_dislike_override_view_count_title"/>
<SwitchPreference
app:iconSpaceReserved="false"
android:dependency="@string/return_youtube_dislike_enable_key"
android:defaultValue="false"
android:key="@string/return_youtube_dislike_show_dislikes_as_percentage_key"
android:summary="@string/return_youtube_dislike_show_dislikes_as_percentage_summary"
android:title="@string/return_youtube_dislike_show_dislikes_as_percentage_title"/>
</PreferenceCategory>
</PreferenceScreen>