diff --git a/app/build.gradle b/app/build.gradle index 859b2be9bd5..b5b13a93e61 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,3 +1,7 @@ +import com.android.tools.profgen.ArtProfileKt +import com.android.tools.profgen.ArtProfileSerializer +import com.android.tools.profgen.DexFile + plugins { id 'com.android.application' id 'com.google.gms.google-services' @@ -50,9 +54,9 @@ android { targetSdkVersion 33 // current: targetSdkVersion 31 // TODO: update versionName with each release - versionName "3.9" + versionName "4.0" // TODO: update versionCode with each PR - versionCode 100390 + versionCode 100400 testApplicationId 'org.greatfire.wikiunblocked.test' testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunnerArguments clearPackageData: 'true' @@ -177,7 +181,7 @@ android { fdroid { applicationId 'org.greatfire.wikiunblocked.fdroid' // static string for fdroid repo - versionName '3.9-fdroid' + versionName '4.0-fdroid' // TODO: see above re: signing code // signingConfig signingConfigs.prod } @@ -353,9 +357,34 @@ dependencies { // implementation files('libs/envoy-debug.aar') // implementation files('libs/IEnvoyProxy.aar') // use maven dependencies to support automation - implementation 'org.greatfire.envoy:cronet:102.0.5005.41' - implementation 'org.greatfire:envoy:102.0.5005.41.7' - implementation 'org.greatfire:IEnvoyProxy:1.2.1' + implementation 'org.greatfire.envoy:cronet:102.0.5005.195' + implementation 'org.greatfire:envoy:102.0.5005.195' + implementation 'org.greatfire:IEnvoyProxy:1.3.1' +} + +project.afterEvaluate { + tasks.each { task -> + if (task.name.startsWith("compile") && task.name.endsWith("ReleaseArtProfile")) { + task.doLast { + outputs.files.each { file -> + if (file.name.endsWith(".profm")) { + println("Sorting ${file} ...") + def version = ArtProfileSerializer.valueOf("METADATA_0_0_2") + def profile = ArtProfileKt.ArtProfile(file) + def keys = new ArrayList(profile.profileData.keySet()) + def sortedData = new LinkedHashMap() + Collections.sort keys, new DexFile.Companion() + keys.each { key -> sortedData[key] = profile.profileData[key] } + new FileOutputStream(file).with { + write(version.magicBytes$profgen) + write(version.versionBytes$profgen) + version.write$profgen(it, sortedData, "") + } + } + } + } + } + } } /* TODO: see above re: signing code diff --git a/app/src/fdroid/java/org/wikipedia/settings/Prefs.kt b/app/src/fdroid/java/org/wikipedia/settings/Prefs.kt index 4ef439e681d..d109b9a0e39 100644 --- a/app/src/fdroid/java/org/wikipedia/settings/Prefs.kt +++ b/app/src/fdroid/java/org/wikipedia/settings/Prefs.kt @@ -676,4 +676,14 @@ object Prefs { var readingListRecentReceivedId get() = PrefsIoUtil.getLong(R.string.preference_key_reading_lists_recent_receive_id, -1) set(value) = PrefsIoUtil.setLong(R.string.preference_key_reading_lists_recent_receive_id, value) + + var validServices + get() = JsonUtil.decodeFromString>(PrefsIoUtil.getString(R.string.preference_key_valid_services, null)) + ?: emptyList() + set(list) = PrefsIoUtil.setString(R.string.preference_key_valid_services, JsonUtil.encodeToString(list)) + + var invalidServices + get() = JsonUtil.decodeFromString>(PrefsIoUtil.getString(R.string.preference_key_invalid_services, null)) + ?: emptyList() + set(list) = PrefsIoUtil.setString(R.string.preference_key_invalid_services, JsonUtil.encodeToString(list)) } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a0370d22f4c..dddf423ab69 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -407,12 +407,6 @@ - - (), MainFragment.Callba private val validServices = mutableListOf() private val invalidServices = mutableListOf() - // this receiver should be triggered by a success or failure broadcast from either the - // NetworkIntentService (indicating whether submitted urls were valid or invalid) or the - // ShadowsocksService (indicating whether the service was successfully started or not + // this receiver should be triggered by a success or failure broadcast from the + // NetworkIntentService (indicating whether submitted urls were valid or invalid) private val mBroadcastReceiver: BroadcastReceiver = object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { if (intent != null && context != null) {