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..96394be 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,39 @@ 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.includes(channelName)) {
+          uris.forEach(uri => {
+            Lbry.resolve({ urls: uri }).then(result => {
+              const sub = result[uri];
+
+              if (sub && sub.value) {
+                const { source, title, thumbnail } = sub.value;
+                const isPlayable =
+                  source && source.media_type && ['audio', 'video'].includes(source.media_type.substring(0, 5));
+                if (title) {
+                  utility.showNotificationForContent(
+                    uri,
+                    title,
+                    channelName,
+                    thumbnail ? thumbnail.url : null,
+                    isPlayable
+                  );
                 }
-              });
+              }
             });
-          }
-        });
-      }
+          });
+        }
+      });
     }
   }
 
diff --git a/src/page/publish/view.js b/src/page/publish/view.js
index 1ff1ded..fcb6404 100644
--- a/src/page/publish/view.js
+++ b/src/page/publish/view.js
@@ -870,7 +870,6 @@ class PublishPage extends React.PureComponent {
     const {
       allThumbnailsChecked,
       canUseCamera,
-      showCameraOverlay,
       currentPhase,
       checkedThumbnails,
       loadingVideos,
@@ -883,9 +882,7 @@ class PublishPage extends React.PureComponent {
       content = (
         <View style={publishStyle.gallerySelector}>
           <View style={publishStyle.actionsView}>
-            {canUseCamera && !showCameraOverlay && (
-              <RNCamera captureAudio={false} style={publishStyle.cameraPreview} type={RNCamera.Constants.Type.back} />
-            )}
+            {canUseCamera && <RNCamera style={publishStyle.cameraPreview} type={RNCamera.Constants.Type.back} />}
             <View style={publishStyle.actionsSubView}>
               <TouchableOpacity
                 style={[
@@ -1239,36 +1236,34 @@ class PublishPage extends React.PureComponent {
         {false && Constants.PHASE_SELECTOR !== this.state.currentPhase && (
           <FloatingWalletBalance navigation={navigation} />
         )}
-        {this.state.showCameraOverlay && (
+        {this.state.canUseCamera && this.state.showCameraOverlay && (
           <View style={publishStyle.cameraOverlay}>
-            {this.state.canUseCamera && (
-              <RNCamera
-                captureAudio={this.state.videoRecordingMode}
-                style={publishStyle.fullCamera}
-                ref={ref => {
-                  this.camera = ref;
-                }}
-                type={this.state.cameraType}
-                flashMode={RNCamera.Constants.FlashMode.off}
-                androidCameraPermissionOptions={{
-                  title: __('Camera'),
-                  message: __('Please grant access to make use of your camera'),
-                  buttonPositive: __('OK'),
-                  buttonNegative: __('Cancel'),
-                }}
-                androidRecordAudioPermissionOptions={{
-                  title: __('Audio'),
-                  message: __('Please grant access to record audio'),
-                  buttonPositive: __('OK'),
-                  buttonNegative: __('Cancel'),
-                }}
-                notAuthorizedView={
-                  <View style={publishStyle.fullCentered}>
-                    <Text style={publishStyle.cameraInfo}>Camera not authorized</Text>
-                  </View>
-                }
-              />
-            )}
+            <RNCamera
+              captureAudio={this.state.videoRecordingMode}
+              style={publishStyle.fullCamera}
+              ref={ref => {
+                this.camera = ref;
+              }}
+              type={this.state.cameraType}
+              flashMode={RNCamera.Constants.FlashMode.off}
+              androidCameraPermissionOptions={{
+                title: 'Camera',
+                message: 'Please grant access to make use of your camera',
+                buttonPositive: 'OK',
+                buttonNegative: 'Cancel',
+              }}
+              androidRecordAudioPermissionOptions={{
+                title: 'Audio',
+                message: 'Please grant access to record audio',
+                buttonPositive: 'OK',
+                buttonNegative: 'Cancel',
+              }}
+              notAuthorizedView={
+                <View style={publishStyle.fullCentered}>
+                  <Text style={publishStyle.cameraInfo}>Camera not authorized</Text>
+                </View>
+              }
+            />
             <View
               style={[
                 publishStyle.cameraControls,