Calendar Lite 1.5: GingerCal is now Calendar Lite, new icon and reminder icon

Renames the app (label, texts, User-Agent, PRODID, APK) and uses the new launcher icon pack
(ldpi to xhdpi, master in art/) instead of drawing one at build time. Reminders show a white
calendar glyph in the status bar (stat_notify, 18-48 px) instead of the system's colour
alarm clock, which didn't fit the Gingerbread bar. The package name, database and signing key
stay, so it installs over GingerCal and keeps its data.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
XoséandClaude Opus 5.5 committed 2026-10-19 16:57:48 +02:00
1 parent 5eeaf0f519
commit 748f6add54
24 files changed
+37 -71

No files matched your search

+1 -1
View File
@@ -29,7 +29,7 @@ public class AlarmReceiver extends BroadcastReceiver {
static synchronized void acquire(Context c) {
if (lock == null) {
PowerManager pm = (PowerManager) c.getApplicationContext().getSystemService("power");
lock = pm.newWakeLock(1 /* PARTIAL_WAKE_LOCK */, "GingerCal sync");
lock = pm.newWakeLock(1 /* PARTIAL_WAKE_LOCK */, "Calendar Lite sync");
lock.setReferenceCounted(false);
}
lock.acquire(5 * 60 * 1000L);
+1 -1
View File
@@ -9,7 +9,7 @@ public class GingerApp extends Application {
super.onCreate();
L.gl = !"en".equals(getSharedPreferences("gingercal", 0).getString("lang", "gl"));
org.gingercal.net.CertVerifier.setRootStore(new org.gingercal.net.AssetRoots(this));
org.gingercal.net.Http.USER_AGENT = "GingerCal/1.4 (Android 2.3)";
org.gingercal.net.Http.USER_AGENT = "CalendarLite/1.5 (Android 2.3)";
tlsTexts();
}
+1 -1
View File
@@ -10,7 +10,7 @@ import java.util.concurrent.ExecutorService;
import org.gingercal.net.CertVerifier;
/**
* Android 2.3 transport through the bundled TLS 1.2 client (org.gingercal.net, from Minamp):
* Android 2.3 transport through the bundled TLS 1.2 client (org.gingercal.net, from Plexamp Lite):
* the phone's own TLS 1.0 can't reach Nextcloud, so this talks to the normal https:// address
* directly, any method (PROPFIND/REPORT included), with keep-alive. A pinned certificate (a
* self-signed server or an old bridge) is still honoured.
+3 -2
View File
@@ -43,8 +43,9 @@ public final class Reminders {
List<Ev> due = Db.get(c).startingBetween(Math.max(notified, now - 30 * ICal.MIN), now + m * ICal.MIN + 30000L);
NotificationManager nm = (NotificationManager) c.getSystemService("notification");
long newest = notified;
int icon = App.sysDrawable(c, "ic_popup_reminder");
if (icon == 0) icon = App.sysDrawable(c, "ic_dialog_info");
// our own white status-bar glyph: the system's colour alarm-clock icon looks out of place up there
int icon = c.getResources().getIdentifier("stat_notify", "drawable", c.getPackageName());
if (icon == 0) icon = App.sysDrawable(c, "ic_popup_reminder");
for (Ev e : due) {
Intent open = new Intent(c, MainActivity.class);
open.setFlags(0x10000000 /* FLAG_ACTIVITY_NEW_TASK */);
+1 -1
View File
@@ -27,7 +27,7 @@ public class SettingsActivity extends Activity {
@Override
protected void onCreate(Bundle b) {
super.onCreate(b);
setTitle(L.t("GingerCal settings"));
setTitle(L.t("Calendar Lite settings"));
LinearLayout f = App.vbox(this);
int p = App.dp(this, 8);
f.setPadding(p, p, p, p);
+1 -1
View File
@@ -37,7 +37,7 @@ import com.minamp.bc.crypto.util.PublicKeyFactory;
* Minimal Web PKI path validation for the bundled TLS stack:
* hostname match, validity window, signature chain up to a bundled Mozilla root.
* Optionally one pinned leaf certificate (SHA-256) is trusted as-is, for self-signed servers.
* Shared with Minamp (tools/tlskit in the iOS ports' history); keep the copies in sync.
* Shared with Plexamp Lite (tools/tlskit in the iOS ports' history); keep the copies in sync.
*/
public final class CertVerifier {
+2 -2
View File
@@ -33,11 +33,11 @@ import com.minamp.bc.tls.crypto.impl.bc.BcTlsCrypto;
/**
* Small HTTP/1.1 client with its own TLS 1.2 (Bouncy Castle), keep-alive pooling and
* session resumption. Android 2.x's built-in SSL only speaks TLS 1.0 and lacks today's roots,
* so every request in the app goes through here. From Minamp; keep the copies in sync.
* so every request in the app goes through here. From Plexamp Lite; keep the copies in sync.
*/
public final class Http {
public static String USER_AGENT = "Minamp/1.0";
public static String USER_AGENT = "PlexampLite/1.0";
/** Optional HTTP CONNECT proxy, only used when running the networking code on a desktop JVM. */
public static String proxyHost;