Code Monkey home page Code Monkey logo

lbry-android's Introduction

LBRY Android

pipeline status GitHub license

An Android browser and wallet for the LBRY network.

LBRY Android GIF

Installation

The minimum supported Android version is 5.0 Lollipop. There are two ways to install:

  1. Via the Google Play Store. Anyone can join the open beta in order to install the app from the Play Store.
  2. Direct APK install available at http://build.lbry.io/android/latest.apk. You will need to enable installation from third-party sources on your device in order to install from this source.

Usage

The app can be launched by opening LBRY from the device's app drawer or via the shortcut on the home screen if that was created upon installation.

Running from Source

Clone the repository and open the project in Android Studio. Android Studio will automatically run the initial build process.

Create file 'twitter.properties' in app/ folder with the following content:

twitterConsumerKey=XXXXXX

twitterConsumerSecret=XXXXXX

Copy the file 'google-services.sample.json' to 'google-services.json' in the app/ folder.

Click the Sync button and when process finishes, the Run button to launch the app on your simulator or connected debugging device after the build process is complete.

Contributing

Contributions to this project are welcome, encouraged, and compensated. For more details, see https://lbry.io/faq/contributing

License

This project is MIT licensed. For the full license, see LICENSE.

Security

We take security seriously. Please contact [email protected] regarding any security issues. Our PGP key is here if you need it.

Contact

The primary contact for this project is @akinwale ([email protected])

lbry-android's People

Contributors

akinwale avatar alyssaoc avatar clay53 avatar coolguy3289 avatar dan1d avatar enigmacurry avatar ericbriananil avatar g1tman avatar jackrobison avatar janith96 avatar jessopb avatar joaquimbrugues avatar kekkyojin avatar ktprograms avatar lbrydocs avatar lyoshenka avatar michaeltintiuc avatar mohatagarvit avatar netopwibby avatar pakar1 avatar preserveddarnell avatar shyba avatar sidhyatikku avatar skhameneh avatar soup-jingle avatar strikerrus avatar sumitkharche avatar tzarebczan avatar ycohen-dev avatar ykris45 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

lbry-android's Issues

Added Exit/close menu on LBRY Android App

screenshot_2018-04-13-18-55-46-548

The Issue

Would be nice if lbry app android version have Exit/close menu . this can make alpha testers can quiting app by tapping on this menu..

System Configuration

  • Device: Lenovo Vibe K4 Note
  • Android version: 6.0 Marshmallow

Anything Else

Screenshots

Alpha to beta

Transitioning from closed alpha to open alpha, and finally open beta.

Investigate and / or fix 5 failing tests on Android

Failed tests

  • tests.unit.core.test_log_support.TestLogger.test_can_log_failure
  • tests.unit.lbrynet_daemon.test_ExchangeRateManager.ExchangeRateTest.test_invalid_rates
  • tests.unit.test_conf.SettingsTest.test_invalid_data_type_raises_exception
  • tests.unit.test_conf.SettingsTest.test_invalid_setting_raises_exception
  • tests.unit.lbrynet_daemon.test_Daemon.TestJsonRpc.test_help

Failure logs

