Giter Club home page Giter Club logo

contentblocker's Introduction

 

AdGuard Content Blocker

Ad blocker app to block ads in Yandex Browser and Samsung Internet browser

Website | Reddit | Twitter | Telegram

Disclaimer

  • AdGuard Content Blocker is a free app. We believe that all free products should be open source, and AdGuard Content Blocker is not an exception. Its code can be found in this repository.
  • Privacy policy: https://adguard.com/privacy/content-blocker.html (Briefly: AdGuard sends only necessary, limited information, e.g. information required for filter updates).

 

AdGuard Content Blocker is a tool to block ads in browsers that support content blocking technology. Currently, these browsers are Samsung Internet and Yandex Browser.

To get more information and to download AdGuard Content Blocker, visit our website https://adguard.com/.

 

 

Our plans

To see the 'big picture', to watch current progress and to get an idea of approximate dates for upcoming AdGuard Content Blocker releases, see this page: https://github.com/AdguardTeam/ContentBlocker/milestones

Releases

Get it on Google Play Get it on F-Droid

You can also find all AdGuard Content Blocker releases here: https://github.com/AdguardTeam/ContentBlocker/releases

How to report an issue?

GitHub can be used to report a bug or to submit a feature request. To do so, go to this page and click the New issue button. Please, try to use the template that will be provided for you to report bugs (unless your issue is unique enough to justify deviating from the template).

Note: for the filter-related issues (missed ads, false positives etc.) use the online reporting tool.

Becoming a beta tester

To become a beta tester, go to Content Blocker's Google Play page and scroll down to the "Become a beta tester" block. Tap the "I'm in" button to switch to beta channel. You will have an option to leave the beta test at any time the same way.

Translating into other languages

You can help us translate Content Blocker into other languages. Everything you need to know about AdGuard translations is gathered in this KB article. Once you are ready, head to CrowdIn website and start translating — even if the translation already exists, you can always suggest a better variant.

contentblocker's People

Contributors

admitrevskiy avatar ameshkov avatar artemiv4nov avatar nkartyshov avatar poussinou avatar revertron avatar vbagirov avatar versty avatar vozersky avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

contentblocker's Issues

Yandex.browser "freezed" after it was installed from ContentBlocker onboarding

изначальные условия:
адгарда нет, я.браузера нет

  1. ставим контент блокер
  2. из онбординга идем и ставим я.браузер
  3. нас возвращает после установки браузера в онбординг (наш)
  4. переходим на 3 шаг онбординга
  5. идем включать контент блокер
  6. двыжды жмем кнопу “назад” (выходим из браузера)

В результате висит окно я.браузера:

Unable to find explicit activity class {com.yandex.browser.tests/com.yandex.browser.YandexBrowserMainActivity}; have you declared this activity in your AndroidManifest.xml?

android.content.ActivityNotFoundException: Unable to find explicit activity class {com.yandex.browser.tests/com.yandex.browser.YandexBrowserMainActivity}; have you declared this activity in your AndroidManifest.xml?
    at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1873)
    at android.app.Instrumentation.execStartActivity(Instrumentation.java:1597)
    at android.app.Activity.startActivityForResult(Activity.java:3745)
    at android.app.Activity.startActivityForResult(Activity.java:3706)
    at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:842)
    at android.app.Activity.startActivity(Activity.java:4016)
    at android.app.Activity.startActivity(Activity.java:3984)
    at com.adguard.android.commons.BrowserUtils.startBrowser(BrowserUtils.java:234)
    at com.adguard.android.commons.BrowserUtils.startYandexBrowser(BrowserUtils.java:219)
    at com.adguard.android.contentblocker.MainActivity$6.onClick(MainActivity.java:197)
    at android.view.View.performClick(View.java:4793)
    at android.view.View$PerformClick.run(View.java:19919)
    at android.os.Handler.handleCallback(Handler.java:739)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at android.os.Looper.loop(Looper.java:135)
    at android.app.ActivityThread.main(ActivityThread.java:5499)
    at java.lang.reflect.Method.invoke(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:372)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:942)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:737)

