Remove usages of deprecated Handler constructor.

This commit is contained in:
Alan Evans 2021-01-05 17:40:18 -04:00
parent 64312f9c7f
commit 6dd3fdaa55
16 changed files with 42 additions and 20 deletions

View file

@ -9,6 +9,7 @@ import android.content.ServiceConnection;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
import android.os.IBinder; import android.os.IBinder;
import android.os.Looper;
import android.os.Message; import android.os.Message;
import android.os.Parcelable; import android.os.Parcelable;
import android.view.View; import android.view.View;
@ -158,6 +159,11 @@ public class DatabaseMigrationActivity extends PassphraseRequiredActivity {
} }
private class ImportStateHandler extends Handler { private class ImportStateHandler extends Handler {
public ImportStateHandler() {
super(Looper.getMainLooper());
}
@Override @Override
public void handleMessage(Message message) { public void handleMessage(Message message) {
switch (message.what) { switch (message.what) {

View file

@ -5,6 +5,7 @@ import android.media.AudioManager;
import android.net.Uri; import android.net.Uri;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
import android.os.Looper;
import android.os.Message; import android.os.Message;
import android.os.RemoteException; import android.os.RemoteException;
import android.support.v4.media.MediaBrowserCompat; import android.support.v4.media.MediaBrowserCompat;
@ -208,17 +209,20 @@ public class VoiceNoteMediaController implements DefaultLifecycleObserver {
private static class ProgressEventHandler extends Handler { private static class ProgressEventHandler extends Handler {
private final MediaControllerCompat mediaController; private final MediaControllerCompat mediaController;
private final MutableLiveData<VoiceNotePlaybackState> voiceNotePlaybackState; private final MutableLiveData<VoiceNotePlaybackState> voiceNotePlaybackState;
private ProgressEventHandler(@NonNull MediaControllerCompat mediaController, private ProgressEventHandler(@NonNull MediaControllerCompat mediaController,
@NonNull MutableLiveData<VoiceNotePlaybackState> voiceNotePlaybackState) { @NonNull MutableLiveData<VoiceNotePlaybackState> voiceNotePlaybackState)
{
super(Looper.getMainLooper());
this.mediaController = mediaController; this.mediaController = mediaController;
this.voiceNotePlaybackState = voiceNotePlaybackState; this.voiceNotePlaybackState = voiceNotePlaybackState;
} }
@Override @Override
public void handleMessage(Message msg) { public void handleMessage(@NonNull Message msg) {
MediaMetadataCompat mediaMetadataCompat = mediaController.getMetadata(); MediaMetadataCompat mediaMetadataCompat = mediaController.getMetadata();
if (isPlayerActive(mediaController.getPlaybackState()) && if (isPlayerActive(mediaController.getPlaybackState()) &&
mediaMetadataCompat != null && mediaMetadataCompat != null &&

View file

@ -3,6 +3,7 @@ package org.thoughtcrime.securesms.conversation;
import android.app.Application; import android.app.Application;
import android.database.ContentObserver; import android.database.ContentObserver;
import android.os.Handler; import android.os.Handler;
import android.os.Looper;
import android.text.TextUtils; import android.text.TextUtils;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
@ -35,7 +36,7 @@ class ConversationStickerViewModel extends ViewModel {
this.stickers = new MutableLiveData<>(); this.stickers = new MutableLiveData<>();
this.stickersAvailable = new MutableLiveData<>(); this.stickersAvailable = new MutableLiveData<>();
this.availabilityThrottler = new Throttler(500); this.availabilityThrottler = new Throttler(500);
this.packObserver = new ContentObserver(new Handler()) { this.packObserver = new ContentObserver(new Handler(Looper.getMainLooper())) {
@Override @Override
public void onChange(boolean selfChange) { public void onChange(boolean selfChange) {
availabilityThrottler.publish(() -> repository.getStickerFeatureAvailability(stickersAvailable::postValue)); availabilityThrottler.publish(() -> repository.getStickerFeatureAvailability(stickersAvailable::postValue));

View file

@ -2,6 +2,7 @@ package org.thoughtcrime.securesms.conversation.ui.mentions;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
import android.os.Looper;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
@ -32,7 +33,7 @@ public class MentionsPickerFragment extends LoggingFragment {
private BottomSheetBehavior<View> behavior; private BottomSheetBehavior<View> behavior;
private MentionsPickerViewModel viewModel; private MentionsPickerViewModel viewModel;
private final Runnable lockSheetAfterListUpdate = () -> behavior.setHideable(false); private final Runnable lockSheetAfterListUpdate = () -> behavior.setHideable(false);
private final Handler handler = new Handler(); private final Handler handler = new Handler(Looper.getMainLooper());
@Override @Override
public @Nullable View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { public @Nullable View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

View file

@ -4,6 +4,7 @@ import android.app.Application;
import android.database.ContentObserver; import android.database.ContentObserver;
import android.net.Uri; import android.net.Uri;
import android.os.Handler; import android.os.Handler;
import android.os.Looper;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.lifecycle.LiveData; import androidx.lifecycle.LiveData;
@ -30,7 +31,7 @@ class LongMessageViewModel extends ViewModel {
this.messageId = messageId; this.messageId = messageId;
this.isMms = isMms; this.isMms = isMms;
this.message = new MutableLiveData<>(); this.message = new MutableLiveData<>();
this.messageObserver = new MessageObserver(new Handler()); this.messageObserver = new MessageObserver(new Handler(Looper.getMainLooper()));
repository.getMessage(application, messageId, isMms, longMessage -> { repository.getMessage(application, messageId, isMms, longMessage -> {
if (longMessage.isPresent()) { if (longMessage.isPresent()) {

View file

@ -19,6 +19,7 @@ package org.thoughtcrime.securesms.mediaoverview;
import android.content.Context; import android.content.Context;
import android.net.Uri; import android.net.Uri;
import android.os.Handler; import android.os.Handler;
import android.os.Looper;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
@ -332,7 +333,7 @@ final class MediaGalleryAllAdapter extends StickyHeaderGridAdapter {
itemView.setOnClickListener(view -> itemClickListener.onMediaClicked(mediaRecord)); itemView.setOnClickListener(view -> itemClickListener.onMediaClicked(mediaRecord));
itemView.setOnLongClickListener(view -> onLongClick()); itemView.setOnLongClickListener(view -> onLongClick());
selectForMarque = () -> line1.setSelected(true); selectForMarque = () -> line1.setSelected(true);
handler = new Handler(); handler = new Handler(Looper.getMainLooper());
handler.postDelayed(selectForMarque, 2500); handler.postDelayed(selectForMarque, 2500);
LiveRecipient from = mediaRecord.isOutgoing() ? Recipient.self().live() : Recipient.live(mediaRecord.getRecipientId()); LiveRecipient from = mediaRecord.isOutgoing() ? Recipient.self().live() : Recipient.live(mediaRecord.getRecipientId());

View file

@ -4,6 +4,7 @@ import android.net.Uri;
import android.os.Build; import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
import android.os.Looper;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
@ -34,7 +35,7 @@ public class MediaSendVideoFragment extends Fragment implements VideoEditorHud.E
private static final String KEY_MAX_SEND = "max_send_size"; private static final String KEY_MAX_SEND = "max_send_size";
private final Throttler videoScanThrottle = new Throttler(150); private final Throttler videoScanThrottle = new Throttler(150);
private final Handler handler = new Handler(); private final Handler handler = new Handler(Looper.getMainLooper());
private Controller controller; private Controller controller;
private Data data = new Data(); private Data data = new Data();

View file

@ -3,7 +3,6 @@ package org.thoughtcrime.securesms.revealable;
import android.app.Application; import android.app.Application;
import android.database.ContentObserver; import android.database.ContentObserver;
import android.net.Uri; import android.net.Uri;
import android.os.Handler;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.lifecycle.LiveData; import androidx.lifecycle.LiveData;
@ -33,7 +32,7 @@ class ViewOnceMessageViewModel extends ViewModel {
this.application = application; this.application = application;
this.repository = repository; this.repository = repository;
this.message = new MutableLiveData<>(); this.message = new MutableLiveData<>();
this.observer = new ContentObserver(new Handler()) { this.observer = new ContentObserver(null) {
@Override @Override
public void onChange(boolean selfChange) { public void onChange(boolean selfChange) {
repository.getMessage(messageId, optionalMessage -> onMessageRetrieved(optionalMessage)); repository.getMessage(messageId, optionalMessage -> onMessageRetrieved(optionalMessage));

View file

@ -3,6 +3,7 @@ package org.thoughtcrime.securesms.stickers;
import android.app.Application; import android.app.Application;
import android.database.ContentObserver; import android.database.ContentObserver;
import android.os.Handler; import android.os.Handler;
import android.os.Looper;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.lifecycle.LiveData; import androidx.lifecycle.LiveData;
@ -33,7 +34,7 @@ final class StickerKeyboardPageViewModel extends ViewModel {
this.repository = repository; this.repository = repository;
this.stickers = new MutableLiveData<>(); this.stickers = new MutableLiveData<>();
this.observerThrottler = new Throttler(500); this.observerThrottler = new Throttler(500);
this.observer = new ContentObserver(new Handler()) { this.observer = new ContentObserver(new Handler(Looper.getMainLooper())) {
@Override @Override
public void onChange(boolean selfChange) { public void onChange(boolean selfChange) {
observerThrottler.publish(() -> getStickers(packId)); observerThrottler.publish(() -> getStickers(packId));

View file

@ -3,6 +3,7 @@ package org.thoughtcrime.securesms.stickers;
import android.app.Application; import android.app.Application;
import android.database.ContentObserver; import android.database.ContentObserver;
import android.os.Handler; import android.os.Handler;
import android.os.Looper;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.lifecycle.LiveData; import androidx.lifecycle.LiveData;
@ -25,7 +26,7 @@ final class StickerKeyboardViewModel extends ViewModel {
this.application = application; this.application = application;
this.packs = new MutableLiveData<>(); this.packs = new MutableLiveData<>();
this.observerThrottler = new Throttler(500); this.observerThrottler = new Throttler(500);
this.observer = new ContentObserver(new Handler()) { this.observer = new ContentObserver(new Handler(Looper.getMainLooper())) {
@Override @Override
public void onChange(boolean selfChange) { public void onChange(boolean selfChange) {
observerThrottler.publish(() -> repository.getPackList(packs::postValue)); observerThrottler.publish(() -> repository.getPackList(packs::postValue));

View file

@ -2,7 +2,6 @@ package org.thoughtcrime.securesms.stickers;
import android.app.Application; import android.app.Application;
import android.database.ContentObserver; import android.database.ContentObserver;
import android.os.Handler;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.lifecycle.LiveData; import androidx.lifecycle.LiveData;
@ -27,7 +26,7 @@ final class StickerManagementViewModel extends ViewModel {
this.application = application; this.application = application;
this.repository = repository; this.repository = repository;
this.packs = new MutableLiveData<>(); this.packs = new MutableLiveData<>();
this.observer = new ContentObserver(new Handler()) { this.observer = new ContentObserver(null) {
@Override @Override
public void onChange(boolean selfChange) { public void onChange(boolean selfChange) {
repository.deleteOrphanedStickerPacks(); repository.deleteOrphanedStickerPacks();

View file

@ -2,7 +2,6 @@ package org.thoughtcrime.securesms.stickers;
import android.app.Application; import android.app.Application;
import android.database.ContentObserver; import android.database.ContentObserver;
import android.os.Handler;
import android.text.TextUtils; import android.text.TextUtils;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
@ -34,7 +33,7 @@ final class StickerPackPreviewViewModel extends ViewModel {
this.previewRepository = previewRepository; this.previewRepository = previewRepository;
this.managementRepository = managementRepository; this.managementRepository = managementRepository;
this.stickerManifest = new MutableLiveData<>(); this.stickerManifest = new MutableLiveData<>();
this.packObserver = new ContentObserver(new Handler()) { this.packObserver = new ContentObserver(null) {
@Override @Override
public void onChange(boolean selfChange) { public void onChange(boolean selfChange) {
if (!TextUtils.isEmpty(packId) && !TextUtils.isEmpty(packKey)) { if (!TextUtils.isEmpty(packId) && !TextUtils.isEmpty(packKey)) {

View file

@ -1,6 +1,7 @@
package org.thoughtcrime.securesms.util; package org.thoughtcrime.securesms.util;
import android.os.Handler; import android.os.Handler;
import android.os.Looper;
import android.os.Message; import android.os.Message;
import androidx.annotation.MainThread; import androidx.annotation.MainThread;
@ -52,6 +53,10 @@ public class ThrottledDebouncer {
private static class OverflowHandler extends Handler { private static class OverflowHandler extends Handler {
public OverflowHandler() {
super(Looper.getMainLooper());
}
private Runnable runnable; private Runnable runnable;
@Override @Override

View file

@ -1,6 +1,7 @@
package org.thoughtcrime.securesms.util; package org.thoughtcrime.securesms.util;
import android.os.Handler; import android.os.Handler;
import android.os.Looper;
/** /**
* A class that will throttle the number of runnables executed to be at most once every specified * A class that will throttle the number of runnables executed to be at most once every specified
@ -26,7 +27,7 @@ public class Throttler {
* {@code threshold} milliseconds. * {@code threshold} milliseconds.
*/ */
public Throttler(long threshold) { public Throttler(long threshold) {
this.handler = new Handler(); this.handler = new Handler(Looper.getMainLooper());
this.threshold = threshold; this.threshold = threshold;
} }

View file

@ -1,6 +1,7 @@
package org.thoughtcrime.securesms.util.livedata; package org.thoughtcrime.securesms.util.livedata;
import android.os.Handler; import android.os.Handler;
import android.os.Looper;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.lifecycle.LiveData; import androidx.lifecycle.LiveData;
@ -162,7 +163,7 @@ public final class LiveDataUtil {
@Override @Override
protected void onActive() { protected void onActive() {
if (emittedValue) return; if (emittedValue) return;
new Handler().postDelayed(() -> setValue(value), delay); new Handler(Looper.getMainLooper()).postDelayed(() -> setValue(value), delay);
emittedValue = true; emittedValue = true;
} }
}; };

View file

@ -22,6 +22,7 @@ import android.hardware.SensorEvent;
import android.hardware.SensorEventListener; import android.hardware.SensorEventListener;
import android.hardware.SensorManager; import android.hardware.SensorManager;
import android.os.Handler; import android.os.Handler;
import android.os.Looper;
import android.os.Message; import android.os.Message;
import org.signal.core.util.logging.Log; import org.signal.core.util.logging.Log;
@ -141,7 +142,7 @@ public final class AccelerometerListener {
} }
}; };
Handler mHandler = new Handler() { Handler mHandler = new Handler(Looper.getMainLooper()) {
public void handleMessage(Message msg) { public void handleMessage(Message msg) {
switch (msg.what) { switch (msg.what) {
case ORIENTATION_CHANGED: case ORIENTATION_CHANGED: