mobileesp_converted 0.2.3 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,29 +1,47 @@
1
1
  # This file has been automatically converted to Ruby from Java source code.
2
-
3
-
2
+ #
3
+ #
4
+ #
4
5
  =begin
5
- *******************************************
6
- # Copyright 2010-2013, Anthony Hand
6
+ *******************************************
7
+ # Copyright 2010-2015, Anthony Hand
7
8
  #
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.
11
9
  #
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().
10
+ # File version 2015.05.13 (May 13, 2015)
11
+ # Updates:
12
+ # - Moved MobileESP to GitHub. https:
13
+ # - Opera Mobile/Mini browser has the same UA string on multiple platforms and doesn't differentiate phone vs. tablet.
14
+ # - Removed DetectOperaAndroidPhone(). This method is no longer reliable.
15
+ # - Removed DetectOperaAndroidTablet(). This method is no longer reliable.
16
+ # - Added support for Windows Phone 10: variable and DetectWindowsPhone10()
17
+ # - Updated DetectWindowsPhone() to include WP10.
18
+ # - Added support for Firefox OS.
19
+ # - A variable plus DetectFirefoxOS(), DetectFirefoxOSPhone(), DetectFirefoxOSTablet()
20
+ # - NOTE: Firefox doesn't add UA tokens to definitively identify Firefox OS vs. their browsers on other mobile platforms.
21
+ # - Added support for Sailfish OS. Not enough info to add a tablet detection method at this time.
22
+ # - A variable plus DetectSailfish(), DetectSailfishPhone()
23
+ # - Added support for Ubuntu Mobile OS.
24
+ # - DetectUbuntu(), DetectUbuntuPhone(), DetectUbuntuTablet()
25
+ # - Added support for 2 smart TV OSes. They lack browsers but do have WebViews for use by HTML apps.
26
+ # - One variable for Samsung Tizen TVs, plus DetectTizenTV()
27
+ # - One variable for LG WebOS TVs, plus DetectWebOSTV()
28
+ # - Updated DetectTizen(). Now tests for "mobile" to disambiguate from Samsung Smart TVs
29
+ # - Removed variables for obsolete devices: deviceHtcFlyer, deviceXoom.
30
+ # - Updated DetectAndroid(). No longer has a special test case for the HTC Flyer tablet.
31
+ # - Updated DetectAndroidPhone().
32
+ # - Updated internal detection code for Android.
33
+ # - No longer has a special test case for the HTC Flyer tablet.
34
+ # - Checks against DetectOperaMobile() on Android and reports here if relevant.
35
+ # - Updated DetectAndroidTablet().
36
+ # - No longer has a special test case for the HTC Flyer tablet.
37
+ # - Checks against DetectOperaMobile() on Android to exclude it from here.
38
+ # - DetectMeego(): Changed definition for this method. Now detects any Meego OS device, not just phones.
39
+ # - DetectMeegoPhone(): NEW. For Meego phones. Ought to detect Opera browsers on Meego, as well.
40
+ # - DetectTierIphone(): Added support for phones running Sailfish, Ubuntu and Firefox Mobile.
41
+ # - DetectTierTablet(): Added support for tablets running Ubuntu and Firefox Mobile.
42
+ # - DetectSmartphone(): Added support for Meego phones.
43
+ # - Refactored the detection logic in DetectMobileQuick() and DetectMobileLong().
44
+ # - Moved a few detection tests for older browsers to Long.
27
45
  #
28
46
  #
29
47
  #
@@ -43,7 +61,7 @@
43
61
  # Project Owner: Anthony Hand
44
62
  # Email: anthony.hand@gmail.com
45
63
  # Web Site: http:
46
- # Source Files: http:
64
+ # Source Files: https:
47
65
  #
48
66
  # Versions of this code are available for:
49
67
  # PHP, JavaScript, Java, ASP.NET (C#), and Ruby
@@ -55,14 +73,14 @@
55
73
 
56
74
  =begin
57
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
+ * The DetectSmartPhone class encapsulates information about
77
+ * a browser's connection to your web site.
78
+ * You can use it to find out whether the browser asking for
79
+ * your site's content is probably running on a mobile device.
80
+ * The methods were written so you can be as granular as you want.
81
+ * For example, enquiring whether it's as specific as an iPod Touch or
82
+ * as general as a smartphone class device.
83
+ * The object's methods return true, or false.
66
84
 
67
85
  =end
68
86
  module MobileESPConverted
@@ -87,102 +105,109 @@ module MobileESPConverted
87
105
 
88
106
  ENGINE_WEB_KIT = "webkit"
89
107
 
90
- DEVICE_IPHONE = "iphone"
91
- DEVICE_IPOD = "ipod"
92
- DEVICE_IPAD = "ipad"
108
+ DEVICE_IPHONE = "iphone"
109
+ DEVICE_IPOD = "ipod"
110
+ DEVICE_IPAD = "ipad"
93
111
  DEVICE_MAC_PPC = "macintosh"
94
112
 
95
- DEVICE_ANDROID = "android"
113
+ DEVICE_ANDROID = "android"
96
114
  DEVICE_GOOGLE_T_V = "googletv"
97
- DEVICE_HTC_FLYER = "htc_flyer"
98
115
 
99
116
  DEVICE_WIN_PHONE7 = "windows phone os 7"
100
117
  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"
118
+ DEVICE_WIN_PHONE10 = "windows phone 10"
119
+ DEVICE_WIN_MOB = "windows ce"
120
+ DEVICE_WINDOWS = "windows"
121
+ DEVICE_IE_MOB = "iemobile"
122
+ DEVICE_PPC = "ppc"
123
+ ENGINE_PIE = "wm5 pie"
124
+
125
+ DEVICE_B_B = "blackberry"
126
+ DEVICE_B_B10 = "bb10"
127
+ VND_R_I_M = "vnd.rim"
128
+ DEVICE_B_B_STORM = "blackberry95"
129
+ DEVICE_B_B_BOLD = "blackberry97"
130
+ DEVICE_B_B_BOLD_TOUCH = "blackberry 99"
131
+ DEVICE_B_B_TOUR = "blackberry96"
132
+ DEVICE_B_B_CURVE = "blackberry89"
115
133
  DEVICE_B_B_CURVE_TOUCH = "blackberry 938"
116
- DEVICE_B_B_TORCH = "blackberry 98"
117
- DEVICE_B_B_PLAYBOOK = "playbook"
134
+ DEVICE_B_B_TORCH = "blackberry 98"
135
+ DEVICE_B_B_PLAYBOOK = "playbook"
118
136
 
119
137
  DEVICE_SYMBIAN = "symbian"
120
- DEVICE_S60 = "series60"
121
- DEVICE_S70 = "series70"
122
- DEVICE_S80 = "series80"
123
- DEVICE_S90 = "series90"
124
-
125
- DEVICE_PALM = "palm"
126
- DEVICE_WEB_O_S = "webos"
138
+ DEVICE_S60 = "series60"
139
+ DEVICE_S70 = "series70"
140
+ DEVICE_S80 = "series80"
141
+ DEVICE_S90 = "series90"
142
+
143
+ DEVICE_PALM = "palm"
144
+ DEVICE_WEB_O_S = "webos"
145
+ DEVICE_WEB_O_STV = "web0s"
127
146
  DEVICE_WEB_O_SHP = "hpwos"
128
- ENGINE_BLAZER = "blazer"
129
- ENGINE_XIINO = "xiino"
130
147
 
131
148
  DEVICE_NUVIFONE = "nuvifone"
132
- DEVICE_BADA = "bada"
133
- DEVICE_TIZEN = "tizen"
134
- DEVICE_MEEGO = "meego"
149
+ DEVICE_BADA = "bada"
150
+ DEVICE_TIZEN = "tizen"
151
+ DEVICE_MEEGO = "meego"
152
+ DEVICE_SAILFISH = "sailfish"
153
+ DEVICE_UBUNTU = "ubuntu"
135
154
 
136
155
  DEVICE_KINDLE = "kindle"
137
- ENGINE_SILK = "silk-accelerated"
156
+ ENGINE_SILK = "silk-accelerated"
157
+
158
+ ENGINE_BLAZER = "blazer"
159
+ ENGINE_XIINO = "xiino"
138
160
 
139
161
 
140
162
  VNDWAP = "vnd.wap"
141
- WML = "wml"
163
+ WML = "wml"
142
164
 
143
165
 
144
- DEVICE_TABLET = "tablet"
145
- DEVICE_BREW = "brew"
146
- DEVICE_DANGER = "danger"
147
- DEVICE_HIPTOP = "hiptop"
148
- DEVICE_PLAYSTATION = "playstation"
166
+ DEVICE_TABLET = "tablet"
167
+ DEVICE_BREW = "brew"
168
+ DEVICE_DANGER = "danger"
169
+ DEVICE_HIPTOP = "hiptop"
170
+ DEVICE_PLAYSTATION = "playstation"
149
171
  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"
172
+ DEVICE_NINTENDO_DS = "nitro"
173
+ DEVICE_NINTENDO = "nintendo"
174
+ DEVICE_WII = "wii"
175
+ DEVICE_XBOX = "xbox"
176
+ DEVICE_ARCHOS = "archos"
177
+
178
+ ENGINE_FIREFOX = "firefox"
179
+ ENGINE_OPERA = "opera"
180
+ ENGINE_NETFRONT = "netfront"
158
181
  ENGINE_UP_BROWSER = "up.browser"
159
- ENGINE_OPEN_WEB = "openweb"
160
- DEVICE_MIDP = "midp"
161
- UPLINK = "up.link"
162
- ENGINE_TELECA_Q = "teleca q"
163
- ENGINE_OBIGO = "obigo"
164
-
182
+ ENGINE_OPEN_WEB = "openweb"
183
+ DEVICE_MIDP = "midp"
184
+ UPLINK = "up.link"
185
+ ENGINE_TELECA_Q = "teleca q"
165
186
  DEVICE_PDA = "pda"
166
- MINI = "mini"
167
- MOBILE = "mobile"
168
- MOBI = "mobi"
187
+ MINI = "mini"
188
+ MOBILE = "mobile"
189
+ MOBI = "mobi"
190
+
191
+
192
+ SMART_T_V1 = "smart-tv"
193
+ SMART_T_V2 = "smarttv"
169
194
 
170
195
 
171
- MAEMO = "maemo"
172
- LINUX = "linux"
196
+ MAEMO = "maemo"
197
+ LINUX = "linux"
173
198
  QTEMBEDDED = "qt embedded"
174
- MYLOCOM2 = "com2"
199
+ MYLOCOM2 = "com2"
175
200
 
176
201
 
177
202
  MANU_SONY_ERICSSON = "sonyericsson"
178
- MANUERICSSON = "ericsson"
179
- MANU_SAMSUNG1 = "sec-sgh"
180
- MANU_SONY = "sony"
181
- MANU_HTC = "htc"
203
+ MANUERICSSON = "ericsson"
204
+ MANU_SAMSUNG1 = "sec-sgh"
205
+ MANU_SONY = "sony"
206
+ MANU_HTC = "htc"
182
207
 
183
208
 
184
- SVC_DOCOMO = "docomo"
185
- SVC_KDDI = "kddi"
209
+ SVC_DOCOMO = "docomo"
210
+ SVC_KDDI = "kddi"
186
211
  SVC_VODAFONE = "vodafone"
187
212
 
188
213
 
@@ -190,7 +215,7 @@ module MobileESPConverted
190
215
 
191
216
 
192
217
  =begin
193
- *
218
+ *
194
219
  * Initialize the user_agent and http_accept variables
195
220
  *
196
221
  * @param user_agent the User-Agent header
@@ -210,7 +235,7 @@ module MobileESPConverted
210
235
  end
211
236
 
212
237
  =begin
213
- *
238
+ *
214
239
  * Return the lower case HTTP_USER_AGENT
215
240
  * @return user_agent
216
241
 
@@ -220,7 +245,7 @@ module MobileESPConverted
220
245
  end
221
246
 
222
247
  =begin
223
- *
248
+ *
224
249
  * Return the lower case HTTP_ACCEPT
225
250
  * @return http_accept
226
251
 
@@ -230,7 +255,7 @@ module MobileESPConverted
230
255
  end
231
256
 
232
257
  =begin
