GithubHelp home page GithubHelp logo

arunkumar9t2 / lynket-browser Goto Github PK

View Code? Open in Web Editor NEW
465.0 36.0 82.0 56.98 MB

🌐 A better browser for Android using the Custom Tab protocol. Previously called Chromer.

License: Other

Java 50.40% HTML 1.33% Kotlin 47.24% AIDL 1.02%
android-browser google-chrome rxjava mvvm dagger2 kotlin browser reader

lynket-browser's Introduction

Lynket

Android browser app based on Custom Tabs protocol.

Lynket utilizes Chrome Custom Tab API to create a customized browsing experience while adding innovative features like background loading with floating bubbles, article mode and multitasking using Android's recent menu.

Lynket is available for free on the Google Play Store.

Get it on Google Play

If you have got some time, read the introduction post on my blog or watch intro Video

enter image description here

Features

Features Demo
Web heads - Floating bubbles to load multiple links and launch them. enter image description here
Web heads - Intelligently manages background loading of Custom Tabs using Android's overview screen. Uses Lollipop Document API. enter image description here
Provider - Lynket works with any custom tab compatible browser. This means features like adblock, Google Account sync, data saver are inherited. enter image description here
Article mode - Filters all unnecessary content and renders web page on a RecyclerView efficiently. Uses Crux library. enter image description here
Minimize and Tabs - Lynket can minimize the tab and also show all active tabs for you to quickly switch to. enter image description here

Architecture and Code Structure

Lynket is written on a MVVM Architecture and uses Dagger 2 for dependency injection. The source code is packaged based on feature.

app/src/java/<package>
	<feature_1>\
	<feature_2>\
	shared\
	utils\

Architecture

Below outlines sample structure of most screens. enter image description here

Code Style

  • mNo Hungarion notation.
  • No Impl suffixes for interface implementations. Instead name based on what it does. Ex: AppStore and implementations AppDiskStore and AppSystemStore.
  • All new modules are preferred to be written in Kotlin
  • Formatting - Android Studio Default.

Contributions

You are more than welcome to contribute to Lynket's development. New features are branched off of develop . PRs are welcome against the develop branch. How you can help:

  • Grab an issue from issues section that interests you.
  • Unit testing using Roboelectric and Dagger 2 is already setup but coverage is rather low. Adding tests to existing features would greatly help! Refer src/test/.
  • Break the ice. Feel free to create an issue to discuss your ideas.

License

Lynket is licensed under the GNU v3 Public License.

lynket-browser's People

Contributors

arunkumar9t2 avatar bbuhler avatar iprithvitharun avatar oj7 avatar spacebison avatar subhrajyotisen 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

lynket-browser's Issues

Bottom color bug when incognito

Default color for toolbar is used for bottom bar color instead of webpages' for some websites, which makes the bottons nearly visible when light color is set as default.

Screenshot

Not able to run

@arunkumar9t2
I am getting this error while running this project:

Error:Project :app declares a dependency from configuration 'compile' to configuration 'default' which is not declared in the descriptor for project :RxSuggestions:library.

Recovering session or recently closed tabs

I use Chromer in web heads mode. Occasionally I have had all webheads disappear, prseumably due to a crash. Some I think sometimes it Chromer has asked me to reopen old tabs when restarted but not today.
Is there a way to try and make it reopen recently closed tabs without being prompted? I can not find anything like that in the menus

Encoding problem in search bar

Hi, i have a problem with Turkish characters in search area. They are not displaying correctly. (e.g. "ΓΆ" "Γ§")
Screenshot here:
photo_2017-11-26_20-25-39

Is it possible to use app's own webview?

Some apps have their own webview for photos/links, but chromer forces me to choose a secondary browser for blacklisted apps.
Is there any way to stick with webview for those particular apps?
Thanks!

Refactor bottom bar in Chrome Custom Tabs

Current implementation of bottom bar uses deprecated method for displaying bottom bar. Need to refactor this to use RemoteViews and also consider reducing the bottom bar height.

Unable to build in Android Studio

I can't build the app in Android Studio (both stable and beta).

2017-09-18 22:12:21,218 [ thread 15]   WARN - ect.sync.idea.ProjectSetUpTask - Project :app declares a dependency from configuration 'compile' to configuration 'default' which is not declared in the descriptor for project :RxSuggestions:library.
Consult IDE log for more details (Help | Show Log) 
2017-09-18 22:12:21,219 [ thread 15]   INFO - e.project.sync.GradleSyncState - Gradle sync failed: Project :app declares a dependency from configuration 'compile' to configuration 'default' which is not declared in the descriptor for project :RxSuggestions:library.
Consult IDE log for more details (Help | Show Log) (24s 979ms) 

editing a source code

Error:Project :app declares a dependency from configuration 'compile' to configuration 'default' which is not declared in the descriptor for project :RxSuggestions:library.

FDroid?

Can you make this available on FDroid?

Make Lynket implement Custom Tab protocol by itself.

Even though Lynket was meant to allow apps to use Custom Tabs by default, it never registered as a Custom Tab provider itself.

Make it implement Custom Tab protocol leads to lot of interesting advances. For example, we could use mayLaunchUrl to preload web site metadata/amp/article etc.

On a more important note, we can even do a pass through like functionality, where we can take the Bundle provided by client app and forward it to desired Custom Tab provider. This is useful for some users who prefer Lynket not take over if the app already implements CCCT.

Allow custom names for Chromer shortcuts and implement new Oreo API

When you open a web page then go to Context Menu > More > Add to Home Screen, the Chromer shortcut gets the title of the page for its name. This is annoying on websites that do not have descriptive titles on every page. Please add a pop-up to give the shortcut a custom name if desired.

Focus back button bug

Pressing the back button does not properly close a Focus custom tab (using slide over mode). It leaves the "erase browsing history" notification active, whereas it should instead perform the same action that pressing the "x" in the upper left does (thereby removing this notification).

Thank you, and keep up the great work!

Add support for cct in the nav ring

I 'd like to put a cct in the nav ring (gets visible when you swipe from bottom to top over the home button) Currently only Chromer as the app itself can be put there, but not a cct with specific URL.

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.