Comments (20)
+1 This is the feature I'm waiting the most because there are many ads that go through all the filter subscriptions...
from adguardforandroid.
For now you can report these to us:
https://github.com/AdguardTeam/ExperimentalFilter/issues
Or you can read AG logs and find out what is not blocked:
https://github.com/AdguardTeam/ExperimentalFilter/wiki/Android
from adguardforandroid.
@Revertron here is a list of comments for the first filtering log implementation
Filtering log icon
Use this icon for the navigation menu item:
filtering_log_icons.zip
Please let me know what sizes do you need.
Action bar
We need an option to clear the filtering log
Put it in the action bar.
Use the same icon we have in the user filter/whitelist.
"Enabled" should the same size/weigth as action bar title has.
Empty filtering log
Use the same icons and layout as in the case of user filter/whitelist.
Text: Filtering log is empty
Log item
Time and URL color should be of our regular gray color.
from adguardforandroid.
For small icons (as 24dp in UI) we use these sizes: 96, 72, 48, 24, 36 pixels.
from adguardforandroid.
@Revertron got it, what color do we need for the navigation menu?
from adguardforandroid.
Other icons have $757575 color.
from adguardforandroid.
Color indication
Change the line background color to indicate request status.
Regular requests: no indication.
Blocked requests: #fff4f2 (pressed state: #ffb6a9)
Whitelisted requests: #defae5 (pressed state: #98ffb2)
from adguardforandroid.
Log item details fields should depend on the event type. However, there are some common requirements.
Common requirements
- Tap on a field should automatically copy it's value to the clipboard. We should also show a toast about it.
- The
Status
field possible values:Processed
,Blocked
,Threat
,Whitelisted
,Redirect
. The latter makes sense forWeb request
type only. Event type
field possible values areWeb request
,DNS request
,HTTPS tunnel
Application
field name depends on the app type and can beApp
,Browser
,System app
Filtering rule
field is visible in two cases only: if the status is eitherBlocked
orWhitelisted
.- Possible buttons in the item details footer:
BLOCK
,UNBLOCK
(raised buttons),OPEN
(flat button).OPEN
button opens request URL in the default browser.OPEN
is available for regular web requests withGET
method only. Remote Address
field format is127.0.0.1:443
for IPv4 and[2001:4860:4860::8888]:443
for IPv6. UseIpAddressUtils.toString()
method to get the proper format for it. Do not show this field if value is empty.
Regular web request fields
- Event type
- Application
- Domain
- Remote Address
- Status (You should use
Redirect
status wheneverredirectUrl
field is not empty.) - Filtering rule
- Request URL
- Source URL (do not show if empty or null)
- Redirect URL (show it if status is
Redirect
) - Content type (no need to translate, just use the enum value)
- Start time (format:
18:45.123
) (we don't really need date here) - Elapsed time (format:
123 ms
) - Size (format:
↓123KB ↑5KB
)
Please note, that Event type
in the case of regular web request also contains HTTP method value.
It should look like:
Value: Web request (GET)
Field name: Event type
DNS request fields
- Event type
- Domain
- Status
- Filtering rule
- Start time
- Elapsed time
- Size
Tunnel request fields
- Event type
- Application
- Domain
- Remote Address
- Status
- Filtering rule
- Start time
- Elapsed time
- Size
from adguardforandroid.
Filtering log menu item icon:
filtering_log_icons.zip
Fields icons:
filtering_log_fields_icons.zip
from adguardforandroid.
@Revertron just caught a crash:
22:52:00.037 [main] ERROR c.a.a.c.CustomExceptionHandler - Thread: Thread[main,5,main]; Uncaught exception:
java.lang.UnsupportedOperationException: null
at java.util.AbstractList.add(AbstractList.java:148) ~[na:0.0]
at android.widget.ArrayAdapter.insert(ArrayAdapter.java:255) ~[na:0.0]
at com.adguard.android.ui.FilteringLogActivity$3.run(FilteringLogActivity.java:119) ~[na:0.0]
at android.os.Handler.handleCallback(Handler.java:751) ~[na:0.0]
at android.os.Handler.dispatchMessage(Handler.java:95) ~[na:0.0]
at android.os.Looper.loop(Looper.java:154) ~[na:0.0]
at android.app.ActivityThread.main(ActivityThread.java:6119) ~[na:0.0]
at java.lang.reflect.Method.invoke(Native Method) ~[na:0.0]
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) ~[na:0.0]
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776) ~[na:0.0]
from adguardforandroid.
Rules constructor issues:
- Does not work properly for DNS requests
- Patterns should start with
||
- Add one more option:
[x] Apply to the APPNAME requests only
. In case if this box is checked, add $app modifier to the rule text.
from adguardforandroid.
I see that startappexchange.com
SDK sometimes sends a GET request with URL length more than 20000. Actually, every time I start ru.sports
app, I see this request. We'd better handle long URLs specifically.
from adguardforandroid.
Add $important
modifier support to the rules constructor dialog.
- Add a checkbox:
Give a higher priority to the rule
- By default, this checkbox should be disabled.
- However, if you try to unblock a URL blocked with an $important rule, or block a whitelisted URL, make it checked.
from adguardforandroid.
Handle third-party flag in a smart way
- If web request is third-party, "Apply to third party requests only" option should be checked.
- Otherwise, let it be unchecked.
from adguardforandroid.
Done.
from adguardforandroid.
Issues:
- Incorrect content type for Web-Socker connections
wss://ws.hghit.com/ws
Content type
=Document
Add@@||hdrezka.me^$content
and go to hdrezka.me; After clearing, filtering log again contains the records;Request sorting is strange - requests from the page are located before request to the page[Moved to #1074]
Elements, which was removed from HTML are not displayed(like in Adguard for Windows)[Moved to #1075]
from adguardforandroid.
Just fixed point 1.
Regarding point 3, this is by design (at least for now). We should fix it eventually, but we'd better move it to a separate issue.
from adguardforandroid.
Regarding point 3
done
#1074
from adguardforandroid.
Added
4. Elements, which was removed from HTML are not displayed(like in Adguard for Windows)
from adguardforandroid.
Fixed point 2.
from adguardforandroid.
Related Issues (20)
- AdGuard for Android Disturbs VOIP Apps HOT 10
- TV: Crash when trying to add custom DNS server by link with "adguard:add_dns_server?address=" prefix
- VoWifi not working when AdGuard enabled
- Protection fails to be enabled or disabled via quick access tile on Harmony OS
- Gmail images not displaying HOT 3
- DNS TLS ISSUES HOT 5
- Update CoreLibs to 1.14.46
- Bring back "Bulk change" feature as it was released in version 3.6 HOT 12
- TV: Persist focus after opening left side menu and closing it back
- DNS Server for LAN devices HOT 1
- Snapchat Ads HOT 1
- Top-level domains are not added to exclusions
- Top-level domains are not added to exclusions
- [Feature request] Implement UDP (and HTTP/3) filtering for automatic proxy mode
- Adguard and adguard VPNeach other intergaration HOT 1
- Fritz Fon App is blocked, but the App is excluded? HOT 5
- Disable the HTTPS filtering for `ua.upg` and `com.energy.eva.chargers` apps by default
- Update CoreLibs to 1.14.51
- Update progress bar is not displayed HOT 1
- 400 error when accessing a domain
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from adguardforandroid.