]> gitweb.stoutner.com Git - PrivacyBrowserAndroid.git/blobdiff - app/src/main/java/com/stoutner/privacybrowser/helpers/DomainsDatabaseHelper.kt
Add Night Theme dual tone blue text. https://redmine.stoutner.com/issues/878
[PrivacyBrowserAndroid.git] / app / src / main / java / com / stoutner / privacybrowser / helpers / DomainsDatabaseHelper.kt
index 9d58eef07fd1fe0a46047756337f905e34c9f066..c5401d457fedd318904f0292bcd4f43f4cf5b144 100644 (file)
@@ -31,7 +31,7 @@ import androidx.preference.PreferenceManager
 import com.stoutner.privacybrowser.R
 
 // The private constants.
-private const val SCHEMA_VERSION = 13
+private const val SCHEMA_VERSION = 14
 
 class DomainsDatabaseHelper(private val appContext: Context) : SQLiteOpenHelper(appContext, DOMAINS_DATABASE, null, SCHEMA_VERSION) {
     // Define the public companion object constants.  These can be moved to public class constants once the entire project has migrated to Kotlin.
@@ -62,6 +62,7 @@ class DomainsDatabaseHelper(private val appContext: Context) : SQLiteOpenHelper(
         const val ENABLE_ULTRAPRIVACY = "enableultraprivacy"
         const val BLOCK_ALL_THIRD_PARTY_REQUESTS = "blockallthirdpartyrequests"
         const val USER_AGENT = "useragent"
+        const val X_REQUESTED_WITH_HEADER = "x_requested_with_header"
         const val FONT_SIZE = "fontsize"
         const val SWIPE_TO_REFRESH = "swipetorefresh"
         const val WEBVIEW_THEME = "webview_theme"
@@ -95,6 +96,7 @@ class DomainsDatabaseHelper(private val appContext: Context) : SQLiteOpenHelper(
                 "$ENABLE_ULTRAPRIVACY BOOLEAN, " +
                 "$BLOCK_ALL_THIRD_PARTY_REQUESTS BOOLEAN, " +
                 "$USER_AGENT TEXT, " +
+                "$X_REQUESTED_WITH_HEADER INTEGER, " +
                 "$FONT_SIZE INTEGER, " +
                 "$SWIPE_TO_REFRESH INTEGER, " +
                 "$WEBVIEW_THEME INTEGER, " +
@@ -255,6 +257,12 @@ class DomainsDatabaseHelper(private val appContext: Context) : SQLiteOpenHelper(
             // Copy the data from the old column to the new one.
             domainsDatabase.execSQL("UPDATE $DOMAINS_TABLE SET $COOKIES = enablefirstpartycookies")
         }
+
+        // Upgrade from schema version 13, first used in Privacy Browser 3.8, to schema version 14, first used in Privacy Browser 3.11.
+        if (oldVersion < 14) {
+            // Add the X-Requested-With header column.  This defaults to `0`, which is `System default`, so a separate step isn't needed to populate the column.
+            domainsDatabase.execSQL("ALTER TABLE $DOMAINS_TABLE ADD COLUMN $X_REQUESTED_WITH_HEADER INTEGER")
+        }
     }
 
     val completeCursorOrderedByDomain: Cursor
@@ -336,6 +344,7 @@ class DomainsDatabaseHelper(private val appContext: Context) : SQLiteOpenHelper(
         domainContentValues.put(ENABLE_ULTRAPRIVACY, ultraPrivacy)
         domainContentValues.put(BLOCK_ALL_THIRD_PARTY_REQUESTS, blockAllThirdPartyRequests)
         domainContentValues.put(USER_AGENT, "System default user agent")
+        domainContentValues.put(X_REQUESTED_WITH_HEADER, 0)
         domainContentValues.put(FONT_SIZE, 0)
         domainContentValues.put(SWIPE_TO_REFRESH, 0)
         domainContentValues.put(WEBVIEW_THEME, 0)
@@ -367,8 +376,9 @@ class DomainsDatabaseHelper(private val appContext: Context) : SQLiteOpenHelper(
     }
 
     fun updateDomain(databaseId: Int, domainName: String, javaScript: Boolean, cookies: Boolean, domStorage: Boolean, formData: Boolean, easyList: Boolean, easyPrivacy: Boolean, fanboysAnnoyance: Boolean,
-                     fanboysSocialBlocking: Boolean, ultraList: Boolean, ultraPrivacy: Boolean, blockAllThirdPartyRequests: Boolean, userAgent: String, fontSize: Int, swipeToRefresh: Int, webViewTheme: Int,
-                     wideViewport: Int, displayImages: Int, pinnedSslCertificate: Boolean, pinnedIpAddresses: Boolean) {
+                     fanboysSocialBlocking: Boolean, ultraList: Boolean, ultraPrivacy: Boolean, blockAllThirdPartyRequests: Boolean, userAgent: String, xRequestedWithHeader: Int, fontSize: Int,
+                     swipeToRefresh: Int, webViewTheme: Int, wideViewport: Int, displayImages: Int, pinnedSslCertificate: Boolean, pinnedIpAddresses: Boolean) {
+
         // Instantiate a content values.
         val domainContentValues = ContentValues()
 
@@ -386,6 +396,7 @@ class DomainsDatabaseHelper(private val appContext: Context) : SQLiteOpenHelper(
         domainContentValues.put(ENABLE_ULTRAPRIVACY, ultraPrivacy)
         domainContentValues.put(BLOCK_ALL_THIRD_PARTY_REQUESTS, blockAllThirdPartyRequests)
         domainContentValues.put(USER_AGENT, userAgent)
+        domainContentValues.put(X_REQUESTED_WITH_HEADER, xRequestedWithHeader)
         domainContentValues.put(FONT_SIZE, fontSize)
         domainContentValues.put(SWIPE_TO_REFRESH, swipeToRefresh)
         domainContentValues.put(WEBVIEW_THEME, webViewTheme)