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

Method update

app/src/main/java/eu/faircode/email/Shortcuts.java:68–170  ·  view source on GitHub ↗
(final Context context, final LifecycleOwner owner)

Source from the content-addressed store, hash-verified

66 private static final int MAX_SHORTCUTS = 4;
67
68 static void update(final Context context, final LifecycleOwner owner) {
69 if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.N_MR1)
70 return;
71
72 new SimpleTask<List<ShortcutInfoCompat>>() {
73 @Override
74 @TargetApi(Build.VERSION_CODES.N_MR1)
75 protected List<ShortcutInfoCompat> onExecute(Context context, Bundle args) {
76 SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
77 boolean enabled = prefs.getBoolean("shortcuts", true);
78
79 ShortcutManager sm = Helper.getSystemService(context, ShortcutManager.class);
80 int app = sm.getMaxShortcutCountPerActivity();
81 int manifest = sm.getManifestShortcuts().size();
82 int count = Math.min(app - manifest, MAX_SHORTCUTS);
83 EntityLog.log(context, "Shortcuts count=" + count +
84 " app=" + app + " manifest=" + manifest + " enabled=" + enabled);
85
86 List<ShortcutInfoCompat> shortcuts = new ArrayList<>();
87 if (!enabled)
88 return shortcuts;
89
90 DB db = DB.getInstance(context);
91 List<String> emails = new ArrayList<>();
92 try (Cursor cursor = db.contact().getFrequentlyContacted()) {
93 int colEmail = cursor.getColumnIndex("email");
94 int colName = cursor.getColumnIndex("name");
95 int colAvatar = cursor.getColumnIndex("avatar");
96 while (shortcuts.size() < count && cursor.moveToNext()) {
97 String email = cursor.getString(colEmail);
98 String name = (cursor.isNull(colName) ? null : cursor.getString(colName));
99 String avatar = (cursor.isNull(colAvatar) ? null : cursor.getString(colAvatar));
100
101 if (emails.contains(email))
102 continue;
103 emails.add(email);
104
105 EntityLog.log(context, "Shortcut email=" + email);
106 ShortcutInfoCompat.Builder builder = getShortcut(context, email, name, avatar);
107 builder.setLongLived(true);
108 builder.setRank(shortcuts.size() + 1);
109 shortcuts.add(builder.build());
110 }
111 }
112
113 return shortcuts;
114 }
115
116 @Override
117 @TargetApi(Build.VERSION_CODES.N_MR1)
118 protected void onExecuted(Bundle args, List<ShortcutInfoCompat> shortcuts) {
119 List<ShortcutInfoCompat> add = new ArrayList<>();
120 List<String> remove = new ArrayList<>();
121
122 if (BuildConfig.DEBUG && false)
123 ShortcutManagerCompat.removeAllDynamicShortcuts(context.getApplicationContext());
124
125 List<ShortcutInfoCompat> existing = ShortcutManagerCompat.getDynamicShortcuts(context.getApplicationContext());

Callers 15

onExecutedMethod · 0.95
onActivityCreatedMethod · 0.95
onCreateMethod · 0.95
verifyMethod · 0.45
getHashMethod · 0.45
HMACMethod · 0.45
onExecuteMethod · 0.45
verifySignatureHeaderMethod · 0.45
onOpenMethod · 0.45
onHandleOAuthMethod · 0.45

Calls 1

executeMethod · 0.45

Tested by

no test coverage detected