Use a custom spinner layout on Huawei phones running API 24. Fixes https://redmine...
authorSoren Stoutner <soren@stoutner.com>
Sat, 27 May 2017 18:06:23 +0000 (11:06 -0700)
committerSoren Stoutner <soren@stoutner.com>
Sat, 27 May 2017 18:06:23 +0000 (11:06 -0700)
.idea/dictionaries/soren.xml
app/src/main/assets/de/about_changelog.html
app/src/main/assets/en/about_changelog.html
app/src/main/assets/es/about_changelog.html
app/src/main/assets/it/about_changelog.html
app/src/main/assets/zh-rTW/about_changelog.html
app/src/main/java/com/stoutner/privacybrowser/fragments/DomainSettingsFragment.java
app/src/main/res/layout/simple_spinner_dropdown_item_huawei_fix.xml [new file with mode: 0644]

index 01627498028138bf6d77ef362a1f10fc0fadcc4d..f593ed682be75fa23f6a796a15f3430b4411f9fb 100644 (file)
@@ -52,6 +52,7 @@
       <w>framelayout</w>
       <w>gerlach</w>
       <w>googleplay</w>
+      <w>huawei</w>
       <w>imageview</w>
       <w>intl</w>
       <w>ipleak</w>
index 52707d7baa80848b57252611117be58148dfb211..add70df2f28d8882aa042ddacd52be75d7e49580 100644 (file)
@@ -33,7 +33,7 @@
 \r
     <body>\r
         <h3>2.3 (version code 23)</h3>\r
-        <p>26 May 2017 - minimum API 19, target API 25</p>\r
+        <p><a href="https://git.stoutner.com/?p=PrivacyBrowser.git;a=commitdiff;h=edbeafeb712ae0c2a217a130d940f6c8326ca2d0">26 May 2017</a> - minimum API 19, target API 25</p>\r
         <ul>\r
             <li><a href="https://redmine.stoutner.com/issues/127">Don’t include URL redirects</a> in the WebView history.</li>\r
             <li>Add the option to <a href="https://redmine.stoutner.com/issues/123">disable loading of images</a> to conserve bandwidth.</li>\r
             <li>Allow loading of <a href="https://redmine.stoutner.com/issues/128">host only URLs</a>.</li>\r
             <li><a href="https://redmine.stoutner.com/issues/129">Add icons to the settings screen</a>.</li>\r
             <li><a href="https://redmine.stoutner.com/issues/130">Add the title</a> to the URL when sharing through the options menu.</li>\r
-            <li>Hide the <a href="https://redmine.stoutner.com/issues/93">third-party cookies setting on KitKat</a> because it only works on Lollipop or newer.</li>\r
+            <li>Disable the <a href="https://redmine.stoutner.com/issues/93">third-party cookies setting on KitKat</a> because it only works on Lollipop or newer.</li>\r
             <li><a href="https://redmine.stoutner.com/issues/89">Move Refresh to the bottom</a> of the options menu.</li>\r
+            <li>Updated Italian translation provided by Francesco Buratti.</li>\r
+            <li>Updated Spanish translation provided by <a href="mailto:emails@joseleon.me">Jose A. León Becerra</a>.</li>\r
         </ul>\r
 \r
         <h3>2.2 (version code 22)</h3>\r
index 88358801763a81eb69a4e0d98db9c7e5863eccbb..e94b2e1a1f5ba72d58da28788d0f9c2efb853b43 100644 (file)
@@ -28,7 +28,7 @@
 
     <body>
         <h3>2.3 (version code 23)</h3>
-        <p>26 May 2017 - minimum API 19, target API 25</p>
+        <p><a href="https://git.stoutner.com/?p=PrivacyBrowser.git;a=commitdiff;h=edbeafeb712ae0c2a217a130d940f6c8326ca2d0">26 May 2017</a> - minimum API 19, target API 25</p>
         <ul>
             <li><a href="https://redmine.stoutner.com/issues/127">Don’t include URL redirects</a> in the WebView history.</li>
             <li>Add the option to <a href="https://redmine.stoutner.com/issues/123">disable loading of images</a> to conserve bandwidth.</li>
             <li>Allow loading of <a href="https://redmine.stoutner.com/issues/128">host only URLs</a>.</li>
             <li><a href="https://redmine.stoutner.com/issues/129">Add icons to the settings screen</a>.</li>
             <li><a href="https://redmine.stoutner.com/issues/130">Add the title</a> to the URL when sharing through the options menu.</li>
-            <li>Hide the <a href="https://redmine.stoutner.com/issues/93">third-party cookies setting on KitKat</a> because it only works on Lollipop or newer.</li>
+            <li>Disable the <a href="https://redmine.stoutner.com/issues/93">third-party cookies setting on KitKat</a> because it only works on Lollipop or newer.</li>
             <li><a href="https://redmine.stoutner.com/issues/89">Move Refresh to the bottom</a> of the options menu.</li>
