[ToA] Move IO to background thread

Bug: 295826542
Bug: 312324895
Test: atest TermsOfAddressNotSpecifiedControllerTest, atest
TermsOfAddressNeutralControllerTest, atest
TermsOfAddressMasculineControllerTest, atest TermsOfAddressFeminineControllerTest

Change-Id: I45808815401f2caa24ffc03d634a4b2c90dfd55e
This commit is contained in:
Allen Su
2024-03-15 06:41:47 +00:00
parent e5ba5da9e2
commit bb62c74bda

View File

@@ -26,8 +26,12 @@ import com.android.settings.overlay.FeatureFactory;
import com.android.settings.widget.TickButtonPreference; import com.android.settings.widget.TickButtonPreference;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider; import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import java.util.concurrent.Executor;
import java.util.concurrent.Executors;
public abstract class TermsOfAddressBaseController extends BasePreferenceController { public abstract class TermsOfAddressBaseController extends BasePreferenceController {
private static final Executor sExecutor = Executors.newSingleThreadExecutor();
private PreferenceScreen mPreferenceScreen; private PreferenceScreen mPreferenceScreen;
private MetricsFeatureProvider mMetricsFeatureProvider; private MetricsFeatureProvider mMetricsFeatureProvider;
private TickButtonPreference mPreference; private TickButtonPreference mPreference;
@@ -46,8 +50,11 @@ public abstract class TermsOfAddressBaseController extends BasePreferenceControl
mPreferenceScreen = screen; mPreferenceScreen = screen;
mPreference = screen.findPreference(getPreferenceKey()); mPreference = screen.findPreference(getPreferenceKey());
mPreference.setOnPreferenceClickListener(clickedPref -> { mPreference.setOnPreferenceClickListener(clickedPref -> {
sExecutor.execute(
() -> {
mGrammaticalInflectionManager.setSystemWideGrammaticalGender( mGrammaticalInflectionManager.setSystemWideGrammaticalGender(
getGrammaticalGenderType()); getGrammaticalGenderType());
});
setSelected(mPreference); setSelected(mPreference);
mMetricsFeatureProvider.action(mContext, getMetricsActionKey()); mMetricsFeatureProvider.action(mContext, getMetricsActionKey());
return true; return true;