233
- *
258
+ *
234
259
  * Return whether the device is an Iphone or iPod Touch
235
260
  * @return is_iphone
236
261
 
@@ -240,7 +265,7 @@ module MobileESPConverted
240
265
  end
241
266
 
242
267
  =begin
243
- *
268
+ *
244
269
  * Return whether the device is in the Tablet Tier.
245
270
  * @return is_tier_tablet
246
271
 
@@ -250,7 +275,7 @@ module MobileESPConverted
250
275
  end
251
276
 
252
277
  =begin
253
- *
278
+ *
254
279
  * Return whether the device is in the Iphone Tier.
255
280
  * @return is_tier_iphone
256
281
 
@@ -260,7 +285,7 @@ module MobileESPConverted
260
285
  end
261
286
 
262
287
  =begin
263
- *
288
+ *
264
289
  * Return whether the device is in the 'Rich CSS' tier of mobile devices.
265
290
  * @return is_tier_rich_css
266
291
 
@@ -270,7 +295,7 @@ module MobileESPConverted
270
295
  end
271
296
 
272
297
  =begin
273
- *
298
+ *
274
299
  * Return whether the device is a generic, less-capable mobile device.
275
300
  * @return is_tier_generic_mobile
276
301
 
@@ -280,41 +305,36 @@ module MobileESPConverted
280
305
  end
281
306
 
282
307
  =begin
283
- *
308
+ *
284
309
  * Initialize Key Stored Values.
285
310
 
286
311
  =end
287
312
  def init_device_scan()
288
313
 
289
- @is_webkit = detect_webkit()
290
- @is_iphone = detect_iphone()
291
- @is_android = detect_android()
314
+ @is_webkit = detect_webkit()
315
+ @is_iphone = detect_iphone()
316
+ @is_android = detect_android()
292
317
  @is_android_phone = detect_android_phone()
293
318
 
294
319
 
295
320
  @is_mobile_phone = detect_mobile_quick()
296
- @is_tier_tablet = detect_tier_tablet()
297
- @is_tier_iphone = detect_tier_iphone()
321
+ @is_tier_tablet = detect_tier_tablet()
322
+ @is_tier_iphone = detect_tier_iphone()
298
323
 
299
324
 
300
- @is_tier_rich_css = detect_tier_rich_css()
325
+ @is_tier_rich_css = detect_tier_rich_css()
301
326
  @is_tier_generic_mobile = detect_tier_other_phones()
302
327
 
303
328
  @init_completed = true
304
329
  end
305
330
 
306
331
  =begin
307
- *
332
+ *
308
333
  * Detects if the current device is an iPhone.
309
334
  * @return detection of an iPhone
310
335
 
311
336
  =end
312
337
  def detect_iphone()
313
- if ((@init_completed == true) ||
314
- (@is_iphone == true))
315
- return @is_iphone
316
- end
317
-
318
338
 
319
339
  if (user_agent.include?(DEVICE_IPHONE) &&
320
340
  !detect_ipad() &&
@@ -325,7 +345,7 @@ module MobileESPConverted
325
345
  end
326
346
 
327
347
  =begin
328
- *
348
+ *
329
349
  * Detects if the current device is an iPod Touch.
330
350
  * @return detection of an iPod Touch
331
351
 
@@ -338,7 +358,7 @@ module MobileESPConverted
338
358
  end
339
359
 
340
360
  =begin
341
- *
361
+ *
342
362
  * Detects if the current device is an iPad tablet.
343
363
  * @return detection of an iPad
344
364
 
@@ -351,7 +371,7 @@ module MobileESPConverted
351
371
  end
352
372
 
353
373
  =begin
354
- *
374
+ *
355
375
  * Detects if the current device is an iPhone or iPod Touch.
356
376
  * @return detection of an iPhone or iPod Touch
357
377
 
@@ -365,7 +385,7 @@ module MobileESPConverted
365
385
  end
366
386
 
367
387
  =begin
368
- *
388
+ *
369
389
  * Detects *any* iOS device: iPhone, iPod Touch, iPad.
370
390
  * @return detection of an Apple iOS device
371
391
 
@@ -379,31 +399,23 @@ module MobileESPConverted
379
399
 
380
400
 
381
401
  =begin
382
- *
402
+ *
383
403
  * Detects *any* Android OS-based device: phone, tablet, and multi-media player.
384
404
  * Also detects Google TV.
385
405
  * @return detection of an Android device
386
406
 
387
407
  =end
388
408
  def detect_android()
389
- if ((@init_completed == true) ||
390
- (@is_android == true))
391
- return @is_android
392
- end
393
-
394
409
  if ((user_agent.include?(DEVICE_ANDROID)) ||
395
410
  detect_google_t_v())
396
411
  return true
397
412
  end
398
413
 
399
- if (user_agent.include?(DEVICE_HTC_FLYER))
400
- return true
401
- end
402
414
  return false
403
415
  end
404
416
 
405
417
  =begin
406
- *
418
+ *
407
419
  * Detects if the current device is a (small-ish) Android OS-based device
408
420
  * used for calling and/or multi-media (like a Samsung Galaxy Player).
409
421
  * Google says these devices will have 'Android' AND 'mobile' in user agent.
@@ -412,27 +424,26 @@ module MobileESPConverted
412
424
 
413
425
  =end
414
426
  def detect_android_phone()
415
- if ((@init_completed == true) ||
416
- (@is_android_phone == true))
417
- return @is_android_phone
418
- end
419
427
 
420
- if (detect_android() && (user_agent.include?(MOBILE)))
421
- return true
428
+ if (!detect_android())
429
+ return false
422
430
  end
423
431
 
424
- if (detect_opera_android_phone())
432
+
433
+ if (user_agent.include?(MOBILE))
425
434
  return true
426
435
  end
427
436
 
428
- if (user_agent.include?(DEVICE_HTC_FLYER))
437
+
438
+ if (detect_opera_mobile())
429
439
  return true
430
440
  end
441
+
431
442
  return false
432
443
  end
433
444
 
434
445
  =begin
435
- *
446
+ *
436
447
  * Detects if the current device is a (self-reported) Android tablet.
437
448
  * Google says these devices will have 'Android' and NOT 'mobile' in their user agent.
438
449
  * @return detection of an Android tablet
@@ -449,10 +460,6 @@ module MobileESPConverted
449
460
  return false
450
461
  end
451
462
 
452
- if (user_agent.include?(DEVICE_HTC_FLYER))
453
- return false
454
- end
455
-
456
463
 
457
464
  if ((user_agent.include?(MOBILE)))
458
465
  return false
@@ -462,7 +469,7 @@ module MobileESPConverted
462
469
  end
463
470
 
464
471
  =begin
465
- *
472
+ *
466
473
  * Detects if the current device is an Android OS-based device and
467
474
  * the browser is based on WebKit.
468
475
  * @return detection of an Android WebKit browser
@@ -476,7 +483,7 @@ module MobileESPConverted
476
483
  end
477
484
 
478
485
  =begin
479
- *
486
+ *
480
487
  * Detects if the current device is a GoogleTV.
481
488
  * @return detection of GoogleTV
482
489
 
@@ -489,40 +496,64 @@ module MobileESPConverted
489
496
  end
490
497
 
491
498
  =begin
492
- *
499
+ *
493
500
  * Detects if the current browser is based on WebKit.
494
501
  * @return detection of a WebKit browser
495
502
 
496
503
  =end
497
504
  def detect_webkit()
498
- if ((@init_completed == true) ||
499
- (@is_webkit == true))
500
- return @is_webkit
501
- end
502
-
503
505
  if (user_agent.include?(ENGINE_WEB_KIT))
504
506
  return true
505
507
  end
506
508
  return false
507
509
  end
508
510
 
511
+ =begin
512
+ *
513
+ * Detects if the current browser is the Symbian S60 Open Source Browser.
514
+ * @return detection of Symbian S60 Browser
515
+
516
+ =end
517
+ def detect_s60_oss_browser()
518
+
519
+ if (detect_webkit() && (user_agent.include?(DEVICE_SYMBIAN) || user_agent.include?(DEVICE_S60)))
520
+ return true
521
+ end
522
+ return false
523
+ end
509
524
 
510
525
  =begin
526
+ *
511
527
  *
512
- * Detects if the current browser is EITHER a Windows Phone 7.x OR 8 device
528
+ * Detects if the current device is any Symbian OS-based device,
529
+ * including older S60, Series 70, Series 80, Series 90, and UIQ,
530
+ * or other browsers running on these devices.
531
+ * @return detection of SymbianOS
532
+
533
+ =end
534
+ def detect_symbian_o_s()
535
+ 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))
536
+ return true
537
+ end
538
+ return false
539
+ end
540
+
541
+ =begin
542
+ *
543
+ * Detects if the current browser is a Windows Phone 7.x, 8, or 10 device
513
544
  * @return detection of Windows Phone 7.x OR 8
514
545
 
515
546
  =end
516
547
  def detect_windows_phone()
517
- if (detect_windows_phone7() || detect_windows_phone8())
548
+ if (detect_windows_phone7() || detect_windows_phone8() || detect_windows_phone10())
518
549
  return true
519
550
  end
520
551
  return false
521
552
  end
522
553
 
523
554
  =begin
524
- *
525
- * Detects a Windows Phone 7.x device (in mobile browsing mode).
555
+ *
556
+ * Detects a Windows Phone 7 device (in mobile browsing mode).
526
557
  * @return detection of Windows Phone 7
527
558
 
528
559
  =end
@@ -534,7 +565,7 @@ module MobileESPConverted
534
565
  end
535
566
 
536
567
  =begin
537
- *
568
+ *
538
569
  * Detects a Windows Phone 8 device (in mobile browsing mode).
539
570
  * @return detection of Windows Phone 8
540
571
 
@@ -547,7 +578,20 @@ module MobileESPConverted
547
578
  end
548
579
 
549
580
  =begin
550
- *
581
+ *
582
+ * Detects a Windows Phone 10 device (in mobile browsing mode).
583
+ * @return detection of Windows Phone 10
584
+
585
+ =end
586
+ def detect_windows_phone10()
587
+ if (user_agent.include?(DEVICE_WIN_PHONE10))
588
+ return true
589
+ end
590
+ return false
591
+ end
592
+
593
+ =begin
594
+ *
551
595
  * Detects if the current browser is a Windows Mobile device.
552
596
  * Excludes Windows Phone 7.x and 8 devices.
553
597
  * Focuses on Windows Mobile 6.xx and earlier.
@@ -560,6 +604,7 @@ module MobileESPConverted
560
604
  end
561
605
 
562
606
 
607
+
563
608
  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)))
564
609
  return true
565
610
  end
@@ -573,9 +618,8 @@ module MobileESPConverted
573
618
  return false
574
619
  end
575
620
 
576
-
577
621
  =begin
578
- *
622
+ *
579
623
  * Detects if the current browser is any BlackBerry.
580
624
  * Includes BB10 OS, but excludes the PlayBook.
581
625
  * @return detection of Blackberry
@@ -595,7 +639,7 @@ module MobileESPConverted
595
639
  end
596
640
 
597
641
  =begin
598
- *
642
+ *
599
643
  * Detects if the current browser is a BlackBerry 10 OS phone.
600
644
  * Excludes tablets.
601
645
  * @return detection of a Blackberry 10 device
@@ -610,7 +654,7 @@ module MobileESPConverted
610
654
  end
611
655
 
612
656
  =begin
613
- *
657
+ *
614
658
  * Detects if the current browser is on a BlackBerry tablet device.
615
659
  * Example: PlayBook
616
660
  * @return detection of a Blackberry Tablet
@@ -624,7 +668,7 @@ module MobileESPConverted
624
668
  end
625
669
 
626
670
  =begin
627
- *
671
+ *
628
672
  * Detects if the current browser is a BlackBerry device AND uses a
629
673
  * WebKit-based browser. These are signatures for the new BlackBerry OS 6.
630
674
  * Examples: Torch. Includes the Playbook.
@@ -632,14 +676,15 @@ module MobileESPConverted
632
676
 
633
677
  =end
634
678
  def detect_black_berry_web_kit()
635
- if (detect_black_berry() && detect_webkit())
679
+ if (detect_black_berry() &&
680
+ user_agent.include?(ENGINE_WEB_KIT))
636
681
  return true
