diff --git a/app/src/flipper/java/org/thoughtcrime/securesms/FlipperApplicationContext.kt b/app/src/flipper/java/org/thoughtcrime/securesms/FlipperApplicationContext.kt index 6b939746ad..6c5a267d1b 100644 --- a/app/src/flipper/java/org/thoughtcrime/securesms/FlipperApplicationContext.kt +++ b/app/src/flipper/java/org/thoughtcrime/securesms/FlipperApplicationContext.kt @@ -23,23 +23,37 @@ class FlipperApplicationContext : ApplicationContext() { LeakCanary.config = LeakCanary.config.copy( referenceMatchers = AndroidReferenceMatchers.appDefaults + - AndroidReferenceMatchers.instanceFieldLeak( + AndroidReferenceMatchers.ignoredInstanceField( className = "android.service.media.MediaBrowserService\$ServiceBinder", - fieldName = "this\$0", - description = "Framework bug", - patternApplies = { true } + fieldName = "this\$0" ) + - AndroidReferenceMatchers.instanceFieldLeak( + AndroidReferenceMatchers.ignoredInstanceField( className = "androidx.media.MediaBrowserServiceCompat\$MediaBrowserServiceImplApi26\$MediaBrowserServiceApi26", - fieldName = "mBase", - description = "Framework bug", - patternApplies = { true } + fieldName = "mBase" ) + - AndroidReferenceMatchers.instanceFieldLeak( + AndroidReferenceMatchers.ignoredInstanceField( + className = "android.support.v4.media.MediaBrowserCompat", + fieldName = "mImpl" + ) + + AndroidReferenceMatchers.ignoredInstanceField( + className = "android.support.v4.media.session.MediaControllerCompat", + fieldName = "mToken" + ) + + AndroidReferenceMatchers.ignoredInstanceField( + className = "android.support.v4.media.session.MediaControllerCompat", + fieldName = "mImpl" + ) + + AndroidReferenceMatchers.ignoredInstanceField( className = "org.thoughtcrime.securesms.components.voice.VoiceNotePlaybackService", - fieldName = "mApplication", - description = "Framework bug", - patternApplies = { true } + fieldName = "mApplication" + ) + + AndroidReferenceMatchers.ignoredInstanceField( + className = "org.thoughtcrime.securesms.service.GenericForegroundService\$LocalBinder", + fieldName = "this\$0" + ) + + AndroidReferenceMatchers.ignoredInstanceField( + className = "org.thoughtcrime.securesms.contacts.ContactsSyncAdapter", + fieldName = "mContext" ) ) } diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/DeliveryStatusView.java b/app/src/main/java/org/thoughtcrime/securesms/components/DeliveryStatusView.java index c430e4988d..585a896077 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/DeliveryStatusView.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/DeliveryStatusView.java @@ -17,19 +17,11 @@ public class DeliveryStatusView extends FrameLayout { private static final String TAG = Log.tag(DeliveryStatusView.class); - private static final RotateAnimation ROTATION_ANIMATION = new RotateAnimation(0, 360f, - Animation.RELATIVE_TO_SELF, 0.5f, - Animation.RELATIVE_TO_SELF, 0.5f); - static { - ROTATION_ANIMATION.setInterpolator(new LinearInterpolator()); - ROTATION_ANIMATION.setDuration(1500); - ROTATION_ANIMATION.setRepeatCount(Animation.INFINITE); - } - - private final ImageView pendingIndicator; - private final ImageView sentIndicator; - private final ImageView deliveredIndicator; - private final ImageView readIndicator; + private final RotateAnimation rotationAnimation; + private final ImageView pendingIndicator; + private final ImageView sentIndicator; + private final ImageView deliveredIndicator; + private final ImageView readIndicator; public DeliveryStatusView(Context context) { this(context, null); @@ -44,10 +36,17 @@ public class DeliveryStatusView extends FrameLayout { inflate(context, R.layout.delivery_status_view, this); - this.deliveredIndicator = findViewById(R.id.delivered_indicator); - this.sentIndicator = findViewById(R.id.sent_indicator); - this.pendingIndicator = findViewById(R.id.pending_indicator); - this.readIndicator = findViewById(R.id.read_indicator); + this.deliveredIndicator = findViewById(R.id.delivered_indicator); + this.sentIndicator = findViewById(R.id.sent_indicator); + this.pendingIndicator = findViewById(R.id.pending_indicator); + this.readIndicator = findViewById(R.id.read_indicator); + + rotationAnimation = new RotateAnimation(0, 360f, + Animation.RELATIVE_TO_SELF, 0.5f, + Animation.RELATIVE_TO_SELF, 0.5f); + rotationAnimation.setInterpolator(new LinearInterpolator()); + rotationAnimation.setDuration(1500); + rotationAnimation.setRepeatCount(Animation.INFINITE); if (attrs != null) { TypedArray typedArray = context.getTheme().obtainStyledAttributes(attrs, R.styleable.DeliveryStatusView, 0, 0); @@ -67,7 +66,7 @@ public class DeliveryStatusView extends FrameLayout { public void setPending() { this.setVisibility(View.VISIBLE); pendingIndicator.setVisibility(View.VISIBLE); - pendingIndicator.startAnimation(ROTATION_ANIMATION); + pendingIndicator.startAnimation(rotationAnimation); sentIndicator.setVisibility(View.GONE); deliveredIndicator.setVisibility(View.GONE); readIndicator.setVisibility(View.GONE); diff --git a/app/src/main/java/org/thoughtcrime/securesms/webrtc/audio/SignalAudioManager.kt b/app/src/main/java/org/thoughtcrime/securesms/webrtc/audio/SignalAudioManager.kt index 83d5865cb2..ae0f60fcd7 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/webrtc/audio/SignalAudioManager.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/webrtc/audio/SignalAudioManager.kt @@ -128,15 +128,11 @@ class SignalAudioManager(private val context: Context, private val eventListener private fun stop(playDisconnect: Boolean) { Log.d(TAG, "Stopping. state: $state") - if (state == State.UNINITIALIZED) { - Log.i(TAG, "Trying to stop AudioManager in incorrect state: $state") - return - } incomingRinger.stop() outgoingRinger.stop() - if (playDisconnect) { + if (playDisconnect && state != State.UNINITIALIZED) { val volume: Float = androidAudioManager.ringVolumeWithMinimum() soundPool.play(disconnectedSoundId, volume, volume, 0, 0, 1.0f) } diff --git a/app/src/main/java/org/thoughtcrime/securesms/webrtc/audio/SignalBluetoothManager.kt b/app/src/main/java/org/thoughtcrime/securesms/webrtc/audio/SignalBluetoothManager.kt index 01f5a6c423..db21ba868f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/webrtc/audio/SignalBluetoothManager.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/webrtc/audio/SignalBluetoothManager.kt @@ -97,10 +97,6 @@ class SignalBluetoothManager( stopScoAudio() - if (state == State.UNINITIALIZED) { - return - } - context.safeUnregisterReceiver(bluetoothReceiver) bluetoothReceiver = null