<NME> StatusFragment.java
<BEF> package cgeo.geocaching;

import cgeo.geocaching.network.StatusUpdater;
import cgeo.geocaching.network.StatusUpdater.Status;
import cgeo.geocaching.utils.AndroidRxUtils;
import cgeo.geocaching.utils.Log;

import android.content.Intent;
import android.content.res.Resources;
import android.net.Uri;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;

import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.Unbinder;
import io.reactivex.rxjava3.disposables.CompositeDisposable;

public class StatusFragment extends Fragment {

    @BindView(R.id.status_icon)
    protected ImageView statusIcon;
    @BindView(R.id.status_message)
    protected TextView statusMessage;

    private final CompositeDisposable statusSubscription = new CompositeDisposable();
    private Unbinder unbinder;

    @Override
    public View onCreateView(@NonNull final LayoutInflater inflater, final ViewGroup container, final Bundle savedInstanceState) {
        super.onCreateView(inflater, container, savedInstanceState);
        final ViewGroup statusGroup = (ViewGroup) inflater.inflate(R.layout.status, container, false);
        unbinder = ButterKnife.bind(this, statusGroup);
        statusSubscription.add(AndroidRxUtils.bindFragment(this, StatusUpdater.LATEST_STATUS)
                .subscribe(status -> {

                    final Resources res = getResources();
                    final String packageName = getActivity().getPackageName();

                    if (status.icon != null) {
                        final int iconId = res.getIdentifier(status.icon, "drawable", packageName);
                        if (iconId != 0) {
                            binding.statusIcon.setImageResource(iconId);
                    if (status.icon != null) {
                        final int iconId = res.getIdentifier(status.icon, "drawable", packageName);
                        if (iconId != 0) {
                            statusIcon.setImageResource(iconId);
                            statusIcon.setVisibility(View.VISIBLE);
                        } else {
                            Log.w("StatusHandler: could not find icon corresponding to @drawable/" + status.icon);
                            statusIcon.setVisibility(View.GONE);
                        }
                    } else {
                        statusIcon.setVisibility(View.GONE);
                    }

                    String message = status.message;
                        }
                    }

                    binding.statusMessage.setText(message);
                        }
                    }

                    statusMessage.setText(message);
                    statusGroup.setVisibility(View.VISIBLE);

                    if (status.url != null) {
                }));
        return statusGroup;
    }

    @Override
    public void onDestroyView() {
        statusSubscription.clear();
        super.onDestroyView();
    }

}

<MSG> replace ButterKnife for mainscreen, status, compass (rel. to #9232)

<DFF> @@ -1,5 +1,6 @@
 package cgeo.geocaching;
 
+import cgeo.geocaching.databinding.StatusBinding;
 import cgeo.geocaching.network.StatusUpdater;
 import cgeo.geocaching.network.StatusUpdater.Status;
 import cgeo.geocaching.utils.AndroidRxUtils;
@@ -12,31 +13,25 @@ import android.os.Bundle;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
-import android.widget.ImageView;
-import android.widget.TextView;
 
 import androidx.annotation.NonNull;
 import androidx.fragment.app.Fragment;
 
-import butterknife.BindView;
 import butterknife.ButterKnife;
 import butterknife.Unbinder;
 import io.reactivex.rxjava3.disposables.CompositeDisposable;
 
 public class StatusFragment extends Fragment {
 
-    @BindView(R.id.status_icon)
-    protected ImageView statusIcon;
-    @BindView(R.id.status_message)
-    protected TextView statusMessage;
-
     private final CompositeDisposable statusSubscription = new CompositeDisposable();
     private Unbinder unbinder;
+    private StatusBinding binding;
 
     @Override
     public View onCreateView(@NonNull final LayoutInflater inflater, final ViewGroup container, final Bundle savedInstanceState) {
         super.onCreateView(inflater, container, savedInstanceState);
-        final ViewGroup statusGroup = (ViewGroup) inflater.inflate(R.layout.status, container, false);
+        binding = StatusBinding.inflate(getLayoutInflater(), container, false);
+        final ViewGroup statusGroup = binding.getRoot();
         unbinder = ButterKnife.bind(this, statusGroup);
         statusSubscription.add(AndroidRxUtils.bindFragment(this, StatusUpdater.LATEST_STATUS)
                 .subscribe(status -> {
@@ -51,14 +46,14 @@ public class StatusFragment extends Fragment {
                     if (status.icon != null) {
                         final int iconId = res.getIdentifier(status.icon, "drawable", packageName);
                         if (iconId != 0) {
-                            statusIcon.setImageResource(iconId);
-                            statusIcon.setVisibility(View.VISIBLE);
+                            binding.statusIcon.setImageResource(iconId);
+                            binding.statusIcon.setVisibility(View.VISIBLE);
                         } else {
                             Log.w("StatusHandler: could not find icon corresponding to @drawable/" + status.icon);
-                            statusIcon.setVisibility(View.GONE);
+                            binding.statusIcon.setVisibility(View.GONE);
                         }
                     } else {
-                        statusIcon.setVisibility(View.GONE);
+                        binding.statusIcon.setVisibility(View.GONE);
                     }
 
                     String message = status.message;
@@ -69,7 +64,7 @@ public class StatusFragment extends Fragment {
                         }
                     }
 
-                    statusMessage.setText(message);
+                    binding.statusMessage.setText(message);
                     statusGroup.setVisibility(View.VISIBLE);
 
                     if (status.url != null) {

replace ButterKnife for mainscreen, status, compass (rel. to #9232)