GitLab is used only for code review, issue tracking and project management. Canonical locations for source code are still https://gitweb.torproject.org/ https://git.torproject.org/ and git-rw.torproject.org.

Unverified Commit 0c537f77 authored by Georg Koppen's avatar Georg Koppen
Browse files

Bug 40083: Make locale ordering in BuildConfig deterministic

parent 58c7c6e4
Pipeline #1330 failed with stages
in 10 minutes and 35 seconds
...@@ -585,16 +585,22 @@ task buildTranslationArray { ...@@ -585,16 +585,22 @@ task buildTranslationArray {
// This isn't running as a task, instead the array is build when the gradle file is parsed. // This isn't running as a task, instead the array is build when the gradle file is parsed.
// https://github.com/mozilla-mobile/fenix/issues/14175 // https://github.com/mozilla-mobile/fenix/issues/14175
def foundLocales = new StringBuilder() def foundLocales = new StringBuilder()
def languageCodes = []
foundLocales.append("new String[]{") foundLocales.append("new String[]{")
fileTree("src/main/res").visit { FileVisitDetails details -> fileTree("src/main/res").visit { FileVisitDetails details ->
if(details.file.path.endsWith("/strings.xml")){ if(details.file.path.endsWith("/strings.xml")){
def languageCode = details.file.parent.tokenize('/').last().replaceAll('values-','').replaceAll('-r','-') def languageCode = details.file.parent.tokenize('/').last().replaceAll('values-','').replaceAll('-r','-')
languageCode = (languageCode == "values") ? "en-US" : languageCode languageCode = (languageCode == "values") ? "en-US" : languageCode
foundLocales.append("\"").append(languageCode).append("\"").append(",") languageCodes.add(languageCode)
} }
} }
// The order of files in a `FileTree` is not stable, even on a single
// computer. Thus we need to sort the `languageCode`s. See: fenix#40083.
languageCodes.sort()
languageCodes.each {
foundLocales.append("\"").append(it).append("\"").append(",")
}
foundLocales.append("}") foundLocales.append("}")
def foundLocalesString = foundLocales.toString().replaceAll(',}','}') def foundLocalesString = foundLocales.toString().replaceAll(',}','}')
android.defaultConfig.buildConfigField "String[]", "SUPPORTED_LOCALE_ARRAY", foundLocalesString android.defaultConfig.buildConfigField "String[]", "SUPPORTED_LOCALE_ARRAY", foundLocalesString
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment