2019-05-03 08:17:27 +10:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2014-01-09 14:08:42 +11:00
|
|
|
module MobileDetection
|
|
|
|
def self.mobile_device?(user_agent)
|
2016-03-26 02:02:23 -07:00
|
|
|
user_agent =~ /Mobile/ && !(user_agent =~ /iPad/)
|
2014-01-09 14:08:42 +11:00
|
|
|
end
|
|
|
|
|
|
|
|
# we need this as a reusable chunk that is called from the cache
|
|
|
|
def self.resolve_mobile_view!(user_agent, params, session)
|
|
|
|
return false unless SiteSetting.enable_mobile_theme
|
|
|
|
|
2014-01-17 13:07:17 +11:00
|
|
|
session[:mobile_view] = params[:mobile_view] if params && params.has_key?(:mobile_view)
|
2019-02-22 10:43:40 -08:00
|
|
|
session[:mobile_view] = nil if params && params.has_key?(:mobile_view) && params[:mobile_view] == 'auto'
|
2014-01-09 14:08:42 +11:00
|
|
|
|
2014-01-16 20:04:38 -08:00
|
|
|
if session && session[:mobile_view]
|
2014-01-09 14:08:42 +11:00
|
|
|
session[:mobile_view] == '1'
|
|
|
|
else
|
|
|
|
mobile_device?(user_agent)
|
|
|
|
end
|
|
|
|
end
|
2019-05-07 10:44:43 -04:00
|
|
|
|
|
|
|
def self.ios_device?(user_agent)
|
|
|
|
user_agent =~ /iPad|iPhone|iPod/
|
|
|
|
end
|
|
|
|
|
2014-01-09 14:08:42 +11:00
|
|
|
end
|