09-18 09:18:01.770 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice: ===============================================================================
09-18 09:18:01.770 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice: [FAIL]
09-18 09:18:01.770 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice: Traceback (most recent call last):
09-18 09:18:01.770 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice:   File "/home/akinwale/Dev/Python/lbry-android/.buildozer/android/platform/build/dists/lbrynet/private/lib/python2.7/site-packages/tests/unit/core/test_log_support.py", line 40, in <lambda>
09-18 09:18:01.770 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice:     
09-18 09:18:01.770 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice:   File "/home/akinwale/Dev/Python/lbry-android/.buildozer/android/platform/build/dists/lbrynet/private/lib/python2.7/site-packages/twisted/trial/_synctest.py", line 425, in assertEqual
09-18 09:18:01.770 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice:     
09-18 09:18:01.770 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice:   File "/home/akinwale/Dev/Python/lbry-android/.buildozer/android/platform/build/dists/lbrynet/private/lib/python2.7/unittest/case.py", line 513, in assertEqual
09-18 09:18:01.770 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice:     
09-18 09:18:01.770 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice:   File "/home/akinwale/Dev/Python/lbry-android/.buildozer/android/platform/build/dists/lbrynet/private/lib/python2.7/unittest/case.py", line 506, in _baseAssertEqual
09-18 09:18:01.770 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice:     
09-18 09:18:01.770 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice: twisted.trial.unittest.FailTest: 'test_log_support.py:18 - My message: terrible things happened' != 'log_support.py:353 - My message: terrible things happened'
09-18 09:18:01.770 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice: tests.unit.core.test_log_support.TestLogger.test_can_log_failure
09-18 09:18:01.770 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice: ===============================================================================
09-18 09:18:01.770 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice: [FAIL]
09-18 09:18:01.770 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice: Traceback (most recent call last):
09-18 09:18:01.770 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice:   File "/home/akinwale/Dev/Python/lbry-android/.buildozer/android/platform/build/dists/lbrynet/private/lib/python2.7/site-packages/tests/unit/lbrynet_daemon/test_ExchangeRateManager.py", line 39, in test_invalid_rates
09-18 09:18:01.770 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice:     
09-18 09:18:01.770 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice:   File "/home/akinwale/Dev/Python/lbry-android/.buildozer/android/platform/build/dists/lbrynet/private/lib/python2.7/site-packages/twisted/trial/_synctest.py", line 324, in __exit__
09-18 09:18:01.770 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice:     
09-18 09:18:01.770 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice: twisted.trial.unittest.FailTest: AssertionError not raised (None returned)
09-18 09:18:01.770 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice: tests.unit.lbrynet_daemon.test_ExchangeRateManager.ExchangeRateTest.test_invalid_rates
09-18 09:18:01.770 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice: ===============================================================================
09-18 09:18:01.770 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice: [FAIL]
09-18 09:18:01.770 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice: Traceback (most recent call last):
09-18 09:18:01.770 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice:   File "/home/akinwale/Dev/Python/lbry-android/.buildozer/android/platform/build/dists/lbrynet/private/lib/python2.7/site-packages/tests/unit/test_conf.py", line 47, in test_invalid_data_type_raises_exception
09-18 09:18:01.770 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice:     
09-18 09:18:01.770 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice:   File "/home/akinwale/Dev/Python/lbry-android/.buildozer/android/platform/build/dists/lbrynet/private/lib/python2.7/site-packages/twisted/trial/_synctest.py", line 414, in assertRaises
09-18 09:18:01.770 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice:     
09-18 09:18:01.770 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice:   File "/home/akinwale/Dev/Python/lbry-android/.buildozer/android/platform/build/dists/lbrynet/private/lib/python2.7/site-packages/twisted/trial/_synctest.py", line 308, in _handle
09-18 09:18:01.770 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice:     
09-18 09:18:01.770 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice:   File "/home/akinwale/Dev/Python/lbry-android/.buildozer/android/platform/build/dists/lbrynet/private/lib/python2.7/site-packages/twisted/trial/_synctest.py", line 346, in __exit__
09-18 09:18:01.770 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice:     
09-18 09:18:01.770 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice: twisted.trial.unittest.FailTest: exceptions.KeyError raised instead of AssertionError:
09-18 09:18:01.770 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice:  Traceback (most recent call last):
09-18 09:18:01.770 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice:   File "/home/akinwale/Dev/Python/lbry-android/.buildozer/android/platform/build/dists/lbrynet/private/lib/python2.7/site-packages/twisted/internet/utils.py", line 197, in runWithWarningsSuppressed
09-18 09:18:01.770 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice:     
09-18 09:18:01.770 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice:   File "/home/akinwale/Dev/Python/lbry-android/.buildozer/android/platform/build/dists/lbrynet/private/lib/python2.7/site-packages/tests/unit/test_conf.py", line 47, in test_invalid_data_type_raises_exception
09-18 09:18:01.770 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice:     
09-18 09:18:01.770 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice:   File "/home/akinwale/Dev/Python/lbry-android/.buildozer/android/platform/build/dists/lbrynet/private/lib/python2.7/site-packages/twisted/trial/_synctest.py", line 414, in assertRaises
09-18 09:18:01.770 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice:     
09-18 09:18:01.770 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice:   File "/home/akinwale/Dev/Python/lbry-android/.buildozer/android/platform/build/dists/lbrynet/private/lib/python2.7/site-packages/twisted/trial/_synctest.py", line 308, in _handle
09-18 09:18:01.770 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice:     
09-18 09:18:01.770 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice: --- <exception caught here> ---
09-18 09:18:01.771 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice:   File "/home/akinwale/Dev/Python/lbry-android/.buildozer/android/platform/build/dists/lbrynet/private/lib/python2.7/site-packages/twisted/trial/_synctest.py", line 308, in _handle
09-18 09:18:01.771 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice:     
09-18 09:18:01.771 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice:   File "/home/akinwale/Dev/Python/lbry-android/.buildozer/android/platform/build/dists/lbrynet/private/lib/python2.7/site-packages/twisted/trial/_synctest.py", line 414, in <lambda>
09-18 09:18:01.771 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice:     
09-18 09:18:01.771 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice:   File "/home/akinwale/Dev/Python/lbry-android/.buildozer/android/platform/build/dists/lbrynet/private/lib/python2.7/site-packages/lbrynet/conf.py", line 425, in set
09-18 09:18:01.771 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice:     
09-18 09:18:01.771 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice: exceptions.KeyError: 'fake_data_type'
09-18 09:18:01.771 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice: tests.unit.test_conf.SettingsTest.test_invalid_data_type_raises_exception
09-18 09:18:01.771 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice: ===============================================================================
09-18 09:18:01.771 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice: [FAIL]
09-18 09:18:01.771 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice: Traceback (most recent call last):
09-18 09:18:01.771 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice:   File "/home/akinwale/Dev/Python/lbry-android/.buildozer/android/platform/build/dists/lbrynet/private/lib/python2.7/site-packages/tests/unit/test_conf.py", line 42, in test_invalid_setting_raises_exception
09-18 09:18:01.771 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice:     
09-18 09:18:01.771 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice:   File "/home/akinwale/Dev/Python/lbry-android/.buildozer/android/platform/build/dists/lbrynet/private/lib/python2.7/site-packages/twisted/trial/_synctest.py", line 414, in assertRaises
09-18 09:18:01.771 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice:     
09-18 09:18:01.771 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice:   File "/home/akinwale/Dev/Python/lbry-android/.buildozer/android/platform/build/dists/lbrynet/private/lib/python2.7/site-packages/twisted/trial/_synctest.py", line 308, in _handle
09-18 09:18:01.771 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice:     
09-18 09:18:01.771 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice:   File "/home/akinwale/Dev/Python/lbry-android/.buildozer/android/platform/build/dists/lbrynet/private/lib/python2.7/site-packages/twisted/trial/_synctest.py", line 324, in __exit__
09-18 09:18:01.771 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice:     
09-18 09:18:01.771 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice: twisted.trial.unittest.FailTest: AssertionError not raised (None returned)
09-18 09:18:01.771 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice: tests.unit.test_conf.SettingsTest.test_invalid_setting_raises_exception
09-18 09:18:01.771 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice: ===============================================================================
09-18 09:18:01.780 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice: [ERROR]
09-18 09:18:01.780 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice: Traceback (most recent call last):
09-18 09:18:01.780 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice:   File "/home/akinwale/Dev/Python/lbry-android/.buildozer/android/platform/build/dists/lbrynet/private/lib/python2.7/site-packages/twisted/internet/defer.py", line 150, in maybeDeferred
09-18 09:18:01.780 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice:     
09-18 09:18:01.780 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice:   File "/home/akinwale/Dev/Python/lbry-android/.buildozer/android/platform/build/dists/lbrynet/private/lib/python2.7/site-packages/lbrynet/daemon/Daemon.py", line 1178, in jsonrpc_help
09-18 09:18:01.780 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice:     
09-18 09:18:01.780 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice:   File "/home/akinwale/Dev/Python/lbry-android/.buildozer/android/platform/build/build/other_builds/python2-openssl-sqlite3/armeabi-v7a/python2/python-install/lib/python2.7/textwrap.py", line 390, in dedent
09-18 09:18:01.780 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice:     
09-18 09:18:01.780 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice: exceptions.TypeError: expected string or buffer
09-18 09:18:01.780 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice: tests.unit.lbrynet_daemon.test_Daemon.TestJsonRpc.test_help
09-18 09:18:01.780 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice: -------------------------------------------------------------------------------
09-18 09:18:01.780 16289-16308/io.lbry.lbrynet:service_lbrynet_testrunner I/testrunnerservice: Ran 113 tests in 62.488s

No Way to Leave Settings

If you go to the settings tab, the Menu button isn't there, so you can't re-open the menu to return to the home page. If you hit the back button on your phone, it returns you to your home screen, I'd suggest making the back button just return to the app's home page, and/or adding the menu button on the settings page as well.

Service control activity

An activity that for starting / stopping the service, and checking if the service is running needs to be created.

Enable access by other apps or media players to downloaded files

The mobile app is currently configured to download to a folder located in the Android app private folder which is inaccessible by other apps.

We can downloaded files available to other apps in 2 ways:

  • Copy / export the file to a generally accessible folder after the download completes
  • Configure the app to download directly to a generally accessible folder.

Can't see URLs on mobile

The Issue

I sent Tom the URL of a video I was having trouble with viewing, and he asked me for the title because he was unable to locate it with the URL I sent.

Steps to reproduce

  1. I was trying to view lbry://@GrowingYourGreens#61ec92bff54c939afd1276908d2d17535c8fd254/gyg-fXha49jbomo
  2. Sent to Tom, who was using Adroid app
  3. Unable to see URL on Android app

Expected behaviour

Tell us what should happen

Actual behaviour

Tell us what happens instead

System Configuration

  • Device:
  • Android version:

Anything Else

Screenshots

Native utility class to obtain app paths and more