Unable to start activity ComponentInfo{com.adguard.android.contentblocker/com.adguard.android.contentblocker.MainActivity}: android.view.InflateException: Binary XML file line #10

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.adguard.android.contentblocker/com.adguard.android.contentblocker.MainActivity}: android.view.InflateException: Binary XML file line #10: Error inflating class android.widget.ListView
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2372)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2424)
    at android.app.ActivityThread.access$600(ActivityThread.java:162)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1364)
    at android.os.Handler.dispatchMessage(Handler.java:107)
    at android.os.Looper.loop(Looper.java:194)
    at android.app.ActivityThread.main(ActivityThread.java:5400)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:525)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:837)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:604)
    at dalvik.system.NativeStart.main(Native Method)
Caused by: android.view.InflateException: Binary XML file line #10: Error inflating class android.widget.ListView
    at android.view.LayoutInflater.createView(LayoutInflater.java:613)
    at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
    at android.view.LayoutInflater.onCreateView(LayoutInflater.java:660)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:685)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
    at android.view.LayoutInflater.parseInclude(LayoutInflater.java:830)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:736)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:749)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
    at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:280)
    at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)
    at com.adguard.android.contentblocker.MainActivity.onCreate(MainActivity.java:75)
    at android.app.Activity.performCreate(Activity.java:5122)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1084)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2336)
    ... 11 more
Caused by: java.lang.reflect.InvocationTargetException
    at java.lang.reflect.Constructor.constructNative(Native Method)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
    at android.view.LayoutInflater.createView(LayoutInflater.java:587)
    ... 27 more
Caused by: java.lang.ArrayIndexOutOfBoundsException: length=408; index=104202258
    at android.content.res.TypedArray.getResourceId(TypedArray.java:581)
    at android.widget.ListView.<init>(ListView.java:187)
    at android.widget.ListView.<init>(ListView.java:172)
    ... 30 more

Binary XML file line #23: You must supply a layout_width attribute

java.lang.RuntimeException: Binary XML file line #23: You must supply a layout_width attribute. at android.content.res.TypedArray.getLayoutDimension(TypedArray.java:492) at android.view.ViewGroup$LayoutParams.setBaseAttributes(ViewGroup.java:5844) at android.view.ViewGroup$MarginLayoutParams.<init>(ViewGroup.java:5986) at android.widget.LinearLayout$LayoutParams.<init>(LinearLayout.java:1854) at android.widget.LinearLayout.generateLayoutParams(LinearLayout.java:1766) at android.widget.LinearLayout.generateLayoutParams(LinearLayout.java:62) at android.view.LayoutInflater.rInflate(LayoutInflater.java:759) at android.view.LayoutInflater.inflate(LayoutInflater.java:495) at android.view.LayoutInflater.inflate(LayoutInflater.java:397) at android.view.LayoutInflater.inflate(LayoutInflater.java:353) at com.adguard.android.commons.BrowserUtils.showBrowserInstallDialog(BrowserUtils.java:183) at com.adguard.android.contentblocker.onboarding.OnboardingActivity.onClick(OnboardingActivity.java:166) at android.view.View.performClick(View.java:4452) at android.widget.Button.performClick(Button.java:148) at android.view.View$PerformClick.run(View.java:18428) at android.os.Handler.handleCallback(Handler.java:725) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:176) at android.app.ActivityThread.main(ActivityThread.java:5365) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869) at dalvik.system.NativeStart.main(Native Method)

Binary XML file line #10: Error inflating class android.widget.ListView

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.adguard.android.contentblocker/com.adguard.android.contentblocker.MainActivity}: android.view.InflateException: Binary XML file line #10: Error inflating class android.widget.ListView
	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2372)
	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2424)
	at android.app.ActivityThread.access$600(ActivityThread.java:162)
	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1364)
	at android.os.Handler.dispatchMessage(Handler.java:107)
	at android.os.Looper.loop(Looper.java:194)
	at android.app.ActivityThread.main(ActivityThread.java:5400)
	at java.lang.reflect.Method.invokeNative(Native Method)
	at java.lang.reflect.Method.invoke(Method.java:525)
	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:837)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:604)
	at dalvik.system.NativeStart.main(Native Method)
