[ToA] Move IO to background thread
Bug: 295826542
Bug: 312324895
Test: atest TermsOfAddressNotSpecifiedControllerTest, atest
TermsOfAddressNeutralControllerTest, atest
TermsOfAddressMasculineControllerTest, atest TermsOfAddressFeminineControllerTest
Change-Id: I45808815401f2caa24ffc03d634a4b2c90dfd55e
diff --git a/src/com/android/settings/localepicker/TermsOfAddressBaseController.java b/src/com/android/settings/localepicker/TermsOfAddressBaseController.java
index 34c502f..d9962de 100644
--- a/src/com/android/settings/localepicker/TermsOfAddressBaseController.java
+++ b/src/com/android/settings/localepicker/TermsOfAddressBaseController.java
@@ -26,8 +26,12 @@
import com.android.settings.widget.TickButtonPreference;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
+import java.util.concurrent.Executor;
+import java.util.concurrent.Executors;
+
public abstract class TermsOfAddressBaseController extends BasePreferenceController {
+ private static final Executor sExecutor = Executors.newSingleThreadExecutor();
private PreferenceScreen mPreferenceScreen;
private MetricsFeatureProvider mMetricsFeatureProvider;
private TickButtonPreference mPreference;
@@ -46,8 +50,11 @@
mPreferenceScreen = screen;
mPreference = screen.findPreference(getPreferenceKey());
mPreference.setOnPreferenceClickListener(clickedPref -> {
- mGrammaticalInflectionManager.setSystemWideGrammaticalGender(
- getGrammaticalGenderType());
+ sExecutor.execute(
+ () -> {
+ mGrammaticalInflectionManager.setSystemWideGrammaticalGender(
+ getGrammaticalGenderType());
+ });
setSelected(mPreference);
mMetricsFeatureProvider.action(mContext, getMetricsActionKey());
return true;