A native Java class needs to be created in order to obtain app paths for the daemon to store files. The methods will be called from Python using pyjnius. Some of the paths and properties that need to be returned include:

  • The base internal storage path
  • The base SD card path (if a microSD card is present)
  • The private app folder
  • Flag which indicates whether or not a microSD card is present
  • Android release version
  • Android API version

Implement download progress bar for file downloads

A way to show file download progress needs to be implemented similar to how the Android download manager works by showing a persistent notification. I'm looking into using the native download manager, but if that's not possible, a native module that interacts with the React Native app has to be created for this to work.

MixPanel Analytics

I'd like to get analytics into the mobile app sooner rather than later, so we can get data from those who run the APK directly (or from source), rather than just those who install via the play store.

Can you explain the current solution?

Can you explain the current solution?

Android IPC to communicate with the service?

Can you list the supported API and Java examples of the service usage?

Enable daemon authentication for all lbrynet-daemon requests

This ticket is out of date and should be updated to reflect upcoming IPC design

The use_auth configuration setting should be set to true to make sure that all requests to the daemon are properly authenticated with a password stored in the app's private keystore. This will prevent third-party apps from being able to make calls to the daemon.

Acceptance Criteria

Definition of Done

  • Tested against acceptance criteria
  • Tested against the assumptions of the user story
  • The project builds without errors
  • Unit tests are written and passing
  • Tests on devices/browsers listed in the issue have passed
  • QA performed & issues resolved
  • Refactoring completed
  • Any configuration or build changes documented
  • Documentation updated
  • Peer Code Review performed

