1
0
Fork 0
mirror of https://github.com/ninjamuffin99/Funkin.git synced 2025-08-30 18:34:51 +00:00
Funkin/source/funkin/util/DeviceUtil.hx
2025-06-27 06:44:35 +07:00

91 lines
2 KiB
Haxe

package funkin.util;
import lime.system.System;
class DeviceUtil
{
// --- iPhone Number Detection ---
#if ios
public static var iPhoneNumber(get, never):Int;
private static function get_iPhoneNumber():Int
{
// TODO: Add ipad detection gah
if (!model.startsWith("iPhone")) return 0; // Not an iPhone, must be an ipad!!
return switch (model)
{
// iPhone 12 Series
case "iPhone13,1": 12;
case "iPhone13,2": 12;
case "iPhone13,3": 12;
case "iPhone13,4": 12;
// iPhone 13 Series
case "iPhone14,4": 13;
case "iPhone14,5": 13;
case "iPhone14,2": 13;
case "iPhone14,3": 13;
// iPhone 14 Series
case "iPhone14,7": 14;
case "iPhone14,8": 14;
case "iPhone15,2": 14;
case "iPhone15,3": 14;
// iPhone 15 Series
case "iPhone15,4": 15;
case "iPhone15,5": 15;
case "iPhone16,1": 15;
case "iPhone16,2": 15;
// iPhone 16 Series
case "iPhone17,1": 16;
case "iPhone17,5": 16;
case "iPhone17,4": 16;
case "iPhone17,3": 16;
case "iPhone17,2": 16;
// Unknown or newer model fallback
default:
final parts = model.substr(6).split(",");
if (parts.length == 2)
{
final major = Std.parseInt(parts[0]);
final minor = Std.parseInt(parts[1]);
if (major != null && minor != null)
{
if (major > 17 || (major == 17 && minor > 5))
{
return 100; // future device
}
}
}
return 0; // obsolete or unknown
}
}
#end
// --- General Device Info ---
public static var osVersion(get, null):String;
private static function get_osVersion():String
{
return System.platformVersion;
}
public static var vendor(get, null):String;
private static function get_vendor():String
{
return System.deviceVendor;
}
public static var model(get, null):String;
private static function get_model():String
{
return System.deviceModel;
}
}