├── .github ├── PULL_REQUEST_TEMPLATE.md ├── issue_template.md └── workflows │ └── deploy.yml ├── .gitignore ├── .gitlab-ci.yml ├── .gitmodules ├── .gitsecret ├── keys │ ├── mapping.cfg │ ├── pubring.kbx │ ├── pubring.kbx~ │ ├── random_seed │ └── trustdb.gpg └── paths │ └── mapping.cfg ├── LICENSE ├── README.md ├── app ├── .gitignore ├── build.gradle ├── google-services.json.secret ├── google-services.sample.json ├── proguard-rules.pro ├── src │ ├── androidTest │ │ └── java │ │ │ └── io │ │ │ └── lbry │ │ │ └── browser │ │ │ ├── ExampleInstrumentedTest.java │ │ │ └── utils │ │ │ └── HelperTest.java │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── assets │ │ │ ├── font_awesome_5_free_regular.otf │ │ │ └── font_awesome_5_free_solid.otf │ │ ├── ic_launcher-playstore.png │ │ ├── java │ │ │ └── io │ │ │ │ └── lbry │ │ │ │ └── browser │ │ │ │ ├── FirstRunActivity.java │ │ │ │ ├── LbrynetMessagingService.java │ │ │ │ ├── LocalFileProvider.java │ │ │ │ ├── MainActivity.java │ │ │ │ ├── VerificationActivity.java │ │ │ │ ├── adapter │ │ │ │ ├── ChannelFilterListAdapter.java │ │ │ │ ├── ClaimListAdapter.java │ │ │ │ ├── CommentListAdapter.java │ │ │ │ ├── EditorsChoiceItemAdapter.java │ │ │ │ ├── GalleryGridAdapter.java │ │ │ │ ├── InlineChannelSpinnerAdapter.java │ │ │ │ ├── InviteeListAdapter.java │ │ │ │ ├── LanguageSpinnerAdapter.java │ │ │ │ ├── LicenseSpinnerAdapter.java │ │ │ │ ├── NavigationMenuAdapter.java │ │ │ │ ├── NotificationListAdapter.java │ │ │ │ ├── RewardListAdapter.java │ │ │ │ ├── StartupStageAdapter.java │ │ │ │ ├── SuggestedChannelGridAdapter.java │ │ │ │ ├── TagListAdapter.java │ │ │ │ ├── TransactionListAdapter.java │ │ │ │ ├── UrlSuggestionListAdapter.java │ │ │ │ ├── VerificationPagerAdapter.java │ │ │ │ └── WalletDetailAdapter.java │ │ │ │ ├── data │ │ │ │ └── DatabaseHelper.java │ │ │ │ ├── dialog │ │ │ │ ├── ContentFromDialogFragment.java │ │ │ │ ├── ContentScopeDialogFragment.java │ │ │ │ ├── ContentSortDialogFragment.java │ │ │ │ ├── CreateSupportDialogFragment.java │ │ │ │ ├── CustomizeTagsDialogFragment.java │ │ │ │ ├── DiscoverDialogFragment.java │ │ │ │ └── RepostClaimDialogFragment.java │ │ │ │ ├── exceptions │ │ │ │ ├── ApiCallException.java │ │ │ │ ├── AuthTokenInvalidatedException.java │ │ │ │ ├── LbryRequestException.java │ │ │ │ ├── LbryResponseException.java │ │ │ │ ├── LbryUriException.java │ │ │ │ ├── LbryioRequestException.java │ │ │ │ ├── LbryioResponseException.java │ │ │ │ └── WalletException.java │ │ │ │ ├── listener │ │ │ │ ├── CameraPermissionListener.java │ │ │ │ ├── ChannelItemSelectionListener.java │ │ │ │ ├── DownloadActionListener.java │ │ │ │ ├── FetchChannelsListener.java │ │ │ │ ├── FetchClaimsListener.java │ │ │ │ ├── FilePickerListener.java │ │ │ │ ├── PIPModeListener.java │ │ │ │ ├── ScreenOrientationListener.java │ │ │ │ ├── SdkStatusListener.java │ │ │ │ ├── SelectionModeListener.java │ │ │ │ ├── SignInListener.java │ │ │ │ ├── StoragePermissionListener.java │ │ │ │ ├── TagListener.java │ │ │ │ ├── WalletBalanceListener.java │ │ │ │ └── WalletSyncListener.java │ │ │ │ ├── model │ │ │ │ ├── Claim.java │ │ │ │ ├── ClaimCacheKey.java │ │ │ │ ├── ClaimSearchCacheValue.java │ │ │ │ ├── Comment.java │ │ │ │ ├── EditorsChoiceItem.java │ │ │ │ ├── Fee.java │ │ │ │ ├── GalleryItem.java │ │ │ │ ├── Language.java │ │ │ │ ├── LbryFile.java │ │ │ │ ├── License.java │ │ │ │ ├── Location.java │ │ │ │ ├── NavMenuItem.java │ │ │ │ ├── StartupStage.java │ │ │ │ ├── Tag.java │ │ │ │ ├── Transaction.java │ │ │ │ ├── TwitterOauth.java │ │ │ │ ├── UrlSuggestion.java │ │ │ │ ├── ViewHistory.java │ │ │ │ ├── WalletBalance.java │ │ │ │ ├── WalletDetailItem.java │ │ │ │ ├── WalletSync.java │ │ │ │ └── lbryinc │ │ │ │ │ ├── Invitee.java │ │ │ │ │ ├── LbryNotification.java │ │ │ │ │ ├── Reward.java │ │ │ │ │ ├── RewardVerified.java │ │ │ │ │ ├── Subscription.java │ │ │ │ │ └── User.java │ │ │ │ ├── tasks │ │ │ │ ├── BufferEventTask.java │ │ │ │ ├── CommentCreateTask.java │ │ │ │ ├── CommentListHandler.java │ │ │ │ ├── CommentListTask.java │ │ │ │ ├── FollowUnfollowTagTask.java │ │ │ │ ├── GenericTaskHandler.java │ │ │ │ ├── LighthouseAutoCompleteTask.java │ │ │ │ ├── LighthouseSearchTask.java │ │ │ │ ├── LoadTagsTask.java │ │ │ │ ├── MergeSubscriptionsTask.java │ │ │ │ ├── ReadTextFileTask.java │ │ │ │ ├── RewardVerifiedHandler.java │ │ │ │ ├── SetSdkSettingTask.java │ │ │ │ ├── TwitterOauthHandler.java │ │ │ │ ├── UpdateSuggestedTagsTask.java │ │ │ │ ├── UploadImageTask.java │ │ │ │ ├── claim │ │ │ │ │ ├── AbandonChannelTask.java │ │ │ │ │ ├── AbandonHandler.java │ │ │ │ │ ├── AbandonStreamTask.java │ │ │ │ │ ├── ChannelCreateUpdateTask.java │ │ │ │ │ ├── ClaimListResultHandler.java │ │ │ │ │ ├── ClaimListTask.java │ │ │ │ │ ├── ClaimResultHandler.java │ │ │ │ │ ├── ClaimSearchResultHandler.java │ │ │ │ │ ├── ClaimSearchTask.java │ │ │ │ │ ├── PublishClaimTask.java │ │ │ │ │ ├── PurchaseListTask.java │ │ │ │ │ ├── ResolveTask.java │ │ │ │ │ └── StreamRepostTask.java │ │ │ │ ├── file │ │ │ │ │ ├── BulkDeleteFilesTask.java │ │ │ │ │ ├── DeleteFileTask.java │ │ │ │ │ ├── FileListTask.java │ │ │ │ │ └── GetFileTask.java │ │ │ │ ├── lbryinc │ │ │ │ │ ├── AndroidPurchaseTask.java │ │ │ │ │ ├── ChannelSubscribeTask.java │ │ │ │ │ ├── ClaimRewardTask.java │ │ │ │ │ ├── FetchCurrentUserTask.java │ │ │ │ │ ├── FetchInviteStatusTask.java │ │ │ │ │ ├── FetchReferralCodeTask.java │ │ │ │ │ ├── FetchRewardsTask.java │ │ │ │ │ ├── FetchStatCountTask.java │ │ │ │ │ ├── FetchSubscriptionsTask.java │ │ │ │ │ ├── InviteByEmailTask.java │ │ │ │ │ ├── LogFileViewTask.java │ │ │ │ │ ├── LogPublishTask.java │ │ │ │ │ ├── NotificationDeleteTask.java │ │ │ │ │ ├── NotificationListTask.java │ │ │ │ │ ├── NotificationUpdateTask.java │ │ │ │ │ └── TwitterVerifyTask.java │ │ │ │ ├── localdata │ │ │ │ │ ├── FetchRecentUrlHistoryTask.java │ │ │ │ │ ├── FetchViewHistoryTask.java │ │ │ │ │ ├── LoadGalleryItemsTask.java │ │ │ │ │ ├── SaveUrlHistoryTask.java │ │ │ │ │ └── SaveViewHistoryTask.java │ │ │ │ ├── verification │ │ │ │ │ ├── CheckUserEmailVerifiedTask.java │ │ │ │ │ ├── EmailNewTask.java │ │ │ │ │ ├── EmailResendTask.java │ │ │ │ │ ├── PhoneNewVerifyTask.java │ │ │ │ │ ├── PhoneResendTask.java │ │ │ │ │ ├── TwitterAccessTokenTask.java │ │ │ │ │ └── TwitterRequestTokenTask.java │ │ │ │ └── wallet │ │ │ │ │ ├── DefaultSyncTaskHandler.java │ │ │ │ │ ├── LoadSharedUserStateTask.java │ │ │ │ │ ├── SaveSharedUserStateTask.java │ │ │ │ │ ├── SupportCreateTask.java │ │ │ │ │ ├── SyncApplyTask.java │ │ │ │ │ ├── SyncGetTask.java │ │ │ │ │ ├── SyncSetTask.java │ │ │ │ │ ├── SyncTaskHandler.java │ │ │ │ │ ├── TransactionListTask.java │ │ │ │ │ ├── UnlockTipsTask.java │ │ │ │ │ ├── WalletAddressUnusedTask.java │ │ │ │ │ ├── WalletBalanceTask.java │ │ │ │ │ └── WalletSendTask.java │ │ │ │ ├── ui │ │ │ │ ├── BaseFragment.java │ │ │ │ ├── channel │ │ │ │ │ ├── ChannelAboutFragment.java │ │ │ │ │ ├── ChannelCommentsFragment.java │ │ │ │ │ ├── ChannelContentFragment.java │ │ │ │ │ ├── ChannelFormFragment.java │ │ │ │ │ ├── ChannelFragment.java │ │ │ │ │ └── ChannelManagerFragment.java │ │ │ │ ├── controls │ │ │ │ │ ├── OutlineIconView.java │ │ │ │ │ └── SolidIconView.java │ │ │ │ ├── findcontent │ │ │ │ │ ├── AllContentFragment.java │ │ │ │ │ ├── EditorsChoiceFragment.java │ │ │ │ │ ├── FileViewFragment.java │ │ │ │ │ ├── FollowingFragment.java │ │ │ │ │ ├── SearchFragment.java │ │ │ │ │ └── ShuffleFragment.java │ │ │ │ ├── library │ │ │ │ │ └── LibraryFragment.java │ │ │ │ ├── other │ │ │ │ │ ├── AboutFragment.java │ │ │ │ │ └── SettingsFragment.java │ │ │ │ ├── publish │ │ │ │ │ ├── PublishFormFragment.java │ │ │ │ │ ├── PublishFragment.java │ │ │ │ │ └── PublishesFragment.java │ │ │ │ ├── verification │ │ │ │ │ ├── EmailVerificationFragment.java │ │ │ │ │ ├── ManualVerificationFragment.java │ │ │ │ │ ├── PhoneVerificationFragment.java │ │ │ │ │ └── WalletVerificationFragment.java │ │ │ │ └── wallet │ │ │ │ │ ├── InvitesFragment.java │ │ │ │ │ ├── RewardsFragment.java │ │ │ │ │ ├── TransactionHistoryFragment.java │ │ │ │ │ └── WalletFragment.java │ │ │ │ ├── utils │ │ │ │ ├── Comments.java │ │ │ │ ├── Events.java │ │ │ │ ├── ExoplayerAudioRenderer.java │ │ │ │ ├── Helper.java │ │ │ │ ├── Lbry.java │ │ │ │ ├── LbryAnalytics.java │ │ │ │ ├── LbryUri.java │ │ │ │ ├── Lbryio.java │ │ │ │ ├── Lighthouse.java │ │ │ │ └── Predefined.java │ │ │ │ └── views │ │ │ │ └── CreditsBalanceView.java │ │ └── res │ │ │ ├── drawable-anydpi │ │ │ ├── ic_about.xml │ │ │ ├── ic_add.xml │ │ │ ├── ic_arrow_dropdown.xml │ │ │ ├── ic_arrow_dropup.xml │ │ │ ├── ic_arrow_left.xml │ │ │ ├── ic_arrow_right.xml │ │ │ ├── ic_cast.xml │ │ │ ├── ic_cast_connected.xml │ │ │ ├── ic_check.xml │ │ │ ├── ic_check_circle.xml │ │ │ ├── ic_close.xml │ │ │ ├── ic_copy.xml │ │ │ ├── ic_delete.xml │ │ │ ├── ic_download.xml │ │ │ ├── ic_edit.xml │ │ │ ├── ic_editors_choice.xml │ │ │ ├── ic_file.xml │ │ │ ├── ic_following.xml │ │ │ ├── ic_forward_10.xml │ │ │ ├── ic_fullscreen.xml │ │ │ ├── ic_fullscreen_exit.xml │ │ │ ├── ic_invites.xml │ │ │ ├── ic_library.xml │ │ │ ├── ic_lock.xml │ │ │ ├── ic_new.xml │ │ │ ├── ic_notifications.xml │ │ │ ├── ic_pause.xml │ │ │ ├── ic_photo.xml │ │ │ ├── ic_play.xml │ │ │ ├── ic_publish.xml │ │ │ ├── ic_publishes.xml │ │ │ ├── ic_qr_scanner.xml │ │ │ ├── ic_record.xml │ │ │ ├── ic_replay_10.xml │ │ │ ├── ic_report.xml │ │ │ ├── ic_search.xml │ │ │ ├── ic_settings.xml │ │ │ ├── ic_share.xml │ │ │ ├── ic_stop.xml │ │ │ ├── ic_top.xml │ │ │ ├── ic_trending.xml │ │ │ ├── ic_unpublish.xml │ │ │ ├── ic_upload.xml │ │ │ └── ic_wallet.xml │ │ │ ├── drawable-hdpi │ │ │ ├── default_channel_cover.png │ │ │ ├── gerbil_happy.png │ │ │ ├── gerbil_sad.png │ │ │ ├── ic_about.png │ │ │ ├── ic_add.png │ │ │ ├── ic_arrow_dropdown.png │ │ │ ├── ic_arrow_dropup.png │ │ │ ├── ic_arrow_left.png │ │ │ ├── ic_arrow_right.png │ │ │ ├── ic_cast.png │ │ │ ├── ic_cast_connected.png │ │ │ ├── ic_check.png │ │ │ ├── ic_check_circle.png │ │ │ ├── ic_close.png │ │ │ ├── ic_copy.png │ │ │ ├── ic_credits.png │ │ │ ├── ic_delete.png │ │ │ ├── ic_download.png │ │ │ ├── ic_edit.png │ │ │ ├── ic_editors_choice.png │ │ │ ├── ic_file.png │ │ │ ├── ic_following.png │ │ │ ├── ic_forward_10.png │ │ │ ├── ic_fullscreen.png │ │ │ ├── ic_fullscreen_exit.png │ │ │ ├── ic_invites.png │ │ │ ├── ic_library.png │ │ │ ├── ic_lock.png │ │ │ ├── ic_new.png │ │ │ ├── ic_notifications.png │ │ │ ├── ic_pause.png │ │ │ ├── ic_photo.png │ │ │ ├── ic_play.png │ │ │ ├── ic_publish.png │ │ │ ├── ic_publishes.png │ │ │ ├── ic_qr_scanner.png │ │ │ ├── ic_record.png │ │ │ ├── ic_replay_10.png │ │ │ ├── ic_report.png │ │ │ ├── ic_search.png │ │ │ ├── ic_settings.png │ │ │ ├── ic_share.png │ │ │ ├── ic_stop.png │ │ │ ├── ic_top.png │ │ │ ├── ic_trending.png │ │ │ ├── ic_unpublish.png │ │ │ ├── ic_upload.png │ │ │ ├── ic_wallet.png │ │ │ └── stripe_2x.png │ │ │ ├── drawable-mdpi │ │ │ ├── default_channel_cover.png │ │ │ ├── gerbil_happy.png │ │ │ ├── gerbil_sad.png │ │ │ ├── ic_about.png │ │ │ ├── ic_add.png │ │ │ ├── ic_arrow_dropdown.png │ │ │ ├── ic_arrow_dropup.png │ │ │ ├── ic_arrow_left.png │ │ │ ├── ic_arrow_right.png │ │ │ ├── ic_cast.png │ │ │ ├── ic_cast_connected.png │ │ │ ├── ic_check.png │ │ │ ├── ic_check_circle.png │ │ │ ├── ic_close.png │ │ │ ├── ic_copy.png │ │ │ ├── ic_credits.png │ │ │ ├── ic_delete.png │ │ │ ├── ic_download.png │ │ │ ├── ic_edit.png │ │ │ ├── ic_editors_choice.png │ │ │ ├── ic_file.png │ │ │ ├── ic_following.png │ │ │ ├── ic_forward_10.png │ │ │ ├── ic_fullscreen.png │ │ │ ├── ic_fullscreen_exit.png │ │ │ ├── ic_invites.png │ │ │ ├── ic_library.png │ │ │ ├── ic_lock.png │ │ │ ├── ic_new.png │ │ │ ├── ic_notifications.png │ │ │ ├── ic_pause.png │ │ │ ├── ic_photo.png │ │ │ ├── ic_play.png │ │ │ ├── ic_publish.png │ │ │ ├── ic_publishes.png │ │ │ ├── ic_qr_scanner.png │ │ │ ├── ic_record.png │ │ │ ├── ic_replay_10.png │ │ │ ├── ic_report.png │ │ │ ├── ic_search.png │ │ │ ├── ic_settings.png │ │ │ ├── ic_share.png │ │ │ ├── ic_stop.png │ │ │ ├── ic_top.png │ │ │ ├── ic_trending.png │ │ │ ├── ic_unpublish.png │ │ │ ├── ic_upload.png │ │ │ ├── ic_wallet.png │ │ │ └── stripe_2x.png │ │ │ ├── drawable-v24 │ │ │ └── ic_launcher_foreground.xml │ │ │ ├── drawable-xhdpi │ │ │ ├── default_channel_cover.png │ │ │ ├── gerbil_happy.png │ │ │ ├── gerbil_sad.png │ │ │ ├── ic_about.png │ │ │ ├── ic_add.png │ │ │ ├── ic_arrow_dropdown.png │ │ │ ├── ic_arrow_dropup.png │ │ │ ├── ic_arrow_left.png │ │ │ ├── ic_arrow_right.png │ │ │ ├── ic_cast.png │ │ │ ├── ic_cast_connected.png │ │ │ ├── ic_check.png │ │ │ ├── ic_check_circle.png │ │ │ ├── ic_close.png │ │ │ ├── ic_copy.png │ │ │ ├── ic_credits.png │ │ │ ├── ic_delete.png │ │ │ ├── ic_download.png │ │ │ ├── ic_edit.png │ │ │ ├── ic_editors_choice.png │ │ │ ├── ic_file.png │ │ │ ├── ic_following.png │ │ │ ├── ic_forward_10.png │ │ │ ├── ic_fullscreen.png │ │ │ ├── ic_fullscreen_exit.png │ │ │ ├── ic_invites.png │ │ │ ├── ic_library.png │ │ │ ├── ic_lock.png │ │ │ ├── ic_new.png │ │ │ ├── ic_notifications.png │ │ │ ├── ic_pause.png │ │ │ ├── ic_photo.png │ │ │ ├── ic_play.png │ │ │ ├── ic_publish.png │ │ │ ├── ic_publishes.png │ │ │ ├── ic_qr_scanner.png │ │ │ ├── ic_record.png │ │ │ ├── ic_replay_10.png │ │ │ ├── ic_report.png │ │ │ ├── ic_search.png │ │ │ ├── ic_settings.png │ │ │ ├── ic_share.png │ │ │ ├── ic_stop.png │ │ │ ├── ic_top.png │ │ │ ├── ic_trending.png │ │ │ ├── ic_unpublish.png │ │ │ ├── ic_upload.png │ │ │ ├── ic_wallet.png │ │ │ └── stripe_2x.png │ │ │ ├── drawable-xxhdpi │ │ │ ├── default_channel_cover.png │ │ │ ├── gerbil_happy.png │ │ │ ├── gerbil_sad.png │ │ │ ├── ic_about.png │ │ │ ├── ic_add.png │ │ │ ├── ic_arrow_dropdown.png │ │ │ ├── ic_arrow_dropup.png │ │ │ ├── ic_arrow_left.png │ │ │ ├── ic_arrow_right.png │ │ │ ├── ic_cast.png │ │ │ ├── ic_cast_connected.png │ │ │ ├── ic_check.png │ │ │ ├── ic_check_circle.png │ │ │ ├── ic_close.png │ │ │ ├── ic_copy.png │ │ │ ├── ic_credits.png │ │ │ ├── ic_delete.png │ │ │ ├── ic_download.png │ │ │ ├── ic_edit.png │ │ │ ├── ic_editors_choice.png │ │ │ ├── ic_file.png │ │ │ ├── ic_following.png │ │ │ ├── ic_forward_10.png │ │ │ ├── ic_fullscreen.png │ │ │ ├── ic_fullscreen_exit.png │ │ │ ├── ic_invites.png │ │ │ ├── ic_library.png │ │ │ ├── ic_lock.png │ │ │ ├── ic_new.png │ │ │ ├── ic_notifications.png │ │ │ ├── ic_pause.png │ │ │ ├── ic_photo.png │ │ │ ├── ic_play.png │ │ │ ├── ic_publish.png │ │ │ ├── ic_publishes.png │ │ │ ├── ic_qr_scanner.png │ │ │ ├── ic_record.png │ │ │ ├── ic_replay_10.png │ │ │ ├── ic_report.png │ │ │ ├── ic_search.png │ │ │ ├── ic_settings.png │ │ │ ├── ic_share.png │ │ │ ├── ic_stop.png │ │ │ ├── ic_top.png │ │ │ ├── ic_trending.png │ │ │ ├── ic_unpublish.png │ │ │ ├── ic_upload.png │ │ │ ├── ic_wallet.png │ │ │ └── stripe_2x.png │ │ │ ├── drawable │ │ │ ├── bg_all_icon.xml │ │ │ ├── bg_channel_icon.xml │ │ │ ├── bg_channel_overlay_icon.xml │ │ │ ├── bg_copyable_text.xml │ │ │ ├── bg_floating_balance.xml │ │ │ ├── bg_floating_reward.xml │ │ │ ├── bg_notification_badge.xml │ │ │ ├── bg_selected_item.xml │ │ │ ├── bg_selected_list_item.xml │ │ │ ├── bg_selected_nav_item.xml │ │ │ ├── bg_small_icon.xml │ │ │ ├── bg_stream_cost.xml │ │ │ ├── bg_stream_overlay_icon.xml │ │ │ ├── bg_tag.xml │ │ │ ├── bg_tag_mature.xml │ │ │ ├── bg_thumbnail_icon.xml │ │ │ ├── bg_thumbnail_placeholder.xml │ │ │ ├── determinate_progress_circle.xml │ │ │ ├── fg_nav_menu_item.xml │ │ │ ├── ic_launcher_background.xml │ │ │ ├── ic_menu_camera.xml │ │ │ ├── ic_menu_gallery.xml │ │ │ ├── ic_menu_slideshow.xml │ │ │ ├── side_nav_bar.xml │ │ │ └── thin_divider.xml │ │ │ ├── font │ │ │ ├── inter.xml │ │ │ ├── inter_bold.otf │ │ │ ├── inter_bolditalic.otf │ │ │ ├── inter_italic.otf │ │ │ ├── inter_light.otf │ │ │ ├── inter_lightitalic.otf │ │ │ ├── inter_regular.otf │ │ │ └── inter_semibold.otf │ │ │ ├── layout │ │ │ ├── activity_first_run.xml │ │ │ ├── activity_main.xml │ │ │ ├── activity_verification.xml │ │ │ ├── activity_video.xml │ │ │ ├── app_bar_main.xml │ │ │ ├── card_invites_by_email.xml │ │ │ ├── card_invites_by_link.xml │ │ │ ├── card_invites_history.xml │ │ │ ├── card_reward_driver.xml │ │ │ ├── card_wallet_balance.xml │ │ │ ├── card_wallet_receive_credits.xml │ │ │ ├── card_wallet_recent_transactions.xml │ │ │ ├── card_wallet_send_credits.xml │ │ │ ├── card_wallet_sync.xml │ │ │ ├── container_comment_form.xml │ │ │ ├── container_inline_channel_form.xml │ │ │ ├── container_inline_tag_form.xml │ │ │ ├── container_nothing_at_location.xml │ │ │ ├── container_sdk_initializing.xml │ │ │ ├── content_main.xml │ │ │ ├── dialog_content_from.xml │ │ │ ├── dialog_content_scope.xml │ │ │ ├── dialog_content_sort.xml │ │ │ ├── dialog_create_support.xml │ │ │ ├── dialog_customize_tags.xml │ │ │ ├── dialog_discover.xml │ │ │ ├── dialog_repost_claim.xml │ │ │ ├── exo_playback_control_view.xml │ │ │ ├── floating_wallet_balance.xml │ │ │ ├── fragment_about.xml │ │ │ ├── fragment_all_content.xml │ │ │ ├── fragment_channel.xml │ │ │ ├── fragment_channel_about.xml │ │ │ ├── fragment_channel_comments.xml │ │ │ ├── fragment_channel_content.xml │ │ │ ├── fragment_channel_form.xml │ │ │ ├── fragment_channel_manager.xml │ │ │ ├── fragment_editors_choice.xml │ │ │ ├── fragment_file_view.xml │ │ │ ├── fragment_following.xml │ │ │ ├── fragment_gallery.xml │ │ │ ├── fragment_home.xml │ │ │ ├── fragment_invites.xml │ │ │ ├── fragment_library.xml │ │ │ ├── fragment_publish.xml │ │ │ ├── fragment_publish_form.xml │ │ │ ├── fragment_publishes.xml │ │ │ ├── fragment_rewards.xml │ │ │ ├── fragment_search.xml │ │ │ ├── fragment_shuffle.xml │ │ │ ├── fragment_transaction_history.xml │ │ │ ├── fragment_verification_email.xml │ │ │ ├── fragment_verification_manual.xml │ │ │ ├── fragment_verification_phone.xml │ │ │ ├── fragment_verification_wallet.xml │ │ │ ├── fragment_wallet.xml │ │ │ ├── list_item_boosting_balance.xml │ │ │ ├── list_item_channel.xml │ │ │ ├── list_item_channel_filter.xml │ │ │ ├── list_item_comment.xml │ │ │ ├── list_item_editors_choice.xml │ │ │ ├── list_item_featured_search_result.xml │ │ │ ├── list_item_gallery.xml │ │ │ ├── list_item_invitee.xml │ │ │ ├── list_item_nav_menu_group.xml │ │ │ ├── list_item_nav_menu_item.xml │ │ │ ├── list_item_notification.xml │ │ │ ├── list_item_reward.xml │ │ │ ├── list_item_startupstage.xml │ │ │ ├── list_item_stream.xml │ │ │ ├── list_item_suggested_channel.xml │ │ │ ├── list_item_tag.xml │ │ │ ├── list_item_transaction.xml │ │ │ ├── list_item_url_suggestion.xml │ │ │ ├── nav_header_main.xml │ │ │ ├── popup_webview.xml │ │ │ ├── spinner_item_channel.xml │ │ │ └── spinner_item_generic.xml │ │ │ ├── menu │ │ │ ├── menu_claim_list.xml │ │ │ └── menu_notification.xml │ │ │ ├── mipmap-anydpi-v26 │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ │ ├── mipmap-hdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-mdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xhdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_round.png │ │ │ ├── values-af │ │ │ └── strings.xml │ │ │ ├── values-ca │ │ │ └── strings.xml │ │ │ ├── values-de │ │ │ └── strings.xml │ │ │ ├── values-es │ │ │ └── strings.xml │ │ │ ├── values-et │ │ │ └── strings.xml │ │ │ ├── values-fr │ │ │ └── strings.xml │ │ │ ├── values-gu │ │ │ └── strings.xml │ │ │ ├── values-he │ │ │ └── strings.xml │ │ │ ├── values-hi │ │ │ └── strings.xml │ │ │ ├── values-id │ │ │ └── strings.xml │ │ │ ├── values-it │ │ │ └── strings.xml │ │ │ ├── values-jv │ │ │ └── strings.xml │ │ │ ├── values-ms │ │ │ └── strings.xml │ │ │ ├── values-night │ │ │ └── colors.xml │ │ │ ├── values-nl │ │ │ └── strings.xml │ │ │ ├── values-pl │ │ │ └── strings.xml │ │ │ ├── values-pt-rBR │ │ │ └── strings.xml │ │ │ ├── values-pt │ │ │ └── strings.xml │ │ │ ├── values-ro │ │ │ └── strings.xml │ │ │ ├── values-ru │ │ │ └── strings.xml │ │ │ ├── values-sr │ │ │ └── strings.xml │ │ │ ├── values-tr │ │ │ └── strings.xml │ │ │ ├── values-uk │ │ │ └── strings.xml │ │ │ ├── values-v21 │ │ │ └── styles.xml │ │ │ ├── values-vi │ │ │ └── strings.xml │ │ │ ├── values-zh-rTW │ │ │ └── strings.xml │ │ │ ├── values │ │ │ ├── attrs.xml │ │ │ ├── colors.xml │ │ │ ├── dimens.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ │ └── xml │ │ │ ├── filepaths.xml │ │ │ └── settings.xml │ └── test │ │ └── java │ │ └── io │ │ └── lbry │ │ └── browser │ │ └── utils │ │ ├── HelperTest.java │ │ └── LbryUriTest.java └── twitter.properties.secret ├── build.gradle ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── lbry-android.keystore.secret ├── release.sh └── settings.gradle /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | ## PR Checklist 2 | 3 | 4 | 5 | Please check all that apply to this PR using "x": 6 | 7 | - [ ] I have checked that this PR is not a duplicate of an existing PR (open, closed or merged) 8 | - [ ] I have checked that this PR does not introduce a breaking change 9 | - [ ] This PR introduces breaking changes and I have provided a detailed explanation below 10 | 11 | ## PR Type 12 | 13 | What kind of change does this PR introduce? 14 | 15 | - [ ] Bugfix 16 | - [ ] Feature 17 | - [ ] Code style update (formatting) 18 | - [ ] Refactoring (no functional changes) 19 | - [ ] Documentation changes 20 | - [ ] Other - Please describe: 21 | 22 | ## Fixes 23 | 24 | Issue Number: 25 | 26 | ## What is the current behavior? 27 | 28 | ## What is the new behavior? 29 | 30 | ## Other information 31 | 32 | 33 | -------------------------------------------------------------------------------- /.github/issue_template.md: -------------------------------------------------------------------------------- 1 | 10 | 11 | 12 | ## The Issue 13 | 14 | ### Steps to reproduce 15 | 1. 16 | 2. 17 | 3. 18 | 19 | ### Expected behaviour 20 | Tell us what should happen 21 | 22 | ### Actual behaviour 23 | Tell us what happens instead 24 | 25 | 26 | ## System Configuration 27 | - Device: 28 | - Android version: 29 | 30 | 31 | ## Anything Else 32 | 33 | 34 | 35 | ## Screenshots 36 | 37 | 38 | ## Internal Use 39 | 40 | ### Acceptance Criteria 41 | 1. 42 | 2. 43 | 3. 44 | 45 | ### Definition of Done 46 | - [ ] Tested against acceptance criteria 47 | - [ ] Tested against the assumptions of the user story 48 | - [ ] The project builds without errors 49 | - [ ] Unit tests are written and passing 50 | - [ ] Tests on devices/browsers listed in the issue have passed 51 | - [ ] QA performed & issues resolved 52 | - [ ] Refactoring completed 53 | - [ ] Any configuration or build changes documented 54 | - [ ] Documentation updated 55 | - [ ] Peer Code Review performed 56 | -------------------------------------------------------------------------------- /.github/workflows/deploy.yml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # OSX 2 | # 3 | .DS_Store 4 | 5 | # Xcode 6 | # 7 | build/ 8 | *.pbxuser 9 | !default.pbxuser 10 | *.mode1v3 11 | !default.mode1v3 12 | *.mode2v3 13 | !default.mode2v3 14 | *.perspectivev3 15 | !default.perspectivev3 16 | xcuserdata 17 | *.xccheckout 18 | *.moved-aside 19 | DerivedData 20 | *.hmap 21 | *.ipa 22 | *.xcuserstate 23 | 24 | # Android/IntelliJ 25 | # 26 | build/ 27 | .idea 28 | .gradle 29 | local.properties 30 | *.iml 31 | 32 | # node.js 33 | # 34 | node_modules/ 35 | npm-debug.log 36 | yarn-error.log 37 | 38 | # BUCK 39 | buck-out/ 40 | \.buckd/ 41 | *.keystore 42 | !debug.keystore 43 | 44 | # fastlane 45 | # 46 | # It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the 47 | # screenshots whenever they are needed. 48 | # For more information about the recommended setup visit: 49 | # https://docs.fastlane.tools/best-practices/source-control/ 50 | 51 | */fastlane/report.xml 52 | */fastlane/Preview.html 53 | */fastlane/screenshots 54 | 55 | # Bundle artifact 56 | *.jsbundle 57 | 58 | # CocoaPods 59 | /ios/Pods/ 60 | 61 | # Other Files 62 | app/google-services.json 63 | app/twitter.properties 64 | *.log 65 | .vagrant 66 | *.hprof 67 | app/build 68 | bin 69 | app/debuglib 70 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /.gitsecret/keys/mapping.cfg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/.gitsecret/keys/mapping.cfg -------------------------------------------------------------------------------- /.gitsecret/keys/pubring.kbx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/.gitsecret/keys/pubring.kbx -------------------------------------------------------------------------------- /.gitsecret/keys/pubring.kbx~: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/.gitsecret/keys/pubring.kbx~ -------------------------------------------------------------------------------- /.gitsecret/keys/random_seed: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/.gitsecret/keys/random_seed -------------------------------------------------------------------------------- /.gitsecret/keys/trustdb.gpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/.gitsecret/keys/trustdb.gpg -------------------------------------------------------------------------------- /.gitsecret/paths/mapping.cfg: -------------------------------------------------------------------------------- 1 | lbry-android.keystore:0d958c531870694624cc877ea98ca1c583485f8ebbb3a5acca58b1930c190d65 2 | app/google-services.json:896a0bee8294a36d061f10fa926129d8a780528b34d0a2f03113400c4246d67c 3 | app/twitter.properties:01212d70712f2041efb5c814bf30ecbf6f72e1ca5179c7647c4f8cbd995dd033 4 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2017-2020 LBRY Inc 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish,distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 10 | 11 | -------------------------------------------------------------------------------- /app/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /app/google-services.json.secret: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/google-services.json.secret -------------------------------------------------------------------------------- /app/google-services.sample.json: -------------------------------------------------------------------------------- 1 | { 2 | "project_info": { 3 | "project_number": "861521963586", 4 | "firebase_url": "https://lbry-mobile-builds-debug.firebaseio.com", 5 | "project_id": "lbry-mobile-builds-debug", 6 | "storage_bucket": "lbry-mobile-builds-debug.appspot.com" 7 | }, 8 | "client": [ 9 | { 10 | "client_info": { 11 | "mobilesdk_app_id": "1:861521963586:android:592958d248940ab2", 12 | "android_client_info": { 13 | "package_name": "io.lbry.browser" 14 | } 15 | }, 16 | "oauth_client": [ 17 | { 18 | "client_id": "861521963586-60cmvg5nmnrqkrc11a7bpmpv5ra2d50q.apps.googleusercontent.com", 19 | "client_type": 3 20 | } 21 | ], 22 | "api_key": [ 23 | { 24 | "current_key": "AIzaSyC7A3BYcIdZP9-Q-VNHoexYJWgZA7WzsPI" 25 | } 26 | ], 27 | "services": { 28 | "appinvite_service": { 29 | "other_platform_oauth_client": [ 30 | { 31 | "client_id": "861521963586-60cmvg5nmnrqkrc11a7bpmpv5ra2d50q.apps.googleusercontent.com", 32 | "client_type": 3 33 | } 34 | ] 35 | } 36 | } 37 | } 38 | ], 39 | "configuration_version": "1" 40 | } 41 | 42 | -------------------------------------------------------------------------------- /app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile 22 | -------------------------------------------------------------------------------- /app/src/androidTest/java/io/lbry/browser/ExampleInstrumentedTest.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser; 2 | 3 | import android.content.Context; 4 | 5 | import androidx.test.platform.app.InstrumentationRegistry; 6 | import androidx.test.ext.junit.runners.AndroidJUnit4; 7 | 8 | import org.junit.Test; 9 | import org.junit.runner.RunWith; 10 | 11 | import static org.junit.Assert.*; 12 | 13 | /** 14 | * Instrumented test, which will execute on an Android device. 15 | * 16 | * @see Testing documentation 17 | */ 18 | @RunWith(AndroidJUnit4.class) 19 | public class ExampleInstrumentedTest { 20 | @Test 21 | public void useAppContext() { 22 | // Context of the app under test. 23 | Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext(); 24 | 25 | assertEquals("io.lbry.browser", appContext.getPackageName()); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /app/src/androidTest/java/io/lbry/browser/utils/HelperTest.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.utils; 2 | 3 | import androidx.test.filters.SmallTest; 4 | 5 | import org.junit.Test; 6 | 7 | import static org.junit.Assert.assertEquals; 8 | 9 | @SmallTest 10 | public class HelperTest { 11 | 12 | } 13 | -------------------------------------------------------------------------------- /app/src/main/assets/font_awesome_5_free_regular.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/assets/font_awesome_5_free_regular.otf -------------------------------------------------------------------------------- /app/src/main/assets/font_awesome_5_free_solid.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/assets/font_awesome_5_free_solid.otf -------------------------------------------------------------------------------- /app/src/main/ic_launcher-playstore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/ic_launcher-playstore.png -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/LocalFileProvider.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser; 2 | 3 | import androidx.core.content.FileProvider; 4 | 5 | public class LocalFileProvider extends FileProvider { 6 | 7 | } 8 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/exceptions/ApiCallException.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.exceptions; 2 | 3 | public class ApiCallException extends Exception { 4 | public ApiCallException() { 5 | super(); 6 | } 7 | public ApiCallException(String message) { 8 | super(message); 9 | } 10 | public ApiCallException(String message, Throwable cause) { 11 | super(message, cause); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/exceptions/AuthTokenInvalidatedException.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.exceptions; 2 | 3 | public class AuthTokenInvalidatedException extends Exception { 4 | } 5 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/exceptions/LbryRequestException.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.exceptions; 2 | 3 | public class LbryRequestException extends Exception { 4 | public LbryRequestException() { 5 | super(); 6 | } 7 | public LbryRequestException(String message) { 8 | super(message); 9 | } 10 | public LbryRequestException(String message, Throwable cause) { 11 | super(message, cause); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/exceptions/LbryResponseException.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.exceptions; 2 | 3 | public class LbryResponseException extends Exception { 4 | public LbryResponseException() { 5 | super(); 6 | } 7 | public LbryResponseException(String message) { 8 | super(message); 9 | } 10 | public LbryResponseException(String message, Throwable cause) { 11 | super(message, cause); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/exceptions/LbryUriException.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.exceptions; 2 | 3 | public class LbryUriException extends Exception { 4 | public LbryUriException() { 5 | super(); 6 | } 7 | public LbryUriException(String message) { 8 | super(message); 9 | } 10 | public LbryUriException(String message, Throwable cause) { 11 | super(message, cause); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/exceptions/LbryioRequestException.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.exceptions; 2 | 3 | public class LbryioRequestException extends Exception { 4 | public LbryioRequestException() { 5 | super(); 6 | } 7 | public LbryioRequestException(String message) { 8 | super(message); 9 | } 10 | public LbryioRequestException(String message, Throwable cause) { 11 | super(message, cause); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/exceptions/LbryioResponseException.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.exceptions; 2 | 3 | import lombok.Getter; 4 | 5 | public class LbryioResponseException extends Exception { 6 | @Getter 7 | private int statusCode; 8 | public LbryioResponseException() { 9 | super(); 10 | } 11 | public LbryioResponseException(String message) { 12 | super(message); 13 | } 14 | public LbryioResponseException(String message, Throwable cause) { 15 | super(message, cause); 16 | } 17 | public LbryioResponseException(String message, int statusCode) { 18 | super(message); 19 | this.statusCode = statusCode; 20 | } 21 | public LbryioResponseException(String message, Throwable cause, int statusCode) { 22 | super(message, cause); 23 | this.statusCode = statusCode; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/exceptions/WalletException.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.exceptions; 2 | 3 | public class WalletException extends Exception { 4 | public WalletException() { 5 | super(); 6 | } 7 | public WalletException(String message) { 8 | super(message); 9 | } 10 | public WalletException(String message, Throwable cause) { 11 | super(message, cause); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/listener/CameraPermissionListener.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.listener; 2 | 3 | public interface CameraPermissionListener { 4 | void onCameraPermissionGranted(); 5 | void onCameraPermissionRefused(); 6 | void onRecordAudioPermissionGranted(); 7 | void onRecordAudioPermissionRefused(); 8 | } 9 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/listener/ChannelItemSelectionListener.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.listener; 2 | 3 | import io.lbry.browser.model.Claim; 4 | 5 | public interface ChannelItemSelectionListener { 6 | void onChannelItemSelected(Claim claim); 7 | void onChannelItemDeselected(Claim claim); 8 | void onChannelSelectionCleared(); 9 | } 10 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/listener/DownloadActionListener.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.listener; 2 | 3 | public interface DownloadActionListener { 4 | void onDownloadAction(String downloadAction, String uri, String outpoint, String fileInfoJson, double progress); 5 | } 6 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/listener/FetchChannelsListener.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.listener; 2 | 3 | import java.util.List; 4 | 5 | import io.lbry.browser.model.Claim; 6 | 7 | public interface FetchChannelsListener { 8 | void onChannelsFetched(List channels); 9 | } 10 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/listener/FetchClaimsListener.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.listener; 2 | 3 | import java.util.List; 4 | 5 | import io.lbry.browser.model.Claim; 6 | 7 | public interface FetchClaimsListener { 8 | void onClaimsFetched(List claims); 9 | } 10 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/listener/FilePickerListener.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.listener; 2 | 3 | public interface FilePickerListener { 4 | void onFilePicked(String filePath); 5 | void onFilePickerCancelled(); 6 | } 7 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/listener/PIPModeListener.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.listener; 2 | 3 | public interface PIPModeListener { 4 | void onEnterPIPMode(); 5 | void onExitPIPMode(); 6 | } 7 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/listener/ScreenOrientationListener.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.listener; 2 | 3 | public interface ScreenOrientationListener { 4 | void onPortraitOrientationEntered(); 5 | void onLandscapeOrientationEntered(); 6 | } 7 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/listener/SdkStatusListener.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.listener; 2 | 3 | public interface SdkStatusListener { 4 | void onSdkReady(); 5 | } 6 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/listener/SelectionModeListener.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.listener; 2 | 3 | public interface SelectionModeListener { 4 | void onEnterSelectionMode(); 5 | void onExitSelectionMode(); 6 | void onItemSelectionToggled(); 7 | } 8 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/listener/SignInListener.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.listener; 2 | 3 | public interface SignInListener { 4 | void onEmailAdded(String email); 5 | void onEmailEdit(); 6 | void onEmailVerified(); 7 | void onPhoneAdded(String countryCode, String phoneNumber); 8 | void onPhoneVerified(); 9 | void onManualVerifyContinue(); 10 | void onSkipQueueAction(); 11 | void onTwitterVerified(); 12 | void onManualProgress(boolean progress); 13 | } 14 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/listener/StoragePermissionListener.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.listener; 2 | 3 | public interface StoragePermissionListener { 4 | void onStoragePermissionGranted(); 5 | void onStoragePermissionRefused(); 6 | } 7 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/listener/TagListener.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.listener; 2 | 3 | import io.lbry.browser.model.Tag; 4 | 5 | public interface TagListener { 6 | void onTagAdded(Tag tag); 7 | void onTagRemoved(Tag tag); 8 | } 9 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/listener/WalletBalanceListener.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.listener; 2 | 3 | import io.lbry.browser.model.WalletBalance; 4 | 5 | public interface WalletBalanceListener { 6 | void onWalletBalanceUpdated(WalletBalance walletBalance); 7 | } 8 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/listener/WalletSyncListener.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.listener; 2 | 3 | public interface WalletSyncListener { 4 | void onWalletSyncProcessing(); 5 | void onWalletSyncWaitingForInput(); 6 | void onWalletSyncEnabled(); 7 | void onWalletSyncFailed(Exception error); 8 | } 9 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/model/ClaimSearchCacheValue.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.model; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | import lombok.Getter; 7 | 8 | public class ClaimSearchCacheValue { 9 | @Getter 10 | private final List claims; 11 | @Getter 12 | private final long timestamp; 13 | 14 | public ClaimSearchCacheValue(List claims, long timestamp) { 15 | this.claims = new ArrayList<>(claims); 16 | this.timestamp = timestamp; 17 | } 18 | 19 | public boolean isExpired(long ttl) { 20 | return System.currentTimeMillis() - timestamp > ttl; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/model/EditorsChoiceItem.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.model; 2 | 3 | import lombok.Data; 4 | 5 | @Data 6 | public class EditorsChoiceItem { 7 | private boolean header; 8 | private String title; 9 | private String parent; 10 | private String description; 11 | private String thumbnailUrl; 12 | private String permanentUrl; 13 | 14 | public static EditorsChoiceItem fromClaim(Claim claim) { 15 | EditorsChoiceItem item = new EditorsChoiceItem(); 16 | item.setTitle(claim.getTitle()); 17 | item.setDescription(claim.getDescription()); 18 | item.setThumbnailUrl(claim.getThumbnailUrl()); 19 | item.setPermanentUrl(claim.getPermanentUrl()); 20 | 21 | return item; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/model/Fee.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.model; 2 | 3 | import lombok.Data; 4 | 5 | @Data 6 | public class Fee { 7 | private String amount; 8 | private String currency; 9 | private String address; 10 | } 11 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/model/GalleryItem.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.model; 2 | 3 | import lombok.Data; 4 | 5 | @Data 6 | public class GalleryItem { 7 | private String id; 8 | private String name; 9 | private String filePath; 10 | private String type; 11 | private String thumbnailPath; 12 | private long duration; 13 | } 14 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/model/Language.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.model; 2 | 3 | import lombok.Data; 4 | 5 | @Data 6 | public class Language { 7 | private final String code; 8 | private final String name; 9 | private final int stringResourceId; 10 | 11 | public Language(String code, String name, int stringResourceId) { 12 | this.code = code; 13 | this.name = name; 14 | this.stringResourceId = stringResourceId; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/model/License.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.model; 2 | 3 | import lombok.Data; 4 | 5 | @Data 6 | public class License { 7 | private final String name; 8 | private String url; 9 | private final int stringResourceId; 10 | 11 | public License(String name, int stringResourceId) { 12 | this.name = name; 13 | this.stringResourceId = stringResourceId; 14 | } 15 | public License(String name, String url, int stringResourceId) { 16 | this.name = name; 17 | this.url = url; 18 | this.stringResourceId = stringResourceId; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/model/Location.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.model; 2 | 3 | import lombok.Data; 4 | 5 | @Data 6 | public class Location { 7 | private double latitude; 8 | private double longitude; 9 | private String country; 10 | private String state; 11 | private String city; 12 | private String code; 13 | } 14 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/model/StartupStage.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.model; 2 | 3 | public class StartupStage { 4 | public final Integer stage; 5 | public final Boolean stageDone; 6 | 7 | public StartupStage(Integer stage, Boolean stageDone) { 8 | this.stage = stage; 9 | this.stageDone = stageDone; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/model/Tag.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.model; 2 | 3 | import java.util.Comparator; 4 | 5 | import io.lbry.browser.utils.Predefined; 6 | import lombok.Getter; 7 | import lombok.Setter; 8 | 9 | public class Tag implements Comparator { 10 | @Getter 11 | @Setter 12 | private String name; 13 | @Getter 14 | @Setter 15 | private boolean followed; 16 | 17 | public Tag() { 18 | 19 | } 20 | public Tag(String name) { 21 | this.name = name; 22 | } 23 | 24 | public String getLowercaseName() { 25 | return name.toLowerCase(); 26 | } 27 | 28 | public boolean isMature() { 29 | return Predefined.MATURE_TAGS.contains(name.toLowerCase()); 30 | } 31 | 32 | public String toString() { 33 | return getLowercaseName(); 34 | } 35 | public boolean equals(Object o) { 36 | return (o instanceof Tag) && ((Tag) o).getName().equalsIgnoreCase(name); 37 | } 38 | public int hashCode() { 39 | return name.toLowerCase().hashCode(); 40 | } 41 | public int compare(Tag a, Tag b) { 42 | return a.getLowercaseName().compareToIgnoreCase(b.getLowercaseName()); 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/model/TwitterOauth.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.model; 2 | 3 | import lombok.Data; 4 | 5 | @Data 6 | public class TwitterOauth { 7 | private String oauthToken; 8 | private String oauthTokenSecret; 9 | } 10 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/model/UrlSuggestion.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.model; 2 | 3 | import io.lbry.browser.utils.LbryUri; 4 | import lombok.Data; 5 | 6 | @Data 7 | public class UrlSuggestion { 8 | public static final int TYPE_CHANNEL = 1; 9 | public static final int TYPE_FILE = 2; 10 | public static final int TYPE_SEARCH = 3; 11 | public static final int TYPE_TAG = 4; 12 | 13 | private int type; 14 | private String text; 15 | private LbryUri uri; 16 | private Claim claim; // associated claim if resolved 17 | private boolean titleTextOnly; 18 | private boolean titleUrlOnly; 19 | private boolean useTextAsDescription; 20 | 21 | public UrlSuggestion() { 22 | 23 | } 24 | public UrlSuggestion(int type, String text) { 25 | this.type = type; 26 | this.text = text; 27 | } 28 | public UrlSuggestion(int type, String text, LbryUri uri) { 29 | this(type, text); 30 | this.uri = uri; 31 | } 32 | public UrlSuggestion(int type, String text, LbryUri uri, boolean titleTextOnly) { 33 | this(type, text, uri); 34 | this.titleTextOnly = titleTextOnly; 35 | } 36 | 37 | public String getTitle() { 38 | if (titleUrlOnly && (type == TYPE_CHANNEL || type == TYPE_FILE)) { 39 | return uri.toString(); 40 | } 41 | 42 | if (!titleTextOnly) { 43 | switch (type) { 44 | case TYPE_CHANNEL: 45 | return String.format("%s - %s", text.startsWith("@") ? text.substring(1) : text, uri.toVanityString()); 46 | case TYPE_FILE: 47 | return String.format("%s - %s", text, uri.toVanityString()); 48 | case TYPE_TAG: 49 | return String.format("%s - #%s", text, text); 50 | } 51 | } 52 | 53 | return text; 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/model/WalletDetailItem.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.model; 2 | 3 | public class WalletDetailItem { 4 | public String detail; 5 | public String detailDesc; 6 | public String detailAmount; 7 | public boolean isUnlockable; 8 | public boolean isInProgress; 9 | 10 | public WalletDetailItem(String detail, String detailDesc, String detailAmount, boolean isUnlockable, boolean isInProgress) { 11 | this.detail = detail; 12 | this.detailDesc = detailDesc; 13 | this.detailAmount = detailAmount; 14 | this.isUnlockable = isUnlockable; 15 | this.isInProgress = isInProgress; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/model/WalletSync.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.model; 2 | 3 | import lombok.Data; 4 | import lombok.Getter; 5 | 6 | @Data 7 | public class WalletSync { 8 | @Getter 9 | private final String hash; 10 | @Getter 11 | private final String data; 12 | @Getter 13 | private boolean changed; 14 | 15 | public WalletSync(String hash, String data) { 16 | this.hash = hash; 17 | this.data = data; 18 | } 19 | 20 | public WalletSync(String hash, String data, boolean changed) { 21 | this(hash, data); 22 | this.changed = changed; 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/model/lbryinc/Invitee.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.model.lbryinc; 2 | 3 | import lombok.Data; 4 | 5 | @Data 6 | public class Invitee { 7 | private boolean header; 8 | private String email; 9 | private boolean inviteRewardClaimed; 10 | private boolean inviteRewardClaimable; 11 | } 12 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/model/lbryinc/LbryNotification.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.model.lbryinc; 2 | 3 | import java.util.Comparator; 4 | import java.util.Date; 5 | 6 | import io.lbry.browser.model.Claim; 7 | import lombok.Data; 8 | import lombok.EqualsAndHashCode; 9 | 10 | @Data 11 | @EqualsAndHashCode(callSuper = false, onlyExplicitlyIncluded = true) 12 | public class LbryNotification implements Comparator { 13 | private long id; 14 | @EqualsAndHashCode.Include 15 | private long remoteId; 16 | private String title; 17 | private String description; 18 | private String thumbnailUrl; 19 | private String rule; 20 | private String targetUrl; 21 | private boolean read; 22 | private boolean seen; 23 | private Date timestamp; 24 | 25 | // only for comment notifications 26 | private String authorUrl; 27 | private Claim commentAuthor; 28 | 29 | public int compare(LbryNotification a, LbryNotification b) { 30 | long t1 = a.getTimestamp() != null ? a.getTimestamp().getTime() : 0; 31 | long t2 = b.getTimestamp() != null ? b.getTimestamp().getTime() : 0; 32 | if (t1 < t2) { 33 | return -1; 34 | } 35 | if (t1 > t2) { 36 | return 1; 37 | } 38 | return 0; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/model/lbryinc/RewardVerified.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.model.lbryinc; 2 | 3 | import lombok.Data; 4 | 5 | @Data 6 | public class RewardVerified { 7 | private long userId; 8 | private boolean isRewardApproved; 9 | } 10 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/model/lbryinc/Subscription.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.model.lbryinc; 2 | 3 | import io.lbry.browser.model.Claim; 4 | import lombok.Getter; 5 | import lombok.Setter; 6 | 7 | public class Subscription { 8 | @Getter 9 | @Setter 10 | private String channelName; 11 | @Getter 12 | @Setter 13 | private String url; 14 | @Getter 15 | @Setter 16 | private boolean isNotificationsDisabled; 17 | 18 | public Subscription() { 19 | 20 | } 21 | public Subscription(String channelName, String url, boolean isNotificationsDisabled) { 22 | this.channelName = channelName; 23 | this.url = url; 24 | this.isNotificationsDisabled = isNotificationsDisabled; 25 | } 26 | 27 | public static Subscription fromClaim(Claim claim) { 28 | return new Subscription(claim.getName(), claim.getPermanentUrl(), false); 29 | } 30 | public String toString() { 31 | return url; 32 | } 33 | 34 | public boolean equals(Object o) { 35 | return (o instanceof Subscription) && url != null && url.equalsIgnoreCase(((Subscription) o).getUrl()); 36 | } 37 | public int hashCode() { 38 | return url.toLowerCase().hashCode(); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/model/lbryinc/User.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.model.lbryinc; 2 | 3 | import java.util.List; 4 | 5 | import lombok.Data; 6 | 7 | @Data 8 | public class User { 9 | private String createdAt; 10 | private String familyName; 11 | private String givenName; 12 | private List groups; 13 | private boolean hasVerifiedEmail; 14 | private long id; 15 | private boolean inviteRewardClaimed; 16 | private String invitedAt; 17 | private long inivtedById; 18 | private int invitesRemaining; 19 | private boolean isEmailEnabled; 20 | private boolean isIdentityVerified; 21 | private boolean isRewardApproved; 22 | private String language; 23 | private long manualApprovalUserId; 24 | private String primaryEmail; 25 | private String rewardStatusChangeTrigger; 26 | private String updatedAt; 27 | private List youtubeChannels; 28 | private List deviceTypes; 29 | 30 | @Data 31 | public static class YoutubeChannel { 32 | String ytChannelName; 33 | String lbryChannelName; 34 | String channelClaimId; 35 | String syncStatus; 36 | String statusToken; 37 | boolean transferable; 38 | String transferState; 39 | List publishToAddress; 40 | String publicKey; 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/tasks/CommentListHandler.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.tasks; 2 | 3 | import java.util.List; 4 | 5 | import io.lbry.browser.model.Comment; 6 | 7 | public interface CommentListHandler { 8 | void onSuccess(List comments, boolean hasReachedEnd); 9 | void onError(Exception error); 10 | } 11 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/tasks/GenericTaskHandler.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.tasks; 2 | 3 | public interface GenericTaskHandler { 4 | void beforeStart(); 5 | void onSuccess(); 6 | void onError(Exception error); 7 | } 8 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/tasks/LoadTagsTask.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.tasks; 2 | 3 | import android.content.Context; 4 | import android.database.sqlite.SQLiteDatabase; 5 | import android.database.sqlite.SQLiteException; 6 | import android.os.AsyncTask; 7 | 8 | import java.util.List; 9 | 10 | import io.lbry.browser.MainActivity; 11 | import io.lbry.browser.data.DatabaseHelper; 12 | import io.lbry.browser.model.Tag; 13 | 14 | public class LoadTagsTask extends AsyncTask> { 15 | private final Context context; 16 | private final LoadTagsHandler handler; 17 | private Exception error; 18 | 19 | public LoadTagsTask(Context context, LoadTagsHandler handler) { 20 | this.context = context; 21 | this.handler = handler; 22 | } 23 | protected List doInBackground(Void... params) { 24 | List tags = null; 25 | SQLiteDatabase db = null; 26 | try { 27 | if (context instanceof MainActivity) { 28 | db = ((MainActivity) context).getDbHelper().getReadableDatabase(); 29 | if (db != null) { 30 | tags = DatabaseHelper.getTags(db); 31 | } 32 | } 33 | } catch (SQLiteException ex) { 34 | error = ex; 35 | } 36 | 37 | return tags; 38 | } 39 | protected void onPostExecute(List tags) { 40 | if (handler != null) { 41 | if (tags != null) { 42 | handler.onSuccess(tags); 43 | } else { 44 | handler.onError(error); 45 | } 46 | } 47 | } 48 | 49 | public interface LoadTagsHandler { 50 | void onSuccess(List tags); 51 | void onError(Exception error); 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/tasks/ReadTextFileTask.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.tasks; 2 | 3 | import android.os.AsyncTask; 4 | 5 | import java.io.BufferedReader; 6 | import java.io.FileInputStream; 7 | import java.io.IOException; 8 | import java.io.InputStreamReader; 9 | 10 | import io.lbry.browser.utils.Helper; 11 | 12 | public class ReadTextFileTask extends AsyncTask { 13 | private final String filePath; 14 | private Exception error; 15 | private final ReadTextFileHandler handler; 16 | public ReadTextFileTask(String filePath, ReadTextFileHandler handler) { 17 | this.filePath = filePath; 18 | this.handler = handler; 19 | } 20 | protected String doInBackground(Void... params) { 21 | StringBuilder sb = new StringBuilder(); 22 | BufferedReader reader = null; 23 | try { 24 | reader = new BufferedReader(new InputStreamReader(new FileInputStream(filePath))); 25 | String line = null; 26 | while ((line = reader.readLine()) != null) { 27 | sb.append(line).append("\n"); 28 | } 29 | } catch (IOException ex) { 30 | error = ex; 31 | return null; 32 | } finally { 33 | Helper.closeCloseable(reader); 34 | } 35 | 36 | return sb.toString(); 37 | } 38 | protected void onPostExecute(String text) { 39 | if (handler != null) { 40 | if (!Helper.isNull(text)) { 41 | handler.onSuccess(text); 42 | } else { 43 | handler.onError(error); 44 | } 45 | } 46 | } 47 | 48 | public interface ReadTextFileHandler { 49 | void onSuccess(String text); 50 | void onError(Exception error); 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/tasks/RewardVerifiedHandler.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.tasks; 2 | 3 | import io.lbry.browser.model.lbryinc.RewardVerified; 4 | 5 | public interface RewardVerifiedHandler { 6 | void onSuccess(RewardVerified rewardVerified); 7 | void onError(Exception error); 8 | } 9 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/tasks/SetSdkSettingTask.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.tasks; 2 | 3 | import android.os.AsyncTask; 4 | 5 | import java.util.HashMap; 6 | import java.util.Map; 7 | 8 | import io.lbry.browser.exceptions.ApiCallException; 9 | import io.lbry.browser.utils.Lbry; 10 | 11 | public class SetSdkSettingTask extends AsyncTask { 12 | private final String key; 13 | private final String value; 14 | private final GenericTaskHandler handler; 15 | private Exception error; 16 | public SetSdkSettingTask(String key, String value, GenericTaskHandler handler) { 17 | this.key = key; 18 | this.value = value; 19 | this.handler = handler; 20 | } 21 | 22 | @Override 23 | protected Boolean doInBackground(Void... params) { 24 | try { 25 | Map options = new HashMap<>(); 26 | options.put("key", key); 27 | options.put("value", value); 28 | Lbry.genericApiCall("setting_set", options); 29 | return true; 30 | } catch (ApiCallException ex) { 31 | error = ex; 32 | return false; 33 | } 34 | } 35 | 36 | protected void onPostExecute(Boolean result) { 37 | if (handler != null) { 38 | if (result) { 39 | handler.onSuccess(); 40 | } else { 41 | handler.onError(error); 42 | } 43 | } 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/tasks/TwitterOauthHandler.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.tasks; 2 | 3 | import io.lbry.browser.model.TwitterOauth; 4 | 5 | public interface TwitterOauthHandler { 6 | void onSuccess(TwitterOauth twitterOauth); 7 | void onError(Exception error); 8 | } 9 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/tasks/claim/AbandonHandler.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.tasks.claim; 2 | 3 | import java.util.List; 4 | 5 | public interface AbandonHandler { 6 | void onComplete(List successfulClaimIds, List failedClaimIds, List errors); 7 | } 8 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/tasks/claim/ClaimListResultHandler.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.tasks.claim; 2 | 3 | import java.util.List; 4 | 5 | import io.lbry.browser.model.Claim; 6 | 7 | public interface ClaimListResultHandler { 8 | void onSuccess(List claims); 9 | void onError(Exception error); 10 | } 11 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/tasks/claim/ClaimResultHandler.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.tasks.claim; 2 | 3 | import io.lbry.browser.model.Claim; 4 | 5 | public interface ClaimResultHandler { 6 | void beforeStart(); 7 | void onSuccess(Claim claimResult); 8 | void onError(Exception error); 9 | } 10 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/tasks/claim/ClaimSearchResultHandler.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.tasks.claim; 2 | 3 | import java.util.List; 4 | 5 | import io.lbry.browser.model.Claim; 6 | 7 | public interface ClaimSearchResultHandler { 8 | void onSuccess(List claims, boolean hasReachedEnd); 9 | void onError(Exception error); 10 | } 11 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/tasks/file/BulkDeleteFilesTask.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.tasks.file; 2 | 3 | import android.os.AsyncTask; 4 | 5 | import java.util.HashMap; 6 | import java.util.List; 7 | import java.util.Map; 8 | 9 | import io.lbry.browser.exceptions.ApiCallException; 10 | import io.lbry.browser.utils.Lbry; 11 | 12 | // Just run delete on the specified claim IDs (no need for a handler) 13 | public class BulkDeleteFilesTask extends AsyncTask { 14 | private final List claimIds; 15 | public BulkDeleteFilesTask(List claimIds) { 16 | this.claimIds = claimIds; 17 | } 18 | protected Boolean doInBackground(Void... params) { 19 | for (String claimId : claimIds) { 20 | try { 21 | Map options = new HashMap<>(); 22 | options.put("claim_id", claimId); 23 | options.put("delete_from_download_dir", true); 24 | Lbry.genericApiCall(Lbry.METHOD_FILE_DELETE, options); 25 | } catch (ApiCallException ex) { 26 | // pass 27 | } 28 | } 29 | return true; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/tasks/file/DeleteFileTask.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.tasks.file; 2 | 3 | import android.os.AsyncTask; 4 | 5 | import java.util.HashMap; 6 | import java.util.Map; 7 | 8 | import io.lbry.browser.exceptions.ApiCallException; 9 | import io.lbry.browser.tasks.GenericTaskHandler; 10 | import io.lbry.browser.utils.Lbry; 11 | 12 | public class DeleteFileTask extends AsyncTask { 13 | private final String claimId; 14 | private Exception error; 15 | private final GenericTaskHandler handler; 16 | 17 | public DeleteFileTask(String claimId, GenericTaskHandler handler) { 18 | this.claimId = claimId; 19 | this.handler = handler; 20 | } 21 | 22 | protected Boolean doInBackground(Void... params) { 23 | try { 24 | Map options = new HashMap<>(); 25 | options.put("claim_id", claimId); 26 | options.put("delete_from_download_dir", true); 27 | return (boolean) Lbry.genericApiCall(Lbry.METHOD_FILE_DELETE, options); 28 | } catch (ApiCallException ex) { 29 | error = ex; 30 | return false; 31 | } 32 | } 33 | 34 | protected void onPostExecute(Boolean result) { 35 | if (handler != null) { 36 | if (result) { 37 | handler.onSuccess(); 38 | } else { 39 | handler.onError(error); 40 | } 41 | } 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/tasks/lbryinc/FetchCurrentUserTask.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.tasks.lbryinc; 2 | 3 | import android.content.Context; 4 | import android.os.AsyncTask; 5 | 6 | import io.lbry.browser.model.lbryinc.User; 7 | import io.lbry.browser.utils.Lbryio; 8 | 9 | public class FetchCurrentUserTask extends AsyncTask { 10 | private final Context context; 11 | private Exception error; 12 | private final FetchUserTaskHandler handler; 13 | 14 | public FetchCurrentUserTask(Context context, FetchUserTaskHandler handler) { 15 | this.context = context; 16 | this.handler = handler; 17 | } 18 | protected User doInBackground(Void... params) { 19 | try { 20 | return Lbryio.fetchCurrentUser(context); 21 | } catch (Exception ex) { 22 | error = ex; 23 | return null; 24 | } 25 | } 26 | 27 | protected void onPostExecute(User result) { 28 | if (handler != null) { 29 | if (result != null) { 30 | handler.onSuccess(result); 31 | } else { 32 | handler.onError(error); 33 | } 34 | } 35 | } 36 | 37 | public interface FetchUserTaskHandler { 38 | void onSuccess(User user); 39 | void onError(Exception error); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/tasks/lbryinc/LogPublishTask.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.tasks.lbryinc; 2 | 3 | import android.os.AsyncTask; 4 | 5 | import java.util.HashMap; 6 | import java.util.Map; 7 | 8 | import io.lbry.browser.exceptions.LbryioRequestException; 9 | import io.lbry.browser.exceptions.LbryioResponseException; 10 | import io.lbry.browser.model.Claim; 11 | import io.lbry.browser.utils.Lbryio; 12 | 13 | public class LogPublishTask extends AsyncTask { 14 | private final Claim claimResult; 15 | public LogPublishTask(Claim claimResult) { 16 | this.claimResult = claimResult; 17 | } 18 | protected Void doInBackground(Void... params) { 19 | try { 20 | Map options = new HashMap<>(); 21 | options.put("uri", claimResult.getPermanentUrl()); 22 | options.put("claim_id", claimResult.getClaimId()); 23 | options.put("outpoint", String.format("%s:%d", claimResult.getTxid(), claimResult.getNout())); 24 | if (claimResult.getSigningChannel() != null) { 25 | options.put("channel_claim_id", claimResult.getSigningChannel().getClaimId()); 26 | } 27 | Lbryio.call("event", "publish", options, null).close(); 28 | } catch (LbryioRequestException | LbryioResponseException ex) { 29 | // pass 30 | } 31 | return null; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/tasks/lbryinc/NotificationDeleteTask.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.tasks.lbryinc; 2 | 3 | import android.os.AsyncTask; 4 | 5 | import java.util.HashMap; 6 | import java.util.List; 7 | import java.util.Map; 8 | 9 | import io.lbry.browser.exceptions.LbryioRequestException; 10 | import io.lbry.browser.exceptions.LbryioResponseException; 11 | import io.lbry.browser.utils.Helper; 12 | import io.lbry.browser.utils.Lbryio; 13 | 14 | public class NotificationDeleteTask extends AsyncTask { 15 | private final List ids; 16 | 17 | public NotificationDeleteTask(List ids) { 18 | this.ids = ids; 19 | } 20 | 21 | protected Boolean doInBackground(Void... params) { 22 | Map options = new HashMap<>(); 23 | options.put("notification_ids", Helper.joinL(ids, ",")); 24 | 25 | try { 26 | Object result = Lbryio.parseResponse(Lbryio.call("notification", "delete", options, null)); 27 | return "ok".equalsIgnoreCase(result.toString()); 28 | } catch (LbryioResponseException | LbryioRequestException ex) { 29 | // pass 30 | } 31 | return false; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/tasks/lbryinc/NotificationUpdateTask.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.tasks.lbryinc; 2 | 3 | import android.os.AsyncTask; 4 | 5 | import java.util.HashMap; 6 | import java.util.List; 7 | import java.util.Map; 8 | 9 | import io.lbry.browser.exceptions.LbryioRequestException; 10 | import io.lbry.browser.exceptions.LbryioResponseException; 11 | import io.lbry.browser.utils.Helper; 12 | import io.lbry.browser.utils.Lbryio; 13 | 14 | public class NotificationUpdateTask extends AsyncTask { 15 | private final List ids; 16 | private final boolean seen; 17 | private final boolean read; 18 | private final boolean updateRead; 19 | 20 | public NotificationUpdateTask(List ids, boolean seen) { 21 | this(ids, false, true, false); 22 | } 23 | 24 | public NotificationUpdateTask(List ids, boolean read, boolean seen, boolean updateRead) { 25 | this.ids = ids; 26 | this.read = read; 27 | this.seen = seen; 28 | this.updateRead = updateRead; 29 | } 30 | 31 | protected Boolean doInBackground(Void... params) { 32 | Map options = new HashMap<>(); 33 | options.put("notification_ids", Helper.joinL(ids, ",")); 34 | options.put("is_seen", String.valueOf(seen)); 35 | if (updateRead) { 36 | options.put("is_read", String.valueOf(read)); 37 | } 38 | 39 | try { 40 | Object result = Lbryio.parseResponse(Lbryio.call("notification", "edit", options, null)); 41 | return "ok".equalsIgnoreCase(result.toString()); 42 | } catch (LbryioResponseException | LbryioRequestException ex) { 43 | 44 | } 45 | return false; 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/tasks/localdata/FetchRecentUrlHistoryTask.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.tasks.localdata; 2 | 3 | import android.database.sqlite.SQLiteDatabase; 4 | import android.database.sqlite.SQLiteException; 5 | import android.os.AsyncTask; 6 | 7 | import java.util.ArrayList; 8 | import java.util.List; 9 | 10 | import io.lbry.browser.data.DatabaseHelper; 11 | import io.lbry.browser.model.UrlSuggestion; 12 | 13 | public class FetchRecentUrlHistoryTask extends AsyncTask> { 14 | private final DatabaseHelper dbHelper; 15 | private final FetchRecentUrlHistoryHandler handler; 16 | public FetchRecentUrlHistoryTask(DatabaseHelper dbHelper, FetchRecentUrlHistoryHandler handler) { 17 | this.dbHelper = dbHelper; 18 | this.handler = handler; 19 | } 20 | protected List doInBackground(Void... params) { 21 | try { 22 | SQLiteDatabase db = dbHelper.getReadableDatabase(); 23 | return DatabaseHelper.getRecentHistory(db); 24 | } catch (SQLiteException ex) { 25 | return new ArrayList<>(); 26 | } 27 | } 28 | protected void onPostExecute(List recentHistory) { 29 | if (handler != null) { 30 | handler.onSuccess(recentHistory); 31 | } 32 | } 33 | 34 | public interface FetchRecentUrlHistoryHandler { 35 | void onSuccess(List recentHistory); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/tasks/localdata/FetchViewHistoryTask.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.tasks.localdata; 2 | 3 | import android.database.sqlite.SQLiteDatabase; 4 | import android.database.sqlite.SQLiteException; 5 | import android.os.AsyncTask; 6 | 7 | import java.text.SimpleDateFormat; 8 | import java.util.ArrayList; 9 | import java.util.Date; 10 | import java.util.List; 11 | 12 | import io.lbry.browser.data.DatabaseHelper; 13 | import io.lbry.browser.model.ViewHistory; 14 | import io.lbry.browser.utils.Helper; 15 | 16 | public class FetchViewHistoryTask extends AsyncTask> { 17 | private final DatabaseHelper dbHelper; 18 | private final FetchViewHistoryHandler handler; 19 | private final int pageSize; 20 | private final Date lastDate; 21 | public FetchViewHistoryTask(Date lastDate, int pageSize, DatabaseHelper dbHelper, FetchViewHistoryHandler handler) { 22 | this.lastDate = lastDate; 23 | this.pageSize = pageSize; 24 | this.dbHelper = dbHelper; 25 | this.handler = handler; 26 | } 27 | protected List doInBackground(Void... params) { 28 | try { 29 | SQLiteDatabase db = dbHelper.getReadableDatabase(); 30 | return DatabaseHelper.getViewHistory( 31 | lastDate == null ? null : new SimpleDateFormat(Helper.ISO_DATE_FORMAT_PATTERN).format(lastDate), pageSize, db); 32 | } catch (SQLiteException ex) { 33 | return new ArrayList<>(); 34 | } 35 | } 36 | protected void onPostExecute(List history) { 37 | if (handler != null) { 38 | handler.onSuccess(history, history.size() < pageSize); 39 | } 40 | } 41 | 42 | public interface FetchViewHistoryHandler { 43 | void onSuccess(List history, boolean hasReachedEnd); 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/tasks/localdata/SaveUrlHistoryTask.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.tasks.localdata; 2 | 3 | import android.database.sqlite.SQLiteDatabase; 4 | import android.os.AsyncTask; 5 | 6 | import io.lbry.browser.data.DatabaseHelper; 7 | import io.lbry.browser.model.UrlSuggestion; 8 | 9 | public class SaveUrlHistoryTask extends AsyncTask { 10 | private final DatabaseHelper dbHelper; 11 | private final UrlSuggestion suggestion; 12 | private final SaveUrlHistoryHandler handler; 13 | private Exception error; 14 | 15 | public SaveUrlHistoryTask(UrlSuggestion suggestion, DatabaseHelper dbHelper, SaveUrlHistoryHandler handler) { 16 | this.suggestion = suggestion; 17 | this.dbHelper = dbHelper; 18 | this.handler = handler; 19 | 20 | } 21 | protected Boolean doInBackground(Void... params) { 22 | try { 23 | SQLiteDatabase db = dbHelper.getWritableDatabase(); 24 | DatabaseHelper.createOrUpdateUrlHistoryItem(suggestion.getText(), suggestion.getUri().toString(), suggestion.getType(), db); 25 | } catch (Exception ex) { 26 | error = ex; 27 | return false; 28 | } 29 | 30 | return true; 31 | } 32 | protected void onPostExecute(Boolean result) { 33 | if (handler != null) { 34 | if (result) { 35 | handler.onSuccess(suggestion); 36 | } else { 37 | handler.onError(error); 38 | } 39 | } 40 | } 41 | 42 | public interface SaveUrlHistoryHandler { 43 | void onSuccess(UrlSuggestion item); 44 | void onError(Exception error); 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/tasks/localdata/SaveViewHistoryTask.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.tasks.localdata; 2 | 3 | import android.database.sqlite.SQLiteDatabase; 4 | import android.os.AsyncTask; 5 | 6 | import io.lbry.browser.data.DatabaseHelper; 7 | import io.lbry.browser.model.ViewHistory; 8 | 9 | public class SaveViewHistoryTask extends AsyncTask { 10 | private final DatabaseHelper dbHelper; 11 | private final ViewHistory history; 12 | private final SaveViewHistoryHandler handler; 13 | private Exception error; 14 | 15 | public SaveViewHistoryTask(ViewHistory history, DatabaseHelper dbHelper, SaveViewHistoryHandler handler) { 16 | this.history = history; 17 | this.dbHelper = dbHelper; 18 | this.handler = handler; 19 | } 20 | protected Boolean doInBackground(Void... params) { 21 | try { 22 | SQLiteDatabase db = dbHelper.getWritableDatabase(); 23 | DatabaseHelper.createOrUpdateViewHistoryItem(history, db); 24 | } catch (Exception ex) { 25 | error = ex; 26 | return false; 27 | } 28 | 29 | return true; 30 | } 31 | protected void onPostExecute(Boolean result) { 32 | if (handler != null) { 33 | if (result) { 34 | handler.onSuccess(history); 35 | } else { 36 | handler.onError(error); 37 | } 38 | } 39 | } 40 | 41 | public interface SaveViewHistoryHandler { 42 | void onSuccess(ViewHistory item); 43 | void onError(Exception error); 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/tasks/verification/CheckUserEmailVerifiedTask.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.tasks.verification; 2 | 3 | import android.content.Context; 4 | import android.os.AsyncTask; 5 | 6 | import io.lbry.browser.exceptions.AuthTokenInvalidatedException; 7 | import io.lbry.browser.model.lbryinc.User; 8 | import io.lbry.browser.utils.Lbryio; 9 | 10 | public class CheckUserEmailVerifiedTask extends AsyncTask { 11 | private final Context context; 12 | private final CheckUserEmailVerifiedHandler handler; 13 | 14 | public CheckUserEmailVerifiedTask(Context context, CheckUserEmailVerifiedHandler handler) { 15 | this.context = context; 16 | this.handler = handler; 17 | } 18 | 19 | protected Boolean doInBackground(Void... params) { 20 | try { 21 | User user = Lbryio.fetchCurrentUser(context); 22 | return user != null && user.isHasVerifiedEmail(); 23 | } catch (AuthTokenInvalidatedException ex) { 24 | return false; 25 | } 26 | } 27 | 28 | protected void onPostExecute(Boolean result) { 29 | if (handler != null && result) { 30 | // we only care if the user has actually verified their email 31 | handler.onUserEmailVerified(); 32 | } 33 | } 34 | 35 | public interface CheckUserEmailVerifiedHandler { 36 | void onUserEmailVerified(); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/tasks/verification/PhoneResendTask.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.tasks.verification; 2 | 3 | public class PhoneResendTask { 4 | } 5 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/tasks/wallet/DefaultSyncTaskHandler.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.tasks.wallet; 2 | 3 | import io.lbry.browser.model.WalletSync; 4 | 5 | public abstract class DefaultSyncTaskHandler implements SyncTaskHandler { 6 | public void onSyncGetSuccess(WalletSync walletSync) { 7 | throw new UnsupportedOperationException(); 8 | } 9 | public void onSyncGetWalletNotFound() { 10 | throw new UnsupportedOperationException(); 11 | } 12 | public void onSyncGetError(Exception error) { 13 | throw new UnsupportedOperationException(); 14 | } 15 | public void onSyncSetSuccess(String hash) { 16 | throw new UnsupportedOperationException(); 17 | } 18 | public void onSyncSetError(Exception error) { 19 | throw new UnsupportedOperationException(); 20 | } 21 | public void onSyncApplySuccess(String hash, String data) { 22 | throw new UnsupportedOperationException(); 23 | } 24 | public void onSyncApplyError(Exception error) { 25 | throw new UnsupportedOperationException(); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/tasks/wallet/SyncTaskHandler.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.tasks.wallet; 2 | 3 | import io.lbry.browser.model.WalletSync; 4 | 5 | public interface SyncTaskHandler { 6 | void onSyncGetSuccess(WalletSync walletSync); 7 | void onSyncGetWalletNotFound(); 8 | void onSyncGetError(Exception error); 9 | void onSyncSetSuccess(String hash); 10 | void onSyncSetError(Exception error); 11 | void onSyncApplySuccess(String hash, String data); 12 | void onSyncApplyError(Exception error); 13 | } 14 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/tasks/wallet/UnlockTipsTask.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.tasks.wallet; 2 | 3 | import android.os.AsyncTask; 4 | 5 | import java.util.HashMap; 6 | import java.util.Map; 7 | 8 | import io.lbry.browser.exceptions.ApiCallException; 9 | import io.lbry.browser.tasks.GenericTaskHandler; 10 | import io.lbry.browser.utils.Lbry; 11 | 12 | public class UnlockTipsTask extends AsyncTask { 13 | 14 | private final GenericTaskHandler handler; 15 | private Exception error; 16 | 17 | public UnlockTipsTask(GenericTaskHandler handler) { 18 | this.handler = handler; 19 | } 20 | 21 | public Boolean doInBackground(Void... params) { 22 | try { 23 | Map options = new HashMap<>(); 24 | options.put("type", "support"); 25 | options.put("is_not_my_input", true); 26 | options.put("blocking", true); 27 | 28 | Lbry.genericApiCall(Lbry.METHOD_TXO_SPEND, options); 29 | 30 | return true; 31 | } catch (ApiCallException | ClassCastException ex) { 32 | error = ex; 33 | return false; 34 | } 35 | } 36 | 37 | protected void onPostExecute(Boolean result) { 38 | if (handler != null) { 39 | if (result) { 40 | handler.onSuccess(); 41 | } else { 42 | handler.onError(error); 43 | } 44 | } 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/tasks/wallet/WalletAddressUnusedTask.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.tasks.wallet; 2 | 3 | import android.os.AsyncTask; 4 | 5 | import io.lbry.browser.exceptions.ApiCallException; 6 | import io.lbry.browser.utils.Helper; 7 | import io.lbry.browser.utils.Lbry; 8 | 9 | public class WalletAddressUnusedTask extends AsyncTask { 10 | private final WalletAddressUnusedHandler handler; 11 | private Exception error; 12 | 13 | public WalletAddressUnusedTask(WalletAddressUnusedHandler handler) { 14 | this.handler = handler; 15 | } 16 | 17 | protected void onPreExecute() { 18 | if (handler != null) { 19 | handler.beforeStart(); 20 | } 21 | } 22 | 23 | protected String doInBackground(Void... params) { 24 | String address = null; 25 | try { 26 | address = (String) Lbry.genericApiCall(Lbry.METHOD_ADDRESS_UNUSED); 27 | } catch (ApiCallException | ClassCastException ex) { 28 | error = ex; 29 | } 30 | 31 | return address; 32 | } 33 | 34 | protected void onPostExecute(String unusedAddress) { 35 | if (handler != null) { 36 | if (!Helper.isNullOrEmpty(unusedAddress)) { 37 | handler.onSuccess(unusedAddress); 38 | } else { 39 | handler.onError(error); 40 | } 41 | } 42 | } 43 | 44 | public interface WalletAddressUnusedHandler { 45 | void beforeStart(); 46 | void onSuccess(String newAddress); 47 | void onError(Exception error); 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/tasks/wallet/WalletBalanceTask.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.tasks.wallet; 2 | 3 | import android.os.AsyncTask; 4 | 5 | import org.json.JSONObject; 6 | 7 | import io.lbry.browser.exceptions.ApiCallException; 8 | import io.lbry.browser.model.WalletBalance; 9 | import io.lbry.browser.utils.Lbry; 10 | 11 | public class WalletBalanceTask extends AsyncTask { 12 | private final WalletBalanceHandler handler; 13 | private Exception error; 14 | 15 | public WalletBalanceTask(WalletBalanceHandler handler) { 16 | this.handler = handler; 17 | } 18 | 19 | protected WalletBalance doInBackground(Void... params) { 20 | WalletBalance balance; 21 | try { 22 | JSONObject json = (JSONObject) Lbry.genericApiCall(Lbry.METHOD_WALLET_BALANCE); 23 | balance = WalletBalance.fromJSONObject(json); 24 | } catch (ApiCallException | ClassCastException ex) { 25 | error = ex; 26 | return null; 27 | } 28 | 29 | return balance; 30 | } 31 | 32 | protected void onPostExecute(WalletBalance walletBalance) { 33 | if (handler != null) { 34 | if (walletBalance != null) { 35 | handler.onSuccess(walletBalance); 36 | } else { 37 | handler.onError(error); 38 | } 39 | } 40 | } 41 | 42 | public interface WalletBalanceHandler { 43 | void onSuccess(WalletBalance walletBalance); 44 | void onError(Exception error); 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/ui/controls/OutlineIconView.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.ui.controls; 2 | 3 | import android.content.Context; 4 | import android.graphics.Typeface; 5 | import android.util.AttributeSet; 6 | import android.view.Gravity; 7 | 8 | import androidx.appcompat.widget.AppCompatTextView; 9 | 10 | public class OutlineIconView extends AppCompatTextView { 11 | private final Context context; 12 | 13 | public OutlineIconView(Context context) { 14 | super(context); 15 | this.context = context; 16 | init(); 17 | } 18 | 19 | public OutlineIconView(Context context, AttributeSet attrs) { 20 | super(context, attrs); 21 | this.context = context; 22 | init(); 23 | } 24 | 25 | private void init() { 26 | setGravity(Gravity.CENTER); 27 | setTypeface(Typeface.createFromAsset(context.getAssets(), "font_awesome_5_free_regular.otf")); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/ui/controls/SolidIconView.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.ui.controls; 2 | 3 | import android.content.Context; 4 | import android.graphics.Typeface; 5 | import android.util.AttributeSet; 6 | import android.view.Gravity; 7 | 8 | import androidx.appcompat.widget.AppCompatTextView; 9 | 10 | public class SolidIconView extends AppCompatTextView { 11 | private final Context context; 12 | 13 | public SolidIconView(Context context) { 14 | super(context); 15 | this.context = context; 16 | init(); 17 | } 18 | 19 | public SolidIconView(Context context, AttributeSet attrs) { 20 | super(context, attrs); 21 | this.context = context; 22 | init(); 23 | } 24 | 25 | private void init() { 26 | setGravity(Gravity.CENTER); 27 | setTypeface(Typeface.createFromAsset(context.getAssets(), "font_awesome_5_free_solid.otf")); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/utils/Events.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.utils; 2 | 3 | public class Events { 4 | public static final String FIRST_RUN_COMPLETED = "first_run_completed"; 5 | } 6 | -------------------------------------------------------------------------------- /app/src/main/java/io/lbry/browser/utils/ExoplayerAudioRenderer.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.utils; 2 | 3 | import android.content.Context; 4 | import android.os.Handler; 5 | 6 | import com.google.android.exoplayer2.DefaultRenderersFactory; 7 | import com.google.android.exoplayer2.Renderer; 8 | import com.google.android.exoplayer2.audio.AudioRendererEventListener; 9 | import com.google.android.exoplayer2.audio.AudioSink; 10 | import com.google.android.exoplayer2.audio.TeeAudioProcessor; 11 | import com.google.android.exoplayer2.mediacodec.MediaCodecSelector; 12 | 13 | import java.util.ArrayList; 14 | 15 | public class ExoplayerAudioRenderer extends DefaultRenderersFactory { 16 | 17 | private final TeeAudioProcessor.AudioBufferSink audioBufferSink; 18 | 19 | public ExoplayerAudioRenderer(Context context, TeeAudioProcessor.AudioBufferSink audioBufferSink) { 20 | super(context); 21 | this.audioBufferSink = audioBufferSink; 22 | } 23 | 24 | @Override 25 | protected void buildAudioRenderers( 26 | Context context, 27 | int extensionRendererMode, 28 | MediaCodecSelector mediaCodecSelector, 29 | boolean enableDecoderFallback, 30 | AudioSink audioSink, 31 | Handler eventHandler, 32 | AudioRendererEventListener eventListener, 33 | ArrayList out) { 34 | 35 | super.buildAudioRenderers( 36 | context, 37 | extensionRendererMode, 38 | mediaCodecSelector, 39 | enableDecoderFallback, 40 | audioSink, 41 | eventHandler, 42 | eventListener, 43 | out); 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-anydpi/ic_about.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-anydpi/ic_add.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-anydpi/ic_arrow_dropdown.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-anydpi/ic_arrow_dropup.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-anydpi/ic_arrow_left.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-anydpi/ic_arrow_right.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-anydpi/ic_cast.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-anydpi/ic_cast_connected.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-anydpi/ic_check.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-anydpi/ic_check_circle.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-anydpi/ic_close.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-anydpi/ic_copy.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-anydpi/ic_delete.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-anydpi/ic_download.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-anydpi/ic_edit.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-anydpi/ic_editors_choice.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-anydpi/ic_file.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-anydpi/ic_following.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-anydpi/ic_forward_10.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-anydpi/ic_fullscreen.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-anydpi/ic_fullscreen_exit.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-anydpi/ic_invites.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-anydpi/ic_library.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-anydpi/ic_lock.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-anydpi/ic_new.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-anydpi/ic_notifications.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-anydpi/ic_pause.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-anydpi/ic_photo.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 14 | 15 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-anydpi/ic_play.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-anydpi/ic_publish.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-anydpi/ic_publishes.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-anydpi/ic_qr_scanner.xml: -------------------------------------------------------------------------------- 1 | 7 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-anydpi/ic_record.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-anydpi/ic_replay_10.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-anydpi/ic_report.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-anydpi/ic_search.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-anydpi/ic_settings.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-anydpi/ic_share.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-anydpi/ic_stop.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-anydpi/ic_top.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-anydpi/ic_trending.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-anydpi/ic_unpublish.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-anydpi/ic_upload.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-anydpi/ic_wallet.xml: -------------------------------------------------------------------------------- 1 | 8 | 11 | 12 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/default_channel_cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-hdpi/default_channel_cover.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/gerbil_happy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-hdpi/gerbil_happy.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/gerbil_sad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-hdpi/gerbil_sad.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_about.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-hdpi/ic_about.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-hdpi/ic_add.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_arrow_dropdown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-hdpi/ic_arrow_dropdown.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_arrow_dropup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-hdpi/ic_arrow_dropup.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_arrow_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-hdpi/ic_arrow_left.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_arrow_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-hdpi/ic_arrow_right.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_cast.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-hdpi/ic_cast.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_cast_connected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-hdpi/ic_cast_connected.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-hdpi/ic_check.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_check_circle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-hdpi/ic_check_circle.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-hdpi/ic_close.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_copy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-hdpi/ic_copy.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_credits.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-hdpi/ic_credits.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-hdpi/ic_delete.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_download.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-hdpi/ic_download.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_edit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-hdpi/ic_edit.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_editors_choice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-hdpi/ic_editors_choice.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_file.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-hdpi/ic_file.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_following.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-hdpi/ic_following.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_forward_10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-hdpi/ic_forward_10.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_fullscreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-hdpi/ic_fullscreen.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_fullscreen_exit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-hdpi/ic_fullscreen_exit.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_invites.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-hdpi/ic_invites.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_library.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-hdpi/ic_library.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_lock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-hdpi/ic_lock.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_new.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-hdpi/ic_new.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_notifications.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-hdpi/ic_notifications.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_pause.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-hdpi/ic_pause.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_photo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-hdpi/ic_photo.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-hdpi/ic_play.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_publish.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-hdpi/ic_publish.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_publishes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-hdpi/ic_publishes.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_qr_scanner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-hdpi/ic_qr_scanner.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_record.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-hdpi/ic_record.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_replay_10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-hdpi/ic_replay_10.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_report.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-hdpi/ic_report.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-hdpi/ic_search.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-hdpi/ic_settings.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_share.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-hdpi/ic_share.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_stop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-hdpi/ic_stop.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-hdpi/ic_top.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_trending.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-hdpi/ic_trending.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_unpublish.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-hdpi/ic_unpublish.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_upload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-hdpi/ic_upload.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/ic_wallet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-hdpi/ic_wallet.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-hdpi/stripe_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-hdpi/stripe_2x.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/default_channel_cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-mdpi/default_channel_cover.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/gerbil_happy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-mdpi/gerbil_happy.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/gerbil_sad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-mdpi/gerbil_sad.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_about.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-mdpi/ic_about.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-mdpi/ic_add.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_arrow_dropdown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-mdpi/ic_arrow_dropdown.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_arrow_dropup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-mdpi/ic_arrow_dropup.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_arrow_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-mdpi/ic_arrow_left.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_arrow_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-mdpi/ic_arrow_right.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_cast.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-mdpi/ic_cast.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_cast_connected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-mdpi/ic_cast_connected.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-mdpi/ic_check.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_check_circle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-mdpi/ic_check_circle.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-mdpi/ic_close.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_copy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-mdpi/ic_copy.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_credits.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-mdpi/ic_credits.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-mdpi/ic_delete.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_download.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-mdpi/ic_download.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_edit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-mdpi/ic_edit.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_editors_choice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-mdpi/ic_editors_choice.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_file.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-mdpi/ic_file.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_following.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-mdpi/ic_following.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_forward_10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-mdpi/ic_forward_10.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_fullscreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-mdpi/ic_fullscreen.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_fullscreen_exit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-mdpi/ic_fullscreen_exit.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_invites.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-mdpi/ic_invites.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_library.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-mdpi/ic_library.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_lock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-mdpi/ic_lock.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_new.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-mdpi/ic_new.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_notifications.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-mdpi/ic_notifications.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_pause.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-mdpi/ic_pause.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_photo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-mdpi/ic_photo.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-mdpi/ic_play.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_publish.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-mdpi/ic_publish.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_publishes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-mdpi/ic_publishes.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_qr_scanner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-mdpi/ic_qr_scanner.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_record.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-mdpi/ic_record.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_replay_10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-mdpi/ic_replay_10.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_report.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-mdpi/ic_report.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-mdpi/ic_search.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-mdpi/ic_settings.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_share.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-mdpi/ic_share.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_stop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-mdpi/ic_stop.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-mdpi/ic_top.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_trending.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-mdpi/ic_trending.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_unpublish.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-mdpi/ic_unpublish.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_upload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-mdpi/ic_upload.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/ic_wallet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-mdpi/ic_wallet.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-mdpi/stripe_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-mdpi/stripe_2x.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-v24/ic_launcher_foreground.xml: -------------------------------------------------------------------------------- 1 | 7 | 8 | 9 | 15 | 18 | 21 | 22 | 23 | 24 | 30 | -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/default_channel_cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xhdpi/default_channel_cover.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/gerbil_happy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xhdpi/gerbil_happy.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/gerbil_sad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xhdpi/gerbil_sad.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_about.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xhdpi/ic_about.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xhdpi/ic_add.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_arrow_dropdown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xhdpi/ic_arrow_dropdown.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_arrow_dropup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xhdpi/ic_arrow_dropup.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_arrow_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xhdpi/ic_arrow_left.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_arrow_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xhdpi/ic_arrow_right.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_cast.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xhdpi/ic_cast.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_cast_connected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xhdpi/ic_cast_connected.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xhdpi/ic_check.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_check_circle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xhdpi/ic_check_circle.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xhdpi/ic_close.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_copy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xhdpi/ic_copy.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_credits.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xhdpi/ic_credits.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xhdpi/ic_delete.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_download.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xhdpi/ic_download.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_edit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xhdpi/ic_edit.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_editors_choice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xhdpi/ic_editors_choice.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_file.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xhdpi/ic_file.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_following.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xhdpi/ic_following.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_forward_10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xhdpi/ic_forward_10.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_fullscreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xhdpi/ic_fullscreen.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_fullscreen_exit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xhdpi/ic_fullscreen_exit.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_invites.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xhdpi/ic_invites.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_library.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xhdpi/ic_library.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_lock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xhdpi/ic_lock.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_new.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xhdpi/ic_new.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_notifications.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xhdpi/ic_notifications.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_pause.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xhdpi/ic_pause.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_photo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xhdpi/ic_photo.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xhdpi/ic_play.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_publish.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xhdpi/ic_publish.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_publishes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xhdpi/ic_publishes.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_qr_scanner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xhdpi/ic_qr_scanner.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_record.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xhdpi/ic_record.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_replay_10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xhdpi/ic_replay_10.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_report.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xhdpi/ic_report.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xhdpi/ic_search.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xhdpi/ic_settings.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_share.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xhdpi/ic_share.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_stop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xhdpi/ic_stop.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xhdpi/ic_top.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_trending.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xhdpi/ic_trending.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_unpublish.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xhdpi/ic_unpublish.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_upload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xhdpi/ic_upload.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/ic_wallet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xhdpi/ic_wallet.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xhdpi/stripe_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xhdpi/stripe_2x.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/default_channel_cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xxhdpi/default_channel_cover.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/gerbil_happy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xxhdpi/gerbil_happy.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/gerbil_sad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xxhdpi/gerbil_sad.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_about.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xxhdpi/ic_about.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xxhdpi/ic_add.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_arrow_dropdown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xxhdpi/ic_arrow_dropdown.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_arrow_dropup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xxhdpi/ic_arrow_dropup.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_arrow_left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xxhdpi/ic_arrow_left.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_arrow_right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xxhdpi/ic_arrow_right.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_cast.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xxhdpi/ic_cast.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_cast_connected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xxhdpi/ic_cast_connected.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xxhdpi/ic_check.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_check_circle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xxhdpi/ic_check_circle.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xxhdpi/ic_close.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_copy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xxhdpi/ic_copy.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_credits.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xxhdpi/ic_credits.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xxhdpi/ic_delete.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_download.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xxhdpi/ic_download.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_edit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xxhdpi/ic_edit.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_editors_choice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xxhdpi/ic_editors_choice.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_file.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xxhdpi/ic_file.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_following.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xxhdpi/ic_following.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_forward_10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xxhdpi/ic_forward_10.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_fullscreen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xxhdpi/ic_fullscreen.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_fullscreen_exit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xxhdpi/ic_fullscreen_exit.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_invites.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xxhdpi/ic_invites.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_library.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xxhdpi/ic_library.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_lock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xxhdpi/ic_lock.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_new.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xxhdpi/ic_new.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_notifications.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xxhdpi/ic_notifications.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_pause.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xxhdpi/ic_pause.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_photo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xxhdpi/ic_photo.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xxhdpi/ic_play.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_publish.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xxhdpi/ic_publish.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_publishes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xxhdpi/ic_publishes.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_qr_scanner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xxhdpi/ic_qr_scanner.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_record.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xxhdpi/ic_record.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_replay_10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xxhdpi/ic_replay_10.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_report.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xxhdpi/ic_report.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xxhdpi/ic_search.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xxhdpi/ic_settings.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_share.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xxhdpi/ic_share.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_stop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xxhdpi/ic_stop.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_top.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xxhdpi/ic_top.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_trending.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xxhdpi/ic_trending.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_unpublish.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xxhdpi/ic_unpublish.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_upload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xxhdpi/ic_upload.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/ic_wallet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xxhdpi/ic_wallet.png -------------------------------------------------------------------------------- /app/src/main/res/drawable-xxhdpi/stripe_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/drawable-xxhdpi/stripe_2x.png -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_all_icon.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_channel_icon.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_channel_overlay_icon.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_copyable_text.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | 8 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_floating_balance.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_floating_reward.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_notification_badge.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_selected_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_selected_list_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_selected_nav_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_small_icon.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_stream_cost.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_stream_overlay_icon.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_tag.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_tag_mature.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_thumbnail_icon.xml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/bg_thumbnail_placeholder.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/determinate_progress_circle.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 10 | 11 | 12 | 13 | 18 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/fg_nav_menu_item.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_menu_camera.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 12 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_menu_gallery.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/ic_menu_slideshow.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/side_nav_bar.xml: -------------------------------------------------------------------------------- 1 | 3 | 9 | -------------------------------------------------------------------------------- /app/src/main/res/drawable/thin_divider.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/font/inter_bold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/font/inter_bold.otf -------------------------------------------------------------------------------- /app/src/main/res/font/inter_bolditalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/font/inter_bolditalic.otf -------------------------------------------------------------------------------- /app/src/main/res/font/inter_italic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/font/inter_italic.otf -------------------------------------------------------------------------------- /app/src/main/res/font/inter_light.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/font/inter_light.otf -------------------------------------------------------------------------------- /app/src/main/res/font/inter_lightitalic.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/font/inter_lightitalic.otf -------------------------------------------------------------------------------- /app/src/main/res/font/inter_regular.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/font/inter_regular.otf -------------------------------------------------------------------------------- /app/src/main/res/font/inter_semibold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/font/inter_semibold.otf -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 10 | 14 | 15 | 21 | 25 | 26 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /app/src/main/res/layout/activity_video.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 13 | -------------------------------------------------------------------------------- /app/src/main/res/layout/card_reward_driver.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 17 | 25 | 37 | 38 | -------------------------------------------------------------------------------- /app/src/main/res/layout/container_sdk_initializing.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 15 | 21 | 30 | 31 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_editors_choice.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 13 | 20 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_gallery.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 21 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_home.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 21 | -------------------------------------------------------------------------------- /app/src/main/res/layout/fragment_transaction_history.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 18 | 19 | 23 | 24 | 30 | 31 | -------------------------------------------------------------------------------- /app/src/main/res/layout/list_item_gallery.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 13 | 28 | -------------------------------------------------------------------------------- /app/src/main/res/layout/list_item_invitee.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 14 | 23 | 24 | 29 | 36 | 37 | -------------------------------------------------------------------------------- /app/src/main/res/layout/list_item_nav_menu_group.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 18 | -------------------------------------------------------------------------------- /app/src/main/res/layout/list_item_nav_menu_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 14 | 21 | 22 | 31 | -------------------------------------------------------------------------------- /app/src/main/res/layout/list_item_startupstage.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 14 | 25 | 26 | -------------------------------------------------------------------------------- /app/src/main/res/layout/list_item_tag.xml: -------------------------------------------------------------------------------- 1 | 2 | 16 | 23 | 32 | -------------------------------------------------------------------------------- /app/src/main/res/layout/popup_webview.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 11 | 12 | 20 | -------------------------------------------------------------------------------- /app/src/main/res/layout/spinner_item_channel.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 14 | -------------------------------------------------------------------------------- /app/src/main/res/layout/spinner_item_generic.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 16 | -------------------------------------------------------------------------------- /app/src/main/res/menu/menu_claim_list.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 10 | 16 | 17 | -------------------------------------------------------------------------------- /app/src/main/res/menu/menu_notification.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 10 | 11 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-hdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/mipmap-hdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-mdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/mipmap-mdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png -------------------------------------------------------------------------------- /app/src/main/res/values-v21/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 14 | 15 | 20 | 21 | -------------------------------------------------------------------------------- /app/src/main/res/values/attrs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 16dp 5 | 8dp 6 | 176dp 7 | 16dp 8 | 14sp 9 | 12sp 10 | 12sp 11 | -------------------------------------------------------------------------------- /app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 14 | 15 | 19 | 20 | 30 | 31 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /app/src/main/res/xml/filepaths.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/test/java/io/lbry/browser/utils/HelperTest.java: -------------------------------------------------------------------------------- 1 | package io.lbry.browser.utils; 2 | 3 | public class HelperTest { 4 | 5 | } -------------------------------------------------------------------------------- /app/twitter.properties.secret: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/app/twitter.properties.secret -------------------------------------------------------------------------------- /build.gradle: -------------------------------------------------------------------------------- 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 | 3 | buildscript { 4 | 5 | repositories { 6 | google() 7 | jcenter() 8 | mavenCentral() 9 | } 10 | dependencies { 11 | classpath 'com.android.tools.build:gradle:3.6.4' 12 | classpath 'com.google.gms:google-services:4.2.0' 13 | 14 | // NOTE: Do not place your application dependencies here; they belong 15 | // in the individual module build.gradle files 16 | } 17 | } 18 | 19 | allprojects { 20 | repositories { 21 | google() 22 | jcenter() 23 | mavenCentral() 24 | maven { url "https://jitpack.io" } 25 | /*flatDir { 26 | dirs 'debuglib' 27 | }*/ 28 | } 29 | } 30 | 31 | task clean(type: Delete) { 32 | delete rootProject.buildDir 33 | } 34 | -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | # IDE (e.g. Android Studio) users: 3 | # Gradle settings configured through the IDE *will override* 4 | # any settings specified in this file. 5 | # For more details on how to configure your build environment visit 6 | # http://www.gradle.org/docs/current/userguide/build_environment.html 7 | # Specifies the JVM arguments used for the daemon process. 8 | # The setting is particularly useful for tweaking memory settings. 9 | org.gradle.jvmargs=-Xmx1536m 10 | # When configured, Gradle will run in incubating parallel mode. 11 | # This option should only be used with decoupled projects. More details, visit 12 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 13 | # org.gradle.parallel=true 14 | # AndroidX package structure to make it clearer which packages are bundled with the 15 | # Android operating system, and which are packaged with your app's APK 16 | # https://developer.android.com/topic/libraries/support-library/androidx-rn 17 | android.useAndroidX=true 18 | # Automatically convert third-party libraries to use AndroidX 19 | android.enableJetifier=true 20 | 21 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Tue Jan 12 20:03:24 CET 2021 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip 7 | -------------------------------------------------------------------------------- /lbry-android.keystore.secret: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lbryio/lbry-android/fdd759b2416630738427e1b889b12ae37e037e54/lbry-android.keystore.secret -------------------------------------------------------------------------------- /release.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | ./gradlew assembleRelease --console=plain 3 | version=$(./gradlew -q printVersionName --console=plain | tail -1) 4 | mkdir -p bin/ 5 | rm -f bin/* 6 | cp app/build/outputs/apk/__32bit/release/app-__32bit-release-unsigned.apk bin/browser-$version-release-unsigned__arm.apk 7 | cp app/build/outputs/apk/__64bit/release/app-__64bit-release-unsigned.apk bin/browser-$version-release-unsigned__arm64.apk 8 | 9 | # sign 32-bit 10 | echo "Signing 32-bit APK..." 11 | jarsigner -verbose -sigalg SHA1withRSA \ 12 | -digestalg SHA1 \ 13 | -keystore lbry-android.keystore \ 14 | -storepass $KEYSTORE_PASSWORD \ 15 | bin/browser-$version-release-unsigned__arm.apk lbry-android > /dev/null \ 16 | && mv bin/browser-$version-release-unsigned__arm.apk bin/browser-$version-release-signed__arm.apk 17 | zipalign -v 4 \ 18 | bin/browser-$version-release-signed__arm.apk bin/browser-$version-release__arm.apk > /dev/null \ 19 | && rm bin/browser-$version-release-signed__arm.apk 20 | echo "32-bit APK successfully built." 21 | 22 | # sign 64-bit 23 | echo "Signing 64-bit APK..." 24 | jarsigner -verbose -sigalg SHA1withRSA \ 25 | -digestalg SHA1 \ 26 | -keystore lbry-android.keystore \ 27 | -storepass $KEYSTORE_PASSWORD \ 28 | bin/browser-$version-release-unsigned__arm64.apk lbry-android > /dev/null \ 29 | && mv bin/browser-$version-release-unsigned__arm64.apk bin/browser-$version-release-signed__arm64.apk 30 | zipalign -v 4 \ 31 | bin/browser-$version-release-signed__arm64.apk bin/browser-$version-release__arm64.apk > /dev/null \ 32 | && rm bin/browser-$version-release-signed__arm64.apk 33 | echo "64-bit APK successfully built." 34 | -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name='LBRY' 2 | include ':app' 3 | --------------------------------------------------------------------------------