MCPcopy Create free account
hub / github.com/M66B/FairEmail / from

Method from

app/src/main/java/eu/faircode/email/TupleKeyword.java:73–130  ·  view source on GitHub ↗
(Context context, Persisted data)

Source from the content-addressed store, hash-verified

71 }
72
73 static List<TupleKeyword> from(Context context, Persisted data) {
74 if (data.selected == null)
75 data.selected = new String[0];
76 if (data.available == null)
77 data.available = new String[0];
78
79 List<TupleKeyword> result = new ArrayList<>();
80
81 List<String> all = new ArrayList<>();
82 List<String> some = Arrays.asList(data.selected);
83 List<String> selected = Arrays.asList(data.all_selected == null ? data.selected : data.all_selected);
84
85 for (String keyword : selected)
86 if (!all.contains(keyword))
87 all.add(keyword);
88
89 for (String keyword : data.available)
90 if (!all.contains(keyword))
91 all.add(keyword);
92
93 SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
94
95 String global = prefs.getString("global_keywords", null);
96 if (global != null)
97 for (String kw : global.split(" "))
98 if (!all.contains(kw))
99 all.add(kw);
100
101 final Collator collator = Collator.getInstance(Locale.getDefault());
102 collator.setStrength(Collator.SECONDARY); // Case insensitive, process accents etc
103
104 Collections.sort(all, new Comparator<String>() {
105 @Override
106 public int compare(String k1, String k2) {
107 k1 = prefs.getString("kwtitle." + k1, getDefaultKeywordAlias(context, k1));
108 k2 = prefs.getString("kwtitle." + k2, getDefaultKeywordAlias(context, k2));
109 return collator.compare(k1, k2);
110 }
111 });
112
113 for (String keyword : all) {
114 TupleKeyword k = new TupleKeyword();
115 k.name = keyword;
116 k.selected = selected.contains(keyword);
117 k.partial = (k.selected && !some.contains(keyword));
118
119 String c1 = "kwcolor." + keyword;
120 String c2 = "keyword." + keyword; // legacy
121 if (prefs.contains(c1))
122 k.color = prefs.getInt(c1, Color.GRAY);
123 else if (prefs.contains(c2))
124 k.color = prefs.getInt(c2, Color.GRAY);
125
126 result.add(k);
127 }
128
129 return result;
130 }

Callers 15

onChangedMethod · 0.95
onExecutedMethod · 0.95
onCreateDialogMethod · 0.45
AdapterLogMethod · 0.45
setContentViewMethod · 0.45
onCreateDialogMethod · 0.45
onCreateDialogMethod · 0.45
onCreateMethod · 0.45
onCreateDialogMethod · 0.45
AdapterNavUnifiedMethod · 0.45
onCreateDialogMethod · 0.45
onCreateDialogMethod · 0.45

Calls 7

getDefaultMethod · 0.80
containsMethod · 0.45
addMethod · 0.45
getStringMethod · 0.45
getInstanceMethod · 0.45
sortMethod · 0.45
getIntMethod · 0.45

Tested by

no test coverage detected