Caused by: android.view.InflateException: Binary XML file line #10: Error inflating class android.widget.ListView
	at android.view.LayoutInflater.createView(LayoutInflater.java:613)
	at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
	at android.view.LayoutInflater.onCreateView(LayoutInflater.java:660)
	at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:685)
	at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
	at android.view.LayoutInflater.parseInclude(LayoutInflater.java:830)
	at android.view.LayoutInflater.rInflate(LayoutInflater.java:736)
	at android.view.LayoutInflater.rInflate(LayoutInflater.java:749)
	at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
	at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
	at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
	at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:280)
	at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)
	at com.adguard.android.contentblocker.MainActivity.onCreate(MainActivity.java:75)
	at android.app.Activity.performCreate(Activity.java:5122)
	at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1081)
	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2336)
	... 11 more
Caused by: java.lang.reflect.InvocationTargetException
	at java.lang.reflect.Constructor.constructNative(Native Method)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
	at android.view.LayoutInflater.createView(LayoutInflater.java:587)
	... 27 more
Caused by: java.lang.ArrayIndexOutOfBoundsException: length=408; index=104202258
	at android.content.res.TypedArray.getResourceId(TypedArray.java:581)
	at android.widget.ListView.<init>(ListView.java:187)
	at android.widget.ListView.<init>(ListView.java:172)
	... 30 more

App crash on Android v4.4.2

06-07 20:24:16.441 E/AndroidRuntime(23810): FATAL EXCEPTION: main

06-07 20:24:16.441 E/AndroidRuntime(23810): Process: com.adguard.android.contentblocker, PID: 23810

06-07 20:24:16.441 E/AndroidRuntime(23810): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.adguard.android.contentblocker/com.adguard.android.contentblocker.MainActivity}: java.lang.IllegalStateException: This Activity already has an action bar supplied by the window decor. Do not request Window.FEATURE_SUPPORT_ACTION_BAR and set windowActionBar to false in your theme to use a Toolbar instead.

06-07 20:24:16.441 E/AndroidRuntime(23810):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2334)

06-07 20:24:16.441 E/AndroidRuntime(23810):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2392)

06-07 20:24:16.441 E/AndroidRuntime(23810):     at android.app.ActivityThread.access$900(ActivityThread.java:169)

06-07 20:24:16.441 E/AndroidRuntime(23810):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1280)

06-07 20:24:16.441 E/AndroidRuntime(23810):     at android.os.Handler.dispatchMessage(Handler.java:102)

06-07 20:24:16.441 E/AndroidRuntime(23810):     at android.os.Looper.loop(Looper.java:146)

06-07 20:24:16.441 E/AndroidRuntime(23810):     at android.app.ActivityThread.main(ActivityThread.java:5487)

06-07 20:24:16.441 E/AndroidRuntime(23810):     at java.lang.reflect.Method.invokeNative(Native Method)

06-07 20:24:16.441 E/AndroidRuntime(23810):     at java.lang.reflect.Method.invoke(Method.java:515)

06-07 20:24:16.441 E/AndroidRuntime(23810):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)

06-07 20:24:16.441 E/AndroidRuntime(23810):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)

06-07 20:24:16.441 E/AndroidRuntime(23810):     at dalvik.system.NativeStart.main(Native Method)

06-07 20:24:16.441 E/AndroidRuntime(23810): Caused by: java.lang.IllegalStateException: This Activity already has an action bar supplied by the window decor. Do not request Window.FEATURE_SUPPORT_ACTION_BAR and set windowActionBar to false in your theme to use a Toolbar instead.

06-07 20:24:16.441 E/AndroidRuntime(23810):     at android.support.v7.app.AppCompatDelegateImplV7.setSupportActionBar(AppCompatDelegateImplV7.java:197)

06-07 20:24:16.441 E/AndroidRuntime(23810):     at android.support.v7.app.AppCompatActivity.setSupportActionBar(AppCompatActivity.java:126)

06-07 20:24:16.441 E/AndroidRuntime(23810):     at com.adguard.android.contentblocker.MainActivity.onCreate(MainActivity.java:80)

06-07 20:24:16.441 E/AndroidRuntime(23810):     at android.app.Activity.performCreate(Activity.java:5451)

06-07 20:24:16.441 E/AndroidRuntime(23810):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093)

06-07 20:24:16.441 E/AndroidRuntime(23810):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298)

06-07 20:24:16.441 E/AndroidRuntime(23810):     ... 11 more

