Giter Club home page Giter Club logo

biglybt-android's Introduction

BiglyBT-Android

API License

BiglyBT for Android is an ad-free, fully featured open source bittorrent client and remote control optimized for phones, tablets, Chromebooks, and Android TVs.

You can find our app on Google Play. Here's a link that maybe Google Search will like ๐Ÿ˜‰ BiglyBT: Torrent Downloading Client for Android

You can also get it F-Droid:

Get it on F-Droid

This is fork of Vuze Remote for Android, which stopped development in early 2017.

Contributing

Spread the Word

As a user, the most important thing you can do to help us is to spread the word of BiglyBT. BiglyBT is fairly unknown. Mentioning BiglyBT on your favorite tracker site, blog, wiki, facebook, social media sites, and to friends would help us a lot. Don't get discouraged.

Other people will have different client preferences than you, and they will often feel attacked when someone talks about a client that isn't theirs. Try to keep discussions positive and informative! We want to co-exist with all clients, since all clients can help share.

Translations

Our translations for BiglyBT for Android are typically behind compared to BiglyBT core translations. Our Android project only has a couple of dozen languages, compared to the 40+ in BiglyBT core, and most of them are terribly incomplete.

Preferably, we'd love it if your native language wasn't English, however, anyone fluent in another language is very much appreciated.

To join in on the translations, please visit our BiglyBT-Android CrowdIn project. Translations are open to anyone with a CrowdIn account. If you would like to translate into a language that isn't listed, please let us know by creating a GitHub Issue and we will add it!

Code Style

In Android Studio, we use the plugin Eclipse Code Formatter to format the code, with the scheme in app/PreferencesJavaCodeStyleFormatter.xml

Building

Initial Steps

Due to a long git history for the core source (2003->present), ensure you have at least 400MB available.

  1. Import into Android Studio as New Project

  2. (Optional) Choose the correct build variant to compile with using Build->Select Build Variant. The most usable variant is coreFlavorFossFlavorDebug.

Migrating source from pre-1.3.1.0

What's Changed

Prior to 1.3.1.0, BiglyBT Core library was included as a jar, and a shell script was required to grab the plugin .jar files. Starting with 1.3.1.0, core and plugins are included as git submodules.

In the new structure, the Android specific code has moved from BiglyBT\ to the standard app\ folder.

Manual Source Migration Steps

If you pulled prior to 1310, this section is for you.

  1. Updating project from VCS will likely result in the new submodules not being initialized (the directories core, BiglyBT-plugin-*, mldht will be empty). To fix this, run in the Terminal window (with path at the root of the project):

    git submodule update --init

    git should reply with a checkout of 6 submodules

  2. File->Sync Projects with Gradle Files will properly setup the plugin and core module source paths.

  3. You can remove the BiglyBT folder in the project root. After the sync, it will not be marked as a Module by Android Studio, and will contain mostly empty directories, along with plugin jars that are no longer used or referenced.

    Be sure to look at your git local changed first, in case you have files that you still want.

  4. Check Settings->Other Settings->Eclipse Code Formatter, and ensure the config file path is correct. It's been moved from /BiglyBT to /app, but VCS may have prevented it from updating.

  5. Restart Android Studio. If you use the IntelliJ plugin 'Awesome Console', file links may not work until you restart.

Updating Source

No special steps are needed to update the android source. A simple VCS->Update Project... will suffice.

You can occasionaly check for submodule updates with the git submodule update in the Terminal window (Newer Android Studio versions may do this automatically with Update Project...)

biglybt-android's People

Contributors

biglybt avatar john2020star avatar lislei avatar parg avatar poussinou avatar shusshu avatar thew0lverin3 avatar tuxpaper 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

biglybt-android's Issues

Use different peer id than desktop version of BiglyBT

Please use different peer id to differentiate between mobile and desktop clients. If this issue is not satisfied, we can not continue whitelisting this client. Additional points (both related and unrelated) quoted from my posts on AnimeBytes

Additionally the core library used by Android application is provided in form of compiled Java classes - https://github.com/BiglySoftware/BiglyBT-Android/tree/master/BiglyBT/libs. While commit implies it comes from https://github.com/BiglySoftware/BiglyBT/tree/android there is really no way to verify it. It also seems that Android application announces itself as BiglyBT 1.5 (https://github.com/BiglySoftware/BiglyBT/blob/android/core/src/com/biglybt/core/util/Constants.java#L159) which is strictly incorrect as you can see that 'android' branch has diverged from 'master' branch (This branch is 15 commits ahead, 16 commits behind master.). We are now in situation where two different clients announce as one and we're considering this to be spoofing on part of BiglyBT Android application to imitate desktop client.

