release-request-957cd691-fb71-4770-8ff7-a3b9602655a5-for-git_oc-mr1-release-4314464 snap-temp-L54400000099147910

Change-Id: I450a704da703474dffdcfd9ae697fc2df7508d37
diff --git a/src/com/android/providers/contacts/CallLogDatabaseHelper.java b/src/com/android/providers/contacts/CallLogDatabaseHelper.java
index d4ed930..736d665 100644
--- a/src/com/android/providers/contacts/CallLogDatabaseHelper.java
+++ b/src/com/android/providers/contacts/CallLogDatabaseHelper.java
@@ -47,6 +47,8 @@
 
     private static final String SHADOW_DATABASE_NAME = "calllog_shadow.db";
 
+    private static final int IDLE_CONNECTION_TIMEOUT_MS = 30000;
+
     private static CallLogDatabaseHelper sInstance;
 
     /** Instance for the "shadow" provider. */
@@ -87,6 +89,8 @@
         public OpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory,
                 int version) {
             super(context, name, factory, version);
+            // Memory optimization - close idle connections after 30s of inactivity
+            setIdleConnectionTimeout(IDLE_CONNECTION_TIMEOUT_MS);
         }
 
         @Override
diff --git a/src/com/android/providers/contacts/ContactsDatabaseHelper.java b/src/com/android/providers/contacts/ContactsDatabaseHelper.java
index c45c63e..76fe173 100644
--- a/src/com/android/providers/contacts/ContactsDatabaseHelper.java
+++ b/src/com/android/providers/contacts/ContactsDatabaseHelper.java
@@ -144,6 +144,8 @@
     @VisibleForTesting
     static final boolean DISALLOW_SUB_QUERIES = false;
 
+    private static final int IDLE_CONNECTION_TIMEOUT_MS = 30000;
+
     public interface Tables {
         public static final String CONTACTS = "contacts";
         public static final String DELETED_CONTACTS = "deleted_contacts";
@@ -1064,6 +1066,8 @@
             enableWal = false;
         }
         setWriteAheadLoggingEnabled(enableWal);
+        // Memory optimization - close idle connections after 30s of inactivity
+        setIdleConnectionTimeout(IDLE_CONNECTION_TIMEOUT_MS);
         mDatabaseOptimizationEnabled = optimizationEnabled;
         mIsTestInstance = isTestInstance;
         Resources resources = context.getResources();