@@ -14,16 +14,13 @@ import android.os.Handler;
 import android.os.PowerManager;
 import android.util.Log;
 import android.view.View;
-import android.widget.ImageButton;
 import android.widget.RelativeLayout;
 import android.widget.SeekBar;
 import android.widget.TextView;
-
 import androidx.core.app.ActivityCompat;
 import androidx.core.content.ContextCompat;
-
+import com.google.android.material.button.MaterialButton;
 import com.google.common.primitives.Ints;
-
 import eu.siacs.conversations.Config;
 import eu.siacs.conversations.R;
 import eu.siacs.conversations.entities.Message;
@@ -33,7 +30,6 @@ import eu.siacs.conversations.ui.adapter.MessageAdapter;
 import eu.siacs.conversations.ui.util.PendingItem;
 import eu.siacs.conversations.utils.TimeFrameUtils;
 import eu.siacs.conversations.utils.WeakReferenceSet;
-
 import java.lang.ref.WeakReference;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
@@ -54,7 +50,8 @@ public class AudioPlayer
     private final WeakReferenceSet<RelativeLayout> audioPlayerLayouts = new WeakReferenceSet<>();
     private final SensorManager sensorManager;
     private final Sensor proximitySensor;
-    private final PendingItem<WeakReference<ImageButton>> pendingOnClickView = new PendingItem<>();
+    private final PendingItem<WeakReference<MaterialButton>> pendingOnClickView =
+            new PendingItem<>();
 
     private final ExecutorService executor = Executors.newSingleThreadExecutor();
 
