Dialer: Lambs...erm...Lambdas!

Change-Id: I19532d0d6b8f0e821d1908f473b51157f72520e0
diff --git a/java/com/android/contacts/common/dialog/CallSubjectDialog.java b/java/com/android/contacts/common/dialog/CallSubjectDialog.java
index 70d6ba2..1e1ee0d 100644
--- a/java/com/android/contacts/common/dialog/CallSubjectDialog.java
+++ b/java/com/android/contacts/common/dialog/CallSubjectDialog.java
@@ -115,27 +115,19 @@
   private SharedPreferences mPrefs;
   private List<String> mSubjectHistory;
   /** Handles displaying the list of past call subjects. */
-  private final View.OnClickListener mHistoryOnClickListener =
-      new View.OnClickListener() {
-        @Override
-        public void onClick(View v) {
-          hideSoftKeyboard(CallSubjectDialog.this, mCallSubjectView);
-          showCallHistory(mSubjectList.getVisibility() == View.GONE);
-        }
-      };
+  private final View.OnClickListener mHistoryOnClickListener = v -> {
+    hideSoftKeyboard(CallSubjectDialog.this, mCallSubjectView);
+    showCallHistory(mSubjectList.getVisibility() == View.GONE);
+  };
   /**
    * Handles auto-hiding the call history when user clicks in the call subject field to give it
    * focus.
    */
-  private final View.OnClickListener mCallSubjectClickListener =
-      new View.OnClickListener() {
-        @Override
-        public void onClick(View v) {
-          if (mSubjectList.getVisibility() == View.VISIBLE) {
-            showCallHistory(false);
-          }
-        }
-      };
+  private final View.OnClickListener mCallSubjectClickListener = v -> {
+    if (mSubjectList.getVisibility() == View.VISIBLE) {
+      showCallHistory(false);
+    }
+  };
 
   private long mPhotoID;
   private Uri mPhotoUri;
@@ -147,43 +139,31 @@
   private int mContactType;
   private PhoneAccountHandle mPhoneAccountHandle;
   /** Handles starting a call with a call subject specified. */
-  private final View.OnClickListener mSendAndCallOnClickListener =
-      new View.OnClickListener() {
-        @Override
-        public void onClick(View v) {
-          String subject = mCallSubjectView.getText().toString();
-          PreCall.start(
-              CallSubjectDialog.this,
-              new CallIntentBuilder(mNumber, CallInitiationType.Type.CALL_SUBJECT_DIALOG)
-                  .setPhoneAccountHandle(mPhoneAccountHandle)
-                  .setCallSubject(subject));
+  private final View.OnClickListener mSendAndCallOnClickListener = v -> {
+    String subject = mCallSubjectView.getText().toString();
+    PreCall.start(
+            CallSubjectDialog.this,
+            new CallIntentBuilder(mNumber, CallInitiationType.Type.CALL_SUBJECT_DIALOG)
+                    .setPhoneAccountHandle(mPhoneAccountHandle)
+                    .setCallSubject(subject));
 
-          mSubjectHistory.add(subject);
-          saveSubjectHistory(mSubjectHistory);
-          finish();
-        }
-      };
+    mSubjectHistory.add(subject);
+    saveSubjectHistory(mSubjectHistory);
+    finish();
+  };
+
   /** Click listener which handles user clicks outside of the dialog. */
-  private View.OnClickListener mBackgroundListener =
-      new View.OnClickListener() {
-        @Override
-        public void onClick(View v) {
-          finish();
-        }
-      };
+  private final View.OnClickListener mBackgroundListener = v -> finish();
   /**
    * Item click listener which handles user clicks on the items in the list view. Dismisses the
    * activity, returning the subject to the caller and closing the activity with the {@link
    * Activity#RESULT_OK} result code.
    */
-  private AdapterView.OnItemClickListener mItemClickListener =
-      new AdapterView.OnItemClickListener() {
-        @Override
-        public void onItemClick(AdapterView<?> arg0, View view, int position, long arg3) {
-          mCallSubjectView.setText(mSubjectHistory.get(position));
-          showCallHistory(false);
-        }
-      };
+  private final AdapterView.OnItemClickListener mItemClickListener =
+          (arg0, view, position, arg3) -> {
+    mCallSubjectView.setText(mSubjectHistory.get(position));
+    showCallHistory(false);
+  };
 
   /**
    * Show the call subject dialog given a phone number to dial (e.g. from the dialpad).
diff --git a/java/com/android/contacts/common/list/ViewPagerTabs.java b/java/com/android/contacts/common/list/ViewPagerTabs.java
index acbe1e5..5ab23b8 100644
--- a/java/com/android/contacts/common/list/ViewPagerTabs.java
+++ b/java/com/android/contacts/common/list/ViewPagerTabs.java
@@ -184,13 +184,7 @@
       tabView = textView;
     }
 
-    tabView.setOnClickListener(
-        new OnClickListener() {
-          @Override
-          public void onClick(View v) {
-            mPager.setCurrentItem(getRtlPosition(position));
-          }
-        });
+    tabView.setOnClickListener(v -> mPager.setCurrentItem(getRtlPosition(position)));
 
     tabView.setOnLongClickListener(new OnTabLongClickListener(position));
 
diff --git a/java/com/android/contacts/common/model/AccountTypeManager.java b/java/com/android/contacts/common/model/AccountTypeManager.java
index f5b113c..070c9a7 100644
--- a/java/com/android/contacts/common/model/AccountTypeManager.java
+++ b/java/com/android/contacts/common/model/AccountTypeManager.java
@@ -174,37 +174,33 @@
 
   private static final int MESSAGE_LOAD_DATA = 0;
   private static final int MESSAGE_PROCESS_BROADCAST_INTENT = 1;
-  private static final Comparator<AccountWithDataSet> ACCOUNT_COMPARATOR =
-      new Comparator<AccountWithDataSet>() {
-        @Override
-        public int compare(AccountWithDataSet a, AccountWithDataSet b) {
-          if (Objects.equals(a.name, b.name)
-              && Objects.equals(a.type, b.type)
-              && Objects.equals(a.dataSet, b.dataSet)) {
-            return 0;
-          } else if (b.name == null || b.type == null) {
-            return -1;
-          } else if (a.name == null || a.type == null) {
-            return 1;
-          } else {
-            int diff = a.name.compareTo(b.name);
-            if (diff != 0) {
-              return diff;
-            }
-            diff = a.type.compareTo(b.type);
-            if (diff != 0) {
-              return diff;
-            }
+  private static final Comparator<AccountWithDataSet> ACCOUNT_COMPARATOR = (a, b) -> {
+    if (Objects.equals(a.name, b.name)
+        && Objects.equals(a.type, b.type)
+        && Objects.equals(a.dataSet, b.dataSet)) {
+      return 0;
+    } else if (b.name == null || b.type == null) {
+      return -1;
+    } else if (a.name == null || a.type == null) {
+      return 1;
+    } else {
+      int diff = a.name.compareTo(b.name);
+      if (diff != 0) {
+        return diff;
+      }
+      diff = a.type.compareTo(b.type);
+      if (diff != 0) {
+        return diff;
+      }
 
-            // Accounts without data sets get sorted before those that have them.
-            if (a.dataSet != null) {
-              return b.dataSet == null ? 1 : a.dataSet.compareTo(b.dataSet);
-            } else {
-              return -1;
-            }
-          }
-        }
-      };
+      // Accounts without data sets get sorted before those that have them.
+      if (a.dataSet != null) {
+        return b.dataSet == null ? 1 : a.dataSet.compareTo(b.dataSet);
+      } else {
+        return -1;
+      }
+    }
+  };
   private final InvitableAccountTypeCache mInvitableAccountTypeCache;
   /**
    * The boolean value is equal to true if the {@link InvitableAccountTypeCache} has been
diff --git a/java/com/android/contacts/common/model/account/BaseAccountType.java b/java/com/android/contacts/common/model/account/BaseAccountType.java
index 1cf4151..d96e28c 100644
--- a/java/com/android/contacts/common/model/account/BaseAccountType.java
+++ b/java/com/android/contacts/common/model/account/BaseAccountType.java
@@ -1,5 +1,6 @@
 /*
  * Copyright (C) 2009 The Android Open Source Project
+ * Copyright (C) 2023 The LineageOS Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -52,28 +53,22 @@
 
 public abstract class BaseAccountType extends AccountType {
 
-  public static final StringInflater ORGANIZATION_BODY_INFLATER =
-      new StringInflater() {
-        @Override
-        public CharSequence inflateUsing(Context context, ContentValues values) {
-          final CharSequence companyValue =
-              values.containsKey(Organization.COMPANY)
-                  ? values.getAsString(Organization.COMPANY)
-                  : null;
-          final CharSequence titleValue =
-              values.containsKey(Organization.TITLE)
-                  ? values.getAsString(Organization.TITLE)
-                  : null;
+  public static final StringInflater ORGANIZATION_BODY_INFLATER = (context, values) -> {
+    final CharSequence companyValue = values.containsKey(Organization.COMPANY)
+            ? values.getAsString(Organization.COMPANY)
+            : null;
+    final CharSequence titleValue = values.containsKey(Organization.TITLE)
+            ? values.getAsString(Organization.TITLE)
+            : null;
 
-          if (companyValue != null && titleValue != null) {
-            return companyValue + ": " + titleValue;
-          } else if (companyValue == null) {
-            return titleValue;
-          } else {
-            return companyValue;
-          }
-        }
-      };
+    if (companyValue != null && titleValue != null) {
+      return companyValue + ": " + titleValue;
+    } else if (companyValue == null) {
+      return titleValue;
+    } else {
+      return companyValue;
+    }
+  };
   protected static final int FLAGS_PHONE = EditorInfo.TYPE_CLASS_PHONE;
   protected static final int FLAGS_EMAIL =
       EditorInfo.TYPE_CLASS_TEXT | EditorInfo.TYPE_TEXT_VARIATION_EMAIL_ADDRESS;
diff --git a/java/com/android/contacts/common/widget/SelectPhoneAccountDialogFragment.java b/java/com/android/contacts/common/widget/SelectPhoneAccountDialogFragment.java
index b4d7b82..0b3575b 100644
--- a/java/com/android/contacts/common/widget/SelectPhoneAccountDialogFragment.java
+++ b/java/com/android/contacts/common/widget/SelectPhoneAccountDialogFragment.java
@@ -102,31 +102,23 @@
     isSelected = false;
 
     final DialogInterface.OnClickListener selectionListener =
-        new DialogInterface.OnClickListener() {
-          @Override
-          public void onClick(DialogInterface dialog, int which) {
-            isSelected = true;
-            PhoneAccountHandle selectedAccountHandle =
-                SelectPhoneAccountDialogOptionsUtil.getPhoneAccountHandle(
-                    options.getEntriesList().get(which));
-            Bundle result = new Bundle();
-            result.putParcelable(
-                SelectPhoneAccountListener.EXTRA_SELECTED_ACCOUNT_HANDLE, selectedAccountHandle);
-            result.putBoolean(SelectPhoneAccountListener.EXTRA_SET_DEFAULT, isDefaultChecked);
-            result.putString(SelectPhoneAccountListener.EXTRA_CALL_ID, getCallId());
-            if (listener != null) {
-              listener.onReceiveResult(SelectPhoneAccountListener.RESULT_SELECTED, result);
-            }
-          }
-        };
+            (dialog, which) -> {
+              isSelected = true;
+              PhoneAccountHandle selectedAccountHandle =
+                  SelectPhoneAccountDialogOptionsUtil.getPhoneAccountHandle(
+                      options.getEntriesList().get(which));
+              Bundle result = new Bundle();
+              result.putParcelable(
+                  SelectPhoneAccountListener.EXTRA_SELECTED_ACCOUNT_HANDLE, selectedAccountHandle);
+              result.putBoolean(SelectPhoneAccountListener.EXTRA_SET_DEFAULT, isDefaultChecked);
+              result.putString(SelectPhoneAccountListener.EXTRA_CALL_ID, getCallId());
+              if (listener != null) {
+                listener.onReceiveResult(SelectPhoneAccountListener.RESULT_SELECTED, result);
+              }
+            };
 
     final CompoundButton.OnCheckedChangeListener checkListener =
-        new CompoundButton.OnCheckedChangeListener() {
-          @Override
-          public void onCheckedChanged(CompoundButton check, boolean isChecked) {
-            isDefaultChecked = isChecked;
-          }
-        };
+            (check, isChecked) -> isDefaultChecked = isChecked;
 
     AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
     ListAdapter selectAccountListAdapter =
diff --git a/java/com/android/dialer/app/calllog/CallLogAdapter.java b/java/com/android/dialer/app/calllog/CallLogAdapter.java
index d4f16b2..6057649 100644
--- a/java/com/android/dialer/app/calllog/CallLogAdapter.java
+++ b/java/com/android/dialer/app/calllog/CallLogAdapter.java
@@ -205,34 +205,17 @@
                 .getResources()
                 .getQuantityString(
                     R.plurals.delete_voicemails_confirmation_dialog_title, selectedItems.size()))
-        .setPositiveButton(
-            R.string.voicemailMultiSelectDeleteConfirm,
-            new DialogInterface.OnClickListener() {
-              @Override
-              public void onClick(final DialogInterface dialog, final int button) {
-                LogUtil.i(
-                    "CallLogAdapter.showDeleteSelectedItemsDialog",
-                    "onClick, these items to delete " + voicemailsToDeleteOnConfirmation);
-                deleteSelectedItems(voicemailsToDeleteOnConfirmation);
-                actionMode.finish();
-                dialog.cancel();
-              }
-            })
-        .setOnCancelListener(
-            new OnCancelListener() {
-              @Override
-              public void onCancel(DialogInterface dialogInterface) {
-                dialogInterface.cancel();
-              }
-            })
-        .setNegativeButton(
-            R.string.voicemailMultiSelectDeleteCancel,
-            new DialogInterface.OnClickListener() {
-              @Override
-              public void onClick(final DialogInterface dialog, final int button) {
-                dialog.cancel();
-              }
-            })
+        .setPositiveButton(R.string.voicemailMultiSelectDeleteConfirm, (dialog, button) -> {
+          LogUtil.i(
+                  "CallLogAdapter.showDeleteSelectedItemsDialog",
+                  "onClick, these items to delete " + voicemailsToDeleteOnConfirmation);
+          deleteSelectedItems(voicemailsToDeleteOnConfirmation);
+          actionMode.finish();
+          dialog.cancel();
+        })
+        .setOnCancelListener(dialogInterface -> dialogInterface.cancel())
+        .setNegativeButton(R.string.voicemailMultiSelectDeleteCancel,
+                (dialog, button) -> dialog.cancel())
         .show();
   }
 
diff --git a/java/com/android/dialer/app/calllog/CallLogFragment.java b/java/com/android/dialer/app/calllog/CallLogFragment.java
index d88306b..3442d73 100644
--- a/java/com/android/dialer/app/calllog/CallLogFragment.java
+++ b/java/com/android/dialer/app/calllog/CallLogFragment.java
@@ -256,16 +256,12 @@
       }
       // Workaround for framework issue: the smooth-scroll doesn't
       // occur if setSelection() is called immediately before.
-      handler.post(
-          new Runnable() {
-            @Override
-            public void run() {
-              if (getActivity() == null || getActivity().isFinishing()) {
-                return;
-              }
-              recyclerView.smoothScrollToPosition(0);
-            }
-          });
+      handler.post(() -> {
+        if (getActivity() == null || getActivity().isFinishing()) {
+          return;
+        }
+        recyclerView.smoothScrollToPosition(0);
+      });
 
       scrollToTop = false;
     }
diff --git a/java/com/android/dialer/app/calllog/VoicemailNotificationJobService.java b/java/com/android/dialer/app/calllog/VoicemailNotificationJobService.java
index 754ab27..c6ea069 100644
--- a/java/com/android/dialer/app/calllog/VoicemailNotificationJobService.java
+++ b/java/com/android/dialer/app/calllog/VoicemailNotificationJobService.java
@@ -1,5 +1,6 @@
 /*
  * Copyright (C) 2017 The Android Open Source Project
+ * Copyright (C) 2023 The LineageOS Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -52,11 +53,7 @@
   @Override
   public boolean onStartJob(JobParameters params) {
     LogUtil.i("VoicemailNotificationJobService.onStartJob", "updating notification");
-    VisualVoicemailUpdateTask.scheduleTask(
-        this,
-        () -> {
-          jobFinished(params, false);
-        });
+    VisualVoicemailUpdateTask.scheduleTask(this, () -> jobFinished(params, false));
     return true; // Running in background
   }
 
diff --git a/java/com/android/dialer/app/calllog/VoicemailQueryHandler.java b/java/com/android/dialer/app/calllog/VoicemailQueryHandler.java
index cad838a..c2729bc 100644
--- a/java/com/android/dialer/app/calllog/VoicemailQueryHandler.java
+++ b/java/com/android/dialer/app/calllog/VoicemailQueryHandler.java
@@ -1,5 +1,6 @@
 /*
  * Copyright (C) 2011 The Android Open Source Project
+ * Copyright (C) 2023 The LineageOS Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -46,10 +47,8 @@
   @WorkerThread
   public static void markAllNewVoicemailsAsOld(final @NonNull Context context) {
     ThreadUtil.postOnUiThread(
-        () -> {
-          new VoicemailQueryHandler(context.getContentResolver())
-              .markNewVoicemailsAsOld(context, null);
-        });
+        () -> new VoicemailQueryHandler(context.getContentResolver())
+            .markNewVoicemailsAsOld(context, null));
   }
 
   @WorkerThread
@@ -60,10 +59,8 @@
       return;
     }
     ThreadUtil.postOnUiThread(
-        () -> {
-          new VoicemailQueryHandler(context.getContentResolver())
-              .markNewVoicemailsAsOld(context, voicemailUri);
-        });
+        () -> new VoicemailQueryHandler(context.getContentResolver())
+            .markNewVoicemailsAsOld(context, voicemailUri));
   }
 
   /** Updates all new voicemails to mark them as old. */
diff --git a/java/com/android/dialer/app/settings/SoundSettingsFragment.java b/java/com/android/dialer/app/settings/SoundSettingsFragment.java
index 128ebdc..b274339 100644
--- a/java/com/android/dialer/app/settings/SoundSettingsFragment.java
+++ b/java/com/android/dialer/app/settings/SoundSettingsFragment.java
@@ -20,7 +20,6 @@
 import android.app.AlertDialog;
 import android.app.NotificationManager;
 import android.content.Context;
-import android.content.DialogInterface;
 import android.content.Intent;
 import android.media.RingtoneManager;
 import android.os.Bundle;
@@ -67,13 +66,8 @@
           }
         }
       };
-  private final Runnable ringtoneLookupRunnable =
-      new Runnable() {
-        @Override
-        public void run() {
-          updateRingtonePreferenceSummary();
-        }
-      };
+  private final Runnable ringtoneLookupRunnable = () -> updateRingtonePreferenceSummary();
+
   private SwitchPreferenceCompat vibrateWhenRinging;
   private SwitchPreferenceCompat playDtmfTone;
   private ListPreference dtmfToneLength;
@@ -201,20 +195,12 @@
       if (newValue && !notificationManager.isNotificationPolicyAccessGranted()) {
         new AlertDialog.Builder(getContext())
             .setMessage(R.string.incall_dnd_dialog_message)
-            .setPositiveButton(R.string.allow, new DialogInterface.OnClickListener() {
-              @Override
-              public void onClick(DialogInterface dialog, int which) {
-                dialog.dismiss();
-                Intent intent = new Intent(android.provider.Settings.ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS);
-                startActivity(intent);
-              }
+            .setPositiveButton(R.string.allow, (dialog, which) -> {
+              dialog.dismiss();
+              Intent intent = new Intent(Settings.ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS);
+              startActivity(intent);
             })
-            .setNegativeButton(R.string.deny, new DialogInterface.OnClickListener() {
-              @Override
-              public void onClick(DialogInterface dialog, int which) {
-                dialog.dismiss();
-              }
-            })
+            .setNegativeButton(R.string.deny, (dialog, which) -> dialog.dismiss())
             .show();
 
         // At this time, it is unknown whether the user granted the permission
diff --git a/java/com/android/dialer/app/voicemail/VoicemailPlaybackLayout.java b/java/com/android/dialer/app/voicemail/VoicemailPlaybackLayout.java
index 99967dc..3f80220 100644
--- a/java/com/android/dialer/app/voicemail/VoicemailPlaybackLayout.java
+++ b/java/com/android/dialer/app/voicemail/VoicemailPlaybackLayout.java
@@ -92,16 +92,12 @@
           presenter.onVoicemailDeleted(viewHolder);
 
           final Uri deleteUri = voicemailUri;
-          final Runnable deleteCallback =
-              new Runnable() {
-                @Override
-                public void run() {
-                  if (Objects.equals(deleteUri, voicemailUri)) {
-                    CallLogAsyncTaskUtil.deleteVoicemail(
-                        context, deleteUri, VoicemailPlaybackLayout.this);
-                  }
-                }
-              };
+          final Runnable deleteCallback = () -> {
+            if (Objects.equals(deleteUri, voicemailUri)) {
+              CallLogAsyncTaskUtil.deleteVoicemail(
+                      context, deleteUri, VoicemailPlaybackLayout.this);
+            }
+          };
 
           final Handler handler = new Handler();
           // Add a little buffer time in case the user clicked "undo" at the end of the delay
@@ -113,15 +109,10 @@
                   R.string.snackbar_voicemail_deleted,
                   Snackbar.LENGTH_LONG)
               .setDuration(VOICEMAIL_DELETE_DELAY_MS)
-              .setAction(
-                  R.string.snackbar_undo,
-                  new View.OnClickListener() {
-                    @Override
-                    public void onClick(View view) {
-                      presenter.onVoicemailDeleteUndo(adapterPosition);
-                      handler.removeCallbacks(deleteCallback);
-                    }
-                  })
+              .setAction(R.string.snackbar_undo, view1 -> {
+                presenter.onVoicemailDeleteUndo(adapterPosition);
+                handler.removeCallbacks(deleteCallback);
+              })
               .setActionTextColor(
                   context.getResources().getColor(R.color.dialer_snackbar_action_text_color))
               .show();
diff --git a/java/com/android/dialer/binary/aosp/AospDialerApplication.java b/java/com/android/dialer/binary/aosp/AospDialerApplication.java
index fd50110..52366ce 100644
--- a/java/com/android/dialer/binary/aosp/AospDialerApplication.java
+++ b/java/com/android/dialer/binary/aosp/AospDialerApplication.java
@@ -1,5 +1,6 @@
 /*
  * Copyright (C) 2017 The Android Open Source Project
+ * Copyright (C) 2023 The LineageOS Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -81,12 +82,6 @@
 
   @Override
   public PhoneNumberCacheBindings newPhoneNumberCacheBindings() {
-    return new PhoneNumberCacheBindings() {
-      @Override
-      @Nullable
-      public CachedNumberLookupService getCachedNumberLookupService() {
-        return new LookupCacheService();
-      }
-    };
+    return LookupCacheService::new;
   }
 }
diff --git a/java/com/android/dialer/callstats/CallStatsAdapter.java b/java/com/android/dialer/callstats/CallStatsAdapter.java
index b55190e..2f18a8c 100644
--- a/java/com/android/dialer/callstats/CallStatsAdapter.java
+++ b/java/com/android/dialer/callstats/CallStatsAdapter.java
@@ -135,8 +135,7 @@
     mTotalItem = new CallStatsDetails(null, 0, null, null, null, null, null, 0);
     mInfoLookup = new ConcurrentHashMap<>();
 
-    mContactInfoCache = new ContactInfoCache(cache,
-        mContactInfoHelper, () -> notifyDataSetChanged());
+    mContactInfoCache = new ContactInfoCache(cache, mContactInfoHelper, this::notifyDataSetChanged);
     if (!PermissionsUtil.hasContactsReadPermissions(context)) {
       mContactInfoCache.disableRequestProcessing();
     }
diff --git a/java/com/android/dialer/callstats/DoubleDatePickerDialog.java b/java/com/android/dialer/callstats/DoubleDatePickerDialog.java
index ffbf46a..e0c40bf 100644
--- a/java/com/android/dialer/callstats/DoubleDatePickerDialog.java
+++ b/java/com/android/dialer/callstats/DoubleDatePickerDialog.java
@@ -106,51 +106,20 @@
   };
 
   private static final QuickSelection[] QUICKSELECTIONS = new QuickSelection[] {
-    new QuickSelection() {
-      @Override
-      public void adjustStartDate(Calendar date) {
-          date.set(Calendar.DAY_OF_MONTH, 1);
-      }
-    },
-    new QuickSelection() {
-      @Override
-      public void adjustStartDate(Calendar date) {
-        final int currentMonth = date.get(Calendar.MONTH);
-        date.set(Calendar.MONTH, currentMonth - (currentMonth % 3));
-        date.set(Calendar.DAY_OF_MONTH, 1);
-      }
-    },
-    new QuickSelection() {
-      @Override
-      public void adjustStartDate(Calendar date) {
-        date.set(Calendar.MONTH, 0);
-        date.set(Calendar.DAY_OF_MONTH, 1);
-      }
-    },
-    new QuickSelection() {
-      @Override
-      public void adjustStartDate(Calendar date) {
-        date.add(Calendar.WEEK_OF_YEAR, -1);
-      }
-    },
-    new QuickSelection() {
-      @Override
-      public void adjustStartDate(Calendar date) {
-        date.add(Calendar.MONTH, -1);
-      }
-    },
-    new QuickSelection() {
-      @Override
-      public void adjustStartDate(Calendar date) {
-        date.add(Calendar.MONTH, -3);
-      }
-    },
-    new QuickSelection() {
-      @Override
-      public void adjustStartDate(Calendar date) {
-        date.add(Calendar.YEAR, -1);
-      }
-    },
+          date -> date.set(Calendar.DAY_OF_MONTH, 1),
+          date -> {
+            final int currentMonth = date.get(Calendar.MONTH);
+            date.set(Calendar.MONTH, currentMonth - (currentMonth % 3));
+            date.set(Calendar.DAY_OF_MONTH, 1);
+          },
+          date -> {
+            date.set(Calendar.MONTH, 0);
+            date.set(Calendar.DAY_OF_MONTH, 1);
+          },
+          date -> date.add(Calendar.WEEK_OF_YEAR, -1),
+          date -> date.add(Calendar.MONTH, -1),
+          date -> date.add(Calendar.MONTH, -3),
+          date -> date.add(Calendar.YEAR, -1),
   };
 
   private static final String YEAR = "year";
diff --git a/java/com/android/dialer/common/concurrent/DialerExecutorModule.java b/java/com/android/dialer/common/concurrent/DialerExecutorModule.java
index 98738ed..b8659b1 100644
--- a/java/com/android/dialer/common/concurrent/DialerExecutorModule.java
+++ b/java/com/android/dialer/common/concurrent/DialerExecutorModule.java
@@ -1,5 +1,6 @@
 /*
  * Copyright (C) 2017 The Android Open Source Project
+ * Copyright (C) 2023 The LineageOS Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -56,16 +57,13 @@
   static ExecutorService provideNonUiThreadPool() {
     return Executors.newFixedThreadPool(
         5,
-        new ThreadFactory() {
-          @Override
-          public Thread newThread(Runnable runnable) {
-            LogUtil.i("DialerExecutorModule.newThread", "creating low priority thread");
-            Thread thread = new Thread(runnable, "DialerExecutors-LowPriority");
-            // Java thread priority 4 corresponds to Process.THREAD_PRIORITY_BACKGROUND (10)
-            thread.setPriority(4);
-            return thread;
-          }
-        });
+            runnable -> {
+              LogUtil.i("DialerExecutorModule.newThread", "creating low priority thread");
+              Thread thread = new Thread(runnable, "DialerExecutors-LowPriority");
+              // Java thread priority 4 corresponds to Process.THREAD_PRIORITY_BACKGROUND (10)
+              thread.setPriority(4);
+              return thread;
+            });
   }
 
   @Provides
@@ -73,16 +71,13 @@
   @NonUiSerial
   static ScheduledExecutorService provideNonUiSerialExecutorService() {
     return Executors.newSingleThreadScheduledExecutor(
-        new ThreadFactory() {
-          @Override
-          public Thread newThread(Runnable runnable) {
-            LogUtil.i("NonUiTaskBuilder.newThread", "creating serial thread");
-            Thread thread = new Thread(runnable, "DialerExecutors-LowPriority-Serial");
-            // Java thread priority 4 corresponds to Process.THREAD_PRIORITY_BACKGROUND (10)
-            thread.setPriority(4);
-            return thread;
-          }
-        });
+            runnable -> {
+              LogUtil.i("NonUiTaskBuilder.newThread", "creating serial thread");
+              Thread thread = new Thread(runnable, "DialerExecutors-LowPriority-Serial");
+              // Java thread priority 4 corresponds to Process.THREAD_PRIORITY_BACKGROUND (10)
+              thread.setPriority(4);
+              return thread;
+            });
   }
 
   @Provides
@@ -96,16 +91,13 @@
   @UiSerial
   static ScheduledExecutorService provideUiSerialExecutorService() {
     return Executors.newSingleThreadScheduledExecutor(
-        new ThreadFactory() {
-          @Override
-          public Thread newThread(Runnable runnable) {
-            LogUtil.i("DialerExecutorModule.newThread", "creating serial thread");
-            Thread thread = new Thread(runnable, "DialerExecutors-HighPriority-Serial");
-            // Java thread priority 5 corresponds to Process.THREAD_PRIORITY_DEFAULT (0)
-            thread.setPriority(5);
-            return thread;
-          }
-        });
+            runnable -> {
+              LogUtil.i("DialerExecutorModule.newThread", "creating serial thread");
+              Thread thread = new Thread(runnable, "DialerExecutors-HighPriority-Serial");
+              // Java thread priority 5 corresponds to Process.THREAD_PRIORITY_DEFAULT (0)
+              thread.setPriority(5);
+              return thread;
+            });
   }
 
   @Provides
diff --git a/java/com/android/dialer/common/concurrent/DialerFutures.java b/java/com/android/dialer/common/concurrent/DialerFutures.java
index ac88e6a..0c9f455 100644
--- a/java/com/android/dialer/common/concurrent/DialerFutures.java
+++ b/java/com/android/dialer/common/concurrent/DialerFutures.java
@@ -1,5 +1,6 @@
 /*
  * Copyright (C) 2017 The Android Open Source Project
+ * Copyright (C) 2023 The LineageOS Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -57,34 +58,31 @@
     final AtomicInteger pending = new AtomicInteger(output.futures.size());
     for (final ListenableFuture<? extends T> future : output.futures) {
       future.addListener(
-          new Runnable() {
-            @Override
-            public void run() {
-              // Call get() and then set() instead of getAndSet() because a volatile read/write is
-              // cheaper than a CAS and atomicity is guaranteed by setFuture.
-              AggregateFuture<T> output = ref.get();
-              if (output != null) {
-                T value = null;
-                try {
-                  value = Futures.getDone(future);
-                } catch (ExecutionException e) {
-                  ref.set(null); // unpin
-                  output.setException(e);
-                  return;
-                }
-                if (!predicate.apply(value)) {
-                  if (pending.decrementAndGet() == 0) {
-                    // we are the last future (and every other future hasn't matched or failed).
-                    output.set(defaultValue);
-                    // no point in clearing the ref, every other listener has already run
+              () -> {
+                // Call get() and then set() instead of getAndSet() because a volatile read/write is
+                // cheaper than a CAS and atomicity is guaranteed by setFuture.
+                AggregateFuture<T> output1 = ref.get();
+                if (output1 != null) {
+                  T value = null;
+                  try {
+                    value = Futures.getDone(future);
+                  } catch (ExecutionException e) {
+                    ref.set(null); // unpin
+                    output1.setException(e);
+                    return;
                   }
-                } else {
-                  ref.set(null); // unpin
-                  output.set(value);
+                  if (!predicate.apply(value)) {
+                    if (pending.decrementAndGet() == 0) {
+                      // we are the last future (and every other future hasn't matched or failed).
+                      output1.set(defaultValue);
+                      // no point in clearing the ref, every other listener has already run
+                    }
+                  } else {
+                    ref.set(null); // unpin
+                    output1.set(value);
+                  }
                 }
-              }
-            }
-          },
+              },
           MoreExecutors.directExecutor());
     }
     return output;
diff --git a/java/com/android/dialer/helplines/HelplineActivity.java b/java/com/android/dialer/helplines/HelplineActivity.java
index fefe692..5a62489 100755
--- a/java/com/android/dialer/helplines/HelplineActivity.java
+++ b/java/com/android/dialer/helplines/HelplineActivity.java
@@ -141,8 +141,7 @@
                 .setTitle(R.string.helplines_help_title)
                 .setMessage(R.string.helplines_help_message)
                 .setPositiveButton(android.R.string.ok, null)
-                .setNeutralButton(R.string.helpline_button_more, (dialog, which) -> {
-                    showMoreInfo(); })
+                .setNeutralButton(R.string.helpline_button_more, (dialog, which) -> showMoreInfo())
                 .show();
     }
 
diff --git a/java/com/android/dialer/helplines/HelplineAdapter.java b/java/com/android/dialer/helplines/HelplineAdapter.java
index 26e9011..1f67686 100644
--- a/java/com/android/dialer/helplines/HelplineAdapter.java
+++ b/java/com/android/dialer/helplines/HelplineAdapter.java
@@ -125,9 +125,7 @@
         }
 
         void bind(HelplineItem item) {
-            mItemView.setOnClickListener(v -> {
-                mListener.onItemClicked(item);
-            });
+            mItemView.setOnClickListener(v -> mListener.onItemClicked(item));
 
             String name = item.getName();
             if (!TextUtils.isEmpty(name)) {
@@ -151,9 +149,7 @@
             String number = item.getItem().getNumber();
             if (!TextUtils.isEmpty(number)) {
                 mCallIcon.setVisibility(View.VISIBLE);
-                mCallIcon.setOnClickListener(v -> {
-                    mListener.initiateCall(number);
-                });
+                mCallIcon.setOnClickListener(v -> mListener.initiateCall(number));
             }
         }
     }
diff --git a/java/com/android/dialer/interactions/UndemoteOutgoingCallReceiver.java b/java/com/android/dialer/interactions/UndemoteOutgoingCallReceiver.java
index 68b011a..76f7ade 100644
--- a/java/com/android/dialer/interactions/UndemoteOutgoingCallReceiver.java
+++ b/java/com/android/dialer/interactions/UndemoteOutgoingCallReceiver.java
@@ -1,5 +1,6 @@
 /*
  * Copyright (C) 2013 The Android Open Source Project
+ * Copyright (C) 2023 The LineageOS Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -50,15 +51,12 @@
       if (TextUtils.isEmpty(number)) {
         return;
       }
-      new Thread() {
-        @Override
-        public void run() {
-          final long id = getContactIdFromPhoneNumber(context, number);
-          if (id != NO_CONTACT_FOUND) {
-            undemoteContactWithId(context, id);
-          }
+      new Thread(() -> {
+        final long id = getContactIdFromPhoneNumber(context, number);
+        if (id != NO_CONTACT_FOUND) {
+          undemoteContactWithId(context, id);
         }
-      }.start();
+      }).start();
     }
   }
 
diff --git a/java/com/android/dialer/lookup/LookupProvider.java b/java/com/android/dialer/lookup/LookupProvider.java
index 42d7dd2..3061b55 100644
--- a/java/com/android/dialer/lookup/LookupProvider.java
+++ b/java/com/android/dialer/lookup/LookupProvider.java
@@ -1,5 +1,6 @@
 /*
  * Copyright (C) 2014 Xiao-Long Chen <chillermillerlong@hotmail.com>
+ * Copyright (C) 2023 The LineageOS Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -166,12 +167,9 @@
         final Location finalLastLocation = lastLocation;
         final int finalMaxResults = maxResults;
 
-        return execute(new Callable<Cursor>() {
-          @Override
-          public Cursor call() {
-            return handleFilter(match, projection, filter, finalMaxResults, finalLastLocation);
-          }
-        }, "FilterThread");
+        return execute(
+                () -> handleFilter(match, projection, filter, finalMaxResults, finalLastLocation),
+                "FilterThread");
     }
 
     return null;
diff --git a/java/com/android/dialer/notification/NotificationThrottler.java b/java/com/android/dialer/notification/NotificationThrottler.java
index f55f815..c34a883 100644
--- a/java/com/android/dialer/notification/NotificationThrottler.java
+++ b/java/com/android/dialer/notification/NotificationThrottler.java
@@ -1,5 +1,6 @@
 /*
  * Copyright (C) 2017 The Android Open Source Project
+ * Copyright (C) 2023 The LineageOS Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -112,14 +113,7 @@
         notifications.add(notification);
       }
     }
-    Collections.sort(
-        notifications,
-        new Comparator<StatusBarNotification>() {
-          @Override
-          public int compare(StatusBarNotification left, StatusBarNotification right) {
-            return Long.compare(left.getPostTime(), right.getPostTime());
-          }
-        });
+    notifications.sort(Comparator.comparingLong(StatusBarNotification::getPostTime));
     return notifications;
   }
 
diff --git a/java/com/android/dialer/simulator/impl/SimulatorVideoCall.java b/java/com/android/dialer/simulator/impl/SimulatorVideoCall.java
index 3c7cb3b..9dfe078 100644
--- a/java/com/android/dialer/simulator/impl/SimulatorVideoCall.java
+++ b/java/com/android/dialer/simulator/impl/SimulatorVideoCall.java
@@ -79,7 +79,7 @@
       handleNewConnection(connection);
       // Telecom will force the connection to switch to Dialing when we return it. Wait until after
       // we're returned it before changing call state.
-      ThreadUtil.postOnUiThread(() -> connection.setActive());
+      ThreadUtil.postOnUiThread(connection::setActive);
     }
   }
 
diff --git a/java/com/android/dialer/simulator/service/SimulatorService.java b/java/com/android/dialer/simulator/service/SimulatorService.java
index 974a3ee..1b679b5 100644
--- a/java/com/android/dialer/simulator/service/SimulatorService.java
+++ b/java/com/android/dialer/simulator/service/SimulatorService.java
@@ -1,5 +1,6 @@
 /*
  * Copyright (C) 2018 The Android Open Source Project
+ * Copyright (C) 2023 The LineageOS Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -89,34 +90,22 @@
 
         @Override
         public void populateDataBase() throws RemoteException {
-          doSecurityCheck(
-              () -> {
-                simulatorMainPortal.execute(new String[] {POPULATE_DATABASE});
-              });
+          doSecurityCheck(() -> simulatorMainPortal.execute(new String[] {POPULATE_DATABASE}));
         }
 
         @Override
         public void cleanDataBase() throws RemoteException {
-          doSecurityCheck(
-              () -> {
-                simulatorMainPortal.execute(new String[] {CLEAN_DATABASE});
-              });
+          doSecurityCheck(() -> simulatorMainPortal.execute(new String[] {CLEAN_DATABASE}));
         }
 
         @Override
         public void enableSimulatorMode() throws RemoteException {
-          doSecurityCheck(
-              () -> {
-                simulatorMainPortal.execute(new String[] {ENABLE_SIMULATOR_MODE});
-              });
+          doSecurityCheck(() -> simulatorMainPortal.execute(new String[] {ENABLE_SIMULATOR_MODE}));
         }
 
         @Override
         public void disableSimulatorMode() throws RemoteException {
-          doSecurityCheck(
-              () -> {
-                simulatorMainPortal.execute(new String[] {DISABLE_SIMULATOR_MODE});
-              });
+          doSecurityCheck(() -> simulatorMainPortal.execute(new String[] {DISABLE_SIMULATOR_MODE}));
         }
 
         @Override
diff --git a/java/com/android/dialer/util/DialerUtils.java b/java/com/android/dialer/util/DialerUtils.java
index 13c4929..ff0ba4f 100644
--- a/java/com/android/dialer/util/DialerUtils.java
+++ b/java/com/android/dialer/util/DialerUtils.java
@@ -95,13 +95,7 @@
           AlertDialog.Builder builder = new AlertDialog.Builder(context);
           builder.setMessage(R.string.outgoing_wps_warning);
           builder.setPositiveButton(
-              R.string.dialog_continue,
-              new OnClickListener() {
-                @Override
-                public void onClick(DialogInterface dialog, int which) {
-                  placeCallOrMakeToast(context, intent);
-                }
-              });
+              R.string.dialog_continue, (dialog, which) -> placeCallOrMakeToast(context, intent));
           builder.setNegativeButton(android.R.string.cancel, null);
           builder.create().show();
         } else {
diff --git a/java/com/android/dialer/voicemail/listui/error/VoicemailErrorMessage.java b/java/com/android/dialer/voicemail/listui/error/VoicemailErrorMessage.java
index cb1c329..c73a563 100644
--- a/java/com/android/dialer/voicemail/listui/error/VoicemailErrorMessage.java
+++ b/java/com/android/dialer/voicemail/listui/error/VoicemailErrorMessage.java
@@ -1,5 +1,6 @@
 /*
  * Copyright (C) 2016 The Android Open Source Project
+ * Copyright (C) 2023 The LineageOS Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -22,7 +23,6 @@
 import android.provider.VoicemailContract;
 import android.telecom.PhoneAccountHandle;
 import android.view.View;
-import android.view.View.OnClickListener;
 
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
@@ -130,13 +130,10 @@
   public static Action createChangeAirplaneModeAction(final Context context) {
     return new Action(
         context.getString(R.string.voicemail_action_turn_off_airplane_mode),
-        new OnClickListener() {
-          @Override
-          public void onClick(View v) {
-            Intent intent = new Intent(Settings.ACTION_AIRPLANE_MODE_SETTINGS);
-            context.startActivity(intent);
-          }
-        });
+            v -> {
+              Intent intent = new Intent(Settings.ACTION_AIRPLANE_MODE_SETTINGS);
+              context.startActivity(intent);
+            });
   }
 
   @NonNull
@@ -144,14 +141,11 @@
       final Context context, PhoneAccountHandle phoneAccountHandle) {
     return new Action(
         context.getString(R.string.voicemail_action_set_pin),
-        new OnClickListener() {
-          @Override
-          public void onClick(View v) {
-            Intent intent = new Intent(context, VoicemailChangePinActivity.class);
-            intent.putExtra(VoicemailClient.PARAM_PHONE_ACCOUNT_HANDLE, phoneAccountHandle);
-            context.startActivity(intent);
-          }
-        });
+            v -> {
+              Intent intent = new Intent(context, VoicemailChangePinActivity.class);
+              intent.putExtra(VoicemailClient.PARAM_PHONE_ACCOUNT_HANDLE, phoneAccountHandle);
+              context.startActivity(intent);
+            });
   }
 
   @NonNull
@@ -159,43 +153,32 @@
       final Context context) {
     return new Action(
         context.getString(R.string.voicemail_action_call_voicemail),
-        new OnClickListener() {
-          @Override
-          public void onClick(View v) {
-            PreCall.start(
+            v -> PreCall.start(
                 context,
                 CallIntentBuilder.forVoicemail(
-                    CallInitiationType.Type.VOICEMAIL_ERROR_MESSAGE));
-          }
-        });
+                    CallInitiationType.Type.VOICEMAIL_ERROR_MESSAGE)));
   }
 
   @NonNull
   public static Action createSyncAction(final Context context, final VoicemailStatus status) {
     return new Action(
         context.getString(R.string.voicemail_action_sync),
-        new OnClickListener() {
-          @Override
-          public void onClick(View v) {
-            Intent intent = new Intent(VoicemailContract.ACTION_SYNC_VOICEMAIL);
-            intent.setPackage(status.sourcePackage);
-            context.sendBroadcast(intent);
-          }
-        });
+            v -> {
+              Intent intent = new Intent(VoicemailContract.ACTION_SYNC_VOICEMAIL);
+              intent.setPackage(status.sourcePackage);
+              context.sendBroadcast(intent);
+            });
   }
 
   @NonNull
   public static Action createRetryAction(final Context context, final VoicemailStatus status) {
     return new Action(
         context.getString(R.string.voicemail_action_retry),
-        new OnClickListener() {
-          @Override
-          public void onClick(View v) {
-            Intent intent = new Intent(VoicemailContract.ACTION_SYNC_VOICEMAIL);
-            intent.setPackage(status.sourcePackage);
-            context.sendBroadcast(intent);
-          }
-        });
+            v -> {
+              Intent intent = new Intent(VoicemailContract.ACTION_SYNC_VOICEMAIL);
+              intent.setPackage(status.sourcePackage);
+              context.sendBroadcast(intent);
+            });
   }
 
   @NonNull
@@ -207,20 +190,17 @@
       PhoneAccountHandle phoneAccountHandle) {
     return new Action(
         context.getString(R.string.voicemail_action_turn_archive_on),
-        new OnClickListener() {
-          @Override
-          public void onClick(View v) {
-            Assert.checkArgument(
-                VoicemailComponent.get(context)
-                    .getVoicemailClient()
-                    .isVoicemailArchiveAvailable(context));
-            voicemailClient.setVoicemailArchiveEnabled(context, phoneAccountHandle, true);
-            Intent intent = new Intent(VoicemailContract.ACTION_SYNC_VOICEMAIL);
-            intent.setPackage(status.sourcePackage);
-            context.sendBroadcast(intent);
-            statusReader.refresh();
-          }
-        });
+            v -> {
+              Assert.checkArgument(
+                  VoicemailComponent.get(context)
+                      .getVoicemailClient()
+                      .isVoicemailArchiveAvailable(context));
+              voicemailClient.setVoicemailArchiveEnabled(context, phoneAccountHandle, true);
+              Intent intent = new Intent(VoicemailContract.ACTION_SYNC_VOICEMAIL);
+              intent.setPackage(status.sourcePackage);
+              context.sendBroadcast(intent);
+              statusReader.refresh();
+            });
   }
 
   @NonNull
@@ -231,16 +211,13 @@
       String preferenceKeyToUpdate) {
     return new Action(
         context.getString(R.string.voicemail_action_dimiss),
-        new OnClickListener() {
-          @Override
-          public void onClick(View v) {
-            Assert.checkArgument(
-                VoicemailComponent.get(context)
-                    .getVoicemailClient()
-                    .isVoicemailArchiveAvailable(context));
-            sharedPreferenceForAccount.edit().putBoolean(preferenceKeyToUpdate, true).apply();
-            statusReader.refresh();
-          }
-        });
+            v -> {
+              Assert.checkArgument(
+                  VoicemailComponent.get(context)
+                      .getVoicemailClient()
+                      .isVoicemailArchiveAvailable(context));
+              sharedPreferenceForAccount.edit().putBoolean(preferenceKeyToUpdate, true).apply();
+              statusReader.refresh();
+            });
   }
 }
diff --git a/java/com/android/dialer/voicemail/listui/error/VoicemailTosMessageCreator.java b/java/com/android/dialer/voicemail/listui/error/VoicemailTosMessageCreator.java
index 63cee71..1ce09dd 100644
--- a/java/com/android/dialer/voicemail/listui/error/VoicemailTosMessageCreator.java
+++ b/java/com/android/dialer/voicemail/listui/error/VoicemailTosMessageCreator.java
@@ -89,29 +89,23 @@
             getNewUserTosMessageText(),
             new Action(
                 getDeclineText(),
-                new OnClickListener() {
-                  @Override
-                  public void onClick(View v) {
-                    LogUtil.i("VoicemailTosMessageCreator.getTosMessage", "decline clicked");
-                    PhoneAccountHandle handle =
-                        new PhoneAccountHandle(
-                            ComponentName.unflattenFromString(status.phoneAccountComponentName),
-                            status.phoneAccountId);
-                    showDeclineTosDialog(handle);
-                  }
-                }),
+                    v -> {
+                      LogUtil.i("VoicemailTosMessageCreator.getTosMessage", "decline clicked");
+                      PhoneAccountHandle handle =
+                          new PhoneAccountHandle(
+                              ComponentName.unflattenFromString(status.phoneAccountComponentName),
+                              status.phoneAccountId);
+                      showDeclineTosDialog(handle);
+                    }),
             new Action(
                 getAcceptText(),
-                new OnClickListener() {
-                  @Override
-                  public void onClick(View v) {
-                    LogUtil.i("VoicemailTosMessageCreator.getTosMessage", "accept clicked");
-                    recordTosAcceptance();
-                    // Accepting the TOS also acknowledges the latest features
-                    recordFeatureAcknowledgement();
-                    statusReader.refresh();
-                  }
-                },
+                    v -> {
+                      LogUtil.i("VoicemailTosMessageCreator.getTosMessage", "accept clicked");
+                      recordTosAcceptance();
+                      // Accepting the TOS also acknowledges the latest features
+                      recordFeatureAcknowledgement();
+                      statusReader.refresh();
+                    },
                 true /* raised */))
         .setModal(true)
         .setImageResourceId(R.drawable.voicemail_tos_image);
