mobileesp_converted 0.2.2 → 0.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/java_source/UAgentInfo.java +364 -241
- data/lib/mobileesp_converted/user_agent_info.rb +456 -300
- data/lib/mobileesp_converted/version.rb +1 -1
- data/spec/mobileesp_converted/user_agent_info_spec.rb +26 -0
- data/spec/spec_helper.rb +1 -1
- metadata +19 -5
- checksums.yaml +0 -7
@@ -1,40 +1,30 @@
|
|
1
1
|
# This file has been automatically converted to Ruby from Java source code.
|
2
|
-
|
3
|
-
|
4
|
-
#
|
2
|
+
|
3
|
+
|
5
4
|
=begin
|
6
|
-
|
7
|
-
# Copyright 2010-
|
8
|
-
#
|
9
|
-
# File version date: April 23, 2012
|
10
|
-
# Update:
|
11
|
-
# - Updated DetectAmazonSilk(): Fixed an issue in the detection logic.
|
12
|
-
#
|
13
|
-
# File version date: April 22, 2012 - Second update
|
14
|
-
# Update: To address additional Kindle issues...
|
15
|
-
# - Updated DetectRichCSS(): Excluded e-Ink Kindle devices.
|
16
|
-
# - Created DetectAmazonSilk(): Created to detect Kindle Fire devices in Silk mode.
|
17
|
-
# - Updated DetectMobileQuick(): Updated to include e-Ink Kindle devices and the Kindle Fire in Silk mode.
|
18
|
-
#
|
19
|
-
# File version date: April 11, 2012
|
20
|
-
# Update:
|
21
|
-
# - Added a new variable for the new BlackBerry Curve Touch (9380): deviceBBCurveTouch.
|
22
|
-
# - Updated DetectBlackBerryTouch() to support the new BlackBerry Curve Touch (9380).
|
5
|
+
*******************************************
|
6
|
+
# Copyright 2010-2013, Anthony Hand
|
23
7
|
#
|
24
|
-
# File version
|
25
|
-
#
|
26
|
-
#
|
27
|
-
# - Added a new variable for 2 versions of the new BlackBerry Bold Touch (9900 and 9930): deviceBBBoldTouch.
|
28
|
-
# - Updated DetectBlackBerryTouch() to support the 2 versions of the new BlackBerry Bold Touch (9900 and 9930).
|
29
|
-
# - Updated DetectKindle() to focus on eInk devices only. The Kindle Fire should be detected as a regular Android device.
|
8
|
+
# File version 2013.08.01 (August 1, 2013)
|
9
|
+
# Updates:
|
10
|
+
# - Updated DetectMobileQuick(). Moved the 'Exclude Tablets' logic to the top of the method to fix a logic bug.
|
30
11
|
#
|
31
|
-
# File version
|
32
|
-
#
|
33
|
-
#
|
12
|
+
# File version 2013.07.13 (July 13, 2013)
|
13
|
+
# Updates:
|
14
|
+
# - Added support for Tizen: variable and DetectTizen().
|
15
|
+
# - Added support for Meego: variable and DetectMeego().
|
16
|
+
# - Added support for Windows Phone 8: variable and DetectWindowsPhone8().
|
17
|
+
# - Added a generic Windows Phone method: DetectWindowsPhone().
|
18
|
+
# - Added support for BlackBerry 10 OS: variable and DetectBlackBerry10Phone().
|
19
|
+
# - Added support for PlayStation Vita handheld: variable and DetectGamingHandheld().
|
20
|
+
# - Updated DetectTierIphone(). Added Tizen; updated the Windows Phone, BB10, and PS Vita support.
|
21
|
+
# - Updated DetectWindowsMobile(). Uses generic DetectWindowsPhone() method rather than WP7.
|
22
|
+
# - Updated DetectSmartphone(). Uses the detect_tier_iphone() method.
|
23
|
+
# - Updated DetectSonyMylo() with more efficient code.
|
24
|
+
# - Removed DetectGarminNuvifone() from DetectTierIphone(). How many are left in market in 2013? It is detected as a RichCSS Tier device.
|
25
|
+
# - Removed the deviceXoom variable. It was unused.
|
26
|
+
# - Added detection support for the Obigo mobile browser to DetectMobileQuick().
|
34
27
|
#
|
35
|
-
# File version date: August 16, 2011
|
36
|
-
# Update:
|
37
|
-
# - Updated DetectAndroidTablet() to exclude Opera Mini, which was falsely reporting as running on a tablet device when on a phone.
|
38
28
|
#
|
39
29
|
#
|
40
30
|
# LICENSE INFORMATION
|
@@ -65,14 +55,14 @@
|
|
65
55
|
|
66
56
|
=begin
|
67
57
|
*
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
58
|
+
* The DetectSmartPhone class encapsulates information about
|
59
|
+
* a browser's connection to your web site.
|
60
|
+
* You can use it to find out whether the browser asking for
|
61
|
+
* your site's content is probably running on a mobile device.
|
62
|
+
* The methods were written so you can be as granular as you want.
|
63
|
+
* For example, enquiring whether it's as specific as an iPod Touch or
|
64
|
+
* as general as a smartphone class device.
|
65
|
+
* The object's methods return true, or false.
|
76
66
|
|
77
67
|
=end
|
78
68
|
module MobileESPConverted
|
@@ -83,7 +73,11 @@ module MobileESPConverted
|
|
83
73
|
attr_reader :http_accept
|
84
74
|
|
85
75
|
|
76
|
+
attr_reader :init_completed
|
77
|
+
attr_reader :is_webkit
|
78
|
+
attr_reader :is_mobile_phone
|
86
79
|
attr_reader :is_iphone
|
80
|
+
attr_reader :is_android
|
87
81
|
attr_reader :is_android_phone
|
88
82
|
attr_reader :is_tier_tablet
|
89
83
|
attr_reader :is_tier_iphone
|
@@ -93,96 +87,102 @@ module MobileESPConverted
|
|
93
87
|
|
94
88
|
ENGINE_WEB_KIT = "webkit"
|
95
89
|
|
96
|
-
DEVICE_IPHONE
|
97
|
-
DEVICE_IPOD
|
98
|
-
DEVICE_IPAD
|
90
|
+
DEVICE_IPHONE = "iphone"
|
91
|
+
DEVICE_IPOD = "ipod"
|
92
|
+
DEVICE_IPAD = "ipad"
|
99
93
|
DEVICE_MAC_PPC = "macintosh"
|
100
94
|
|
101
|
-
DEVICE_ANDROID
|
95
|
+
DEVICE_ANDROID = "android"
|
102
96
|
DEVICE_GOOGLE_T_V = "googletv"
|
103
|
-
|
104
|
-
DEVICE_HTC_FLYER = "htc_flyer"
|
105
|
-
|
106
|
-
DEVICE_SYMBIAN = "symbian"
|
107
|
-
DEVICE_S60 = "series60"
|
108
|
-
DEVICE_S70 = "series70"
|
109
|
-
DEVICE_S80 = "series80"
|
110
|
-
DEVICE_S90 = "series90"
|
97
|
+
DEVICE_HTC_FLYER = "htc_flyer"
|
111
98
|
|
112
99
|
DEVICE_WIN_PHONE7 = "windows phone os 7"
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
100
|
+
DEVICE_WIN_PHONE8 = "windows phone 8"
|
101
|
+
DEVICE_WIN_MOB = "windows ce"
|
102
|
+
DEVICE_WINDOWS = "windows"
|
103
|
+
DEVICE_IE_MOB = "iemobile"
|
104
|
+
DEVICE_PPC = "ppc"
|
105
|
+
ENGINE_PIE = "wm5 pie"
|
106
|
+
|
107
|
+
DEVICE_B_B = "blackberry"
|
108
|
+
DEVICE_B_B10 = "bb10"
|
109
|
+
VND_R_I_M = "vnd.rim"
|
110
|
+
DEVICE_B_B_STORM = "blackberry95"
|
111
|
+
DEVICE_B_B_BOLD = "blackberry97"
|
112
|
+
DEVICE_B_B_BOLD_TOUCH = "blackberry 99"
|
113
|
+
DEVICE_B_B_TOUR = "blackberry96"
|
114
|
+
DEVICE_B_B_CURVE = "blackberry89"
|
126
115
|
DEVICE_B_B_CURVE_TOUCH = "blackberry 938"
|
127
|
-
DEVICE_B_B_TORCH
|
128
|
-
DEVICE_B_B_PLAYBOOK
|
116
|
+
DEVICE_B_B_TORCH = "blackberry 98"
|
117
|
+
DEVICE_B_B_PLAYBOOK = "playbook"
|
118
|
+
|
119
|
+
DEVICE_SYMBIAN = "symbian"
|
120
|
+
DEVICE_S60 = "series60"
|
121
|
+
DEVICE_S70 = "series70"
|
122
|
+
DEVICE_S80 = "series80"
|
123
|
+
DEVICE_S90 = "series90"
|
129
124
|
|
130
|
-
DEVICE_PALM
|
131
|
-
DEVICE_WEB_O_S
|
125
|
+
DEVICE_PALM = "palm"
|
126
|
+
DEVICE_WEB_O_S = "webos"
|
132
127
|
DEVICE_WEB_O_SHP = "hpwos"
|
128
|
+
ENGINE_BLAZER = "blazer"
|
129
|
+
ENGINE_XIINO = "xiino"
|
133
130
|
|
134
|
-
|
135
|
-
|
131
|
+
DEVICE_NUVIFONE = "nuvifone"
|
132
|
+
DEVICE_BADA = "bada"
|
133
|
+
DEVICE_TIZEN = "tizen"
|
134
|
+
DEVICE_MEEGO = "meego"
|
136
135
|
|
137
136
|
DEVICE_KINDLE = "kindle"
|
138
|
-
ENGINE_SILK
|
139
|
-
|
140
|
-
DEVICE_NUVIFONE = "nuvifone"
|
137
|
+
ENGINE_SILK = "silk-accelerated"
|
141
138
|
|
142
139
|
|
143
140
|
VNDWAP = "vnd.wap"
|
144
|
-
WML
|
145
|
-
|
146
|
-
|
147
|
-
DEVICE_TABLET
|
148
|
-
DEVICE_BREW
|
149
|
-
DEVICE_DANGER
|
150
|
-
DEVICE_HIPTOP
|
151
|
-
DEVICE_PLAYSTATION
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
141
|
+
WML = "wml"
|
142
|
+
|
143
|
+
|
144
|
+
DEVICE_TABLET = "tablet"
|
145
|
+
DEVICE_BREW = "brew"
|
146
|
+
DEVICE_DANGER = "danger"
|
147
|
+
DEVICE_HIPTOP = "hiptop"
|
148
|
+
DEVICE_PLAYSTATION = "playstation"
|
149
|
+
DEVICE_PLAYSTATION_VITA = "vita"
|
150
|
+
DEVICE_NINTENDO_DS = "nitro"
|
151
|
+
DEVICE_NINTENDO = "nintendo"
|
152
|
+
DEVICE_WII = "wii"
|
153
|
+
DEVICE_XBOX = "xbox"
|
154
|
+
DEVICE_ARCHOS = "archos"
|
155
|
+
|
156
|
+
ENGINE_OPERA = "opera"
|
157
|
+
ENGINE_NETFRONT = "netfront"
|
160
158
|
ENGINE_UP_BROWSER = "up.browser"
|
161
|
-
ENGINE_OPEN_WEB
|
162
|
-
DEVICE_MIDP
|
163
|
-
UPLINK
|
164
|
-
ENGINE_TELECA_Q
|
159
|
+
ENGINE_OPEN_WEB = "openweb"
|
160
|
+
DEVICE_MIDP = "midp"
|
161
|
+
UPLINK = "up.link"
|
162
|
+
ENGINE_TELECA_Q = "teleca q"
|
163
|
+
ENGINE_OBIGO = "obigo"
|
164
|
+
|
165
165
|
DEVICE_PDA = "pda"
|
166
|
-
MINI
|
167
|
-
MOBILE
|
168
|
-
MOBI
|
166
|
+
MINI = "mini"
|
167
|
+
MOBILE = "mobile"
|
168
|
+
MOBI = "mobi"
|
169
169
|
|
170
170
|
|
171
|
-
MAEMO
|
172
|
-
LINUX
|
171
|
+
MAEMO = "maemo"
|
172
|
+
LINUX = "linux"
|
173
173
|
QTEMBEDDED = "qt embedded"
|
174
|
-
MYLOCOM2
|
174
|
+
MYLOCOM2 = "com2"
|
175
175
|
|
176
176
|
|
177
177
|
MANU_SONY_ERICSSON = "sonyericsson"
|
178
|
-
MANUERICSSON
|
179
|
-
MANU_SAMSUNG1
|
180
|
-
MANU_SONY
|
181
|
-
MANU_HTC
|
178
|
+
MANUERICSSON = "ericsson"
|
179
|
+
MANU_SAMSUNG1 = "sec-sgh"
|
180
|
+
MANU_SONY = "sony"
|
181
|
+
MANU_HTC = "htc"
|
182
182
|
|
183
183
|
|
184
|
-
SVC_DOCOMO
|
185
|
-
SVC_KDDI
|
184
|
+
SVC_DOCOMO = "docomo"
|
185
|
+
SVC_KDDI = "kddi"
|
186
186
|
SVC_VODAFONE = "vodafone"
|
187
187
|
|
188
188
|
|
@@ -190,7 +190,7 @@ module MobileESPConverted
|
|
190
190
|
|
191
191
|
|
192
192
|
=begin
|
193
|
-
*
|
193
|
+
*
|
194
194
|
* Initialize the user_agent and http_accept variables
|
195
195
|
*
|
196
196
|
* @param user_agent the User-Agent header
|
@@ -210,7 +210,7 @@ module MobileESPConverted
|
|
210
210
|
end
|
211
211
|
|
212
212
|
=begin
|
213
|
-
*
|
213
|
+
*
|
214
214
|
* Return the lower case HTTP_USER_AGENT
|
215
215
|
* @return user_agent
|
216
216
|
|
@@ -220,7 +220,7 @@ module MobileESPConverted
|
|
220
220
|
end
|
221
221
|
|
222
222
|
=begin
|
223
|
-
*
|
223
|
+
*
|
224
224
|
* Return the lower case HTTP_ACCEPT
|
225
225
|
* @return http_accept
|
226
226
|
|
@@ -230,7 +230,7 @@ module MobileESPConverted
|
|
230
230
|
end
|
231
231
|
|
232
232
|
=begin
|
233
|
-
*
|
233
|
+
*
|
234
234
|
* Return whether the device is an Iphone or iPod Touch
|
235
235
|
* @return is_iphone
|
236
236
|
|
@@ -240,7 +240,7 @@ module MobileESPConverted
|
|
240
240
|
end
|
241
241
|
|
242
242
|
=begin
|
243
|
-
*
|
243
|
+
*
|
244
244
|
* Return whether the device is in the Tablet Tier.
|
245
245
|
* @return is_tier_tablet
|
246
246
|
|
@@ -250,7 +250,7 @@ module MobileESPConverted
|
|
250
250
|
end
|
251
251
|
|
252
252
|
=begin
|
253
|
-
*
|
253
|
+
*
|
254
254
|
* Return whether the device is in the Iphone Tier.
|
255
255
|
* @return is_tier_iphone
|
256
256
|
|
@@ -260,7 +260,7 @@ module MobileESPConverted
|
|
260
260
|
end
|
261
261
|
|
262
262
|
=begin
|
263
|
-
*
|
263
|
+
*
|
264
264
|
* Return whether the device is in the 'Rich CSS' tier of mobile devices.
|
265
265
|
* @return is_tier_rich_css
|
266
266
|
|
@@ -270,7 +270,7 @@ module MobileESPConverted
|
|
270
270
|
end
|
271
271
|
|
272
272
|
=begin
|
273
|
-
*
|
273
|
+
*
|
274
274
|
* Return whether the device is a generic, less-capable mobile device.
|
275
275
|
* @return is_tier_generic_mobile
|
276
276
|
|
@@ -280,26 +280,41 @@ module MobileESPConverted
|
|
280
280
|
end
|
281
281
|
|
282
282
|
=begin
|
283
|
-
*
|
283
|
+
*
|
284
284
|
* Initialize Key Stored Values.
|
285
285
|
|
286
286
|
=end
|
287
287
|
def init_device_scan()
|
288
|
-
|
288
|
+
|
289
|
+
@is_webkit = detect_webkit()
|
290
|
+
@is_iphone = detect_iphone()
|
291
|
+
@is_android = detect_android()
|
289
292
|
@is_android_phone = detect_android_phone()
|
290
|
-
|
291
|
-
|
292
|
-
@
|
293
|
+
|
294
|
+
|
295
|
+
@is_mobile_phone = detect_mobile_quick()
|
296
|
+
@is_tier_tablet = detect_tier_tablet()
|
297
|
+
@is_tier_iphone = detect_tier_iphone()
|
298
|
+
|
299
|
+
|
300
|
+
@is_tier_rich_css = detect_tier_rich_css()
|
293
301
|
@is_tier_generic_mobile = detect_tier_other_phones()
|
302
|
+
|
303
|
+
@init_completed = true
|
294
304
|
end
|
295
305
|
|
296
306
|
=begin
|
297
|
-
*
|
307
|
+
*
|
298
308
|
* Detects if the current device is an iPhone.
|
299
309
|
* @return detection of an iPhone
|
300
310
|
|
301
311
|
=end
|
302
312
|
def detect_iphone()
|
313
|
+
if ((@init_completed == true) ||
|
314
|
+
(@is_iphone == true))
|
315
|
+
return @is_iphone
|
316
|
+
end
|
317
|
+
|
303
318
|
|
304
319
|
if (user_agent.include?(DEVICE_IPHONE) &&
|
305
320
|
!detect_ipad() &&
|
@@ -310,7 +325,7 @@ module MobileESPConverted
|
|
310
325
|
end
|
311
326
|
|
312
327
|
=begin
|
313
|
-
*
|
328
|
+
*
|
314
329
|
* Detects if the current device is an iPod Touch.
|
315
330
|
* @return detection of an iPod Touch
|
316
331
|
|
@@ -323,7 +338,7 @@ module MobileESPConverted
|
|
323
338
|
end
|
324
339
|
|
325
340
|
=begin
|
326
|
-
*
|
341
|
+
*
|
327
342
|
* Detects if the current device is an iPad tablet.
|
328
343
|
* @return detection of an iPad
|
329
344
|
|
@@ -336,7 +351,7 @@ module MobileESPConverted
|
|
336
351
|
end
|
337
352
|
|
338
353
|
=begin
|
339
|
-
*
|
354
|
+
*
|
340
355
|
* Detects if the current device is an iPhone or iPod Touch.
|
341
356
|
* @return detection of an iPhone or iPod Touch
|
342
357
|
|
@@ -350,7 +365,7 @@ module MobileESPConverted
|
|
350
365
|
end
|
351
366
|
|
352
367
|
=begin
|
353
|
-
*
|
368
|
+
*
|
354
369
|
* Detects *any* iOS device: iPhone, iPod Touch, iPad.
|
355
370
|
* @return detection of an Apple iOS device
|
356
371
|
|
@@ -364,13 +379,18 @@ module MobileESPConverted
|
|
364
379
|
|
365
380
|
|
366
381
|
=begin
|
367
|
-
*
|
382
|
+
*
|
368
383
|
* Detects *any* Android OS-based device: phone, tablet, and multi-media player.
|
369
384
|
* Also detects Google TV.
|
370
385
|
* @return detection of an Android device
|
371
386
|
|
372
387
|
=end
|
373
388
|
def detect_android()
|
389
|
+
if ((@init_completed == true) ||
|
390
|
+
(@is_android == true))
|
391
|
+
return @is_android
|
392
|
+
end
|
393
|
+
|
374
394
|
if ((user_agent.include?(DEVICE_ANDROID)) ||
|
375
395
|
detect_google_t_v())
|
376
396
|
return true
|
@@ -383,7 +403,7 @@ module MobileESPConverted
|
|
383
403
|
end
|
384
404
|
|
385
405
|
=begin
|
386
|
-
*
|
406
|
+
*
|
387
407
|
* Detects if the current device is a (small-ish) Android OS-based device
|
388
408
|
* used for calling and/or multi-media (like a Samsung Galaxy Player).
|
389
409
|
* Google says these devices will have 'Android' AND 'mobile' in user agent.
|
@@ -392,6 +412,11 @@ module MobileESPConverted
|
|
392
412
|
|
393
413
|
=end
|
394
414
|
def detect_android_phone()
|
415
|
+
if ((@init_completed == true) ||
|
416
|
+
(@is_android_phone == true))
|
417
|
+
return @is_android_phone
|
418
|
+
end
|
419
|
+
|
395
420
|
if (detect_android() && (user_agent.include?(MOBILE)))
|
396
421
|
return true
|
397
422
|
end
|
@@ -407,7 +432,7 @@ module MobileESPConverted
|
|
407
432
|
end
|
408
433
|
|
409
434
|
=begin
|
410
|
-
*
|
435
|
+
*
|
411
436
|
* Detects if the current device is a (self-reported) Android tablet.
|
412
437
|
* Google says these devices will have 'Android' and NOT 'mobile' in their user agent.
|
413
438
|
* @return detection of an Android tablet
|
@@ -437,7 +462,7 @@ module MobileESPConverted
|
|
437
462
|
end
|
438
463
|
|
439
464
|
=begin
|
440
|
-
*
|
465
|
+
*
|
441
466
|
* Detects if the current device is an Android OS-based device and
|
442
467
|
* the browser is based on WebKit.
|
443
468
|
* @return detection of an Android WebKit browser
|
@@ -451,7 +476,7 @@ module MobileESPConverted
|
|
451
476
|
end
|
452
477
|
|
453
478
|
=begin
|
454
|
-
*
|
479
|
+
*
|
455
480
|
* Detects if the current device is a GoogleTV.
|
456
481
|
* @return detection of GoogleTV
|
457
482
|
|
@@ -464,78 +489,77 @@ module MobileESPConverted
|
|
464
489
|
end
|
465
490
|
|
466
491
|
=begin
|
467
|
-
*
|
492
|
+
*
|
468
493
|
* Detects if the current browser is based on WebKit.
|
469
494
|
* @return detection of a WebKit browser
|
470
495
|
|
471
496
|
=end
|
472
497
|
def detect_webkit()
|
498
|
+
if ((@init_completed == true) ||
|
499
|
+
(@is_webkit == true))
|
500
|
+
return @is_webkit
|
501
|
+
end
|
502
|
+
|
473
503
|
if (user_agent.include?(ENGINE_WEB_KIT))
|
474
504
|
return true
|
475
505
|
end
|
476
506
|
return false
|
477
507
|
end
|
478
508
|
|
509
|
+
|
479
510
|
=begin
|
480
|
-
*
|
481
|
-
* Detects if the current browser is
|
482
|
-
* @return detection of
|
511
|
+
*
|
512
|
+
* Detects if the current browser is EITHER a Windows Phone 7.x OR 8 device
|
513
|
+
* @return detection of Windows Phone 7.x OR 8
|
483
514
|
|
484
515
|
=end
|
485
|
-
def
|
486
|
-
|
487
|
-
if (detect_webkit() && (user_agent.include?(DEVICE_SYMBIAN) || user_agent.include?(DEVICE_S60)))
|
516
|
+
def detect_windows_phone()
|
517
|
+
if (detect_windows_phone7() || detect_windows_phone8())
|
488
518
|
return true
|
489
519
|
end
|
490
520
|
return false
|
491
521
|
end
|
492
522
|
|
493
523
|
=begin
|
494
|
-
*
|
495
524
|
*
|
496
|
-
* Detects
|
497
|
-
*
|
498
|
-
* or other browsers running on these devices.
|
499
|
-
* @return detection of SymbianOS
|
525
|
+
* Detects a Windows Phone 7.x device (in mobile browsing mode).
|
526
|
+
* @return detection of Windows Phone 7
|
500
527
|
|
501
528
|
=end
|
502
|
-
def
|
503
|
-
if (user_agent.include?(
|
529
|
+
def detect_windows_phone7()
|
530
|
+
if (user_agent.include?(DEVICE_WIN_PHONE7))
|
504
531
|
return true
|
505
532
|
end
|
506
533
|
return false
|
507
534
|
end
|
508
535
|
|
509
536
|
=begin
|
510
|
-
*
|
511
|
-
* Detects
|
512
|
-
* Windows Phone
|
513
|
-
* @return detection of Windows Phone 7
|
537
|
+
*
|
538
|
+
* Detects a Windows Phone 8 device (in mobile browsing mode).
|
539
|
+
* @return detection of Windows Phone 8
|
514
540
|
|
515
541
|
=end
|
516
|
-
def
|
517
|
-
if (user_agent.include?(
|
542
|
+
def detect_windows_phone8()
|
543
|
+
if (user_agent.include?(DEVICE_WIN_PHONE8))
|
518
544
|
return true
|
519
545
|
end
|
520
546
|
return false
|
521
547
|
end
|
522
548
|
|
523
549
|
=begin
|
524
|
-
*
|
550
|
+
*
|
525
551
|
* Detects if the current browser is a Windows Mobile device.
|
526
|
-
* Excludes Windows Phone 7 devices.
|
552
|
+
* Excludes Windows Phone 7.x and 8 devices.
|
527
553
|
* Focuses on Windows Mobile 6.xx and earlier.
|
528
554
|
* @return detection of Windows Mobile
|
529
555
|
|
530
556
|
=end
|
531
557
|
def detect_windows_mobile()
|
532
|
-
|
533
|
-
if (detect_windows_phone7())
|
558
|
+
if (detect_windows_phone())
|
534
559
|
return false
|
535
560
|
end
|
536
561
|
|
537
562
|
|
538
|
-
|
539
563
|
if (user_agent.include?(DEVICE_WIN_MOB) || user_agent.include?(DEVICE_WIN_MOB) || user_agent.include?(DEVICE_IE_MOB) || user_agent.include?(ENGINE_PIE) || (user_agent.include?(MANU_HTC) && user_agent.include?(DEVICE_WINDOWS)) || (detect_wap_wml() && user_agent.include?(DEVICE_WINDOWS)))
|
540
564
|
return true
|
541
565
|
end
|
@@ -549,10 +573,11 @@ module MobileESPConverted
|
|
549
573
|
return false
|
550
574
|
end
|
551
575
|
|
576
|
+
|
552
577
|
=begin
|
553
|
-
*
|
578
|
+
*
|
554
579
|
* Detects if the current browser is any BlackBerry.
|
555
|
-
* Includes the PlayBook.
|
580
|
+
* Includes BB10 OS, but excludes the PlayBook.
|
556
581
|
* @return detection of Blackberry
|
557
582
|
|
558
583
|
=end
|
@@ -561,11 +586,31 @@ module MobileESPConverted
|
|
561
586
|
http_accept.include?(VND_R_I_M))
|
562
587
|
return true
|
563
588
|
end
|
589
|
+
|
590
|
+
if (detect_black_berry10_phone())
|
591
|
+
return true
|
592
|
+
end
|
593
|
+
|
564
594
|
return false
|
565
595
|
end
|
566
596
|
|
567
597
|
=begin
|
568
|
-
*
|
598
|
+
*
|
599
|
+
* Detects if the current browser is a BlackBerry 10 OS phone.
|
600
|
+
* Excludes tablets.
|
601
|
+
* @return detection of a Blackberry 10 device
|
602
|
+
|
603
|
+
=end
|
604
|
+
def detect_black_berry10_phone()
|
605
|
+
if (user_agent.include?(DEVICE_B_B10) &&
|
606
|
+
user_agent.include?(MOBILE))
|
607
|
+
return true
|
608
|
+
end
|
609
|
+
return false
|
610
|
+
end
|
611
|
+
|
612
|
+
=begin
|
613
|
+
*
|
569
614
|
* Detects if the current browser is on a BlackBerry tablet device.
|
570
615
|
* Example: PlayBook
|
571
616
|
* @return detection of a Blackberry Tablet
|
@@ -579,7 +624,7 @@ module MobileESPConverted
|
|
579
624
|
end
|
580
625
|
|
581
626
|
=begin
|
582
|
-
*
|
627
|
+
*
|
583
628
|
* Detects if the current browser is a BlackBerry device AND uses a
|
584
629
|
* WebKit-based browser. These are signatures for the new BlackBerry OS 6.
|
585
630
|
* Examples: Torch. Includes the Playbook.
|
@@ -587,15 +632,14 @@ module MobileESPConverted
|
|
587
632
|
|
588
633
|
=end
|
589
634
|
def detect_black_berry_web_kit()
|
590
|
-
if (detect_black_berry() &&
|
591
|
-
user_agent.include?(ENGINE_WEB_KIT))
|
635
|
+
if (detect_black_berry() && detect_webkit())
|
592
636
|
return true
|
593
637
|
end
|
594
638
|
return false
|
595
639
|
end
|
596
640
|
|
597
641
|
=begin
|
598
|
-
*
|
642
|
+
*
|
599
643
|
* Detects if the current browser is a BlackBerry Touch
|
600
644
|
* device, such as the Storm, Torch, and Bold Touch. Excludes the Playbook.
|
601
645
|
* @return detection of a Blackberry touchscreen device
|
@@ -606,14 +650,14 @@ module MobileESPConverted
|
|
606
650
|
(user_agent.include?(DEVICE_B_B_STORM) ||
|
607
651
|
user_agent.include?(DEVICE_B_B_TORCH) ||
|
608
652
|
user_agent.include?(DEVICE_B_B_BOLD_TOUCH) ||
|
609
|
-
user_agent.include?(DEVICE_B_B_CURVE_TOUCH) )
|
653
|
+
user_agent.include?(DEVICE_B_B_CURVE_TOUCH)) )
|
610
654
|
return true
|
611
655
|
end
|
612
656
|
return false
|
613
657
|
end
|
614
658
|
|
615
659
|
=begin
|
616
|
-
*
|
660
|
+
*
|
617
661
|
* Detects if the current browser is a BlackBerry device AND
|
618
662
|
* has a more capable recent browser. Excludes the Playbook.
|
619
663
|
* Examples, Storm, Bold, Tour, Curve2
|
@@ -638,7 +682,7 @@ module MobileESPConverted
|
|
638
682
|
end
|
639
683
|
|
640
684
|
=begin
|
641
|
-
*
|
685
|
+
*
|
642
686
|
* Detects if the current browser is a BlackBerry device AND
|
643
687
|
* has an older, less capable browser.
|
644
688
|
* Examples: Pearl, 8800, Curve1
|
@@ -658,106 +702,87 @@ module MobileESPConverted
|
|
658
702
|
end
|
659
703
|
end
|
660
704
|
|
705
|
+
|
661
706
|
=begin
|
662
|
-
*
|
663
|
-
* Detects if the current browser is
|
664
|
-
* @return detection of
|
707
|
+
*
|
708
|
+
* Detects if the current browser is the Symbian S60 Open Source Browser.
|
709
|
+
* @return detection of Symbian S60 Browser
|
665
710
|
|
666
711
|
=end
|
667
|
-
def
|
668
|
-
|
669
|
-
if (user_agent.include?(DEVICE_PALM) || user_agent.include?(ENGINE_BLAZER) || user_agent.include?(ENGINE_XIINO))
|
712
|
+
def detect_s60_oss_browser()
|
670
713
|
|
671
|
-
|
672
|
-
|
673
|
-
else
|
674
|
-
return true
|
675
|
-
end
|
714
|
+
if (detect_webkit() && (user_agent.include?(DEVICE_SYMBIAN) || user_agent.include?(DEVICE_S60)))
|
715
|
+
return true
|
676
716
|
end
|
677
717
|
return false
|
678
718
|
end
|
679
719
|
|
680
720
|
=begin
|
681
|
-
*
|
682
|
-
*
|
683
|
-
*
|
684
|
-
*
|
721
|
+
*
|
722
|
+
*
|
723
|
+
* Detects if the current device is any Symbian OS-based device,
|
724
|
+
* including older S60, Series 70, Series 80, Series 90, and UIQ,
|
725
|
+
* or other browsers running on these devices.
|
726
|
+
* @return detection of SymbianOS
|
685
727
|
|
686
728
|
=end
|
687
|
-
def
|
688
|
-
if (user_agent.include?(
|
729
|
+
def detect_symbian_o_s()
|
730
|
+
if (user_agent.include?(DEVICE_SYMBIAN) || user_agent.include?(DEVICE_S60) || user_agent.include?(DEVICE_S70) || user_agent.include?(DEVICE_S80) || user_agent.include?(DEVICE_S90))
|
689
731
|
return true
|
690
732
|
end
|
691
733
|
return false
|
692
734
|
end
|
693
735
|
|
736
|
+
|
694
737
|
=begin
|
695
|
-
*
|
696
|
-
* Detects if the current browser is on
|
697
|
-
* @return detection of
|
738
|
+
*
|
739
|
+
* Detects if the current browser is on a PalmOS device.
|
740
|
+
* @return detection of a PalmOS device
|
698
741
|
|
699
742
|
=end
|
700
|
-
def
|
701
|
-
|
702
|
-
|
703
|
-
return
|
743
|
+
def detect_palm_o_s()
|
744
|
+
|
745
|
+
if (detect_palm_web_o_s())
|
746
|
+
return false
|
704
747
|
end
|
705
|
-
return false
|
706
|
-
end
|
707
748
|
|
708
|
-
=begin
|
709
|
-
*
|
710
|
-
* Detects if the current browser is a
|
711
|
-
* Garmin Nuvifone.
|
712
|
-
* @return detection of a Garmin Nuvifone
|
713
749
|
|
714
|
-
|
715
|
-
def detect_garmin_nuvifone()
|
716
|
-
if (user_agent.include?(DEVICE_NUVIFONE))
|
750
|
+
if (user_agent.include?(DEVICE_PALM) || user_agent.include?(ENGINE_BLAZER) || user_agent.include?(ENGINE_XIINO))
|
717
751
|
return true
|
718
752
|
end
|
719
753
|
return false
|
720
754
|
end
|
721
755
|
|
722
756
|
=begin
|
723
|
-
*
|
724
|
-
*
|
725
|
-
*
|
726
|
-
* @return detection of a
|
727
|
-
|
728
|
-
=end
|
729
|
-
def detect_smartphone()
|
730
|
-
return (is_iphone || is_android_phone || is_tier_iphone || detect_s60_oss_browser() || detect_symbian_o_s() || detect_windows_mobile() || detect_windows_phone7() || detect_black_berry() || detect_palm_web_o_s() || detect_palm_o_s() || detect_garmin_nuvifone())
|
731
|
-
end
|
732
|
-
|
733
|
-
=begin
|
734
|
-
*
|
735
|
-
* Detects whether the device is a Brew-powered device.
|
736
|
-
* @return detection of a Brew device
|
757
|
+
*
|
758
|
+
* Detects if the current browser is on a Palm device
|
759
|
+
* running the new WebOS.
|
760
|
+
* @return detection of a Palm WebOS device
|
737
761
|
|
738
762
|
=end
|
739
|
-
def
|
740
|
-
if (user_agent.include?(
|
763
|
+
def detect_palm_web_o_s()
|
764
|
+
if (user_agent.include?(DEVICE_WEB_O_S))
|
741
765
|
return true
|
742
766
|
end
|
743
767
|
return false
|
744
768
|
end
|
745
769
|
|
746
770
|
=begin
|
747
|
-
*
|
748
|
-
* Detects the
|
749
|
-
* @return detection of
|
771
|
+
*
|
772
|
+
* Detects if the current browser is on an HP tablet running WebOS.
|
773
|
+
* @return detection of an HP WebOS tablet
|
750
774
|
|
751
775
|
=end
|
752
|
-
def
|
753
|
-
if (user_agent.include?(
|
776
|
+
def detect_web_o_s_tablet()
|
777
|
+
if (user_agent.include?(DEVICE_WEB_O_SHP) &&
|
778
|
+
user_agent.include?(DEVICE_TABLET))
|
754
779
|
return true
|
755
780
|
end
|
756
781
|
return false
|
757
782
|
end
|
758
783
|
|
759
784
|
=begin
|
760
|
-
*
|
785
|
+
*
|
761
786
|
* Detects Opera Mobile or Opera Mini.
|
762
787
|
* @return detection of an Opera browser for a mobile device
|
763
788
|
|
@@ -770,7 +795,7 @@ module MobileESPConverted
|
|
770
795
|
end
|
771
796
|
|
772
797
|
=begin
|
773
|
-
*
|
798
|
+
*
|
774
799
|
* Detects Opera Mobile on an Android phone.
|
775
800
|
* @return detection of an Opera browser on an Android phone
|
776
801
|
|
@@ -783,7 +808,7 @@ module MobileESPConverted
|
|
783
808
|
end
|
784
809
|
|
785
810
|
=begin
|
786
|
-
*
|
811
|
+
*
|
787
812
|
* Detects Opera Mobile on an Android tablet.
|
788
813
|
* @return detection of an Opera browser on an Android tablet
|
789
814
|
|
@@ -796,20 +821,7 @@ module MobileESPConverted
|
|
796
821
|
end
|
797
822
|
|
798
823
|
=begin
|
799
|
-
*
|
800
|
-
* Detects whether the device supports WAP or WML.
|
801
|
-
* @return detection of a WAP- or WML-capable device
|
802
|
-
|
803
|
-
=end
|
804
|
-
def detect_wap_wml()
|
805
|
-
if (http_accept.include?(VNDWAP) || http_accept.include?(WML))
|
806
|
-
return true
|
807
|
-
end
|
808
|
-
return false
|
809
|
-
end
|
810
|
-
|
811
|
-
=begin
|
812
|
-
*
|
824
|
+
*
|
813
825
|
* Detects if the current device is an Amazon Kindle (eInk devices only).
|
814
826
|
* Note: For the Kindle Fire, use the normal Android methods.
|
815
827
|
* @return detection of a Kindle
|
@@ -824,7 +836,7 @@ module MobileESPConverted
|
|
824
836
|
end
|
825
837
|
|
826
838
|
=begin
|
827
|
-
*
|
839
|
+
*
|
828
840
|
* Detects if the current Amazon device is using the Silk Browser.
|
829
841
|
* Note: Typically used by the the Kindle Fire.
|
830
842
|
* @return detection of an Amazon Kindle Fire in Silk mode.
|
@@ -838,53 +850,128 @@ module MobileESPConverted
|
|
838
850
|
end
|
839
851
|
|
840
852
|
=begin
|
841
|
-
*
|
842
|
-
*
|
843
|
-
*
|
844
|
-
*
|
845
|
-
* @return detection of any mobile device using the quicker method
|
853
|
+
*
|
854
|
+
* Detects if the current browser is a
|
855
|
+
* Garmin Nuvifone.
|
856
|
+
* @return detection of a Garmin Nuvifone
|
846
857
|
|
847
858
|
=end
|
848
|
-
def
|
849
|
-
|
850
|
-
|
851
|
-
return false
|
859
|
+
def detect_garmin_nuvifone()
|
860
|
+
if (user_agent.include?(DEVICE_NUVIFONE))
|
861
|
+
return true
|
852
862
|
end
|
863
|
+
return false
|
864
|
+
end
|
853
865
|
|
854
|
-
|
866
|
+
=begin
|
867
|
+
*
|
868
|
+
* Detects a device running the Bada smartphone OS from Samsung.
|
869
|
+
* @return detection of a Bada device
|
870
|
+
|
871
|
+
=end
|
872
|
+
def detect_bada()
|
873
|
+
if (user_agent.include?(DEVICE_BADA))
|
855
874
|
return true
|
856
875
|
end
|
876
|
+
return false
|
877
|
+
end
|
857
878
|
|
858
|
-
|
879
|
+
=begin
|
880
|
+
*
|
881
|
+
* Detects a device running the Tizen smartphone OS.
|
882
|
+
* @return detection of a Tizen device
|
883
|
+
|
884
|
+
=end
|
885
|
+
def detect_tizen()
|
886
|
+
if (user_agent.include?(DEVICE_TIZEN))
|
859
887
|
return true
|
860
888
|
end
|
889
|
+
return false
|
890
|
+
end
|
861
891
|
|
862
|
-
|
892
|
+
=begin
|
893
|
+
*
|
894
|
+
* Detects a device running the Meego OS.
|
895
|
+
* @return detection of a Meego device
|
896
|
+
|
897
|
+
=end
|
898
|
+
def detect_meego()
|
899
|
+
if (user_agent.include?(DEVICE_MEEGO))
|
863
900
|
return true
|
864
901
|
end
|
902
|
+
return false
|
903
|
+
end
|
865
904
|
|
866
|
-
|
905
|
+
=begin
|
906
|
+
*
|
907
|
+
* Detects the Danger Hiptop device.
|
908
|
+
* @return detection of a Danger Hiptop
|
909
|
+
|
910
|
+
=end
|
911
|
+
def detect_danger_hiptop()
|
912
|
+
if (user_agent.include?(DEVICE_DANGER) || user_agent.include?(DEVICE_HIPTOP))
|
867
913
|
return true
|
868
914
|
end
|
915
|
+
return false
|
916
|
+
end
|
869
917
|
|
870
|
-
|
871
|
-
|
918
|
+
=begin
|
919
|
+
*
|
920
|
+
* Detects if the current browser is a Sony Mylo device.
|
921
|
+
* @return detection of a Sony Mylo device
|
922
|
+
|
923
|
+
=end
|
924
|
+
def detect_sony_mylo()
|
925
|
+
if (user_agent.include?(MANU_SONY) && (user_agent.include?(QTEMBEDDED) || user_agent.include?(MYLOCOM2)))
|
872
926
|
return true
|
873
927
|
end
|
874
|
-
|
928
|
+
return false
|
929
|
+
end
|
930
|
+
|
931
|
+
=begin
|
932
|
+
*
|
933
|
+
* Detects if the current device is on one of the Maemo-based Nokia Internet Tablets.
|
934
|
+
* @return detection of a Maemo OS tablet
|
935
|
+
|
936
|
+
=end
|
937
|
+
def detect_maemo_tablet()
|
938
|
+
if (user_agent.include?(MAEMO))
|
939
|
+
return true
|
940
|
+
elsif (user_agent.include?(LINUX) && user_agent.include?(DEVICE_TABLET) && !detect_web_o_s_tablet() && !detect_android())
|
875
941
|
return true
|
876
942
|
end
|
943
|
+
return false
|
944
|
+
end
|
877
945
|
|
946
|
+
=begin
|
947
|
+
*
|
948
|
+
* Detects if the current device is an Archos media player/Internet tablet.
|
949
|
+
* @return detection of an Archos media player
|
878
950
|
|
879
|
-
|
951
|
+
=end
|
952
|
+
def detect_archos()
|
953
|
+
if (user_agent.include?(DEVICE_ARCHOS))
|
880
954
|
return true
|
881
955
|
end
|
956
|
+
return false
|
957
|
+
end
|
958
|
+
|
959
|
+
=begin
|
960
|
+
*
|
961
|
+
* Detects if the current device is an Internet-capable game console.
|
962
|
+
* Includes many handheld consoles.
|
963
|
+
* @return detection of any Game Console
|
882
964
|
|
965
|
+
=end
|
966
|
+
def detect_game_console()
|
967
|
+
if (detect_sony_playstation() || detect_nintendo() || detect_xbox())
|
968
|
+
return true
|
969
|
+
end
|
883
970
|
return false
|
884
971
|
end
|
885
972
|
|
886
973
|
=begin
|
887
|
-
*
|
974
|
+
*
|
888
975
|
* Detects if the current device is a Sony Playstation.
|
889
976
|
* @return detection of Sony Playstation
|
890
977
|
|
@@ -897,7 +984,22 @@ module MobileESPConverted
|
|
897
984
|
end
|
898
985
|
|
899
986
|
=begin
|
900
|
-
*
|
987
|
+
*
|
988
|
+
* Detects if the current device is a handheld gaming device with
|
989
|
+
* a touchscreen and modern iPhone-class browser. Includes the Playstation Vita.
|
990
|
+
* @return detection of a handheld gaming device
|
991
|
+
|
992
|
+
=end
|
993
|
+
def detect_gaming_handheld()
|
994
|
+
if ((user_agent.include?(DEVICE_PLAYSTATION)) &&
|
995
|
+
(user_agent.include?(DEVICE_PLAYSTATION_VITA)))
|
996
|
+
return true
|
997
|
+
end
|
998
|
+
return false
|
999
|
+
end
|
1000
|
+
|
1001
|
+
=begin
|
1002
|
+
*
|
901
1003
|
* Detects if the current device is a Nintendo game device.
|
902
1004
|
* @return detection of Nintendo
|
903
1005
|
|
@@ -910,7 +1012,7 @@ module MobileESPConverted
|
|
910
1012
|
end
|
911
1013
|
|
912
1014
|
=begin
|
913
|
-
*
|
1015
|
+
*
|
914
1016
|
* Detects if the current device is a Microsoft Xbox.
|
915
1017
|
* @return detection of Xbox
|
916
1018
|
|
@@ -923,74 +1025,112 @@ module MobileESPConverted
|
|
923
1025
|
end
|
924
1026
|
|
925
1027
|
=begin
|
926
|
-
*
|
927
|
-
* Detects
|
928
|
-
* @return detection of
|
1028
|
+
*
|
1029
|
+
* Detects whether the device is a Brew-powered device.
|
1030
|
+
* @return detection of a Brew device
|
929
1031
|
|
930
1032
|
=end
|
931
|
-
def
|
932
|
-
if (
|
1033
|
+
def detect_brew_device()
|
1034
|
+
if (user_agent.include?(DEVICE_BREW))
|
933
1035
|
return true
|
934
1036
|
end
|
935
1037
|
return false
|
936
1038
|
end
|
937
1039
|
|
938
1040
|
=begin
|
939
|
-
*
|
940
|
-
* Detects
|
941
|
-
* @return detection of a
|
1041
|
+
*
|
1042
|
+
* Detects whether the device supports WAP or WML.
|
1043
|
+
* @return detection of a WAP- or WML-capable device
|
942
1044
|
|
943
1045
|
=end
|
944
|
-
def
|
945
|
-
if (
|
1046
|
+
def detect_wap_wml()
|
1047
|
+
if (http_accept.include?(VNDWAP) || http_accept.include?(WML))
|
946
1048
|
return true
|
947
1049
|
end
|
948
1050
|
return false
|
949
1051
|
end
|
950
1052
|
|
951
1053
|
=begin
|
952
|
-
*
|
953
|
-
* Detects if the current device
|
954
|
-
* @return detection of a
|
1054
|
+
*
|
1055
|
+
* Detects if the current device supports MIDP, a mobile Java technology.
|
1056
|
+
* @return detection of a MIDP mobile Java-capable device
|
955
1057
|
|
956
1058
|
=end
|
957
|
-
def
|
958
|
-
if (user_agent.include?(
|
959
|
-
return true
|
960
|
-
elsif (user_agent.include?(LINUX) && user_agent.include?(DEVICE_TABLET) && !detect_web_o_s_tablet() && !detect_android())
|
1059
|
+
def detect_midp_capable()
|
1060
|
+
if (user_agent.include?(DEVICE_MIDP) || http_accept.include?(DEVICE_MIDP))
|
961
1061
|
return true
|
962
1062
|
end
|
963
1063
|
return false
|
964
1064
|
end
|
965
1065
|
|
1066
|
+
|
966
1067
|
=begin
|
967
|
-
*
|
968
|
-
*
|
969
|
-
*
|
1068
|
+
*
|
1069
|
+
* Check to see whether the device is any device
|
1070
|
+
* in the 'smartphone' category.
|
1071
|
+
* @return detection of a general smartphone device
|
970
1072
|
|
971
1073
|
=end
|
972
|
-
def
|
973
|
-
|
974
|
-
|
975
|
-
end
|
976
|
-
return false
|
1074
|
+
def detect_smartphone()
|
1075
|
+
|
1076
|
+
return (detect_tier_iphone() || detect_s60_oss_browser() || detect_symbian_o_s() || detect_windows_mobile() || detect_black_berry() || detect_palm_o_s())
|
977
1077
|
end
|
978
1078
|
|
979
1079
|
=begin
|
980
|
-
*
|
981
|
-
*
|
982
|
-
*
|
1080
|
+
*
|
1081
|
+
* Detects if the current device is a mobile device.
|
1082
|
+
* This method catches most of the popular modern devices.
|
1083
|
+
* Excludes Apple iPads and other modern tablets.
|
1084
|
+
* @return detection of any mobile device using the quicker method
|
983
1085
|
|
984
1086
|
=end
|
985
|
-
def
|
986
|
-
|
1087
|
+
def detect_mobile_quick()
|
1088
|
+
|
1089
|
+
if (detect_tier_tablet())
|
1090
|
+
return false
|
1091
|
+
end
|
1092
|
+
|
1093
|
+
if ((init_completed == true) ||
|
1094
|
+
(is_mobile_phone == true))
|
1095
|
+
return is_mobile_phone
|
1096
|
+
end
|
1097
|
+
|
1098
|
+
|
1099
|
+
if (detect_smartphone())
|
987
1100
|
return true
|
988
1101
|
end
|
1102
|
+
|
1103
|
+
if (detect_wap_wml() || detect_brew_device() || detect_opera_mobile())
|
1104
|
+
return true
|
1105
|
+
end
|
1106
|
+
|
1107
|
+
if ((user_agent.include?(ENGINE_OBIGO)) || (user_agent.include?(ENGINE_NETFRONT)) || (user_agent.include?(ENGINE_UP_BROWSER)) || (user_agent.include?(ENGINE_OPEN_WEB)))
|
1108
|
+
return true
|
1109
|
+
end
|
1110
|
+
|
1111
|
+
if (detect_danger_hiptop() || detect_midp_capable() || detect_maemo_tablet() || detect_archos())
|
1112
|
+
return true
|
1113
|
+
end
|
1114
|
+
|
1115
|
+
if ((user_agent.include?(DEVICE_PDA)) &&
|
1116
|
+
(!user_agent.include?(DIS_UPDATE)))
|
1117
|
+
return true
|
1118
|
+
end
|
1119
|
+
|
1120
|
+
if (user_agent.include?(MOBILE))
|
1121
|
+
return true
|
1122
|
+
end
|
1123
|
+
|
1124
|
+
|
1125
|
+
if (detect_kindle() || detect_amazon_silk())
|
1126
|
+
return true
|
1127
|
+
end
|
1128
|
+
|
989
1129
|
return false
|
990
1130
|
end
|
991
1131
|
|
992
1132
|
=begin
|
993
|
-
*
|
1133
|
+
*
|
994
1134
|
* The longer and more thorough way to detect for a mobile device.
|
995
1135
|
* Will probably detect most feature phones,
|
996
1136
|
* smartphone-class devices, Internet Tablets,
|
@@ -1033,11 +1173,8 @@ module MobileESPConverted
|
|
1033
1173
|
end
|
1034
1174
|
|
1035
1175
|
|
1036
|
-
|
1037
|
-
|
1038
|
-
|
1039
1176
|
=begin
|
1040
|
-
*
|
1177
|
+
*
|
1041
1178
|
* The quick way to detect for a tier of devices.
|
1042
1179
|
* This method detects for the new generation of
|
1043
1180
|
* HTML 5 capable, larger screen tablets.
|
@@ -1046,6 +1183,11 @@ module MobileESPConverted
|
|
1046
1183
|
|
1047
1184
|
=end
|
1048
1185
|
def detect_tier_tablet()
|
1186
|
+
if ((@init_completed == true) ||
|
1187
|
+
(@is_tier_tablet == true))
|
1188
|
+
return @is_tier_tablet
|
1189
|
+
end
|
1190
|
+
|
1049
1191
|
if (detect_ipad() || detect_android_tablet() || detect_black_berry_tablet() || detect_web_o_s_tablet())
|
1050
1192
|
return true
|
1051
1193
|
end
|
@@ -1053,23 +1195,28 @@ module MobileESPConverted
|
|
1053
1195
|
end
|
1054
1196
|
|
1055
1197
|
=begin
|
1056
|
-
*
|
1198
|
+
*
|
1057
1199
|
* The quick way to detect for a tier of devices.
|
1058
1200
|
* This method detects for devices which can
|
1059
1201
|
* display iPhone-optimized web content.
|
1060
|
-
* Includes iPhone, iPod Touch, Android, Windows Phone 7,
|
1061
|
-
* @return detection of any device in the iPhone/Android/
|
1202
|
+
* Includes iPhone, iPod Touch, Android, Windows Phone 7 and 8, BB10, WebOS, Playstation Vita, etc.
|
1203
|
+
* @return detection of any device in the iPhone/Android/Windows Phone/BlackBerry/WebOS Tier
|
1062
1204
|
|
1063
1205
|
=end
|
1064
1206
|
def detect_tier_iphone()
|
1065
|
-
if (
|
1207
|
+
if ((@init_completed == true) ||
|
1208
|
+
(@is_tier_iphone == true))
|
1209
|
+
return @is_tier_iphone
|
1210
|
+
end
|
1211
|
+
|
1212
|
+
if (detect_iphone_or_ipod() || detect_android_phone() || detect_windows_phone() || detect_black_berry10_phone() || (detect_black_berry_web_kit() && detect_black_berry_touch()) || detect_palm_web_o_s() || detect_bada() || detect_tizen() || detect_gaming_handheld())
|
1066
1213
|
return true
|
1067
1214
|
end
|
1068
1215
|
return false
|
1069
1216
|
end
|
1070
1217
|
|
1071
1218
|
=begin
|
1072
|
-
*
|
1219
|
+
*
|
1073
1220
|
* The quick way to detect for a tier of devices.
|
1074
1221
|
* This method detects for devices which are likely to be capable
|
1075
1222
|
* of viewing CSS content optimized for the iPhone,
|
@@ -1079,6 +1226,11 @@ module MobileESPConverted
|
|
1079
1226
|
|
1080
1227
|
=end
|
1081
1228
|
def detect_tier_rich_css()
|
1229
|
+
if ((@init_completed == true) ||
|
1230
|
+
(@is_tier_rich_css == true))
|
1231
|
+
return @is_tier_rich_css
|
1232
|
+
end
|
1233
|
+
|
1082
1234
|
result = false
|
1083
1235
|
|
1084
1236
|
|
@@ -1088,8 +1240,6 @@ module MobileESPConverted
|
|
1088
1240
|
if (!detect_tier_iphone() && !detect_kindle())
|
1089
1241
|
|
1090
1242
|
|
1091
|
-
|
1092
|
-
|
1093
1243
|
if (detect_webkit() || detect_s60_oss_browser() || detect_black_berry_high() || detect_windows_mobile() || user_agent.include?(ENGINE_TELECA_Q))
|
1094
1244
|
result= true
|
1095
1245
|
end
|
@@ -1099,7 +1249,7 @@ module MobileESPConverted
|
|
1099
1249
|
end
|
1100
1250
|
|
1101
1251
|
=begin
|
1102
|
-
*
|
1252
|
+
*
|
1103
1253
|
* The quick way to detect for a tier of devices.
|
1104
1254
|
* This method detects for all other types of phones,
|
1105
1255
|
* but excludes the iPhone and RichCSS Tier devices.
|
@@ -1107,10 +1257,16 @@ module MobileESPConverted
|
|
1107
1257
|
|
1108
1258
|
=end
|
1109
1259
|
def detect_tier_other_phones()
|
1260
|
+
if ((@init_completed == true) ||
|
1261
|
+
(@is_tier_generic_mobile == true))
|
1262
|
+
return @is_tier_generic_mobile
|
1263
|
+
end
|
1264
|
+
|
1110
1265
|
|
1111
1266
|
if (detect_mobile_long() && !detect_tier_iphone() && !detect_tier_rich_css())
|
1112
1267
|
return true
|
1113
1268
|
end
|
1269
|
+
|
1114
1270
|
return false
|
1115
1271
|
end
|
1116
1272
|
end
|