mail.ru is broken in Samsung Internet

Продолжение закрытой темы:

Все ресурсы mail.ru некорректно отображаются:
https://auto.mail.ru/
https://horo.mail.ru/
https://realty.mail.ru/
https://health.mail.ru/
https://afisha.mail.ru/
https://cloud.mail.ru/
https://otvet.mail.ru/
https://pogoda.mail.ru/
https://sport.mail.ru/
https://tv.mail.ru/
http://torg.mail.ru/
https://cars.mail.ru/

Добавил в пользовательский фильтр по очереди, ничего не изменилось ни для полной версии сайта, ни для мобильной:
tempfileforshare_2016-06-20-13-03-53
tempfileforshare_2016-06-20-13-05-13
tempfileforshare_2016-06-20-13-05-54

Failed to block some advertising

The advertising blocker blocks the content but does not suppress the frame that accompanies the advertisement.

I have activated all the filters but this does not solve the problem either.
screenshot_20170302-205935

java.lang.IllegalArgumentException: View=com.android.internal.policy.impl.PhoneWindow$DecorView{74fa873 V.E..... R......D 0,0-501,242} not attached to window manager

java.lang.IllegalArgumentException: View=com.android.internal.policy.impl.PhoneWindow$DecorView{74fa873 V.E..... R......D 0,0-501,242} not attached to window manager
    at android.view.WindowManagerGlobal.findViewLocked(WindowManagerGlobal.java:412)
    at android.view.WindowManagerGlobal.removeView(WindowManagerGlobal.java:338)
    at android.view.WindowManagerImpl.removeViewImmediate(WindowManagerImpl.java:122)
    at android.app.Dialog.dismissDialog(Dialog.java:522)
    at android.app.Dialog$1.run(Dialog.java:128)
    at android.os.Handler.handleCallback(Handler.java:739)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at android.os.Looper.loop(Looper.java:145)
    at android.app.ActivityThread.main(ActivityThread.java:6946)
    at java.lang.reflect.Method.invoke(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:372)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)

Filters cannot be turned off or on

Nothing happens when I change filter status.

What should happen:

  1. Filters count on the main page should represent the actual situation
  2. We should refresh the content blocker in all integrated browsers

Change Samsung browser detection logic

  1. If you want to check whether the Content Blocker feature is available or not with current device, you can use below logic.
    ( starting from 4.0, Samsung Internet for Android supports Content Blocker)
               Intent intent = new Intent();
               intent.setAction("com.samsung.android.sbrowser.contentBlocker.ACTION_SETTING");
               List<ResolveInfo> list = getPackageManager().queryIntentActivities(intent, 0);
               if(list.size() > 0) {    
                   // Samsung Internet 4.0 was installed. 
               }
   If the user didn't install Samsung Internet 4.0 for content blocker, you can guide the user to do so by providing an option to access to Play Store Link. 
   - Samsung Internet in Google Play : https://play.google.com/store/apps/details?id=com.sec.android.app.sbrowser

Increase stable YaBrowser and Samsung browser priority

Currently, when choosing which browser to start (talking about "Start" button in the UI), we're going through all apps having Yandex Browser in the name.

We should change the algorithm, so that stable browsers versions have higher priority over beta/alpha versions.

Add new localizations

New languages:
Ukranian, Chinese Simplified, Japanese, Spanish (Latin America), Hungarian, Dutch, Italian.

They are ready in OneSkyApp.

Apache commons prevent publishing to Google Play

The magic in Gradle or Google Play wants apache common libs to be on devices for our blocker to be compatible with them.

I'm moving from using maven dependencies to file (jar) dependencies.
Also, I will update libraries with new versions.

Crash when user tries to start YaBrowser

android.content.ActivityNotFoundException: Unable to find explicit activity class {com.yandex.browser/com.yandex.browser.YandexBrowserMainActivity}; have you declared this activity in your AndroidManifest.xml?
    at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1854)
    at android.app.Instrumentation.execStartActivity(Instrumentation.java:1545)
    at android.app.Activity.startActivityForResult(Activity.java:4283)
    at android.app.Activity.startActivityForResult(Activity.java:4230)
    at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:842)
    at android.app.Activity.startActivity(Activity.java:4567)
    at android.app.Activity.startActivity(Activity.java:4535)
    at com.adguard.android.commons.BrowserUtils.startBrowser(BrowserUtils.java:233)
    at com.adguard.android.commons.BrowserUtils.startYandexBrowser(BrowserUtils.java:220)
    at com.adguard.android.contentblocker.MainActivity$6.onClick(MainActivity.java:197)
    at android.view.View.performClick(View.java:5697)
    at android.widget.TextView.performClick(TextView.java:10826)
    at android.view.View$PerformClick.run(View.java:22526)
    at android.os.Handler.handleCallback(Handler.java:739)