Enable SSL for lbrynet-daemon requests

Requests to the daemon need to be sent securely in order to prevent third-party apps from being able to view the plain request data.

This is dependent on lbryio/lbry-sdk#1094

Acceptance Criteria

Definition of Done

  • Tested against acceptance criteria
  • Tested against the assumptions of the user story
  • The project builds without errors
  • Unit tests are written and passing
  • Tests on devices/browsers listed in the issue have passed
  • QA performed & issues resolved
  • Refactoring completed
  • Any configuration or build changes documented
  • Documentation updated
  • Peer Code Review performed

Security - default_wallet encryption

The default_wallet file needs to be encrypted in order to prevent just anyone or any app on the device from gaining access to the private keys.

Security - Daemon RPC server auth

RPC server authentication for the daemon needs to be enabled in order to prevent the any app on the device from being able to make API requests to the server.

NSFW overlay

An overlay needs to be implemented for content marked as NSFW. There should also be a setting to enable / disable this on the settings page.

Wallet balance and receive

At the bare minimum, users should be able to check their wallet balance and obtain receive addresses so that they can use LBC to pay for content.

Stuck Downloading. No Timeout

Not sure if this was my internet or not, but when I went to download a video, it got stuck after 2MB, however the notification never went away, I also can't click on the notification to view the current download. Maybe adding a Timeout period to clear the notification and kill the attempted download if there is no progress within a certain period of time.


Notice the 2h time on the LBRY notifications.

Change build tool to gradle in order to be able to implement the user interface using React Native

Apache Ant is the current Android build tool Python for Android uses for generating the APKs. We need to switch to gradle to be able to build the user interface using React Native.

It looks like there's already some ongoing work on gradle according to https://groups.google.com/forum/#!searchin/kivy-users/gradle|sort:relevance/kivy-users/PbmHV7NWk0I/YWkxkHR3AwAJ, with a PR at kivy/python-for-android#1071 which we could try to use in our builds.

Build first run experience in React Native

A comprehensive first run experience needs to be designed for the mobile app. Should provide a brief LBRY introduction (or walkthrough), and some quick preferences or settings for running the daemon in the background and wallet options.

First run timing

Add an analytics event that records the total time from app launch to responsive homepage.

React development server for development

Find a way to enable get the React development server working so that Javascript code can be reloaded without having to rebuild the app bundle and APK every time.

Opt-out of Firebase tracking

An option should be provided in the settings (and eventually in one of the first-run screens) for users to be able to opt out of analytics tracking.

Acceptance Criteria

Definition of Done

  • Tested against acceptance criteria
  • Tested against the assumptions of the user story
  • The project builds without errors
  • Unit tests are written and passing
  • Tests on devices/browsers listed in the issue have passed
  • QA performed & issues resolved
  • Refactoring completed
  • Any configuration or build changes documented
  • Documentation updated
  • Peer Code Review performed

LBRY app just crashes upon start

As alpha test participant I installed the app through Google Play on my phone and the app can not start. Just crashes on the home screen. I've reported the issue with the Android reporting feature. It is probably due to my older Android version 4.2.2.
I've tried several times and restarted the phone but nothing happens.
I've also noticed that it does not install the app icon on the main screen but the icon is only visible in the application menu.

screenshot_2018-04-02-22-52-21

Python tests running on Android

A test runner for the Python tests needs to be built in order to run the tests using trial tests. Ideally, this should be a separate activity which can be launched from the service control activity. The test results will be output to the screen.

