Thunderbottom / UltimateBrowserProject

android browser based on webview
http://bit.ly/XDAUBP
162 stars 59 forks source link

TO DO #69

Closed xdevs23 closed 8 years ago

xdevs23 commented 8 years ago

Here is everything what needs to be done and what has been recently finished.

Use following formatting:

 - [ ] something to do
 - [x] something finished

Just edit this comment and change the content below:


TO DO:

To fix:

To do:

Code status: Waiting for native updater to be completed and bugs to be fixed

xdevs23 commented 8 years ago

Now it works 😂

xdevs23 commented 8 years ago

Our stats are booming image

Thunderbottom commented 8 years ago

yeah they do when a new version comes out, I once hit 33k new users per month and 12.7k active sessions for 2-3 weeks when I released v.1.4.6.

Thunderbottom commented 8 years ago

People on XDA are complaining that tab switcher cannot switch tabs...

Thunderbottom commented 8 years ago

They're using volume keys to switch tabs

Thunderbottom commented 8 years ago

I think it is device dependent cause it is working for me on some devices and not on others..

xdevs23 commented 8 years ago

Yes I think it is device-dependent...

Thunderbottom commented 8 years ago

Do you have a quick fix for it? We'll release a incremental update soon then, maybe.

xdevs23 commented 8 years ago

I am currently working on the updater.

Thunderbottom commented 8 years ago

Like I've been planning weekly updates starting next year, which, hopefully, I'll start supplying on a weekly/bi-weekly basis

Thunderbottom commented 8 years ago

Well can you not do both by tomorrow? I mean it is hard but should be possible right? If you're enjoying with family, you can take your time because this is the time to enjoy imo :)

Thunderbottom commented 8 years ago

I'll also start the PDF thing soon so we should be at least stable till next year and we haven't updated for a long time so..

xdevs23 commented 8 years ago

I will try to fix it as soon as possible.

xdevs23 commented 8 years ago

I hope you know what I mean with "native".

The updater was a webview which loaded a webpage, and when you click on update, it downloads it and installs it.

Making it native is just removing the webview, creating a layout and doing everything in java.

Thunderbottom commented 8 years ago

Yeah I know what native is...

xdevs23 commented 8 years ago

Yep.. Just to be sure, because I don't want that you think I am going to use native libraries (C++)

Thunderbottom commented 8 years ago

Of course you aren't going to do that.. duh.

xdevs23 commented 8 years ago

Updater is finished

Thunderbottom commented 8 years ago

Cool, so we ready to host an incremental?

Thunderbottom commented 8 years ago

I'll do it tomorrow, will test this one thoroughly and post the update

Thunderbottom commented 8 years ago

So we'll know the bugs beforehand and I'll start working :) FINALLY!

xdevs23 commented 8 years ago

Some bugs are still there but some were already fixed after 2.0.

I think you can release an update.

Thunderbottom commented 8 years ago

Alright, testing now, will post an update tomorrow! have a good evening :)

xdevs23 commented 8 years ago

Thanks, a good evening for u too!

xdevs23 commented 8 years ago

Btw, as you can see, I added some cool features, such as DownloadUtils.downloadString(url). With this function you can download text files and save them into a String, without saving it onto the storage.

xdevs23 commented 8 years ago

Can you please take a look into my new project Cornowser It is a web browser based on Crosswalk (Chromium)

Thunderbottom commented 8 years ago

Hey @xdevs23 I'll check that later, I'm pretty busy with stuff right now, but I took a quick look at it and it seems pretty good.

@takahirom Is there any way that we can implement this from here into our search bar? Like it should show some search suggestions in the omnibox.

xdevs23 commented 8 years ago

Allright. Do you want to join the project? I have a good idea: we could share code across both projects. So, we can implenent good code from my project into yours and good code from yours into mine.

Thunderbottom commented 8 years ago

Sure!

xdevs23 commented 8 years ago

Great

xdevs23 commented 8 years ago

I used following regex patterns for detecting of address format:

    public static Pattern urlRegEx = Pattern.compile(
            "(" +
                    "(^(https|http|ftp|file|rtmp)://.*[.].*)|" +    // Protocols for adresses
                    "(javascript:).*" +                             // Javascript

                    ")"
    );

    public static Pattern urlSecRegEx = Pattern.compile(
            "(" +
                    "(.*[.].*)|" +                                  // Adresses without protocol
                    "(localhost).*|" +                              // localhost
                    "(.*[.].*[.].*[.].*)|" +                        // IPv4 adresses
                    "(.*(::|:).*)|" +                               // IPv6 adresses
                    "(.*@.*[.].*)" +                                // user@host.domain

                    ")"
    );

And it works perfectly fine. If it doesn't match it just searches the entered text on google.

And this is what I used for handling it:

    @Override
    public void load(String url, String content) {
        Matcher urlRegExMatcher     = CornResourceClient.urlRegEx   .matcher(url);
        Matcher urlSecRegExMatcher  = CornResourceClient.urlSecRegEx.matcher(url);
        String nUrl = url;
        if(urlRegExMatcher.matches()) nUrl = url;
        else if(urlSecRegExMatcher.matches()) nUrl = "http://" + url;
        else nUrl = "https://google.com/search?q=" + url.replace(" ", "+");
        super.load(nUrl, content);
    }
Thunderbottom commented 8 years ago

Oh, we have this in here, don't we?

xdevs23 commented 8 years ago

