<NME> GCSmileysProvider.java
<BEF> package cgeo.geocaching.connector.gc;

import cgeo.geocaching.R;
import cgeo.geocaching.connector.capability.Smiley;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;

import java.util.Arrays;
import java.util.Collections;
import java.util.List;

public class GCSmileysProvider {

    private static final List<Smiley> SMILEYS = Collections.unmodifiableList(Arrays.asList(
            new Smiley(":)", R.string.smiley_smile, "\uD83D\uDE03"),
            new Smiley(":D", R.string.smiley_big_smile, "\uD83D\uDE01"),
            new Smiley("8D", R.string.smiley_cool, "\uD83D\uDE0E"),
            new Smiley(":I", R.string.smiley_blush, "\uD83D\uDE33"),
            new Smiley("8D", "cool"),
            new Smiley(":I", "blush"),
            new Smiley(":P", "tongue"),
            new Smiley("}:", "evil"),
            new Smiley(";)", "wink"),
            new Smiley(":o", "clown"),
            new Smiley("B", "black eye"),
            new Smiley("8", "eight ball"),
            new Smiley(":(", "frown"),
            new Smiley("8)", "shy"),
            new Smiley(":O", "shocked"),
            new Smiley(":(!", "angry"),
            new Smiley(":X", R.string.smiley_kisses, "\uD83D\uDE18"),
            new Smiley("^", R.string.smiley_approve, "\uD83D\uDC4C"),
            new Smiley("V", R.string.smiley_disapprove, "\uD83D\uDE12"),
            new Smiley("?", R.string.smiley_question, "❓")
    ));

    private GCSmileysProvider() {
        // utility class
    }

    @NonNull
    public static List<Smiley> getSmileys() {
        return SMILEYS;
    }

    @Nullable
    public static Smiley getSmiley(final int id) {
        for (final Smiley smiley : SMILEYS) {
            if (smiley.getItemId() == id) {
                return smiley;
            }
        }
        return null;
    }
}

<MSG> update GC log smileys

- Fix false smileys
- use same wording as GCLH

fixes #12461

<DFF> @@ -20,12 +20,12 @@ public class GCSmileysProvider {
             new Smiley("8D", "cool"),
             new Smiley(":I", "blush"),
             new Smiley(":P", "tongue"),
-            new Smiley("}:", "evil"),
+            new Smiley("}:)", "evil"),
             new Smiley(";)", "wink"),
-            new Smiley(":o", "clown"),
-            new Smiley("B", "black eye"),
+            new Smiley(":o)", "clown"),
+            new Smiley("B)", "black eye"),
             new Smiley("8", "eight ball"),
-            new Smiley(":(", "frown"),
+            new Smiley(":(", "sad"),
             new Smiley("8)", "shy"),
             new Smiley(":O", "shocked"),
             new Smiley(":(!", "angry"),

update GC log smileys