Unable to get provider com.adguard.android.contentblocker.FiltersContentProvider

java.lang.RuntimeException: Unable to get provider com.adguard.android.contentblocker.FiltersContentProvider: java.lang.ClassNotFoundException: Didn't find class "com.adguard.android.contentblocker.FiltersContentProvider" on path: DexPathList[[zip file "/mnt/asec/com.adguard.android.contentblocker-1/pkg.apk"],nativeLibraryDirectories=[/mnt/asec/com.adguard.android.contentblocker-1/lib, /vendor/lib, /system/lib]]
    at android.app.ActivityThread.installProvider(ActivityThread.java:5018)
    at android.app.ActivityThread.installContentProviders(ActivityThread.java:4589)
    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4522)
    at android.app.ActivityThread.access$1500(ActivityThread.java:151)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1381)
    at android.os.Handler.dispatchMessage(Handler.java:110)
    at android.os.Looper.loop(Looper.java:193)
    at android.app.ActivityThread.main(ActivityThread.java:5299)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:515)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:825)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:641)
    at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.adguard.android.contentblocker.FiltersContentProvider" on path: DexPathList[[zip file "/mnt/asec/com.adguard.android.contentblocker-1/pkg.apk"],nativeLibraryDirectories=[/mnt/asec/com.adguard.android.contentblocker-1/lib, /vendor/lib, /system/lib]]
    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:497)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:457)
    at android.app.ActivityThread.installProvider(ActivityThread.java:5003)
    ... 12 more
    Suppressed: java.io.IOException: unable to open DEX file
        at dalvik.system.DexFile.openDexFileNative(Native Method)
        at dalvik.system.DexFile.openDexFile(DexFile.java:296)
        at dalvik.system.DexFile.<init>(DexFile.java:80)
        at dalvik.system.DexFile.<init>(DexFile.java:59)
        at dalvik.system.DexPathList.loadDexFile(DexPathList.java:263)
        at dalvik.system.DexPathList.makeDexElements(DexPathList.java:230)
        at dalvik.system.DexPathList.<init>(DexPathList.java:112)
        at dalvik.system.BaseDexClassLoader.<init>(BaseDexClassLoader.java:48)
        at dalvik.system.PathClassLoader.<init>(PathClassLoader.java:65)
        at android.app.ApplicationLoaders.getClassLoader(ApplicationLoaders.java:57)
        at android.app.LoadedApk.getClassLoader(LoadedApk.java:326)
        at android.app.LoadedApk.makeApplication(LoadedApk.java:508)
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4514)
        ... 10 more

Crash on app start

Device: Samsung S4, Android 4.4