@@ -81,7 +78,7 @@ public class AudioPlayer
     }
 
     private static String formatTime(final int ms) {
-        return TimeFrameUtils.formatElapsedTime(ms,false);
+        return TimeFrameUtils.formatElapsedTime(ms, false);
     }
 
     private void initializeProximityWakeLock(Context context) {
@@ -124,20 +121,17 @@ public class AudioPlayer
         final Context context = viewHolder.playPause.getContext();
         if (message == currentlyPlayingMessage) {
             if (AudioPlayer.player != null && AudioPlayer.player.isPlaying()) {
-                viewHolder.playPause.setImageResource(R.drawable.ic_pause_24dp);
-                MessageAdapter.setImageTint(viewHolder.playPause, viewHolder.bubbleColor);
+                viewHolder.playPause.setIconResource(R.drawable.ic_pause_24dp);
                 viewHolder.playPause.setContentDescription(context.getString(R.string.pause_audio));
                 viewHolder.progress.setEnabled(true);
             } else {
                 viewHolder.playPause.setContentDescription(context.getString(R.string.play_audio));
-                viewHolder.playPause.setImageResource(R.drawable.ic_play_arrow_24dp);
-                MessageAdapter.setImageTint(viewHolder.playPause, viewHolder.bubbleColor);
+                viewHolder.playPause.setIconResource(R.drawable.ic_play_arrow_24dp);
                 viewHolder.progress.setEnabled(false);
             }
             return true;
         } else {
-            viewHolder.playPause.setImageResource(R.drawable.ic_play_arrow_24dp);
-            MessageAdapter.setImageTint(viewHolder.playPause, viewHolder.bubbleColor);
+            viewHolder.playPause.setIconResource(R.drawable.ic_play_arrow_24dp);
             viewHolder.playPause.setContentDescription(context.getString(R.string.play_audio));
             viewHolder.runtime.setText(formatTime(message.getFileParams().runtime));
             viewHolder.progress.setProgress(0);
@@ -150,12 +144,12 @@ public class AudioPlayer
     public synchronized void onClick(View v) {
         if (v.getId() == R.id.play_pause) {
             synchronized (LOCK) {
-                startStop((ImageButton) v);
+                startStop((MaterialButton) v);
             }
         }
     }
 
-    private void startStop(ImageButton playPause) {
+    private void startStop(final MaterialButton playPause) {
         if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU
                 && ContextCompat.checkSelfPermission(
                                 messageAdapter.getActivity(),
@@ -186,8 +180,7 @@ public class AudioPlayer
             player.pause();
             messageAdapter.flagScreenOff();
             releaseProximityWakeLock();
-            viewHolder.playPause.setImageResource(R.drawable.ic_play_arrow_24dp);
-            MessageAdapter.setImageTint(viewHolder.playPause, viewHolder.bubbleColor);
+            viewHolder.playPause.setIconResource(R.drawable.ic_play_arrow_24dp);
             viewHolder.playPause.setContentDescription(context.getString(R.string.play_audio));
         } else {
             viewHolder.progress.setEnabled(true);
@@ -195,8 +188,7 @@ public class AudioPlayer
             messageAdapter.flagScreenOn();
             acquireProximityWakeLock();
             this.stopRefresher(true);
-            viewHolder.playPause.setImageResource(R.drawable.ic_pause_24dp);
-            MessageAdapter.setImageTint(viewHolder.playPause, viewHolder.bubbleColor);
+            viewHolder.playPause.setIconResource(R.drawable.ic_pause_24dp);
             viewHolder.playPause.setContentDescription(context.getString(R.string.pause_audio));
         }
         return false;
@@ -222,8 +214,7 @@ public class AudioPlayer
             messageAdapter.flagScreenOn();
             acquireProximityWakeLock();
             viewHolder.progress.setEnabled(true);
-            viewHolder.playPause.setImageResource(R.drawable.ic_pause_24dp);
-            MessageAdapter.setImageTint(viewHolder.playPause, viewHolder.bubbleColor);
+            viewHolder.playPause.setIconResource(R.drawable.ic_pause_24dp);
             viewHolder.playPause.setContentDescription(
                     viewHolder.playPause.getContext().getString(R.string.pause_audio));
             sensorManager.registerListener(
@@ -239,9 +230,9 @@ public class AudioPlayer
     }
 
     public void startStopPending() {
-        WeakReference<ImageButton> reference = pendingOnClickView.pop();
+        final var reference = pendingOnClickView.pop();
         if (reference != null) {
-            ImageButton imageButton = reference.get();
+            var imageButton = reference.get();
             if (imageButton != null) {
                 startStop(imageButton);
             }
@@ -283,8 +274,7 @@ public class AudioPlayer
         final Message message = (Message) audioPlayer.getTag();
         viewHolder.playPause.setContentDescription(
                 viewHolder.playPause.getContext().getString(R.string.play_audio));
-        viewHolder.playPause.setImageResource(R.drawable.ic_play_arrow_24dp);
-        MessageAdapter.setImageTint(viewHolder.playPause, viewHolder.bubbleColor);
+        viewHolder.playPause.setIconResource(R.drawable.ic_play_arrow_24dp);
         if (message != null) {
             viewHolder.runtime.setText(formatTime(message.getFileParams().runtime));
         }
@@ -309,7 +299,8 @@ public class AudioPlayer
     }
 
     @Override
-    public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
+    public void onProgressChanged(
+            final SeekBar seekBar, final int progress, final boolean fromUser) {
         synchronized (AudioPlayer.LOCK) {
             final RelativeLayout audioPlayer = (RelativeLayout) seekBar.getParent();
             final Message message = (Message) audioPlayer.getTag();
@@ -461,7 +452,7 @@ public class AudioPlayer
     public static class ViewHolder {
         private TextView runtime;
         private SeekBar progress;
-        private ImageButton playPause;
+        private MaterialButton playPause;
         private MessageAdapter.BubbleColor bubbleColor = MessageAdapter.BubbleColor.SURFACE;
 
         public static ViewHolder get(final RelativeLayout audioPlayer) {
  
  
  
    
    @@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <layout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto">
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    xmlns:tools="http://schemas.android.com/tools">
 
     <merge>
 
@@ -47,14 +48,17 @@
             android:layout_height="wrap_content"
             android:layout_marginHorizontal="10dp"
             android:layout_marginVertical="4dp"
-            android:visibility="gone">
+            android:visibility="gone"
+            tools:visibility="visible">
 
-            <ImageButton
+            <com.google.android.material.button.MaterialButton
+                style="?attr/materialIconButtonOutlinedStyle"
                 android:id="@+id/play_pause"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:layout_centerVertical="true"
-                android:background="?android:selectableItemBackgroundBorderless" />
+                app:iconSize="26dp"
+                app:icon="@drawable/ic_play_arrow_24dp" />
 
             <TextView
                 android:id="@+id/runtime"