Bladeren bron

Add highlight strings to profiles.

These are highlight strings other than the current nickname that
the user wishes to highlight on (e.g. their real name, or 'D*').
pull/343/head
Chris Smith 9 jaren geleden
bovenliggende
commit
b872ff9291
2 gewijzigde bestanden met toevoegingen van 20 en 3 verwijderingen
  1. 11
    1
      src/com/dmdirc/config/profiles/Profile.java
  2. 9
    2
      src/com/dmdirc/config/profiles/YamlProfileStore.java

+ 11
- 1
src/com/dmdirc/config/profiles/Profile.java Bestand weergeven

@@ -24,6 +24,8 @@ package com.dmdirc.config.profiles;
24 24
 
25 25
 import com.google.auto.value.AutoValue;
26 26
 
27
+import java.util.Collection;
28
+import java.util.Collections;
27 29
 import java.util.List;
28 30
 import java.util.Optional;
29 31
 
@@ -44,9 +46,17 @@ public abstract class Profile {
44 46
 
45 47
     public abstract List<String> getNicknames();
46 48
 
49
+    public abstract Collection<String> getHighlights();
50
+
47 51
     public static Profile create(final String name, final String realName,
48 52
             final Optional<String> ident, final List<String> nicknames) {
49
-        return new AutoValue_Profile(name, realName, ident, nicknames);
53
+        return create(name, realName, ident, nicknames, Collections.emptyList());
54
+    }
55
+
56
+    public static Profile create(final String name, final String realName,
57
+            final Optional<String> ident, final List<String> nicknames,
58
+            final Collection<String> highlights) {
59
+        return new AutoValue_Profile(name, realName, ident, nicknames, highlights);
50 60
     }
51 61
 
52 62
 }

+ 9
- 2
src/com/dmdirc/config/profiles/YamlProfileStore.java Bestand weergeven

@@ -26,6 +26,7 @@ import com.dmdirc.util.BaseYamlStore;
26 26
 
27 27
 import java.nio.file.Path;
28 28
 import java.util.Collection;
29
+import java.util.Collections;
29 30
 import java.util.HashMap;
30 31
 import java.util.List;
31 32
 import java.util.Map;
@@ -75,8 +76,13 @@ public class YamlProfileStore extends BaseYamlStore<Profile> implements ProfileS
75 76
             final String name = requiredString(map, "name");
76 77
             final String realname = requiredString(map, "realname");
77 78
             final Optional<String> ident = Optional.ofNullable(optionalString(map, "ident"));
78
-            final List<String> nicknames = asList(map.get("nicknames"), s -> Optional.of(s.toString()));
79
-            return Optional.of(Profile.create(name, realname, ident, nicknames));
79
+            final List<String> nicknames =
80
+                    asList(map.get("nicknames"), s -> Optional.of(s.toString()));
81
+            final List<String> highlights =
82
+                    map.containsKey("highlights")
83
+                            ? asList(map.get("highlights"), s -> Optional.of(s.toString()))
84
+                            : Collections.emptyList();
85
+            return Optional.of(Profile.create(name, realname, ident, nicknames, highlights));
80 86
         } catch (IllegalArgumentException ex) {
81 87
             LOG.info("Unable to read profile", ex);
82 88
             return Optional.empty();
@@ -89,6 +95,7 @@ public class YamlProfileStore extends BaseYamlStore<Profile> implements ProfileS
89 95
         map.put("name", object.getName());
90 96
         map.put("realname", object.getRealname());
91 97
         map.put("nicknames", object.getNicknames().toArray());
98
+        map.put("highlights", object.getHighlights().toArray());
92 99
         object.getIdent().ifPresent(v -> map.put("ident", v));
93 100
         return map;
94 101
     }

Laden…
Annuleren
Opslaan