Switch to use ThreadUtils.postOnMainThread

Change-Id: I344d25a1a667de9c0b23d6d528d905b4da3a4c40
Fixes: 63896139
Test: rerun tests
This commit is contained in:
Fan Zhang
2017-10-31 12:46:23 -07:00
parent f60c99af53
commit a7f135596d
10 changed files with 46 additions and 100 deletions

View File

@@ -23,18 +23,16 @@ import android.content.Context;
import android.content.SyncStatusObserver;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.os.Handler;
import android.os.UserHandle;
import android.os.UserManager;
import android.support.v7.preference.PreferenceScreen;
import android.text.format.DateFormat;
import android.util.Log;
import com.android.settings.SettingsPreferenceFragment;
import com.android.settings.Utils;
import com.android.settingslib.accounts.AuthenticatorHelper;
import com.android.settingslib.utils.ThreadUtils;
import java.util.ArrayList;
import java.util.Date;
abstract class AccountPreferenceBase extends SettingsPreferenceFragment
@@ -46,8 +44,6 @@ abstract class AccountPreferenceBase extends SettingsPreferenceFragment
public static final String AUTHORITIES_FILTER_KEY = "authorities";
public static final String ACCOUNT_TYPES_FILTER_KEY = "account_types";
private final Handler mHandler = new Handler();
private UserManager mUm;
private Object mStatusChangeListenerHandle;
protected AuthenticatorHelper mAuthenticatorHelper;
@@ -118,29 +114,8 @@ abstract class AccountPreferenceBase extends SettingsPreferenceFragment
ContentResolver.removeStatusChangeListener(mStatusChangeListenerHandle);
}
private SyncStatusObserver mSyncStatusObserver = new SyncStatusObserver() {
public void onStatusChanged(int which) {
mHandler.post(new Runnable() {
public void run() {
onSyncStateUpdated();
}
});
}
};
public ArrayList<String> getAuthoritiesForAccountType(String type) {
return mAuthenticatorHelper.getAuthoritiesForAccountType(type);
}
/**
* Gets the preferences.xml file associated with a particular account type.
* @param accountType the type of account
* @return a PreferenceScreen inflated from accountPreferenceId.
*/
public PreferenceScreen addPreferencesForType(final String accountType,
PreferenceScreen parent) {
return mAccountTypePreferenceLoader.addPreferencesForType(accountType, parent);
}
private SyncStatusObserver mSyncStatusObserver =
which -> ThreadUtils.postOnMainThread(() -> onSyncStateUpdated());
public void updateAuthDescriptions() {
mAuthenticatorHelper.updateAuthDescriptions(getActivity());

View File

@@ -21,7 +21,6 @@ import android.content.pm.ServiceInfo;
import android.content.res.Resources;
import android.os.Bundle;
import android.os.Debug;
import android.os.Handler;
import android.os.SystemClock;
import android.os.UserHandle;
import android.provider.Settings;
@@ -37,6 +36,7 @@ import com.android.settings.R;
import com.android.settings.Utils;
import com.android.settings.core.InstrumentedPreferenceFragment;
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
import com.android.settingslib.utils.ThreadUtils;
import java.io.File;
import java.io.FileInputStream;
@@ -481,15 +481,12 @@ public class RunningServiceDetails extends InstrumentedPreferenceFragment
addDetailViews();
}
}
private void finish() {
(new Handler()).post(new Runnable() {
@Override
public void run() {
Activity a = getActivity();
if (a != null) {
a.onBackPressed();
}
ThreadUtils.postOnMainThread(() -> {
final Activity a = getActivity();
if (a != null) {
a.onBackPressed();
}
});
}

View File

@@ -27,7 +27,6 @@ import android.content.pm.ResolveInfo;
import android.content.pm.ServiceInfo;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.provider.Settings;
import android.service.autofill.AutofillService;
import android.service.autofill.AutofillServiceInfo;
@@ -39,6 +38,7 @@ import android.util.Log;
import com.android.internal.content.PackageMonitor;
import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.R;
import com.android.settingslib.utils.ThreadUtils;
import java.util.ArrayList;
import java.util.List;
@@ -59,7 +59,6 @@ public class DefaultAutofillPicker extends DefaultAppPickerFragment {
* Set when the fragment is implementing ACTION_REQUEST_SET_AUTOFILL_SERVICE.
*/
private DialogInterface.OnClickListener mCancelListener;
private final Handler mHandler = new Handler();
@Override
public void onCreate(Bundle savedInstanceState) {
@@ -123,17 +122,17 @@ public class DefaultAutofillPicker extends DefaultAppPickerFragment {
private final PackageMonitor mSettingsPackageMonitor = new PackageMonitor() {
@Override
public void onPackageAdded(String packageName, int uid) {
mHandler.post(() -> update());
ThreadUtils.postOnMainThread(() -> update());
}
@Override
public void onPackageModified(String packageName) {
mHandler.post(() -> update());
ThreadUtils.postOnMainThread(() -> update());
}
@Override
public void onPackageRemoved(String packageName, int uid) {
mHandler.post(() -> update());
ThreadUtils.postOnMainThread(() -> update());
}
};

View File

@@ -35,6 +35,7 @@ import com.android.settings.SettingsActivity;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.drawer.DashboardCategory;
import com.android.settingslib.drawer.Tile;
import com.android.settingslib.utils.ThreadUtils;
import java.lang.reflect.Field;
import java.util.List;
@@ -52,7 +53,6 @@ public class SummaryLoader {
private final String mCategoryKey;
private final Worker mWorker;
private final Handler mHandler;
private final HandlerThread mWorkerThread;
private SummaryConsumer mSummaryConsumer;
@@ -64,7 +64,6 @@ public class SummaryLoader {
mDashboardFeatureProvider = FeatureFactory.getFactory(activity)
.getDashboardFeatureProvider(activity);
mCategoryKey = null;
mHandler = new Handler();
mWorkerThread = new HandlerThread("SummaryLoader", Process.THREAD_PRIORITY_BACKGROUND);
mWorkerThread.start();
mWorker = new Worker(mWorkerThread.getLooper());
@@ -82,7 +81,6 @@ public class SummaryLoader {
mDashboardFeatureProvider = FeatureFactory.getFactory(activity)
.getDashboardFeatureProvider(activity);
mCategoryKey = categoryKey;
mHandler = new Handler();
mWorkerThread = new HandlerThread("SummaryLoader", Process.THREAD_PRIORITY_BACKGROUND);
mWorkerThread.start();
mWorker = new Worker(mWorkerThread.getLooper());
@@ -112,25 +110,22 @@ public class SummaryLoader {
public void setSummary(SummaryProvider provider, final CharSequence summary) {
final ComponentName component = mSummaryProviderMap.get(provider);
mHandler.post(new Runnable() {
@Override
public void run() {
ThreadUtils.postOnMainThread(() -> {
final Tile tile = getTileFromCategory(
mDashboardFeatureProvider.getTilesForCategory(mCategoryKey), component);
final Tile tile = getTileFromCategory(
mDashboardFeatureProvider.getTilesForCategory(mCategoryKey), component);
if (tile == null) {
if (DEBUG) {
Log.d(TAG, "Can't find tile for " + component);
}
return;
}
if (tile == null) {
if (DEBUG) {
Log.d(TAG, "setSummary " + tile.title + " - " + summary);
Log.d(TAG, "Can't find tile for " + component);
}
updateSummaryIfNeeded(tile, summary);
return;
}
if (DEBUG) {
Log.d(TAG, "setSummary " + tile.title + " - " + summary);
}
updateSummaryIfNeeded(tile, summary);
});
}

View File

@@ -27,8 +27,6 @@ import android.net.NetworkCapabilities;
import android.net.NetworkInfo;
import android.net.NetworkRequest;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
@@ -40,6 +38,7 @@ import com.android.settings.R;
import com.android.settings.core.InstrumentedFragment;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.overlay.SupportFeatureProvider;
import com.android.settingslib.utils.ThreadUtils;
/**
* Fragment for support tab in SettingsGoogle.
@@ -47,7 +46,6 @@ import com.android.settings.overlay.SupportFeatureProvider;
public final class SupportFragment extends InstrumentedFragment implements View.OnClickListener,
OnAccountsUpdateListener {
private final Handler mHandler = new Handler(Looper.getMainLooper());
private final ConnectivityManager.NetworkCallback mNetworkCallback =
new ConnectivityManager.NetworkCallback() {
@@ -152,12 +150,9 @@ public final class SupportFragment extends InstrumentedFragment implements View.
}
private void postConnectivityChanged() {
mHandler.post(new Runnable() {
@Override
public void run() {
if (mSupportItemAdapter != null) {
mSupportItemAdapter.setHasInternet(hasInternet());
}
ThreadUtils.postOnMainThread(() -> {
if (mSupportItemAdapter != null) {
mSupportItemAdapter.setHasInternet(hasInternet());
}
});
}

View File

@@ -14,24 +14,23 @@
package com.android.settings.datausage;
import static android.net.NetworkPolicyManager.POLICY_ALLOW_METERED_BACKGROUND;
import static android.net.NetworkPolicyManager.POLICY_NONE;
import static android.net.NetworkPolicyManager.POLICY_REJECT_METERED_BACKGROUND;
import android.content.Context;
import android.net.INetworkPolicyListener;
import android.net.NetworkPolicyManager;
import android.os.Handler;
import android.os.Looper;
import android.os.RemoteException;
import android.util.SparseIntArray;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.core.instrumentation.MetricsFeatureProvider;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.utils.ThreadUtils;
import java.util.ArrayList;
import static android.net.NetworkPolicyManager.POLICY_ALLOW_METERED_BACKGROUND;
import static android.net.NetworkPolicyManager.POLICY_NONE;
import static android.net.NetworkPolicyManager.POLICY_REJECT_METERED_BACKGROUND;
public class DataSaverBackend {
private static final String TAG = "DataSaverBackend";
@@ -39,7 +38,6 @@ public class DataSaverBackend {
private final Context mContext;
private final MetricsFeatureProvider mMetricsFeatureProvider;
private final Handler mHandler = new Handler(Looper.getMainLooper());
private final NetworkPolicyManager mPolicyManager;
private final ArrayList<Listener> mListeners = new ArrayList<>();
private SparseIntArray mUidPolicies = new SparseIntArray();
@@ -195,7 +193,7 @@ public class DataSaverBackend {
@Override
public void onUidPoliciesChanged(final int uid, final int uidPolicies) {
mHandler.post(() -> handleUidPoliciesChanged(uid, uidPolicies));
ThreadUtils.postOnMainThread(() -> handleUidPoliciesChanged(uid, uidPolicies));
}
@Override
@@ -204,7 +202,7 @@ public class DataSaverBackend {
@Override
public void onRestrictBackgroundChanged(final boolean isDataSaving) throws RemoteException {
mHandler.post(() -> handleRestrictBackgroundChanged(isDataSaving));
ThreadUtils.postOnMainThread(() -> handleRestrictBackgroundChanged(isDataSaving));
}
};

View File

@@ -20,7 +20,6 @@ import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.content.pm.UserInfo;
import android.os.Handler;
import android.os.UserHandle;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceCategory;
@@ -36,6 +35,7 @@ import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.users.UserFeatureProvider;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.utils.ThreadUtils;
import java.util.ArrayList;
import java.util.Collections;
@@ -100,7 +100,7 @@ public class EnterpriseSetDefaultAppsListPreferenceController extends
userMap.put(typeOfDefault, applicationInfos);
}
}
new Handler(mContext.getMainLooper()).post(() -> { updateUi(); });
ThreadUtils.postOnMainThread(() -> updateUi());
}
@Override

View File

@@ -23,8 +23,6 @@ import android.net.IConnectivityManager;
import android.net.Network;
import android.net.NetworkCapabilities;
import android.net.NetworkRequest;
import android.os.Handler;
import android.os.Looper;
import android.os.RemoteException;
import android.os.ServiceManager;
import android.os.UserHandle;
@@ -45,6 +43,7 @@ import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnPause;
import com.android.settingslib.core.lifecycle.events.OnResume;
import com.android.settingslib.utils.ThreadUtils;
import java.util.List;
@@ -157,7 +156,7 @@ public class VpnPreferenceController extends AbstractPreferenceController
} else {
summary = getNameForVpnConfig(vpn, UserHandle.of(uid));
}
new Handler(Looper.getMainLooper()).post(() -> mPreference.setSummary(summary));
ThreadUtils.postOnMainThread(() -> mPreference.setSummary(summary));
}
private String getNameForVpnConfig(VpnConfig cfg, UserHandle user) {

View File

@@ -61,6 +61,7 @@ import android.widget.TextView;
import com.android.settings.ProxySelector;
import com.android.settings.R;
import com.android.settingslib.Utils;
import com.android.settingslib.utils.ThreadUtils;
import com.android.settingslib.wifi.AccessPoint;
import java.net.Inet4Address;
@@ -116,8 +117,6 @@ public class WifiConfigController implements TextWatcher,
/* Full list of phase2 methods */
private final ArrayAdapter<String> mPhase2FullAdapter;
private final Handler mTextViewChangedHandler;
// e.g. AccessPoint.SECURITY_NONE
private int mAccessPointSecurity;
private TextView mPasswordView;
@@ -175,7 +174,6 @@ public class WifiConfigController implements TextWatcher,
accessPoint.getSecurity();
mMode = mode;
mTextViewChangedHandler = new Handler();
mContext = mConfigUi.getContext();
final Resources res = mContext.getResources();
@@ -1258,12 +1256,10 @@ public class WifiConfigController implements TextWatcher,
@Override
public void afterTextChanged(Editable s) {
mTextViewChangedHandler.post(new Runnable() {
public void run() {
showWarningMessagesIfAppropriate();
enableSubmitIfAppropriate();
}
});
ThreadUtils.postOnMainThread(() -> {
showWarningMessagesIfAppropriate();
enableSubmitIfAppropriate();
});
}
@Override

View File

@@ -63,7 +63,6 @@ class WriteWifiConfigToNfcDialog extends AlertDialog
private View mView;
private Button mSubmitButton;
private Button mCancelButton;
private Handler mOnTextChangedHandler;
private TextView mPasswordView;
private TextView mLabelView;
private CheckBox mPasswordCheckBox;
@@ -79,7 +78,6 @@ class WriteWifiConfigToNfcDialog extends AlertDialog
mContext = context;
mWakeLock = ((PowerManager) context.getSystemService(Context.POWER_SERVICE))
.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "WriteWifiConfigToNfcDialog:wakeLock");
mOnTextChangedHandler = new Handler();
mSecurity = security;
mWifiManager = wifiManager;
}
@@ -90,7 +88,6 @@ class WriteWifiConfigToNfcDialog extends AlertDialog
mContext = context;
mWakeLock = ((PowerManager) context.getSystemService(Context.POWER_SERVICE))
.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "WriteWifiConfigToNfcDialog:wakeLock");
mOnTextChangedHandler = new Handler();
mSecurity = savedState.getInt(SECURITY);
mWifiManager = wifiManager;
}
@@ -226,12 +223,7 @@ class WriteWifiConfigToNfcDialog extends AlertDialog
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
mOnTextChangedHandler.post(new Runnable() {
@Override
public void run() {
enableSubmitIfAppropriate();
}
});
enableSubmitIfAppropriate();
}
private void enableSubmitIfAppropriate() {