diff --git a/app/controllers/metadata_controller.rb b/app/controllers/metadata_controller.rb
index c508df57146..e7d16a58af9 100644
--- a/app/controllers/metadata_controller.rb
+++ b/app/controllers/metadata_controller.rb
@@ -51,13 +51,13 @@ class MetadataController < ApplicationController
manifest[:short_name] = SiteSetting.short_title if SiteSetting.short_title.present?
- if SiteSetting.native_app_install_banner
+ if current_user && current_user.trust_level >= 1 && SiteSetting.native_app_install_banner_android
manifest = manifest.merge(
prefer_related_applications: true,
related_applications: [
{
platform: "play",
- id: "com.discourse"
+ id: SiteSetting.android_app_id
}
]
)
diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb
index 69d1979c0d3..a5410864aba 100644
--- a/app/helpers/application_helper.rb
+++ b/app/helpers/application_helper.rb
@@ -325,6 +325,10 @@ module ApplicationHelper
request.env[ApplicationController::NO_CUSTOM]
end
+ def include_ios_native_app_banner?
+ current_user && current_user.trust_level >= 1 && SiteSetting.native_app_install_banner_ios
+ end
+
def allow_plugins?
!request.env[ApplicationController::NO_PLUGINS]
end
diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb
index e12c4931e6e..092d29116b2 100644
--- a/app/views/layouts/application.html.erb
+++ b/app/views/layouts/application.html.erb
@@ -46,8 +46,8 @@
<%= render_google_universal_analytics_code %>
- <%- if SiteSetting.native_app_install_banner? %>
-
+ <%- if include_ios_native_app_banner? %>
+
<%- end %>
<%= render partial: "common/discourse_stylesheet" %>
diff --git a/config/locales/server.en.yml b/config/locales/server.en.yml
index bf274cca176..24e0147cee5 100644
--- a/config/locales/server.en.yml
+++ b/config/locales/server.en.yml
@@ -1892,7 +1892,9 @@ en:
topic_page_title_includes_category: "Topic page title includes the category name."
- native_app_install_banner: "Asks recurring visitors to install Discourse native app."
+ native_app_install_banner_ios: "Displays DiscourseHub app banner on iOS devices to regular users (trust level 1 and up)."
+
+ native_app_install_banner_android: "Displays DiscourseHub app banner on Android devices to regular users (trust level 1 and up)."
share_anonymized_statistics: "Share anonymized usage statistics."
diff --git a/config/site_settings.yml b/config/site_settings.yml
index 3c45ced5c78..86ae8b3c31d 100644
--- a/config/site_settings.yml
+++ b/config/site_settings.yml
@@ -1826,7 +1826,17 @@ uncategorized:
default: true
client: true
- native_app_install_banner: false
+ native_app_install_banner_ios: false
+
+ native_app_install_banner_android: false
+
+ ios_app_id:
+ default: "1173672076"
+ hidden: true
+
+ android_app_id:
+ default: "com.discourse"
+ hidden: true
pwa_display_browser_regex:
default: "iPad|iPhone"
@@ -1913,7 +1923,7 @@ user_preferences:
- normal
- larger
- largest
-
+
default_title_count_mode:
type: enum
default: notifications
diff --git a/db/migrate/20190417135049_migrate_native_app_banner_site_setting.rb b/db/migrate/20190417135049_migrate_native_app_banner_site_setting.rb
new file mode 100644
index 00000000000..57423a7be97
--- /dev/null
+++ b/db/migrate/20190417135049_migrate_native_app_banner_site_setting.rb
@@ -0,0 +1,20 @@
+class MigrateNativeAppBannerSiteSetting < ActiveRecord::Migration[5.2]
+ def up
+ execute "INSERT INTO site_settings(name, data_type, value, created_at, updated_at)
+ SELECT 'native_app_install_banner_android', 5, value, now(), now()
+ FROM site_settings
+ WHERE name = 'native_app_install_banner'"
+
+ execute "UPDATE site_settings
+ SET name = 'native_app_install_banner_ios'
+ WHERE name = 'native_app_install_banner'"
+ end
+
+ def down
+ execute "UPDATE site_settings
+ SET name = 'native_app_install_banner'
+ WHERE name = 'native_app_install_banner_ios'"
+
+ execute "DELETE FROM site_settings WHERE name = 'native_app_install_banner_android'"
+ end
+end