We already have a regex pattern. I am going to improve it a bit. I think it is no difference between the result of mine and yours, you can decide which you take.

xdevs23 commented 8 years ago
String regex = "^((ftp|http|https|intent)?://)"                      // support scheme (how about javascript:?)
                + "?(([0-9a-z_!~*'().&=+$%-]+: )?[0-9a-z_!~*'().&=+$%-]+@)?" // ftp.user@
                + "(([0-9]{1,3}\\.){3}[0-9]{1,3}"                            // IP -> 199.194.52.184
                + "|"                                                        // IP DOMAIN
                + "([0-9a-z_!~*'()-]+\\.)*"                                  // -> www.
                + "([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]\\."                    //
                + "[a-z]{2,6})"                                              // first level domain -> .com or .museum
                + "(:[0-9]{1,4})?"                                           // Port -> :80
                + "((/?)|"                                                   // a slash isn't required if there is no file name
                + "(/[0-9a-z_!~*'().;?:@&=+$,%#-]+)+/?)$";

That is ours. But it is long and confusing.

Thunderbottom commented 8 years ago

Yea our's won't work...

Thunderbottom commented 8 years ago

And yeah we have also broken "Open links in the background" while you changed all those views so you'll have to fix that too...

xdevs23 commented 8 years ago

Yep... I have seen that this browser is a derivate of Ninja browser... Is that why you can't fix the bugs? I have to say that the views etc. were really messed up, that's why I had to change everything.

Thunderbottom commented 8 years ago

No, I can fix bugs but I have too little time with all the work I've got, this was just a fun project.

Thunderbottom commented 8 years ago

You can have it all if you want now, I have little to no time to continue this, maybe next year I can work on this again...

xdevs23 commented 8 years ago

Allright. I will take a look later. I want to get my browser to a stable state and release the first version, maybe until next year. Yes, that is possible. Somehow I do those things really fast, while others need a much longer time to do it.

Thunderbottom commented 8 years ago

I have a big list of features that many people want in a browser, do you want it? I can get it to you in maybe a day or two, and those are like the "most wanted" features in a browser. Also, you can take a look at Snapdragon Browser, If you can implement most of these stuff, then mark my words you'll have the best browser.

P.S. You can make some features as "Plugins" so that people get only what they want and no bloats, I'd have done this if I had time, and I started this shit thinking I'd have a lot of time to work on it, but oh boy, was I wrong... Also, from my experience, just do one thing at a time, as they say "Take what you have in your hand and use it, don't stretch out for something more, as the one thing you have in your hand will be lost", Good luck.

Thunderbottom commented 8 years ago

And I may wrap this stuff up soon, do you want me to have people check out your browser? cause your stuff sounds promising and you have good skills too..

xdevs23 commented 8 years ago

Well, as you might know, browsers which just use the webview could be dangerous because on older android versions the webview engines are outdated and on 4.3 and lower you have a very awful performance. It's a good idea to create a such lightweight browser, if you just want to save free space and have a good browsing experience though. I think you should let your project continue existing but only work on it until it is stable enough. Then we could work on Cornowser and make a better browsing experience... What do you think? I also will try including native ARM64 support to have best performance on new 64bit devices. And you need to know that I learned programming by watching youtube videos, searching for code examples in the net and trying out things myself. I am just 15 years old and do programming only as "spare time activity".

Anyways, how about my idea?

xdevs23 commented 8 years ago

First I have only programmed in Visual Basic, later I started learning HTML, CSS and JavaScript, I also have made my project in C++, and I started programming in Java. I made minecraft plugins and then started making android apps.

Now I can write code in Java, VB.Net, C++, HTML, CSS, SCSS, JavaScript, PHP and bash shell scripting.

xdevs23 commented 8 years ago

Here is some work in Visual Basic: https://github.com/xdevs23/xD

Thunderbottom commented 8 years ago

Yeah we can work on your idea, I'll just let 1.4.6. be the last version and from sometime around next year, I'll start helping you out. I still need to learn a lot, where specifically did you learn Android coding from? Cause I just did Java and read some documentations and then started to work on stuff. It was hard but now I have a good hold of it, although I'll need some Android specific videos to be good to go.

xdevs23 commented 8 years ago

I started watching YouTube videos about basic java programming, later I wanted to create my own java console program, which worked, and later I started watching videos about bukkit plugins.

And then I started watching a few videos about android programming. Then I just started programming and if I didn't know something or needed help I just searched on Google for solutions and used copy&paste.

With the time I learned the code and just tried things out without knowing what I am really doing and with the time I developed my programming skills and am always improving it with each line of code I write.

And I didn't buy any books etc. for learning it, I didn't participate in any course or similar, I just started doing it myself and now you can see the results.

My code might not be perfect or the best but it is not that bad and with each new line of code I improve my skills and experience.

Thunderbottom commented 8 years ago

Well I did the exact same thing, guess my practice just wasn't enough. Cool, now I have stuff to do in my leisure time! Thanks :)

xdevs23 commented 8 years ago

And never forget to not give up You can stop for a while if you can't solve a problem but later you might be able to solve it.

Thunderbottom commented 8 years ago

Well anyways, how farm along is your browser from initial release? You should totally post an XDA thread asking people what features they want because during the later time, when you have a release version, you might not want to change most of the code just to fit one feature in, so this just might be the right time to ask for features and show off your browser. I'll help you if you need.