@@ -174,28 +168,15 @@
     AlertDialog.Builder builder = new AlertDialog.Builder(context);
     builder.setTitle(R.string.terms_and_conditions_decline_dialog_title);
     builder.setMessage(getTosDeclinedDialogMessageId());
-    builder.setPositiveButton(
-        getTosDeclinedDialogDowngradeId(),
-        new DialogInterface.OnClickListener() {
-          @Override
-          public void onClick(DialogInterface dialog, int which) {
-            VoicemailClient voicemailClient = VoicemailComponent.get(context).getVoicemailClient();
-            if (voicemailClient.isVoicemailModuleEnabled()) {
-              voicemailClient.setVoicemailEnabled(context, status.getPhoneAccountHandle(), false);
-            } else {
-              TelephonyManagerCompat.setVisualVoicemailEnabled(telephonyManager, handle, false);
-            }
-          }
-        });
-
-    builder.setNegativeButton(
-        android.R.string.cancel,
-        new DialogInterface.OnClickListener() {
-          @Override
-          public void onClick(DialogInterface dialog, int which) {
-            dialog.dismiss();
-          }
-        });
+    builder.setPositiveButton(getTosDeclinedDialogDowngradeId(), (dialog, which) -> {
+      VoicemailClient voicemailClient = VoicemailComponent.get(context).getVoicemailClient();
+      if (voicemailClient.isVoicemailModuleEnabled()) {
+        voicemailClient.setVoicemailEnabled(context, status.getPhoneAccountHandle(), false);
+      } else {
+        TelephonyManagerCompat.setVisualVoicemailEnabled(telephonyManager, handle, false);
+      }
+    });
+    builder.setNegativeButton(android.R.string.cancel, (dialog, which) -> dialog.dismiss());
 
     builder.setCancelable(true);
     builder.show();