637
682
  end
638
683
  return false
639
684
  end
640
685
 
641
686
  =begin
642
- *
687
+ *
643
688
  * Detects if the current browser is a BlackBerry Touch
644
689
  * device, such as the Storm, Torch, and Bold Touch. Excludes the Playbook.
645
690
  * @return detection of a Blackberry touchscreen device
@@ -650,14 +695,14 @@ module MobileESPConverted
650
695
  (user_agent.include?(DEVICE_B_B_STORM) ||
651
696
  user_agent.include?(DEVICE_B_B_TORCH) ||
652
697
  user_agent.include?(DEVICE_B_B_BOLD_TOUCH) ||
653
- user_agent.include?(DEVICE_B_B_CURVE_TOUCH)) )
698
+ user_agent.include?(DEVICE_B_B_CURVE_TOUCH) ))
654
699
  return true
655
700
  end
656
701
  return false
657
702
  end
658
703
 
659
704
  =begin
660
- *
705
+ *
661
706
  * Detects if the current browser is a BlackBerry device AND
662
707
  * has a more capable recent browser. Excludes the Playbook.
663
708
  * Examples, Storm, Bold, Tour, Curve2
@@ -682,7 +727,7 @@ module MobileESPConverted
682
727
  end
683
728
 
684
729
  =begin
685
- *
730
+ *
686
731
  * Detects if the current browser is a BlackBerry device AND
687
732
  * has an older, less capable browser.
688
733
  * Examples: Pearl, 8800, Curve1
@@ -702,59 +747,27 @@ module MobileESPConverted
702
747
  end
703
748
  end
704
749
 
705
-
706
750
  =begin
707
- *
708
- * Detects if the current browser is the Symbian S60 Open Source Browser.
709
- * @return detection of Symbian S60 Browser
710
-
711
- =end
712
- def detect_s60_oss_browser()
713
-
714
- if (detect_webkit() && (user_agent.include?(DEVICE_SYMBIAN) || user_agent.include?(DEVICE_S60)))
715
- return true
716
- end
717
- return false
718
- end
719
-
720
- =begin
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
727
-
728
- =end
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))
731
- return true
732
- end
733
- return false
734
- end
735
-
736
-
737
- =begin
738
- *
751
+ *
739
752
  * Detects if the current browser is on a PalmOS device.
740
753
  * @return detection of a PalmOS device
741
754
 
742
755
  =end
743
756
  def detect_palm_o_s()
744
757
 
745
- if (detect_palm_web_o_s())
746
- return false
747
- end
748
-
749
-
750
758
  if (user_agent.include?(DEVICE_PALM) || user_agent.include?(ENGINE_BLAZER) || user_agent.include?(ENGINE_XIINO))
751
- return true
759
+
760
+ if (detect_palm_web_o_s())
761
+ return false
762
+ else
763
+ return true
764
+ end
752
765
  end
753
766
  return false
754
767
  end
755
768
 
756
769
  =begin
757
- *
770
+ *
758
771
  * Detects if the current browser is on a Palm device
759
772
  * running the new WebOS.
760
773
  * @return detection of a Palm WebOS device
@@ -768,7 +781,7 @@ module MobileESPConverted
768
781
  end
769
782
 
770
783
  =begin
771
- *
784
+ *
772
785
  * Detects if the current browser is on an HP tablet running WebOS.
773
786
  * @return detection of an HP WebOS tablet
774
787
 
@@ -782,46 +795,34 @@ module MobileESPConverted
782
795
  end
783
796
 
784
797
  =begin
785
- *
786
- * Detects Opera Mobile or Opera Mini.
787
- * @return detection of an Opera browser for a mobile device
788
-
789
- =end
790
- def detect_opera_mobile()
791
- if (user_agent.include?(ENGINE_OPERA) && (user_agent.include?(MINI) || user_agent.include?(MOBI)))
792
- return true
793
- end
794
- return false
795
- end
796
-
797
- =begin
798
- *
799
- * Detects Opera Mobile on an Android phone.
800
- * @return detection of an Opera browser on an Android phone
798
+ *
799
+ * Detects if the current browser is on a WebOS smart TV.
800
+ * @return detection of a WebOS smart TV
801
801
 
802
802
  =end
803
- def detect_opera_android_phone()
804
- if (user_agent.include?(ENGINE_OPERA) && (user_agent.include?(DEVICE_ANDROID) && user_agent.include?(MOBI)))
803
+ def detect_web_o_s_t_v()
804
+ if (user_agent.include?(DEVICE_WEB_O_STV) &&
805
+ user_agent.include?(SMART_T_V2))
805
806
  return true
806
807
  end
807
808
  return false
808
809
  end
809
810
 
810
811
  =begin
811
- *
812
- * Detects Opera Mobile on an Android tablet.
813
- * @return detection of an Opera browser on an Android tablet
812
+ *
813
+ * Detects Opera Mobile or Opera Mini.
814
+ * @return detection of an Opera browser for a mobile device
814
815
 
815
816
  =end
816
- def detect_opera_android_tablet()
817
- if (user_agent.include?(ENGINE_OPERA) && (user_agent.include?(DEVICE_ANDROID) && user_agent.include?(DEVICE_TABLET)))
817
+ def detect_opera_mobile()
818
+ if (user_agent.include?(ENGINE_OPERA) && (user_agent.include?(MINI) || user_agent.include?(MOBI)))
818
819
  return true
819
820
  end
820
821
  return false
821
822
  end
822
823
 
823
824
  =begin
824
- *
825
+ *
825
826
  * Detects if the current device is an Amazon Kindle (eInk devices only).
826
827
  * Note: For the Kindle Fire, use the normal Android methods.
827
828
  * @return detection of a Kindle
@@ -836,7 +837,7 @@ module MobileESPConverted
836
837
  end
837
838
 
838
839
  =begin
839
- *
840
+ *
840
841
  * Detects if the current Amazon device is using the Silk Browser.
841
842
  * Note: Typically used by the the Kindle Fire.
842
843
  * @return detection of an Amazon Kindle Fire in Silk mode.
@@ -850,7 +851,7 @@ module MobileESPConverted
850
851
  end
851
852
 
852
853
  =begin