Irrelevant of our no mobile client policy which is a part of why BiglyBT is now blacklisted, there is an issue of two clients that are going to potentially diverge further away in terms of functions are announcing as same client.

Incompatible SDK API use which may cause crash to your APP

Hi BiglyBT Developers,
I develop a tool to detect incompatible SDK API use in android application. Today I use my tool to check BiglyBT downloaded from F-Droid. My tool report many bugs. Although I believe most of them are real bugs, I cannot be 100% sure because I am not very familiar with Android developing. So
please help to check it, it must be very helpful to your APP.

The attachment below is the bug report that my tool give. please help to double check!
I also really hope to get your feedback.
thank you!

[Supplementary explanation]
There are totally two type of bug in the report. The first one is like this: "API called in method not in [list]", the list here are sdk levels, it means your app run under these SDK version can not call API because no such API in these sdk levels.
Type two is like "API called in method no living level", it means your application can never reach this API
use, so if these API uses are not in external library, you can remove it from your own code.

APIs or methods in our report are given in signature format like "<declaringType: returnType methodName(paramTypeList)>".

And finally, the reachable path is actually one possible call stack. it is always start from dummyMainMethod which is created by our tool. So you should read it from bottom to top.

Yes, many of these bugs seem to be in third-library codes. But it do cause problems in your app. Some third-library API say that they can only be run at specific SDK Level by using "@targetapi(Build.VERSION_CODES.N)", however, Application codes tend to ignore this warning.

Donejie He
[email protected]

com.biglybt.android.client_19.apk.report.txt

Andriod download directory

From @luckiestone on April 8, 2018 9:58

Hi,
I'm using BiglyBT with my android TV box Zidoo X10, which works perfect unless I can't choose an arbitrary directory to download my movies to. It's only possible to choose one of the provided ones.
Is it possible to add an option that we can choose any fold as a download directory? Or is this just an Android development restriction?

Copied from original issue: BiglySoftware/BiglyBT#434

Tablet UI instead of phone UI

It shows tablet UI with fixed sidebar on my OnePlus 3 instead of phone UI. Maybe a toggle could be added to change between both?

Crash when folding up a group of torrents

When the torrent list has multiple items, grouping rows will appear allowing you to collapse a section. For example, if you sort by State, torrents downloading will be under one header, seeding will be in another, etc.

Sometimes, when clicking on the button in the header to collapse the section, the app will stall and crash. This happens usually on the bottom most grouping, and when one of the torrents is removed before the header is updated to reflect it.

Android Gradle Flavors

More info on flavors: https://developer.android.com/studio/build/build-variants.html

Which flavors are you truly after?
Is the following what you would like to build:

In the current setup
1.a Core & GA - debug
1.b Core & GA - release (store ?)
2.a Core & noGA - debug
2.b Core & noGA - release

Do you really need those:
3.a noCore & noGA - debug
3.b noCore & noGA - release
4.a noCore & GA - debug
4.b noCore & GA - release

If I understand correctly the core is to download torrent directly on the device.
thus is the noCore still needed?

CRASH: [Error Connecting] error:IllegalArgumentException: invalid core parameter: Max Upload Speed Seeding KBs.

The Windows client can't be accessed by the remote while seeding (stop seeding and it works).

It will fail with a dialog titled "Error Connecting" with "log out" & "Continue" buttons and the text
"error:IllegalArgumentException: invalid core parameter: Max Upload Speed Seeding KBs."

Crash Dialog - Screenshot_20190910-134426

BiglyBT remote will hang after the "Continue" button is pressed.

This is what the Windows BiglyBT client shows (note the "800K-600K" bit):

Bigly BT dies - cropped - Screenshot @ 10_09_2019 , 1_40_26 PM, D_ 0 00 k U_ 0 00 k

When I stop seeding and the remote works the "800K-600K" bit shows as "800K".

Based on this I'm pretty sure I can change the client options to prevent the remote failing but I'm reporting the bug to have it fixed.

SecurityException when opening torrent using another app

When opening a torrent in another app, such as Chrome, and choosing BiglyBT, the torrent will not open and an error will appear with something like:

  • SecurityException:Permission Denial: opening provider org.chromium.chrome.browser.util.ChromeFileProvider from ProcessRecord
  • SecurityException:Permission Denial: opening provider mozilla.components.feature.downloads.provider.FileProvider from ProcessRecord
  • SecurityException:Permission Denial: opening provider com.android.providers.downloads.DownloadStorageProvider from ProcessRecord