+            <li>Updated Italian translation provided by Francesco Buratti.</li>
+            <li>Updated Spanish translation provided by <a href="mailto:emails@joseleon.me">Jose A. León Becerra</a>.</li>
         </ul>
 
         <h3>2.2 (version code 22)</h3>
index c1e821224150d499d90ca264be03c52774edc823..7ee6eb12ebee538416b8ef8490c52b56193f02c3 100644 (file)
@@ -30,7 +30,7 @@
 
     <body>
         <h3>2.3 (version code 23)</h3>
-        <p>26 de mayo de 2017 - API mínimo 19, API dirigido 25</p>
+        <p><a href="https://git.stoutner.com/?p=PrivacyBrowser.git;a=commitdiff;h=edbeafeb712ae0c2a217a130d940f6c8326ca2d0">26 de mayo de 2017</a> - API mínimo 19, API dirigido 25</p>
         <ul>
             <li><a href="https://redmine.stoutner.com/issues/127">No incluir redirecciones URL</a> en el historial de WebView.</li>
             <li>Añadir la opción de <a href="https://redmine.stoutner.com/issues/123">deshabilitar la carga de imágenes</a> para conservar ancho de banda.</li>
             <li>Permitir cargar las <a href="https://redmine.stoutner.com/issues/128">URLs de host solamente</a>.</li>
             <li><a href="https://redmine.stoutner.com/issues/129">Añadir iconos a la pantalla de configuración</a>.</li>
             <li><a href="https://redmine.stoutner.com/issues/130">Añadir el título</a> a la URL al compartir a través del menú de opciones.</li>
-            <li>Ocultar los <a href="https://redmine.stoutner.com/issues/93">ajustes de cookies de terceras partes en KitKat</a> porque sólo funciona en Lollipop o más nuevo.</li>
+            <li>Deshabilitar los <a href="https://redmine.stoutner.com/issues/93">ajustes de cookies de terceras partes en KitKat</a> porque sólo funciona en Lollipop o más nuevo.</li>
             <li><a href="https://redmine.stoutner.com/issues/89">Mover Actualizar a la parte inferior</a> del menú de opciones.</li>
+            <li>Traducción al español actualizada proporcionada por <a href="mailto:emails@joseleon.me">Jose A. León Becerra</a>.</li>
+            <li>Traducción al italiano actualizada proporcionada por Francesco Buratti.</li>
         </ul>
 
         <h3>2.2 (código de versión 22)</h3>
index f3eaf40cd2ae7e000fc7d6a0a4d5617e9928e7e3..9a8c9d1e7e1d6723467a600fcd117a18f9e6fab2 100644 (file)
@@ -30,7 +30,7 @@
 
     <body>
         <h3>2.3 (version code 23)</h3>
-        <p>26 Maggio 2017 - minima API 19, target API 25</p>
+        <p><a href="https://git.stoutner.com/?p=PrivacyBrowser.git;a=commitdiff;h=edbeafeb712ae0c2a217a130d940f6c8326ca2d0">26 Maggio 2017</a> - minima API 19, target API 25</p>
         <ul>
             <li><a href="https://redmine.stoutner.com/issues/127">Esclusione dei reindirizzamenti</a> nella cronologia di WebView.</li>
             <li>Aggiunta l'opzione per la <a href="https://redmine.stoutner.com/issues/123">disabilitazione del caricamento delle immagini</a> per ridurre il traffico dati.</li>
             <li>Permesso per il caricamento <a href="https://redmine.stoutner.com/issues/128">di indirizzi che hanno il solo host</a>.</li>
             <li><a href="https://redmine.stoutner.com/issues/129">Aggiunte icone nella schermata delle impostazioni</a>.</li>
             <li><a href="https://redmine.stoutner.com/issues/130">Aggiunta del titolo</a> alla URL quando viene condivisa attraverso il menu delle impostazioni.</li>
-            <li>Nascosta <a href="https://redmine.stoutner.com/issues/93">l'impostazione relativa ai cookie di terze parti in KitKat</a> perchè disponibile solo con Lollipop o successivi.</li>
+            <li>Disabilita <a href="https://redmine.stoutner.com/issues/93">l'impostazione relativa ai cookie di terze parti in KitKat</a> perchè disponibile solo con Lollipop o successivi.</li>
             <li><a href="https://redmine.stoutner.com/issues/89">Spostato il comando di Refresh in fondo</a> al menu delle impostazioni.</li>
+            <li>Aggiornamento della traduzione Italiana fornita da Francesco Buratti.</li>
+            <li>Aggiornamento della traduzione Spagnola fornita da <a href="mailto:emails@joseleon.me">Jose A. León Becerra</a>.</li>
         </ul>
 
         <h3>2.2 (versione codice 22)</h3>