Can not build app

I have been trying for 2 days now to get it to build, the steps i do are
clone lbry-android
cope the buildozer.spec.sample to buildozer.spec
then build the app.

i get this error:

[INFO]:    Selecting java build tool:
[INFO]:    Detected highest available build tools version to be 23.0.1
[INFO]:        Building with ant, as the highest build-tools-version is only 23.0.1
[DEBUG]:   -> running ant debug
[DEBUG]:   	Buildfile: /home/shift/lbry-android/.buildozer/android/platform/build/dists/lbrynet/build.xml
[DEBUG]:   	
[DEBUG]:   	-set-mode-check:
[DEBUG]:   	
[DEBUG]:   	-set-debug-files:
[DEBUG]:   	
[DEBUG]:   	-check-env:
[DEBUG]:   	 [checkenv] Android SDK Tools Revision 24.0.0
[DEBUG]:   	 [checkenv] Installed at /home/shift/.buildozer/android/platform/android-sdk-24
[DEBUG]:   	
[DEBUG]:   	-setup:
[DEBUG]:   	     [echo] Project Name: lbrynet-0.1
[DEBUG]:   	  [gettype] Project Type: Application
[DEBUG]:   	
[DEBUG]:   	-set-debug-mode:
[DEBUG]:   	
[DEBUG]:   	-debug-obfuscation-check:
[DEBUG]:   	
[DEBUG]:   	-pre-build:
[DEBUG]:   	     [copy] Copying 27 files to /home/shift/lbry-android/.buildozer/android/platform/build/dists/lbrynet/tmp-src
[DEBUG]:   	
[DEBUG]:   	-build-setup:
[DEBUG]:   	[getbuildtools] Using latest Build Tools: 23.0.1
[DEBUG]:   	     [echo] Resolving Build Target for lbrynet-0.1...
[DEBUG]:   	[gettarget] Project Target:   Android 6.0
[DEBUG]:   	[gettarget] API level:        23
[DEBUG]:   	     [echo] ----------
[DEBUG]:   	     [echo] Creating output directories if needed...
[DEBUG]:   	    [mkdir] Created dir: /home/shift/lbry-android/.buildozer/android/platform/build/dists/lbrynet/bin/rsObj
[DEBUG]:   	    [mkdir] Created dir: /home/shift/lbry-android/.buildozer/android/platform/build/dists/lbrynet/bin/rsLibs
[DEBUG]:   	     [echo] ----------
[DEBUG]:   	     [echo] Resolving Dependencies for lbrynet-0.1...
[DEBUG]:   	[dependency] Library dependencies:
[DEBUG]:   	[dependency] No Libraries
[DEBUG]:   	[dependency]
[DEBUG]:   	[dependency] ------------------
[DEBUG]:   	     [echo] ----------
[DEBUG]:   	     [echo] Building Libraries with 'debug'...
[DEBUG]:   	   [subant] No sub-builds to iterate on
[DEBUG]:   	
[DEBUG]:   	-code-gen:
[DEBUG]:   	[mergemanifest] Found modified input file
[DEBUG]:   	[mergemanifest] Merging AndroidManifest files into one.
[DEBUG]:   	[mergemanifest] Manifest merger disabled. Using project manifest only.
[DEBUG]:   	     [echo] Handling aidl files...
[DEBUG]:   	     [aidl] No AIDL files to compile.
[DEBUG]:   	     [echo] ----------
[DEBUG]:   	     [echo] Handling RenderScript files...
[DEBUG]:   	     [echo] ----------
[DEBUG]:   	     [echo] Handling Resources...
[DEBUG]:   	     [aapt] Generating resource IDs...
[DEBUG]:   	     [aapt]     (skipping file '.gitkeep' due to ANDROID_AAPT_IGNORE pattern '.*')
[DEBUG]:   	     [aapt] /home/shift/lbry-android/.buildozer/android/platform/build/dists/lbrynet/bin/AndroidManifest.xml:73: error: Error: No resource found that matches the given name (at 'theme' with value '@style/Theme.AppCompat.Light.NoActionBar').
[DEBUG]:   	     [aapt]
[DEBUG]:   	
[DEBUG]:   	BUILD FAILED
[DEBUG]:   	/home/shift/.buildozer/android/platform/android-sdk-24/tools/ant/build.xml:653: The following error occurred while executing this line:
[DEBUG]:   	/home/shift/.buildozer/android/platform/android-sdk-24/tools/ant/build.xml:698: null returned: 1
[DEBUG]:   	
[DEBUG]:   	Total time: 0 seconds
Exception in thread background thread for pid 21638:
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 801, in __bootstrap_inner
    self.run()
  File "/usr/lib/python2.7/threading.py", line 754, in run
    self.__target(*self.__args, **self.__kwargs)
  File "/home/shift/.local/lib/python2.7/site-packages/sh.py", line 2170, in background_thread
    handle_exit_code(exit_code)
  File "/home/shift/.local/lib/python2.7/site-packages/sh.py", line 1929, in fn
    return self.command.handle_command_exit_code(exit_code)
  File "/home/shift/.local/lib/python2.7/site-packages/sh.py", line 672, in handle_command_exit_code
    raise exc
