From 015889e0359980725eda170cd0ced2a6f79c23c5 Mon Sep 17 00:00:00 2001 From: Akinwale Ariwodola Date: Mon, 30 Sep 2019 17:36:55 +0100 Subject: [PATCH] fix subscription notifications --- package-lock.json | 4 +-- package.json | 2 +- src/index.js | 2 +- src/page/discover/view.js | 74 +++++++++++++++++++-------------------- 4 files changed, 40 insertions(+), 42 deletions(-) diff --git a/package-lock.json b/package-lock.json index 57c6435..0b63958 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5649,8 +5649,8 @@ } }, "lbryinc": { - "version": "github:lbryio/lbryinc#67bb3e215be3f13605c5e3f9f2b0e2fb880724cf", - "from": "github:lbryio/lbryinc#67bb3e215be3f13605c5e3f9f2b0e2fb880724cf", + "version": "github:lbryio/lbryinc#c55a2c98ab92c72149c824ee5906aed4404fd89b", + "from": "github:lbryio/lbryinc#c55a2c98ab92c72149c824ee5906aed4404fd89b", "requires": { "reselect": "^3.0.0" } diff --git a/package.json b/package.json index 40155f1..4e3f28b 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "@expo/vector-icons": "^8.1.0", "gfycat-style-urls": "^1.0.3", "lbry-redux": "lbryio/lbry-redux#7ec72a737bcd336f000c5f5085891643110298c3", - "lbryinc": "lbryio/lbryinc#67bb3e215be3f13605c5e3f9f2b0e2fb880724cf", + "lbryinc": "lbryio/lbryinc#c55a2c98ab92c72149c824ee5906aed4404fd89b", "lodash": ">=4.17.11", "merge": ">=1.2.1", "moment": "^2.22.1", diff --git a/src/index.js b/src/index.js index 4013fe2..4b470b0 100644 --- a/src/index.js +++ b/src/index.js @@ -83,7 +83,7 @@ const compressor = createCompressor(); const authFilter = createFilter('auth', ['authToken']); const contentFilter = createFilter('content', ['positions']); const saveClaimsFilter = createFilter('claims', ['claimsByUri']); -const subscriptionsFilter = createFilter('subscriptions', ['enabledChannelNotifications', 'subscriptions']); +const subscriptionsFilter = createFilter('subscriptions', ['enabledChannelNotifications', 'subscriptions', 'latest']); const settingsFilter = createFilter('settings', ['clientSettings']); const tagsFilter = createFilter('tags', ['followedTags']); const walletFilter = createFilter('wallet', ['receiveAddress']); diff --git a/src/page/discover/view.js b/src/page/discover/view.js index efcd203..34794e7 100644 --- a/src/page/discover/view.js +++ b/src/page/discover/view.js @@ -61,11 +61,10 @@ class DiscoverPage extends React.PureComponent { } }); - const { sortByItem, fetchRewardedContent, fetchSubscriptions, fileList, followedTags } = this.props; + const { sortByItem, fetchRewardedContent, fileList, followedTags } = this.props; this.buildTagCollection(followedTags); fetchRewardedContent(); - fetchSubscriptions(); fileList(); this.handleSortByItemSelected(sortByItem); @@ -88,9 +87,11 @@ class DiscoverPage extends React.PureComponent { } onComponentFocused = () => { - const { pushDrawerStack } = this.props; + const { fetchSubscriptions, pushDrawerStack } = this.props; // pushDrawerStack(); - NativeModules.Firebase.setCurrentScreen('Your tags'); + NativeModules.Firebase.setCurrentScreen('Your tags').then(result => { + fetchSubscriptions(); + }); }; handleSortByItemSelected = item => { @@ -127,44 +128,41 @@ class DiscoverPage extends React.PureComponent { const { unreadSubscriptions, enabledChannelNotifications } = this.props; const utility = NativeModules.UtilityModule; - if (utility) { - const hasUnread = - prevProps.unreadSubscriptions && - prevProps.unreadSubscriptions.length !== unreadSubscriptions.length && - unreadSubscriptions.length > 0; + const hasUnread = + prevProps.unreadSubscriptions && + prevProps.unreadSubscriptions.length !== unreadSubscriptions.length && + unreadSubscriptions.length > 0; - if (hasUnread) { - unreadSubscriptions.map(({ channel, uris }) => { - const { claimName: channelName } = parseURI(channel); + if (hasUnread) { + unreadSubscriptions.map(({ channel, uris }) => { + const { claimName: channelName } = parseURI(channel); - // check if notifications are enabled for the channel - if (enabledChannelNotifications.indexOf(channelName) > -1) { - uris.forEach(uri => { - Lbry.resolve({ urls: uri }).then(result => { - const sub = result[uri].claim; - if (sub && sub.value && sub.value.stream) { - let isPlayable = false; - const source = sub.value.stream.source; - const metadata = sub.value.stream.metadata; - if (source) { - isPlayable = - source.contentType && ['audio', 'video'].indexOf(source.contentType.substring(0, 5)) > -1; - } - if (metadata) { - utility.showNotificationForContent( - uri, - metadata.title, - channelName, - metadata.thumbnail, - isPlayable - ); - } + // check if notifications are enabled for the channel + if (enabledChannelNotifications.indexOf(channelName) > -1) { + uris.forEach(uri => { + Lbry.resolve({ urls: uri }).then(result => { + const sub = result[uri]; + + if (sub && sub.value) { + let isPlayable = false; + const { source, title, thumbnail } = sub.value; + if (source) { + isPlayable = source.media_type && ['audio', 'video'].indexOf(source.media_type.substring(0, 5)) > -1; } - }); + if (title) { + utility.showNotificationForContent( + uri, + title, + channelName, + thumbnail ? thumbnail.url : null, + isPlayable + ); + } + } }); - } - }); - } + }); + } + }); } }