Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feature: ✨ Now you can switch between Ipad models on app settings. #150

Merged
merged 1 commit into from Aug 12, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
14 changes: 13 additions & 1 deletion PlayCover/Model/AppSettings.swift
Expand Up @@ -191,6 +191,17 @@ class AppSettings {
dictionary = dict
}
}
private static let ipadModel = "pc.ipadModel"
var ipadModel: String {
get {
dictionary[AppSettings.ipadModel] as? String ?? "iPad8,6"
}
set {
var dict = dictionary
dict[AppSettings.ipadModel] = newValue
dictionary = dict
}
}

private var allPrefs: [String: Any] {
get {
Expand Down Expand Up @@ -250,7 +261,8 @@ class AppSettings {
AppSettings.sensivity: 50,
AppSettings.gameWindowSizeHeight: 1080,
AppSettings.gameWindowSizeWidth: 1920,
AppSettings.enableWindowAutoSize: false
AppSettings.enableWindowAutoSize: false,
AppSettings.ipadModel: "iPad8,6"
]
}
}
Expand Down
7 changes: 7 additions & 0 deletions PlayCover/View/AppSettingsView.swift
Expand Up @@ -23,6 +23,7 @@ struct AppSettingsView: View {
@State var resetCompletedAlert: Bool = false
@State var selectedWindowSize: Int
@State var enableWindowAutoSize: Bool
@State var ipadModel: String
@Environment(\.presentationMode) var presentationMode

var body: some View {
Expand Down Expand Up @@ -82,6 +83,11 @@ struct AppSettingsView: View {
Text("60 Hz").tag(0)
Text("120 Hz").tag(1)
}).pickerStyle(SegmentedPickerStyle()).frame(maxWidth: 300).padding()
Picker(selection: $ipadModel, label: Text("settings.picker.ipadModel"), content: {
Text("1st Gen").tag("iPad6,7")
Text("3rd Gen").tag("iPad8,6")
Text("5th Gen").tag("iPad13,8")
}).pickerStyle(SegmentedPickerStyle()).frame(maxWidth: 300).padding()
if adaptiveDisplay && !enableWindowAutoSize {
Spacer()
Picker(selection: $selectedWindowSize, label: Text("settings.picker.screenSize"), content: {
Expand Down Expand Up @@ -114,6 +120,7 @@ struct AppSettingsView: View {
settings.bypass = bypass
settings.gamingMode = gamingMode
settings.enableWindowAutoSize = adaptiveDisplay ? enableWindowAutoSize : false
settings.ipadModel = ipadModel
if enableWindowAutoSize {
settings.gameWindowSizeHeight = Float(NSScreen.main?.visibleFrame.height ?? 1080)
settings.gameWindowSizeWidth = Float(NSScreen.main?.visibleFrame.width ?? 1920)
Expand Down
3 changes: 2 additions & 1 deletion PlayCover/View/PlayAppView.swift
Expand Up @@ -144,7 +144,8 @@ struct PlayAppView: View {
selectedWindowSize: app.settings.gameWindowSizeHeight == 1080
? 0
: app.settings.gameWindowSizeHeight == 1440 ? 1 : 2,
enableWindowAutoSize: app.settings.enableWindowAutoSize
enableWindowAutoSize: app.settings.enableWindowAutoSize,
ipadModel: app.settings.ipadModel
).frame(minWidth: 500)
}.sheet(isPresented: $showChangeGenshinAccount) {
ChangeGenshinAccountView()
Expand Down
1 change: 1 addition & 0 deletions PlayCover/en.lproj/Localizable.strings
Expand Up @@ -85,6 +85,7 @@

"settings.picker.displayRefreshRate" = "Screen refresh rate";
"settings.picker.screenSize" = "Display resolution";
"settings.picker.ipadModel" = "Select Ipad Pro model";

"settings.slider.mouseSensitivity" = "Mouse sensitivity: ";

Expand Down