iOS: improve device model detection, enable minimap for new devices

master
Maksim 2020-10-22 22:47:12 +02:00
parent 7918471ad2
commit 1c39bb3fcf
4 changed files with 42 additions and 30 deletions

View File

@ -38,6 +38,10 @@ typedef NS_ENUM(NSInteger, DeviceVersion){
iPhone11Pro = 119,
iPhone11ProMax = 120,
iPhoneSE2Gen = 121,
iPhone12Mini = 122,
iPhone12 = 123,
iPhone12Pro = 124,
iPhone12ProMax = 125,
// iPad
iPad2 = 201,
@ -120,6 +124,10 @@ typedef NS_ENUM(NSInteger, DeviceVersion){
@"iPhone12,1" : @(iPhone11),
@"iPhone12,3" : @(iPhone11Pro),
@"iPhone12,5" : @(iPhone11ProMax),
@"iPhone13,1" : @(iPhone12Mini),
@"iPhone13,2" : @(iPhone12),
@"iPhone13,3" : @(iPhone12Pro),
@"iPhone13,4" : @(iPhone12ProMax),
// iPad
@"iPad2,1" : @(iPad2),
@ -209,18 +217,16 @@ typedef NS_ENUM(NSInteger, DeviceVersion){
#define SDVersion4and7Inch (([SDVersion deviceVersion] == iPhone6) || ([SDVersion deviceVersion] == iPhone6S) || ([SDVersion deviceVersion] == iPhone7) || ([SDVersion deviceVersion] == iPhone8) || ([SDVersion deviceVersion] == iPhoneSE2Gen))
#define SDVersion5and5Inch (([SDVersion deviceVersion] == iPhone6Plus) || ([SDVersion deviceVersion] == iPhone6SPlus) || ([SDVersion deviceVersion] == iPhone7Plus) || ([SDVersion deviceVersion] == iPhone8Plus))
#define SDVersion5and5Inch (([SDVersion deviceVersion] == iPhone6Plus) || ([SDVersion deviceVersion] == iPhone6SPlus) || ([SDVersion deviceVersion] == iPhone7Plus) || ([SDVersion deviceVersion] == iPhone8Plus) | ([SDVersion deviceVersion] == iPhone12Mini))
#define SDVersion5and8Inch (([SDVersion deviceVersion] == iPhoneX) || ([SDVersion deviceVersion] == iPhoneXS) || ([SDVersion deviceVersion] == iPhone11Pro))
#define SDVersion6and1Inch (([SDVersion deviceVersion] == iPhoneXR) || ([SDVersion deviceVersion] == iPhone11))
#define SDVersion6and1Inch (([SDVersion deviceVersion] == iPhoneXR) || ([SDVersion deviceVersion] == iPhone11) | ([SDVersion deviceVersion] == iPhone12) | ([SDVersion deviceVersion] == iPhone12Pro))
#define SDVersion6and5Inch (([SDVersion deviceVersion] == iPhoneXSMax) || ([SDVersion deviceVersion] == iPhone11ProMax))
#define SDVersion6and5Inch (([SDVersion deviceVersion] == iPhoneXSMax) || ([SDVersion deviceVersion] == iPhone11ProMax) | ([SDVersion deviceVersion] == iPhone12ProMax))
#define SDVersion7and9Inch (([SDVersion deviceVersion] == iPadMini) || ([SDVersion deviceVersion] == iPadMini2) | ([SDVersion deviceVersion] == iPadMini3) | ([SDVersion deviceVersion] == iPadMini4) | ([SDVersion deviceVersion] == iPadMini5))
#define SDVersion11Inch (([SDVersion deviceVersion] == iPadPro11Inch) || ([SDVersion deviceVersion] == iPadPro11Inch2Gen) || ([SDVersion deviceVersion] == iPadAir4))
//#define SDVersion11Inch (([SDVersion deviceVersion] == iPadPro11Inch) || ([SDVersion deviceVersion] == iPadPro11Inch2Gen) || ([SDVersion deviceVersion] == iPadAir4))
#define SDVersion12and9Inch (([SDVersion deviceVersion] == iPadPro12Dot9Inch) || ([SDVersion deviceVersion] == iPadPro12Dot9Inch2Gen) || ([SDVersion deviceVersion] == iPadPro12Dot9Inch3Gen) || ([SDVersion deviceVersion] == iPadPro12Dot9Inch4Gen))
#define SDVersionHomeBar (SDVersion5and8Inch || SDVersion6and1Inch || SDVersion6and5Inch || SDVersion11Inch || SDVersion12and9Inch)
//#define SDVersion12and9Inch (([SDVersion deviceVersion] == iPadPro12Dot9Inch) || ([SDVersion deviceVersion] == iPadPro12Dot9Inch2Gen) || ([SDVersion deviceVersion] == iPadPro12Dot9Inch3Gen) || ([SDVersion deviceVersion] == iPadPro12Dot9Inch4Gen))

View File

@ -1,7 +1,7 @@
#!/bin/bash -e
. sdk.sh
FREETYPE_VERSION=2.10.3
FREETYPE_VERSION=2.10.4
if [ ! -d freetype-src ]; then
wget http://download.savannah.gnu.org/releases/freetype/freetype-$FREETYPE_VERSION.tar.gz

View File

@ -422,6 +422,7 @@ void set_default_settings(Settings *settings) {
arm = true;
#endif
if (arm) {
settings->setDefault("enable_minimap", "false");
#endif
settings->setDefault("client_unload_unused_data_timeout", "60");
settings->setDefault("client_mapblock_limit", "50");
@ -443,6 +444,7 @@ void set_default_settings(Settings *settings) {
// low settings
} else if (([SDVersion deviceVersion] == iPhone5S) || ([SDVersion deviceVersion] == iPhone6) || ([SDVersion deviceVersion] == iPhone6Plus) || ([SDVersion deviceVersion] == iPodTouch6Gen) ||
([SDVersion deviceVersion] == iPadMini2) || ([SDVersion deviceVersion] == iPadMini3)) {
settings->setDefault("enable_minimap", "false");
#endif
settings->setDefault("client_unload_unused_data_timeout", "120");
settings->setDefault("client_mapblock_limit", "200");
@ -465,6 +467,7 @@ void set_default_settings(Settings *settings) {
// medium settings
} else if (([SDVersion deviceVersion] == iPhone6S) || ([SDVersion deviceVersion] == iPhone6SPlus) || ([SDVersion deviceVersion] == iPhoneSE) || ([SDVersion deviceVersion] == iPhone7) || ([SDVersion deviceVersion] == iPhone7Plus) ||
([SDVersion deviceVersion] == iPadMini4) || ([SDVersion deviceVersion] == iPadAir)) {
settings->setDefault("enable_minimap", "false");
#endif
settings->setDefault("client_unload_unused_data_timeout", "300");
settings->setDefault("client_mapblock_limit", "300");
@ -518,7 +521,6 @@ void set_default_settings(Settings *settings) {
// iOS Settings
#ifdef __IOS__
settings->setDefault("enable_minimap", "false");
settings->setDefault("debug_log_level", "none");
settings->setDefault("password_save", "true");
@ -559,9 +561,14 @@ void set_default_settings(Settings *settings) {
}
// Settings for the Rounded Screen and Home Bar
if SDVersionHomeBar {
settings->setDefault("hud_move_upwards", "20");
settings->setDefault("round_screen", "35");
if (@available(iOS 11.0, *)) {
UIWindow *window = UIApplication.sharedApplication.keyWindow;
CGFloat bottomPadding = window.safeAreaInsets.bottom;
if (bottomPadding > 0) {
settings->setDefault("hud_move_upwards", "20");
settings->setDefault("round_screen", "35");
}
}
#endif // iOS
#endif

View File

@ -253,16 +253,16 @@ void TouchScreenGUI::init(ISimpleTextureSource *tsrc)
m_screensize.Y / 2 - button_size / 2),
L"drop", false);
// dirty implementation of positions for iOS
#ifndef __IOS__
s32 button_075 = 1;
const bool minimap = g_settings->getBool("enable_minimap");
double button_075 = 1;
s32 button_05 = 1;
s32 button_05b = 0;
#else
double button_075 = 0.75;
s32 button_05 = 2;
double button_05b = button_size * 0.5;
#endif
double button_05b = 0;
if (!minimap) {
button_075 = 0.75;
button_05 = 2;
button_05b = button_size * 0.5;
}
// init pause button [1]
initButton(escape_id,
@ -273,15 +273,14 @@ void TouchScreenGUI::init(ISimpleTextureSource *tsrc)
L"Exit", false);
// init minimap button [2]
#ifndef __IOS__
// iOS have memory leak with enabled minimap
initButton(minimap_id,
rect<s32>(m_screensize.X / 2 - button_size,
0,
m_screensize.X / 2,
button_size),
L"minimap", false);
#endif
if (minimap) {
initButton(minimap_id,
rect<s32>(m_screensize.X / 2 - button_size,
0,
m_screensize.X / 2,
button_size),
L"minimap", false);
}
// init rangeselect button [3]
initButton(range_id,