Sometimes, repeating the steps in the app (ie, launching the torrent again from Chrome) will make it work.

We've only been able to reproduce it once, and could not again (yet)

Any additional information would be helpful.

This bug seems affect most Android OS versions from v7.0 (N/API 24) and up.

It's probably something in my code that I'm not doing properly :/

Icon/Logo Proposal

Hello Sir. I am a graphics designer and I am willing to submit my design for your project.

Thanks before.

Error adding torrent

I had a lot of issues adding torrents on my Xiaomi Mi Box S, it worked temporarely when saving files to an external storage but only within the bigly files folder. All of the sudden it stopped working and now im getting an error that reads Error adding torrent: error: DownloadException: DownloadManager::addDownload: default torrent save directory must be configured while trying to add anything via the web UI.

I figured it was the write permissions on an NTFS drive, so i changed it to internal storage but that had no effect, im still getting the same error even with the external drive unplugged and the default directory set to different locations, including the biglybt folder on the internal storage and the downloads or the movies folders.

Clearing the data and reinstalling didn't help.

1

Edit: Stopped getting that error with the default folder configuration all of the sudden, it could just be my box that's not working properly

Wifi SSID BlackList or WhiteList

Add the ability to allow torrenting network activity only when on specific WIFI SSIDs (names), or to stop torrenting activity when on specific SSIDs.

Kotlin & Java

Do you mind if we mix both kotlin and Java?
I love to make kotlin stuff

Request: setting for default save paths

I've been through the settings but not yet added a torrent & I've come here looking for this setting.
I see from another issue that this can appear in the 'save' dialogue but I would prefer somewhere I can get to without adding a new torrent.
I categorize torrents & wish to keep the files separated by category.

First-launch options are asked but not saved

When running Bitly for the first time (fresh install, or after "delete app's data" command) right after GDPR warning (should it ever be shown in Russia?) it offers few checkboxes.

Regardless of what i put there, it is not saved and further i need to go app options and set them there.

Notice how are set checks for AutoStart and for Mobile Network

screenshot_20190308-040317
screenshot_20190308-040339

Change Save Location doesn't work on Android TV

I'm using an NVidia Shield Android TV device. When I select the option to change save location, it lists all of the available locations, but doesn't allow me to select any of them. Even if I highlight an option, pressing the select button does nothing and the OK button remains disabled, leaving me with no other option but to cancel out of the dialog.

Select all files

From @adrium on December 9, 2018 6:23

Situation

When adding a torrent, the "wanted" files can be selected.
Per default, all of the files are selected.
Folders and files can be marked "unwanted".

Feature Request

Some torrents contain hundreds of files, but you only want to download one or two. It takes a lot of time to uncheck every unwanted file.

There should be a Select All / Deselect All functionality. Either by seperate buttons, or by displaying a "virtual root folder" named like the torrent.

Info

  • Android 8.1
  • BiglyBT Version 1.2.1

Copied from original issue: BiglySoftware/BiglyBT#746

[feature request] set default file permission

I am using BiglyBT inside a docker container.

The volumes where torrent files and downloads are stored are link to folders that are shared via samba.
To edit/delete my downloads via samba I need write permission for group. (e.g. 775)

I tried setting umask 0002 inside .bashrc but this seems to not affect BiglyBT.

So I get this:

-rw-r--r-- 1 downloader users 928670754 Apr  6 17:22 Big_Buck_Bunny_1080p_surround_FrostWire.com.avi

But I want this:

-rw-rw-r-- 1 downloader users 928670754 Apr  6 17:22 Big_Buck_Bunny_1080p_surround_FrostWire.com.avi

Maybe there is another way to achieve this?! Some java parameter perhaps?

Thanks

Custom listen port

I need to be able to specify a certain incoming listen port for my VPN provider to forward. Please allow for this setting in BiglyBT. Thanks!

Okhttp

One thing cough my eye

    // We use libs/okhttp-3.5.0.jar without a HttpHeaders.class so that we
    // can overwrite it to handle a bug in the client's Vuze core.  When the
    // majority of users are on a fixed version of Vuze, we can use maven
    //compile 'com.squareup.okhttp3:okhttp:3.5.0'
    compile files('libs/okhttp-3.5.0.jar')

I guess now that it's BiglyBT we can upgrade to the latest okhttp ?

I'l be improving the gradle configuration in the coming days (hopefully)
Do you mind if I put a minSdk to 15 ? Nobody uses 11 to 14 and you don't really want to support 9 & 10 plus it's hardly used either https://developer.android.com/about/dashboards/index.html

