Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Firewall all apps and DNS configure screen revamp #380

Merged
merged 19 commits into from
Jul 8, 2022

Conversation

hussainmohd-a
Copy link
Collaborator

@hussainmohd-a hussainmohd-a commented Sep 24, 2021

Firewall all apps screen revamp:

New screen for the all apps section in firewall activity.

Earlier the all apps screen categorized based on application categories using expandable listview.
Remove usage of expandablelistview.

DNS configure screen revamp:

Additional options in DNS configure screen.

  • On-device blocklist
  • Custom whitelist/blacklist
  • Separate remote RethinkDNS+ configuration option
  • More DNS option: Other DOH, DNSCrypt and DNS Proxy resolvers.
  • Switch to toggle download fav icons and prevent DNS leaks.

Missing feature: Adding custom endpoints.

Custom whitelist/blocklist feature

  • Added new screen (CustomDomainsActivity, CustomDomainFragment) which consists of user added domain names in a recycler view.
  • Allows user to add the domain from the DNS logs screen.
  • Also user can change the status to whitelist/blocklist/none from the custom domain screen
  • Added appropriate database tables, doa, viewmodel and repository files.
  • New screen for application info. User can change firewall settings, lists ips connected by the app.
  • User can whitelist / blocklist of ips.

Modifications on styles and colors

Changes in styles and colors xml files to use proper attributes.

Others

  • isDgaDomain() will now returns true for the domains which contains uuid in int
  • Dependency upgrade, gradle jdk upgrade, progaurd-rules.pro update for webview.
  • Create database from asset folder rethink.db
  • Rename of files.

Issue fix

Firewall all apps screen revamp

New screen for the all apps section
in firewall activity.

Earlier the all apps screen categorized based
on application categories using expandable listview.
Remove usage of expandablelistview.

Use RecyclerView instead.

New files:
FirewallAppListAdapter.kt
FirewallAppsFragment.kt
AppInfoViewModel.kt
fragment_firewall_app_list.xml

Old file:
FirewallAppListAdapter is renamed
as FirewallExpandableAppListAdapter.

Unused: FirewallAppFragment
FirewallExpandableAppListAdapter
DNS configure screen revamp: First pass

Additional options in DNS configure screen.

DNS configure screen will have below features
* On-device blocklist
* Custom whitelist/blacklist
* Separate remote RethinkDNS+ configuration option
* More DNS option: Other DOH, DNSCrypt and DNS Proxy
resolvers.
* Switch to toggle download fav icons and prevent
DNS leaks.

Removed DNS based settings from Settings screen.

Unused: ConfigureDNSFragment

Missing feature: Adding custom endpoints.
@hussainmohd-a hussainmohd-a changed the title Screenrevamp Firewall all apps and DNS configure screen revamp Sep 24, 2021
hussainmohd-a and others added 6 commits October 1, 2021 19:35
Custom whitelist/blocklist feature

Added new screen (CustomDomainsActivity, CustomDomainFragment) which consists of user
added domain names in a recycler view.

Allows user to add the domain from the DNS logs screen.

Also user can change the status to
whitelist/blocklist/none  from the custom domain
screen

Added appropriate database tables, doa, viewmodel
and repository files.

Additional changes:
* Transformations.switchMap modified varaiable type from var to val.
* rename ZipUtil -> BugReportZipper.
* Added Converters class for sql date to long.
* Removed usage of
accessibilityHearbeatTimestamp  from Universal
screen.
Changes in layouts to use the appropriate
color attributes instead of direct
usage of colors.

Views will now use the attributes where
the colors are defined separately based
on application theme.

Other changes:
Rename of files in layout.
New drawable files for background.
Checks if the fqdn contains UUID.

isDgaDomain() will now returns true for the domains
which contains uuid in int
Code-reformat
removed connection_list_scroll_list file
@TobyEU
Copy link

TobyEU commented Jan 9, 2022

These changes sounds interesting. Are there any plans to merge the commits?

@hussainmohd-a
Copy link
Collaborator Author

hussainmohd-a commented Jan 11, 2022

These changes sounds interesting. Are there any plans to merge the commits?

Yes, Still some more changes are required to merge this pull request.

Dependency upgrade, gradle jdk upgrade,
progaurd-rules.pro update for webview.

New .db file in asset folder to create
the database from asset file.

Pass2: Bottom sheet of Dns logs screen,
firewall logs screen.

Pass 1: Custom domain implementation.
Pass 1: Custom IP UI changes.
Pass 1: New app info screen implementation.
Pass 1: Implementation of Rethink plus dns
configuration screen instead of webview.

Changes in Firewall manager class to handle
the firewall status.

Pass 1: Custom blocklist download manager
instead of default android manager.

Issue fix: celzero#418

Rename of files.
@hussainmohd-a hussainmohd-a self-assigned this Feb 23, 2022
* New database update for the list of dns options for
 rethink dns and other DOH
* New screen for configure the rethink dns (simple
 view)
* Advanced option screen to configure rethink dns
* New list of rethink dns
* Changes in the bottom sheet: pass 1
* Custom IP list changes
* Fab icon to add the DOH/DnsCrypt/DNS Proxy
* Removed unwanted class files
* New database table for Rethink dns DOH list
* Changes in layouts
* new icons and xml changes
Custom ip screen UI changes
* New toggle material group button to take actions
on the custom domains.
* Changes in custom IP adapter.
IPv6 support.

Now user has ability to set network dns from the
app.

build.gradle changes:
Reduced number of dependencies added in
build.gradle.
Updated dependencies to latest version.

pro-guard
dependencies for webview's JS interface changes are
removed from progaurd file.

Activities related to Webviews are removed from
AndroidManifest.xml.

New file, rethink_v12.db is added. Now, the
database builder will create the database from the
asset folder with default values.

App-wise connection details loaded in AppInfo
screen, user now can take actions against the
connection. Like block/whitelist the IP for that
particular app.

Dns queries are persisted in network logs, the value
from ipCache(cache object) will be added in network
log table.

Initial ui changes for custom domain allow/deny list.

When app name is not set for dns proxy, earlier
"Nobody" was shown. Now, if the app is not
assigned then App Name label is removed from UI.
part of celzero#400 issue fix.

Rethinkdns will have a preloaded list of DoH
endpoint which users can directly connect to, also
there is a add icon to add new configuration.

Users now also can edit the configuration from the
user-added list.

New native screens for Rethink blocklist filetag.
(earlier it was loaded by webview activity).

Now, IP rules support both IPv4 and IPv6. Also handles IPv4 compatibile, Ipv6 prefix 64, Teredo IP's.

Notification on local blocklist download status
(success and failure).

Database migration scripts.

New filter options for Rethink blocklist configure
screen.

UI revamp.

rethink download link download.rethinkdns is
replaced with dl.rethinkdns.
Removed some of the unnecessary log statements.
Now user can edit blocklists for the RDNS Plus
when it is set to be active.

Enable RDNS plus from Home Screen chip
The colors for text and background of connection
tracker chips are flipped.
Issue: Connection tracker bottom sheet spinner view
gets clipped when the text is with two lines.

Fix: Made the UI aligned to the center of the layout.
@hussainmohd-a hussainmohd-a merged commit d964ff8 into celzero:main Jul 8, 2022
@hussainmohd-a hussainmohd-a deleted the screenrevamp-firstpass branch July 8, 2022 11:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants