From df8e7a01e0e69c2a8463a27096d4d3c33b1f6b46 Mon Sep 17 00:00:00 2001 From: Matej Drobnič Date: Mon, 29 Sep 2025 00:56:23 +0200 Subject: Make history duration configurable (#1074) --- srcs/juloo.keyboard2/ClipboardHistoryService.java | 14 +++++++++++--- srcs/juloo.keyboard2/Config.java | 2 ++ 2 files changed, 13 insertions(+), 3 deletions(-) (limited to 'srcs') diff --git a/srcs/juloo.keyboard2/ClipboardHistoryService.java b/srcs/juloo.keyboard2/ClipboardHistoryService.java index 9554bca..27e2eb9 100644 --- a/srcs/juloo.keyboard2/ClipboardHistoryService.java +++ b/srcs/juloo.keyboard2/ClipboardHistoryService.java @@ -7,6 +7,7 @@ import android.os.Build.VERSION; import java.util.ArrayList; import java.util.Iterator; import java.util.List; +import java.util.concurrent.TimeUnit; public final class ClipboardHistoryService { @@ -50,8 +51,6 @@ public final class ClipboardHistoryService gives a sense to the user that the history is not persisted and can be forgotten as soon as the app stops. */ public static final int MAX_HISTORY_SIZE = 6; - /** Time in ms until history entries expire. */ - public static final long HISTORY_TTL_MS = 5 * 60 * 1000; static ClipboardHistoryService _service = null; static ClipboardPasteCallback _paste_callback = null; @@ -150,6 +149,10 @@ public final class ClipboardHistoryService } } + int get_history_ttl_minutes() { + return Config.globalConfig().clipboard_history_duration; + } + final class SystemListener implements ClipboardManager.OnPrimaryClipChangedListener { public SystemListener() {} @@ -171,7 +174,12 @@ public final class ClipboardHistoryService public HistoryEntry(String c) { content = c; - expiry_timestamp = System.currentTimeMillis() + HISTORY_TTL_MS; + final int historyTtlMinutes = _service.get_history_ttl_minutes(); + if (historyTtlMinutes >= 0) { + expiry_timestamp = System.currentTimeMillis() + TimeUnit.MINUTES.toMillis(historyTtlMinutes); + } else { + expiry_timestamp = Long.MAX_VALUE; + } } } diff --git a/srcs/juloo.keyboard2/Config.java b/srcs/juloo.keyboard2/Config.java index dbdd877..b3eadf5 100644 --- a/srcs/juloo.keyboard2/Config.java +++ b/srcs/juloo.keyboard2/Config.java @@ -70,6 +70,7 @@ public final class Config public boolean borderConfig; public int circle_sensitivity; public boolean clipboard_history_enabled; + public int clipboard_history_duration; // Dynamically set public boolean shouldOfferVoiceTyping; @@ -181,6 +182,7 @@ public final class Config current_layout_wide = _prefs.getInt("current_layout_landscape", 0); circle_sensitivity = Integer.valueOf(_prefs.getString("circle_sensitivity", "2")); clipboard_history_enabled = _prefs.getBoolean("clipboard_history_enabled", false); + clipboard_history_duration = Integer.parseInt(_prefs.getString("clipboard_history_duration", "5")); float screen_width_dp = dm.widthPixels / dm.density; wide_screen = screen_width_dp >= WIDE_DEVICE_THRESHOLD; -- cgit v1.2.3