E/AndroidRuntime(23911): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.adguard.android.contentblocker/com.adguard.android.contentblocker.MainActivity}: java.lang.IllegalStateException: This Activity already has an action bar supplied by the window decor. Do not request Window.FEATURE_SUPPORT_ACTION_BAR and set windowActionBar to false in your theme to use a Toolbar instead.
E/AndroidRuntime(23911):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2394)
E/AndroidRuntime(23911):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2452)
E/AndroidRuntime(23911):    at android.app.ActivityThread.access$900(ActivityThread.java:172)
E/AndroidRuntime(23911):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1302)
E/AndroidRuntime(23911):    at android.os.Handler.dispatchMessage(Handler.java:102)
E/AndroidRuntime(23911):    at android.os.Looper.loop(Looper.java:136)
E/AndroidRuntime(23911):    at android.app.ActivityThread.main(ActivityThread.java:5586)
E/AndroidRuntime(23911):    at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(23911):    at java.lang.reflect.Method.invoke(Method.java:515)
E/AndroidRuntime(23911):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1268)
E/AndroidRuntime(23911):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084)
E/AndroidRuntime(23911):    at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime(23911): Caused by: java.lang.IllegalStateException: This Activity already has an action bar supplied by the window decor. Do not request Window.FEATURE_SUPPORT_ACTION_BAR and set windowActionBar to false in your theme to use a Toolbar instead.
E/AndroidRuntime(23911):    at android.support.v7.app.AppCompatDelegateImplV7.setSupportActionBar(AppCompatDelegateImplV7.java:197)
E/AndroidRuntime(23911):    at android.support.v7.app.AppCompatActivity.setSupportActionBar(AppCompatActivity.java:126)
E/AndroidRuntime(23911):    at com.adguard.android.contentblocker.MainActivity.onCreate(MainActivity.java:80)
E/AndroidRuntime(23911):    at android.app.Activity.performCreate(Activity.java:5451)
E/AndroidRuntime(23911):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093)
E/AndroidRuntime(23911):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2358)
E/AndroidRuntime(23911):    ... 11 more
W/ActivityManager(  888):   Force finishing activity com.adguard.android.contentblocker/.MainActivity

https://aa.mail.ru/ is broken

Without Adguard

![s](https://a.disquscdn.com/uploads/mediaembed/images/4047/3729/original.jpg)
With Adguard
![s](https://a.disquscdn.com/uploads/mediaembed/images/4047/3726/original.jpg)
User said it is caused by Russian filter, but I can't reproduce it with Yandex Browseк 16.7 Related link https://blog.adguard.com/ru/android-2/adguard-content-blocker.html#comment-2820884378

IllegalArgumentException: View=com.android.internal.policy.impl.PhoneWindow$DecorView{2685cc9d V.E..... R......D 0,0-667,348} not attached to window manager

java.lang.IllegalArgumentException: View=com.android.internal.policy.impl.PhoneWindow$DecorView{2685cc9d V.E..... R......D 0,0-667,348} not attached to window manager
    at android.view.WindowManagerGlobal.findViewLocked(WindowManagerGlobal.java:402)
    at android.view.WindowManagerGlobal.removeView(WindowManagerGlobal.java:328)
    at android.view.WindowManagerImpl.removeViewImmediate(WindowManagerImpl.java:84)
    at android.app.Dialog.dismissDialog(Dialog.java:431)
    at android.app.Dialog.dismiss(Dialog.java:414)
    at com.adguard.android.contentblocker.ApplyAndRefreshTask.onPostExecute(ApplyAndRefreshTask.java:37)
    at com.adguard.android.contentblocker.ApplyAndRefreshTask.onPostExecute(ApplyAndRefreshTask.java:12)
    at android.os.AsyncTask.finish(AsyncTask.java:632)
    at android.os.AsyncTask.access$600(AsyncTask.java:177)
    at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:645)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:145)
    at android.app.ActivityThread.main(ActivityThread.java:5942)
    at java.lang.reflect.Method.invoke(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:372)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1400)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1195)

Add "Annoyances filter"

We've recently added it to the latest AG for Android beta.

Please don't forget about update process, this filter should be added for existing users as well.

OnboardingActivity: java.lang.NullPointerException

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.adguard.android.contentblocker/com.adguard.android.contentblocker.onboarding.OnboardingActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.support.v4.app.Fragment.toString()' on a null object reference
	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2521)
	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2595)
	at android.app.ActivityThread.access$800(ActivityThread.java:178)
	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1470)
	at android.os.Handler.dispatchMessage(Handler.java:111)
	at android.os.Looper.loop(Looper.java:194)
	at android.app.ActivityThread.main(ActivityThread.java:5631)
	at java.lang.reflect.Method.invoke(Native Method)
	at java.lang.reflect.Method.invoke(Method.java:372)
	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:959)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:754)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.support.v4.app.Fragment.toString()' on a null object reference
	at com.adguard.android.contentblocker.onboarding.OnboardingActivity.removeAllFragments(OnboardingActivity.java:210)
	at com.adguard.android.contentblocker.onboarding.OnboardingActivity.onCreate(OnboardingActivity.java:71)
	at android.app.Activity.performCreate(Activity.java:6092)
	at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1112)
	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2468)
	... 10 more

Crash in ApplyAndRefreshTask

