Firefox Focus: The privacy browser - Browse like no one’s watching.

Overview

Firefox Focus for Android

Browse like no one’s watching. The new Firefox Focus automatically blocks a wide range of online trackers — from the moment you launch it to the second you leave it. Easily erase your history, passwords and cookies, so you won’t get followed by things like unwanted ads.

Firefox Focus provides automatic ad blocking and tracking protection on an easy-to-use private browser.

Get it on Google Play

Getting Involved

We encourage you to participate in this open source project. We love Pull Requests, Bug Reports, ideas, (security) code reviews or any other kind of positive contribution.

Before you attempt to make a contribution please read the Community Participation Guidelines.

Beginners! - Watch out for Issues with the "Good First Issue" label. These are easy bugs that have been left for first timers to have a go, get involved and make a positive contribution to the project!

Build Instructions

  1. Clone or Download the repository:
git clone https://github.com/mozilla-mobile/focus-android
  1. Import the project into Android Studio or build on the command line:
./gradlew clean app:assembleFocusDebug
  1. Make sure to select the correct build variant in Android Studio: focusArmDebug for ARM focusX86Debug for X86 focusAarch64Debug for ARM64

local.properties helpers

You can speed up or enhance local development by setting a few helper flags available in local.properties which will be made easily available as gradle properties.

Automatically sign release builds

To sign your release builds with your debug key automatically, add the following to <proj-root>/local.properties:

autosignReleaseWithDebugKey

With this line, release build variants will automatically be signed with your debug key (like debug builds), allowing them to be built and installed directly through Android Studio or the command line.

This is helpful when you're building release variants frequently, for example to test feature flags and or do performance analyses.

Building debuggable release variants

Nightly, Beta and Release variants are getting published to Google Play and therefore are not debuggable. To locally create debuggable builds of those variants, add the following to <proj-root>/local.properties:

debuggable

Auto-publication workflow for android-components and application-services

If you're making changes to these projects and want to test them in Focus, auto-publication workflow is the fastest, most reliable way to do that.

In local.properties, specify a relative path to your local android-components and/or application-services checkouts. E.g.:

  • autoPublish.android-components.dir=../android-components
  • autoPublish.application-services.dir=../application-services

Once these flags are set, your Focus builds will include any local modifications present in these projects.

See a demo of auto-publication workflow in action.

Pre-push hooks

To reduce review turn-around time, we'd like all pushes to run tests locally. We'd recommend you use our provided pre-push hook in quality/pre-push-recommended.sh. Using this hook will guarantee your hook gets updated as the repository changes. This hook tries to run as much as possible without taking too much time.

To add it, run this command from the project root:

ln -s ../../quality/pre-push-recommended.sh .git/hooks/pre-push

To push without running the pre-push hook (e.g. doc updates):

git push <remote> --no-verify

Test Channel on Google PlayStore

To get Focus Nightly on your device, follow these steps:

  1. Visit https://groups.google.com/g/firefox-focus-pre-release and join the Google Group
  2. After you have joined the group opt-in to receive Nightly builds, again with the same Google account: https://play.google.com/apps/testing/org.mozilla.focus.nightly
  3. Download Firefox Focus (Nightly) from Google Play: https://play.google.com/store/apps/details?id=org.mozilla.focus.nightly

Make sure you use the same Google Account for both steps.

License

