]> gitweb.stoutner.com Git - PrivacyBrowserAndroid.git/blobdiff - app/src/main/java/com/stoutner/privacybrowser/helpers/DomainsDatabaseHelper.kt
Fix tabs being created without a corresponding page. https://redmine.stoutner.com...
[PrivacyBrowserAndroid.git] / app / src / main / java / com / stoutner / privacybrowser / helpers / DomainsDatabaseHelper.kt
index c48315a21ebb2f7850d7b73d8146f6890b0377a8..dea4c75fe5316040456858d65defca7012e11b67 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2017-2023 Soren Stoutner <soren@stoutner.com>.
+ * Copyright 2017-2024 Soren Stoutner <soren@stoutner.com>.
  *
  * This file is part of Privacy Browser Android <https://www.stoutner.com/privacy-browser-android>.
  *
@@ -397,45 +397,48 @@ class DomainsDatabaseHelper(private val appContext: Context) : SQLiteOpenHelper(
         return domainsDatabase.rawQuery("SELECT * FROM $DOMAINS_TABLE WHERE $DOMAIN_NAME = $sqlEscapedDomainName", null)
     }
 
+    fun addDomain(contentValues: ContentValues) {
+        // Get a writable database handle.
+        val domainsDatabase = this.writableDatabase
+
+        // Add the new domain.
+        domainsDatabase.insert(DOMAINS_TABLE, null, contentValues)
+
+        // Close the database handle.
+        domainsDatabase.close()
+    }
+
     fun addDomain(domainName: String): Int {
+        // Add the domain with default settings.
+        return addDomain(domainName, SYSTEM_DEFAULT, SYSTEM_DEFAULT, SYSTEM_DEFAULT, SYSTEM_DEFAULT, appContext.getString(R.string.system_default_user_agent), SYSTEM_DEFAULT, SYSTEM_DEFAULT, SYSTEM_DEFAULT,
+                         SYSTEM_DEFAULT, SYSTEM_DEFAULT, SYSTEM_DEFAULT, SYSTEM_DEFAULT, SYSTEM_DEFAULT, SYSTEM_DEFAULT, SYSTEM_DEFAULT, SYSTEM_DEFAULT, SYSTEM_DEFAULT)
+    }
+
+    fun addDomain(domainName: String, javaScriptInt: Int, cookiesInt: Int, domStorageInt: Int, formDataInt: Int, userAgentName: String, easyListInt: Int, easyPrivacyInt: Int, fanboysAnnoyanceListInt: Int,
+                  fanboysSocialBlockingListInt: Int, ultraListInt: Int, ultraPrivacyInt: Int, blockAllThirdPartyRequestsInt: Int, fontSizeInt: Int, swipeToRefreshInt: Int, webViewThemeInt: Int,
+                  wideViewportInt: Int, displayImagesInt: Int): Int {
         // Instantiate a content values.
         val domainContentValues = ContentValues()
 
-        // Get a handle for the shared preference.
-        val sharedPreferences = PreferenceManager.getDefaultSharedPreferences(appContext)
-
-        // Get the default settings.
-        val javaScript = sharedPreferences.getBoolean(appContext.getString(R.string.javascript_key), false)
-        val cookies = sharedPreferences.getBoolean(appContext.getString(R.string.cookies_key), false)
-        val domStorage = sharedPreferences.getBoolean(appContext.getString(R.string.dom_storage_key), false)
-        val saveFormData = sharedPreferences.getBoolean(appContext.getString(R.string.save_form_data_key), false)  // Form data can be removed once the minimum API >= 26.
-        val easyList = sharedPreferences.getBoolean(appContext.getString(R.string.easylist_key), true)
-        val easyPrivacy = sharedPreferences.getBoolean(appContext.getString(R.string.easyprivacy_key), true)
-        val fanboyAnnoyanceList = sharedPreferences.getBoolean(appContext.getString(R.string.fanboys_annoyance_list_key), true)
-        val fanboySocialBlockingList = sharedPreferences.getBoolean(appContext.getString(R.string.fanboys_social_blocking_list_key), true)
-        val ultraList = sharedPreferences.getBoolean(appContext.getString(R.string.ultralist_key), true)
-        val ultraPrivacy = sharedPreferences.getBoolean(appContext.getString(R.string.ultraprivacy_key), true)
-        val blockAllThirdPartyRequests = sharedPreferences.getBoolean(appContext.getString(R.string.block_all_third_party_requests_key), false)
-
         // Create entries for the database fields.  The ID is created automatically.  The pinned SSL certificate information is not created unless added by the user.
         domainContentValues.put(DOMAIN_NAME, domainName)
-        domainContentValues.put(ENABLE_JAVASCRIPT, javaScript)
-        domainContentValues.put(COOKIES, cookies)
-        domainContentValues.put(ENABLE_DOM_STORAGE, domStorage)
-        domainContentValues.put(ENABLE_FORM_DATA, saveFormData) // Form data can be removed once the minimum API >= 26.
-        domainContentValues.put(USER_AGENT, appContext.getString(R.string.system_default_user_agent))
-        domainContentValues.put(ENABLE_EASYLIST, easyList)
-        domainContentValues.put(ENABLE_EASYPRIVACY, easyPrivacy)
-        domainContentValues.put(ENABLE_FANBOYS_ANNOYANCE_LIST, fanboyAnnoyanceList)
-        domainContentValues.put(ENABLE_FANBOYS_SOCIAL_BLOCKING_LIST, fanboySocialBlockingList)
-        domainContentValues.put(ULTRALIST, ultraList)
-        domainContentValues.put(ENABLE_ULTRAPRIVACY, ultraPrivacy)
-        domainContentValues.put(BLOCK_ALL_THIRD_PARTY_REQUESTS, blockAllThirdPartyRequests)
-        domainContentValues.put(FONT_SIZE, 0)
-        domainContentValues.put(SWIPE_TO_REFRESH, 0)
-        domainContentValues.put(WEBVIEW_THEME, 0)
-        domainContentValues.put(WIDE_VIEWPORT, 0)
-        domainContentValues.put(DISPLAY_IMAGES, 0)
+        domainContentValues.put(ENABLE_JAVASCRIPT, javaScriptInt)
+        domainContentValues.put(COOKIES, cookiesInt)
+        domainContentValues.put(ENABLE_DOM_STORAGE, domStorageInt)
+        domainContentValues.put(ENABLE_FORM_DATA, formDataInt) // Form data can be removed once the minimum API >= 26.
+        domainContentValues.put(USER_AGENT, userAgentName)
+        domainContentValues.put(ENABLE_EASYLIST, easyListInt)
+        domainContentValues.put(ENABLE_EASYPRIVACY, easyPrivacyInt)
+        domainContentValues.put(ENABLE_FANBOYS_ANNOYANCE_LIST, fanboysAnnoyanceListInt)
+        domainContentValues.put(ENABLE_FANBOYS_SOCIAL_BLOCKING_LIST, fanboysSocialBlockingListInt)
+        domainContentValues.put(ULTRALIST, ultraListInt)
+        domainContentValues.put(ENABLE_ULTRAPRIVACY, ultraPrivacyInt)
+        domainContentValues.put(BLOCK_ALL_THIRD_PARTY_REQUESTS, blockAllThirdPartyRequestsInt)
+        domainContentValues.put(FONT_SIZE, fontSizeInt)
+        domainContentValues.put(SWIPE_TO_REFRESH, swipeToRefreshInt)
+        domainContentValues.put(WEBVIEW_THEME, webViewThemeInt)
+        domainContentValues.put(WIDE_VIEWPORT, wideViewportInt)
+        domainContentValues.put(DISPLAY_IMAGES, displayImagesInt)
 
         // Get a writable database handle.
         val domainsDatabase = this.writableDatabase
@@ -450,17 +453,6 @@ class DomainsDatabaseHelper(private val appContext: Context) : SQLiteOpenHelper(
         return newDomainDatabaseId
     }
 
-    fun addDomain(contentValues: ContentValues) {
-        // Get a writable database handle.
-        val domainsDatabase = this.writableDatabase
-
-        // Add the new domain.
-        domainsDatabase.insert(DOMAINS_TABLE, null, contentValues)
-
-        // Close the database handle.
-        domainsDatabase.close()
-    }
-
     fun updateDomain(databaseId: Int, domainName: String, javaScript: Int, cookies: Int, domStorage: Int, formData: Int, userAgent: String, easyList: Int, easyPrivacy: Int, fanboysAnnoyance: Int,
                      fanboysSocialBlocking: Int, ultraList: Int, ultraPrivacy: Int, blockAllThirdPartyRequests: Int, fontSize: Int, swipeToRefresh: Int, webViewTheme: Int, wideViewport: Int, displayImages: Int,
                      pinnedSslCertificate: Boolean, pinnedIpAddresses: Boolean) {