ErrorReturnCode_1: 

  RAN: /home/shift/.buildozer/android/platform/apache-ant-1.9.4/bin/ant debug

  STDOUT:
Buildfile: /home/shift/lbry-android/.buildozer/android/platform/build/dists/lbrynet/build.xml

-set-mode-check:

-set-debug-files:

-check-env:
 [checkenv] Android SDK Tools Revision 24.0.0
 [checkenv] Installed at /home/shift/.buildozer/android/platform/android-sdk-24

-setup:
     [echo] Project Name: lbrynet-0.1
  [gettype] Project Type: Application

-set-debug-mode:

-debug-obfuscation-check:

-pre-build:
     [copy] Copying 27 files to /home/shift/lbry-android/.buildozer/android/platform/build/dists/lbrynet/tmp-src

-build-setup:
[getbuildtools] Using latest Build Tools: 23.0.1
     [echo] Resolving Build Target for lbrynet-0.1...
[gettarget] Project Target:   Android 6.0
[gettarget] API level:        23
     [echo] ----------
     [echo] Creating output directories if needed...
    [mkdir] Created dir: /home/shift/lbry-android/.buildozer/android/platform/build/dists/lbrynet/bin/rsObj
    [mkdir] Created dir: /home/shift/lbry-android/.buildozer/android/platform/build/dists/lbrynet/bin/rsLibs
     [echo] ----------
     [echo] Resolving Dependencies for lbrynet-0.1...
[dependency] Library dependencies:
[dependency] No Libraries
[dependency] 
[dependency] ------------------
     [echo] ----------
     [echo] Building Libraries with 'debug'...
   [subant] No sub-builds to iterate on

-code-gen:
[mergemanifest] Found modified input file
[mergemanifest] Merging AndroidManifest files into one.
[mergemanifest] Manifest merger disabled. Using project manifest only.
     [echo] Handling aidl files...
     [aidl] No AIDL files to compile.
     [echo] ----------
     [echo] Handling RenderScript files...
     [echo] ----------
     [echo] Handling Resources...
     [aapt] Generating resource IDs...
     [aapt]     (skipping file '.gitkeep' due to ANDROID_AAPT_IGNORE pattern '.*')
     [aapt] /home/shift/lbry-android/.buildozer/android/platform/build/dists/lbrynet/bin/AndroidManifest.xml:73: error: Error: No resource found that matches the given name (at 'theme' with value '@style/Theme.AppCompat.Light.NoActionBar').
     [aapt] 

