Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -24,13 +24,13 @@ import ooniprobe.composeapp.generated.resources.Test_InstantMessaging_Fullname
import ooniprobe.composeapp.generated.resources.Test_Performance_Fullname
import ooniprobe.composeapp.generated.resources.Test_Psiphon_Fullname
import ooniprobe.composeapp.generated.resources.Test_Signal_Fullname
import org.jetbrains.compose.resources.getPluralString
import org.junit.Before
import org.junit.Ignore
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
import org.ooni.probe.data.models.SettingsKey
import org.ooni.probe.shared.getPluralStringResourceItem
import org.ooni.probe.uitesting.helpers.checkSummaryInsideWebView
import org.ooni.probe.uitesting.helpers.checkTextAnywhereInsideWebView
import org.ooni.probe.uitesting.helpers.clickOnText
Expand Down Expand Up @@ -165,7 +165,7 @@ class RunningTestsTest {

private suspend fun ComposeTestRule.clickOnRunButton(quantity: Int) {
clickOnText(
getPluralStringResourceItem(
getPluralString(
Res.plurals.Dashboard_RunTests_RunButton_Label,
quantity,
quantity,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,10 @@
<string name="Dashboard_RunTests_Description">Select the tests to run</string>
<string name="Dashboard_RunTests_SelectAll">Select all tests</string>
<string name="Dashboard_RunTests_SelectNone">Deselect all tests</string>
<string name="Dashboard_RunTests_RunButton_Label_One">Run %1$d test</string>
<string name="Dashboard_RunTests_RunButton_Label_Other">Run %1$d tests</string>
<plurals name="Dashboard_RunTests_RunButton_Label">
<item quantity="one">Run %1$d test</item>
<item quantity="other">Run %1$d tests</item>
</plurals>

<string name="Dashboard_RunV2_Ooni_Title">OONI Tests</string>
<string name="Dashboard_RunV2_Title">OONI Run Links</string>
Expand Down Expand Up @@ -72,10 +74,14 @@
<string name="TestResults_Overview_Hero_Tests">Tests</string>
<string name="TestResults_Overview_Hero_Networks">Networks</string>
<string name="TestResults_Overview_Hero_DataUsage">Data Usage</string>
<string name="TestResults_Overview_Websites_Blocked_Singular">%1$s blocked</string>
<string name="TestResults_Overview_Websites_Blocked_Plural">%1$s blocked</string>
<string name="TestResults_Overview_Websites_Tested_Singular">%1$s tested</string>
<string name="TestResults_Overview_Websites_Tested_Plural">%1$s tested</string>
<plurals name="TestResults_Overview_Websites_Blocked">
<item quantity="one">%1$s blocked</item>
<item quantity="other">%1$s blocked</item>
</plurals>
<plurals name="TestResults_Overview_Websites_Tested" translatable="false">
<item quantity="one">%1$s tested</item>
<item quantity="other">%1$s tested</item>
</plurals>
<string name="TestResults_Overview_NoTestsHaveBeenRun">No tests have been run yet. Try running one!</string>
<string name="TestResults_Summary_Hero_DateAndTime">Date &amp; Time</string>
<string name="TestResults_Summary_Hero_Network">Network</string>
Expand All @@ -87,12 +93,18 @@
<string name="TestResults_Summary_Hero_Ethernet">Ethernet</string>
<string name="TestResults_Summary_Hero_Usb">USB</string>
<string name="TestResults_Summary_Hero_NoInternet">No internet</string>
<string name="TestResults_Summary_Websites_Hero_Tested_Singular">Tested</string>
<string name="TestResults_Summary_Websites_Hero_Tested_Plural">Tested</string>
<string name="TestResults_Summary_Websites_Hero_Blocked_Singular">Blocked</string>
<string name="TestResults_Summary_Websites_Hero_Blocked_Plural">Blocked</string>
<string name="TestResults_Summary_Websites_Hero_Reachable_Singular">Accessible</string>
<string name="TestResults_Summary_Websites_Hero_Reachable_Plural">Accessible</string>
<plurals name="TestResults_Summary_Websites_Hero_Tested" translatable="false">
<item quantity="one">Tested</item>
<item quantity="other">Tested</item>
</plurals>
<plurals name="TestResults_Summary_Websites_Hero_Blocked" translatable="false">
<item quantity="one">Blocked</item>
<item quantity="other">Blocked</item>
</plurals>
<plurals name="TestResults_Summary_Websites_Hero_Reachable" translatable="false">
<item quantity="one">Accessible</item>
<item quantity="other">Accessible</item>
</plurals>
<string name="TestResults_Summary_Performance_Hero_Upload">Upload</string>
<string name="TestResults_Summary_Performance_Hero_Download">Download</string>
<string name="TestResults_Summary_Performance_Hero_Video">Video</string>
Expand Down Expand Up @@ -136,10 +148,14 @@
<string name="Measurements_Failed">Failed</string>
<string name="Measurements_Ok">OK</string>
<string name="Measurements_Anomaly">Anomaly</string>
<string name="Measurements_Count_One">%1$d measured</string>
<string name="Measurements_Count_Other">%1$d measured</string>
<string name="Measurements_Failed_One">%1$d failed</string>
<string name="Measurements_Failed_Other">%1$d failed</string>
<plurals name="Measurements_Count" translatable="false">
<item quantity="one">%1$d measured</item>
<item quantity="other">%1$d measured</item>
</plurals>
<plurals name="Measurements_Failed" translatable="false">
<item quantity="one">%1$d failed</item>
<item quantity="other">%1$d failed</item>
</plurals>
<string name="Measurement_Raw_NotUploadedReasoning">This measurement was not published on OONI Explorer. Upload it to view the analysis.</string>
<string name="Measurement_Raw_Share">Share measurement data</string>
<string name="Measurement_Raw_Upload">Upload</string>
Expand Down Expand Up @@ -332,10 +348,14 @@
<string name="Modal_Cancel">Cancel</string>
<string name="Modal_OK">OK</string>
<string name="Modal_DoYouWantToDeleteAllTests">Do you want to delete all test results?</string>
<string name="Modal_DoYouWantToDeleteSomeTests">Do you want to delete %1$s test result(s)?</string>
<string name="Modal_Selected_Zero">No item selected</string>
<string name="Modal_Selected_One">%1$d item selected</string>
<string name="Modal_Selected_Other">%1$d items selected</string>
<plurals name="Modal_DoYouWantToDeleteSomeTests">
<item quantity="one">Do you want to delete %1$s test result?</item>
<item quantity="other">Do you want to delete %1$s test results?</item>
</plurals>
<plurals name="Modal_Selected">
<item quantity="one">%1$d item selected</item>
<item quantity="other">%1$d items selected</item>
</plurals>
<string name="Modal_Delete">Delete</string>
<string name="Modal_ReRun_Title">Re-run test</string>
<string name="Modal_ReRun_Websites_Title">You are about to re-test %1$s websites.</string>
Expand Down Expand Up @@ -373,11 +393,16 @@
<string name="Common_Yes">Yes</string>
<string name="Common_Save">Save</string>
<string name="Common_Clear">Clear</string>

<string name="Common_Ago">%1$s ago</string>
<string name="Common_Minutes_One">%1$d minute</string>
<string name="Common_Minutes_Other">%1$d minutes</string>
<string name="Common_Hour_One">%1$d hour</string>
<string name="Common_Hour_Other">%1$d hours</string>
<plurals name="Common_Minutes">
<item quantity="one">%1$d minute</item>
<item quantity="other">%1$d minutes</item>
</plurals>
<plurals name="Common_Hours">
<item quantity="one">%1$d hour</item>
<item quantity="other">%1$d hours</item>
</plurals>
<string name="Common_Hours_Abbreviated">%1$dh</string>
<string name="Common_Minutes_Abbreviated">%1$dm</string>
<string name="Common_Seconds_Abbreviated">%1$ds</string>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<resources>
<string name="shareEmailTo" translatable="false">bugs@openobservatory.org</string>
<string name="shareSubject" translatable="false">[bug-report] OONI Probe %1$s</string>
<string name="version" translatable="false">%1$s: %2$s</string>

<string name="r240p" translatable="false">240p</string>
<string name="r360p" translatable="false">360p</string>
<string name="r480p" translatable="false">480p</string>
<string name="r720p" translatable="false">720p</string>
<string name="r720p_ext" translatable="false">720p (HD)</string>
<string name="r1080p" translatable="false">1080p</string>
<string name="r1080p_ext" translatable="false">1080p (full HD)</string>
<string name="r1440p" translatable="false">1440p</string>
<string name="r1440p_ext" translatable="false">1440p (2k)</string>
<string name="r2160p" translatable="false">2160p</string>
<string name="r2160p_ext" translatable="false">2160p (4k)</string>

<string name="twoParam" translatable="false">%1$s %2$s</string>
</resources>

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,10 +1,6 @@
package org.ooni.probe.shared

import androidx.compose.runtime.Composable
import ooniprobe.composeapp.generated.resources.Common_Hour_One
import ooniprobe.composeapp.generated.resources.Common_Hour_Other
import ooniprobe.composeapp.generated.resources.Common_Minutes_One
import ooniprobe.composeapp.generated.resources.Common_Minutes_Other
import ooniprobe.composeapp.generated.resources.Common_Months_April
import ooniprobe.composeapp.generated.resources.Common_Months_August
import ooniprobe.composeapp.generated.resources.Common_Months_December
Expand All @@ -17,30 +13,7 @@ import ooniprobe.composeapp.generated.resources.Common_Months_May
import ooniprobe.composeapp.generated.resources.Common_Months_November
import ooniprobe.composeapp.generated.resources.Common_Months_October
import ooniprobe.composeapp.generated.resources.Common_Months_September
import ooniprobe.composeapp.generated.resources.Dashboard_RunTests_RunButton_Label_One
import ooniprobe.composeapp.generated.resources.Dashboard_RunTests_RunButton_Label_Other
import ooniprobe.composeapp.generated.resources.Measurements_Count_One
import ooniprobe.composeapp.generated.resources.Measurements_Count_Other
import ooniprobe.composeapp.generated.resources.Measurements_Failed_One
import ooniprobe.composeapp.generated.resources.Measurements_Failed_Other
import ooniprobe.composeapp.generated.resources.Modal_Selected_One
import ooniprobe.composeapp.generated.resources.Modal_Selected_Other
import ooniprobe.composeapp.generated.resources.Modal_Selected_Zero
import ooniprobe.composeapp.generated.resources.Res
import ooniprobe.composeapp.generated.resources.TestResults_Overview_Websites_Blocked_Plural
import ooniprobe.composeapp.generated.resources.TestResults_Overview_Websites_Blocked_Singular
import ooniprobe.composeapp.generated.resources.TestResults_Overview_Websites_Tested_Plural
import ooniprobe.composeapp.generated.resources.TestResults_Overview_Websites_Tested_Singular
import ooniprobe.composeapp.generated.resources.TestResults_Summary_Websites_Hero_Blocked_Plural
import ooniprobe.composeapp.generated.resources.TestResults_Summary_Websites_Hero_Blocked_Singular
import ooniprobe.composeapp.generated.resources.TestResults_Summary_Websites_Hero_Reachable_Plural
import ooniprobe.composeapp.generated.resources.TestResults_Summary_Websites_Hero_Reachable_Singular
import ooniprobe.composeapp.generated.resources.TestResults_Summary_Websites_Hero_Tested_Plural
import ooniprobe.composeapp.generated.resources.TestResults_Summary_Websites_Hero_Tested_Singular
import org.jetbrains.compose.resources.PluralStringResource
import org.jetbrains.compose.resources.getPluralString
import org.jetbrains.compose.resources.getString
import org.jetbrains.compose.resources.pluralStringResource
import org.jetbrains.compose.resources.stringResource

@Composable
Expand All @@ -59,75 +32,3 @@ fun stringMonthArrayResource(): List<String> =
Res.string.Common_Months_November,
Res.string.Common_Months_December,
).map { stringResource(it) }

@Composable
fun pluralStringResourceItem(
resource: PluralStringResource,
quantity: Int,
vararg formatArgs: Any,
): String {
return stringMap[pluralStringResource(resource, quantity, formatArgs)]?.let {
return stringResource(it, *formatArgs)
} ?: ""
}

suspend fun getPluralStringResourceItem(
resource: PluralStringResource,
quantity: Int,
vararg formatArgs: Any,
): String {
return stringMap[getPluralString(resource, quantity, formatArgs)]?.let {
return getString(it, *formatArgs)
} ?: ""
}

private val stringMap = mapOf(
"@string/Common_Minutes_One"
to Res.string.Common_Minutes_One,
"@string/Common_Minutes_Other"
to Res.string.Common_Minutes_Other,
"@string/Common_Hour_One"
to Res.string.Common_Hour_One,
"@string/Common_Hour_Other"
to Res.string.Common_Hour_Other,
"@string/Dashboard_RunTests_RunButton_Label_One"
to Res.string.Dashboard_RunTests_RunButton_Label_One,
"@string/Dashboard_RunTests_RunButton_Label_Other"
to Res.string.Dashboard_RunTests_RunButton_Label_Other,
"@string/Measurements_Count_One"
to Res.string.Measurements_Count_One,
"@string/Measurements_Count_Other"
to Res.string.Measurements_Count_Other,
"@string/Measurements_Failed_One"
to Res.string.Measurements_Failed_One,
"@string/Measurements_Failed_Other"
to Res.string.Measurements_Failed_Other,
"@string/TestResults_Overview_Websites_Blocked_Singular"
to Res.string.TestResults_Overview_Websites_Blocked_Singular,
"@string/TestResults_Overview_Websites_Blocked_Plural"
to Res.string.TestResults_Overview_Websites_Blocked_Plural,
"@string/TestResults_Overview_Websites_Tested_Singular"
to Res.string.TestResults_Overview_Websites_Tested_Singular,
"@string/TestResults_Overview_Websites_Tested_Plural"
to Res.string.TestResults_Overview_Websites_Tested_Plural,
"@string/TestResults_Summary_Websites_Hero_Tested_Singular"
to Res.string.TestResults_Summary_Websites_Hero_Tested_Singular,
"@string/TestResults_Summary_Websites_Hero_Tested_Plural"
to Res.string.TestResults_Summary_Websites_Hero_Tested_Plural,
"@string/TestResults_Summary_Websites_Hero_Tested_Plural"
to Res.string.TestResults_Summary_Websites_Hero_Tested_Plural,
"@string/TestResults_Summary_Websites_Hero_Blocked_Singular"
to Res.string.TestResults_Summary_Websites_Hero_Blocked_Singular,
"@string/TestResults_Summary_Websites_Hero_Blocked_Plural"
to Res.string.TestResults_Summary_Websites_Hero_Blocked_Plural,
"@string/TestResults_Summary_Websites_Hero_Reachable_Singular"
to Res.string.TestResults_Summary_Websites_Hero_Reachable_Singular,
"@string/TestResults_Summary_Websites_Hero_Reachable_Plural"
to Res.string.TestResults_Summary_Websites_Hero_Reachable_Plural,
"@string/Modal_Selected_Zero"
to Res.string.Modal_Selected_Zero,
"@string/Modal_Selected_One"
to Res.string.Modal_Selected_One,
"@string/Modal_Selected_Other"
to Res.string.Modal_Selected_Other,
)
Loading
Loading