From: Soren Stoutner Date: Wed, 28 May 2025 21:53:50 +0000 (-0700) Subject: Clear the cache after every page load. https://redmine.stoutner.com/issues/1275 X-Git-Url: https://gitweb.stoutner.com/?a=commitdiff_plain;h=8266aa86d008d0b0db671a06fed3ca71f0f1ff94;p=PrivacyBrowserAndroid.git Clear the cache after every page load. https://redmine.stoutner.com/issues/1275 --- diff --git a/app/build.gradle b/app/build.gradle index 8dbab8b4..f8a4eac3 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -82,23 +82,23 @@ android { dependencies { // Include the following AndroidX libraries. - implementation "androidx.activity:activity-ktx:1.10.0" + implementation "androidx.activity:activity-ktx:1.10.1" implementation 'androidx.arch.core:core-common:2.2.0' implementation 'androidx.arch.core:core-runtime:2.2.0' implementation 'androidx.appcompat:appcompat:1.7.0' implementation 'androidx.cardview:cardview:1.0.0' - implementation 'androidx.coordinatorlayout:coordinatorlayout:1.2.0' - implementation 'androidx.core:core-ktx:1.15.0' + implementation 'androidx.coordinatorlayout:coordinatorlayout:1.3.0' + implementation 'androidx.core:core-ktx:1.16.0' implementation 'androidx.drawerlayout:drawerlayout:1.2.0' - implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.7' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.9.0' implementation 'androidx.preference:preference-ktx:1.2.1' implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0' implementation 'androidx.viewpager:viewpager:1.1.0' - implementation 'androidx.webkit:webkit:1.12.1' + implementation 'androidx.webkit:webkit:1.13.0' // Include the Kotlin standard library. This should be the same version number listed in project build.gradle. - implementation 'org.jetbrains.kotlin:kotlin-stdlib:2.0.21' + implementation 'org.jetbrains.kotlin:kotlin-stdlib:2.1.0' // Include the Google material library. - implementation 'com.google.android.material:material:1.13.0-alpha10' + implementation 'com.google.android.material:material:1.13.0-alpha13' } diff --git a/app/src/alt/res/drawable/privacy_browser_foreground.xml b/app/src/alt/res/drawable/privacy_browser_foreground.xml index 31e5666c..1a1250d2 100644 --- a/app/src/alt/res/drawable/privacy_browser_foreground.xml +++ b/app/src/alt/res/drawable/privacy_browser_foreground.xml @@ -1,22 +1,23 @@ + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> . - - This file is derived from `security` and `language`, which are part of the Android Material icon set . They are released under the Apache License 2.0. + SPDX-License-Identifier: GPL-3.0-or-later + SPDX-FileCopyrightText: 2016-2017, 2021-2023 Soren Stoutner This file is part of Privacy Browser Android . - Privacy Browser Android is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. + It is derived from `security` and `language`, which are part of the Android Material icon set . They are released under the Apache License 2.0. - Privacy Browser Android is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + This program is free software: you can redistribute it and/or modify it under + the terms of the GNU General Public License as published by the Free Software + Foundation, either version 3 of the License, or (at your option) any later + version. - You should have received a copy of the GNU General Public License - along with Privacy Browser Android. If not, see . --> + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + details. + You should have received a copy of the GNU General Public License along with + this program. If not, see . -->

3.19.3 (Code-Version 79)

-

31. Januar 2025 - Mindest-API 26, Ziel-API 35

+