853
- *
854
+ *
854
855
  * Detects if the current browser is a
855
856
  * Garmin Nuvifone.
856
857
  * @return detection of a Garmin Nuvifone
@@ -864,8 +865,8 @@ module MobileESPConverted
864
865
  end
865
866
 
866
867
  =begin
867
- *
868
- * Detects a device running the Bada smartphone OS from Samsung.
868
+ *
869
+ * Detects a device running the Bada OS from Samsung.
869
870
  * @return detection of a Bada device
870
871
 
871
872
  =end
@@ -877,20 +878,35 @@ module MobileESPConverted
877
878
  end
878
879
 
879
880
  =begin
880
- *
881
+ *
881
882
  * Detects a device running the Tizen smartphone OS.
882
883
  * @return detection of a Tizen device
883
884
 
884
885
  =end
885
886
  def detect_tizen()
886
- if (user_agent.include?(DEVICE_TIZEN))
887
+ if (user_agent.include?(DEVICE_TIZEN) &&
888
+ user_agent.include?(MOBILE))
887
889
  return true
888
890
  end
889
891
  return false
890
892
  end
891
893
 
892
894
  =begin
893
- *
895
+ *
896
+ * Detects if the current browser is on a Tizen smart TV.
897
+ * @return detection of a Tizen smart TV
898
+
899
+ =end
900
+ def detect_tizen_t_v()
901
+ if (user_agent.include?(DEVICE_TIZEN) &&
902
+ user_agent.include?(SMART_T_V1))
903
+ return true
904
+ end
905
+ return false
906
+ end
907
+
908
+ =begin
909
+ *
894
910
  * Detects a device running the Meego OS.
895
911
  * @return detection of a Meego device
896
912
 
@@ -903,7 +919,143 @@ module MobileESPConverted
903
919
  end
904
920
 
905
921
  =begin
906
- *
922
+ *
923
+ * Detects a phone running the Meego OS.
924
+ * @return detection of a Meego phone
925
+
926
+ =end
927
+ def detect_meego_phone()
928
+ if (user_agent.include?(DEVICE_MEEGO) &&
929
+ user_agent.include?(MOBI))
930
+ return true
931
+ end
932
+ return false
933
+ end
934
+
935
+ =begin
936
+ *
937
+ * Detects a mobile device (probably) running the Firefox OS.
938
+ * @return detection of a Firefox OS mobile device
939
+
940
+ =end
941
+ def detect_firefox_o_s()
942
+ if (detect_firefox_o_s_phone() || detect_firefox_o_s_tablet())
943
+ return true
944
+ end
945
+
946
+ return false
947
+ end
948
+
949
+ =begin
950
+ *
951
+ * Detects a phone (probably) running the Firefox OS.
952
+ * @return detection of a Firefox OS phone
953
+
954
+ =end
955
+ def detect_firefox_o_s_phone()
956
+
957
+ if (detect_ios() || detect_android() || detect_sailfish())
958
+ return false
959
+ end
960
+
961
+ if ((user_agent.include?(ENGINE_FIREFOX)) && (user_agent.include?(MOBILE)))
962
+ return true
963
+ end
964
+
965
+ return false
966
+ end
967
+
968
+ =begin
969
+ *
970
+ * Detects a tablet (probably) running the Firefox OS.
971
+ * @return detection of a Firefox OS tablet
972
+
973
+ =end
974
+ def detect_firefox_o_s_tablet()
975
+
976
+ if (detect_ios() || detect_android() || detect_sailfish())
977
+ return false
978
+ end
979
+
980
+ if ((user_agent.include?(ENGINE_FIREFOX)) && (user_agent.include?(DEVICE_TABLET)))
981
+ return true
982
+ end
983
+
984
+ return false
985
+ end
986
+
987
+ =begin
988
+ *
989
+ * Detects a device running the Sailfish OS.
990
+ * @return detection of a Sailfish device
991
+
992
+ =end
993
+ def detect_sailfish()
994
+ if (user_agent.include?(DEVICE_SAILFISH))
995
+ return true
996
+ end
997
+ return false
998
+ end
999
+
1000
+ =begin
1001
+ *
1002
+ * Detects a phone running the Sailfish OS.
1003
+ * @return detection of a Sailfish phone
1004
+
1005
+ =end
1006
+ def detect_sailfish_phone()
1007
+ if (detect_sailfish() && (user_agent.include?(MOBILE)))
1008
+ return true
1009
+ end
1010
+
1011
+ return false
1012
+ end
1013
+
1014
+ =begin
1015
+ *
1016
+ * Detects a mobile device running the Ubuntu Mobile OS.
1017
+ * @return detection of an Ubuntu Mobile OS mobile device
1018
+
1019
+ =end
1020
+ def detect_ubuntu()
1021
+ if (detect_ubuntu_phone() || detect_ubuntu_tablet())
1022
+ return true
1023
+ end
1024
+
1025
+ return false
1026
+ end
1027
+
1028
+ =begin
1029
+ *
1030
+ * Detects a phone running the Ubuntu Mobile OS.
1031
+ * @return detection of an Ubuntu Mobile OS phone
1032
+
1033
+ =end
1034
+ def detect_ubuntu_phone()
1035
+ if ((user_agent.include?(DEVICE_UBUNTU)) && (user_agent.include?(MOBILE)))
1036
+ return true
1037
+ end
1038
+
1039
+ return false
1040
+ end
1041
+
1042
+ =begin
1043
+ *
1044
+ * Detects a tablet running the Ubuntu Mobile OS.
1045
+ * @return detection of an Ubuntu Mobile OS tablet
1046
+
1047
+ =end
1048
+ def detect_ubuntu_tablet()
1049
+ if ((user_agent.include?(DEVICE_UBUNTU)) && (user_agent.include?(DEVICE_TABLET)))
1050
+ return true
1051
+ end
1052
+
1053
+ return false
1054
+ end
1055
+
1056
+
1057
+ =begin
1058
+ *
907
1059
  * Detects the Danger Hiptop device.
908
1060
  * @return detection of a Danger Hiptop
909
1061
 
@@ -916,7 +1068,7 @@ module MobileESPConverted
916
1068
  end
917
1069
 
918
1070
  =begin
