Sfoglia il codice sorgente

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 anni fa
parent
commit
b872ff9291

+ 11
- 1
src/com/dmdirc/config/profiles/Profile.java Vedi File

@@ -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 Vedi File

@@ -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
     }

Loading…
Annulla
Salva