Setup issue / slow download speed on Nvidia Shield Pro

Hi everyone,
I am new to torrent software and I just got an Nvidia Shield Pro with an external HDD connected via USB. I setup BiglyBT to download torrents but the download speed is very slow despite being set to unlimited. I must have some setting incorrect. I was able to sideload the ttorrent app on the Shield and the same exact torrent downloaded in about 30 min as opposed to an estimated time of over 4 hours via BiglyBT. I am looking for the best software to use on the Shield that I may be able to use remotely also. If anyone can help or point me to the right direction, I would appreciate it. Thanks in advance!

[feature request] Add support for Panic Button

Read more at here.

There're a couple of reasons for implementing the panic button:

  • Downloading torrents is illegal in some countries.
  • In the case if a public torrent, it could be something sensitive.
  • In the case of a private torrent, it's absolutely containing sensitive data.

Make an option so users can enable/disable the use of the panic button.

Change the locale

Translation (Russian) in the app is so bad, I can't understand a thing.
It also says that interface section in the options is supposed to give you a language option, but there isn't one.

I'm not sure torrent apps are really for people who need translation.
Bad translation is always worse than no translation.
Even with good translation, I personally always prefer original, if I understand it.

So please, please remove it or give the option to change the language.

No Way To Automatically Stop Seeding After Download Completes

I use bigly on my shieldtv first off.
Due to restricted bandwidth I can only seed certain days. In general with my PC i had my torrents stop once download was complete and i can restart seeding when ready. I need my torrents to stop seeding once downloading completes. Im not sure if i am missing a setting but i can not see this option anywhere. On my pc i could set seed goal to 0% and have the torrent stop once it reaches the goal so basically it would stop once download completes. Please direct me in right direction

  • OS and version
  • BiglyBT Version Number
  • For *nix: Desktop Environment

What is "Wanted" / "Unwanted"?

Couldn't find any documentation about this feature, and couldn't figure out what it does.
Can you please tell me what it does and preferably document it?

Thanks :)

Rss feed scanner on Android?

Is there a way to filter rss feeds to be auto downloaded to specified folders?
Example when filter for Westworld matches, it will be downloaded to Westworld folder.

RSS feed scanner on the Windows app allows you to do this.
Tried to download for Android, but got an error stating "Unsupported Vuze file component type: plugin"
https://plugins.biglybt.com/

Any work around?

Set download speed separately

Hello, adding an option to set up/dl speeds for Wi-Fi and mobile data plan srpatately could be useful. Thanks in advance.

Write to external SD

Hello,
After some extensive googling it seems that you should be able to write to external SD card (which is pretty much a must if you plan on torrenting on an android device).

The only thing is your destination folder should be /<externalsd>/Android/data/com.biglybt.android.client.
On that folder you should have write support.

I've installed BiglyBT on an Nvidia Shield TV, tried downloading to the above folder on a NAS share (mounted by the Shield it self - that is /storage/.../Android/data/com.biglybt.android.client), but keep getting permission errors on the above folder and can't get it to work.

Advanced network settings reset after shutdown

On Android TV when I set up advanced network settings in connection settings like this:
Screenshot_20200714-234534
BiglyBT pauses torrents when I disconnect from VPN as expected.

But when I restart BiglyBT, the settings are gone except one:
Screenshot_20200714-235050

Why does it reset, am I missing something?
(Screenshots from BiglyBT Android remote connected to Android TV, same settings can be seen on TV.)

details button

would be nice to have a 'Details' button that leads to the Internet Archive site like the PC version has.

Nvidia Shield TV Pro External Hard Disk issue

So I'm trying to download a torrent straight to an external hard disk, problem being BiglyBT won't recognize my external drive. I've heard it will only save to a specific folder on the hard disk which would be fine if it would even do that. Using the latest version of 1.2.6.6 of BiglyBT. Do I have to create this folder in question, I assumed Android would do that for me after mounting. Right now I have it formatted with NTFS. I'm going to try exFAT next to see if that works. I've been doing lots of reading but nothing explicitly answers my question.

Android 8 & services

You probably already know but let's be sure about it ;)

When targeting API 26 the following is becoming a "problem" https://developer.android.com/about/versions/oreo/background.html

I checked a bit the code and currently I see a foreground service that's already great :) I think it should continue to be a foreground service as you want to let the user know he might currently be downloading a bunch of stuff

Might want to update that for Android 8... but not really mandatory

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.