Fix a crash when two threads try to update the resource requests at the same time...
authorSoren Stoutner <soren@stoutner.com>
Wed, 12 Jun 2019 09:04:34 +0000 (02:04 -0700)
committerSoren Stoutner <soren@stoutner.com>
Wed, 12 Jun 2019 09:04:34 +0000 (02:04 -0700)
app/src/main/assets/tr/images/bookmarks.png
app/src/main/java/com/stoutner/privacybrowser/activities/RequestsActivity.java
app/src/main/java/com/stoutner/privacybrowser/views/NestedScrollWebView.java
fastlane/metadata/android/tr-TR/full_description.txt
fastlane/metadata/android/tr-TR/images/phoneScreenshots/04-Bookmarks.png [new file with mode: 0644]

index 3870913d2fa06723accb475db44b2eb465d277c7..d6e392729ee13479118ea94a58ee15cfa5320dff 100644 (file)
Binary files a/app/src/main/assets/tr/images/bookmarks.png and b/app/src/main/assets/tr/images/bookmarks.png differ
index f69b75f6737e18dd99cb7704275fadc402e678ab..c7be71c5283b14995bf391c32df1568b8a6008eb 100644 (file)
@@ -50,7 +50,7 @@ import java.util.List;
 
 public class RequestsActivity extends AppCompatActivity implements ViewRequestDialog.ViewRequestListener {
     // The resource requests are populated by `MainWebViewActivity` before `RequestsActivity` is launched.
 
 public class RequestsActivity extends AppCompatActivity implements ViewRequestDialog.ViewRequestListener {
     // The resource requests are populated by `MainWebViewActivity` before `RequestsActivity` is launched.
-    public static ArrayList<String[]> resourceRequests;
+    public static List<String[]> resourceRequests;
 
     // The list view is used in `onCreate()` and `launchViewRequestDialog()`.
     private ListView requestsListView;
 
     // The list view is used in `onCreate()` and `launchViewRequestDialog()`.
     private ListView requestsListView;
index 280532592218b3c78c5a2e13efbcb3be40673808..ddb1533bcd7cd59711a11dd42c74aacdd2491004 100644 (file)
@@ -38,7 +38,9 @@ import androidx.core.view.ViewCompat;
 import com.stoutner.privacybrowser.R;
 
 import java.util.ArrayList;
 import com.stoutner.privacybrowser.R;
 
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.Date;
 import java.util.Date;
+import java.util.List;
 
 // NestedScrollWebView extends WebView to handle nested scrolls (scrolling the app bar off the screen).
 public class NestedScrollWebView extends WebView implements NestedScrollingChild2 {
 
 // NestedScrollWebView extends WebView to handle nested scrolls (scrolling the app bar off the screen).
 public class NestedScrollWebView extends WebView implements NestedScrollingChild2 {
@@ -72,7 +74,7 @@ public class NestedScrollWebView extends WebView implements NestedScrollingChild
     private boolean domainSettingsJavaScriptEnabled;
 
     // Track the resource requests.
     private boolean domainSettingsJavaScriptEnabled;
 
     // Track the resource requests.
-    private ArrayList<String[]> resourceRequests = new ArrayList<>();
+    private List<String[]> resourceRequests = Collections.synchronizedList(new ArrayList<>());  // Using a synchronized list makes adding resource requests thread safe.
     private boolean easyListEnabled;
     private boolean easyPrivacyEnabled;
     private boolean fanboysAnnoyanceListEnabled;
     private boolean easyListEnabled;
     private boolean easyPrivacyEnabled;
     private boolean fanboysAnnoyanceListEnabled;
@@ -272,8 +274,8 @@ public class NestedScrollWebView extends WebView implements NestedScrollingChild
         resourceRequests.add(resourceRequest);
     }
 
         resourceRequests.add(resourceRequest);
     }
 
-    public ArrayList<String[]> getResourceRequests() {
-        // Return the list of resource requests.
+    public List<String[]> getResourceRequests() {
+        // Return the list of resource requests as an array list.
         return resourceRequests;
     }
 
         return resourceRequests;
     }
 
index 13bf5958fd1dd489e787bb0a305197d615652995..62d725500884b9ee3cb0b728ec9f5eb383a1a8fc 100644 (file)
@@ -1,4 +1,4 @@
-Privacy Browser'in iki ana amacı vardır.
+Privacy Browser'ın iki ana amacı vardır.
 
 1. İnternete gönderilen bilgi miktarını en aza indirmek.
 
 
 1. İnternete gönderilen bilgi miktarını en aza indirmek.
 
@@ -6,11 +6,11 @@ Privacy Browser'in iki ana amacı vardır.
 
 Çoğu tarayıcı, gizliliğinizi tehlikeye atacak ve sizi izlemelerinize izin verecek büyük miktarda bilgiyi web sitelerine verir. Web siteleri ve reklam ağları, her kullanıcıyı kendilerine özgü bir şekilde tanımlamak ve web genelinde ve ziyaretleri sırasında izlemek için JavaScript, çerezler, DOM depolama, kullanıcı aracıları ve diğer birçok şey gibi teknolojileri kullanır.
 
 
 Çoğu tarayıcı, gizliliğinizi tehlikeye atacak ve sizi izlemelerinize izin verecek büyük miktarda bilgiyi web sitelerine verir. Web siteleri ve reklam ağları, her kullanıcıyı kendilerine özgü bir şekilde tanımlamak ve web genelinde ve ziyaretleri sırasında izlemek için JavaScript, çerezler, DOM depolama, kullanıcı aracıları ve diğer birçok şey gibi teknolojileri kullanır.
 
-Privacy Browser, bir tarayıcının web sitelere sunduğu bilgi miktarını en aza indirecek şekilde tasarlanmıştır. Gizliliğe duyarlı özellikler varsayılan olarak devre dışıdır. Eğer bu teknolojilerden biri, bir web sitenin düzgün çalışması için gerekliyse, kullanıcı yalnızca bu ziyaret için onu etkinleştirebilir. Veya, özel bir web sitesine girerken, belirli özellikleri otomatik olarak açmak ve ayrılırken tekrar kapatmak için domain ayarlarını kullanabilir.
+Privacy Browser, bir tarayıcının web sitelere sunduğu bilgi miktarını en aza indirecek şekilde tasarlanmıştır. Gizliliğe duyarlı özellikler varsayılan olarak devre dışıdır. Eğer bu teknolojilerden biri, bir web sitenin düzgün çalışması için gerekliyse, kullanıcı yalnızca o sitenin ziyareti için onu etkinleştirebilir. Veya, özel bir web sitesine girerken, belirli özellikleri otomatik olarak açmak ve ayrılırken tekrar kapatmak için domain ayarlarını kullanabilir.
 
 
-Privacy Browser şu anda, web sayfalarını oluşturmak için Android’in yerleşik WebView’ını kullanmaktadır .Bu nedenle, güncel WebView versiyonu yüklü olduğunda en iyi şekilde çalışır (bakınız https://www.stoutner.com/privacy-browser/common-settings/webview/). 4.x serisinde, Privacy Browser, Android WebView’ının gelişmiş gizlilik özelliklerine sahip Privacy WebView adlı bölünmüş bir versiyon ile devam edecek.
+Privacy Browser şu anda, web sayfalarını oluşturmak için Android’in yerleşik WebView’ını kullanmaktadır. Bu nedenle, güncel WebView versiyonu yüklü olduğunda en iyi şekilde çalışır (bakınız https://www.stoutner.com/privacy-browser/common-settings/webview/). 4.x serisinde, Privacy Browser, Android WebView’ın gelişmiş gizlilik özelliklerine sahip Privacy WebView adlı bölünmüş bir versiyonu ile devam edecek.
 
 
-Uyarı: Android KitKat (versiyon 4.4x, API 19) eski bir OpenSSL versiyonuna sahiptir, bu da onu, eski protokolleri ve şifre takımlarını kullanan web sayfalarını ziyaret ederken, MITM(Ortadaki Adam, Man In The Middle) saldırılarına açık hale getirir. Bu konu hakkında daha fazla bilgi burada mevcuttur.
+Uyarı: Android KitKat (versiyon 4.4x, API 19) eski bir OpenSSL versiyonuna sahiptir, bu da onu, eski protokolleri ve şifre takımlarını kullanan web sayfalarını ziyaret ederken, MITM (Ortadaki Adam, Man In The Middle) saldırılarına açık hale getirir. Bu konu hakkında daha fazla bilgi burada mevcuttur.
 https://www.stoutner.com/kitkat-security-problems/
 
 Özellikler:
 https://www.stoutner.com/kitkat-security-problems/
 
 Özellikler:
diff --git a/fastlane/metadata/android/tr-TR/images/phoneScreenshots/04-Bookmarks.png b/fastlane/metadata/android/tr-TR/images/phoneScreenshots/04-Bookmarks.png
new file mode 100644 (file)
index 0000000..c396dbc
Binary files /dev/null and b/fastlane/metadata/android/tr-TR/images/phoneScreenshots/04-Bookmarks.png differ