This Source Code Form is subject to the terms of the Mozilla Public
License, v. 2.0. If a copy of the MPL was not distributed with this
file, You can obtain one at http://mozilla.org/MPL/2.0/
Comments
  • [meta] Multitasking V2

    [meta] Multitasking V2

    UX meta to track related issues. No milestone attachment necessary.

    • [x] #1248 Revisit Multitasking via tabs
    • [x] #1245 Polish sheet expand/collapse animation
    • [x] #1249 Animate web page switching interaction
    • [x] #1231 New tab shows more than first subdomain
    • [x] #1257 Opening shortcuts/links always opens a new tab - even if there is a tab with identical URL open
    • [x] #1363 New tab button
    • [x] #1362 Close tab button
    • [x] #1388 Open tab in background
    • [x] #1334 Back button behavior
    • [x] #1365
    • [x] #1805 - "Singletasking"
    feature UX UR P3 feature request 
    opened by antlam 59
  • Intermittent UI test crash - <CustomTabTest.openCustomTabInFocusTest>

    Intermittent UI test crash -

    Firebase Test Run:

    Firebase link Firebase link Firebase link Firebase link

    Stacktrace:

    08-30 08:54:13.252: I/eportingProces(8879): --------- beginning of crash 08-30 08:54:13.261: E/AndroidRuntime(7492): FATAL EXCEPTION: main 08-30 08:54:13.261: E/AndroidRuntime(7492): Process: org.mozilla.focus.debug, PID: 7492 08-30 08:54:13.261: E/AndroidRuntime(7492): java.lang.IllegalStateException: SET SESSION: Current activity: CustomTabActivity hashcode 5303933 Other activity: MainActivity hashcode 16940721 08-30 08:54:13.261: E/AndroidRuntime(7492): at mozilla.components.browser.engine.gecko.GeckoEngineView.render(GeckoEngineView.kt:129) 08-30 08:54:13.261: E/AndroidRuntime(7492): at mozilla.components.feature.session.engine.EngineViewPresenter.renderTab(EngineViewPresenter.kt:85) 08-30 08:54:13.261: E/AndroidRuntime(7492): at mozilla.components.feature.session.engine.EngineViewPresenter.onTabToRender(EngineViewPresenter.kt:61) 08-30 08:54:13.261: E/AndroidRuntime(7492): at mozilla.components.feature.session.engine.EngineViewPresenter.access$onTabToRender(EngineViewPresenter.kt:23) 08-30 08:54:13.261: E/AndroidRuntime(7492): at mozilla.components.feature.session.engine.EngineViewPresenter$start$1$invokeSuspend$$inlined$collect$1.emit(Collect.kt:135) 08-30 08:54:13.261: E/AndroidRuntime(7492): at mozilla.components.support.ktx.kotlinx.coroutines.flow.FlowKt$ifAnyChanged$$inlined$filter$1$2.emit(Collect.kt:143) 08-30 08:54:13.261: E/AndroidRuntime(7492): at mozilla.components.feature.session.engine.EngineViewPresenter$start$1$invokeSuspend$$inlined$map$1$2.emit(Collect.kt:137) 08-30 08:54:13.261: E/AndroidRuntime(7492): at kotlinx.coroutines.flow.FlowKt__ChannelsKt.emitAllImpl$FlowKt__ChannelsKt(Channels.kt:62) 08-30 08:54:13.261: E/AndroidRuntime(7492): at kotlinx.coroutines.flow.FlowKt__ChannelsKt.access$emitAllImpl(Channels.kt:1) 08-30 08:54:13.261: E/AndroidRuntime(7492): at kotlinx.coroutines.flow.FlowKt__ChannelsKt$emitAllImpl$1.invokeSuspend(Unknown Source:14) 08-30 08:54:13.261: E/AndroidRuntime(7492): at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) 08-30 08:54:13.261: E/AndroidRuntime(7492): at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106) 08-30 08:54:13.261: E/AndroidRuntime(7492): at android.os.Handler.handleCallback(Handler.java:873) 08-30 08:54:13.261: E/AndroidRuntime(7492): at android.os.Handler.dispatchMessage(Handler.java:99) 08-30 08:54:13.261: E/AndroidRuntime(7492): at androidx.test.espresso.base.Interrogator.loopAndInterrogate(Interrogator.java:148) 08-30 08:54:13.261: E/AndroidRuntime(7492): at androidx.test.espresso.base.UiControllerImpl.loopUntil(UiControllerImpl.java:525) 08-30 08:54:13.261: E/AndroidRuntime(7492): at androidx.test.espresso.base.UiControllerImpl.loopUntil(UiControllerImpl.java:484) 08-30 08:54:13.261: E/AndroidRuntime(7492): at androidx.test.espresso.base.UiControllerImpl.injectMotionEvent(UiControllerImpl.java:236) 08-30 08:54:13.261: E/AndroidRuntime(7492): at androidx.test.espresso.action.MotionEvents.sendUp(MotionEvents.java:162) 08-30 08:54:13.261: E/AndroidRuntime(7492): at androidx.test.espresso.action.MotionEvents.sendUp(MotionEvents.java:139) 08-30 08:54:13.261: E/AndroidRuntime(7492): at androidx.test.espresso.action.Tap.sendSingleTap(Tap.java:170) 08-30 08:54:13.261: E/AndroidRuntime(7492): at androidx.test.espresso.action.Tap.access$100(Tap.java:31) 08-30 08:54:13.261: E/AndroidRuntime(7492): at androidx.test.espresso.action.Tap$1.sendTap(Tap.java:47) 08-30 08:54:13.261: E/AndroidRuntime(7492): at androidx.test.espresso.action.GeneralClickAction.perform(GeneralClickAction.java:137) 08-30 08:54:13.261: E/AndroidRuntime(7492): at androidx.test.espresso.ViewInteraction$SingleExecutionViewAction.perform(ViewInteraction.java:366) 08-30 08:54:13.261: E/AndroidRuntime(7492): at androidx.test.espresso.ViewInteraction.doPerform(ViewInteraction.java:255) 08-30 08:54:13.261: E/AndroidRuntime(7492): at androidx.test.espresso.ViewInteraction.access$100(ViewInteraction.java:65) 08-30 08:54:13.261: E/AndroidRuntime(7492): at androidx.test.espresso.ViewInteraction$1.call(ViewInteraction.java:158) 08-30 08:54:13.261: E/AndroidRuntime(7492): at androidx.test.espresso.ViewInteraction$1.call(ViewInteraction.java:155) 08-30 08:54:13.261: E/AndroidRuntime(7492): at java.util.concurrent.FutureTask.run(FutureTask.java:266) 08-30 08:54:13.261: E/AndroidRuntime(7492): at android.os.Handler.handleCallback(Handler.java:873) 08-30 08:54:13.261: E/AndroidRuntime(7492): at android.os.Handler.dispatchMessage(Handler.java:99) 08-30 08:54:13.261: E/AndroidRuntime(7492): at android.os.Looper.loop(Looper.java:193) 08-30 08:54:13.261: E/AndroidRuntime(7492): at android.app.ActivityThread.main(ActivityThread.java:6669) 08-30 08:54:13.261: E/AndroidRuntime(7492): at java.lang.reflect.Method.invoke(Native Method) 08-30 08:54:13.261: E/AndroidRuntime(7492): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) 08-30 08:54:13.261: E/AndroidRuntime(7492): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858) 08-30 08:54:13.261: E/AndroidRuntime(7492): Caused by: java.lang.IllegalStateException: Display already acquired 08-30 08:54:13.261: E/AndroidRuntime(7492): at org.mozilla.geckoview.GeckoSession.acquireDisplay(GeckoSession.java:2348) 08-30 08:54:13.261: E/AndroidRuntime(7492): at org.mozilla.geckoview.GeckoView.setSession(GeckoView.java:460) 08-30 08:54:13.261: E/AndroidRuntime(7492): at mozilla.components.browser.engine.gecko.GeckoEngineView.render(GeckoEngineView.kt:116) 08-30 08:54:13.261: E/AndroidRuntime(7492): ... 36 more 08-30 08:54:13.265: I/Process(7492): Sending signal. PID: 7492 SIG: 9 08-30 08:54:13.267: W/BroadcastQueue(2071): Background execution not allowed: receiving Intent { act=android.intent.action.DROPBOX_ENTRY_ADDED flg=0x10 (has extras) } to com.google.android.gms/.stats.service.DropBoxEntryAddedReceiver 08-30 08:54:13.267: W/BroadcastQueue(2071): Background execution not allowed: receiving Intent { act=android.intent.action.DROPBOX_ENTRY_ADDED flg=0x10 (has extras) } to com.google.android.gms/.chimera.GmsIntentOperationService$PersistentTrustedReceiver 08-30 08:54:13.304: E/memtrack(2071): Couldn't load memtrack module 08-30 08:54:13.304: W/android.os.Debug(2071): failed to get memory consumption info: -1 08-30 08:54:13.313: W/eportingProces(8879): Unexpected CPU variant for X86 using defaults: x86 08-30 08:54:13.320: E/memtrack(2071): Couldn't load memtrack module 08-30 08:54:13.320: W/android.os.Debug(2071): failed to get memory consumption info: -1 08-30 08:54:13.347: I/Zygote(8909): seccomp disabled by setenforce 0 08-30 08:54:13.347: I/h.CrashReporte(8909): Late-enabling -Xcheck:jni 08-30 08:54:13.350: I/ActivityManager(2071): Start proc 8909:org.mozilla.focus.debug:mozilla.components.lib.crash.CrashReporter/u0a95 for activity org.mozilla.focus.debug/mozilla.components.lib.crash.prompt.CrashReporterActivity 08-30 08:54:13.357: I/BackdropActivity(6200): onResume()

    Build: 8/30 Main

    crash 🔥 eng:ui-test eng:intermittent-test eng:disabled-test 
    opened by AndiAJ 54
  • Investigate biometric prompt

    Investigate biometric prompt

    Why/User Benefit/User Problem

    I want to make Focus even more private by restricting its access only to me, even as I share my phone to another person.

    What / Requirements

    A “Lock” feature with a native biometric prompt that opens and unlocks Firefox Focus, for users who choose to have it and run compatible Android devices.

    Acceptance Criteria (how do I know when I’m done?)

    • Potentially a Settings menu item
    • Potentially a UI Tour prompt to enable “touch to unlock” (only for compatible devices)
    • Further behaviour (lock on exit, auto-lock over a period of time) to be discussed
    • Does not cover PIN code creation. Just biometric prompt.
    feature UX testing P2 size S eng:automation 
    opened by brampitoyo 48
  • Intermittent UI test failures caused by ANR errors

    Intermittent UI test failures caused by ANR errors

    Tracking here all intermittent errors caused by frequent app ANRs

    7/10 Main

    openCustomTabInFocusTest Firebase link

    Stacktrace:

    07-10 08:12:36.973: I/WindowManager(476): Input event dispatching timed out sending to org.mozilla.focus.debug/org.mozilla.focus.activity.MainActivity. Reason: 6b31005 org.mozilla.focus.debug/org.mozilla.focus.activity.MainActivity (server) is not responding. Waited 5004ms for FocusEvent(hasFocus=false) 07-10 08:12:37.114: D/GeckoViewProgressDelegateC: handleEvent: MozAfterPaint 07-10 08:12:37.127: I/ActivityManager(476): Force stopping org.mozilla.focus.debug appid=10152 user=0: finished inst 07-10 08:12:37.128: I/ActivityManager(476): Killing 12192:org.mozilla.focus.debug/u0a152 (adj 0): stop org.mozilla.focus.debug due to finished inst 07-10 08:12:37.115: D/GeckoViewProgressDelegateC: handleEvent: MozAfterPaint 07-10 08:12:37.133: W/Binder(12044): Caught a RuntimeException from the binder stub implementation. 07-10 08:12:37.133: W/Binder(12044): java.lang.SecurityException: Calling from not trusted UID! 07-10 08:12:37.133: W/Binder(12044): at android.app.UiAutomationConnection.throwIfCalledByNotTrustedUidLocked(UiAutomationConnection.java:525) 07-10 08:12:37.133: W/Binder(12044): at android.app.UiAutomationConnection.shutdown(UiAutomationConnection.java:429) 07-10 08:12:37.133: W/Binder(12044): at android.app.IUiAutomationConnection$Stub.onTransact(IUiAutomationConnection.java:390) 07-10 08:12:37.133: W/Binder(12044): at android.os.Binder.execTransactInternal(Binder.java:1159) 07-10 08:12:37.133: W/Binder(12044): at android.os.Binder.execTransact(Binder.java:1123) 07-10 08:12:37.143: W/ActivityTaskManager(476): Force removing ActivityRecord{f26d1bf u0 org.mozilla.focus.debug/org.mozilla.focus.activity.IntentReceiverActivity t11 f}}: app died, no saved state 07-10 08:12:37.147: D/AndroidRuntime(12044): Shutting down VM 07-10 08:12:37.149: W/ActivityTaskManager(476): Force removing ActivityRecord{5d24ec9 u0 org.mozilla.focus.debug/org.mozilla.focus.activity.MainActivity t10 f}}: app died, no saved state 07-10 08:12:37.155: I/ServiceChildProcess(12972): Destroying GeckoServiceChildProcess 07-10 08:12:37.163: W/WindowManager(476): Cannot find window which accessibility connection is added to 07-10 08:12:37.163: I/ActivityManager(476): Killing 12972:org.mozilla.focus.debug:tab16/u0a152 (adj 0): stop org.mozilla.focus.debug due to finished inst 07-10 08:12:37.165: I/ActivityManager(476): Killing 13104:org.mozilla.focus.debug:gpu/u0a152 (adj 0): stop org.mozilla.focus.debug due to finished inst 07-10 08:12:37.166: W/WindowManager(476): Failed looking up window session=Session{d03a622 476:1000} callers=com.android.server.wm.WindowManagerService.windowForClientLocked:5425 com.android.server.wm.WindowManagerService.removeWindow:1892 com.android.server.wm.Session.remove:193 07-10 08:12:37.187: D/WindowManager(476): notifyANR took 242ms

    eng:ui-test eng:intermittent-test 
    opened by AndiAJ 47
  • Provide in-app communications to users about new or existing features

    Provide in-app communications to users about new or existing features

    Why/User Benefit/User Problem

    • Help users explore new features that might be useful for them

    What / Requirements

    • Build a control (outside of app releases)
    • Show hint inside app (e.g. home screen)
    • Setting to turn of hints
    • Should it be built as an Android component?
    • Define locale (we might want to run it for US/CA only)

    Acceptance Criteria (how do I know when I’m done?)

    • Allow slicing users based on specific events
    • Probes and system to perform analysis of results
    feature needs strings blocked ready for Eng breakdown A/B experiment 
    opened by bbinto 40
  • Design icon to show blocking is OFF

    Design icon to show blocking is OFF

    The current icon – shield with ‘x’: https://cl.ly/3d1E1W1Q1o2y – isn’t yet final.

    We should align this redesigned icon with the rest of Photon iconography.

    feature 
    opened by brampitoyo 40
  • Just-in time information and one-tap action – Default Browser

    Just-in time information and one-tap action – Default Browser

    Why/User Benefit/User Problem

    • Allow users to quickly set Focus as their default browser

    What / Requirements

    • Provide intent sheet on a specific trigger (screen tip and/or settings page)

    Acceptance Criteria (how do I know when I’m done?)

    • Intent sheet showing up and working
    • User can set Focus as their default browser without leaving the app

    Success criteria/Telemetry

    • Probe to track how many times/people initiated the intent sheet and selected Focus successfully

    Per https://github.com/mozilla-mobile/focus-android/issues/2816#issuecomment-402697895 @brampitoyo should think of a nice contextual hint to ask users to set default browser.

    testing size M eng:automation 
    opened by Sdaswani 38
  • Add an option to stop trusting Cloudflare certificate

    Add an option to stop trusting Cloudflare certificate

    Please consider adding a checkbox to reject website if it is using Cloudflare's certificate. The reason is Cloudflare is very anti-Tor & anti-privacy company which collect your data to build a internet profile.

    If you don't add this feature, I or other privacy activist can assume Firefox Klar is not a privacy app.

    See: https://trac.torproject.org/projects/tor/ticket/18361#comment:236 https://trac.torproject.org/projects/tor/ticket/18361 https://trac.torproject.org/projects/tor/ticket/24351 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=831835

    feature P5 feature request 
    opened by StopMITMInternational 35
  • Multitasking within Focus, switching between sites

    Multitasking within Focus, switching between sites

    Tasks

    • [x] Finalize UX spec
    • [x] Land strings so that L10N team can translate them
    • [x] Refactor app architecture to support multiple sessions
    • [x] Implement new Floating Action Button UI for opening and switching between tabs
    • [x] Add option to open a new tab to the context menu
    • [x] Add telemetry probes for all actions
    • [x] Verify whether we need additional telemetry (Number of tabs per session?)
    • [x] Testing: Do we still send all telemetry correctly?
    • [x] Testing: Custom tabs and other edge cases (Share to Focus, First run etc.)

    Follow-up bugs

    • #1230 - In new tab, trackers blocked setting is not remembered upon revisiting.
    • #1231 - New tab shows more than first subdomain
    • ~~#1239 - Animation when switching tabs~~
    • ~~#1240 - Remove Focus from "recent apps" when history was erased while in background~~
    • ~~#1241 - Back button behavior~~
    • ~~#1242 - UI/UX polish~~
    • #1245 - Update sheet expand/discard animation
    feature UX Default Browser Request strings-approved marketing 
    opened by bbinto 35
  • [l10n] New truncations on many locales

    [l10n] New truncations on many locales

    Seems like there are new truncations on many locales this time around (and that concern "top market locales" such as French, German and Polish - just to give an example). I'm going to list them all here, let me know if I should file a separate issue for each truncation and I can do that.

    These corresponding truncations can be seen here: https://npark-mozilla.github.io/index.html

    bug UX needs strings P3 size M wontfix 
    opened by Delphine 34
  • Google

    Google "search history" survives erasing browsing history

    Please can you add the below to Firefox Focus.

    1. Ability to remove search history. For example, my previous searches appears in the Google search bar when visiting www.google.com.

    2. Menu -> Open with Firefox. Can this option only appear to those who have Firefox installed.

    Thanks

    bug testing Granite Harlequin P1 QAApproved 
    opened by ghost 33
  • Upcoming changes to our Android repositories

    Upcoming changes to our Android repositories

    📢 Hi everyone,

    Today we're announcing two upcoming changes to our Android repositories and development processes that will make getting involved, building our products and shipping improvements to Firefox users simpler, easier, and a lot faster.

    In the coming months, we will be consolidating the Fenix, Focus and Android Components projects into a single new Firefox-Android repository. As part of that change, we also plan to move issue tracking to Bugzilla, migrating open GitHub tickets there in the process.

    Having our Android code under one roof has some obvious benefits as far as testing, CI and shipping are concerned - and we're expecting some big wins there! - but it also lowers barriers to community involvement and improves development speed. Whenever you can turn a complex process into one command in one repo everyone benefits, from partners and first-time contributors to veteran developers and release engineers alike.

    Moving issue tracking to Bugzilla offers many similar benefits, including tighter coordination with Mozilla's internal teams and outside partners, as well as robust community safety tools to name a few.

    Fenix, Focus and Android Components will stay on the same release cadence, we'll continue to maintain and publish components and all functionality as usual, and our artifact, package and application IDs will also stay the same.

    We wanted to announce this well ahead of time: while the schedule isn't firm yet, we intend to make this change in the next small number of months. As we prepare for this change, we want to thank you all for your help and support; your work has been critical to getting Android Components, Fenix, and Focus this far. We're grateful for your contributions, and believe these changes will make it easier to continue the amazing work that has brought these projects so far. We will reach out individually on all open Pull Requests to discuss next steps, and we'll also take care of migrating open tickets, when the time comes.

    If you’d like to get in touch, you can find us on Matrix in the following channels: #fenix:mozilla.org #focus-android:mozilla.org #android-components:mozilla.org

    Thank you!

    opened by moz-mobile-admin 0