@@ -206,23 +187,12 @@
     builder.setMessage(R.string.verizon_terms_and_conditions_decline_set_pin_dialog_message);
     builder.setPositiveButton(
         R.string.verizon_terms_and_conditions_decline_set_pin_dialog_set_pin,
-        new DialogInterface.OnClickListener() {
-          @Override
-          public void onClick(DialogInterface dialog, int which) {
-            Intent intent = new Intent(TelephonyManager.ACTION_CONFIGURE_VOICEMAIL);
-            intent.putExtra(TelephonyManager.EXTRA_PHONE_ACCOUNT_HANDLE, phoneAccountHandle);
-            context.startActivity(intent);
-          }
-        });
-
-    builder.setNegativeButton(
-        android.R.string.cancel,
-        new DialogInterface.OnClickListener() {
-          @Override
-          public void onClick(DialogInterface dialog, int which) {
-            dialog.dismiss();
-          }
-        });
+            (dialog, which) -> {
+              Intent intent = new Intent(TelephonyManager.ACTION_CONFIGURE_VOICEMAIL);
+              intent.putExtra(TelephonyManager.EXTRA_PHONE_ACCOUNT_HANDLE, phoneAccountHandle);
+              context.startActivity(intent);
+            });
+    builder.setNegativeButton(android.R.string.cancel, (dialog, which) -> dialog.dismiss());
 
     builder.setCancelable(true);
     builder.show();