java.lang.IllegalArgumentException: View=com.android.internal.policy.PhoneWindow$DecorView{c3f36e5 V.E...... R.....ID 0,0-1069,406} not attached to window manager
    at android.view.WindowManagerGlobal.findViewLocked(WindowManagerGlobal.java:451)
    at android.view.WindowManagerGlobal.removeView(WindowManagerGlobal.java:377)
    at android.view.WindowManagerImpl.removeViewImmediate(WindowManagerImpl.java:122)
    at android.app.Dialog.dismissDialog(Dialog.java:546)
    at android.app.Dialog.dismiss(Dialog.java:529)
    at com.adguard.android.contentblocker.ApplyAndRefreshTask.onPostExecute(ApplyAndRefreshTask.java:36)
    at com.adguard.android.contentblocker.ApplyAndRefreshTask.onPostExecute(ApplyAndRefreshTask.java:12)
    at android.os.AsyncTask.finish(AsyncTask.java:651)
    at android.os.AsyncTask.access$500(AsyncTask.java:180)
    at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:668)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:158)
    at android.app.ActivityThread.main(ActivityThread.java:7229)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)

Content blocker redesign

Use this material palette:
https://www.materialpalette.com/green/deep-orange

Introduction

Google guidelines:
https://material.google.com/growth-communications/onboarding.html

Step 1

https://monosnap.com/file/ffj70L5TpeM2lAdNoVjYNiuCvv8uj6

On this step we do nothing except detecting the current device configuration and supported browsers.

If supported browser is detected, ignore step 2.

Step 2

https://monosnap.com/file/I8zUNyu9YrGOwyBbYZvCm5PKYIaO7m

After user clicks "Select browser" show the dialog window:
https://monosnap.com/file/nlFLzw27Av0KBg78UH7Yj57uq9GJ0r

Set up a "package receiver" and wait for the supported browser to be installed before letting user to step 3.

Step 3

https://monosnap.com/file/4dz1YZdPL64NJXz33sWRxzPv5ZZIcD

Send user to the browser content blockers settings so he could enable Adguard there.
Image on step 3 should depend on the detected supported browser (basically it should be a screenshot of the browser's content blocker settings).

Main panel

Mockup:
https://monosnap.com/file/O4VZxF9w05QHI8VROosjifoBp4JC5P

Filters card should look like this example:
https://monosnap.com/file/S43CdoJL73iPjsXcRctXDVtYe8qir6

Card menu items:

  • Check filter updates
  • Go to filters

There are two more cards below:
https://monosnap.com/file/auBp97bSzLnv0M7UYGed07kT9ruxBq

In case if supported browser was not detected, first visible card should be this one:
https://monosnap.com/file/daYvzeJAPF1JmQBNS4xbXi2w4NM7Dj

Navigation drawer

Google guidelines:
https://material.google.com/patterns/navigation-drawer.html

Background color: white
Top panel: simply put Adguard logo there:
https://adguard.com/images/[email protected]

Menu items:
(settings icon) Settings
Filters
Whitelist
(refresh icon) Check filter updates
(star icon) Rate Adguard
(info icon) About
-------------------- (this is a horizontal line separator)
(door icon) Exit

Wrongly Blocking Non-ad Elements

An example is cosstores.com . When clicking on a product to see more information about it, it just does nothing. This is happening when using Samsung Internet with Adguard for Android.

Ресурсы mail.ru (3)

Все ресурсы mail.ru некорректно отображаются:
https://auto.mail.ru/
https://horo.mail.ru/
https://realty.mail.ru/
https://health.mail.ru/
https://afisha.mail.ru/
https://cloud.mail.ru/
https://otvet.mail.ru/
https://pogoda.mail.ru/
https://sport.mail.ru/
https://tv.mail.ru/
http://torg.mail.ru/
https://cars.mail.ru/

А скрин-то не с контент-блокера, а из полной версии Адгарда. Мы точно тут контент-блокер обсуждаем?

Фильтры указаны с ContentBlocker, исключения фильтрации были наложены на обычный Adguard, потому что в ContentBlocker не нашёл возможности указать ручные фильтры и предположил, что приложения используют общие ресурсы. По факту проблема не решена, с включённым русским фильтром сайты mail.ru уродуются.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.