Close idle connections to release RAM

Close idle connections after 30s of inactivity to release RAM.
Savings: ~0.4mb on marlin

Bug: 63398887
Test: reboot and dumpsys meminfo system
Change-Id: I39aa1fef9ae9850564a13891cb89c27cb805d683
diff --git a/services/core/java/com/android/server/locksettings/LockSettingsStorage.java b/services/core/java/com/android/server/locksettings/LockSettingsStorage.java
index b4c10ec..70d6072 100644
--- a/services/core/java/com/android/server/locksettings/LockSettingsStorage.java
+++ b/services/core/java/com/android/server/locksettings/LockSettingsStorage.java
@@ -713,12 +713,15 @@
         private static final String DATABASE_NAME = "locksettings.db";
 
         private static final int DATABASE_VERSION = 2;
+        private static final int IDLE_CONNECTION_TIMEOUT_MS = 30000;
 
         private Callback mCallback;
 
         public DatabaseHelper(Context context) {
             super(context, DATABASE_NAME, null, DATABASE_VERSION);
             setWriteAheadLoggingEnabled(true);
+            // Memory optimization - close idle connections after 30s of inactivity
+            setIdleConnectionTimeout(IDLE_CONNECTION_TIMEOUT_MS);
         }
 
         public void setCallback(Callback callback) {
diff --git a/services/core/java/com/android/server/notification/NotificationUsageStats.java b/services/core/java/com/android/server/notification/NotificationUsageStats.java
index c8f4d31..e40dad6 100644
--- a/services/core/java/com/android/server/notification/NotificationUsageStats.java
+++ b/services/core/java/com/android/server/notification/NotificationUsageStats.java
@@ -1059,6 +1059,9 @@
         private static final int EVENT_TYPE_CLICK = 2;
         private static final int EVENT_TYPE_REMOVE = 3;
         private static final int EVENT_TYPE_DISMISS = 4;
+
+        private static final int IDLE_CONNECTION_TIMEOUT_MS = 30000;
+
         private static long sLastPruneMs;
 
         private static long sNumWrites;
@@ -1141,6 +1144,12 @@
                 }
 
                 @Override
+                public void onConfigure(SQLiteDatabase db) {
+                    // Memory optimization - close idle connections after 30s of inactivity
+                    setIdleConnectionTimeout(IDLE_CONNECTION_TIMEOUT_MS);
+                }
+
+                @Override
                 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
                     if (oldVersion != newVersion) {
                         db.execSQL("DROP TABLE IF EXISTS " + TAB_LOG);