diff --git a/java/com/android/dialer/voicemail/listui/error/Vvm3VoicemailMessageCreator.java b/java/com/android/dialer/voicemail/listui/error/Vvm3VoicemailMessageCreator.java
index 84bbe60..9da10e9 100644
--- a/java/com/android/dialer/voicemail/listui/error/Vvm3VoicemailMessageCreator.java
+++ b/java/com/android/dialer/voicemail/listui/error/Vvm3VoicemailMessageCreator.java
@@ -1,5 +1,6 @@
 /*
  * Copyright (C) 2016 The Android Open Source Project
+ * Copyright (C) 2023 The LineageOS Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -288,18 +289,15 @@
   private static Action createCallCustomerSupportAction(final Context context) {
     return new Action(
         context.getString(R.string.voicemail_action_call_customer_support),
-        new OnClickListener() {
-          @Override
-          public void onClick(View v) {
-            Intent intent =
-                new Intent(
-                    Intent.ACTION_CALL,
-                    Uri.parse(
-                        "tel:"
-                            + context.getString(
-                                R.string.verizon_domestic_customer_support_number)));
-            context.startActivity(intent);
-          }
-        });
+            v -> {
+              Intent intent =
+                  new Intent(
+                      Intent.ACTION_CALL,
+                      Uri.parse(
+                          "tel:"
+                              + context.getString(
+                                  R.string.verizon_domestic_customer_support_number)));
+              context.startActivity(intent);
+            });
   }
 }
diff --git a/java/com/android/dialer/voicemail/settings/VoicemailChangePinActivity.java b/java/com/android/dialer/voicemail/settings/VoicemailChangePinActivity.java
index 47d8ee3..45c5cc0 100644
--- a/java/com/android/dialer/voicemail/settings/VoicemailChangePinActivity.java
+++ b/java/com/android/dialer/voicemail/settings/VoicemailChangePinActivity.java
@@ -166,12 +166,7 @@
               .setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
           activity.showError(
               activity.getString(R.string.change_pin_system_error),
-              new OnDismissListener() {
-                @Override
-                public void onDismiss(DialogInterface dialog) {
-                  activity.finish();
-                }
-              });
+                  dialog -> activity.finish());
         } else {
           LogUtil.e(TAG, "invalid default old PIN: " + activity.getChangePinResultMessage(result));
           // If the default old PIN is rejected by the server, the PIN is probably changed
diff --git a/java/com/android/dialer/voicemail/settings/VoicemailSettingsFragment.java b/java/com/android/dialer/voicemail/settings/VoicemailSettingsFragment.java
index 49d4a60..942f396 100644
--- a/java/com/android/dialer/voicemail/settings/VoicemailSettingsFragment.java
+++ b/java/com/android/dialer/voicemail/settings/VoicemailSettingsFragment.java
@@ -18,7 +18,6 @@
 package com.android.dialer.voicemail.settings;
 
 import android.app.AlertDialog;
-import android.content.DialogInterface;
 import android.content.Intent;
 import android.os.Bundle;
 import android.provider.Settings;
@@ -303,26 +302,16 @@
     AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
     builder.setTitle(R.string.confirm_disable_voicemail_dialog_title);
     builder.setMessage(R.string.confirm_disable_voicemail_dialog_message);
-    builder.setPositiveButton(
-        R.string.confirm_disable_voicemail_accept_dialog_label,
-        new DialogInterface.OnClickListener() {
-          @Override
-          public void onClick(DialogInterface dialog, int which) {
-            LogUtil.i(TAG, "showDisableConfirmationDialog, confirmed");
-            updateVoicemailEnabled(false);
-            dialog.dismiss();
-          }
-        });
-
-    builder.setNegativeButton(
-        android.R.string.cancel,
-        new DialogInterface.OnClickListener() {
-          @Override
-          public void onClick(DialogInterface dialog, int which) {
-            LogUtil.i(TAG, "showDisableConfirmationDialog, cancelled");
-            dialog.dismiss();
-          }
-        });
+    builder.setPositiveButton(R.string.confirm_disable_voicemail_accept_dialog_label,
+            (dialog, which) -> {
+      LogUtil.i(TAG, "showDisableConfirmationDialog, confirmed");
+      updateVoicemailEnabled(false);
+      dialog.dismiss();
+    });
+    builder.setNegativeButton(android.R.string.cancel, (dialog, which) -> {
+      LogUtil.i(TAG, "showDisableConfirmationDialog, cancelled");
+      dialog.dismiss();
+    });
 
     builder.setCancelable(true);
     builder.show();
diff --git a/java/com/android/incallui/CallerInfoUtils.java b/java/com/android/incallui/CallerInfoUtils.java
index 6f73f2f..27cb6a8 100644
--- a/java/com/android/incallui/CallerInfoUtils.java
+++ b/java/com/android/incallui/CallerInfoUtils.java
@@ -1,5 +1,6 @@
 /*
  * Copyright (C) 2016 The Android Open Source Project
+ * Copyright (C) 2023 The LineageOS Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,12 +20,10 @@
 import static android.telephony.SubscriptionManager.INVALID_SUBSCRIPTION_ID;
 
 import android.content.Context;
-import android.content.Loader;
-import android.content.Loader.OnLoadCompleteListener;
 import android.net.Uri;
 import android.telecom.TelecomManager;
 import android.text.TextUtils;
-import com.android.contacts.common.model.Contact;
+
 import com.android.contacts.common.model.ContactLoader;
 import com.android.dialer.common.LogUtil;
 import com.android.dialer.phonenumbercache.CachedNumberLookupService;
@@ -268,15 +267,11 @@
     final ContactLoader loader =
         new ContactLoader(context, contactUri, true /* postViewNotification */);
     loader.registerListener(
-        0,
-        new OnLoadCompleteListener<Contact>() {
-          @Override
-          public void onLoadComplete(Loader<Contact> loader, Contact contact) {
-            try {
-              loader.reset();
-            } catch (RuntimeException e) {
-              LogUtil.e("CallerInfoUtils.onLoadComplete", "Error resetting loader", e);
-            }
+        0, (loader1, contact) -> {
+          try {
+            loader1.reset();
+          } catch (RuntimeException e) {
+            LogUtil.e("CallerInfoUtils.onLoadComplete", "Error resetting loader", e);
           }
         });
     loader.startLoading();
diff --git a/java/com/android/incallui/ConferenceParticipantListAdapter.java b/java/com/android/incallui/ConferenceParticipantListAdapter.java
index 3760342..38e8e86 100644
--- a/java/com/android/incallui/ConferenceParticipantListAdapter.java
+++ b/java/com/android/incallui/ConferenceParticipantListAdapter.java
@@ -65,30 +65,21 @@
   /** Contact photo manager to retrieve cached contact photo information. */
   private final ContactPhotoManager contactPhotoManager;
   /** Listener used to handle tap of the "disconnect' button for a participant. */
-  private View.OnClickListener disconnectListener =
-      new View.OnClickListener() {
-        @Override
-        public void onClick(View view) {
-          DialerCall call = getCallFromView(view);
-          LogUtil.i(
-              "ConferenceParticipantListAdapter.mDisconnectListener.onClick", "call: " + call);
-          if (call != null) {
-            call.disconnect();
-          }
-        }
-      };
+  private final View.OnClickListener disconnectListener = view -> {
+    DialerCall call = getCallFromView(view);
+    LogUtil.i("ConferenceParticipantListAdapter.mDisconnectListener.onClick", "call: " + call);
+    if (call != null) {
+      call.disconnect();
+    }
+  };
   /** Listener used to handle tap of the "separate' button for a participant. */
-  private View.OnClickListener separateListener =
-      new View.OnClickListener() {
-        @Override
-        public void onClick(View view) {
-          DialerCall call = getCallFromView(view);
-          LogUtil.i("ConferenceParticipantListAdapter.mSeparateListener.onClick", "call: " + call);
-          if (call != null) {
-            call.splitFromConference();
-          }
-        }
-      };
+  private final View.OnClickListener separateListener = view -> {
+    DialerCall call = getCallFromView(view);
+    LogUtil.i("ConferenceParticipantListAdapter.mSeparateListener.onClick", "call: " + call);
+    if (call != null) {
+      call.splitFromConference();
+    }
+  };
   /** The conference participants to show in the ListView. */
   private final List<ParticipantInfo> conferenceParticipants = new ArrayList<>();
   /** {@code True} if the conference parent supports separating calls from the conference. */
@@ -430,29 +421,24 @@
 
   /** Sorts the participant list by contact name. */
   private void sortParticipantList() {
-    Collections.sort(
-        conferenceParticipants,
-        new Comparator<ParticipantInfo>() {
-          @Override
-          public int compare(ParticipantInfo p1, ParticipantInfo p2) {
-            // Contact names might be null, so replace with empty string.
-            ContactCacheEntry c1 = p1.getContactCacheEntry();
-            String p1Name =
-                ContactsComponent.get(getContext())
-                    .contactDisplayPreferences()
-                    .getSortName(c1.namePrimary, c1.nameAlternative);
-            p1Name = p1Name != null ? p1Name : "";
+    conferenceParticipants.sort((p1, p2) -> {
+      // Contact names might be null, so replace with empty string.
+      ContactCacheEntry c1 = p1.getContactCacheEntry();
+      String p1Name =
+              ContactsComponent.get(getContext())
+                      .contactDisplayPreferences()
+                      .getSortName(c1.namePrimary, c1.nameAlternative);
+      p1Name = p1Name != null ? p1Name : "";
 
-            ContactCacheEntry c2 = p2.getContactCacheEntry();
-            String p2Name =
-                ContactsComponent.get(getContext())
-                    .contactDisplayPreferences()
-                    .getSortName(c2.namePrimary, c2.nameAlternative);
-            p2Name = p2Name != null ? p2Name : "";
+      ContactCacheEntry c2 = p2.getContactCacheEntry();
+      String p2Name =
+              ContactsComponent.get(getContext())
+                      .contactDisplayPreferences()
+                      .getSortName(c2.namePrimary, c2.nameAlternative);
+      p2Name = p2Name != null ? p2Name : "";
 
-            return p1Name.compareToIgnoreCase(p2Name);
-          }
-        });
+      return p1Name.compareToIgnoreCase(p2Name);
+    });
   }
 
   private DialerCall getCallFromView(View view) {
diff --git a/java/com/android/incallui/PostCharDialogFragment.java b/java/com/android/incallui/PostCharDialogFragment.java
index 228482d..42e3d34 100644
--- a/java/com/android/incallui/PostCharDialogFragment.java
+++ b/java/com/android/incallui/PostCharDialogFragment.java
@@ -64,20 +64,8 @@
 
     builder.setPositiveButton(
         R.string.pause_prompt_yes,
-        new DialogInterface.OnClickListener() {
-          @Override
-          public void onClick(DialogInterface dialog, int whichButton) {
-            TelecomAdapter.getInstance().postDialContinue(callId, true);
-          }
-        });
-    builder.setNegativeButton(
-        R.string.pause_prompt_no,
-        new DialogInterface.OnClickListener() {
-          @Override
-          public void onClick(DialogInterface dialog, int whichButton) {
-            dialog.cancel();
-          }
-        });
+            (dialog, whichButton) -> TelecomAdapter.getInstance().postDialContinue(callId, true));
+    builder.setNegativeButton(R.string.pause_prompt_no, (dialog, whichButton) -> dialog.cancel());
 
     final AlertDialog dialog = builder.create();
     return dialog;
diff --git a/java/com/android/incallui/VideoCallPresenter.java b/java/com/android/incallui/VideoCallPresenter.java
index b054724..3f92453 100644
--- a/java/com/android/incallui/VideoCallPresenter.java
+++ b/java/com/android/incallui/VideoCallPresenter.java
@@ -1,5 +1,6 @@
 /*
  * Copyright (C) 2014 The Android Open Source Project
+ * Copyright (C) 2023 The LineageOS Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -129,24 +130,20 @@
    * enter fullscreen mode if the dialpad is visible (doing so would make it impossible to exit the
    * dialpad).
    */
-  private Runnable autoFullscreenRunnable =
-      new Runnable() {
-        @Override
-        public void run() {
-          if (autoFullScreenPending
-              && !InCallPresenter.getInstance().isDialpadVisible()
-              && isVideoMode) {
+  private final Runnable autoFullscreenRunnable = () -> {
+    if (autoFullScreenPending
+            && !InCallPresenter.getInstance().isDialpadVisible()
+            && isVideoMode) {
 
-            LogUtil.v("VideoCallPresenter.mAutoFullScreenRunnable", "entering fullscreen mode");
-            InCallPresenter.getInstance().setFullScreen(true);
-            autoFullScreenPending = false;
-          } else {
-            LogUtil.v(
-                "VideoCallPresenter.mAutoFullScreenRunnable",
-                "skipping scheduled fullscreen mode.");
-          }
-        }
-      };
+      LogUtil.v("VideoCallPresenter.mAutoFullScreenRunnable", "entering fullscreen mode");
+      InCallPresenter.getInstance().setFullScreen(true);
+      autoFullScreenPending = false;
+    } else {
+      LogUtil.v(
+              "VideoCallPresenter.mAutoFullScreenRunnable",
+              "skipping scheduled fullscreen mode.");
+    }
+  };
 
   private boolean isVideoCallScreenUiReady;
 
diff --git a/java/com/android/incallui/answer/impl/AnswerFragment.java b/java/com/android/incallui/answer/impl/AnswerFragment.java
index a171b22..5f13ba7 100644
--- a/java/com/android/incallui/answer/impl/AnswerFragment.java
+++ b/java/com/android/incallui/answer/impl/AnswerFragment.java
@@ -230,14 +230,10 @@
     answerAndReleaseButton
         .animate()
         .alpha(0)
-        .withEndAction(
-            new Runnable() {
-              @Override
-              public void run() {
-                affordanceHolderLayout.reset(false);
-                secondaryButton.animate().alpha(1);
-              }
-            });
+        .withEndAction(() -> {
+          affordanceHolderLayout.reset(false);
+          secondaryButton.animate().alpha(1);
+        });
   }
 
   private final AccessibilityDelegate accessibilityDelegate =
@@ -410,13 +406,7 @@
             : SecondaryBehavior.REJECT_WITH_SMS;
     secondaryBehavior.applyToView(secondaryButton);
 
-    secondaryButton.setOnClickListener(
-        new OnClickListener() {
-          @Override
-          public void onClick(View v) {
-            performSecondaryButtonAction();
-          }
-        });
+    secondaryButton.setOnClickListener(v -> performSecondaryButtonAction());
     secondaryButton.setClickable(AccessibilityUtil.isAccessibilityEnabled(getContext()));
     secondaryButton.setFocusable(AccessibilityUtil.isAccessibilityEnabled(getContext()));
     secondaryButton.setAccessibilityDelegate(accessibilityDelegate);
@@ -441,13 +431,7 @@
       answerAndReleaseButton.setVisibility(View.INVISIBLE);
       answerScreenDelegate.onAnswerAndReleaseButtonDisabled();
     }