Releases(v108.1.0)
Owner
Mozilla Mobile
Mozilla Mobile Applications
Mozilla Mobile
The Privacy Friendly QR Scanner belongs to the group of Privacy Friendly Apps

Privacy Friendly QR Scanner The Privacy Friendly QR Scanner belongs to the group of Privacy Friendly Apps. The app supports its users in detecting mal

SECUSO 198 Dec 30, 2022
A Simple Privacy Browser - Some ScreenShots(Actual App Even Looks Better 😃 ):

Lets_Browse A Simple Privacy Browser. Some ScreenShots(Actual App Even Looks Better ?? ): Features ?? : Bookmark Webpage Save Webpage as Pdf(Once Page

Harsh H. Rajpurohit 13 Dec 8, 2022
Episodie is a TV show time tracker app with unusual design written in kotlin and clean architecture approach. Get to know how much time you spent watching tv shows.

Episodie Episodie is a TV show time tracker app with unusual design. Get to know how much time you spent watching tv shows. Track easily overall progr

Przemek 126 Dec 7, 2022
Proof of concept of custom widgets and apps running on the Z Flip3 cover screen. Adds a widget to Z Flip3 cover screen that lets you launch a web browser-like app on the cover.

SubUI-browser Proof of concept of custom widgets and apps running on the Z Flip3 cover screen. Adds a widget to Z Flip3 cover screen that lets you lau

null 35 Dec 24, 2022
Browse your memories without any interruptions with this photo and video gallery

Simple Gallery Simple Gallery Pro is a highly customizable lightweight gallery loved by millions of people for its great user experience. Organize and

Simple Mobile Tools 2.8k Jan 4, 2023
Secret Codes is an Open Source application that allows you to browse through hidden codes of your Android phone.

####Secret Codes is an Open Source application that allows you to browse through hidden codes of your Android phone. This application will scan throug

Simon Marquis 251 Jan 6, 2023
An android app to browse KDE Store and other Linux Desktop Environment stores of Pling

A free and open source android application for browsing KDE Store and other Linux Desktop Environment's Stores in Pling. Couldn't check it in different devices so there could be some bugs. Bug Report and Feedbacks are highly appreciated.

null 14 Dec 27, 2022
⏺ A simple android app to browse your phone call recordings

⏺ Reky A simple android app to browse your phone call recordings [Under Construction] ✅ TODO Support more file name formats ?? Built-with MVVM with Si

theapache64 12 Feb 8, 2022
TetaNews - Application to browse news of Ukraine

Teta News Application to browse news of Ukraine Overview App show the scrollable

null 0 Feb 17, 2022
Bundel is a digital wellbeing Android app, helping you to focus by grouping up notifications and only releasing them in batches

Bundel is a digital wellbeing Android app, helping you to focus by grouping up notifications and only releasing them in batches, at set times. This minimises context switching and improves productivity, while decreasing the impulse to continuously check your phone.

Sebastiano Poggi 238 Dec 27, 2022
Easy app for managing your files without ads, respecting your privacy & security

Simple File Manager Can also be used for browsing root files and SD card content. You can easily rename, copy, move, delete and share anything you wis

Simple Mobile Tools 1.2k Dec 30, 2022
HideDroid is an Android app that allows the per-app anonymization of collected personal data according to a privacy level chosen by the user.

HideDroid An Android App for preserving user privacy HideDroid is an Android app that allows the per-app anonymization of collected personal data acco

null 100 Dec 12, 2022
NamelessnessR is a vpn hub that combines a number of vpn protocols to provide a hub to a single vpn powerful to protect your privacy only.

NamelessnessR Design concept The Design concept is designed using adobe xd basing of different ideas but mainly Anxray, V2rayNG and NamelessnetX with

mxbhaee 2 Jan 13, 2022
NamelessnessR is a vpn hub that combines a number of vpn protocols to provide a hub to a single vpn powerful to protect your privacy only.

namelessnexR Design concept The Design concept is designed using adobe xd basing of different ideas but mainly Anxray, V2rayNG and NamelessnetX with N

mxbhaee 2 Jan 13, 2022
All news in one place - one application

nuntiumNewsApp Nuntium | Daily News App Nuntuim news app is a personalised news aggregator that organises and highlights what’s happening in the world

Ro'ziboyev Ismoil 1 Dec 3, 2021
You can store all your password, bank details, card details in one place and remember only one master PIN. The application works totally offline.

Keep Password An application where you can store all your password, bank details, card details in one place and remember only one master PIN. The appl

rıdvan 4 Apr 18, 2022
Google one tap sign in - Flutter Google One Tap Sign In (Android)

Google One Tap Sign In Google One Tap Sign In (Android) A Flutter Plugin for Google One Tap Sign In Getting Started To access Google Sign-In, you'll n

null 6 Nov 23, 2022
A lightweight Android browser with modern navigation

Lightning Browser Speed, Simplicity, Security Download Master Branch Dev Branch Features Bookmarks History Multiple search engines (Google, Bing, Yaho

Anthony Restaino 1.9k Dec 28, 2022
A secure, open source web browser for Android.

SmartCookieWeb A secure, free and open source WebView-based web browser for Android. Beta Releases • Docs • Website Important note: Google recently an

null 224 Jan 1, 2023