From: chromium-sdk Date: Thu, 12 Oct 2023 14:46:08 +0200 Subject: eyeo Browser Ad filtering Solution: Android Settings UI Module Based on Chromium 118.0.5993.48 Pre-requisites: eyeo Browser Ad filtering Solution: Base Module and Android API Module --- chrome/android/BUILD.gn | 6 + .../android/java/res/xml/main_preferences.xml | 14 +- chrome/browser/adblock/android/BUILD.gn | 10 + .../adblock/AdblockFilterFragmentTest.java | 63 +++++ .../adblock/AdblockPopupInfoBarTest.java | 118 +++++++++ .../adblock/AdblockPopupMessageTest.java | 103 ++++++++ components/adblock/android/BUILD.gn | 68 +++++ components/adblock/android/README.md | 13 + .../adblock/android/adblock_strings.grd | 238 ++++++++++++++++++ .../fragment_adblock_custom_item_add.png | Bin 0 -> 490 bytes .../fragment_adblock_custom_item_remove.png | Bin 0 -> 296 bytes .../fragment_adblock_custom_item_add.png | Bin 0 -> 321 bytes .../fragment_adblock_custom_item_remove.png | Bin 0 -> 169 bytes .../fragment_adblock_custom_item_add.png | Bin 0 -> 1522 bytes .../fragment_adblock_custom_item_remove.png | Bin 0 -> 696 bytes .../fragment_adblock_custom_item_add.png | Bin 0 -> 747 bytes .../fragment_adblock_custom_item_remove.png | Bin 0 -> 194 bytes .../fragment_adblock_custom_item_add.png | Bin 0 -> 1485 bytes .../fragment_adblock_custom_item_remove.png | Bin 0 -> 284 bytes .../fragment_adblock_custom_item_add.png | Bin 0 -> 3393 bytes .../fragment_adblock_custom_item_remove.png | Bin 0 -> 600 bytes .../fragment_adblock_custom_item_add.png | Bin 0 -> 638 bytes .../fragment_adblock_custom_item_remove.png | Bin 0 -> 240 bytes .../fragment_adblock_custom_item_add.png | Bin 0 -> 933 bytes .../fragment_adblock_custom_item_remove.png | Bin 0 -> 456 bytes .../java/res/layout/adblock_custom_item.xml | 50 ++++ .../layout/adblock_custom_item_settings.xml | 65 +++++ .../layout/adblock_filter_lists_list_item.xml | 36 +++ .../java/res/xml/adblock_more_options.xml | 34 +++ .../java/res/xml/adblock_preferences.xml | 56 +++++ .../AdblockAllowedDomainsFragment.java | 77 ++++++ .../AdblockCustomFilterListsFragment.java | 118 +++++++++ .../AdblockCustomFiltersFragment.java | 76 ++++++ .../settings/AdblockCustomItemFragment.java | 166 ++++++++++++ .../settings/AdblockFilterListsAdapter.java | 115 +++++++++ .../settings/AdblockFilterListsFragment.java | 54 ++++ .../settings/AdblockMoreOptionsFragment.java | 34 +++ .../settings/AdblockSettingsFragment.java | 141 +++++++++++ .../translations/adblock_strings_af.xtb | 4 + .../translations/adblock_strings_am.xtb | 13 + .../translations/adblock_strings_ar.xtb | 13 + .../translations/adblock_strings_as.xtb | 4 + .../translations/adblock_strings_az.xtb | 4 + .../translations/adblock_strings_be.xtb | 4 + .../translations/adblock_strings_bg.xtb | 16 ++ .../translations/adblock_strings_bn.xtb | 13 + .../translations/adblock_strings_bs.xtb | 13 + .../translations/adblock_strings_ca.xtb | 13 + .../translations/adblock_strings_cs.xtb | 13 + .../translations/adblock_strings_da.xtb | 13 + .../translations/adblock_strings_de.xtb | 13 + .../translations/adblock_strings_el.xtb | 13 + .../translations/adblock_strings_en-GB.xtb | 13 + .../translations/adblock_strings_es-419.xtb | 13 + .../translations/adblock_strings_es.xtb | 13 + .../translations/adblock_strings_et.xtb | 13 + .../translations/adblock_strings_eu.xtb | 4 + .../translations/adblock_strings_fa.xtb | 13 + .../translations/adblock_strings_fi.xtb | 13 + .../translations/adblock_strings_fil.xtb | 13 + .../translations/adblock_strings_fr-CA.xtb | 13 + .../translations/adblock_strings_fr.xtb | 13 + .../translations/adblock_strings_gl.xtb | 4 + .../translations/adblock_strings_gu.xtb | 4 + .../translations/adblock_strings_hi.xtb | 13 + .../translations/adblock_strings_hr.xtb | 13 + .../translations/adblock_strings_hu.xtb | 13 + .../translations/adblock_strings_hy.xtb | 4 + .../translations/adblock_strings_id.xtb | 13 + .../translations/adblock_strings_is.xtb | 4 + .../translations/adblock_strings_it.xtb | 13 + .../translations/adblock_strings_iw.xtb | 13 + .../translations/adblock_strings_ja.xtb | 13 + .../translations/adblock_strings_ka.xtb | 4 + .../translations/adblock_strings_kk.xtb | 13 + .../translations/adblock_strings_km.xtb | 13 + .../translations/adblock_strings_kn.xtb | 4 + .../translations/adblock_strings_ko.xtb | 13 + .../translations/adblock_strings_ky.xtb | 4 + .../translations/adblock_strings_lo.xtb | 4 + .../translations/adblock_strings_lt.xtb | 13 + .../translations/adblock_strings_lv.xtb | 13 + .../translations/adblock_strings_mk.xtb | 13 + .../translations/adblock_strings_ml.xtb | 4 + .../translations/adblock_strings_mn.xtb | 4 + .../translations/adblock_strings_mr.xtb | 4 + .../translations/adblock_strings_ms.xtb | 13 + .../translations/adblock_strings_my.xtb | 13 + .../translations/adblock_strings_ne.xtb | 4 + .../translations/adblock_strings_nl.xtb | 13 + .../translations/adblock_strings_no.xtb | 4 + .../translations/adblock_strings_or.xtb | 4 + .../translations/adblock_strings_pa.xtb | 4 + .../translations/adblock_strings_pl.xtb | 13 + .../translations/adblock_strings_pt-BR.xtb | 13 + .../translations/adblock_strings_pt-PT.xtb | 13 + .../translations/adblock_strings_ro.xtb | 13 + .../translations/adblock_strings_ru.xtb | 13 + .../translations/adblock_strings_si.xtb | 4 + .../translations/adblock_strings_sk.xtb | 13 + .../translations/adblock_strings_sl.xtb | 13 + .../translations/adblock_strings_sq.xtb | 4 + .../translations/adblock_strings_sr-Latn.xtb | 4 + .../translations/adblock_strings_sr.xtb | 13 + .../translations/adblock_strings_sv.xtb | 13 + .../translations/adblock_strings_sw.xtb | 13 + .../translations/adblock_strings_ta.xtb | 4 + .../translations/adblock_strings_te.xtb | 4 + .../translations/adblock_strings_th.xtb | 13 + .../translations/adblock_strings_tr.xtb | 13 + .../translations/adblock_strings_uk.xtb | 13 + .../translations/adblock_strings_ur.xtb | 13 + .../translations/adblock_strings_uz.xtb | 4 + .../translations/adblock_strings_vi.xtb | 13 + .../translations/adblock_strings_zh-CN.xtb | 13 + .../translations/adblock_strings_zh-HK.xtb | 4 + .../translations/adblock_strings_zh-TW.xtb | 13 + .../translations/adblock_strings_zu.xtb | 4 + 118 files changed, 2443 insertions(+), 3 deletions(-) create mode 100644 chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/AdblockFilterFragmentTest.java create mode 100644 chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/AdblockPopupInfoBarTest.java create mode 100644 chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/AdblockPopupMessageTest.java create mode 100644 components/adblock/android/README.md create mode 100644 components/adblock/android/adblock_strings.grd create mode 100644 components/adblock/android/java/res/drawable-hdpi/fragment_adblock_custom_item_add.png create mode 100644 components/adblock/android/java/res/drawable-hdpi/fragment_adblock_custom_item_remove.png create mode 100644 components/adblock/android/java/res/drawable-mdpi/fragment_adblock_custom_item_add.png create mode 100644 components/adblock/android/java/res/drawable-mdpi/fragment_adblock_custom_item_remove.png create mode 100644 components/adblock/android/java/res/drawable-night-hdpi/fragment_adblock_custom_item_add.png create mode 100644 components/adblock/android/java/res/drawable-night-hdpi/fragment_adblock_custom_item_remove.png create mode 100644 components/adblock/android/java/res/drawable-night-mdpi/fragment_adblock_custom_item_add.png create mode 100644 components/adblock/android/java/res/drawable-night-mdpi/fragment_adblock_custom_item_remove.png create mode 100644 components/adblock/android/java/res/drawable-night-xhdpi/fragment_adblock_custom_item_add.png create mode 100644 components/adblock/android/java/res/drawable-night-xhdpi/fragment_adblock_custom_item_remove.png create mode 100644 components/adblock/android/java/res/drawable-night-xxhdpi/fragment_adblock_custom_item_add.png create mode 100644 components/adblock/android/java/res/drawable-night-xxhdpi/fragment_adblock_custom_item_remove.png create mode 100644 components/adblock/android/java/res/drawable-xhdpi/fragment_adblock_custom_item_add.png create mode 100644 components/adblock/android/java/res/drawable-xhdpi/fragment_adblock_custom_item_remove.png create mode 100644 components/adblock/android/java/res/drawable-xxhdpi/fragment_adblock_custom_item_add.png create mode 100644 components/adblock/android/java/res/drawable-xxhdpi/fragment_adblock_custom_item_remove.png create mode 100644 components/adblock/android/java/res/layout/adblock_custom_item.xml create mode 100644 components/adblock/android/java/res/layout/adblock_custom_item_settings.xml create mode 100644 components/adblock/android/java/res/layout/adblock_filter_lists_list_item.xml create mode 100644 components/adblock/android/java/res/xml/adblock_more_options.xml create mode 100644 components/adblock/android/java/res/xml/adblock_preferences.xml create mode 100644 components/adblock/android/java/src/org/chromium/components/adblock/settings/AdblockAllowedDomainsFragment.java create mode 100644 components/adblock/android/java/src/org/chromium/components/adblock/settings/AdblockCustomFilterListsFragment.java create mode 100644 components/adblock/android/java/src/org/chromium/components/adblock/settings/AdblockCustomFiltersFragment.java create mode 100644 components/adblock/android/java/src/org/chromium/components/adblock/settings/AdblockCustomItemFragment.java create mode 100644 components/adblock/android/java/src/org/chromium/components/adblock/settings/AdblockFilterListsAdapter.java create mode 100644 components/adblock/android/java/src/org/chromium/components/adblock/settings/AdblockFilterListsFragment.java create mode 100644 components/adblock/android/java/src/org/chromium/components/adblock/settings/AdblockMoreOptionsFragment.java create mode 100644 components/adblock/android/java/src/org/chromium/components/adblock/settings/AdblockSettingsFragment.java create mode 100644 components/adblock/android/translations/adblock_strings_af.xtb create mode 100644 components/adblock/android/translations/adblock_strings_am.xtb create mode 100644 components/adblock/android/translations/adblock_strings_ar.xtb create mode 100644 components/adblock/android/translations/adblock_strings_as.xtb create mode 100644 components/adblock/android/translations/adblock_strings_az.xtb create mode 100644 components/adblock/android/translations/adblock_strings_be.xtb create mode 100644 components/adblock/android/translations/adblock_strings_bg.xtb create mode 100644 components/adblock/android/translations/adblock_strings_bn.xtb create mode 100644 components/adblock/android/translations/adblock_strings_bs.xtb create mode 100644 components/adblock/android/translations/adblock_strings_ca.xtb create mode 100644 components/adblock/android/translations/adblock_strings_cs.xtb create mode 100644 components/adblock/android/translations/adblock_strings_da.xtb create mode 100644 components/adblock/android/translations/adblock_strings_de.xtb create mode 100644 components/adblock/android/translations/adblock_strings_el.xtb create mode 100644 components/adblock/android/translations/adblock_strings_en-GB.xtb create mode 100644 components/adblock/android/translations/adblock_strings_es-419.xtb create mode 100644 components/adblock/android/translations/adblock_strings_es.xtb create mode 100644 components/adblock/android/translations/adblock_strings_et.xtb create mode 100644 components/adblock/android/translations/adblock_strings_eu.xtb create mode 100644 components/adblock/android/translations/adblock_strings_fa.xtb create mode 100644 components/adblock/android/translations/adblock_strings_fi.xtb create mode 100644 components/adblock/android/translations/adblock_strings_fil.xtb create mode 100644 components/adblock/android/translations/adblock_strings_fr-CA.xtb create mode 100644 components/adblock/android/translations/adblock_strings_fr.xtb create mode 100644 components/adblock/android/translations/adblock_strings_gl.xtb create mode 100644 components/adblock/android/translations/adblock_strings_gu.xtb create mode 100644 components/adblock/android/translations/adblock_strings_hi.xtb create mode 100644 components/adblock/android/translations/adblock_strings_hr.xtb create mode 100644 components/adblock/android/translations/adblock_strings_hu.xtb create mode 100644 components/adblock/android/translations/adblock_strings_hy.xtb create mode 100644 components/adblock/android/translations/adblock_strings_id.xtb create mode 100644 components/adblock/android/translations/adblock_strings_is.xtb create mode 100644 components/adblock/android/translations/adblock_strings_it.xtb create mode 100644 components/adblock/android/translations/adblock_strings_iw.xtb create mode 100644 components/adblock/android/translations/adblock_strings_ja.xtb create mode 100644 components/adblock/android/translations/adblock_strings_ka.xtb create mode 100644 components/adblock/android/translations/adblock_strings_kk.xtb create mode 100644 components/adblock/android/translations/adblock_strings_km.xtb create mode 100644 components/adblock/android/translations/adblock_strings_kn.xtb create mode 100644 components/adblock/android/translations/adblock_strings_ko.xtb create mode 100644 components/adblock/android/translations/adblock_strings_ky.xtb create mode 100644 components/adblock/android/translations/adblock_strings_lo.xtb create mode 100644 components/adblock/android/translations/adblock_strings_lt.xtb create mode 100644 components/adblock/android/translations/adblock_strings_lv.xtb create mode 100644 components/adblock/android/translations/adblock_strings_mk.xtb create mode 100644 components/adblock/android/translations/adblock_strings_ml.xtb create mode 100644 components/adblock/android/translations/adblock_strings_mn.xtb create mode 100644 components/adblock/android/translations/adblock_strings_mr.xtb create mode 100644 components/adblock/android/translations/adblock_strings_ms.xtb create mode 100644 components/adblock/android/translations/adblock_strings_my.xtb create mode 100644 components/adblock/android/translations/adblock_strings_ne.xtb create mode 100644 components/adblock/android/translations/adblock_strings_nl.xtb create mode 100644 components/adblock/android/translations/adblock_strings_no.xtb create mode 100644 components/adblock/android/translations/adblock_strings_or.xtb create mode 100644 components/adblock/android/translations/adblock_strings_pa.xtb create mode 100644 components/adblock/android/translations/adblock_strings_pl.xtb create mode 100644 components/adblock/android/translations/adblock_strings_pt-BR.xtb create mode 100644 components/adblock/android/translations/adblock_strings_pt-PT.xtb create mode 100644 components/adblock/android/translations/adblock_strings_ro.xtb create mode 100644 components/adblock/android/translations/adblock_strings_ru.xtb create mode 100644 components/adblock/android/translations/adblock_strings_si.xtb create mode 100644 components/adblock/android/translations/adblock_strings_sk.xtb create mode 100644 components/adblock/android/translations/adblock_strings_sl.xtb create mode 100644 components/adblock/android/translations/adblock_strings_sq.xtb create mode 100644 components/adblock/android/translations/adblock_strings_sr-Latn.xtb create mode 100644 components/adblock/android/translations/adblock_strings_sr.xtb create mode 100644 components/adblock/android/translations/adblock_strings_sv.xtb create mode 100644 components/adblock/android/translations/adblock_strings_sw.xtb create mode 100644 components/adblock/android/translations/adblock_strings_ta.xtb create mode 100644 components/adblock/android/translations/adblock_strings_te.xtb create mode 100644 components/adblock/android/translations/adblock_strings_th.xtb create mode 100644 components/adblock/android/translations/adblock_strings_tr.xtb create mode 100644 components/adblock/android/translations/adblock_strings_uk.xtb create mode 100644 components/adblock/android/translations/adblock_strings_ur.xtb create mode 100644 components/adblock/android/translations/adblock_strings_uz.xtb create mode 100644 components/adblock/android/translations/adblock_strings_vi.xtb create mode 100644 components/adblock/android/translations/adblock_strings_zh-CN.xtb create mode 100644 components/adblock/android/translations/adblock_strings_zh-HK.xtb create mode 100644 components/adblock/android/translations/adblock_strings_zh-TW.xtb create mode 100644 components/adblock/android/translations/adblock_strings_zu.xtb diff --git a/chrome/android/java/res/xml/main_preferences.xml b/chrome/android/java/res/xml/main_preferences.xml --- a/chrome/android/java/res/xml/main_preferences.xml +++ b/chrome/android/java/res/xml/main_preferences.xml @@ -3,6 +3,9 @@ Copyright 2015 The Chromium Authors Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. + +This source code is a part of eyeo Chromium SDK. +Use of this source code is governed by the GPLv3 that can be found in the components/adblock/LICENSE file. --> + diff --git a/chrome/browser/adblock/android/BUILD.gn b/chrome/browser/adblock/android/BUILD.gn --- a/chrome/browser/adblock/android/BUILD.gn +++ b/chrome/browser/adblock/android/BUILD.gn @@ -35,6 +35,13 @@ android_library("adblock_java_tests") { "javatests/src/org/chromium/chrome/browser/adblock/TestPagesWebsocketTest.java", ] + ### Android UI module start + sources += [ + "javatests/src/org/chromium/chrome/browser/adblock/AdblockPopupInfoBarTest.java", + "javatests/src/org/chromium/chrome/browser/adblock/AdblockPopupMessageTest.java", + "javatests/src/org/chromium/chrome/browser/adblock/AdblockFilterFragmentTest.java", + ] + ### Android UI module end deps = [ "//base:base_java", @@ -65,4 +72,7 @@ android_library("adblock_java_tests") { "//url:gurl_java", ] + ### Android UI module start + deps += [ "//components/adblock/android:adblock_ui_java" ] + ### Android UI module end } diff --git a/chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/AdblockFilterFragmentTest.java b/chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/AdblockFilterFragmentTest.java new file mode 100644 --- /dev/null +++ b/chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/AdblockFilterFragmentTest.java @@ -0,0 +1,63 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH + * + * eyeo Chromium SDK is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 3 as + * published by the Free Software Foundation. + * + * eyeo Chromium SDK 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 eyeo Chromium SDK. If not, see . + */ + +package org.chromium.chrome.browser.adblock; + +import androidx.test.filters.SmallTest; + +import org.junit.Assert; +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; + +import org.chromium.base.test.util.ApplicationTestUtils; +import org.chromium.base.test.util.CommandLineFlags; +import org.chromium.base.test.util.Feature; +import org.chromium.chrome.browser.flags.ChromeSwitches; +import org.chromium.chrome.browser.settings.SettingsActivityTestRule; +import org.chromium.chrome.test.ChromeJUnit4ClassRunner; +import org.chromium.chrome.test.ChromeTabbedActivityTestRule; +import org.chromium.components.adblock.settings.AdblockFilterListsFragment; + +@RunWith(ChromeJUnit4ClassRunner.class) +@CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE}) +public class AdblockFilterFragmentTest { + @Rule + public final ChromeTabbedActivityTestRule mActivityTestRule = + new ChromeTabbedActivityTestRule(); + @Rule + public SettingsActivityTestRule mTestRule = + new SettingsActivityTestRule<>(AdblockFilterListsFragment.class); + + @Before + public void setUp() throws Exception { + mActivityTestRule.startMainActivityOnBlankPage(); + mTestRule.startSettingsActivity(); + ApplicationTestUtils.finishActivity(mTestRule.getActivity()); + } + + @Test + @SmallTest + @Feature({"adblock"}) + public void testLanguageFiltersNotEmpty() { + mTestRule.startSettingsActivity(); + AdblockFilterListsFragment fragment = mTestRule.getFragment(); + Assert.assertNotNull(fragment); + Assert.assertNotEquals(0, fragment.getListView().getCount()); + } +} diff --git a/chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/AdblockPopupInfoBarTest.java b/chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/AdblockPopupInfoBarTest.java new file mode 100644 --- /dev/null +++ b/chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/AdblockPopupInfoBarTest.java @@ -0,0 +1,118 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH + * + * eyeo Chromium SDK is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 3 as + * published by the Free Software Foundation. + * + * eyeo Chromium SDK 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 eyeo Chromium SDK. If not, see . + */ + +package org.chromium.chrome.browser.adblock; + +import androidx.test.InstrumentationRegistry; +import androidx.test.filters.MediumTest; + +import org.hamcrest.Matchers; +import org.junit.After; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; + +import org.chromium.base.task.PostTask; +import org.chromium.base.task.TaskTraits; +import org.chromium.base.test.util.CommandLineFlags; +import org.chromium.base.test.util.Criteria; +import org.chromium.base.test.util.CriteriaHelper; +import org.chromium.base.test.util.Feature; +import org.chromium.chrome.browser.flags.ChromeFeatureList; +import org.chromium.chrome.browser.flags.ChromeSwitches; +import org.chromium.chrome.browser.infobar.InfoBarIdentifier; +import org.chromium.chrome.browser.tabmodel.TabModelSelector; +import org.chromium.chrome.test.ChromeJUnit4ClassRunner; +import org.chromium.chrome.test.ChromeTabbedActivityTestRule; +import org.chromium.chrome.test.util.browser.Features.DisableFeatures; +import org.chromium.components.infobars.InfoBar; +import org.chromium.net.test.EmbeddedTestServer; + +// NOTE: Messages feature had to be disabled when testing infobars +// https://gitlab.com/eyeo/adblockplus/abpchromium/-/commit/a617caaa5692630f73d967a55d86bf52cc491ad5 +@RunWith(ChromeJUnit4ClassRunner.class) +@CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE}) +@DisableFeatures({ChromeFeatureList.MESSAGES_FOR_ANDROID_INFRASTRUCTURE}) +public class AdblockPopupInfoBarTest { + @Rule + public ChromeTabbedActivityTestRule mActivityTestRule = new ChromeTabbedActivityTestRule(); + + private static final String POPUP_HTML_PATH = "/chrome/test/data/android/popup_test.html"; + + private String mPopupHtmlUrl; + private EmbeddedTestServer mTestServer; + + @Before + public void setUp() throws Exception { + // Create a new temporary instance to ensure the Class is loaded. Otherwise we will get a + // ClassNotFoundException when trying to instantiate during startup. + mActivityTestRule.startMainActivityOnBlankPage(); + + PostTask.runOrPostTask( + TaskTraits.UI_DEFAULT, () -> Assert.assertEquals(0, getNumInfobarsShowing())); + + mTestServer = EmbeddedTestServer.createAndStartServer(InstrumentationRegistry.getContext()); + mPopupHtmlUrl = mTestServer.getURL(POPUP_HTML_PATH); + } + + @After + public void tearDown() { + mTestServer.stopAndDestroyServer(); + } + + private int getNumInfobarsShowing() { + return mActivityTestRule.getInfoBars().size(); + } + + public int getTabCount() { + final TabModelSelector tabModelSelector = + mActivityTestRule.getActivity().getTabModelSelectorSupplier().get(); + Assert.assertNotNull(tabModelSelector); + return tabModelSelector.getTotalTabCount(); + } + + @Test + @MediumTest + @Feature({"adblock"}) + public void popUpBlockedInfoBarVisibleWhenAbpEnabled() throws InterruptedException { + mActivityTestRule.loadUrl(mPopupHtmlUrl); + Assert.assertEquals(1, getTabCount()); + CriteriaHelper.pollUiThread(() -> { + Criteria.checkThat(getNumInfobarsShowing(), Matchers.is(1)); + InfoBar frontInfoBar = mActivityTestRule.getInfoBars().get(0); + Criteria.checkThat("Invalid infobar type shown", frontInfoBar.getInfoBarIdentifier(), + Matchers.is(InfoBarIdentifier.POPUP_BLOCKED_INFOBAR_DELEGATE_MOBILE)); + }); + } + + @Test + @MediumTest + @CommandLineFlags.Add({"disable-adblock"}) + @Feature({"adblock"}) + public void popUpBlockedInfoBarVisibleWhenAbpDisabled() { + mActivityTestRule.loadUrl(mPopupHtmlUrl); + Assert.assertEquals(1, getTabCount()); + CriteriaHelper.pollUiThread(() -> { + Criteria.checkThat(getNumInfobarsShowing(), Matchers.is(1)); + InfoBar frontInfoBar = mActivityTestRule.getInfoBars().get(0); + Criteria.checkThat("Invalid infobar type shown", frontInfoBar.getInfoBarIdentifier(), + Matchers.is(InfoBarIdentifier.POPUP_BLOCKED_INFOBAR_DELEGATE_MOBILE)); + }); + } +} diff --git a/chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/AdblockPopupMessageTest.java b/chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/AdblockPopupMessageTest.java new file mode 100644 --- /dev/null +++ b/chrome/browser/adblock/android/javatests/src/org/chromium/chrome/browser/adblock/AdblockPopupMessageTest.java @@ -0,0 +1,103 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH + * + * eyeo Chromium SDK is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 3 as + * published by the Free Software Foundation. + * + * eyeo Chromium SDK 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 eyeo Chromium SDK. If not, see . + */ + +package org.chromium.chrome.browser.adblock; + +import androidx.test.InstrumentationRegistry; +import androidx.test.filters.MediumTest; + +import org.hamcrest.Matchers; +import org.junit.After; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; + +import org.chromium.base.test.util.CommandLineFlags; +import org.chromium.base.test.util.Criteria; +import org.chromium.base.test.util.CriteriaHelper; +import org.chromium.base.test.util.Feature; +import org.chromium.chrome.browser.flags.ChromeSwitches; +import org.chromium.chrome.browser.tabmodel.TabModelSelector; +import org.chromium.chrome.test.ChromeJUnit4ClassRunner; +import org.chromium.chrome.test.ChromeTabbedActivityTestRule; +import org.chromium.components.messages.MessagesTestHelper; +import org.chromium.net.test.EmbeddedTestServer; + +@RunWith(ChromeJUnit4ClassRunner.class) +@CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE}) +public class AdblockPopupMessageTest { + @Rule + public ChromeTabbedActivityTestRule mActivityTestRule = new ChromeTabbedActivityTestRule(); + + private static final String POPUP_HTML_PATH = "/chrome/test/data/android/popup_test.html"; + + private String mPopupHtmlUrl; + private EmbeddedTestServer mTestServer; + + @Before + public void setUp() throws Exception { + // Create a new temporary instance to ensure the Class is loaded. Otherwise we will get a + // ClassNotFoundException when trying to instantiate during startup. + mActivityTestRule.startMainActivityOnBlankPage(); + + mTestServer = EmbeddedTestServer.createAndStartServer(InstrumentationRegistry.getContext()); + mPopupHtmlUrl = mTestServer.getURL(POPUP_HTML_PATH); + } + + @After + public void tearDown() { + mTestServer.stopAndDestroyServer(); + } + + public int getTabCount() { + final TabModelSelector tabModelSelector = + mActivityTestRule.getActivity().getTabModelSelectorSupplier().get(); + Assert.assertNotNull(tabModelSelector); + return tabModelSelector.getTotalTabCount(); + } + + @Test + @MediumTest + @Feature({"adblock"}) + public void popUpBlockedMessageVisibleWhenAbpEnabled() throws InterruptedException { + mActivityTestRule.loadUrl(mPopupHtmlUrl); + Assert.assertEquals(1, getTabCount()); + + CriteriaHelper.pollUiThread(() -> { + Criteria.checkThat(MessagesTestHelper.getMessageCount( + mActivityTestRule.getActivity().getWindowAndroid()), + Matchers.is(1)); + }); + } + + @Test + @MediumTest + @CommandLineFlags.Add({"disable-adblock"}) + @Feature({"adblock"}) + public void popUpBlockedMessageVisibleWhenAbpDisabled() { + mActivityTestRule.loadUrl(mPopupHtmlUrl); + Assert.assertEquals(1, getTabCount()); + + CriteriaHelper.pollUiThread(() -> { + Criteria.checkThat(MessagesTestHelper.getMessageCount( + mActivityTestRule.getActivity().getWindowAndroid()), + Matchers.is(1)); + }); + } +} diff --git a/components/adblock/android/BUILD.gn b/components/adblock/android/BUILD.gn --- a/components/adblock/android/BUILD.gn +++ b/components/adblock/android/BUILD.gn @@ -66,6 +66,74 @@ android_library("adblock_controller_java") { resources_package = "org.chromium.components.adblock.controller" } +### Android UI module start +android_library("adblock_ui_java") { + sources = [ + "java/src/org/chromium/components/adblock/settings/AdblockAllowedDomainsFragment.java", + "java/src/org/chromium/components/adblock/settings/AdblockCustomFilterListsFragment.java", + "java/src/org/chromium/components/adblock/settings/AdblockCustomFiltersFragment.java", + "java/src/org/chromium/components/adblock/settings/AdblockCustomItemFragment.java", + "java/src/org/chromium/components/adblock/settings/AdblockFilterListsAdapter.java", + "java/src/org/chromium/components/adblock/settings/AdblockFilterListsFragment.java", + "java/src/org/chromium/components/adblock/settings/AdblockMoreOptionsFragment.java", + "java/src/org/chromium/components/adblock/settings/AdblockSettingsFragment.java", + ] + + deps = [ + ":adblock_controller_java", + ":java_ui_resources", + "//base:base_java", + "//base:jni_java", + "//build/android:build_java", + "//chrome/browser/preferences:java", + "//chrome/browser/profiles/android:java", + "//components/browser_ui/settings/android:java", + "//components/prefs/android:java", + "//components/user_prefs/android:java", + "//content/public/android:content_full_java", + "//third_party/androidx:androidx_fragment_fragment_java", + "//third_party/androidx:androidx_preference_preference_java", + ] + + resources_package = "org.chromium.components.adblock" +} + +android_resources("java_ui_resources") { + sources = [ + "java/res/drawable-hdpi/fragment_adblock_custom_item_add.png", + "java/res/drawable-hdpi/fragment_adblock_custom_item_remove.png", + "java/res/drawable-mdpi/fragment_adblock_custom_item_add.png", + "java/res/drawable-mdpi/fragment_adblock_custom_item_remove.png", + "java/res/drawable-night-hdpi/fragment_adblock_custom_item_add.png", + "java/res/drawable-night-hdpi/fragment_adblock_custom_item_remove.png", + "java/res/drawable-night-mdpi/fragment_adblock_custom_item_add.png", + "java/res/drawable-night-mdpi/fragment_adblock_custom_item_remove.png", + "java/res/drawable-night-xhdpi/fragment_adblock_custom_item_add.png", + "java/res/drawable-night-xhdpi/fragment_adblock_custom_item_remove.png", + "java/res/drawable-night-xxhdpi/fragment_adblock_custom_item_add.png", + "java/res/drawable-night-xxhdpi/fragment_adblock_custom_item_remove.png", + "java/res/drawable-xhdpi/fragment_adblock_custom_item_add.png", + "java/res/drawable-xhdpi/fragment_adblock_custom_item_remove.png", + "java/res/drawable-xxhdpi/fragment_adblock_custom_item_add.png", + "java/res/drawable-xxhdpi/fragment_adblock_custom_item_remove.png", + "java/res/layout/adblock_custom_item.xml", + "java/res/layout/adblock_custom_item_settings.xml", + "java/res/layout/adblock_filter_lists_list_item.xml", + "java/res/xml/adblock_more_options.xml", + "java/res/xml/adblock_preferences.xml", + ] + + deps = [ ":adblock_strings_grd" ] +} + +java_strings_grd("adblock_strings_grd") { + grd_file = "adblock_strings.grd" + outputs = [ "values/adblock_strings.xml" ] + + process_file_template( + android_bundle_locales_as_resources, + [ "values-{{source_name_part}}/adblock_strings.xml" ]) +} +### Android UI module end android_library("adblock_java_tests_base") { testonly = true diff --git a/components/adblock/android/README.md b/components/adblock/android/README.md new file mode 100644 --- /dev/null +++ b/components/adblock/android/README.md @@ -0,0 +1,13 @@ +# Translations HOWTO + +After introducing changes in [grdp file](adblock_strings.grd) it is recommended +to run `grit` tool to make sure that translation IDs in [xtb files](translations) +are matching definitions from [grdp file](adblock_strings.grd). + +Command: + + ./tools/grit/grit.py -i components/adblock/android/adblock_strings.grd xmb grit_xmb_output.xml + +will produce output `grit_xmb_output.xml` containing mappings between textual +IDs in [grdp file](adblock_strings.grd) (`message name` value) and numerical IDs +in [xtb files](translations) (`translation id` value). diff --git a/components/adblock/android/adblock_strings.grd b/components/adblock/android/adblock_strings.grd new file mode 100644 --- /dev/null +++ b/components/adblock/android/adblock_strings.grd @@ -0,0 +1,238 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Ad blocking + + + Allow ad blocking on websites in this app + + + Filter lists + + + Add the languages in which you regularly browse websites in + + + Acceptable Ads + + + Acceptable ads are non-annoying ads that comply with a strict ad standard. They help generate revenue for content creators and do not interfere with the content you are viewing. This feature is turned on by default, but you can turn it off at any time. + + + Allowlist + + + Support your favorite websites by adding them to this list. You might see ads on them. + + + Enter URL + + + More blocking options + + + Custom ad filtering settings + + + Add custom filter lists + + + https://example.org/myFilterList.txt + + + Custom Filters + + + Add custom filters + + + Enter filter + + + + diff --git a/components/adblock/android/java/res/drawable-hdpi/fragment_adblock_custom_item_add.png b/components/adblock/android/java/res/drawable-hdpi/fragment_adblock_custom_item_add.png new file mode 100644 index 0000000000000000000000000000000000000000..0b8634e72bb0fb6325642aeb6221fd7eb18d0c07 GIT binary patch literal 490 zcmV^1)o6^Ua8bxe6FQA)D zIGoL4Zqgg*&hKC4KfgcMdoJZG60ygaDH)%IGN#s`xzp4wB@8w2 zon>5UGInn&)6-bC7!}$wUW0qRcE<)!^=>w>jKm*dY4IZd30NY1HwWNV1c&;rni%$U z;emHi$g@m#FpR}K1MecZkV%4JDrUb{(Lg2>44If+vndfzGI>J2%m#ZhnPd1AGcu=e z$eeCnzCKo4wEBN-WtV*;=6S86OPO3_*cEeD>p`Y6*~SpD5PRrdbR>Spn)?q@Hoc14 zyo!I!e{^`4(Vf@N$fIQ6XyG6x7hTbyiUx@$_bFklfqPn%(dJQ838jQQXy}DQLdX1w zS55pPfU2rna@8{z4Ct|5sKx;R50!~d6Wj0ry#N3J07*qoM6N<$f-V%=4*&oF literal 0 HcmV?d00001 diff --git a/components/adblock/android/java/res/drawable-hdpi/fragment_adblock_custom_item_remove.png b/components/adblock/android/java/res/drawable-hdpi/fragment_adblock_custom_item_remove.png new file mode 100644 index 0000000000000000000000000000000000000000..a079dac12cb0d0a0b7857383436d51689fbc17a1 GIT binary patch literal 296 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$NbBSc;uILpXq-h9ji|$iMID;usRq z`gXb@*C7KDhxuzoL_R9SITw5uxVLEW?BfN+MW5C5;+$lzEcFO(*RnAA=_%#-(Edm8 zr_b@H^q({@`jRX#)0{Evz?DsP?As2Qe)^-}c7QLV@7EW{i_FhmBG{1&t;ucLK6Tz9d&g8 literal 0 HcmV?d00001 diff --git a/components/adblock/android/java/res/drawable-mdpi/fragment_adblock_custom_item_add.png b/components/adblock/android/java/res/drawable-mdpi/fragment_adblock_custom_item_add.png new file mode 100644 index 0000000000000000000000000000000000000000..894f030436137ed7aae902e849852b787da3b451 GIT binary patch literal 321 zcmV-H0lxl;P)C`sfbuKPCZ`NufeDhoM-qFG!rJq9hrE#NDxwX}%?pdi%I{)JyWD1Q_ zQu<@k`4>Y>lQJh$r|tJLA!N3~L6wV5+U}}QXoXcS-i2mF;6ZrJu@i1ag*#!N<3*@I z3_PfX^M44Pa639_BJ6T}6Skwmlkk$`T4)s`-})geb5T1A%~j!1=u|Qm!pYPSU;Pzk zdORnkQOHnuOy@uJQ6?p{9^9$bCZ5vv@Lg$;xr6Av&ddmvl~;RbXFD&JDxb_h>a~=2 T?wMC100000NkvXXu0mjfEbohj literal 0 HcmV?d00001 diff --git a/components/adblock/android/java/res/drawable-mdpi/fragment_adblock_custom_item_remove.png b/components/adblock/android/java/res/drawable-mdpi/fragment_adblock_custom_item_remove.png new file mode 100644 index 0000000000000000000000000000000000000000..fc43e14039f48b058f68b1f1f854f8016f0197ac GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjEX7WqAsj$Z!;#Vf(O7cqrBga zR`^WbF4?^A@Cv1f^($w8t#TFeP&jy>^|_PZrW5547W~b4b<$x22MdF^Pq&CqutJR+ P&@Ki~S3j3^P6y@@wC`{P2Xf&FcnP8x-CNphPHdt9t_+!g9 z-9)m4m^hg+(;#47FqWWm;EzPd@UIaRaetV&*g@1Js z=*g2O+|baFfBW|BpQ==WB-tSB!p-yaABeiubiLI@$A=Y@ub zhHsVxwP(+sBNzrDgxcELuBWG`uS_&fMn;Cdy}kVh948bCg)1s5Y7z=!u~^=fx5?pf zG%FMeRiZFhG)=1;8X7L(N^u+~n9b(WMLBCUn)Lqu{!!ef*4EbV7lJXFOeXuhEEbC; zmYqVOP+huo$%&!dZnsCRR_o#dm6w-)jw^Hb?%kkHr+Z}~d%N9kmsQfSkZndrhTiY@ zPvT^E?%cUA+J=;0&@`<*bm-7$005FCp<~C69iN$*`7>@7i`2u152qXs$4LMHk|c?m znwtG2Nk&vZ0w^aZ$FO0;hBW{HUa$9;YuBz_P8JN-)vH%8dOV&90D$%D*RR>Ud2@bD zAgk57O{G%N002&>vwLoCZYJ44b8~Z#Iy*bN0RS`_jk2hyDB^<|0hF7YYs6!x(|JAF zFj!q(T~1LHB>(`U(P#wOo~n==u3o)58;?gvM+5RXlgVT%C@3h14lciEHk-|MyWJjb z<8rxNy}iA?_}c6B{w#{3L{Su(nVG34Ns^Q#NqmNUdV2a1UNI>tDG?i@d^IJi=+#Hl zbSB4fA%qYb8yowJqNslh6VWn~B<05u^bB#5gbba1oTY{qSKxm>QEo}Qj)o9KJqgr zKjAWO*|McLey)jq7-dOp3x~rZLI`zqbo>aimpYEL%j9B*AfR!?SUnJRZ+D-jUCqJ$sQP$(ScRi^XDb%&V}l zurQV#Ns@~5=g(ip$B*IR;W4dNyJAt9uq?X^uL6V+I(YD413?gq_@1$0s;a6^Vi-{r zrQ+h^j}i(}U0wZ^AP6E3aOTXJHilsmZl6}GU2*Q*xpoXA2!eRvz=7kC=szJ%)9RL% zmha?Hw{G1UWm)!PrBcbn^H(aBOi4*e*}%YnUk=mU+}uIa^wN&QG)=2(Yipb2?Gr^& za=YE0+S=O2yu7?O8HQO)5JU<=5GsaY)*1|kx9oO%Q(s@77lUBGs;a6lmkfhN5Clw|-XeW6h3aU$`TRYHOwNP-{;e1wp-N?K0b7g|XF Y0A+ga)=C5v>i_@%07*qoM6N<$f{a(?RsaA1 literal 0 HcmV?d00001 diff --git a/components/adblock/android/java/res/drawable-night-hdpi/fragment_adblock_custom_item_remove.png b/components/adblock/android/java/res/drawable-night-hdpi/fragment_adblock_custom_item_remove.png new file mode 100644 index 0000000000000000000000000000000000000000..a5151c8bfedc208a8a6eb3cf0e78ec02663f1e59 GIT binary patch literal 696 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k1|%Oc%$UKzz^IZL5>XQ2>tmIipR1RclAn~S zSCLx)lxJYDv9BmdOwLX%QAkQn&&;z`dcS+Wl0s&Rtx~wDuYqrYb81GWM^#a3aFt(3 za#eP+Wr~u$9hXgo70`g()RIJnirk#MVyg;UC9t_xKsHENUr7P1q$Jx`$+aRiw;)qN zTOqS?dp$J|=-(os$7(_@KLG{`OR+>V$ruM8MUQ%hiJCkar|v!+0dbIP-)o>*Ydhm z4nI!bkNwInbmRItp3iABla6oVY0G_cO~kTqbN}NX_e$@sp8x2u!5(qfK!aoVw!O?u zxc$v_S}H#~YvnxqTia?YuRWU*bgDn0r%;h)MN5mo0SRlp=bn>PE;Xh)_86+QOfWsH z&{Ed-xMuZHiR8??v(ol=maG(X@-V#!ObIOlNmDPVPYJ5x+i2n&%)k)YH%;LAob`8? zt`~4RVd6Vk=lS`!69j`2TS6ohMcq7FVa)%*91MKX(!GyQlz!UM@@iMz&1K1vp`o_t zKi7QH-`ioplfQeNbjbD_nm`BgHa&1#KK+~K+u#36MO@40J%2l$=koWz5!0RqUpAQ? de>362L*~@(U)TR{tzZNtI8RqUmvv4FO#sl$3|0UD literal 0 HcmV?d00001 diff --git a/components/adblock/android/java/res/drawable-night-mdpi/fragment_adblock_custom_item_add.png b/components/adblock/android/java/res/drawable-night-mdpi/fragment_adblock_custom_item_add.png new file mode 100644 index 0000000000000000000000000000000000000000..e0093e19a3462e8c77222c9ed7910da1ce7fcba0 GIT binary patch literal 747 zcmV6@#GZ(g>3!;+wOL2z*TM~H|ho6YV4fNk5IWHPzK7?XN&8DqXwDwS@x+jju)AkrI}rmYAe9NV@#;c!@e zY02~R^Lo48z7s+?J=?`Oe`8tJ1pp)xiS2G2x9{CzsZ=WM&V(`M^AMuZ=qdn|%jG%| z@nHoRV?K8#i;Ih~N8|3nFbso;D4)-NCnBe7nSB7@KA+G3AR>y#c?F@=> zvt0iKE-x>eL`37`W zPtY)o&j4_EcvzzzUw*(dl`56WDF7@jEv_*&XPHF($bp?o8I#*S9AoCf;+--*V1J6-AlZ*x1-9m&U8_W6ZSxD+M^A#dZ*eJ2GH3e~|HGSM%5s5;iO&>R z&&YI~her?zUPK6`F) quvez8ysu|Z;l^uyXPKTRuyZf)Ke07?`zxR$7(8A5T-G@yGywpUdPiIU literal 0 HcmV?d00001 diff --git a/components/adblock/android/java/res/drawable-night-xhdpi/fragment_adblock_custom_item_add.png b/components/adblock/android/java/res/drawable-night-xhdpi/fragment_adblock_custom_item_add.png new file mode 100644 index 0000000000000000000000000000000000000000..19cb495c8205b58fead7819dcbe99befa7177e49 GIT binary patch literal 1485 zcmV;;1v2`HP)k!5R`T9^4)X2M(Kgwv&YPE)zmKH;M zdppIlZ29fmx2a?@nabz$iMhGC*E2IS-p$R;lvKH^21$~-k&%&GUavP$76FD~*y-u% z7Y>Kx1^_@)ci{v+kP(;yB(|7x5O0#TE*M6156P5eNj9 z%x3f1{nU=rH0@>>hUF7bDwRIpzkmO)fq{YRMx*fujYiW20MIuyG#t@twI@s_(~sA# zUHj$1g9pA(pFT0Waa_7|>AK{~34&01Jf4SqNn^2Cwy&>m6adg9l#e9I!!%91R#sLD ze4JxrW53}zPD-U8A0Hooj3y}-i>2Y=;oCBq>`=AD0052C>AYJil|J(oA&L6I!ND<< zd~tCxZ8RFsNRj}n^(uz0 ziK-X2OeQ-NjYcytVI&essnzOMiM8)Quh(~=|3n}VSgLA^9UdOO4HK=euWxpCc3OnS zqwOFx&TKZHMb|`sf4@_dc!feiWipu}OfobybW;pRwFO`phB=+iyKrng9?yw7v0X0L z9he{-4krnMP}Zve0DuPFVjT|04Z#Gnv$GL6*k-di#0aRh01U%0nxwdvhv5^OVHj2}mp7w+1p460l`D4Ge)QW8w>`{8sK1k zeSH&Ne7l{3=pwBZd^s8#8jip|Z{EB~qduG#A_xNgB}DHaQlVTfv#<>S;Oa#mEG#Tk zR7sNL5$UA~gG!~MU^^O(a@v_wKs+8#!gfg0mpHL*yKWXnXdr=(1gBLE0s!NvxwjC{|652?d=_?cL9BUeWP%^*Xs=k4tBfU z9yoYzZtk7fsi>9$WHQ;ISS*%><3~nDZV4t(sZ_1+-@pG4CJ;Ln)lvXD4X&=Pu8}0E z6T`uoin7`4Mq69kiTy6XXf&QF7KQCJ<`1`sm`~ zVj9jF3WXA4r@Crdfa=Bdgcsvg=sXo8} z0KVfZqFny6#rF304v0DI2!c@AY&J(Y98U6aj*pK&uDb8P0vTUBZ6lYdMl(GAJ37y=w31=;)>>%5ePnaf8WZqF9zKhr{92($Z2YolYkf78YJl nO-(&nTU(1rmHPk(_?GcMY)SM2zXw?800000NkvXXu0mjfRfWEU literal 0 HcmV?d00001 diff --git a/components/adblock/android/java/res/drawable-night-xhdpi/fragment_adblock_custom_item_remove.png b/components/adblock/android/java/res/drawable-night-xhdpi/fragment_adblock_custom_item_remove.png new file mode 100644 index 0000000000000000000000000000000000000000..b7839e73435139dd8fce57b8c5066587920091d8 GIT binary patch literal 284 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCmSQK*5Dp-y;YjHK@-KV3IEG|2 zzP)M7cSu3vSm6h*mfo`#RdRioHkUkL>f!61d~b2KyQf5#;jRZQos;!9{&1_UE4H8a zKVTXcBf|&bHCtoVHeD;bQ$7DmPrQ{=kp3CV=c;iYs!LUJqqoXkl45#rf1>}wMPD;r zY-_vL|7R08z{_|CJF(VEVQERWp$muNu|k`x_kv{~?6tpk&)Jmc@WQK`<$DZo3mn?{ zt^JtxWfRw>S9Vo8bQYX@`@C}BK5Ls}6)%6+E#G>tCdG!~z@m2>y2L-%*O&?cy~p6` L>gTe~DWM4fCeL&C literal 0 HcmV?d00001 diff --git a/components/adblock/android/java/res/drawable-night-xxhdpi/fragment_adblock_custom_item_add.png b/components/adblock/android/java/res/drawable-night-xxhdpi/fragment_adblock_custom_item_add.png new file mode 100644 index 0000000000000000000000000000000000000000..0dd360b2e319aeacaf79cded607aeaef135babb9 GIT binary patch literal 3393 zcmV-H4ZiY;P)?#wHwl3xJQ9*z5_vQvL39mO5k-q2xYl-O?95I_ zcgE^Y*FmRtb(j{dt?jf`myvD7Rjb?G?XQbF{L>GxdEe0*G2t*+vFM=Tt z5|YckcmJr)Xt*~#@}SQ0nc<(4tS zl}b~Rl9CiW9uE}?h0@g2RB1*=2AY|fDFOh1uC6YVUaz+r42A)#)oO6N-4?su-fb`# zjBdBvMi7KQT0TcZAcV)`WvEoDXN!xA^OZ{FlH%gx927<4VHlpYeWTIn`0l&!T68+y zt@`@<=GNBMA4f(;^biE$5%fK>aJk&M`}gnvM}2+$k6NwPgyT3th6s-1gjTCHUA}zz zhYvpZ;P3JA@!2!o&M5%^V5X<1=aiL|9qaAwwO|;Ahbjske!qY0{{8#bZQHi}IV~+M z2LQmF>GlT$7KudjN=r-kHa0fijg%-<;5bfPyLRpFwr$(?^7(uP1VQjji!lzRQdx50 z!iDR@!^56%45jHXJUr|@-}wE0cc^WgHas2=Eh{Ul8Wh8+Q%Fj1!*sxt9kt_uOuqJB<01zXQNS1EgxN&D?W##8;wYqzv-efYF?4_lp2Y5Ul z8c7XkK@cRls;cUg&1Q24bJSw7INyBp&0|?vS<9JBW@3nD0h7s0%*x8jfA78bJ~Nxm z&S199X0zj?k3KrZVzC5aY4l`?kB^reJ$m%((a}+iuE+HE_gfDiKKzYPD9nLjm=SIt z5CmZ+Cnx6|J9ezvXfzJd#XSte@I!|VeH|AU7afseV`CG_%gc`p4GoRZJ-Pb&`a1;$ z1?v$6iHo#92!h0}UcLJF4Gj%H(TOxPH00j8b?cvEVq!w=!4p$dR8(p-8truA)YjH& zva_@EAqYYu?#x2~08FJ)xwNjX?lzrYeSLj{t5&W00{|dmO8{i<+_`JaW;3NYE|<$& zQBiSHAP~qR<-kM;g+kfk!-uP#PNyf(KODyii^bxcH*a1E6p1aCR4UE6bm`Jfx^Dd8 zhadhkCMHG{cEeMI%jHTB95`^&@Ar>U`FZKmr5_(ICc_5+Am;VgU*G3)xkjmso;`cE zh0o_d6IP=kz~}QbE?l_KO69A=;qYwPvSm+Lw<96rUdly#4mupHV%HzP>)o z^5x5a3xybvT`rf4s{T*}0st^dN=i2M_V$_r>&0=L*tKidUl9Zey%+KM{DpmeeKx8F z?Ay2RBn-o`q1uRqKoA5$3Ofi90vd}Kl$X7uc!>@_4)^V zK0hlY0}qLmKoA5$2?+`F^?E(!1Fop3I0=Qa^G{ArRy8y<+zG50!!UgN_U)D7S|LYL zAP9n>ojZ3PrmA0~(R6V*oS>6SQ1$Zi@}AAe$e0sY-q6s{dGX@KGXz15h3b4XIDh{9 zm(9)1_X5lLe15V@rCJ>9x3mHw2*O#mY+1fkDt%&kJ~lQ+G&VL~?eFjJn!d}?#b7Y> z)YsQvB?y9iyj&uYBt8H9^Z76g$I$(jRvlE#gaN6-o+kx0^uii+k1mRqe>TXS=BOK2`f zAGKQDs?+I=f#rpTg(|sRo=*2WT7kr3aZX}l;z~ypL0089% zmR2CCR7xq3Ua!}O=IYGR+uLg(2!aSK7YGC?bjKjH>lm3#Mk&zH(9pm{j+jg)6PL^7 zPV~J;(5-jOX0v&+bwCgVp(u)ujEvAu9%i%IL?w_^DwV)63{!kWFOXa=r#$TTcs!Pg z9OXV_qVG+no>1#}9EZbUAxV-9EKf~M717<4&gP`W`rz`(#=wOV~Quv{b(i54wdv?OGYqs)pGD;CS;^0dGO;gu^_?r62zUb^4W z3N$n{G^EjJZUvT$M56fTo_lT)0D$(8>6ZqAAaN>{YN1#xjt~4yr_*cccV@ zVK}C|y!Cx{i*H zaXAGfNs< zRqWAdH2R#JoYkTD`~(aJgZs`q?;NAbNyIP=ud1p#9~&E+Jl*;^G)%WXHk+Mv{P^*U zRN{C%9)Edxd1cts1Lbmg{B5Cj>w&WJWF7EAEP8*d!(`FxZKrj3n_ z?I|fKIbk;p0AQ|Mx$;$y$K#_iJUBS$C@n4B&tkFoVK+WW*lc#vjvYIytXAtVm5)B3 zZ>+Gea5EIC{7C=+{K_k@>>nN;rpy8K`FvPaRnUld=GwS%3AeblBZ9fzNS*CN~V%cKV4uLX65GQ z{-(ORx{>b9B8S7_-Lq%U2@Z!NjI=)x1VIprqS@8e)&Hf7M?Rl#Orz0smzI_uWHOo4 z4&D=iAV~7oty>Sax3}M;OWGt!l00+fOoKomh;9yLe0==e+S=Mix7$q_lW-g-Mn^}n zTeoiM)~#E&Lnsu=!qKAu05L+LP_|*ihTSbKExmNv{v=6~PN#FUrlv-nl$4|lN1LaN zKp@CGc<|tt6TPqD^?I>$=g!@H>#esA78De`%;WJC(9~iS;PH5h;^N}p?cTlnU`8HEcY3~< zkH_bByS*-#%j0x9-A<>|_3+Q_a=AQix7+LSczhU!;gfkuZ*+7NYierhTD5A`s}Y~A zrV0RnA(zXS@7c5GFIuhEG8vJ=NoQxLdGFr6N7B;LasdEgf4eAbAPB3xI z!^6YgNDJd|IJ}1r9Xh*Y$&wcs3jkXszu9|EtB(jyeXY& zkBp4?8yXtAIy*aWH#axmxO(+!v(0AfAP8bKQoch_l>apai^bwgB$Cw3%*-qlMSsQT z^HGUJk|LAIBnpK>oRyU&0sug5ZEfaz_wEhqbUNd}z<}|=g9jFi#qv{kcXyZBY&Q7) zetWchj;cV9+XVo?008(Q06`G=(V;qy<0SDjBtZ}aNsEakt zG3V`V`_;DsWR86lRu0OZ_JjR#NapKSr&hkD-tpZ(f^LN?^6@zxuyD&*x+UV}g9~e$ zoqu!fskYRxRQH@7x1;sa^Luj^H-4&l_QU$5c~YNqi-HmmXhpBTUM<)5aQS>z*T643 z@4w$KqAwLB~a5KWXY8n!wtzwCK?R%+J%`|;_K({9g5)xA)* z`)^|Qw3T=BzQ<|LQgQu&X%Q~loCIDa_3)=ty literal 0 HcmV?d00001 diff --git a/components/adblock/android/java/res/drawable-xhdpi/fragment_adblock_custom_item_add.png b/components/adblock/android/java/res/drawable-xhdpi/fragment_adblock_custom_item_add.png new file mode 100644 index 0000000000000000000000000000000000000000..eae58064da9ce199afa7dc1a3695aec4cb7845f0 GIT binary patch literal 638 zcmV-^0)hRBP)BvzClrhNPG~XS-6peyg*B09za{S775sH6&r9FxT@Ns z*o`qQRH=!Zsf)t_nYql&9a0ed&d&4C`R|~Tns+q>#<$Q~<{NRgNq ztn(AkQ0Kg58f#p(xWx;p0WI=au*5ICh}EM^EYf_uH{cK3R49@oLxwy>s_bxePt(F7 zB3ZuRX?eMlCq!N62DQK;ln*LD;w4d-;RIb2AuOr%D=twf zaG=k<0y8eZ_4F=rDCk>UlEcWB?ml=qo>UOC^rgFLOs&T14a7EphDPrhfvoGrbgT^0 z97}(V08;utXBn&vpep?{M)0wqsU5dAnBZCz^Y~~=Ya6T$U{@3keC$c9lE|PYiZ(tD zrBzI1P!dH4A3bU1K=C3LiYtHV;zKe(CXvCIX5qgZ=!){gS<&!+WWA=vF15zoEe9ovdR>RNik1@HXXVQ7|^9dn>s~CcmO=| Y5BeWc8kq*G&j0`b07*qoM6N<$g8C96kN^Mx literal 0 HcmV?d00001 diff --git a/components/adblock/android/java/res/drawable-xhdpi/fragment_adblock_custom_item_remove.png b/components/adblock/android/java/res/drawable-xhdpi/fragment_adblock_custom_item_remove.png new file mode 100644 index 0000000000000000000000000000000000000000..adf9549d41c6b88f43e3064320e0b56b39b1cbc5 GIT binary patch literal 240 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCmSQK*5Dp-y;YjHK@|SzMIEG|2 zzP)M7*AyV)^6=nV39swN_pMoz;wTn&ETLI6O7MQ|&i>A-eJy?SEm=)G7(QsTc@{r3 zoME=EtH;0h1=I6$lKeaxx3*>PU1ZAi;k{D)Lf6;p12ZmP-_OjlL-2uHgEV6v8Y9~G zfO758+p1NLz6T--eODGAuHG-Ba#!U4!jCU^c-_hu+~6`t#h3H&`$>J1eyu&m>@ZLL Yl!d#zrh&s}ppzLqUHx3vIVCg!03UH%RsaA1 literal 0 HcmV?d00001 diff --git a/components/adblock/android/java/res/drawable-xxhdpi/fragment_adblock_custom_item_add.png b/components/adblock/android/java/res/drawable-xxhdpi/fragment_adblock_custom_item_add.png new file mode 100644 index 0000000000000000000000000000000000000000..f75ae29328533b3747859b3c8d0e8b4e2026b865 GIT binary patch literal 933 zcmV;W16urvP)*!89piT- zMILe#gRb!fNtq_&7?EQk;74rphzZIJF-VpygA7q-f@MAhY|N1*rG8crUmDDDiZG{{ zX9w}+C3#XP@;Bni2P!y3;c$zOzWsL;NvPjfr_CK4;>dHCj<1qS0y*E!`iJ8rae@s5 zomXUu?H+>8GhC7y;5mZMEHPa}(78_^X&hh?LFXr8IK~%G9Roa-nv{ra*>kh{Frkkc zqVg*dUGhB2F5yHa+<@ot9wid}32k#6j1_{D=(EBbBDjdC+ySG7UL&UV>R2h1M}Ky25NZ{DSinXh&sX3zAsqD4{gkyr zXVu164iTt~K7L`XP=>nNxlEvGHTKA2A$Y8IrU+D3V-r>jRn*P{0vdztLqAN-7V|7hq~)t`)>QgxESrz zv23-_6SXr*pet(Z)4qLNeMGSBNh=+~X`6f@C1Zj?8P>Z~w=H6uKu6S+#8r<}*SA~$$V zE40d2R=7@qeRPP+O!0sL~s)6?@WgoZc?2zi9|00000NkvXX Hu0mjf8@;m} literal 0 HcmV?d00001 diff --git a/components/adblock/android/java/res/drawable-xxhdpi/fragment_adblock_custom_item_remove.png b/components/adblock/android/java/res/drawable-xxhdpi/fragment_adblock_custom_item_remove.png new file mode 100644 index 0000000000000000000000000000000000000000..b3c47feadce9cb6829b6956c86399128fdaa992b GIT binary patch literal 456 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@ZgvM!EX7WqAsj$Z!;#X#z`$7V>Eakt zG3V`VTQ6ou2KSHRqJn1`->`@}ZrC6o&A;4zQ-FZ$!As{3Ir%Tx%OPan?JKDB=lI;4 zy+?l^+~B)uX06KZ$w>~AR6KvNmo;!d*!gq^)3-*)`@-)JixqIzi1tY*Y=6G9JdfLg z%}#^=i>q+e?*7i{b)oW&4@K6`W}bHJxRhPv^^b*8s}Fe3=8wwwyo}R%8F$ESnGJWY zv%eH) + + + + + + + + + + + diff --git a/components/adblock/android/java/res/layout/adblock_custom_item_settings.xml b/components/adblock/android/java/res/layout/adblock_custom_item_settings.xml new file mode 100644 --- /dev/null +++ b/components/adblock/android/java/res/layout/adblock_custom_item_settings.xml @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + diff --git a/components/adblock/android/java/res/layout/adblock_filter_lists_list_item.xml b/components/adblock/android/java/res/layout/adblock_filter_lists_list_item.xml new file mode 100644 --- /dev/null +++ b/components/adblock/android/java/res/layout/adblock_filter_lists_list_item.xml @@ -0,0 +1,36 @@ + + + + + + + + diff --git a/components/adblock/android/java/res/xml/adblock_more_options.xml b/components/adblock/android/java/res/xml/adblock_more_options.xml new file mode 100644 --- /dev/null +++ b/components/adblock/android/java/res/xml/adblock_more_options.xml @@ -0,0 +1,34 @@ + + + + + + + + + + diff --git a/components/adblock/android/java/res/xml/adblock_preferences.xml b/components/adblock/android/java/res/xml/adblock_preferences.xml new file mode 100644 --- /dev/null +++ b/components/adblock/android/java/res/xml/adblock_preferences.xml @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/components/adblock/android/java/src/org/chromium/components/adblock/settings/AdblockAllowedDomainsFragment.java b/components/adblock/android/java/src/org/chromium/components/adblock/settings/AdblockAllowedDomainsFragment.java new file mode 100644 --- /dev/null +++ b/components/adblock/android/java/src/org/chromium/components/adblock/settings/AdblockAllowedDomainsFragment.java @@ -0,0 +1,77 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH + * + * eyeo Chromium SDK is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 3 as + * published by the Free Software Foundation. + * + * eyeo Chromium SDK 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 eyeo Chromium SDK. If not, see . + */ + +package org.chromium.components.adblock.settings; + +import android.app.Activity; +import android.os.Bundle; +import android.view.View; + +import org.chromium.components.adblock.AdblockController; +import org.chromium.components.adblock.R; + +import java.util.List; + +public class AdblockAllowedDomainsFragment extends AdblockCustomItemFragment { + public AdblockAllowedDomainsFragment() {} + + @Override + public void onActivityCreated(Bundle savedInstanceState) { + super.onActivityCreated(savedInstanceState); + getActivity().setTitle(R.string.fragment_adblock_settings_allowed_domains_title); + } + + @Override + protected List getItems() { + return AdblockController.getInstance().getAllowedDomains(); + } + + @Override + protected String getCustomItemTextViewText() { + return getString(R.string.fragment_adblock_settings_allowed_domains_title); + } + + @Override + protected String getCustomItemEditTextHint() { + return getString(R.string.fragment_adblock_settings_add_domain); + } + + @Override + protected String getCustomItemTextViewContentDescription() { + return new String("Add allowed domain text field"); + } + + @Override + protected String getCustomItemAddButtonContentDescription() { + return new String("Allowed domain add button"); + } + + @Override + protected String getCustomItemRemoveButtonContentDescription() { + return new String("Allowed domain remove button"); + } + + @Override + protected void addItemImpl(String domain) { + AdblockController.getInstance().addAllowedDomain(domain); + } + + @Override + protected void removeItemImpl(String domain) { + AdblockController.getInstance().removeAllowedDomain(domain); + } +} diff --git a/components/adblock/android/java/src/org/chromium/components/adblock/settings/AdblockCustomFilterListsFragment.java b/components/adblock/android/java/src/org/chromium/components/adblock/settings/AdblockCustomFilterListsFragment.java new file mode 100644 --- /dev/null +++ b/components/adblock/android/java/src/org/chromium/components/adblock/settings/AdblockCustomFilterListsFragment.java @@ -0,0 +1,118 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH + * + * eyeo Chromium SDK is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 3 as + * published by the Free Software Foundation. + * + * eyeo Chromium SDK 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 eyeo Chromium SDK. If not, see . + */ + +package org.chromium.components.adblock.settings; + +import android.app.Activity; +import android.os.Bundle; +import android.util.Log; +import android.view.Gravity; +import android.webkit.URLUtil; +import android.widget.Toast; + +import org.chromium.components.adblock.AdblockController; +import org.chromium.components.adblock.R; + +import java.net.MalformedURLException; +import java.net.URL; +import java.util.ArrayList; +import java.util.List; + +public class AdblockCustomFilterListsFragment extends AdblockCustomItemFragment { + private static final String TAG = AdblockCustomFilterListsFragment.class.getSimpleName(); + public AdblockCustomFilterListsFragment() {} + + @Override + public void onActivityCreated(Bundle savedInstanceState) { + super.onActivityCreated(savedInstanceState); + getActivity().setTitle(R.string.fragment_adblock_more_options_custom_filter_lists_title); + } + + @Override + protected List getItems() { + final List installed = + AdblockController.getInstance().getInstalledSubscriptions(); + final List recommended = + AdblockController.getInstance().getRecommendedSubscriptions(); + final List customStrings = new ArrayList(); + for (final AdblockController.Subscription subscription : installed) { + if (recommended.contains(subscription)) { + continue; + } + // FIXME(kzlomek): Remove this after DPD-1613 + if (subscription.url().toString().equals( + "https://easylist-downloads.adblockplus.org/exceptionrules.txt")) { + continue; + } + customStrings.add(subscription.url().toString()); + } + + return customStrings; + } + + @Override + protected String getCustomItemTextViewText() { + return getString(R.string.fragment_adblock_settings_filter_lists_title); + } + + @Override + protected String getCustomItemEditTextHint() { + return getString(R.string.fragment_adblock_more_options_add_custom_filter_list); + } + + @Override + protected String getCustomItemTextViewContentDescription() { + return new String("Add custom filter list text field"); + } + + @Override + protected String getCustomItemAddButtonContentDescription() { + return new String("Add custom filter list add button"); + } + + @Override + protected String getCustomItemRemoveButtonContentDescription() { + return new String("Add custom filter list remove button"); + } + + @Override + protected void addItemImpl(String url) { + if (!URLUtil.isHttpsUrl(url)) { + Toast toast = + Toast.makeText(getActivity(), "Url must be https format", Toast.LENGTH_SHORT); + toast.setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER_HORIZONTAL, 0, 0); + toast.show(); + Log.e(TAG, "Invalid url: " + url); + return; + } + try { + AdblockController.getInstance().installSubscription(new URL(URLUtil.guessUrl(url))); + } catch (MalformedURLException ex) { + Toast.makeText(getActivity(), "Error parsing url", Toast.LENGTH_SHORT).show(); + Log.e(TAG, "Error parsing url: " + url); + } + } + + @Override + protected void removeItemImpl(String url) { + try { + AdblockController.getInstance().uninstallSubscription(new URL(URLUtil.guessUrl(url))); + } catch (MalformedURLException ex) { + Log.e(TAG, "Error parsing url: " + url); + } + } +} diff --git a/components/adblock/android/java/src/org/chromium/components/adblock/settings/AdblockCustomFiltersFragment.java b/components/adblock/android/java/src/org/chromium/components/adblock/settings/AdblockCustomFiltersFragment.java new file mode 100644 --- /dev/null +++ b/components/adblock/android/java/src/org/chromium/components/adblock/settings/AdblockCustomFiltersFragment.java @@ -0,0 +1,76 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH + * + * eyeo Chromium SDK is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 3 as + * published by the Free Software Foundation. + * + * eyeo Chromium SDK 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 eyeo Chromium SDK. If not, see . + */ + +package org.chromium.components.adblock.settings; + +import android.app.Activity; +import android.os.Bundle; + +import org.chromium.components.adblock.AdblockController; +import org.chromium.components.adblock.R; + +import java.util.List; + +public class AdblockCustomFiltersFragment extends AdblockCustomItemFragment { + public AdblockCustomFiltersFragment() {} + + @Override + public void onActivityCreated(Bundle savedInstanceState) { + super.onActivityCreated(savedInstanceState); + getActivity().setTitle(getString(R.string.fragment_adblock_more_options_custom_filters_title)); + } + + @Override + protected List getItems() { + return AdblockController.getInstance().getCustomFilters(); + } + + @Override + protected String getCustomItemTextViewText() { + return getString(R.string.fragment_adblock_more_options_custom_filters_title); + } + + @Override + protected String getCustomItemEditTextHint() { + return getString(R.string.fragment_adblock_more_options_custom_filters_hint); + } + + @Override + protected String getCustomItemTextViewContentDescription() { + return "Add custom filter text field"; + } + + @Override + protected String getCustomItemAddButtonContentDescription() { + return "Custom filter add button"; + } + + @Override + protected String getCustomItemRemoveButtonContentDescription() { + return "Custom filter remove button"; + } + + @Override + protected void addItemImpl(String value) { + AdblockController.getInstance().addCustomFilter(value); + } + + @Override + protected void removeItemImpl(String value) { + AdblockController.getInstance().removeCustomFilter(value); + } +} diff --git a/components/adblock/android/java/src/org/chromium/components/adblock/settings/AdblockCustomItemFragment.java b/components/adblock/android/java/src/org/chromium/components/adblock/settings/AdblockCustomItemFragment.java new file mode 100644 --- /dev/null +++ b/components/adblock/android/java/src/org/chromium/components/adblock/settings/AdblockCustomItemFragment.java @@ -0,0 +1,166 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH + * + * eyeo Chromium SDK is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 3 as + * published by the Free Software Foundation. + * + * eyeo Chromium SDK 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 eyeo Chromium SDK. If not, see . + */ + +package org.chromium.components.adblock.settings; + +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.BaseAdapter; +import android.widget.EditText; +import android.widget.ImageView; +import android.widget.ListView; +import android.widget.TextView; + +import androidx.preference.PreferenceFragmentCompat; + +import org.chromium.components.adblock.R; + +import java.util.ArrayList; +import java.util.List; + +public abstract class AdblockCustomItemFragment extends PreferenceFragmentCompat { + private EditText mItem; + private ImageView mAddButton; + private ListView mListView; + private Adapter mAdapter; + + public AdblockCustomItemFragment() {} + + @Override + public View onCreateView( + LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { + View rootView = inflater.inflate(R.layout.adblock_custom_item_settings, container, false); + TextView textView = rootView.findViewById(R.id.fragment_adblock_custom_item_text); + textView.setText(getCustomItemTextViewText()); + textView.setContentDescription(getCustomItemTextViewContentDescription()); + + bindControls(rootView); + + return rootView; + } + + @Override + public void onCreatePreferences(Bundle bundle, String key) {} + + @Override + public void onResume() { + super.onResume(); + initControls(); + } + + private void bindControls(View rootView) { + mItem = rootView.findViewById(R.id.fragment_adblock_custom_item_add_label); + mItem.setHint(getCustomItemEditTextHint()); + mAddButton = rootView.findViewById(R.id.fragment_adblock_custom_item_add_button); + mAddButton.setContentDescription(getCustomItemAddButtonContentDescription()); + mListView = rootView.findViewById(R.id.fragment_adblock_custom_item_listview); + } + + protected abstract void addItemImpl(String item); + protected abstract void removeItemImpl(String item); + protected abstract List getItems(); + protected abstract String getCustomItemTextViewText(); + protected abstract String getCustomItemTextViewContentDescription(); + protected abstract String getCustomItemAddButtonContentDescription(); + protected abstract String getCustomItemRemoveButtonContentDescription(); + protected abstract String getCustomItemEditTextHint(); + + // Holder for listview items + private class Holder { + TextView mItem; + ImageView mRemoveButton; + + Holder(View rootView) { + mItem = rootView.findViewById(R.id.fragment_adblock_custom_item_title); + mRemoveButton = rootView.findViewById(R.id.fragment_adblock_custom_item_remove); + mRemoveButton.setContentDescription( + AdblockCustomItemFragment.this.getCustomItemRemoveButtonContentDescription()); + } + } + + private View.OnClickListener removeItemClickListener = new View.OnClickListener() { + @Override + public void onClick(View v) { + String item = (String) v.getTag(); + removeItemImpl(item); + mAdapter.notifyDataSetChanged(); + } + }; + + private class Adapter extends BaseAdapter { + @Override + public int getCount() { + return AdblockCustomItemFragment.this.getItems().size(); + } + + @Override + public Object getItem(int position) { + return AdblockCustomItemFragment.this.getItems().get(position); + } + + @Override + public long getItemId(int position) { + return getItem(position).hashCode(); + } + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + if (convertView == null) { + LayoutInflater inflater = LayoutInflater.from(getActivity()); + convertView = inflater.inflate(R.layout.adblock_custom_item, parent, false); + convertView.setTag(new Holder(convertView)); + } + + String item = (String) getItem(position); + Holder holder = (Holder) convertView.getTag(); + holder.mItem.setText(item.toString()); + holder.mRemoveButton.setOnClickListener(removeItemClickListener); + holder.mRemoveButton.setTag(item.toString()); + + return convertView; + } + } + + private void initControls() { + mAddButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + String preparedItem = prepareItem(mItem.getText().toString()); + + if (preparedItem != null && preparedItem.length() > 0) { + addItem(preparedItem); + } + } + }); + + mAdapter = new Adapter(); + mListView.setAdapter(mAdapter); + } + + private String prepareItem(String item) { + return item.trim(); + } + + public void addItem(String newItem) { + addItemImpl(newItem); + mAdapter.notifyDataSetChanged(); + mItem.getText().clear(); + mItem.clearFocus(); + } +} diff --git a/components/adblock/android/java/src/org/chromium/components/adblock/settings/AdblockFilterListsAdapter.java b/components/adblock/android/java/src/org/chromium/components/adblock/settings/AdblockFilterListsAdapter.java new file mode 100644 --- /dev/null +++ b/components/adblock/android/java/src/org/chromium/components/adblock/settings/AdblockFilterListsAdapter.java @@ -0,0 +1,115 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH + * + * eyeo Chromium SDK is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 3 as + * published by the Free Software Foundation. + * + * eyeo Chromium SDK 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 eyeo Chromium SDK. If not, see . + */ + +package org.chromium.components.adblock.settings; + +import android.content.Context; +import android.view.LayoutInflater; +import android.view.View; +import android.view.View.OnClickListener; +import android.view.ViewGroup; +import android.widget.BaseAdapter; +import android.widget.CheckBox; +import android.widget.TextView; + +import org.chromium.components.adblock.AdblockController; +import org.chromium.components.adblock.R; +import org.chromium.components.browser_ui.settings.ChromeBaseCheckBoxPreference; + +import java.net.URL; +import java.util.ArrayList; +import java.util.List; + +public class AdblockFilterListsAdapter extends BaseAdapter implements OnClickListener { + private final LayoutInflater mLayoutInflater; + private final Context mContext; + private final AdblockController mController; + + public AdblockFilterListsAdapter(Context context, AdblockController controller) { + this.mContext = context; + mLayoutInflater = + (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); + this.mController = controller; + } + + public void start() { + notifyDataSetChanged(); + } + + // BaseAdapter: + + @Override + public int getCount() { + return mController.getRecommendedSubscriptions().size(); + } + + @Override + public Object getItem(int pos) { + return mController.getRecommendedSubscriptions().get(pos); + } + + @Override + public long getItemId(int position) { + return position; + } + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + View view = convertView; + if (convertView == null) { + view = mLayoutInflater.inflate(R.layout.adblock_filter_lists_list_item, null); + } + + AdblockController.Subscription item = (AdblockController.Subscription) getItem(position); + view.setOnClickListener(this); + view.setTag(item.url()); + + CheckBox checkBox = view.findViewById(R.id.checkbox); + final List subscriptions = + mController.getInstalledSubscriptions(); + boolean subscribed = false; + for (final AdblockController.Subscription subscription : subscriptions) { + if (subscription.url().equals(item.url())) { + subscribed = true; + break; + } + } + checkBox.setChecked(subscribed); + checkBox.setContentDescription(item.title() + "filer list item checkbox"); + + TextView description = view.findViewById(R.id.name); + description.setText(item.title()); + description.setContentDescription(item.title() + "filer list item title text"); + return view; + } + + @Override + public void onClick(View view) { + URL url = (URL) view.getTag(); + TextView description = view.findViewById(R.id.name); + String title = description.getText().toString(); + + CheckBox checkBox = view.findViewById(R.id.checkbox); + if (checkBox.isChecked()) { + mController.uninstallSubscription(url); + } else { + mController.installSubscription(url); + } + + notifyDataSetChanged(); + } +} diff --git a/components/adblock/android/java/src/org/chromium/components/adblock/settings/AdblockFilterListsFragment.java b/components/adblock/android/java/src/org/chromium/components/adblock/settings/AdblockFilterListsFragment.java new file mode 100644 --- /dev/null +++ b/components/adblock/android/java/src/org/chromium/components/adblock/settings/AdblockFilterListsFragment.java @@ -0,0 +1,54 @@ +/* + * This file is part of eyeo Chromium SDK, + * Copyright (C) 2006-present eyeo GmbH + * + * eyeo Chromium SDK is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 3 as + * published by the Free Software Foundation. + * + * eyeo Chromium SDK 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 eyeo Chromium SDK. If not, see . + */ + +package org.chromium.components.adblock.settings; + +import android.os.Bundle; +import android.view.View; +import android.widget.ListView; + +import androidx.fragment.app.ListFragment; + +import org.chromium.components.adblock.AdblockController; +import org.chromium.components.adblock.R; + +public class AdblockFilterListsFragment extends ListFragment { + private AdblockFilterListsAdapter mFilterListsAdapter; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + getActivity().setTitle(R.string.fragment_adblock_settings_filter_lists_title); + mFilterListsAdapter = + new AdblockFilterListsAdapter(getActivity(), AdblockController.getInstance()); + setListAdapter(mFilterListsAdapter); + } + + @Override + public void onViewCreated(View view, Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + ListView listView = getListView(); + listView.setDivider(null); + listView.setItemsCanFocus(true); + } + + @Override + public void onStart() { + super.onStart(); + mFilterListsAdapter.start(); + } +} diff --git a/components/adblock/android/java/src/org/chromium/components/adblock/settings/AdblockMoreOptionsFragment.java b/components/adblock/android/java/src/org/chromium/components/adblock/settings/AdblockMoreOptionsFragment.java new file mode 100644 --- /dev/null +++ b/components/adblock/android/java/src/org/chromium/components/adblock/settings/AdblockMoreOptionsFragment.java @@ -0,0 +1,34 @@ +// This file is part of eyeo Chromium SDK, +// Copyright (C) 2006-present eyeo GmbH +// eyeo Chromium SDK is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License version 3 as +// published by the Free Software Foundation. +// eyeo Chromium SDK 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 eyeo Chromium SDK. If not, see . + +package org.chromium.components.adblock.settings; + +import android.os.Bundle; + +import androidx.preference.PreferenceFragmentCompat; + +import org.chromium.components.adblock.R; + +public class AdblockMoreOptionsFragment extends PreferenceFragmentCompat { + public AdblockMoreOptionsFragment() {} + + @Override + public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { + addPreferencesFromResource(R.xml.adblock_more_options); + } + + @Override + public void onActivityCreated(Bundle savedInstanceState) { + super.onActivityCreated(savedInstanceState); + getActivity().setTitle(R.string.fragment_adblock_more_options_custom_filter_lists_title); + } +} diff --git a/components/adblock/android/java/src/org/chromium/components/adblock/settings/AdblockSettingsFragment.java b/components/adblock/android/java/src/org/chromium/components/adblock/settings/AdblockSettingsFragment.java new file mode 100644 --- /dev/null +++ b/components/adblock/android/java/src/org/chromium/components/adblock/settings/AdblockSettingsFragment.java @@ -0,0 +1,141 @@ +// This file is part of eyeo Chromium SDK, +// Copyright (C) 2006-present eyeo GmbH +// eyeo Chromium SDK is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License version 3 as +// published by the Free Software Foundation. +// eyeo Chromium SDK 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 eyeo Chromium SDK. If not, see . + +package org.chromium.components.adblock.settings; + +import android.os.Bundle; + +import androidx.preference.Preference; +import androidx.preference.PreferenceFragmentCompat; + +import org.chromium.build.BuildConfig; +import org.chromium.chrome.browser.preferences.Pref; +import org.chromium.chrome.browser.profiles.Profile; +import org.chromium.components.adblock.AdblockController; +import org.chromium.components.adblock.R; +import org.chromium.components.browser_ui.settings.ChromeSwitchPreference; +import org.chromium.components.user_prefs.UserPrefs; + +public class AdblockSettingsFragment + extends PreferenceFragmentCompat implements Preference.OnPreferenceChangeListener { + private ChromeSwitchPreference mAdblockEnabled; + private ChromeSwitchPreference mAcceptableAdsEnabled; + private Preference mFilterLists; + private Preference mAllowedDomains; + private Preference mMoreOptions; + + private static final String SETTINGS_ENABLED_KEY = "fragment_adblock_settings_enabled_key"; + private static final String SETTINGS_FILTER_LISTS_KEY = + "fragment_adblock_settings_filter_lists_key"; + private static final String SETTINGS_AA_ENABLED_KEY = + "fragment_adblock_settings_aa_enabled_key"; + private static final String SETTINGS_ALLOWED_DOMAINS_KEY = + "fragment_adblock_settings_allowed_domains_key"; + private static final String SETTINGS_MORE_OPTIONS_KEY = + "fragment_adblock_settings_more_options_key"; + + private int mOnOffClickCount; + private static final int ON_OFF_TOGGLE_COUNT_TO_ENABLE_MORE_OPTIONS = 10; + private static final int ON_OFF_TOGGLE_COUNT_TIME_WINDOW_MS = 3000; + private long mOnOffTogleTimestamp; + + private void bindPreferences() { + mAdblockEnabled = (ChromeSwitchPreference) findPreference(SETTINGS_ENABLED_KEY); + mFilterLists = findPreference(SETTINGS_FILTER_LISTS_KEY); + mAcceptableAdsEnabled = (ChromeSwitchPreference) findPreference(SETTINGS_AA_ENABLED_KEY); + mAllowedDomains = findPreference(SETTINGS_ALLOWED_DOMAINS_KEY); + mMoreOptions = findPreference(SETTINGS_MORE_OPTIONS_KEY); + } + + private boolean areMoreOptionsEnabled() { + return UserPrefs.get(Profile.getLastUsedRegularProfile()) + .getBoolean(Pref.ADBLOCK_MORE_OPTIONS_ENABLED); + } + + private void applyAdblockEnabled(boolean enabledValue) { + mFilterLists.setEnabled(enabledValue); + mAcceptableAdsEnabled.setEnabled(enabledValue); + mAllowedDomains.setEnabled(enabledValue); + mMoreOptions.setEnabled(enabledValue); + mMoreOptions.setVisible(areMoreOptionsEnabled()); + } + + private void synchronizePreferences() { + boolean enabled = AdblockController.getInstance().isEnabled(); + mAdblockEnabled.setChecked(enabled); + mAdblockEnabled.setOnPreferenceChangeListener(this); + applyAdblockEnabled(enabled); + + mAcceptableAdsEnabled.setChecked(AdblockController.getInstance().isAcceptableAdsEnabled()); + mAcceptableAdsEnabled.setOnPreferenceChangeListener(this); + } + + private void maybeEnableMoreOptions() { + long now = System.currentTimeMillis(); + /* Chromium does not have info about build type in its BuildConfig. + We'd have patch it and add - which sounds like an overkill for this + where ENABLE_ASSERTS is pretty close and equivalent unless DCHECKs are + always on. + enable_java_asserts = is_java_debug || dcheck_always_on */ + if (BuildConfig.ENABLE_ASSERTS + || mOnOffTogleTimestamp + ON_OFF_TOGGLE_COUNT_TIME_WINDOW_MS >= now) { + ++mOnOffClickCount; + } else { + mOnOffClickCount = 1; + } + + mOnOffTogleTimestamp = now; + if (mOnOffClickCount >= ON_OFF_TOGGLE_COUNT_TO_ENABLE_MORE_OPTIONS) { + UserPrefs.get(Profile.getLastUsedRegularProfile()) + .setBoolean(Pref.ADBLOCK_MORE_OPTIONS_ENABLED, true); + } + } + + public AdblockSettingsFragment() { + mOnOffClickCount = 0; + mOnOffTogleTimestamp = 0; + } + + @Override + public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { + addPreferencesFromResource(R.xml.adblock_preferences); + bindPreferences(); + synchronizePreferences(); + } + + @Override + public void onActivityCreated(Bundle savedInstanceState) { + super.onActivityCreated(savedInstanceState); + getActivity().setTitle(R.string.adblock_settings_title); + } + + @Override + public boolean onPreferenceChange(Preference preference, Object newValue) { + if (preference.getKey().equals(SETTINGS_ENABLED_KEY)) { + AdblockController.getInstance().setEnabled((Boolean) newValue); + + maybeEnableMoreOptions(); + + applyAdblockEnabled((Boolean) newValue); + } else { + assert preference.getKey().equals(SETTINGS_AA_ENABLED_KEY); + AdblockController.getInstance().setAcceptableAdsEnabled((Boolean) newValue); + } + return true; + } + + @Override + public void onResume() { + super.onResume(); + synchronizePreferences(); + } +} diff --git a/components/adblock/android/translations/adblock_strings_af.xtb b/components/adblock/android/translations/adblock_strings_af.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_af.xtb @@ -0,0 +1,4 @@ + + + + diff --git a/components/adblock/android/translations/adblock_strings_am.xtb b/components/adblock/android/translations/adblock_strings_am.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_am.xtb @@ -0,0 +1,13 @@ + + + +Ad blocking (አድ ብሎክ ፕላስ) የንግድ ማስታወቂያማገድ +ብዚሁ ድር ጣቢያ የንግድ ማስታወቂያ እንዲዘጋ ወይም እንዲታገድ አድርጉ። +የሚፈለገው ዝርዝ +የሚፈልጉትን ቋንቋ መጨመር ወይም ደግሞ ማንሳት(ማስወጣት) +የንግድ ማስታወቂያ መቀበል +እኛ የድር ጣቢያ በቀላሉ መጠቀም የሚችሉ የንግድ ማስታወቂያ እንዲጠቀሙ እና የሰው ሂወት ጣልቃ የማይገባ እንዲሆን ነው መታባባት እና መባራታት ነው የምንፈልግው። ለዚህ ነው እኛ በጣም ትብቅ የሆነ መምሪያ ተጠቅመን ተቀባይነት ያላቸው የንግድ ማስታወቂያ ብቻ ከማሳየት የምናስፈቅደው፡ ይህ ደግሞ በ default setting (ደፎልት ሰቲንግ) ይገኛል። የንግድ ማስታወቂያ የሌለው ድር ጣቢያ መከታተል ከፈለጋችሁ ደግሞ ይህ በ disable setting (ዲስኤብል ሰቲንግ) የሚለው ቦታ በሜሄድ መዝጋት ይቻላል። +Allowlisted domains (ዋይትሊስተድ ዶመይንስ) +ኣርስዎ የሚፈልጉት የንግድ ማስታወቂያ የሚያሳዩት የድር ጣቢያራስዎ መጨመር ይችላሉ። +Domain (ዱመይን) መጨመር ይችላሉ። + diff --git a/components/adblock/android/translations/adblock_strings_ar.xtb b/components/adblock/android/translations/adblock_strings_ar.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_ar.xtb @@ -0,0 +1,13 @@ + + + +حجب الإعلانات +السماح بحجب الإعلانات على المواقع الإلكترونية في هذا التطبيق +قوائم عوامل التصفية +إضافة اللغات التي تستعرض بها المواقع بشكل منتظم +الإعلانات المقبولة +الإعلانات المقبولة هي إعلانات غير مزعجة تتوافق مع معيار صارم للإعلانات. وتساعد هذه الإعلانات في توفير عائد مادي لمنشئي المحتوى في حين لا تتداخل مع المحتوى الذي تستعرضه. +القائمة المسموح بها +ادعم المواقع الإلكترونية المفضلة لديك بإضافتها إلى هذه القائمة. وفي حالة إضافتها، قد تشاهد إعلانات عليها +أدخل عنوان الموقع (URL) + diff --git a/components/adblock/android/translations/adblock_strings_as.xtb b/components/adblock/android/translations/adblock_strings_as.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_as.xtb @@ -0,0 +1,4 @@ + + + + diff --git a/components/adblock/android/translations/adblock_strings_az.xtb b/components/adblock/android/translations/adblock_strings_az.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_az.xtb @@ -0,0 +1,4 @@ + + + + diff --git a/components/adblock/android/translations/adblock_strings_be.xtb b/components/adblock/android/translations/adblock_strings_be.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_be.xtb @@ -0,0 +1,4 @@ + + + + diff --git a/components/adblock/android/translations/adblock_strings_bg.xtb b/components/adblock/android/translations/adblock_strings_bg.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_bg.xtb @@ -0,0 +1,16 @@ + + + +Блокиране на реклами +Разрешете блокиране на реклами на уебсайтове в това приложение +Списъци с филтри +Добави или премахни списъци с филтри за конкретни езици +Допустими реклами +Бихме искали да насърчим уебсайтовете да използват ясни, ненатрапчиви реклами. Затова създадохме стриктни правила за идентифициране на допустими реклами, които се показват в настройките по подразбиране. Ако искаш да преглеждаш, без да виждаш реклами, можеш да деактивираш тази настройка по всяко време. +Домейни, добавени в белия списък +Добави уебсайтове, на които искаш да виждаш реклами, към този списък +Добави домейн +Изпраща се до ... +Изчиств. и на данните от тези сайтове и прил.? +Изключване + diff --git a/components/adblock/android/translations/adblock_strings_bn.xtb b/components/adblock/android/translations/adblock_strings_bn.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_bn.xtb @@ -0,0 +1,13 @@ + + + +Ad blocking +ওয়েবসাইটগুলোতে বিজ্ঞাপন ব্লক করার জন্য এই অ্যাপকে অনুমতি দিন +ফিল্টার তালিকা +ভাষা যুক্ত করুন বা সরান- নির্দিষ্ট ফিল্টার তালিকা +গ্রহণযোগ্য বিজ্ঞাপনগুলি +আমরা সহজবোধ্য, অ-ছদ্মবেশী বিজ্ঞাপনগুলি ব্যবহার করতে ওয়েবসাইটগুলিকে উত্সাহিত করতে চাই। সেই কারণে আমরা গ্রহণযোগ্য বিজ্ঞাপনগুলি চিহ্নিত করতে কঠোর নির্দেশাবলী স্থাপন করেছি, যা ডিফল্ট সেটিংসে দেখানো হয়েছে। যদি আপনি বিজ্ঞাপন মুক্ত ভাবে ব্রাউজ করতে চান, তবে আপনি এই সেটিংটি যেকোনো সময়ে অক্ষম করতে পারেন। +পরিচ্ছন্ন তলিকাভুক্ত ডোমেইনগুলি +এই তালিকায় সেই ওয়েবসাইটগুলি যোগ করুন যাতে বিজ্ঞাপন দেখতে চান +ডোমেন যোগ করুন + diff --git a/components/adblock/android/translations/adblock_strings_bs.xtb b/components/adblock/android/translations/adblock_strings_bs.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_bs.xtb @@ -0,0 +1,13 @@ + + + +Ad blocking +Dozvolite blokiranje oglasa na web lokacijama u ovoj aplikaciji +Filtriraj liste +Dodaj ili ukloni liste filtera specifičnih za jezik +Prihvatljive reklame +Željeli bismo podstaknuti webstranice da koriste jasno, nenametljivo reklamiranje. Zato smo utvrdili stroge smjernice kako bismo identificirali prihvatljive reklame, koje se mogu vidjeti pod podrazumijevanim postavkama. Ako želite pretraživati bez oglasa, ovu postavku možete onemogućiti bilo kad. +Lista dopuštenih domena +Na ovaj popis dodajte webstranice sa kojih želite vidjeti oglase +ডDodaj domen + diff --git a/components/adblock/android/translations/adblock_strings_ca.xtb b/components/adblock/android/translations/adblock_strings_ca.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_ca.xtb @@ -0,0 +1,13 @@ + + + +Ad blocking +Permet el bloqueig d\'anuncis en llocs web en aquesta aplicació +Llistes de filtres +Afegiu o suprimiu llistes de filtres específics per idioma +Anuncis acceptables +Instem als llocs web a que facin servir publicitat directa i no intrusiva. Per això hem establert directius estrictes per identificar els anuncis acceptables, que podeu trobar a la configuració predeterminada. Si voleu navegar sense anuncis, podeu desactivar aquesta configuració en qualsevol moment. +Llista blanca de dominis +Afegiu a aquesta llista tots els llocs web en què voleu veure anuncis +Afegeix un domini + diff --git a/components/adblock/android/translations/adblock_strings_cs.xtb b/components/adblock/android/translations/adblock_strings_cs.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_cs.xtb @@ -0,0 +1,13 @@ + + + +Ad blocking +Povolit v této aplikaci blokování reklam na webových stránkách +Přehledy filtrů +Přidávání nebo odebírání seznamů filtrů pro konkrétní jazyk +Nerušivé reklamy +Rádi bychom podpořili webové stránky, aby používaly přímočaré, nerušivé reklamy. Z tohoto důvodu jsme vytvořili přísné směrnice pro identifikaci „přijatelných reklam“, které se zobrazují ve výchozím nastavení. Pokud chcete surfovat bez reklam, můžete toto nastavení kdykoliv zakázat. +Seznam povolených domén +Na tento seznam lze přidávat webové stránky, na kterých chcete vidět reklamy +Přidat doménu + diff --git a/components/adblock/android/translations/adblock_strings_da.xtb b/components/adblock/android/translations/adblock_strings_da.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_da.xtb @@ -0,0 +1,13 @@ + + + +Ad blocking +Tillad blokering af reklamer på hjemmesider i denne app +Filterlister +Tilføj eller fjern sprogspecifikke filterlister +Acceptable Ads +Vi vil gerne opfordre hjemmesider til at bruge ukomplicerede reklamer og reklamer, der ikke er påtrængende. Det er grunden til, at vi har lavet strenge retningslinjer, der skal identificere Acceptable Ads. Disse kan ses under standardindstillinger. Hvis du ønsker at browse internettet uden reklamer, kan du til enhver tid slå denne indstilling fra. +Domæner på positivlisten +Tilføj hjemmesider, du ønsker at se reklamer på, til denne liste +Tilføj domæne + diff --git a/components/adblock/android/translations/adblock_strings_de.xtb b/components/adblock/android/translations/adblock_strings_de.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_de.xtb @@ -0,0 +1,13 @@ + + + +Adblocking +Werbeblockierung auf Websites in dieser App zulassen +Filterlisten +Füge die Sprachen hinzu, in denen du regelmäßig Webseiten besuchst. +Acceptable Ads +Acceptable Ads sind unaufdringliche Werbeanzeigen gemäß strikter Normen. Sie helfen Urhebern dabei, Einnahmen zu generieren und stören nicht beim Anschauen der Inhalte. Standardmäßig sind Acceptable Ads aktiviert, aber du kannst sie jederzeit in den Einstellungen deaktivieren. +Allowlist +Unterstütze deine liebsten Webseiten und füge sie zu dieser Liste hinzu, um bei deren Besuch Werbung zuzulassen. +URL hinzufügen + diff --git a/components/adblock/android/translations/adblock_strings_el.xtb b/components/adblock/android/translations/adblock_strings_el.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_el.xtb @@ -0,0 +1,13 @@ + + + +Φραγή διαφημίσεων +Να επιτρέπεται ο αποκλεισμός διαφημίσεων στους ιστοτόπους σε αυτή την εφαρμογή +Λίστες φίλτρων +Προσθέστε τις γλώσσες στις οποίες κάνετε συχνότερα περιήγηση +Αποδεκτές Διαφημίσεις +Αποδεκτές διαφημίσεις είναι οι διαφημίσεις που δεν είναι ενοχλητικές και τηρούν αυστηρά πρότυπα. Βοηθούν τους δημιουργούς περιεχομένου να έχουν έσοδα και να μην παρεμβαίνουν στο περιεχόμενο που βλέπετε. Αυτή η λειτουργία είναι προεπιλογμένη, αλλά μπορείτε να την απενεργοποιήσετε ανά πάσα στιγμή. +Αποδοχή λίστας +Υποστηρίξτε τους αγαπημένους σας ιστοτόπους και προσθέστε τους σε αυτή τη λίστα. Μπορεί να δείτε διαφημίσεις στους ιστοτόπους αυτούς. +Εισάγετε διεύθυνση URL + diff --git a/components/adblock/android/translations/adblock_strings_en-GB.xtb b/components/adblock/android/translations/adblock_strings_en-GB.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_en-GB.xtb @@ -0,0 +1,13 @@ + + + +Ad blocking +Allow ad blocking on websites in this app +Filter lists +Add the languages in which you regularly browse websites in +Acceptable Ads +Acceptable ads are non-annoying ads that comply with a strict ad standard. They help generate revenue for content creators and do not interfere with the content you are viewing. This feature is turned on by default, but you can turn it off at any time. +Allowlist +Support your favorite websites by adding them to this list. You might see ads on them. +Enter URL + diff --git a/components/adblock/android/translations/adblock_strings_es-419.xtb b/components/adblock/android/translations/adblock_strings_es-419.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_es-419.xtb @@ -0,0 +1,13 @@ + + + +Bloqueo de anuncios +Permitir que esta aplicación bloquee anuncios en sitios web +Listas de filtros +Añadir los idiomas en los que normalmente visitas los sitios web +Anuncios Aceptables +Los anuncios aceptables son anuncios que no molestan y que cumplen con un estándar de anuncios estricto. Ayudan a que los creadores de contenido generen ingresos y no interfieren con el contenido que estás viendo. +Lista de elementos permitidos +Ayuda a tus sitios favoritos añadiéndolos a esta lista. Al hacerlo, puede que veas anuncios en ellos. +Introducir URL + diff --git a/components/adblock/android/translations/adblock_strings_es.xtb b/components/adblock/android/translations/adblock_strings_es.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_es.xtb @@ -0,0 +1,13 @@ + + + +Bloqueo de anuncios +Permitir que esta aplicación bloquee anuncios en sitios web +Listas de filtros +Añadir los idiomas en los que normalmente visitas los sitios web +Anuncios Aceptables +Los anuncios aceptables son anuncios que no molestan y que cumplen con un estándar de anuncios estricto. Ayudan a que los creadores de contenido generen ingresos y no interfieren con el contenido que estás viendo. +Lista de elementos permitidos +Ayuda a tus sitios favoritos añadiéndolos a esta lista. Al hacerlo, puede que veas anuncios en ellos. +Introducir URL + diff --git a/components/adblock/android/translations/adblock_strings_et.xtb b/components/adblock/android/translations/adblock_strings_et.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_et.xtb @@ -0,0 +1,13 @@ + + + +Ad blocking +Luba selles rakenduses veebisaitidel reklaamide blokeerimine +Filtriloendid +Keelepõhiste filtriloendite lisamine või eemaldamine +Lubatavad reklaamid +Soovime, et veebisaidid kasutaksid otsekoheseid, mitte pealetükkivaid reklaame. Seepärast oleme kehtestanud ranged suunised lubatavate reklaamide tuvastamiseks. Need on näha vaikesätete all. Kui soovite sirvida täiesti reklaamivabalt, võite selle sätte igal ajal välja lülitada. +Lubatud domeenide loend +Lisage sellesse loendisse veebisaidid, kus soovite reklaame näha +Lisa domeenid + diff --git a/components/adblock/android/translations/adblock_strings_eu.xtb b/components/adblock/android/translations/adblock_strings_eu.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_eu.xtb @@ -0,0 +1,4 @@ + + + + diff --git a/components/adblock/android/translations/adblock_strings_fa.xtb b/components/adblock/android/translations/adblock_strings_fa.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_fa.xtb @@ -0,0 +1,13 @@ + + + +Ad blocking +فعالسازی بلوکه کردن نمایش تبلیغات دروب سایت ها دراین نرم افزار +لیست +افزودن یا حذف لیست +تبلیغات قابل قبول +ما در نظر داریم وب +دامنه +وب +افزودن دامنه + diff --git a/components/adblock/android/translations/adblock_strings_fi.xtb b/components/adblock/android/translations/adblock_strings_fi.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_fi.xtb @@ -0,0 +1,13 @@ + + + +Ad blocking +Salli mainosten esto verkkosivustoilla tässä sovelluksessa +Suodatinluettelot +Lisää tai poista kielikohtaiset suodatinluettelot +Hyväksyttävät mainokset +Haluamme kannustaa verkkosivustoja käyttämään yksinkertaista, tunkeilematonta mainontaa. Siksi olemme luoneet tiukat ohjeet hyväksyttävien mainosten tunnistamiseksi, jotka näytetään oletusasetuksissa. Jos haluat selata ilman mainoksia, voit ottaa tämän asetuksen pois käytöstä milloin tahansa. +Sallittujen toimialueiden luettelo +Lisää tähän luetteloon verkkosivustot, joilla haluat nähdä mainoksia +Lisää toimialue + diff --git a/components/adblock/android/translations/adblock_strings_fil.xtb b/components/adblock/android/translations/adblock_strings_fil.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_fil.xtb @@ -0,0 +1,13 @@ + + + +Ad blocking +Salli mainosten esto verkkosivustoilla tässä sovelluksessa +I-filter ang listahan +Idagdag o alisin ang mga listahan ng filter para sa tiyak na wika +Mga Katanggap-tanggap na Ad +Nais naming hikayatin ang mga website na gumamit ng tapat at di mapanghimasok na pag-aadvertize. Kaya nagtaguyod kami ng mahigpit na panuntunan upang kilalanin ang mga Katanggap-tanggap na Ad na ipinapakita sa ilalim ng default settings. Kung nais mong mag-browse nang walang ad, maaari mong i-disable ang setting na ito anumang oras. +Mga allowlisted na domain +Magdagdag ng mga website na gusto mong makitaan ng mga ad sa listahang ito +Magdagdag ng domain + diff --git a/components/adblock/android/translations/adblock_strings_fr-CA.xtb b/components/adblock/android/translations/adblock_strings_fr-CA.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_fr-CA.xtb @@ -0,0 +1,13 @@ + + + +Ad blocking +Autorisez le blocage de publicités sur les sites Internet dans cette application +Listes de filtres +Ajoutez les langues des sites Internet sur lesquels vous naviguez régulièrement +Publicité Acceptable +Les publicités acceptables sont des publicités non agaçantes, qui sont soumises à des normes strictes. Elles contribuent à générer des revenus pour les créateurs de contenu et ne constituent pas une entrave au contenu que vous affichez. +Liste des sites acceptables +Soutenez vos sites Internet préférés en les ajoutant à cette liste. Vous y verrez peut-être des publicités. +Entrez l'URL + diff --git a/components/adblock/android/translations/adblock_strings_fr.xtb b/components/adblock/android/translations/adblock_strings_fr.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_fr.xtb @@ -0,0 +1,13 @@ + + + +Blocage des publicités +Autorisez le blocage de publicités sur les sites Internet dans cette application +Listes de filtres +Ajoutez les langues des sites Internet sur lesquels vous naviguez régulièrement +Publicité Acceptable +Les publicités acceptables sont des publicités non agaçantes, qui sont soumises à des normes strictes. Elles contribuent à générer des revenus pour les créateurs de contenu et ne constituent pas une entrave au contenu que vous affichez. +Liste des sites acceptables +Soutenez vos sites Internet préférés en les ajoutant à cette liste. Vous y verrez peut-être des publicités. +Entrez l'URL + diff --git a/components/adblock/android/translations/adblock_strings_gl.xtb b/components/adblock/android/translations/adblock_strings_gl.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_gl.xtb @@ -0,0 +1,4 @@ + + + + diff --git a/components/adblock/android/translations/adblock_strings_gu.xtb b/components/adblock/android/translations/adblock_strings_gu.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_gu.xtb @@ -0,0 +1,4 @@ + + + + diff --git a/components/adblock/android/translations/adblock_strings_hi.xtb b/components/adblock/android/translations/adblock_strings_hi.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_hi.xtb @@ -0,0 +1,13 @@ + + + +Ad blocking +इस ऐप में वेबसाइट्स पर विज्ञापन ब्लॉक करने की अनुमति दें +फ़िल्टर सूचियां +भाषा विशिष्ठ फ़िल्टर सूचियों को जोड़ें या हटाएं +स्वीकार्य विज्ञापन +हम वेबसाइटों को सीधी, नॉनइंट्रूसिव विज्ञापन का उपयोग करने के लिए प्रोत्साहित करना चाहेंगे। इसलिए हम ने स्वीकार्य विज्ञापनों के लिए कठोर निर्देश तैयार किये है, जो डिफ़ॉल्ट सेटिंग के अंतर्गत दिखाए जायेंगे। यदि आप विज्ञापन-मुक्त ब्राउज़ करना चाहते हैं, तो आप इस सेटिंग को किसी भी समय अक्षम कर सकते हैं। +श्वेतसूची वाले डोमेन +उन वेबसाइट्स को जोड़ें, जिन्हें आप इस सूची में विज्ञापन देखना चाहते हैं +डोमेन जोड़ें + diff --git a/components/adblock/android/translations/adblock_strings_hr.xtb b/components/adblock/android/translations/adblock_strings_hr.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_hr.xtb @@ -0,0 +1,13 @@ + + + +Ad blocking +Dopustite blokiranje oglasa na mrežnim mjestima u ovoj aplikaciji +Filtriraj popise +Dodaj ili ukloni popise filtara za određeni jezik +Prihvatljive reklame +Željeli bismo potaknuti web-mjesta na korištenje izravnog, nenametljivog reklamiranja. Zato smo utvrdili stroge smjernice za identificiranje Prihvatljivih reklama, koje se vide pod zadanim postavkama. Ako želite pregledati bez reklama, ovu postavku možete onemogućiti kad god želite. +Popis dopuštenih domena +Na ovaj popis dodajte web-mjesta s kojih želite vidjeti reklame +Dodaj domen + diff --git a/components/adblock/android/translations/adblock_strings_hu.xtb b/components/adblock/android/translations/adblock_strings_hu.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_hu.xtb @@ -0,0 +1,13 @@ + + + +Reklámok blokkolása +Reklámblokkolás engedélyezése webhelyeken ezen alkalmazásban +Filter listák +Adja hozzá azokat a nyelveket, amelyekben általában a weboldalak böngészését végzi. +Elfogadható hirdetések +Az elfogadható hirdetések olyan nem bosszantó hirdetések, amelyek szigorú hirdetési szabályoknak felelnek meg. Segítenek a tartalomkészítők bevételeinek generálásában, és nem zavarják a tartalmak megtekintését. Alapértelmezésként be van kapcsolva ezen funkció, de ez bármikor kikapcsolható. +Engedélyezőlista +Támogassa kedvenc weboldalait e listához történő hozzáadással. Előfordulhat, hogy hirdetéseket is láthat rajtuk. +URL-cím megadása + diff --git a/components/adblock/android/translations/adblock_strings_hy.xtb b/components/adblock/android/translations/adblock_strings_hy.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_hy.xtb @@ -0,0 +1,4 @@ + + + + diff --git a/components/adblock/android/translations/adblock_strings_id.xtb b/components/adblock/android/translations/adblock_strings_id.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_id.xtb @@ -0,0 +1,13 @@ + + + +Ad blocking +Izinkan pemblokiran iklan pada situs web dalam aplikasi ini +Daftar filter +Tambah atau hapus daftar filter dalam bahasa tertentu +Iklan yang Bisa Diterima +Kami ingin mendorong agar semua situs web menggunakan metode periklanan yang bersifat sederhana dan nonintrusif. Itulah sebabnya mengapa kami menetapkan pedoman yang ketat dalam mengidentifikasi Iklan yang Bisa Diterima, yang ditunjukkan dalam pengaturan default kami. Jika Anda ingin menjelajah internet tanpa melihat iklan apa pun, Anda bisa menonaktifkan pengaturan ini kapan saja. +Domain yang masuk dalam daftar putih +Tambah situs web yang ingin Anda lihat iklan di dalamnya ke daftar ini +Tambah domain + diff --git a/components/adblock/android/translations/adblock_strings_is.xtb b/components/adblock/android/translations/adblock_strings_is.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_is.xtb @@ -0,0 +1,4 @@ + + + + diff --git a/components/adblock/android/translations/adblock_strings_it.xtb b/components/adblock/android/translations/adblock_strings_it.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_it.xtb @@ -0,0 +1,13 @@ + + + +Blocco degli annunci +Abilita il blocco pubblicità sui siti Web +Elenchi di filtri +Aggiungi le lingue dei siti web che visiti regolarmente +Pubblicità Accettabili +Le pubblicità accettabili sono annunci non fastidiosi che rispettano un rigoroso standard pubblicitario. Aiutano a generare entrate per i creatori di contenuti e non interferiscono con i contenuti che si stanno visualizzando. +Elenco consentiti +Sostieni i tuoi siti web preferiti aggiungendoli a questo elenco. È possibile che su questi siti web appaiano delle pubblicità. +Inserisci URL + diff --git a/components/adblock/android/translations/adblock_strings_iw.xtb b/components/adblock/android/translations/adblock_strings_iw.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_iw.xtb @@ -0,0 +1,13 @@ + + + +Ad blocking +אפשר חסימת התראות באתרים באפליקציה זאת +רשימות סינון +הוסף או הסר רשימות סינון ספציפיות לשפה +פרסומות מקובלות +אנחנו רוצים לעודד אתרים בפרסום ישיר ושאינו מפריע. לכן ביססנו קווים מנחים נוקשים לזיהוי פרסומות מקובלות, שמוצגות בהגדרות ברירת מחדל. אם תרצו לגלוש ללא פרסומות כלל, תוכלו לבטל הגדרה זו בכל עת. +דומיינים ברשימה הלבנה +לרשימה הזו הוסף אתרים שבהם תרצה לראות פרסומות +הוסף דומיין + diff --git a/components/adblock/android/translations/adblock_strings_ja.xtb b/components/adblock/android/translations/adblock_strings_ja.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_ja.xtb @@ -0,0 +1,13 @@ + + + +広告ブロック +このアプリで、ウェブサイトの広告ブロックを許可する +フィルターリスト +通常ウェブサイトをご覧になる際の言語を追加してください +控えめな広告 +控えめな広告とは、厳格な広告基準を遵守する邪魔にならない広告のことです。これらの広告はコンテンツ作成者の収入源となるとともに、ご覧になっているコンテンツに干渉しないようになっています。この機能はデフォルトで ON になっていますが、いつでも OFF にすることができます。 +許可リスト +このリストにお気に入りのウェブサイトを追加して支援しましょう。広告が表示される場合があります。 +URL を入力してください + diff --git a/components/adblock/android/translations/adblock_strings_ka.xtb b/components/adblock/android/translations/adblock_strings_ka.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_ka.xtb @@ -0,0 +1,4 @@ + + + + diff --git a/components/adblock/android/translations/adblock_strings_kk.xtb b/components/adblock/android/translations/adblock_strings_kk.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_kk.xtb @@ -0,0 +1,13 @@ + + + +Ad blocking +Осы қолданбадағы веб-сайттарға жарнамаларға тыйым салуға рұқсат ету +Сүзгі тізімдері +Тілге тән сүзгі тізімдерін қосу немесе жою +Қабылданатын жарнамалар +Веб-сайттарда тікелей емес, жалықтырмайтын жарнама пайдалануды қалаймыз. Сол себепті, әдепкі параметрлер астында көрсетілген қабылданатын жарнамаларды анықтау бойынша қатаң нұсқаулықтарды орнату керек. Егер тегін жарнаманы шолуды қаласаңыз, осы параметрді кез келген уақытта өшіре аласыз. +Ақ тізімге енген домендер +Осы тізімге жарнамалар көруді қалайтын веб-сайттарды қосу +Домен қосу + diff --git a/components/adblock/android/translations/adblock_strings_km.xtb b/components/adblock/android/translations/adblock_strings_km.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_km.xtb @@ -0,0 +1,13 @@ + + + +Ad blocking +អនុញ្ញាតការទប់ស្កាត់ការផ្សាយពាណិជ្ជកម្មនៅលើគេហទំព័រក្នុងកម្មវិធីនេះ +បញ្ជីតម្រង +បន្ថែម ឬដកបញ្ជីតម្រង +ការផ្សាយពាណិជ្ជកម្ម +យើងចង់ +ដូមែន +បន្ថែម +បន្ថែមដូមែន + diff --git a/components/adblock/android/translations/adblock_strings_kn.xtb b/components/adblock/android/translations/adblock_strings_kn.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_kn.xtb @@ -0,0 +1,4 @@ + + + + diff --git a/components/adblock/android/translations/adblock_strings_ko.xtb b/components/adblock/android/translations/adblock_strings_ko.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_ko.xtb @@ -0,0 +1,13 @@ + + + +광고 차단 +이 앱에서 웹사이트 광고 차단을 허용합니다 +필터 목록 +웹사이트 탐색 시 자주 사용하는 언어를 추가합니다 +허용되는 광고 +허용되는 광고란 엄격한 광고 기준을 준수하는 성가시지 않은 광고입니다. 콘텐츠 크리에이터의 수익 창출에 도움이 되며 표시 중인 콘텐츠를 방해하지 않습니다. 이 기능은 기본 설정에서 켜짐 상태이지만 언제든지 끌 수 있습니다. +허용 목록 +이 목록에 즐겨 찾는 웹 사이트를 추가하여 지원할 수 있습니다. 광고가 표시될 수 있습니다. +URL 입력 + diff --git a/components/adblock/android/translations/adblock_strings_ky.xtb b/components/adblock/android/translations/adblock_strings_ky.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_ky.xtb @@ -0,0 +1,4 @@ + + + + diff --git a/components/adblock/android/translations/adblock_strings_lo.xtb b/components/adblock/android/translations/adblock_strings_lo.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_lo.xtb @@ -0,0 +1,4 @@ + + + + diff --git a/components/adblock/android/translations/adblock_strings_lt.xtb b/components/adblock/android/translations/adblock_strings_lt.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_lt.xtb @@ -0,0 +1,13 @@ + + + +Ad blocking +Leisti šioje programėlėje blokuoti svetainių reklamas +Filtrų sąrašas +Pridėti arba pašalinti konkrečių kalbų filtrų sąrašus +Priimtini skelbimai +Norėtume svetaines paskatinti naudoti aiškias, neintervencines reklamas. Tam sudarėme griežtas Priimtinų skelbimų, kurie rodomi esant numatytiesiems nustatymams, identifikavimo gaires. Jei naršydami norite nematyti skelbimų, šį nustatymą galite bet kada išjungti. +Į baltąjį sąrašą įtraukti domenai +Į šį sąrašą pridėkite svetaines, kurių skelbimus norite matyti +Pridėti domeną + diff --git a/components/adblock/android/translations/adblock_strings_lv.xtb b/components/adblock/android/translations/adblock_strings_lv.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_lv.xtb @@ -0,0 +1,13 @@ + + + +Ad blocking +Atļaut reklāmu bloķēšanu tīmekļa vietnēs šajā programmā +Filtru saraksti +Pievienojiet vai noņemiet valodai raksturīgos filtru sarakstus +Pieņemamās reklāmas +Mēs vēlamies mudināt tīmekļa vietnes izmantot vienkāršas, neuzmācīgas reklāmas. Tādēļ mēs esam izveidota stingras vadlīnijas, lai atpazītu pieņemamās reklāmas, kas tiek parādītas, kad ir aktīvi noklusējuma iestatījumi. Ja vēlaties pārlūkot bez reklāmām, varat atslēgt šo iestatījumu jebkurā laikā. +Baltajā sarakstā iekļautie domēni +Pievienojiet šim sarakstam tīmekļa vietnes, kurās vēlaties redzēt reklāmas +Pievienot domēnu + diff --git a/components/adblock/android/translations/adblock_strings_mk.xtb b/components/adblock/android/translations/adblock_strings_mk.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_mk.xtb @@ -0,0 +1,13 @@ + + + +Ad blocking +Дозволи блокирање реклами на веб-локации во оваа апликација +Листи на филтри +Додај или отстрани листи на филтри специфични за јазикот +Прифатливи реклами +Би сакале да ги охрабриме веб сајтовите да се служат со едноставно, ненаметливо рекламирање. Затоа воспоставивме строги упатства за идентификација на Прифатливите реклами, што се наоѓаат под стандардните поставки. Ако сакаш да прелистуваш без реклами, во секое време може да ја оневозможиш оваа поставка. +Домени на бела листа +На оваа листа додај веб сајтови на коишто сакаш да видиш реклами +Додај домен + diff --git a/components/adblock/android/translations/adblock_strings_ml.xtb b/components/adblock/android/translations/adblock_strings_ml.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_ml.xtb @@ -0,0 +1,4 @@ + + + + diff --git a/components/adblock/android/translations/adblock_strings_mn.xtb b/components/adblock/android/translations/adblock_strings_mn.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_mn.xtb @@ -0,0 +1,4 @@ + + + + diff --git a/components/adblock/android/translations/adblock_strings_mr.xtb b/components/adblock/android/translations/adblock_strings_mr.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_mr.xtb @@ -0,0 +1,4 @@ + + + + diff --git a/components/adblock/android/translations/adblock_strings_ms.xtb b/components/adblock/android/translations/adblock_strings_ms.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_ms.xtb @@ -0,0 +1,13 @@ + + + +Ad blocking +Benarkan penyekat iklan pada tapak web dalam apl ini +Senarai penapis +Tambah atau buang senarai penapis bahasa tertentu +Iklan yang boleh diterima +Kami ingin menggalakkan lama web untuk menggunakan pengiklanan yang jujur dan tidak mengganggu. Itulah sebabnya kami menubuhkan garis panduan ketat untuk mengenal pasti Iklan Boleh Diterima, yang dipaparkan di bawah tetapan lalai. Jika anda ingin melayari bebas iklan, anda boleh menyahdaya tetapan ini pada bila-bila masa. +Domain disenarai putih +Tambah laman web yang anda ingin lihat iklan pada senarai ini +Tambaha domain + diff --git a/components/adblock/android/translations/adblock_strings_my.xtb b/components/adblock/android/translations/adblock_strings_my.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_my.xtb @@ -0,0 +1,13 @@ + + + +Ad blocking +ဤအက္(ပ္)တြင္ ဝဘ္ဆိုုဒ္မ်ား ၾကည့္ရႈခ်ိန္၌ ေၾကာ္ျငာမ်ားထြက္ေပၚလာျခင္းကိုု ပိတ္ဆိုု႔ရန္အတြက္ ခြင့္ျပဳသည္ +စစ္ထုတ္ထားသည့္စာရင္းမ်ား +ဘာသာရပ္ဆိုင္ရာစစ္ထုတ္စာရင္းမ်ားကိုထည့္ပါ သို႔မဟုတ္ ဖယ္ထုတ္ပါ +လက္ခံႏုိင္ေသာေၾကာ္ျငာမ်ား +ေျဖာင့္မွန္ေသာ၊ အစြန္းထြက္ျခင္းမရွိေသာ ေၾကာ္ျငာကိုအသံုးျပဳရန္ ကၽြႏု္ပ္တို႔ ဝဘ္ဆိုက္ကို တိုက္တြန္းလိုပါသည္။ ပံုေသဆက္တင္မ်ားေအာက္တြင္ ေဖာ္ျပထားသည့္ လက္ခံႏုိင္သည့္ ေၾကာ္ျငာမ်ားကို ေဖာ္ျပရန္ တင္းက်ပ္သည့္လမ္းညႊန္ခ်က္မ်ားကို ထို႔အတြက္ေၾကာင့္ ကၽြႏု္ပ္တုိ႔ ခ်မွတ္ထားသည္။ ေၾကာ္ျငာမပါျခင္းကိုရွာေဖြလိုသည့္အခါ သင္သည္ ထုိဆက္တင္ကို မည္သည့္အခ်ိန္တြင္မဆို ပိတ္ထားႏုိင္သည္။ +အတည္ျပဳထားသည့္ ဒိုမိန္းမ်ား +ဤစာရင္းတြင္ ေၾကာ္ျငာမ်ားကိုျမင္ခ်င္သည့္ ဝဘ္ဆိုက္မ်ားကိုထည့္သြင္းပါ +ডဒိုမိန္းကိုထည့္ပါ + diff --git a/components/adblock/android/translations/adblock_strings_ne.xtb b/components/adblock/android/translations/adblock_strings_ne.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_ne.xtb @@ -0,0 +1,4 @@ + + + + diff --git a/components/adblock/android/translations/adblock_strings_nl.xtb b/components/adblock/android/translations/adblock_strings_nl.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_nl.xtb @@ -0,0 +1,13 @@ + + + +Advertentieblokkering +In deze app advertentieblokkering op websites toestaan +Filterlijsten +Voeg de talen toe waarin u regelmatig websites bezoekt +Acceptabele advertenties +Acceptabele advertenties zijn niet-irritante advertenties die voldoen aan een strenge advertentie standaard. Ze dragen bij tot het genereren van inkomsten voor contentmakers en komen niet in de weg van de inhoud die u bekijkt. Deze optie staat standaard aan, maar u kan het elk moment uitschakelen. +Toelatingslijst +Ondersteun uw favoriete websites door ze aan deze lijst toe te voegen. Er kunnen advertenties op worden weergegeven. +Voer URL in + diff --git a/components/adblock/android/translations/adblock_strings_no.xtb b/components/adblock/android/translations/adblock_strings_no.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_no.xtb @@ -0,0 +1,4 @@ + + + + diff --git a/components/adblock/android/translations/adblock_strings_or.xtb b/components/adblock/android/translations/adblock_strings_or.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_or.xtb @@ -0,0 +1,4 @@ + + + + diff --git a/components/adblock/android/translations/adblock_strings_pa.xtb b/components/adblock/android/translations/adblock_strings_pa.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_pa.xtb @@ -0,0 +1,4 @@ + + + + diff --git a/components/adblock/android/translations/adblock_strings_pl.xtb b/components/adblock/android/translations/adblock_strings_pl.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_pl.xtb @@ -0,0 +1,13 @@ + + + +Blokowanie reklam +Zezwalaj na blokowanie reklam na witrynach w tej aplikacji +Listy filtrów +Dodaj języki, w których najczęściej przeglądasz strony internetowe +Akceptowalne reklamy +Akceptowalne reklamy to reklamy nieirytujące, które podlegają rygorystycznym normom tworzenia reklam. Pomagają one generować dochód dla twórców, a Tobie nie przeszkadzają w oglądaniu treści stron. +Lista dozwolonych +Wspieraj swoje ulubione witryny, dodając je do tej listy. Reklamy będą na nich wyświetlane. +Wprowadź URL + diff --git a/components/adblock/android/translations/adblock_strings_pt-BR.xtb b/components/adblock/android/translations/adblock_strings_pt-BR.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_pt-BR.xtb @@ -0,0 +1,13 @@ + + + +Bloqueio de anúncios +Permitir o bloqueio de anúncios em páginas web neste app +Listas de filtros +Adicione os idiomas nos quais normalmente você navega nos sites +Anúncios Aceitáveis +Anúncios aceitáveis são anúncios não irritantes que atendem a um rígido padrão. Eles ajudam a gerar receita para criadores de conteúdo e não interferem no conteúdo que você exibe. +Lista de permissões +Para apoiar os seus sites favoritos, adicione-os a essa lista. Você poderá ver anúncios neles. +Inserir URL + diff --git a/components/adblock/android/translations/adblock_strings_pt-PT.xtb b/components/adblock/android/translations/adblock_strings_pt-PT.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_pt-PT.xtb @@ -0,0 +1,13 @@ + + + +Bloqueio de anúncios +Permitir o bloqueio de anúncios em páginas web neste app +Listas de filtros +Adicionar ou remover listas de filtros específicas de idiomas +Anúncios Aceitáveis +Gostaríamos de incentivar os sites Web a utilizar anúncios simples e não intrusivos. Foi por esse motivo que estabelecemos diretrizes rigorosas para identificar Anúncios Aceitáveis, que são mostrados nas definições padrão. Se pretender uma navegação sem anúncios, é possível desativar esta definição a qualquer momento. +Domínios na lista branca +Adicione os sites Web dos quais pretende ver anúncios a esta lista +Adicionar domínio + diff --git a/components/adblock/android/translations/adblock_strings_ro.xtb b/components/adblock/android/translations/adblock_strings_ro.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_ro.xtb @@ -0,0 +1,13 @@ + + + +Ad blocking +Permite blocarea reclamelor pe site-urile web în această aplicație +Listă filtre +Adăugați sau eliminați liste de filtre specifice limbilor +Reclame acceptabile +Am dori să încurajăm website-urile să folosească reclame directe, neintruzive. De aceea am definit reguli stricte pentru identificarea reclamelor acceptabile, care sunt prezentate la setările implicite standard. Dacă doriți să navigați pe Internet fără reclame, puteți dezactiva această setare în orice moment. +Domenii din lista de aprobare +Adăugați website-uri pe care doriți vedeți reclame la această listă +Adăugare domeniu + diff --git a/components/adblock/android/translations/adblock_strings_ru.xtb b/components/adblock/android/translations/adblock_strings_ru.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_ru.xtb @@ -0,0 +1,13 @@ + + + +Блокировка рекламы +Разрешить блокировку рекламы на сайтах в этом приложении +Списки фильтров +Добавить языки, на которых вы регулярно просматриваете сайты +Допустимая реклама +Допустимая реклама не является назойливой и соответствует строгим требованиям, предъявляемым ко внешнему виду сайтов. Она помогает создателям контента получать доход и не мешает чтению. Эта функция включена по умолчанию, но вы можете отключить её в любой момент. +Разрешенный список +Поддержите ваши любимые сайты, добавив их в этот список. На этих сайтах вы можете увидеть рекламу. +Ввести URL-адрес + diff --git a/components/adblock/android/translations/adblock_strings_si.xtb b/components/adblock/android/translations/adblock_strings_si.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_si.xtb @@ -0,0 +1,4 @@ + + + + diff --git a/components/adblock/android/translations/adblock_strings_sk.xtb b/components/adblock/android/translations/adblock_strings_sk.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_sk.xtb @@ -0,0 +1,13 @@ + + + +Ad blocking +Povoliť blokovanie reklám na webových stránkach v tejto aplikácii +Zoznamy filtrov +Pridať alebo odstrániť zoznamy filtrov pre konkrétne jazyky +Prijateľné reklamy +Radi by sme podporili webové lokality, aby používali priamu a nerušivú reklamu. Preto sme vypracovali prísne pokyny na identifikáciu prijateľných reklám, ktoré sa zobrazujú v predvolených nastaveniach. Ak chcete prehliadať stránky bez reklám, môžete toto nastavenie kedykoľvek zakázať. +Domény s povolenými adresami +Pridajte webové lokality, ktoré chcete vidieť na tomto zozname +Pridať doménu + diff --git a/components/adblock/android/translations/adblock_strings_sl.xtb b/components/adblock/android/translations/adblock_strings_sl.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_sl.xtb @@ -0,0 +1,13 @@ + + + +Ad blocking +Dovoli blokiranje oglasov na spletnih straneh v tej aplikaciji +Seznami filtrov +Dodaj ali odstranit sezname filtrov za jezik +Acceptable Ads +Želimo spodbujati, da bi spletne strani uporabljale enostavno, nevsiljivo oglaševanje. Zato smo vzpostavili stroge smernice za prepoznavanje sprejemljivih oglasov (Acceptable Ads), ki so prikazane pod privzetimi nastavitvami. Če želite brskati brez oglasov, lahko to nastavitev kadar koli onemogočite. +Dovoljene domene +Dodajte spletne strani, na katerih želite videti oglase, na ta seznam +Dodaj domeno + diff --git a/components/adblock/android/translations/adblock_strings_sq.xtb b/components/adblock/android/translations/adblock_strings_sq.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_sq.xtb @@ -0,0 +1,4 @@ + + + + diff --git a/components/adblock/android/translations/adblock_strings_sr-Latn.xtb b/components/adblock/android/translations/adblock_strings_sr-Latn.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_sr-Latn.xtb @@ -0,0 +1,4 @@ + + + + diff --git a/components/adblock/android/translations/adblock_strings_sr.xtb b/components/adblock/android/translations/adblock_strings_sr.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_sr.xtb @@ -0,0 +1,13 @@ + + + +Ad blocking +Dozvolite blokiranje oglasa na veb lokacijama u ovoj aplikaciji +Liste filtera +Dodaj ili ukloni liste filtera za određeni jezik +Prihvatljive reklame +Želeli bismo da podstaknemo veb lokacije da koriste način neposrednog, nenametljivog reklamiranja. Zato smo utvrdili stroge smernice za identifikovanje prihvatljivih reklama, koje mogu da se vide pod podrazumevanim postavkama. Ako želite da pregledate bez reklama, ovu postavku možete da onemogućite bilo kad. +Bela lista domena +Na ovu listu dodajte veb lokacije sa kojih želite da vidite reklame +Dodaj domen + diff --git a/components/adblock/android/translations/adblock_strings_sv.xtb b/components/adblock/android/translations/adblock_strings_sv.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_sv.xtb @@ -0,0 +1,13 @@ + + + +Ad blocking +Tillåt annonsblockering på webbplatser i denna app +Filterlistor +Lägg till och ta bort språkspecifika filterlistor +Accepterade annonser +Vi vill uppmuntra webbplatser att använda enkel, icke påträngande annonsering. Därför har vi upprättat strikta riktlinjer för att identifiera Accepterade annonser, som visas under standardinställningarna. Om du vill surfa annonsfritt kan du när som helst inaktivera den här inställningen. +Godkända domäner +Lägg till webbplatser där du vill se annonser i den här listan +Lägg till domän + diff --git a/components/adblock/android/translations/adblock_strings_sw.xtb b/components/adblock/android/translations/adblock_strings_sw.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_sw.xtb @@ -0,0 +1,13 @@ + + + +Ad blocking +Tillåt annonsblockering på webbplatser i denna app +Chuja Orodha +Ongeza au ondoa uchujaji wa orodha kwa misingi ya lugha +Ads Zinazokubalika +Tungependa kuhimiza tovuti zitumie utangazaji wa moja kwa moja usio na uingiliaji. Hiyo ndio sababu tumeanzisha mwongozo mkali wa kutambua Ads Zinazokubalika, ambazo zinaonyeshwa kwenye mpangilio asili. Ikiwa ungependa kudurusu bila ads, unaweza kusimamisha mpangilio huu wakati wowote. +Domeini za Orodha Nyeupe +Ongeza tovuti ambazo kwazo ungependa kuona ads kwenye orodha hii +Ongeza domeini + diff --git a/components/adblock/android/translations/adblock_strings_ta.xtb b/components/adblock/android/translations/adblock_strings_ta.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_ta.xtb @@ -0,0 +1,4 @@ + + + + diff --git a/components/adblock/android/translations/adblock_strings_te.xtb b/components/adblock/android/translations/adblock_strings_te.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_te.xtb @@ -0,0 +1,4 @@ + + + + diff --git a/components/adblock/android/translations/adblock_strings_th.xtb b/components/adblock/android/translations/adblock_strings_th.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_th.xtb @@ -0,0 +1,13 @@ + + + +Ad blocking +อนุญาตให้บล็อคโฆษณาบนเว็บไซต์ในแอปนี้ +ตัวกรองรายการ +เพิ่มหรือลบตัวกรองรายการภาษาที่ระบุ +โฆษณาที่ยอมรับได้ +เราต้องการส่งเสริมให้เว็บไซต์ทำการโฆษณาโดยตรง โดยไม่สร้างความรำคาญแก่ผู้ชม นั่นจึงเป็นเหตุผลว่าทำไมเราถึงได้กำหนดแนวทางที่เข้มงวดเพื่อระบุโฆษณาที่ยอมรับได้ ซึ่งแสดงอยู่ด้านล่างในค่าเริ่มต้นของการตั้งค่า หากคุณต้องการเรียกใช้งานโฆษณาฟรี คุณสามารถปิดใช้งานการตั้งค่านี้ได้ตลอดเวลา +โดเมนที่อนุญาต +เพิ่มเว็บไซต์ที่คุณต้องการเห็นโฆษณาบนรายการนี้ +เพิ่มโดเมน + diff --git a/components/adblock/android/translations/adblock_strings_tr.xtb b/components/adblock/android/translations/adblock_strings_tr.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_tr.xtb @@ -0,0 +1,13 @@ + + + +Reklam engelleme +Bu uygulamadaki web sitelerinde reklamların engellenmesine izin verin +Filtre listeleri +Web sitelerinde düzenli olarak gezindiğiniz dilleri ekleyin +Kabul edilebilir reklamlar +Kabul edilebilir reklamlar, katı bir reklam standardına uygun olan, can sıkıcı olmayan reklamlardır. Bunlar, içerik yaratıcılarının gelir elde etmesini sağlar ve görüntülediğiniz içeriği sekteye uğratmaz. Bu özellik varsayılan olarak açıktır, ancak istediğiniz zaman kapatabilirsiniz. +İzin listesi +En sevdiğiniz web sitelerini bu listeye ekleyerek destekleyin. Bu sitelerde reklamlar görebilirsiniz. +URL gir + diff --git a/components/adblock/android/translations/adblock_strings_uk.xtb b/components/adblock/android/translations/adblock_strings_uk.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_uk.xtb @@ -0,0 +1,13 @@ + + + +Блокування реклами +Дозволити блокування реклами на веб-сайтах у цьому додатку +Списки фільтрів +Додавання або видалення списків фільтрів для різних мов +Допустима реклама +Ми хотіли б заохотити веб-сайти використовувати просту, ненав\'язливу рекламу. Тому ми створили суворі принципи для ідентифікації допустимої реклами, яка відображається за замовчуванням. Якщо ви хочете переглядати сайти без реклами, ви можете відключити її у будь-який момент. +Дозволені домени +Додайте веб-сайти у білий список, щоб дозволити відображення реклами +Додати домен + diff --git a/components/adblock/android/translations/adblock_strings_ur.xtb b/components/adblock/android/translations/adblock_strings_ur.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_ur.xtb @@ -0,0 +1,13 @@ + + + +Ad blocking +اس ایپ میں ویب سائٹوں پر اشتہارات روکنے کی اجازت دیں۔ +فلٹر والی فہرستیں +زبان کے ساتھ مخصوص فلٹر والی فہرستیں اضافہ کریں یا ہٹائیں +قابل قبول اشتہارات +ہم اس بات کی ترغیب دینا چاہیں گے کہ ویب سائٹیں راست، غیر مداخلتی اشتہارات استعمال کریں۔ یہی وجہ ہے کہ ہم نے قابل قبول اشتہارات کی شناخت کے لیے سخت ہدایات مرتب کی ہیں، جنہیں ڈیفالٹ ترتیبات میں دکھایا گیا ہے۔ اگر آپ اشتہارات سے پاک براؤزنگ کرنا چاہتے ہیں تو کسی بھی وقت اس ترتیب کو غیر فعال کر سکتے ہیں۔ +منظور شدہ فہرست میں داخل کردہ ڈومین +اس فہرست میں ویب سائٹوں کا اضافہ کریں آپ جن کے اشتہارات دیکھنا چاہتے ہیں +ڈومین کا اضافہ کریں + diff --git a/components/adblock/android/translations/adblock_strings_uz.xtb b/components/adblock/android/translations/adblock_strings_uz.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_uz.xtb @@ -0,0 +1,4 @@ + + + + diff --git a/components/adblock/android/translations/adblock_strings_vi.xtb b/components/adblock/android/translations/adblock_strings_vi.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_vi.xtb @@ -0,0 +1,13 @@ + + + +Ad blocking +Cho phép chặn quảng cáo trên trang web trong ứng dụng này +Danh sách lọc +Thêm hoặc xóa danh sách bộ lọc ngôn ngữ +Quảng cáo chấp nhận được +Chúng tôi khuyến khích các trang web sử dụng quảng cáo đơn giản, không gây phiền toái. Đó là lý do tại sao chúng tôi tạo ra hướng dẫn chặt chẽ để xác định Quảng cáo chấp nhận được, những quảng cáo được hiển thị ở chế độ cài đặt mặc định. Nếu bạn muốn duyệt web không có quảng cáo, bạn có thể vô hiệu hóa cài đặt này bất kỳ lúc nào. +Danh sách tên miền không gây hại +Thêm các trang web mà bạn muốn xem quảng cáo vào danh sách này +Thêm tên miền + diff --git a/components/adblock/android/translations/adblock_strings_zh-CN.xtb b/components/adblock/android/translations/adblock_strings_zh-CN.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_zh-CN.xtb @@ -0,0 +1,13 @@ + + + +广告拦截 +允许于此应用程序中启用网站广告拦截功能 +过滤列表 +添加您浏览网站时通常使用的语言 +可接受广告 +可接受广告是符合严格广告标准的广告,不会给人造成困扰。这些广告助于内容创作者 带来收入,并且不会干扰您观看的内容。此功能默认为开启,但您可以随时关闭。 +允许列表 +支持您最喜爱的网站,将其添加到此列表。您可能在这些网站上看到广告。 +输入 URL + diff --git a/components/adblock/android/translations/adblock_strings_zh-HK.xtb b/components/adblock/android/translations/adblock_strings_zh-HK.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_zh-HK.xtb @@ -0,0 +1,4 @@ + + + + diff --git a/components/adblock/android/translations/adblock_strings_zh-TW.xtb b/components/adblock/android/translations/adblock_strings_zh-TW.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_zh-TW.xtb @@ -0,0 +1,13 @@ + + + +Ad blocking +允許於此App中啟用網站廣告攔截功能 +過濾列表 +新增或移除特定於語言的篩選清單 +可接受廣告 +我們鼓勵網站使用直接的非侵入性廣告。這就是我們設立嚴格的指引來識別依預設顯示之可接受廣告的原因。若您希望無廣告瀏覽,則可以隨時停用此設定。 +列出的白名單網域 +將您想要在其上查看廣告的網站新增至此清單 +新增網域 + diff --git a/components/adblock/android/translations/adblock_strings_zu.xtb b/components/adblock/android/translations/adblock_strings_zu.xtb new file mode 100644 --- /dev/null +++ b/components/adblock/android/translations/adblock_strings_zu.xtb @@ -0,0 +1,4 @@ + + + + -- 2.25.1