-    answerAndReleaseButton.setOnClickListener(
-        new OnClickListener() {
-          @Override
-          public void onClick(View v) {
-            performAnswerAndReleaseButtonAction();
-          }
-        });
+    answerAndReleaseButton.setOnClickListener(v -> performAnswerAndReleaseButtonAction());
   }
 
   /** Initialize chip buttons */
@@ -684,18 +668,14 @@
     importanceBadge = view.findViewById(R.id.incall_important_call_badge);
     importanceBadge
         .getViewTreeObserver()
-        .addOnGlobalLayoutListener(
-            new OnGlobalLayoutListener() {
-              @Override
-              public void onGlobalLayout() {
-                int leftRightPadding = importanceBadge.getHeight() / 2;
-                importanceBadge.setPadding(
-                    leftRightPadding,
-                    importanceBadge.getPaddingTop(),
-                    leftRightPadding,
-                    importanceBadge.getPaddingBottom());
-              }
-            });
+        .addOnGlobalLayoutListener(() -> {
+          int leftRightPadding = importanceBadge.getHeight() / 2;
+          importanceBadge.setPadding(
+              leftRightPadding,
+              importanceBadge.getPaddingTop(),
+              leftRightPadding,
+              importanceBadge.getPaddingBottom());
+        });
     updateImportanceBadgeVisibility();
 
     contactGridManager = new ContactGridManager(view, null, 0, false /* showAnonymousAvatar */);
@@ -988,14 +968,10 @@
     secondaryButton
         .animate()
         .alpha(0)
-        .withEndAction(
-            new Runnable() {
-              @Override
-              public void run() {
-                affordanceHolderLayout.reset(false);
-                secondaryButton.animate().alpha(1);
-              }
-            });
+        .withEndAction(() -> {
+          affordanceHolderLayout.reset(false);
+          secondaryButton.animate().alpha(1);
+        });
 
     TelecomUtil.silenceRinger(getContext());
   }
diff --git a/java/com/android/incallui/answer/impl/CreateCustomSmsDialogFragment.java b/java/com/android/incallui/answer/impl/CreateCustomSmsDialogFragment.java
index b6a192b..d14d59f 100644
--- a/java/com/android/incallui/answer/impl/CreateCustomSmsDialogFragment.java
+++ b/java/com/android/incallui/answer/impl/CreateCustomSmsDialogFragment.java
@@ -20,7 +20,6 @@
 import android.app.AlertDialog;
 import android.app.Dialog;
 import android.content.DialogInterface;
-import android.content.DialogInterface.OnCancelListener;
 import android.content.DialogInterface.OnShowListener;
 import android.os.Bundle;
 import android.text.Editable;
@@ -69,43 +68,21 @@
     builder
         .setCancelable(true)
         .setView(view)
-        .setPositiveButton(
-            R.string.call_incoming_custom_message_send,
-            new DialogInterface.OnClickListener() {
-              @Override
-              public void onClick(DialogInterface dialogInterface, int i) {
-                FragmentUtils.getParentUnsafe(
-                        CreateCustomSmsDialogFragment.this, CreateCustomSmsHolder.class)
+        .setPositiveButton(R.string.call_incoming_custom_message_send, (dialogInterface, i) -> {
+            FragmentUtils.getParentUnsafe(
+                    CreateCustomSmsDialogFragment.this, CreateCustomSmsHolder.class)
                     .customSmsCreated(editText.getText().toString().trim());
-                dismiss();
-              }
-            })
-        .setNegativeButton(
-            R.string.call_incoming_custom_message_cancel,
-            new DialogInterface.OnClickListener() {
-              @Override
-              public void onClick(DialogInterface dialogInterface, int i) {
-                dismiss();
-              }
-            })
-        .setOnCancelListener(
-            new OnCancelListener() {
-              @Override
-              public void onCancel(DialogInterface dialogInterface) {
-                dismiss();
-              }
-            })
+            dismiss();
+        })
+        .setNegativeButton(R.string.call_incoming_custom_message_cancel,
+                (dialogInterface, i) -> dismiss())
+        .setOnCancelListener(dialogInterface -> dismiss())
         .setTitle(R.string.call_incoming_respond_via_sms_custom_message);
     final AlertDialog customMessagePopup = builder.create();
     customMessagePopup.setOnShowListener(
-        new OnShowListener() {
-          @Override
-          public void onShow(DialogInterface dialogInterface) {
-            ((AlertDialog) dialogInterface)
-                .getButton(AlertDialog.BUTTON_POSITIVE)
-                .setEnabled(false);
-          }
-        });
+            dialogInterface -> ((AlertDialog) dialogInterface)
+                    .getButton(AlertDialog.BUTTON_POSITIVE)
+                    .setEnabled(false));
 
     editText.addTextChangedListener(
         new TextWatcher() {
diff --git a/java/com/android/incallui/answer/impl/SmsBottomSheetFragment.java b/java/com/android/incallui/answer/impl/SmsBottomSheetFragment.java
index d3f0ca1..d8b5ba4 100644
--- a/java/com/android/incallui/answer/impl/SmsBottomSheetFragment.java
+++ b/java/com/android/incallui/answer/impl/SmsBottomSheetFragment.java
@@ -26,7 +26,6 @@
 import android.view.ContextThemeWrapper;
 import android.view.LayoutInflater;
 import android.view.View;
-import android.view.View.OnClickListener;
 import android.view.ViewGroup;
 import android.view.ViewGroup.LayoutParams;
 import android.view.WindowManager;
@@ -116,14 +115,11 @@
     textView.setLayoutParams(params);
 
     textView.setOnClickListener(
-        new OnClickListener() {
-          @Override
-          public void onClick(View v) {
-            FragmentUtils.getParentUnsafe(SmsBottomSheetFragment.this, SmsSheetHolder.class)
-                .smsSelected(text);
-            dismiss();
-          }
-        });
+            v -> {
+              FragmentUtils.getParentUnsafe(SmsBottomSheetFragment.this, SmsSheetHolder.class)
+                  .smsSelected(text);
+              dismiss();
+            });
     return textView;
   }
 
diff --git a/java/com/android/incallui/answer/impl/affordance/SwipeButtonHelper.java b/java/com/android/incallui/answer/impl/affordance/SwipeButtonHelper.java
index 3271162..5895f9c 100644
--- a/java/com/android/incallui/answer/impl/affordance/SwipeButtonHelper.java
+++ b/java/com/android/incallui/answer/impl/affordance/SwipeButtonHelper.java
@@ -340,16 +340,13 @@
     }
     ValueAnimator animator = ValueAnimator.ofFloat(targetView.getCircleRadius(), radius);
     animator.addUpdateListener(
-        new ValueAnimator.AnimatorUpdateListener() {
-          @Override
-          public void onAnimationUpdate(ValueAnimator animation) {
-            float newRadius = (float) animation.getAnimatedValue();
-            targetView.setCircleRadiusWithoutAnimation(newRadius);
-            float translation = getTranslationFromRadius(newRadius);
-            SwipeButtonHelper.this.translation = right ? -translation : translation;
-            updateIconsFromTranslation(targetView);
-          }
-        });
+            animation -> {
+              float newRadius = (float) animation.getAnimatedValue();
+              targetView.setCircleRadiusWithoutAnimation(newRadius);
+              float translation = getTranslationFromRadius(newRadius);
+              SwipeButtonHelper.this.translation = right ? -translation : translation;
+              updateIconsFromTranslation(targetView);
+            });
     return animator;
   }
 
@@ -388,13 +385,7 @@
 
     ValueAnimator animator = ValueAnimator.ofFloat(translation, target);
     flingAnimationUtils.apply(animator, translation, target, vel);
-    animator.addUpdateListener(
-        new ValueAnimator.AnimatorUpdateListener() {
-          @Override
-          public void onAnimationUpdate(ValueAnimator animation) {
-            translation = (float) animation.getAnimatedValue();
-          }
-        });
+    animator.addUpdateListener(animation -> translation = (float) animation.getAnimatedValue());
     animator.addListener(flingEndListener);
     if (!snapBack) {
       startFinishingCircleAnimation(vel * 0.375f, new AnimationEndRunnable(right), right);
diff --git a/java/com/android/incallui/answer/impl/affordance/SwipeButtonView.java b/java/com/android/incallui/answer/impl/affordance/SwipeButtonView.java
index a875723..133e714 100644
--- a/java/com/android/incallui/answer/impl/affordance/SwipeButtonView.java
+++ b/java/com/android/incallui/answer/impl/affordance/SwipeButtonView.java
@@ -336,15 +336,11 @@
     circleAnimator = animator;
     circleStartValue = this.circleRadius;
     circleWillBeHidden = circleRadius == 0.0f;
-    animator.addUpdateListener(
-        new ValueAnimator.AnimatorUpdateListener() {
-          @Override
-          public void onAnimationUpdate(ValueAnimator animation) {
-            SwipeButtonView.this.circleRadius = (float) animation.getAnimatedValue();
-            updateIconColor();
-            invalidate();
-          }
-        });
+    animator.addUpdateListener(animation -> {
+      SwipeButtonView.this.circleRadius = (float) animation.getAnimatedValue();
+      updateIconColor();
+      invalidate();
+    });
     animator.addListener(circleEndListener);
     return animator;
   }