31. Januar 2025 - Mindest-API 26, Ziel-API 35

  • Problem mit Abstürzen auf bestimmten Geräten bei Verwendung der unteren App-Leiste behoben.
  • Problem mit Scroll-Position des Navigations-Menüs unter Android <= 14 (API <= 34) behoben.
  • diff --git a/app/src/main/assets/de/about_licenses.html b/app/src/main/assets/de/about_licenses.html index 9e7ec4a2..f0fb1fee 100644 --- a/app/src/main/assets/de/about_licenses.html +++ b/app/src/main/assets/de/about_licenses.html @@ -112,7 +112,7 @@

    The following icons come from the Android Material icon set, which is released under the Apache License 2.0. They are unchanged except for layout information like color and size. Some of them have been renamed to match their use in the code. The original icons and names are shown below.

    -

    add.

    +

    add_rounded_fill0_weight400_grade0_24px.

    aod_tablet_rounded_grade200.

    arrow_back.

    arrow_downward_rounded_fill0_weight400_grade0_24px.

    @@ -124,7 +124,7 @@

    call_to_action.

    camera_enhance.

    chrome_reader_mode.

    -

    close.

    +

    close_rounded_fill0_weight400_grade0_24px.

    delete.

    delete_forever.

    devices_other.

    @@ -132,8 +132,6 @@

    dns.

    donut_small.

    edit.

    -

    expand_less.

    -

    expand_more.

    file_copy.

    file_download.

    find_in_page.

    @@ -145,6 +143,10 @@

    import_export.

    important_devices.

    info_outline.

    +

    + keyboard_arrow_down_rounded_fill0_weight400_grade0_24px.

    +

    + keyboard_arrow_up_rounded_fill0_weight400_grade0_24px.

    language.

    link_off.

    list.

    @@ -163,7 +165,7 @@

    question_answer.

    refresh.

    save.

    -

    search.

    +

    search_rounded_fill0_weight400_grade0_24px.

    select_all.

    settings.

    settings_overscan.

    diff --git a/app/src/main/assets/en/about_changelog.html b/app/src/main/assets/en/about_changelog.html index c1068888..796d5d34 100644 --- a/app/src/main/assets/en/about_changelog.html +++ b/app/src/main/assets/en/about_changelog.html @@ -30,7 +30,7 @@

    3.19.3 (version code 79)

    -

    31 January 2025 - minimum API 26, target API 35

    +

    31 January 2025 - minimum API 26, target API 35

    • Fix a crash on certain devices when using the bottom app bar.
    • Fix the navigation drawer scroll position on Android <= 14 (API <= 34).
    • diff --git a/app/src/main/assets/en/about_licenses.html b/app/src/main/assets/en/about_licenses.html index a27e6a99..58a10028 100644 --- a/app/src/main/assets/en/about_licenses.html +++ b/app/src/main/assets/en/about_licenses.html @@ -108,7 +108,7 @@

      The following icons come from the Android Material icon set, which is released under the Apache License 2.0. They are unchanged except for layout information like color and size. Some of them have been renamed to match their use in the code. The original icons and names are shown below.

      -

      add.

      +

      add_rounded_fill0_weight400_grade0_24px.

      aod_tablet_rounded_grade200.

      arrow_back.

      arrow_downward_rounded_fill0_weight400_grade0_24px.

      @@ -120,7 +120,7 @@

      call_to_action.

      camera_enhance.

      chrome_reader_mode.

      -

      close.

      +

      close_rounded_fill0_weight400_grade0_24px.

      delete.

      delete_forever.

      devices_other.

      @@ -128,8 +128,6 @@

      dns.

      donut_small.

      edit.

      -

      expand_less.

      -

      expand_more.

      file_copy.

      file_download.

      find_in_page.

      @@ -141,6 +139,10 @@

      import_export.

      important_devices.

      info_outline.

      +

      + keyboard_arrow_down_rounded_fill0_weight400_grade0_24px.

      +

      + keyboard_arrow_up_rounded_fill0_weight400_grade0_24px.

      language.

      link_off.

      list.

      @@ -159,7 +161,7 @@

      question_answer.

      refresh.

      save.

      -

      search.

      +

      search_rounded_fill0_weight400_grade0_24px.

      select_all.

      settings.

      settings_overscan.

      diff --git a/app/src/main/assets/es/about_changelog.html b/app/src/main/assets/es/about_changelog.html index 86422192..f004398b 100644 --- a/app/src/main/assets/es/about_changelog.html +++ b/app/src/main/assets/es/about_changelog.html @@ -32,7 +32,7 @@

      3.19.3 (código de versión 79)

      -

      31 de enero de 2025 - API mínimo 26, API objetivo 35

      +

      31 de enero de 2025 - API mínimo 26, API objetivo 35

      • Corregir un fallo en ciertos dispositivos al utilizar la barra inferior de aplicaciones.
      • Corregir la posición de desplazamiento del cajón de navegación en Android <= 14 (API <= 34).
      • diff --git a/app/src/main/assets/es/about_licenses.html b/app/src/main/assets/es/about_licenses.html index 8a92454c..3ffc501d 100644 --- a/app/src/main/assets/es/about_licenses.html +++ b/app/src/main/assets/es/about_licenses.html @@ -112,7 +112,7 @@ el cual es liberado bajo la licencia Apache 2.0. Están sin cambios, excepto por la información de diseño como el color y el tamaño. Algunos de ellos se han renombrado para que coincida con su uso en el código. Los iconos y los nombres originales se muestran a continuación.

        -

        add.

        +

        add_rounded_fill0_weight400_grade0_24px.

        aod_tablet_rounded_grade200.

        arrow_back.

        arrow_downward_rounded_fill0_weight400_grade0_24px.

        @@ -124,7 +124,7 @@

        call_to_action.

        camera_enhance.

        chrome_reader_mode.

        -

        close.

        +

        close_rounded_fill0_weight400_grade0_24px.

        delete.

        delete_forever.

        devices_other.

        @@ -132,8 +132,6 @@

        dns.

        donut_small.

        edit.

        -

        expand_less.

        -

        expand_more.

        file_copy.

        file_download.

        find_in_page.

        @@ -145,6 +143,10 @@

        import_export.

        important_devices.

        info_outline.

        +

        + keyboard_arrow_down_rounded_fill0_weight400_grade0_24px.

        +

        + keyboard_arrow_up_rounded_fill0_weight400_grade0_24px.

        language.

        link_off.

        list.

        @@ -163,7 +165,7 @@

        question_answer.

        refresh.

        save.

        -

        search.

        +

        search_rounded_fill0_weight400_grade0_24px.

        select_all.

        settings.

        settings_overscan.

        diff --git a/app/src/main/assets/fr/about_changelog.html b/app/src/main/assets/fr/about_changelog.html index 23aae42b..5ef2de07 100644 --- a/app/src/main/assets/fr/about_changelog.html +++ b/app/src/main/assets/fr/about_changelog.html @@ -2,7 +2,7 @@ SPDX-License-Identifier: GPL-3.0-or-later SPDX-FileCopyrightText: 2016-2025 Soren Stoutner - Translation 2019-2024 Kévin L. . Copyright assigned to Soren Stoutner . + Translation 2019-2025 Kévin L. . Copyright assigned to Soren Stoutner . This file is part of Privacy Browser Android . @@ -32,23 +32,23 @@

        3.19.3 (version du code 79)

        -

        31 Janvier 2025 - API minimale : 26, API optimale : 35

        +

        31 Janvier 2025 - API minimale : 26, API optimale : 35

        3.19.2 (version du code 78)

        10 Janvier 2025 - API minimale : 26, API optimale : 35

        3.19.1 (version du code 77)

        2 Janvier 2025 - API minimale : 26, API optimale : 35

        3.19 (version du code 76)

        diff --git a/app/src/main/assets/fr/about_licenses.html b/app/src/main/assets/fr/about_licenses.html index f8c1ee3d..b760915c 100644 --- a/app/src/main/assets/fr/about_licenses.html +++ b/app/src/main/assets/fr/about_licenses.html @@ -114,7 +114,7 @@ qui est publié sous la Licence Apache 2.0. Ils sont inchangés sauf pour les informations de mise en page comme la couleur et la taille. Certains d'entre eux ont été renommés pour correspondre à leur utilisation dans le code. Les icônes et les noms d'origine sont indiqués ci-dessous.

        -

        add.

        +

        add_rounded_fill0_weight400_grade0_24px.

        aod_tablet_rounded_grade200.

        arrow_back.

        arrow_downward_rounded_fill0_weight400_grade0_24px.

        @@ -126,7 +126,7 @@

        call_to_action.

        camera_enhance.

        chrome_reader_mode.

        -

        close.

        +

        close_rounded_fill0_weight400_grade0_24px.

        delete.

        delete_forever.

        devices_other.

        @@ -134,8 +134,6 @@

        dns.

        donut_small.

        edit.

        -

        expand_less.

        -

        expand_more.

        file_copy.

        file_download.

        find_in_page.

        @@ -147,6 +145,10 @@

        import_export.

        important_devices.

        info_outline.

        +

        + keyboard_arrow_down_rounded_fill0_weight400_grade0_24px.

        +

        + keyboard_arrow_up_rounded_fill0_weight400_grade0_24px.

        language.

        link_off.

        list.

        @@ -165,7 +167,7 @@

        question_answer.

        refresh.

        save.

        -

        search.

        +

        search_rounded_fill0_weight400_grade0_24px.

        select_all.

        settings.

        settings_overscan.

        diff --git a/app/src/main/assets/it/about_changelog.html b/app/src/main/assets/it/about_changelog.html index 8047af4b..1405ad55 100644 --- a/app/src/main/assets/it/about_changelog.html +++ b/app/src/main/assets/it/about_changelog.html @@ -32,7 +32,7 @@

        3.19.3 (versione codice 79)

        -

        31 Gennaio 2025 - minima API 26, target API 35

        +

        31 Gennaio 2025 - minima API 26, target API 35

        • Sistemazione di un crash su alcuni dispositivi quando viene utilizzata la barra dell'app in basso.
        • Sistemazione della posizione dello scorrimento del cassetto di navigazione su Android <= 14 (API <= 34).
        • diff --git a/app/src/main/assets/it/about_licenses.html b/app/src/main/assets/it/about_licenses.html index 07fc5093..3b9bd582 100644 --- a/app/src/main/assets/it/about_licenses.html +++ b/app/src/main/assets/it/about_licenses.html @@ -116,7 +116,7 @@ che è rilasciato sotto Licenza Apache 2.0. Non sono state modificatae ad eccezione del colore e della dimensione. Alcune sono state rinominate per coerenza con il tipo di utilizzo all'interno del codice. Le icone con i loro nomi originali sono riportate di seguito.

          -

          add.

          +

          add_rounded_fill0_weight400_grade0_24px.

          aod_tablet_rounded_grade200.

          arrow_back.

          arrow_downward_rounded_fill0_weight400_grade0_24px.

          @@ -128,7 +128,7 @@

          call_to_action.

          camera_enhance.

          chrome_reader_mode.

          -

          close.

          +

          close_rounded_fill0_weight400_grade0_24px.

          delete.

          delete_forever.

          devices_other.

          @@ -136,8 +136,6 @@

          dns.

          donut_small.

          edit.

          -

          expand_less.

          -

          expand_more.

          file_copy.

          file_download.

          find_in_page.

          @@ -149,6 +147,10 @@

          import_export.

          important_devices.

          info_outline.

          +

          + keyboard_arrow_down_rounded_fill0_weight400_grade0_24px.

          +

          + keyboard_arrow_up_rounded_fill0_weight400_grade0_24px.

          language.

          link_off.

          list.

          @@ -167,7 +169,7 @@

          question_answer.

          refresh.

          save.

          -

          search.

          +

          search_rounded_fill0_weight400_grade0_24px.

          select_all.

          settings.

          settings_overscan.

          diff --git a/app/src/main/assets/pt-rBR/about_changelog.html b/app/src/main/assets/pt-rBR/about_changelog.html index d67b11ab..47a1078a 100644 --- a/app/src/main/assets/pt-rBR/about_changelog.html +++ b/app/src/main/assets/pt-rBR/about_changelog.html @@ -32,7 +32,7 @@

          3.19.3 (código de versão 79)

          -

          31 de janeiro de 2025 - minimum API 26, target API 35

          +

          31 de janeiro de 2025 - minimum API 26, target API 35

          • Fix a crash on certain devices when using the bottom app bar.
          • Fix the navigation drawer scroll position on Android <= 14 (API <= 34).
          • diff --git a/app/src/main/assets/pt-rBR/about_licenses.html b/app/src/main/assets/pt-rBR/about_licenses.html index 9837013a..6a6014f4 100644 --- a/app/src/main/assets/pt-rBR/about_licenses.html +++ b/app/src/main/assets/pt-rBR/about_licenses.html @@ -111,7 +111,7 @@

            The following icons come from the Android Material icon set, which is released under the Apache License 2.0. They are unchanged except for layout information like color and size. Some of them have been renamed to match their use in the code. The original icons and names are shown below.

            -

            add.

            +

            add_rounded_fill0_weight400_grade0_24px.

            aod_tablet_rounded_grade200.

            arrow_back.

            arrow_downward_rounded_fill0_weight400_grade0_24px.

            @@ -123,7 +123,7 @@

            call_to_action.

            camera_enhance.

            chrome_reader_mode.

            -

            close.

            +

            close_rounded_fill0_weight400_grade0_24px.

            delete.

            delete_forever.

            devices_other.

            @@ -131,8 +131,6 @@

            dns.

            donut_small.

            edit.

            -

            expand_less.

            -

            expand_more.

            file_copy.

            file_download.

            find_in_page.

            @@ -144,6 +142,10 @@

            import_export.

            important_devices.

            info_outline.

            +

            + keyboard_arrow_down_rounded_fill0_weight400_grade0_24px.

            +

            + keyboard_arrow_up_rounded_fill0_weight400_grade0_24px.

            language.

            link_off.

            list.

            @@ -162,7 +164,7 @@

            question_answer.

            refresh.

            save.

            -

            search.

            +

            search_rounded_fill0_weight400_grade0_24px.

            select_all.

            settings.

            settings_overscan.

            diff --git a/app/src/main/assets/ru/about_changelog.html b/app/src/main/assets/ru/about_changelog.html index 011f1d32..4d0ab4c3 100644 --- a/app/src/main/assets/ru/about_changelog.html +++ b/app/src/main/assets/ru/about_changelog.html @@ -30,7 +30,7 @@

            3.19.3 (код версии 79)

            -

            31 января 2025 года - минимальный API 26, целевой API 35

            +

            31 января 2025 года - минимальный API 26, целевой API 35

            • Исправлен сбой на некоторых устройствах, возникавший при использовании нижней панели приложения.
            • Исправлено положение скроллера панели навигации на Android <= 14 (API <= 34).
            • diff --git a/app/src/main/assets/ru/about_licenses.html b/app/src/main/assets/ru/about_licenses.html index 5ef5a967..658d3d9a 100644 --- a/app/src/main/assets/ru/about_licenses.html +++ b/app/src/main/assets/ru/about_licenses.html @@ -108,7 +108,7 @@

              Следующие значки взяты изAndroid Material icon set, которые выпущены под Apache License 2.0. Они неизменны, за исключением такой информации, как цвет и размер. Некоторые из них были переименованы в соответствии с их использованием в коде. Оригинальные значки и имена показаны ниже.

              -

              add.

              +

              add_rounded_fill0_weight400_grade0_24px.

              aod_tablet_rounded_grade200.

              arrow_back.

              arrow_downward_rounded_fill0_weight400_grade0_24px.

              @@ -120,7 +120,7 @@

              call_to_action.

              camera_enhance.

              chrome_reader_mode.

              -

              close.

              +

              close_rounded_fill0_weight400_grade0_24px.

              delete.

              delete_forever.

              devices_other.

              @@ -128,8 +128,6 @@

              dns.

              donut_small.

              edit.

              -

              expand_less.

              -

              expand_more.

              file_copy.

              file_download.

              find_in_page.

              @@ -141,6 +139,10 @@

              import_export.

              important_devices.

              info_outline.

              +

              + keyboard_arrow_down_rounded_fill0_weight400_grade0_24px.

              +

              + keyboard_arrow_up_rounded_fill0_weight400_grade0_24px.

              language.

              link_off.

              list.

              @@ -159,7 +161,7 @@

              question_answer.

              refresh.

              save.

              -

              search.

              +

              search_rounded_fill0_weight400_grade0_24px.

              select_all.

              settings.

              settings_overscan.

              diff --git a/app/src/main/assets/shared_images/add.svg b/app/src/main/assets/shared_images/add.svg deleted file mode 100644 index 4dab9f0b..00000000 --- a/app/src/main/assets/shared_images/add.svg +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - diff --git a/app/src/main/assets/shared_images/add_rounded_fill0_weight400_grade0_24px.svg b/app/src/main/assets/shared_images/add_rounded_fill0_weight400_grade0_24px.svg new file mode 100644 index 00000000..cd5c57f5 --- /dev/null +++ b/app/src/main/assets/shared_images/add_rounded_fill0_weight400_grade0_24px.svg @@ -0,0 +1,31 @@ + + + + + + + + diff --git a/app/src/main/assets/shared_images/aod_tablet_rounded_grade200.svg b/app/src/main/assets/shared_images/aod_tablet_rounded_grade200.svg index b269bf1b..4ba44ff6 100644 --- a/app/src/main/assets/shared_images/aod_tablet_rounded_grade200.svg +++ b/app/src/main/assets/shared_images/aod_tablet_rounded_grade200.svg @@ -1,24 +1,25 @@ + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + details. + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> - - - - - - - diff --git a/app/src/main/assets/shared_images/close_rounded_fill0_weight400_grade0_24px.svg b/app/src/main/assets/shared_images/close_rounded_fill0_weight400_grade0_24px.svg new file mode 100644 index 00000000..fcdc21a9 --- /dev/null +++ b/app/src/main/assets/shared_images/close_rounded_fill0_weight400_grade0_24px.svg @@ -0,0 +1,31 @@ + + + + + + + + diff --git a/app/src/main/assets/shared_images/cookie.svg b/app/src/main/assets/shared_images/cookie.svg index 617e2c88..bdea937d 100644 --- a/app/src/main/assets/shared_images/cookie.svg +++ b/app/src/main/assets/shared_images/cookie.svg @@ -1,25 +1,25 @@ + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> - - - - - - - diff --git a/app/src/main/assets/shared_images/expand_more.svg b/app/src/main/assets/shared_images/expand_more.svg deleted file mode 100644 index 3579947b..00000000 --- a/app/src/main/assets/shared_images/expand_more.svg +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - diff --git a/app/src/main/assets/shared_images/file_copy.svg b/app/src/main/assets/shared_images/file_copy.svg index a08e3dba..d174cdd3 100644 --- a/app/src/main/assets/shared_images/file_copy.svg +++ b/app/src/main/assets/shared_images/file_copy.svg @@ -1,24 +1,25 @@ + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + + + + + + + diff --git a/app/src/main/assets/shared_images/keyboard_arrow_up_rounded_fill0_weight400_grade0_24px.svg b/app/src/main/assets/shared_images/keyboard_arrow_up_rounded_fill0_weight400_grade0_24px.svg new file mode 100644 index 00000000..5756220e --- /dev/null +++ b/app/src/main/assets/shared_images/keyboard_arrow_up_rounded_fill0_weight400_grade0_24px.svg @@ -0,0 +1,31 @@ + + + + + + + + diff --git a/app/src/main/assets/shared_images/language.svg b/app/src/main/assets/shared_images/language.svg index 8909e919..76cc8221 100644 --- a/app/src/main/assets/shared_images/language.svg +++ b/app/src/main/assets/shared_images/language.svg @@ -1,24 +1,25 @@ + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + + + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> - - - - - - - diff --git a/app/src/main/assets/shared_images/search_rounded_fill0_weight400_grade0_24px.svg b/app/src/main/assets/shared_images/search_rounded_fill0_weight400_grade0_24px.svg new file mode 100644 index 00000000..2d382e8a --- /dev/null +++ b/app/src/main/assets/shared_images/search_rounded_fill0_weight400_grade0_24px.svg @@ -0,0 +1,31 @@ + + + + + + + + diff --git a/app/src/main/assets/shared_images/select_all.svg b/app/src/main/assets/shared_images/select_all.svg index db7df0d0..221c71c1 100644 --- a/app/src/main/assets/shared_images/select_all.svg +++ b/app/src/main/assets/shared_images/select_all.svg @@ -1,24 +1,25 @@ + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . -->

              3.19.3 (version code 79)

              -

              31 Ocak 2025 - minimum API 26, target API 35

              +

              31 Ocak 2025 - minimum API 26, target API 35

              • Fix a crash on certain devices when using the bottom app bar.
              • Fix the navigation drawer scroll position on Android <= 14 (API <= 34).
              • diff --git a/app/src/main/assets/tr/about_licenses.html b/app/src/main/assets/tr/about_licenses.html index 684bb37f..bc829117 100644 --- a/app/src/main/assets/tr/about_licenses.html +++ b/app/src/main/assets/tr/about_licenses.html @@ -109,7 +109,7 @@

                Aşağıdaki simgeler Apache License 2.0 altında yayınlanan Android Material simge setinden gelmektedir. Renk ve ebat gibi düzen bilgileri dışında herhangi bir değişiklik yapılmamıştır. Bazıları koddaki kullanımlarıyla uygun olacak şekilde yeniden adlandırıldı. Orijinal simgeler ve adlar aşağıda gösterilmiştir.

                -

                add.

                +

                add_rounded_fill0_weight400_grade0_24px.

                aod_tablet_rounded_grade200.

                arrow_back.

                arrow_downward_rounded_fill0_weight400_grade0_24px.

                @@ -121,7 +121,7 @@

                call_to_action.

                camera_enhance.

                chrome_reader_mode.

                -

                close.

                +

                close_rounded_fill0_weight400_grade0_24px.

                delete.

                delete_forever.

                devices_other.

                @@ -129,8 +129,6 @@

                dns.

                donut_small.

                edit.

                -

                expand_less.

                -

                expand_more.

                file_copy.

                file_download.

                find_in_page.

                @@ -142,6 +140,10 @@

                import_export.

                important_devices.

                info_outline.

                +

                + keyboard_arrow_down_rounded_fill0_weight400_grade0_24px.

                +

                + keyboard_arrow_up_rounded_fill0_weight400_grade0_24px.

                language.

                link_off.

                list.

                @@ -160,7 +162,7 @@

                question_answer.

                refresh.

                save.

                -

                search.

                +

                search_rounded_fill0_weight400_grade0_24px.

                select_all.

                settings.

                settings_overscan.

                diff --git a/app/src/main/assets/zh-rCN/about_changelog.html b/app/src/main/assets/zh-rCN/about_changelog.html index ac6853e4..70e2a7df 100644 --- a/app/src/main/assets/zh-rCN/about_changelog.html +++ b/app/src/main/assets/zh-rCN/about_changelog.html @@ -32,7 +32,7 @@

                3.19.3 (version code 79)

                -

                31 January 2025 - 最低支持API 26, 最高支持API 35

                +

                31 January 2025 - 最低支持API 26, 最高支持API 35

                • Fix a crash on certain devices when using the bottom app bar.
                • Fix the navigation drawer scroll position on Android <= 14 (API <= 34).
                • diff --git a/app/src/main/assets/zh-rCN/about_licenses.html b/app/src/main/assets/zh-rCN/about_licenses.html index ca3c73d3..dee2628f 100644 --- a/app/src/main/assets/zh-rCN/about_licenses.html +++ b/app/src/main/assets/zh-rCN/about_licenses.html @@ -109,7 +109,7 @@

                  以下的图标来自Android Material icon set, 在Apache License 2.0下发布。 除了颜色和大小其他的布局信息没有改变。他们的一部分重命名来匹配他们在代码中的使用。原始图标和名字在下面展示。

                  -

                  add.

                  +

                  add_rounded_fill0_weight400_grade0_24px.

                  aod_tablet_rounded_grade200.

                  arrow_back.

                  arrow_downward_rounded_fill0_weight400_grade0_24px.

                  @@ -121,7 +121,7 @@

                  call_to_action.

                  camera_enhance.

                  chrome_reader_mode.

                  -

                  close.

                  +

                  close_rounded_fill0_weight400_grade0_24px.

                  delete.

                  delete_forever.

                  devices_other.

                  @@ -129,8 +129,6 @@

                  dns.

                  donut_small.

                  edit.

                  -

                  expand_less.

                  -

                  expand_more.

                  file_copy.

                  file_download.

                  find_in_page.

                  @@ -142,6 +140,10 @@

                  import_export.

                  important_devices.

                  info_outline.

                  +

                  + keyboard_arrow_down_rounded_fill0_weight400_grade0_24px.

                  +

                  + keyboard_arrow_up_rounded_fill0_weight400_grade0_24px.

                  language.

                  link_off.

                  list.

                  @@ -160,7 +162,7 @@

                  question_answer.

                  refresh.

                  save.

                  -

                  search.

                  +

                  search_rounded_fill0_weight400_grade0_24px.

                  select_all.

                  settings.

                  settings_overscan.

                  diff --git a/app/src/main/java/com/stoutner/privacybrowser/activities/LogcatActivity.kt b/app/src/main/java/com/stoutner/privacybrowser/activities/LogcatActivity.kt index b33fc7fe..d4306343 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/activities/LogcatActivity.kt +++ b/app/src/main/java/com/stoutner/privacybrowser/activities/LogcatActivity.kt @@ -1,20 +1,20 @@ -/* - * Copyright 2019-2024 Soren Stoutner . +/* SPDX-License-Identifier: GPL-3.0-or-later + * SPDX-FileCopyrightText: 2019-2025 Soren Stoutner * * This file is part of Privacy Browser Android . * - * Privacy Browser Android is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software: you can redistribute it and/or modify it under + * the terms of the GNU General Public License as published by the Free Software + * Foundation, either version 3 of the License, or (at your option) any later + * version. * - * Privacy Browser Android is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + * details. * - * You should have received a copy of the GNU General Public License - * along with Privacy Browser Android. If not, see . + * You should have received a copy of the GNU General Public License along with + * this program. If not, see . */ package com.stoutner.privacybrowser.activities @@ -62,7 +62,7 @@ import java.io.InputStreamReader import java.nio.charset.StandardCharsets // Define the class constants. -private const val SCROLL_Y = "A" +private const val SCROLL_Y = "scroll_y" class LogcatActivity : AppCompatActivity() { // Declare the class variables. @@ -139,9 +139,9 @@ class LogcatActivity : AppCompatActivity() { // Get handles for the views. toolbar = findViewById(R.id.toolbar) - val searchCountTextView = findViewById(R.id.search_count_textview) searchLinearLayout = findViewById(R.id.search_linearlayout) searchEditText = findViewById(R.id.search_edittext) + val searchCountTextView = findViewById(R.id.search_count_textview) swipeRefreshLayout = findViewById(R.id.swiperefreshlayout) logcatWebView = findViewById(R.id.logcat_webview) @@ -335,24 +335,6 @@ class LogcatActivity : AppCompatActivity() { outState.putInt(SCROLL_Y, logcatWebView.scrollY) } - // The view parameter cannot be removed because it is called from the layout onClick. - fun closeSearch(@Suppress("UNUSED_PARAMETER")view: View?) { - // Delete the contents of the search edit text. - searchEditText.text = null - - // Clear the highlighted phrases in the logcat WebView. - logcatWebView.clearMatches() - - // Hide the search linear layout. - searchLinearLayout.visibility = View.GONE - - // Show the toolbar. - toolbar.visibility = View.VISIBLE - - // Hide the keyboard. - inputMethodManager.hideSoftInputFromWindow(toolbar.windowToken, 0) - } - private fun populateLogcat() { try { // Get the logcat. `-b all` gets all the buffers (instead of just crash, main, and system). `-v long` produces more complete information. `-d` dumps the logcat and exits. @@ -449,6 +431,24 @@ class LogcatActivity : AppCompatActivity() { swipeRefreshLayout.isRefreshing = false } + // The view parameter cannot be removed because it is called from the layout onClick. + fun closeSearch(@Suppress("UNUSED_PARAMETER")view: View?) { + // Delete the contents of the search edit text. + searchEditText.text = null + + // Clear the highlighted phrases in the logcat WebView. + logcatWebView.clearMatches() + + // Hide the search linear layout. + searchLinearLayout.visibility = View.GONE + + // Show the toolbar. + toolbar.visibility = View.VISIBLE + + // Hide the keyboard. + inputMethodManager.hideSoftInputFromWindow(toolbar.windowToken, 0) + } + // The view parameter cannot be removed because it is called from the layout onClick. fun searchNext(@Suppress("UNUSED_PARAMETER")view: View?) { // Go to the next highlighted phrase on the page. `true` goes forwards instead of backwards. diff --git a/app/src/main/java/com/stoutner/privacybrowser/activities/MainWebViewActivity.kt b/app/src/main/java/com/stoutner/privacybrowser/activities/MainWebViewActivity.kt index 7f6a5d9e..dc479345 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/activities/MainWebViewActivity.kt +++ b/app/src/main/java/com/stoutner/privacybrowser/activities/MainWebViewActivity.kt @@ -101,6 +101,9 @@ import androidx.appcompat.content.res.AppCompatResources import androidx.appcompat.widget.Toolbar import androidx.coordinatorlayout.widget.CoordinatorLayout import androidx.core.content.ContextCompat +import androidx.core.graphics.scale +import androidx.core.net.toUri +import androidx.core.view.isGone import androidx.core.view.GravityCompat import androidx.cursoradapter.widget.CursorAdapter import androidx.drawerlayout.widget.DrawerLayout @@ -575,11 +578,11 @@ class MainWebViewActivity : AppCompatActivity(), CreateBookmarkDialog.CreateBook // Store the saved instance state variables. The deprecated `getParcelableArrayList` can be upgraded once the minimum API >= 33. bookmarksDrawerPinned = savedInstanceState.getBoolean(BOOKMARKS_DRAWER_PINNED) @Suppress("DEPRECATION") - savedStateArrayList = savedInstanceState.getParcelableArrayList(SAVED_STATE_ARRAY_LIST) - @Suppress("DEPRECATION") savedNestedScrollWebViewStateArrayList = savedInstanceState.getParcelableArrayList(SAVED_NESTED_SCROLL_WEBVIEW_STATE_ARRAY_LIST) - savedTabPosition = savedInstanceState.getInt(SAVED_TAB_POSITION) savedProxyMode = savedInstanceState.getString(PROXY_MODE) + @Suppress("DEPRECATION") + savedStateArrayList = savedInstanceState.getParcelableArrayList(SAVED_STATE_ARRAY_LIST) + savedTabPosition = savedInstanceState.getInt(SAVED_TAB_POSITION) } // Enable the drawing of the entire webpage. This makes it possible to save a website image. This must be done before anything else happens with the WebView. @@ -2100,7 +2103,7 @@ class MainWebViewActivity : AppCompatActivity(), CreateBookmarkDialog.CreateBook startActivity(domainsIntent) } else { // Add a new domain. // Get the current URI. - val currentUri = Uri.parse(currentWebView!!.url) + val currentUri = currentWebView!!.url!!.toUri() // Get the current domain from the URI. Use an empty string if it is null. val currentDomain = currentUri.host?: "" @@ -2340,7 +2343,7 @@ class MainWebViewActivity : AppCompatActivity(), CreateBookmarkDialog.CreateBook val genericFileManagerIntent = Intent(Intent.ACTION_VIEW) // Open the download directory. - genericFileManagerIntent.setDataAndType(Uri.parse(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).toString()), DocumentsContract.Document.MIME_TYPE_DIR) + genericFileManagerIntent.setDataAndType(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).toString().toUri(), DocumentsContract.Document.MIME_TYPE_DIR) // Launch as a new task so that the file manager and Privacy Browser show as separate windows in the recent tasks list. genericFileManagerIntent.flags = Intent.FLAG_ACTIVITY_NEW_TASK @@ -2354,7 +2357,7 @@ class MainWebViewActivity : AppCompatActivity(), CreateBookmarkDialog.CreateBook val alternateFileManagerIntent = Intent(Intent.ACTION_VIEW) // Open the download directory. - alternateFileManagerIntent.setDataAndType(Uri.parse(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).toString()), "resource/folder") + alternateFileManagerIntent.setDataAndType(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).toString().toUri(), "resource/folder") // Launch as a new task so that the file manager and Privacy Browser show as separate windows in the recent tasks list. alternateFileManagerIntent.flags = Intent.FLAG_ACTIVITY_NEW_TASK @@ -2882,7 +2885,7 @@ class MainWebViewActivity : AppCompatActivity(), CreateBookmarkDialog.CreateBook val emailIntent = Intent(Intent.ACTION_SENDTO) // Parse the url and set it as the data for the intent. - emailIntent.data = Uri.parse("mailto:$linkUrl") + emailIntent.data = "mailto:$linkUrl".toUri() // `FLAG_ACTIVITY_NEW_TASK` opens the email program in a new task instead as part of Privacy Browser. emailIntent.flags = Intent.FLAG_ACTIVITY_NEW_TASK @@ -3196,7 +3199,7 @@ class MainWebViewActivity : AppCompatActivity(), CreateBookmarkDialog.CreateBook nestedScrollWebView.currentUrl = url!! // Parse the URL into a URI. - val uri = Uri.parse(url) + val uri = url.toUri() // Extract the domain from the URI. var newHostName = uri.host @@ -3242,7 +3245,7 @@ class MainWebViewActivity : AppCompatActivity(), CreateBookmarkDialog.CreateBook nestedScrollWebView.previousWebpageTitle = tabTitleTextView.text.toString() // Set the default favorite icon as the favorite icon for this tab. - tabFavoriteIconImageView.setImageBitmap(Bitmap.createScaledBitmap(nestedScrollWebView.getFavoriteIcon(), 128, 128, true)) + tabFavoriteIconImageView.setImageBitmap(nestedScrollWebView.getFavoriteIcon().scale(128, 128)) // Set the loading title text. tabTitleTextView.setText(R.string.loading) @@ -5168,7 +5171,7 @@ class MainWebViewActivity : AppCompatActivity(), CreateBookmarkDialog.CreateBook // Only update the favorite icon if the website has finished loading and the new favorite icon height is greater than the current favorite icon height. // This prevents low resolution icons from replacing high resolution one. // The check for the visibility of the progress bar can possibly be removed once https://redmine.stoutner.com/issues/747 is fixed. - if ((progressBar.visibility == View.GONE) && (icon.height > nestedScrollWebView.getFavoriteIconHeight())) { + if ((progressBar.isGone) && (icon.height > nestedScrollWebView.getFavoriteIconHeight())) { // Store the new favorite icon. nestedScrollWebView.setFavoriteIcon(icon) @@ -5189,7 +5192,7 @@ class MainWebViewActivity : AppCompatActivity(), CreateBookmarkDialog.CreateBook val tabFavoriteIconImageView = tabView.findViewById(R.id.favorite_icon_imageview) // Display the favorite icon in the tab. - tabFavoriteIconImageView.setImageBitmap(Bitmap.createScaledBitmap(icon, 128, 128, true)) + tabFavoriteIconImageView.setImageBitmap(icon.scale(128, 128)) } } } @@ -5348,7 +5351,7 @@ class MainWebViewActivity : AppCompatActivity(), CreateBookmarkDialog.CreateBook val emailIntent = Intent(Intent.ACTION_SENDTO) // Parse the url and set it as the data for the intent. - emailIntent.data = Uri.parse(requestUrlString) + emailIntent.data = requestUrlString.toUri() // Open the email program in a new task instead of as part of Privacy Browser. emailIntent.flags = Intent.FLAG_ACTIVITY_NEW_TASK @@ -5368,7 +5371,7 @@ class MainWebViewActivity : AppCompatActivity(), CreateBookmarkDialog.CreateBook val dialIntent = Intent(Intent.ACTION_DIAL) // Add the phone number to the intent. - dialIntent.data = Uri.parse(requestUrlString) + dialIntent.data = requestUrlString.toUri() // Open the dialer in a new task instead of as part of Privacy Browser. dialIntent.flags = Intent.FLAG_ACTIVITY_NEW_TASK @@ -5388,7 +5391,7 @@ class MainWebViewActivity : AppCompatActivity(), CreateBookmarkDialog.CreateBook val genericIntent = Intent(Intent.ACTION_VIEW) // Add the URL to the intent. - genericIntent.data = Uri.parse(requestUrlString) + genericIntent.data = requestUrlString.toUri() // List all apps that can handle the URL instead of just opening the first one. genericIntent.addCategory(Intent.CATEGORY_BROWSABLE) @@ -5818,7 +5821,7 @@ class MainWebViewActivity : AppCompatActivity(), CreateBookmarkDialog.CreateBook nestedScrollWebView.currentIpAddresses = "" // Get a URI for the current URL. - val currentUri = Uri.parse(url) + val currentUri = url.toUri() // Get the current domain name. val currentDomainName = currentUri.host @@ -5853,15 +5856,15 @@ class MainWebViewActivity : AppCompatActivity(), CreateBookmarkDialog.CreateBook optionsRefreshMenuItem.setIcon(R.drawable.refresh_enabled) } + // Clear the cache. `true` includes disk files. + nestedScrollWebView.clearCache(true) + // Get the application's private data directory, which will be something like `/data/user/0/com.stoutner.privacybrowser.standard`, // which links to `/data/data/com.stoutner.privacybrowser.standard`. val privateDataDirectoryString = applicationInfo.dataDir - // Clear the cache, history, and logcat if Incognito Mode is enabled. + // Clear the history, and logcat if Incognito Mode is enabled. if (incognitoModeEnabled) { - // Clear the cache. `true` includes disk files. - nestedScrollWebView.clearCache(true) - // Clear the back/forward history. nestedScrollWebView.clearHistory() @@ -6133,7 +6136,7 @@ class MainWebViewActivity : AppCompatActivity(), CreateBookmarkDialog.CreateBook private fun loadUrlFromTextBox() { // Get the text from URL text box and convert it to a string. trim() removes white spaces from the beginning and end of the string. - var unformattedUrlString = urlEditText.text.toString().trim { it <= ' ' } + var unformattedUrlString = urlEditText.text.toString().trim() // Create the formatted URL string. var urlString = "" @@ -6227,7 +6230,7 @@ class MainWebViewActivity : AppCompatActivity(), CreateBookmarkDialog.CreateBook currentWebView!!.setFavoriteIcon(previousFavoriteIcon) // Display the previous favorite icon in the tab. - tabFavoriteIconImageView.setImageBitmap(Bitmap.createScaledBitmap(currentWebView!!.getFavoriteIcon(), 128, 128, true)) + tabFavoriteIconImageView.setImageBitmap(currentWebView!!.getFavoriteIcon().scale(128, 128)) // Load the history entry. currentWebView!!.goBackOrForward(steps) @@ -6267,7 +6270,7 @@ class MainWebViewActivity : AppCompatActivity(), CreateBookmarkDialog.CreateBook if (mhtCheckBox.isChecked) { // Force opening of an MHT file. try { // Get the MHT file input stream. - val mhtFileInputStream = contentResolver.openInputStream(Uri.parse(openFilePath)) + val mhtFileInputStream = contentResolver.openInputStream(openFilePath.toUri()) // Create a temporary MHT file. val temporaryMhtFile = File.createTempFile(TEMPORARY_MHT_FILE, ".mht", cacheDir) @@ -6315,7 +6318,7 @@ class MainWebViewActivity : AppCompatActivity(), CreateBookmarkDialog.CreateBook val openWithAppIntent = Intent(Intent.ACTION_VIEW) // Set the URI but not the MIME type. This should open all available apps. - openWithAppIntent.data = Uri.parse(url) + openWithAppIntent.data = url.toUri() // Flag the intent to open in a new task. openWithAppIntent.flags = Intent.FLAG_ACTIVITY_NEW_TASK @@ -6336,7 +6339,7 @@ class MainWebViewActivity : AppCompatActivity(), CreateBookmarkDialog.CreateBook val openWithBrowserIntent = Intent(Intent.ACTION_VIEW) // Set the URI and the MIME type. `"text/html"` should load browser options. - openWithBrowserIntent.setDataAndType(Uri.parse(url), "text/html") + openWithBrowserIntent.setDataAndType(url.toUri(), "text/html") // Flag the intent to open in a new task. openWithBrowserIntent.flags = Intent.FLAG_ACTIVITY_NEW_TASK @@ -6389,7 +6392,7 @@ class MainWebViewActivity : AppCompatActivity(), CreateBookmarkDialog.CreateBook val downloadManager = getSystemService(DOWNLOAD_SERVICE) as DownloadManager // Parse the URL. - val downloadRequest = DownloadManager.Request(Uri.parse(saveUrlString)) + val downloadRequest = DownloadManager.Request(saveUrlString.toUri()) // Pass cookies to download manager if cookies are enabled. This is required to download files from websites that require a login. // Code contributed 2017 Hendrik Knackstedt. Copyright assigned to Soren Stoutner . @@ -6432,7 +6435,7 @@ class MainWebViewActivity : AppCompatActivity(), CreateBookmarkDialog.CreateBook val downloadIntent = Intent() // Set the URI and the mime type. - downloadIntent.setDataAndType(Uri.parse(url), "text/html") + downloadIntent.setDataAndType(url.toUri(), "text/html") // Flag the intent to open in a new task. downloadIntent.flags = Intent.FLAG_ACTIVITY_NEW_TASK diff --git a/app/src/main/java/com/stoutner/privacybrowser/dialogs/EditBookmarkDatabaseViewDialog.kt b/app/src/main/java/com/stoutner/privacybrowser/dialogs/EditBookmarkDatabaseViewDialog.kt index 60f76090..251344cf 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/dialogs/EditBookmarkDatabaseViewDialog.kt +++ b/app/src/main/java/com/stoutner/privacybrowser/dialogs/EditBookmarkDatabaseViewDialog.kt @@ -1,5 +1,5 @@ /* - * Copyright 2016-2024 Soren Stoutner . + * Copyright 2016-2025 Soren Stoutner . * * This file is part of Privacy Browser Android . * @@ -65,6 +65,8 @@ import com.stoutner.privacybrowser.helpers.ID import com.stoutner.privacybrowser.helpers.PARENT_FOLDER_ID import com.stoutner.privacybrowser.helpers.BookmarksDatabaseHelper +import androidx.core.graphics.scale + import java.io.ByteArrayOutputStream // Define the class constants. @@ -124,7 +126,7 @@ class EditBookmarkDatabaseViewDialog : DialogFragment() { // Scale the image down if it is greater than 128 pixels in either direction. if ((imageBitmap != null) && ((imageBitmap.height > 128) || (imageBitmap.width > 128))) - imageBitmap = Bitmap.createScaledBitmap(imageBitmap, 128, 128, true) + imageBitmap = imageBitmap.scale(128, 128) // Display the new custom favorite icon. customIconImageView.setImageBitmap(imageBitmap) @@ -263,7 +265,7 @@ class EditBookmarkDatabaseViewDialog : DialogFragment() { val matrixCursor = MatrixCursor(matrixCursorColumnNamesArray) // Add `Home Folder` as the first entry in the matrix folder. - matrixCursor.addRow(arrayOf(HOME_FOLDER_DATABASE_ID, getString(R.string.home_folder), HOME_FOLDER_ID)) + matrixCursor.addRow(arrayOf(HOME_FOLDER_DATABASE_ID, getString(R.string.home_folder), HOME_FOLDER_ID)) // Get a cursor with the list of all the folders. val foldersCursor = bookmarksDatabaseHelper.getFoldersExcept(listOf()) diff --git a/app/src/main/java/com/stoutner/privacybrowser/dialogs/EditBookmarkFolderDatabaseViewDialog.kt b/app/src/main/java/com/stoutner/privacybrowser/dialogs/EditBookmarkFolderDatabaseViewDialog.kt index ba66c8d7..89fbf84e 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/dialogs/EditBookmarkFolderDatabaseViewDialog.kt +++ b/app/src/main/java/com/stoutner/privacybrowser/dialogs/EditBookmarkFolderDatabaseViewDialog.kt @@ -1,5 +1,5 @@ /* - * Copyright 2016-2024 Soren Stoutner . + * Copyright 2016-2025 Soren Stoutner . * * This file is part of Privacy Browser Android . * @@ -65,6 +65,8 @@ import com.stoutner.privacybrowser.helpers.ID import com.stoutner.privacybrowser.helpers.PARENT_FOLDER_ID import com.stoutner.privacybrowser.helpers.BookmarksDatabaseHelper +import androidx.core.graphics.scale + import java.io.ByteArrayOutputStream // Define the class constants. @@ -124,7 +126,7 @@ class EditBookmarkFolderDatabaseViewDialog : DialogFragment() { // Scale the image down if it is greater than 64 pixels in either direction. if ((imageBitmap != null) && ((imageBitmap.height > 128) || (imageBitmap.width > 128))) - imageBitmap = Bitmap.createScaledBitmap(imageBitmap, 128, 128, true) + imageBitmap = imageBitmap.scale(128, 128) // Display the new custom favorite icon. customIconImageView.setImageBitmap(imageBitmap) @@ -270,7 +272,7 @@ class EditBookmarkFolderDatabaseViewDialog : DialogFragment() { val matrixCursor = MatrixCursor(matrixCursorColumnNames) // Add `Home Folder` to the matrix cursor. - matrixCursor.addRow(arrayOf(HOME_FOLDER_DATABASE_ID, getString(R.string.home_folder), HOME_FOLDER_ID)) + matrixCursor.addRow(arrayOf(HOME_FOLDER_DATABASE_ID, getString(R.string.home_folder), HOME_FOLDER_ID)) // Create a list of folder IDs. val currentAndSubfolderIds = mutableListOf() diff --git a/app/src/main/res/drawable/about_blue.xml b/app/src/main/res/drawable/about_blue.xml index ac2df642..1b708386 100644 --- a/app/src/main/res/drawable/about_blue.xml +++ b/app/src/main/res/drawable/about_blue.xml @@ -1,4 +1,23 @@ - + . --> + + android:viewportHeight="960" + android:viewportWidth="960" > + android:pathData="M440,520L240,520q-17,0 -28.5,-11.5T200,480q0,-17 11.5,-28.5T240,440h200v-200q0,-17 11.5,-28.5T480,200q17,0 28.5,11.5T520,240v200h200q17,0 28.5,11.5T760,480q0,17 -11.5,28.5T720,520L520,520v200q0,17 -11.5,28.5T480,760q-17,0 -28.5,-11.5T440,720v-200Z" /> diff --git a/app/src/main/res/drawable/allow_screenshots_disabled.xml b/app/src/main/res/drawable/allow_screenshots_disabled.xml index f3fea1f5..8da3a4b0 100644 --- a/app/src/main/res/drawable/allow_screenshots_disabled.xml +++ b/app/src/main/res/drawable/allow_screenshots_disabled.xml @@ -1,4 +1,23 @@ - + . --> + . --> + . --> + . --> + . --> + . --> + . --> + . --> + . --> + . --> + . --> + . --> + . --> + . --> + . --> + . --> + . --> + . --> + . It is released under the Apache License 2.0 . --> + . It is released under the Apache License 2.0 . --> + . --> + . --> + . --> + . --> + . --> + . --> + . --> + + android:viewportHeight="960" + android:viewportWidth="960" > + android:pathData="M480,536 L284,732q-11,11 -28,11t-28,-11q-11,-11 -11,-28t11,-28l196,-196 -196,-196q-11,-11 -11,-28t11,-28q11,-11 28,-11t28,11l196,196 196,-196q11,-11 28,-11t28,11q11,11 11,28t-11,28L536,480l196,196q11,11 11,28t-11,28q-11,11 -28,11t-28,-11L480,536Z" /> diff --git a/app/src/main/res/drawable/close_blue.xml b/app/src/main/res/drawable/close_blue.xml index 822e00aa..7d945304 100644 --- a/app/src/main/res/drawable/close_blue.xml +++ b/app/src/main/res/drawable/close_blue.xml @@ -1,13 +1,32 @@ - + + android:viewportWidth="960" + android:viewportHeight="960" > + android:pathData="M480,536 L284,732q-11,11 -28,11t-28,-11q-11,-11 -11,-28t11,-28l196,-196 -196,-196q-11,-11 -11,-28t11,-28q11,-11 28,-11t28,11l196,196 196,-196q11,-11 28,-11t28,11q11,11 11,28t-11,28L536,480l196,196q11,11 11,28t-11,28q-11,11 -28,11t-28,-11L480,536Z" /> \ No newline at end of file diff --git a/app/src/main/res/drawable/cookies_disabled.xml b/app/src/main/res/drawable/cookies_disabled.xml index 21260d5b..2e60e4d1 100644 --- a/app/src/main/res/drawable/cookies_disabled.xml +++ b/app/src/main/res/drawable/cookies_disabled.xml @@ -1,4 +1,23 @@ - + . It is released under the Apache License 2.0 . --> + . --> + . + SPDX-License-Identifier: GPL-3.0-or-later + SPDX-FileCopyrightText: 2017, 2022, 2024 Soren Stoutner - This file is derived from elements of `bookmark` and `create_new_folder`, which are part of the Android Material icon set . They are released under the Apache License 2.0. + This file is part of Privacy Browser Android . - This file is part of Privacy Browser Android . + It is derived from elements of `bookmark` and `create_new_folder`, which are part of the Android Material icon set . They are released under the Apache License 2.0. - Privacy Browser Android is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. + This program is free software: you can redistribute it and/or modify it under + the terms of the GNU General Public License as published by the Free Software + Foundation, either version 3 of the License, or (at your option) any later + version. - Privacy Browser Android is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + details. - You should have received a copy of the GNU General Public License - along with Privacy Browser Android. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> . --> + . --> + . --> + . --> + --> + --> + . --> + . --> + . --> + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + details. + + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> . --> + . --> + . + SPDX-License-Identifier: GPL-3.0-or-later + SPDX-FileCopyrightText: 2017, 2022 Soren Stoutner - This file is derived from `exit_to_app`, which is part of the Android Material icon set . It is released under the Apache License 2.0. + This file is part of Privacy Browser Android . - This file is part of Privacy Browser Android . + It is derived from `exit_to_app`, which is part of the Android Material icon set . It is released under the Apache License 2.0. - Privacy Browser Android is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. + This program is free software: you can redistribute it and/or modify it under + the terms of the GNU General Public License as published by the Free Software + Foundation, either version 3 of the License, or (at your option) any later + version. - Privacy Browser Android is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + details. - You should have received a copy of the GNU General Public License - along with Privacy Browser Android. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> . + SPDX-License-Identifier: GPL-3.0-or-later + SPDX-FileCopyrightText: 2017, 2022 Soren Stoutner - This file is derived from `exit_to_app`, which is part of the Android Material icon set . It is released under the Apache License 2.0. + This file is part of Privacy Browser Android . - This file is part of Privacy Browser Android . + It is derived from `exit_to_app`, which is part of the Android Material icon set . It is released under the Apache License 2.0. - Privacy Browser Android is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. + This program is free software: you can redistribute it and/or modify it under + the terms of the GNU General Public License as published by the Free Software + Foundation, either version 3 of the License, or (at your option) any later + version. - Privacy Browser Android is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + details. - You should have received a copy of the GNU General Public License - along with Privacy Browser Android. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> . --> + . --> + . --> + . --> + + + This file is part of Privacy Browser Android . + + It is a modified version of `text_fields`, which is part of the Android Material icon set and is released under the Apache License 2.0 . + + This program is free software: you can redistribute it and/or modify it under + the terms of the GNU General Public License as published by the Free Software + Foundation, either version 3 of the License, or (at your option) any later + version. + + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + details. + + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + . --> + . --> + . --> + . --> + . --> + . --> + . --> + . --> + . --> + . --> + . --> + . --> + . - - This file is derived from `security` and `language`, which are part of the Android Material icon set . They are released under the Apache License 2.0. + SPDX-License-Identifier: GPL-3.0-or-later + SPDX-FileCopyrightText: 2016-2017, 2022-2023 Soren Stoutner This file is part of Privacy Browser Android . - Privacy Browser Android is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. + It is derived from `security` and `language`, which are part of the Android Material icon set . They are released under the Apache License 2.0. + + This program is free software: you can redistribute it and/or modify it under + the terms of the GNU General Public License as published by the Free Software + Foundation, either version 3 of the License, or (at your option) any later + version. - Privacy Browser Android is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + details. - You should have received a copy of the GNU General Public License - along with Privacy Browser Android. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> diff --git a/app/src/main/res/drawable/lock.xml b/app/src/main/res/drawable/lock.xml index 27625f4d..e296a0b2 100644 --- a/app/src/main/res/drawable/lock.xml +++ b/app/src/main/res/drawable/lock.xml @@ -1,4 +1,23 @@ - + . --> + . --> + . --> + . --> + . --> + . --> + . --> + . --> + . --> + . - - This file is derived from elements of `folder` and `exit_to_app`, which are part of the Android Material icon set . They are released under the Apache License 2.0. + SPDX-License-Identifier: GPL-3.0-or-later + SPDX-FileCopyrightText: 2017, 2022 Soren Stoutner This file is part of Privacy Browser Android . - Privacy Browser Android is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. + It is derived from elements of `folder` and `exit_to_app`, which are part of the Android Material icon set . They are released under the Apache License 2.0. + + This program is free software: you can redistribute it and/or modify it under + the terms of the GNU General Public License as published by the Free Software + Foundation, either version 3 of the License, or (at your option) any later + version. - Privacy Browser Android is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + details. - You should have received a copy of the GNU General Public License - along with Privacy Browser Android. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> . --> + . --> + . --> + . --> + . --> + + android:viewportHeight="960" + android:viewportWidth="960" > + android:pathData="M480,599q-8,0 -15,-2.5t-13,-8.5L268,404q-11,-11 -11,-28t11,-28q11,-11 28,-11t28,11l156,156 156,-156q11,-11 28,-11t28,11q11,11 11,28t-11,28L508,588q-6,6 -13,8.5t-15,2.5Z" /> diff --git a/app/src/main/res/drawable/pin.xml b/app/src/main/res/drawable/pin.xml index 015c3d2b..903ee7f0 100644 --- a/app/src/main/res/drawable/pin.xml +++ b/app/src/main/res/drawable/pin.xml @@ -1,4 +1,23 @@ - + . - - This file is derived from `push_pin_filled`, which is part of the Android Material icon set . It is released under the Apache License 2.0. + SPDX-License-Identifier: GPL-3.0-or-later + SPDX-FileCopyrightText: 2019, 2022 Soren Stoutner This file is part of Privacy Browser Android . - Privacy Browser Android is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. + It is derived from `push_pin_filled`, which is part of the Android Material icon set . It is released under the Apache License 2.0. + + This program is free software: you can redistribute it and/or modify it under + the terms of the GNU General Public License as published by the Free Software + Foundation, either version 3 of the License, or (at your option) any later + version. - Privacy Browser Android is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + details. - You should have received a copy of the GNU General Public License - along with Privacy Browser Android. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> . --> + + android:viewportHeight="960" + android:viewportWidth="960" > + android:pathData="M480,432 L324,588q-11,11 -28,11t-28,-11q-11,-11 -11,-28t11,-28l184,-184q12,-12 28,-12t28,12l184,184q11,11 11,28t-11,28q-11,11 -28,11t-28,-11L480,432Z" /> diff --git a/app/src/main/res/drawable/privacy_browser_foreground.xml b/app/src/main/res/drawable/privacy_browser_foreground.xml index b822ffb6..8883492b 100644 --- a/app/src/main/res/drawable/privacy_browser_foreground.xml +++ b/app/src/main/res/drawable/privacy_browser_foreground.xml @@ -1,22 +1,23 @@ + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> . - - This file is derived from `security` and `language`, which are part of the Android Material icon set . They are released under the Apache License 2.0. + SPDX-License-Identifier: GPL-3.0-or-later + SPDX-FileCopyrightText: 2016-2017, 2021-2023 Soren Stoutner This file is part of Privacy Browser Android . - Privacy Browser Android is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. + It is derived from `security` and `language`, which are part of the Android Material icon set . They are released under the Apache License 2.0. + + This program is free software: you can redistribute it and/or modify it under + the terms of the GNU General Public License as published by the Free Software + Foundation, either version 3 of the License, or (at your option) any later + version. - Privacy Browser Android is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + details. - You should have received a copy of the GNU General Public License - along with Privacy Browser Android. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> . - - This file is derived from `security` and `language`, which are part of the Android Material icon set . They are released under the Apache License 2.0. + SPDX-License-Identifier: GPL-3.0-or-later + SPDX-FileCopyrightText: 2016-2017, 2021-2023 Soren Stoutner This file is part of Privacy Browser Android . - Privacy Browser Android is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. + It is derived from `security` and `language`, which are part of the Android Material icon set . They are released under the Apache License 2.0. + + This program is free software: you can redistribute it and/or modify it under + the terms of the GNU General Public License as published by the Free Software + Foundation, either version 3 of the License, or (at your option) any later + version. - Privacy Browser Android is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + details. - You should have received a copy of the GNU General Public License - along with Privacy Browser Android. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> . --> + . --> + . --> + . --> + . --> + . --> + . --> + . --> + . --> + . --> + . --> + . --> + . --> + . --> + . --> + . --> + . --> + . --> + . --> + . --> + . - - This file is derived from `sort`, which is part of the Android Material icon set and is released under the Apache License 2.0 . + SPDX-License-Identifier: GPL-3.0-or-later + SPDX-FileCopyrightText: 2019, 2022 Soren Stoutner This file is part of Privacy Browser Android . - Privacy Browser Android is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. + It is a modified version of `sort`, which is part of the Android Material icon set and is released under the Apache License 2.0 . + + This program is free software: you can redistribute it and/or modify it under + the terms of the GNU General Public License as published by the Free Software + Foundation, either version 3 of the License, or (at your option) any later + version. - Privacy Browser Android is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + details. - You should have received a copy of the GNU General Public License - along with Privacy Browser Android. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> . --> + . --> + . --> + . --> + . - - This file is derived from `security` and `language`, which are part of the Android Material icon set . They are released under the Apache License 2.0. + SPDX-License-Identifier: GPL-3.0-or-later + SPDX-FileCopyrightText: 2016-2017, 2021-2023 Soren Stoutner This file is part of Privacy Browser Android . - Privacy Browser Android is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. + It is derived from `security` and `language`, which are part of the Android Material icon set . They are released under the Apache License 2.0. + + This program is free software: you can redistribute it and/or modify it under + the terms of the GNU General Public License as published by the Free Software + Foundation, either version 3 of the License, or (at your option) any later + version. - Privacy Browser Android is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + details. - You should have received a copy of the GNU General Public License - along with Privacy Browser Android. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> . - - This file is derived from `compare`, which is part of the Android Material icon set . It is released under the Apache License 2.0. + SPDX-License-Identifier: GPL-3.0-or-later + SPDX-FileCopyrightText: 2017, 2022 Soren Stoutner This file is part of Privacy Browser Android . - Privacy Browser Android is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. + It is derived from `compare`, which is part of the Android Material icon set . It is released under the Apache License 2.0. + + This program is free software: you can redistribute it and/or modify it under + the terms of the GNU General Public License as published by the Free Software + Foundation, either version 3 of the License, or (at your option) any later + version. - Privacy Browser Android is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + details. - You should have received a copy of the GNU General Public License - along with Privacy Browser Android. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> . --> + . - - This file is derived from `compare`, which is part of the Android Material icon set . It is released under the Apache License 2.0. + SPDX-License-Identifier: GPL-3.0-or-later + SPDX-FileCopyrightText: 2017, 2022 Soren Stoutner This file is part of Privacy Browser Android . - Privacy Browser Android is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. + It is derived from `compare`, which is part of the Android Material icon set . It is released under the Apache License 2.0. + + This program is free software: you can redistribute it and/or modify it under + the terms of the GNU General Public License as published by the Free Software + Foundation, either version 3 of the License, or (at your option) any later + version. - Privacy Browser Android is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + details. - You should have received a copy of the GNU General Public License - along with Privacy Browser Android. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> . - - This file is derived from `compare`, which is part of the Android Material icon set . It is released under the Apache License 2.0. + SPDX-License-Identifier: GPL-3.0-or-later + SPDX-FileCopyrightText: 2017, 2022 Soren Stoutner This file is part of Privacy Browser Android . - Privacy Browser Android is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. + It is derived from `compare`, which is part of the Android Material icon set . It is released under the Apache License 2.0. + + This program is free software: you can redistribute it and/or modify it under + the terms of the GNU General Public License as published by the Free Software + Foundation, either version 3 of the License, or (at your option) any later + version. - Privacy Browser Android is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. + This program is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + details. - You should have received a copy of the GNU General Public License - along with Privacy Browser Android. If not, see . --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> . --> + . --> + + SPDX-FileCopyrightText: 2015-2017, 2019-2025 Soren Stoutner This file is part of Privacy Browser Android . @@ -196,8 +196,8 @@ + `topInsetScrimEnabled="false"` disables the scrim that draws under display cutouts (even thought the white space is maintained). + `bottomInsetScrimEnabled="false"` disables the scrim that draws under the navigation bar. It is only needed on API < 35. --> + You should have received a copy of the GNU General Public License along with + this program. If not, see . --> + app:showAsAction="always" /> + * SPDX-FileCopyrightText: 2016-2025 Soren Stoutner * * This file is part of Privacy Browser Android . * @@ -26,8 +26,8 @@ buildscript { } dependencies { - classpath 'com.android.tools.build:gradle:8.8.0' - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:2.0.21" + classpath 'com.android.tools.build:gradle:8.10.0' + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:2.1.0" // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files diff --git a/fastlane/metadata/android/fr-FR/changelogs/77.txt b/fastlane/metadata/android/fr-FR/changelogs/77.txt new file mode 100644 index 00000000..7a66d759 --- /dev/null +++ b/fastlane/metadata/android/fr-FR/changelogs/77.txt @@ -0,0 +1 @@ +• Correction d'un plantage lors de l'ouverture des vues "À propos" ou "Importer/Exporter" lorsque les applications tierces ne sont pas installées. \ No newline at end of file diff --git a/fastlane/metadata/android/fr-FR/changelogs/78.txt b/fastlane/metadata/android/fr-FR/changelogs/78.txt new file mode 100644 index 00000000..3bdf8d26 --- /dev/null +++ b/fastlane/metadata/android/fr-FR/changelogs/78.txt @@ -0,0 +1 @@ +• Correction de l'agencement du tiroir des favoris sur Android <= 10 (API <= 29). \ No newline at end of file diff --git a/fastlane/metadata/android/fr-FR/changelogs/79.txt b/fastlane/metadata/android/fr-FR/changelogs/79.txt new file mode 100644 index 00000000..ef7a2e69 --- /dev/null +++ b/fastlane/metadata/android/fr-FR/changelogs/79.txt @@ -0,0 +1,3 @@ +• Correction d'un plantage sur certains appareils lors de l'utilisation de la barre d'applications du bas. +• Correction de la position de défilement du tiroir de navigation sur Android <= 14 (API <= 34). +• Désactivation de l'utilisation du cache web. \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 4c64ae1e..af1147bd 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,19 +1,20 @@ -# Copyright 2019-2020,2022-2023 Soren Stoutner . +# SPDX-License-Identifier: GPL-3.0-or-later +# SPDX-FileCopyrightText: 2019-2020, 2022-2023 Soren Stoutner # -# This file is part of Privacy Browser Android . +# This file is part of Privacy Browser Android . # -# Privacy Browser Android is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software: you can redistribute it and/or modify it under +# the terms of the GNU General Public License as published by the Free Software +# Foundation, either version 3 of the License, or (at your option) any later +# version. # -# Privacy Browser Android is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. # -# You should have received a copy of the GNU General Public License -# along with Privacy Browser Android. If not, see . +# You should have received a copy of the GNU General Public License along with +# this program. If not, see . ## For more details on how to configure your build environment visit diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index e21cf2bc..2267a525 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,23 +1,23 @@ -# Copyright 2019-2024 Soren Stoutner . +# SPDX-License-Identifier: GPL-3.0-or-later +# SPDX-FileCopyrightText: 2019-2025 Soren Stoutner # # This file is part of Privacy Browser Android . # -# Privacy Browser Android is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. +# This program is free software: you can redistribute it and/or modify it under +# the terms of the GNU General Public License as published by the Free Software +# Foundation, either version 3 of the License, or (at your option) any later +# version. # -# Privacy Browser Android is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. # -# You should have received a copy of the GNU General Public License -# along with Privacy Browser Android. If not, see . +# You should have received a copy of the GNU General Public License along with +# this program. If not, see . -#Thu Oct 15 14:40:42 MST 2020 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.1-bin.zip