index 88358801763a81eb69a4e0d98db9c7e5863eccbb..e94b2e1a1f5ba72d58da28788d0f9c2efb853b43 100644 (file)
@@ -28,7 +28,7 @@
 
     <body>
         <h3>2.3 (version code 23)</h3>
-        <p>26 May 2017 - minimum API 19, target API 25</p>
+        <p><a href="https://git.stoutner.com/?p=PrivacyBrowser.git;a=commitdiff;h=edbeafeb712ae0c2a217a130d940f6c8326ca2d0">26 May 2017</a> - minimum API 19, target API 25</p>
         <ul>
             <li><a href="https://redmine.stoutner.com/issues/127">Don’t include URL redirects</a> in the WebView history.</li>
             <li>Add the option to <a href="https://redmine.stoutner.com/issues/123">disable loading of images</a> to conserve bandwidth.</li>
             <li>Allow loading of <a href="https://redmine.stoutner.com/issues/128">host only URLs</a>.</li>
             <li><a href="https://redmine.stoutner.com/issues/129">Add icons to the settings screen</a>.</li>
             <li><a href="https://redmine.stoutner.com/issues/130">Add the title</a> to the URL when sharing through the options menu.</li>
-            <li>Hide the <a href="https://redmine.stoutner.com/issues/93">third-party cookies setting on KitKat</a> because it only works on Lollipop or newer.</li>
+            <li>Disable the <a href="https://redmine.stoutner.com/issues/93">third-party cookies setting on KitKat</a> because it only works on Lollipop or newer.</li>
             <li><a href="https://redmine.stoutner.com/issues/89">Move Refresh to the bottom</a> of the options menu.</li>
+            <li>Updated Italian translation provided by Francesco Buratti.</li>
+            <li>Updated Spanish translation provided by <a href="mailto:emails@joseleon.me">Jose A. León Becerra</a>.</li>
         </ul>
 
         <h3>2.2 (version code 22)</h3>
index 4416d3019da0a3ccc3b6d863ab5fddfd5581e863..5362026c8232735cf8621ef83bf0c3b1f459a021 100644 (file)
@@ -116,10 +116,17 @@ public class DomainSettingsFragment extends Fragment {
         final ArrayAdapter<CharSequence> displayImagesArrayAdapter = ArrayAdapter.createFromResource(context, R.array.display_website_images_array, android.R.layout.simple_spinner_item);
 
         // Set the drop down style for the `ArrayAdapters`.
-        userAgentArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
         fontSizeArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
         displayImagesArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
 
+        // Some phones running Huawei's customized Android 7.0 don't display a spinner that requires scrolling correctly with the default `simple_spinner_dropdown_item`.  The Huawei P9 Lite is known to be affected.
+        if (Build.BRAND.equals("HUAWEI") && (Build.VERSION.SDK_INT == 24)) {  // The device is manufactured by Huawei and is running Android 7.0.
+            // Use a customized `simple_spinner_dropdown_item`.
+            userAgentArrayAdapter.setDropDownViewResource(R.layout.simple_spinner_dropdown_item_huawei_fix);
+        } else {  // Use the standard `android.R.layout.simple_spinner_dropdown_item` on all other devices.
+            userAgentArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
+        }
+
         // Set the `ArrayAdapters` for the `Spinners`.
         userAgentSpinner.setAdapter(userAgentArrayAdapter);
         fontSizeSpinner.setAdapter(fontSizeArrayAdapter);
diff --git a/app/src/main/res/layout/simple_spinner_dropdown_item_huawei_fix.xml b/app/src/main/res/layout/simple_spinner_dropdown_item_huawei_fix.xml
new file mode 100644 (file)
index 0000000..eeb37ce
--- /dev/null
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+    Modifications copyright © 2017 Soren Stoutner <soren@stoutner.com>.
+
+    `simple_spinner_dropdown_item_huawei_fix.xml` comes from the Android API 25 platform SDK, and is usually referenced as `android.R.layout.simple_spinner_dropdown_item`.
+
+    The licensing information for the original file is below:
+
+    //device/apps/common/assets/res/any/layout/simple_spinner_item.xml
+
+    Copyright 2008, The Android Open Source Project
+
+    Licensed under the Apache License, Version 2.0 (the "License")
+    you may not use this file except in compliance with the License.
+    You may obtain a copy of the License at
+
+        http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an “AS IS” BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License. -->
+
+<!-- Huawei did something to their customizations to Android 7.0 (API 24) to break scrolling on `spinners`.  Modifying this file to set `android:layout_height="wrap_content"` resolves the issue. -->
+<CheckedTextView
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@android:id/text1"
+    android:layout_height="wrap_content"
+    android:layout_width="match_parent"
+    style="?android:attr/spinnerDropDownItemStyle"
+    android:maxLines="1"
+    android:ellipsize="marquee" />