@@ -377,14 +373,10 @@
     } else {
       ValueAnimator animator = ValueAnimator.ofFloat(tmageScale, imageScale);
       scaleAnimator = animator;
-      animator.addUpdateListener(
-          new ValueAnimator.AnimatorUpdateListener() {
-            @Override
-            public void onAnimationUpdate(ValueAnimator animation) {
-              tmageScale = (float) animation.getAnimatedValue();
-              invalidate();
-            }
-          });
+      animator.addUpdateListener(animation -> {
+        tmageScale = (float) animation.getAnimatedValue();
+        invalidate();
+      });
       animator.addListener(scaleEndListener);
       if (interpolator == null) {
         interpolator =
@@ -446,17 +438,13 @@
       int currentAlpha = getImageAlpha();
       ValueAnimator animator = ValueAnimator.ofInt(currentAlpha, endAlpha);
       alphaAnimator = animator;
-      animator.addUpdateListener(
-          new ValueAnimator.AnimatorUpdateListener() {
-            @Override
-            public void onAnimationUpdate(ValueAnimator animation) {
-              int alpha = (int) animation.getAnimatedValue();
-              if (background != null) {
-                background.mutate().setAlpha(alpha);
-              }
-              setImageAlpha(alpha);
-            }
-          });
+      animator.addUpdateListener(animation -> {
+        int alpha1 = (int) animation.getAnimatedValue();
+        if (background != null) {
+          background.mutate().setAlpha(alpha1);
+        }
+        setImageAlpha(alpha1);
+      });
       animator.addListener(alphaEndListener);
       if (interpolator == null) {
         interpolator =
diff --git a/java/com/android/incallui/answer/impl/answermethod/FlingUpDownTouchHandler.java b/java/com/android/incallui/answer/impl/answermethod/FlingUpDownTouchHandler.java
index f42e6bd..afaf799 100644
--- a/java/com/android/incallui/answer/impl/answermethod/FlingUpDownTouchHandler.java
+++ b/java/com/android/incallui/answer/impl/answermethod/FlingUpDownTouchHandler.java
@@ -425,13 +425,8 @@
 
   private ValueAnimator createProgressAnimator(float targetProgress) {
     ValueAnimator animator = ValueAnimator.ofFloat(currentProgress, targetProgress);
-    animator.addUpdateListener(
-        new AnimatorUpdateListener() {
-          @Override
-          public void onAnimationUpdate(ValueAnimator animation) {
-            setCurrentProgress((Float) animation.getAnimatedValue());
-          }
-        });
+    animator.addUpdateListener(animation ->
+            setCurrentProgress((Float) animation.getAnimatedValue()));
     return animator;
   }
 
diff --git a/java/com/android/incallui/incall/impl/MappedButtonConfig.java b/java/com/android/incallui/incall/impl/MappedButtonConfig.java
index 0d7e273..f313b00 100644
--- a/java/com/android/incallui/incall/impl/MappedButtonConfig.java
+++ b/java/com/android/incallui/incall/impl/MappedButtonConfig.java
@@ -112,16 +112,13 @@
    */
   @NonNull
   public Comparator<Integer> getSlotComparator() {
-    return new Comparator<Integer>() {
-      @Override
-      public int compare(Integer lhs, Integer rhs) {
-        MappingInfo lhsInfo = lookupMappingInfo(lhs);
-        MappingInfo rhsInfo = lookupMappingInfo(rhs);
-        if (lhsInfo.getSlot() != rhsInfo.getSlot()) {
-          throw new IllegalArgumentException("lhs and rhs don't go in the same slot");
-        }
-        return lhsInfo.getSlotOrder() - rhsInfo.getSlotOrder();
+    return (lhs, rhs) -> {
+      MappingInfo lhsInfo = lookupMappingInfo(lhs);
+      MappingInfo rhsInfo = lookupMappingInfo(rhs);
+      if (lhsInfo.getSlot() != rhsInfo.getSlot()) {
+        throw new IllegalArgumentException("lhs and rhs don't go in the same slot");
       }
+      return lhsInfo.getSlotOrder() - rhsInfo.getSlotOrder();
     };
   }
 
@@ -136,13 +133,10 @@
    */
   @NonNull
   public Comparator<Integer> getConflictComparator() {
-    return new Comparator<Integer>() {
-      @Override
-      public int compare(Integer lhs, Integer rhs) {
-        MappingInfo lhsInfo = lookupMappingInfo(lhs);
-        MappingInfo rhsInfo = lookupMappingInfo(rhs);
-        return lhsInfo.getConflictOrder() - rhsInfo.getConflictOrder();
-      }
+    return (lhs, rhs) -> {
+      MappingInfo lhsInfo = lookupMappingInfo(lhs);
+      MappingInfo rhsInfo = lookupMappingInfo(rhs);
+      return lhsInfo.getConflictOrder() - rhsInfo.getConflictOrder();
     };
   }
 
diff --git a/java/com/android/incallui/ringtone/InCallTonePlayer.java b/java/com/android/incallui/ringtone/InCallTonePlayer.java
index 7261d1e..3f7d81a 100644
--- a/java/com/android/incallui/ringtone/InCallTonePlayer.java
+++ b/java/com/android/incallui/ringtone/InCallTonePlayer.java
@@ -1,5 +1,6 @@
 /*
  * Copyright (C) 2016 The Android Open Source Project
+ * Copyright (C) 2023 The LineageOS Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -24,6 +25,7 @@
 
 import com.android.incallui.Log;
 import com.android.incallui.async.PausableExecutor;
+
 import java.util.Objects;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
@@ -76,13 +78,7 @@
     }
     final ToneGeneratorInfo info = getToneGeneratorInfo(tone);
     numPlayingTones = new CountDownLatch(1);
-    executor.execute(
-        new Runnable() {
-          @Override
-          public void run() {
-            playOnBackgroundThread(info);
-          }
-        });
+    executor.execute(() -> playOnBackgroundThread(info));
   }
 
   private ToneGeneratorInfo getToneGeneratorInfo(int tone) {
diff --git a/java/com/android/incallui/rtt/impl/AudioSelectMenu.java b/java/com/android/incallui/rtt/impl/AudioSelectMenu.java
index 1c83637..b9cd358 100644
--- a/java/com/android/incallui/rtt/impl/AudioSelectMenu.java
+++ b/java/com/android/incallui/rtt/impl/AudioSelectMenu.java
@@ -1,5 +1,6 @@
 /*
  * Copyright (C) 2018 The Android Open Source Project
+ * Copyright (C) 2023 The LineageOS Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -71,10 +72,7 @@
     } else if (audioState.getRoute() == itemRoute) {
       item.setChecked(true);
     }
-    item.setOnClickListener(
-        (v) -> {
-          inCallButtonUiDelegate.setAudioRoute(itemRoute);
-        });
+    item.setOnClickListener(v -> inCallButtonUiDelegate.setAudioRoute(itemRoute));
   }
 
   void setAudioState(CallAudioState audioState) {
diff --git a/java/com/android/incallui/spam/SpamCallListListener.java b/java/com/android/incallui/spam/SpamCallListListener.java
index 96eac1b..cc05509 100644
--- a/java/com/android/incallui/spam/SpamCallListListener.java
+++ b/java/com/android/incallui/spam/SpamCallListListener.java
@@ -27,7 +27,6 @@
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
 
-import com.android.dialer.R;
 import com.android.dialer.common.Assert;
 import com.android.dialer.common.LogUtil;
 import com.android.dialer.common.concurrent.DialerExecutor.Worker;
@@ -117,7 +116,7 @@
         new NumberInCallHistoryWorker(context, number, call.getCountryIso());
     dialerExecutorFactory
         .createNonUiTaskBuilder(historyTask)
-        .onSuccess((result) -> call.setCallHistoryStatus(result))
+        .onSuccess(call::setCallHistoryStatus)
         .build()
         .executeParallel(null);
   }
diff --git a/java/com/android/incallui/spam/SpamNotificationActivity.java b/java/com/android/incallui/spam/SpamNotificationActivity.java
index ca561e2..63b0235 100644
--- a/java/com/android/incallui/spam/SpamNotificationActivity.java
+++ b/java/com/android/incallui/spam/SpamNotificationActivity.java
@@ -297,32 +297,22 @@
           .setTitle(getString(R.string.spam_notification_title,
                   getFormattedNumber(number, applicationContext)))
           .setNeutralButton(getString(R.string.spam_notification_action_dismiss),
-              new DialogInterface.OnClickListener() {
-                @Override
-                public void onClick(DialogInterface dialog, int which) {
-                  dismiss();
-                }
-              })
+                  (dialog, which) -> dismiss())
           .setPositiveButton(getString(R.string.spam_notification_block_spam_action_text),
-              new DialogInterface.OnClickListener() {
-                @Override
-                public void onClick(DialogInterface dialog, int which) {
-                  dismissed = true;
-                  dismiss();
-                  spamNotificationActivity.maybeShowBlockReportSpamDialog(
-                      number, contactLookupResultType);
-                  spamNotificationActivity.maybeShowSpamBlockingPromoAndFinish();
-                }
-              })
+                  (dialog, which) -> {
+                    dismissed = true;
+                    dismiss();
+                    spamNotificationActivity.maybeShowBlockReportSpamDialog(
+                        number, contactLookupResultType);
+                    spamNotificationActivity.maybeShowSpamBlockingPromoAndFinish();
+                  })
           .setNegativeButton(getString(R.string.spam_notification_was_not_spam_action_text),
-              new DialogInterface.OnClickListener() {
-                @Override
-                public void onClick(DialogInterface dialog, int which) {
-                  dismissed = true;
-                  dismiss();
-                  spamNotificationActivity.maybeShowNotSpamDialog(number, contactLookupResultType);
-                }
-              })
+                  (dialog, which) -> {
+                    dismissed = true;
+                    dismiss();
+                    spamNotificationActivity.maybeShowNotSpamDialog(number,
+                            contactLookupResultType);
+                  })
           .create();
     }
   }
@@ -379,34 +369,23 @@
           .setMessage(getString(R.string.spam_notification_non_spam_call_expanded_text))
           .setNeutralButton(
               getString(R.string.spam_notification_action_dismiss),
-              new DialogInterface.OnClickListener() {
-                @Override
-                public void onClick(DialogInterface dialog, int which) {
-                  dismiss();
-                }
-              })
+                  (dialog, which) -> dismiss())
           .setPositiveButton(
               getString(R.string.spam_notification_dialog_add_contact_action_text),
-              new DialogInterface.OnClickListener() {
-                @Override
-                public void onClick(DialogInterface dialog, int which) {
-                  dismissed = true;
-                  dismiss();
-                  startActivity(createInsertContactsIntent(number));
-                }
-              })
+                  (dialog, which) -> {
+                    dismissed = true;
+                    dismiss();
+                    startActivity(createInsertContactsIntent(number));
+                  })
           .setNegativeButton(
                   getString(R.string.spam_notification_dialog_block_report_spam_action_text),
-              new DialogInterface.OnClickListener() {
-                @Override
-                public void onClick(DialogInterface dialog, int which) {
-                  dismissed = true;
-                  dismiss();
-                  spamNotificationActivity.maybeShowBlockReportSpamDialog(
-                      number, contactLookupResultType);
-                  spamNotificationActivity.maybeShowSpamBlockingPromoAndFinish();
-                }
-              })
+                  (dialog, which) -> {
+                    dismissed = true;
+                    dismiss();
+                    spamNotificationActivity.maybeShowBlockReportSpamDialog(
+                        number, contactLookupResultType);
+                    spamNotificationActivity.maybeShowSpamBlockingPromoAndFinish();
+                  })
           .create();
     }
   }
diff --git a/java/com/android/incallui/video/impl/SurfaceViewVideoCallFragment.java b/java/com/android/incallui/video/impl/SurfaceViewVideoCallFragment.java
index d554a58..0b12594 100644
--- a/java/com/android/incallui/video/impl/SurfaceViewVideoCallFragment.java
+++ b/java/com/android/incallui/video/impl/SurfaceViewVideoCallFragment.java
@@ -209,13 +209,7 @@
     endCallButton.setOnClickListener(this);
     previewSurfaceView = (SurfaceView) view.findViewById(R.id.videocall_video_preview);
     previewSurfaceView.setZOrderMediaOverlay(true);
-    previewOffOverlay.setOnClickListener(
-        new OnClickListener() {
-          @Override
-          public void onClick(View v) {
-            checkCameraPermission();
-          }
-        });
+    previewOffOverlay.setOnClickListener(v -> checkCameraPermission());
     remoteSurfaceView = (SurfaceView) view.findViewById(R.id.videocall_video_remote);
     remoteSurfaceView.setOnClickListener(
         surfaceView -> {
@@ -369,13 +363,7 @@
         .translationY(0)
         .setInterpolator(linearOutSlowInInterpolator)
         .alpha(1)
-        .withStartAction(
-            new Runnable() {
-              @Override
-              public void run() {
-                switchOnHoldCallController.setOnScreen();
-              }
-            });
+        .withStartAction(() -> switchOnHoldCallController.setOnScreen());
 
     View contactGridView = contactGridManager.getContainerView();
     // Animate contact grid to the shown state.
@@ -385,13 +373,7 @@
         .translationY(0)
         .setInterpolator(linearOutSlowInInterpolator)
         .alpha(1)
-        .withStartAction(
-            new Runnable() {
-              @Override
-              public void run() {
-                contactGridManager.show();
-              }
-            });
+        .withStartAction(() -> contactGridManager.show());
 
     endCallButton
         .animate()
@@ -399,13 +381,7 @@
         .translationY(0)
         .setInterpolator(linearOutSlowInInterpolator)
         .alpha(1)
-        .withStartAction(
-            new Runnable() {
-              @Override
-              public void run() {
-                endCallButton.setVisibility(View.VISIBLE);
-              }
-            })
+        .withStartAction(() -> endCallButton.setVisibility(View.VISIBLE))
         .start();
 
     // Animate all the preview controls up to make room for the navigation bar.
@@ -564,13 +540,7 @@
         .translationY(offset.y)
         .setInterpolator(fastOutLinearInInterpolator)
         .alpha(0)
-        .withEndAction(
-            new Runnable() {
-              @Override
-              public void run() {
-                endCallButton.setVisibility(View.INVISIBLE);
-              }
-            })
+        .withEndAction(() -> endCallButton.setVisibility(View.INVISIBLE))
         .setInterpolator(new FastOutLinearInInterpolator())
         .start();
 
@@ -971,13 +941,7 @@
           wasRemoteVideoOff
               ? R.string.videocall_remote_video_on
               : R.string.videocall_remotely_resumed);
-      remoteVideoOff.postDelayed(
-          new Runnable() {
-            @Override
-            public void run() {
-              remoteVideoOff.setVisibility(View.GONE);
-            }
-          },
+      remoteVideoOff.postDelayed(() -> remoteVideoOff.setVisibility(View.GONE),
           VIDEO_OFF_VIEW_FADE_OUT_DELAY_IN_MILLIS);
     } else {
       remoteVideoOff.setText(
@@ -1033,13 +997,7 @@
     view.setVisibility(View.VISIBLE);
     view.animate()
         .alpha(endAlpha)
-        .withEndAction(
-            new Runnable() {
-              @Override
-              public void run() {
-                view.setVisibility(visibility);
-              }
-            })
+        .withEndAction(() -> view.setVisibility(visibility))
         .start();
   }
 
diff --git a/java/com/android/incallui/video/impl/VideoCallFragment.java b/java/com/android/incallui/video/impl/VideoCallFragment.java
index efb98e0..5408af2 100644
--- a/java/com/android/incallui/video/impl/VideoCallFragment.java
+++ b/java/com/android/incallui/video/impl/VideoCallFragment.java
@@ -260,54 +260,24 @@
     endCallButton.setOnClickListener(this);
     previewTextureView = (TextureView) view.findViewById(R.id.videocall_video_preview);
     previewTextureView.setClipToOutline(true);
-    previewOffOverlay.setOnClickListener(
-        new OnClickListener() {
-          @Override
-          public void onClick(View v) {
-            checkCameraPermission();
-          }
-        });
+    previewOffOverlay.setOnClickListener(v -> checkCameraPermission());
     remoteTextureView = (TextureView) view.findViewById(R.id.videocall_video_remote);
     greenScreenBackgroundView = view.findViewById(R.id.videocall_green_screen_background);
     fullscreenBackgroundView = view.findViewById(R.id.videocall_fullscreen_background);
 
     remoteTextureView.addOnLayoutChangeListener(
-        new OnLayoutChangeListener() {
-          @Override
-          public void onLayoutChange(
-              View v,
-              int left,
-              int top,
-              int right,
-              int bottom,
-              int oldLeft,
-              int oldTop,
-              int oldRight,
-              int oldBottom) {
-            LogUtil.i("VideoCallFragment.onLayoutChange", "remoteTextureView layout changed");
-            updateRemoteVideoScaling();
-            updateRemoteOffView();
-          }
-        });
+            (v, left, top, right, bottom, oldLeft, oldTop, oldRight, oldBottom) -> {
+              LogUtil.i("VideoCallFragment.onLayoutChange", "remoteTextureView layout changed");
+              updateRemoteVideoScaling();
+              updateRemoteOffView();
+            });
 
     previewTextureView.addOnLayoutChangeListener(
-        new OnLayoutChangeListener() {
-          @Override
-          public void onLayoutChange(
-              View v,
-              int left,
-              int top,
-              int right,
-              int bottom,
-              int oldLeft,
-              int oldTop,
-              int oldRight,
-              int oldBottom) {
-            LogUtil.i("VideoCallFragment.onLayoutChange", "previewTextureView layout changed");
-            updatePreviewVideoScaling();
-            updatePreviewOffView();
-          }
-        });
+            (v, left, top, right, bottom, oldLeft, oldTop, oldRight, oldBottom) -> {
+              LogUtil.i("VideoCallFragment.onLayoutChange", "previewTextureView layout changed");
+              updatePreviewVideoScaling();
+              updatePreviewOffView();
+            });
 
     controls.addOnLayoutChangeListener(
         new OnLayoutChangeListener() {
@@ -452,13 +422,7 @@
         .translationY(0)
         .setInterpolator(linearOutSlowInInterpolator)
         .alpha(1)
-        .withStartAction(
-            new Runnable() {
-              @Override
-              public void run() {
-                controls.setVisibility(View.VISIBLE);
-              }
-            })
+        .withStartAction(() -> controls.setVisibility(View.VISIBLE))
         .start();
 
     // Animate onHold to the shown state.
@@ -468,13 +432,7 @@
         .translationY(0)
         .setInterpolator(linearOutSlowInInterpolator)
         .alpha(1)
-        .withStartAction(
-            new Runnable() {
-              @Override
-              public void run() {
-                switchOnHoldCallController.setOnScreen();
-              }
-            });
+        .withStartAction(() -> switchOnHoldCallController.setOnScreen());
 
     View contactGridView = contactGridManager.getContainerView();
     // Animate contact grid to the shown state.
@@ -484,13 +442,7 @@
         .translationY(0)
         .setInterpolator(linearOutSlowInInterpolator)
         .alpha(1)
-        .withStartAction(
-            new Runnable() {
-              @Override
-              public void run() {
-                contactGridManager.show();
-              }
-            });
+        .withStartAction(() -> contactGridManager.show());
 
     endCallButton
         .animate()
@@ -498,13 +450,7 @@
         .translationY(0)
         .setInterpolator(linearOutSlowInInterpolator)
         .alpha(1)
-        .withStartAction(
-            new Runnable() {
-              @Override
-              public void run() {
-                endCallButton.setVisibility(View.VISIBLE);
-              }
-            })
+        .withStartAction(() -> endCallButton.setVisibility(View.VISIBLE))
         .start();
 
     // Animate all the preview controls up to make room for the navigation bar.
@@ -665,13 +611,7 @@
         .translationY(offset.y)
         .setInterpolator(fastOutLinearInInterpolator)
         .alpha(0)
-        .withEndAction(
-            new Runnable() {
-              @Override
-              public void run() {
-                endCallButton.setVisibility(View.INVISIBLE);
-              }
-            })
+        .withEndAction(() -> endCallButton.setVisibility(View.INVISIBLE))
         .setInterpolator(new FastOutLinearInInterpolator())
         .start();
 
@@ -1180,13 +1120,7 @@
           wasRemoteVideoOff
               ? R.string.videocall_remote_video_on
               : R.string.videocall_remotely_resumed);
-      remoteVideoOff.postDelayed(
-          new Runnable() {
-            @Override
-            public void run() {
-              remoteVideoOff.setVisibility(View.GONE);
-            }
-          },
+      remoteVideoOff.postDelayed(() -> remoteVideoOff.setVisibility(View.GONE),
           VIDEO_OFF_VIEW_FADE_OUT_DELAY_IN_MILLIS);
     } else {
       remoteVideoOff.setText(
@@ -1304,13 +1238,7 @@
     view.setVisibility(View.VISIBLE);
     view.animate()
         .alpha(endAlpha)
-        .withEndAction(
-            new Runnable() {
-              @Override
-              public void run() {
-                view.setVisibility(visibility);
-              }
-            })
+        .withEndAction(() -> view.setVisibility(visibility))
         .start();
   }
 
diff --git a/java/com/android/voicemail/impl/fetch/FetchVoicemailReceiver.java b/java/com/android/voicemail/impl/fetch/FetchVoicemailReceiver.java
index b456f54..4b8f762 100644
--- a/java/com/android/voicemail/impl/fetch/FetchVoicemailReceiver.java
+++ b/java/com/android/voicemail/impl/fetch/FetchVoicemailReceiver.java
@@ -1,5 +1,6 @@
 /*
  * Copyright (C) 2015 The Android Open Source Project
+ * Copyright (C) 2023 The LineageOS Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -193,38 +194,34 @@
 
   private void fetchVoicemail(final Network network, final VoicemailStatus.Editor status) {
     Executor executor = Executors.newCachedThreadPool();
-    executor.execute(
-        new Runnable() {
-          @Override
-          public void run() {
-            if (networkCallback != null) {
-                networkCallback.waitForIpv4();
+    executor.execute(() -> {
+      if (networkCallback != null) {
+          networkCallback.waitForIpv4();
+      }
+      try {
+        while (retryCount > 0) {
+          VvmLog.i(TAG, "fetching voicemail, retry count=" + retryCount);
+          try (ImapHelper imapHelper =
+              new ImapHelper(context, phoneAccount, network, status)) {
+            boolean success =
+                imapHelper.fetchVoicemailPayload(
+                    new VoicemailFetchedCallback(context, uri, phoneAccount), uid);
+            if (!success && retryCount > 0) {
+              VvmLog.i(TAG, "fetch voicemail failed, retrying");
+              retryCount--;
+            } else {
+              return;
             }
-            try {
-              while (retryCount > 0) {
-                VvmLog.i(TAG, "fetching voicemail, retry count=" + retryCount);
-                try (ImapHelper imapHelper =
-                    new ImapHelper(context, phoneAccount, network, status)) {
-                  boolean success =
-                      imapHelper.fetchVoicemailPayload(
-                          new VoicemailFetchedCallback(context, uri, phoneAccount), uid);
-                  if (!success && retryCount > 0) {
-                    VvmLog.i(TAG, "fetch voicemail failed, retrying");
-                    retryCount--;
-                  } else {
-                    return;
-                  }
-                } catch (InitializingException e) {
-                  VvmLog.w(TAG, "Can't retrieve Imap credentials ", e);
-                  return;
-                }
-              }
-            } finally {
-              if (networkCallback != null) {
-                networkCallback.releaseNetwork();
-              }
-            }
+          } catch (InitializingException e) {
+            VvmLog.w(TAG, "Can't retrieve Imap credentials ", e);
+            return;
           }
-        });
+        }
+      } finally {
+        if (networkCallback != null) {
+          networkCallback.releaseNetwork();
+        }
+      }
+    });
   }
 }
diff --git a/java/com/android/voicemail/impl/scheduling/TaskExecutor.java b/java/com/android/voicemail/impl/scheduling/TaskExecutor.java
index 3968525..e7b3833 100644
--- a/java/com/android/voicemail/impl/scheduling/TaskExecutor.java
+++ b/java/com/android/voicemail/impl/scheduling/TaskExecutor.java
@@ -1,5 +1,6 @@
 /*
  * Copyright (C) 2017 The Android Open Source Project
+ * Copyright (C) 2023 The LineageOS Project
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -131,19 +132,14 @@
 
   private Job job;
 
-  private final Runnable stopServiceWithDelay =
-      new Runnable() {
-        @MainThread
-        @Override
-        public void run() {
-          VvmLog.i(TAG, "Stopping service");
-          if (!isJobRunning() || isTerminating()) {
-            VvmLog.e(TAG, "Service already stopped");
-            return;
-          }
-          scheduleJobAndTerminate(0, true);
-        }
-      };
+  private final Runnable stopServiceWithDelay = () -> {
+    VvmLog.i(TAG, "Stopping service");
+    if (!isJobRunning() || isTerminating()) {
+      VvmLog.e(TAG, "Service already stopped");
+      return;
+    }
+    scheduleJobAndTerminate(0, true);
+  };
 
   /**
    * Reschedule the {@link TaskSchedulerJobService} and terminate the executor when the {@link Job}
@@ -179,7 +175,7 @@
       VvmLog.w("JobFinishedPoller.run", "Job still running");
       mainThreadHandler.postDelayed(this, TERMINATE_POLLING_INTERVAL_MILLISECONDS);
     }
-  };
+  }
 
   /** Handles execution of the background task in teh worker thread. */
   final class WorkerThreadHandler extends Handler {
@@ -317,14 +313,7 @@
   private void sleep(long timeMillis) {
     VvmLog.i(TAG, "sleep for " + timeMillis + " millis");
     if (timeMillis < SHORT_SLEEP_THRESHOLD_MILLISECONDS) {
-      mainThreadHandler.postDelayed(
-          new Runnable() {
-            @Override
-            public void run() {
-              maybeRunNextTask();
-            }
-          },
-          timeMillis);
+      mainThreadHandler.postDelayed(() -> maybeRunNextTask(), timeMillis);
       return;
     }
     scheduleJobAndTerminate(timeMillis, false);
diff --git a/java/com/android/voicemail/impl/sync/VvmNetworkRequestCallback.java b/java/com/android/voicemail/impl/sync/VvmNetworkRequestCallback.java
index 1fdf917..b57da66 100644
--- a/java/com/android/voicemail/impl/sync/VvmNetworkRequestCallback.java
+++ b/java/com/android/voicemail/impl/sync/VvmNetworkRequestCallback.java
@@ -164,15 +164,11 @@
      */
     Handler handler = new Handler(Looper.getMainLooper());
     handler.postDelayed(
-        new Runnable() {
-          @Override
-          public void run() {
-            if (resultReceived == false) {
-              onFailed(NETWORK_REQUEST_FAILED_TIMEOUT);
-            }
-          }
-        },
-        NETWORK_REQUEST_TIMEOUT_MILLIS);
+            () -> {
+              if (!resultReceived) {
+                onFailed(NETWORK_REQUEST_FAILED_TIMEOUT);
+              }},
+            NETWORK_REQUEST_TIMEOUT_MILLIS);
   }
 
   public void releaseNetwork() {