BUILD FAILED
/home/shift/.buildozer/android/platform/android-sdk-24/tools/ant/build.xml:653: The following error occurred while executing this line:
/home/shift/.buildozer/android/platform/android-sdk-24/tools/ant/build.xml:698: null returned: 1

Total time: 0 seconds


  STDERR:


[INFO]:    STDOUT (last 20 lines of 60):
	-code-gen:	
[mergemanifest] Found modified input file	
[mergemanifest] Merging AndroidManifest files into one.	
[mergemanifest] Manifest merger disabled. Using project manifest only.	
     [echo] Handling aidl files...	
     [aidl] No AIDL files to compile.	
     [echo] ----------	
     [echo] Handling RenderScript files...	
     [echo] ----------	
     [echo] Handling Resources...	
     [aapt] Generating resource IDs...	
     [aapt]     (skipping file '.gitkeep' due to ANDROID_AAPT_IGNORE pattern '.*')	
     [aapt] /home/shift/lbry-android/.buildozer/android/platform/build/dists/lbrynet/bin/AndroidManifest.xml:73: error: Error: No resource found that matches the given name (at 'theme' with value '@style/Theme.AppCompat.Light.NoActionBar').	
     [aapt] 	
	
BUILD FAILED	
/home/shift/.buildozer/android/platform/android-sdk-24/tools/ant/build.xml:653: The following error occurred while executing this line:	
/home/shift/.buildozer/android/platform/android-sdk-24/tools/ant/build.xml:698: null returned: 1	
	
Total time: 0 seconds
[INFO]:    STDERR:
	
[INFO]:    COMMAND:
cd /home/shift/lbry-android/.buildozer/android/platform/build/dists/lbrynet && /home/shift/.buildozer/android/platform/apache-ant-1.9.4/bin/ant debug

[WARNING]: ERROR: /home/shift/.buildozer/android/platform/apache-ant-1.9.4/bin/ant failed!
# Command failed: /usr/bin/python2.7 -m pythonforandroid.toolchain apk --debug --bootstrap=lbry --dist_name lbrynet --name lbrynet --version 0.1 --package io.lbry.lbrynet --android_api 23 --minsdk 16 --private /home/shift/lbry-android/.buildozer/android/app --permission INTERNET --permission READ_EXTERNAL_STORAGE --permission WRITE_EXTERNAL_STORAGE --orientation portrait --window --service lbrynetservice:./lbrynetservice.py --copy-libs --local-recipes /home/shift/lbry-android/recipes --depend com.android.support:appcompat-v7:23.4.0 --depend com.facebook.react:react-native:+ --arch armeabi-v7a --color=always --storage-dir=/home/shift/lbry-android/.buildozer/android/platform/build
# 
# Buildozer failed to execute the last command
# The error might be hidden in the log above this error
# Please read the full log, and search for it before
# raising an issue with buildozer itself.
# In case of a bug report, please add a full log with log_level = 2

Python logging

The default Python logging configuration does not seem to be working, and this may be due to kivy interfering with the way the log handlers are created. Although a workaround has been implemented for stdout, this needs to be investigated and fixed so that file logging to lbrynet.log works properly.

Add ability to cast videos to smart devices

Implement a "cast" button (similar to the one that shows up on YouTube and Netflix) when you're connected to a wifi network with devices that can be cast to (Roku box, PS4, Xbox, Plex server, etc.).

Acceptance Criteria

Definition of Done

  • Tested against acceptance criteria
  • Tested against the assumptions of the user story
  • The project builds without errors
  • Unit tests are written and passing
  • Tests on devices/browsers listed in the issue have passed
  • QA performed & issues resolved
  • Refactoring completed
  • Any configuration or build changes documented
  • Documentation updated
  • Peer Code Review performed

Build discover page in React Native

The discover / landing page will be based on the design prototype. This possibly needs to be broken down further into components depending on our approach.

Settings Don't Save

I checked "Show NSFW Content" But the setting didn't save when I exited from the settings page and returned.

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.