919
- *
1071
+ *
920
1072
  * Detects if the current browser is a Sony Mylo device.
921
1073
  * @return detection of a Sony Mylo device
922
1074
 
@@ -929,7 +1081,7 @@ module MobileESPConverted
929
1081
  end
930
1082
 
931
1083
  =begin
932
- *
1084
+ *
933
1085
  * Detects if the current device is on one of the Maemo-based Nokia Internet Tablets.
934
1086
  * @return detection of a Maemo OS tablet
935
1087
 
@@ -944,7 +1096,7 @@ module MobileESPConverted
944
1096
  end
945
1097
 
946
1098
  =begin
947
- *
1099
+ *
948
1100
  * Detects if the current device is an Archos media player/Internet tablet.
949
1101
  * @return detection of an Archos media player
950
1102
 
@@ -957,7 +1109,7 @@ module MobileESPConverted
957
1109
  end
958
1110
 
959
1111
  =begin
960
- *
1112
+ *
961
1113
  * Detects if the current device is an Internet-capable game console.
962
1114
  * Includes many handheld consoles.
963
1115
  * @return detection of any Game Console
@@ -971,7 +1123,7 @@ module MobileESPConverted
971
1123
  end
972
1124
 
973
1125
  =begin
974
- *
1126
+ *
975
1127
  * Detects if the current device is a Sony Playstation.
976
1128
  * @return detection of Sony Playstation
977
1129
 
@@ -984,7 +1136,7 @@ module MobileESPConverted
984
1136
  end
985
1137
 
986
1138
  =begin
987
- *
1139
+ *
988
1140
  * Detects if the current device is a handheld gaming device with
989
1141
  * a touchscreen and modern iPhone-class browser. Includes the Playstation Vita.
990
1142
  * @return detection of a handheld gaming device
@@ -999,7 +1151,7 @@ module MobileESPConverted
999
1151
  end
1000
1152
 
1001
1153
  =begin
1002
- *
1154
+ *
1003
1155
  * Detects if the current device is a Nintendo game device.
1004
1156
  * @return detection of Nintendo
1005
1157
 
@@ -1012,7 +1164,7 @@ module MobileESPConverted
1012
1164
  end
1013
1165
 
1014
1166
  =begin
1015
- *
1167
+ *
1016
1168
  * Detects if the current device is a Microsoft Xbox.
1017
1169
  * @return detection of Xbox
1018
1170
 
@@ -1025,7 +1177,7 @@ module MobileESPConverted
1025
1177
  end
1026
1178
 
1027
1179
  =begin
1028
- *
1180
+ *
1029
1181
  * Detects whether the device is a Brew-powered device.
1030
1182
  * @return detection of a Brew device
1031
1183
 
@@ -1038,7 +1190,7 @@ module MobileESPConverted
1038
1190
  end
1039
1191
 
1040
1192
  =begin
1041
- *
1193
+ *
1042
1194
  * Detects whether the device supports WAP or WML.
1043
1195
  * @return detection of a WAP- or WML-capable device
1044
1196
 
@@ -1051,7 +1203,7 @@ module MobileESPConverted
1051
1203
  end
1052
1204
 
1053
1205
  =begin
1054
- *
1206
+ *
1055
1207
  * Detects if the current device supports MIDP, a mobile Java technology.
1056
1208
  * @return detection of a MIDP mobile Java-capable device
1057
1209
 
@@ -1064,8 +1216,13 @@ module MobileESPConverted
1064
1216
  end
1065
1217
 
1066
1218
 
1219
+
1220
+
1221
+
1222
+
1223
+
1067
1224
  =begin
1068
- *
1225
+ *
1069
1226
  * Check to see whether the device is any device
1070
1227
  * in the 'smartphone' category.
1071
1228
  * @return detection of a general smartphone device
@@ -1073,11 +1230,11 @@ module MobileESPConverted
1073
1230
  =end
1074
1231
  def detect_smartphone()
1075
1232
 
1076
- return (detect_tier_iphone() || detect_s60_oss_browser() || detect_symbian_o_s() || detect_windows_mobile() || detect_black_berry() || detect_palm_o_s())
1233
+ return (detect_tier_iphone() || detect_s60_oss_browser() || detect_symbian_o_s() || detect_windows_mobile() || detect_black_berry() || detect_meego_phone() || detect_palm_o_s())
1077
1234
  end
1078
1235
 
1079
1236
  =begin
1080
- *
1237
+ *
1081
1238
  * Detects if the current device is a mobile device.
1082
1239
  * This method catches most of the popular modern devices.
1083
1240
  * Excludes Apple iPads and other modern tablets.
@@ -1086,43 +1243,33 @@ module MobileESPConverted
1086
1243
  =end
1087
1244
  def detect_mobile_quick()
1088
1245
 
1089
- if (detect_tier_tablet())
1246
+ if (is_tier_tablet)
1090
1247
  return false
1091
1248
  end
1092
1249
 
1093
- if ((init_completed == true) ||
1094
- (is_mobile_phone == true))
1095
- return is_mobile_phone
1096
- end
1097
-
1098
-
1099
1250
  if (detect_smartphone())
1100
1251
  return true
1101
1252
  end
1102
1253
 
1103
- if (detect_wap_wml() || detect_brew_device() || detect_opera_mobile())
1104
- return true
1105
- end
1106
1254
 
1107
- if ((user_agent.include?(ENGINE_OBIGO)) || (user_agent.include?(ENGINE_NETFRONT)) || (user_agent.include?(ENGINE_UP_BROWSER)) || (user_agent.include?(ENGINE_OPEN_WEB)))
1255
+ if (user_agent.include?(MOBILE))
1108
1256
  return true
1109
1257
  end
1110
1258
 
1111
- if (detect_danger_hiptop() || detect_midp_capable() || detect_maemo_tablet() || detect_archos())
1259
+ if (detect_opera_mobile())
1112
1260
  return true
1113
1261
  end
1114
1262
 
1115
- if ((user_agent.include?(DEVICE_PDA)) &&
1116
- (!user_agent.include?(DIS_UPDATE)))
1263
+
1264
+ if (detect_kindle() || detect_amazon_silk())
1117
1265
  return true
1118
1266
  end
1119
1267
 
