GithubHelp home page GithubHelp logo

mozilla-mobile / focus-android Goto Github PK

View Code? Open in Web Editor NEW
2.1K 123.0 712.0 173.48 MB

⚠️ Firefox Focus (Android) moved to a new repository. It is now developed and maintained as part of: https://github.com/mozilla-mobile/firefox-android

Home Page: https://github.com/mozilla-mobile/firefox-android

License: Mozilla Public License 2.0

Java 16.35% HTML 6.58% CSS 0.04% JavaScript 0.01% Shell 0.57% Kotlin 71.95% Python 3.98% Dockerfile 0.51%
browser android privacy mozilla

focus-android's People

Contributors

aaronmt avatar ahunt avatar amejia481 avatar andiaj avatar boek avatar colintheshots avatar ekager avatar emmanuelmess avatar gabrielluong avatar iorgamgabriel avatar jayeshsolanki93 avatar jcristau avatar johanlorenzo avatar jonalmeida avatar layely avatar liuche avatar mastizada avatar mcarare avatar mcomella avatar mickeymoz avatar mozilla-l10n-automation-bot avatar mugurell avatar pocmo avatar rpappalax avatar rvandermeulen avatar sarah-clements avatar sblatz avatar siddware avatar subhrajyotisen avatar sv-ohorvath 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  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

focus-android's Issues

Support file downloads

Theme: Default Browser

User Story

I discovered content of a page that I want to revisit later (save to my device)

Feature

Support for downloads (file downloads, PDF, execs)

Background

Currently just nothing happens when clicking a link that should start a download.

This should be fairly easy to implement using WebView (I guess), but could be more complicated with Gecko. Downloads are not part of the GeckoView MVP. However we might be able to work around that with some custom JavaScript.

Maybe we just want to intercept the download and let Android's download manager perform the task (privacy concerns?).

Tasks

  • Implement DownloadListener
  • UX mocks / flow
  • Show dialog to let the user confirm the download (see UI mock)
  • Show snackbar once download is finished
  • Request runtime permission to write to external storage
  • Forward Download to Android's Download Manager
  • Add telemetry probe

UI mock

screen shot 2017-07-06 at 8 43 59 pm

Play store links crash: IllegalArgumentException: Malformed URI supplied

When opening a market:// URL linking to the Play store the app crashes:

System.err  W  java.lang.IllegalArgumentException: Malformed URI supplied
            W      at org.mozilla.focus.webkit.matcher.EntityList.isWhiteListed(EntityList.java:38)
            W      at org.mozilla.focus.webkit.matcher.UrlMatcher.matches(UrlMatcher.java:85)
            W      at org.mozilla.focus.webkit.TrackingProtectionWebViewClient.shouldInterceptRequest(TrackingProtectionWebViewClient.java:30)
            W      at android.webkit.WebViewClient.shouldInterceptRequest(WebViewClient.java:185)
            W      at com.android.webview.chromium.WebViewContentsClientAdapter.shouldInterceptRequest(WebViewContentsClientAdapter.java:321)
            W      at org.chromium.android_webview.AwContents$BackgroundThreadClientImpl.shouldInterceptRequest(AwContents.java:527)
            W      at org.chromium.android_webview.AwContentsBackgroundThreadClient.shouldInterceptRequestFromNative(AwContentsBackgroundThreadClient.java:38)

STR:

  • Go to mozilla.org
  • Scroll down to the Firefox teaser
  • Click on the "Get it on Google Play" button

Update FAB button

Currently, we went with a + icon from the Android lib., we should update that

Also we should match functionality here with

  • Forward,
  • refresh/stop
  • share

Telemetry

Core Ping:

  • add core ping
  • add missing core ping fields

Events:

  • event: bring_to_foreground
  • event: send_to_background
  • event: (share)
  • event: (open...various types)
  • event: browse (enter)
  • event: browse (intent)
  • event: search (type)
  • event: search (select)
  • event: erase (button)
  • event: erase (back)
  • event: settings change

Misc:

  • Send to production endpoint
  • Enforce limits (-> #428)

Add basic support for Android tablets

UX should work together with Eng here to figure out how to keep this simple and moving forward. We will likely be able to fork over a lot of the UX but there will still need to be some massaging I think.

Add "Search for" UI in awesomescreen

To match Focus on iOS, as the user is typing, let's add UI to give them the ability to commit a search instead of auto-completing the top alexa URL.

I'm calling the "typing" screen the awesomescreen here (just to be clear).

Show lock icon for secure https sites

Currently we show the lock icon whenever we are displaying a https URL. That's not ideal. The code should look at the certificate to determine whether this is a secure connection. Basically the same we do for displaying a "green lock" in Fennec.

It probably makes sense to wait until we switch to GeckoView before implementing this.

Hide WebView implementation behind interface

We want to be able to switch to GeckoView in the future (#13). Until then it would be handy to have a secondary gradle configuration for building Focus with GeckoView. To make this simple and less painful we should hide all WebView related things behind a shared interface.

Add proper launcher icon

Our current icon is the iOS icon dropped into Android's asset studio. The result looks quite bad. We need an actual icon.

Handle device rotation correctly

We either need to handle the rotation ourselves (that's what Fennec does) or restore the previous state correctly. Currently it is at least broken when opening a URL from an Intent and the device is rotated.

Create First Run screen for new users

Matching what we have on iOS would make the most sense here. Not sure if we 100% need the same animation with the wave graphic but I just wanted to file this first in case I forgot.

Transform into single activity app

Currently we have two activities:

  • MainActivity
  • BrowserActivity

To make navigation and intent handling easier it would be helpful to transform them into a single activity. In addition to that sometimes the content of the "main activity" is visible from the browser activity (Compare with iOS). That's also much easier if it's just one activity.

Add support for VIEW intents from other apps

A first version has been implemented in 74abf42. Currently we only refill the URL bar with the URL from the Intent and do not load the website directly. This prevents us from accidentally loading an URL that the user actually did not want to load. However this is not user friendly when opening multiple URLs a day.

Lower minSdkLevel

Currently we build the app for Android 7.0+. Let's investigate how far we can go down with adding overhead by implementing system features ourselves. This will primarily be driven by the feature set we require from WebView.

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.