1120
- if (user_agent.include?(MOBILE))
1268
+ if (detect_wap_wml() || detect_midp_capable() || detect_brew_device())
1121
1269
  return true
1122
1270
  end
1123
1271
 
1124
-
1125
- if (detect_kindle() || detect_amazon_silk())
1272
+ if ((user_agent.include?(ENGINE_NETFRONT)) || (user_agent.include?(ENGINE_UP_BROWSER)))
1126
1273
  return true
1127
1274
  end
1128
1275
 
@@ -1130,7 +1277,7 @@ module MobileESPConverted
1130
1277
  end
1131
1278
 
1132
1279
  =begin
1133
- *
1280
+ *
1134
1281
  * The longer and more thorough way to detect for a mobile device.
1135
1282
  * Will probably detect most feature phones,
1136
1283
  * smartphone-class devices, Internet Tablets,
@@ -1141,31 +1288,21 @@ module MobileESPConverted
1141
1288
 
1142
1289
  =end
1143
1290
  def detect_mobile_long()
1144
- if (detect_mobile_quick() || detect_game_console() || detect_sony_mylo())
1291
+ if (detect_mobile_quick() || detect_game_console())
1145
1292
  return true
1146
1293
  end
1147
1294
 
1148
-
1149
- if (user_agent.include?(UPLINK))
1150
- return true
1151
- end
1152
- if (user_agent.include?(MANU_SONY_ERICSSON))
1153
- return true
1154
- end
1155
- if (user_agent.include?(MANUERICSSON))
1156
- return true
1157
- end
1158
- if (user_agent.include?(MANU_SAMSUNG1))
1295
+ if (detect_danger_hiptop() || detect_maemo_tablet() || detect_sony_mylo() || detect_archos())
1159
1296
  return true
1160
1297
  end
1161
1298
 
1162
- if (user_agent.include?(SVC_DOCOMO))
1163
- return true
1164
- end
1165
- if (user_agent.include?(SVC_KDDI))
1299
+ if ((user_agent.include?(DEVICE_PDA)) &&
1300
+ (!user_agent.include?(DIS_UPDATE)))
1166
1301
  return true
1167
1302
  end
1168
- if (user_agent.include?(SVC_VODAFONE))
1303
+
1304
+
1305
+ if ((user_agent.include?(UPLINK)) || (user_agent.include?(ENGINE_OPEN_WEB)) || (user_agent.include?(MANU_SAMSUNG1)) || (user_agent.include?(MANU_SONY_ERICSSON)) || (user_agent.include?(MANUERICSSON)) || (user_agent.include?(SVC_DOCOMO)) || (user_agent.include?(SVC_KDDI)) || (user_agent.include?(SVC_VODAFONE)))
1169
1306
  return true
1170
1307
  end
1171
1308
 
@@ -1173,8 +1310,11 @@ module MobileESPConverted
1173
1310
  end
1174
1311
 
1175
1312
 
1313
+
1314
+
1315
+
1176
1316
  =begin
1177
- *
1317
+ *
1178
1318
  * The quick way to detect for a tier of devices.
1179
1319
  * This method detects for the new generation of
1180
1320
  * HTML 5 capable, larger screen tablets.
@@ -1183,19 +1323,14 @@ module MobileESPConverted
1183
1323
 
1184
1324
  =end
1185
1325
  def detect_tier_tablet()
1186
- if ((@init_completed == true) ||
1187
- (@is_tier_tablet == true))
1188
- return @is_tier_tablet
1189
- end
1190
-
1191
- if (detect_ipad() || detect_android_tablet() || detect_black_berry_tablet() || detect_web_o_s_tablet())
1326
+ if (detect_ipad() || detect_android_tablet() || detect_black_berry_tablet() || detect_firefox_o_s_tablet() || detect_ubuntu_tablet() || detect_web_o_s_tablet())
1192
1327
  return true
1193
1328
  end
1194
1329
  return false
1195
1330
  end
1196
1331
 
1197
1332
  =begin
1198
- *
1333
+ *
1199
1334
  * The quick way to detect for a tier of devices.
1200
1335
  * This method detects for devices which can
1201
1336
  * display iPhone-optimized web content.
@@ -1204,19 +1339,14 @@ module MobileESPConverted
1204
1339
 
1205
1340
  =end
1206
1341
  def detect_tier_iphone()
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())
1342
+ 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_firefox_o_s_phone() || detect_sailfish_phone() || detect_ubuntu_phone() || detect_gaming_handheld())
1213
1343
  return true
1214
1344
  end
1215
1345
  return false
1216
1346
  end
1217
1347
 
1218
1348
  =begin
1219
- *
1349
+ *
1220
1350
  * The quick way to detect for a tier of devices.
1221
1351
  * This method detects for devices which are likely to be capable
1222
1352
  * of viewing CSS content optimized for the iPhone,
@@ -1226,11 +1356,6 @@ module MobileESPConverted
1226
1356
 
1227
1357
  =end
1228
1358
  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
-
1234
1359
  result = false
1235
1360
 
1236
1361
 
@@ -1240,6 +1365,8 @@ module MobileESPConverted
1240
1365
  if (!detect_tier_iphone() && !detect_kindle())
1241
1366
 
1242
1367
 
1368
+
1369
+
1243
1370
  if (detect_webkit() || detect_s60_oss_browser() || detect_black_berry_high() || detect_windows_mobile() || user_agent.include?(ENGINE_TELECA_Q))
1244
1371
  result= true
1245
1372
  end
@@ -1249,7 +1376,7 @@ module MobileESPConverted
1249
1376
  end
1250
1377
 
1251
1378
  =begin
1252
- *
1379
+ *
1253
1380
  * The quick way to detect for a tier of devices.
1254
1381
  * This method detects for all other types of phones,
1255
1382
  * but excludes the iPhone and RichCSS Tier devices.
@@ -1257,16 +1384,10 @@ module MobileESPConverted
1257
1384
 
1258
1385
  =end
1259
1386
  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
-
1265
1387
 
1266
1388
  if (detect_mobile_long() && !detect_tier_iphone() && !detect_tier_rich_css())
1267
1389
  return true
1268
1390
  end
1269
-
1270
1391
  return false
1271
1392
  end
1272
1393
  end