Skip to content

Commit 5405efe

Browse files
committed
add support for all the new devices (closes #130)
1 parent 6756229 commit 5405efe

File tree

4 files changed

+26
-38
lines changed

4 files changed

+26
-38
lines changed

src/main/java/com/airsquared/blobsaver/Controller.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -160,11 +160,11 @@ public void initialize() {
160160
deviceTypeChoiceBox.setValue("iPhone");
161161
deviceModelChoiceBox.getSelectionModel().selectedItemProperty().addListener((x, y, newValue) -> {
162162
deviceModelChoiceBox.setEffect(null);
163-
requireBoardConfig((String) newValue);
163+
requireBoardConfig(Devices.getDeviceModelIdentifiersMap().get(newValue.toString()));
164164
});
165165
identifierField.textProperty().addListener((x, y, newValue) -> {
166166
identifierField.setEffect(null);
167-
requireBoardConfig(Devices.getDeviceModelIdentifiersMap().get(newValue));
167+
requireBoardConfig(newValue);
168168
});
169169

170170
addListenerToSetNullEffect(ecidField, versionField, boardConfigField, apnonceField, pathField, buildIDField, ipswField);
@@ -217,12 +217,13 @@ private static void addListenerToSetNullEffect(TextField... textFields) {
217217

218218
public void sendRedditPM() { Shared.sendRedditPM(); }
219219

220-
private void requireBoardConfig(String newValue) {
221-
if (!"".equals(newValue) && Devices.getRequiresBoardConfigMap().containsKey(newValue)) {
220+
private void requireBoardConfig(String identifier) {
221+
if (!"".equals(identifier) && (Devices.getRequiresBoardConfigMap().containsKey(identifier) ||
222+
!Devices.getDeviceModelIdentifiersMap().containsKey(identifier))) {
222223
boardConfigField.setEffect(borderGlow);
223224
getBoardConfig = true;
224225
boardConfigField.setDisable(false);
225-
boardConfigField.setText(Devices.getRequiresBoardConfigMap().get(newValue));
226+
boardConfigField.setText(Devices.getRequiresBoardConfigMap().get(identifier));
226227
} else {
227228
boardConfigField.setEffect(null);
228229
getBoardConfig = false;
@@ -335,7 +336,7 @@ private void loadPreset(int preset) {
335336
deviceTypeChoiceBox.setValue(prefs.get("Device Type", ""));
336337
deviceModelChoiceBox.setValue(prefs.get("Device Model", ""));
337338
}
338-
if (!"none".equals(prefs.get("Board Config", ""))) {
339+
if (!"none".equals(prefs.get("Board Config", "")) && getBoardConfig) {
339340
boardConfigField.setText(prefs.get("Board Config", ""));
340341
}
341342
if (!"".equals(prefs.get("Apnonce", ""))) {

src/main/java/com/airsquared/blobsaver/Devices.java

Lines changed: 13 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,8 @@ class Devices {
3535
"iPhone 7+ (Global)(iPhone9,2)", "iPhone 7 (GSM)(iPhone9,3)", "iPhone 7+ (GSM)(iPhone9,4)",
3636
"iPhone 8 (iPhone10,1)", "iPhone 8+ (iPhone10,2)", "iPhone X (iPhone10,3)", "iPhone 8 (iPhone10,4)",
3737
"iPhone 8+ (iPhone10,5)", "iPhone X (iPhone10,6)", "iPhone XS (Global) (iPhone11,2)",
38-
"iPhone XS Max (China) (iPhone11,4)", "iPhone XS Max (iPhone11,6)", "iPhone XR (iPhone11,8)");
38+
"iPhone XS Max (China) (iPhone11,4)", "iPhone XS Max (iPhone11,6)", "iPhone XR (iPhone11,8)",
39+
"iPhone 11 (iPhone12,1)", "iPhone 11 Pro (iPhone12,3)", "iPhone 11 Pro Max (iPhone12,5)");
3940

4041
private static final ObservableList<String> iPods =
4142
FXCollections.observableArrayList("iPod Touch 3", "iPod Touch 4", "iPod Touch 5", "iPod Touch 6",
@@ -51,11 +52,11 @@ class Devices {
5152
"iPad Pro 9.7 (Wifi)", "iPad Pro 9.7 (Cellular)", "iPad Pro 12.9 (WiFi)", "iPad Pro 12.9 (Cellular)",
5253
"iPad 5 (Wifi)", "iPad 5 (Cellular)", "iPad Pro 2 12.9 (WiFi)(iPad7,1)", "iPad Pro 2 12.9 (Cellular)(iPad7,2)",
5354
"iPad Pro 10.5 (WiFi)(iPad7,3)", "iPad 10.5 (Cellular)(iPad7,4)", "iPad 6 (WiFi)(iPad 7,5)",
54-
"iPad 6 (Cellular)(iPad7,6)", "iPad Pro 3 11' (WiFi)(iPad8,1)", "iPad Pro 3 11' (WiFi)(iPad8,2)",
55-
"iPad Pro 3 11' (Cellular)(iPad8,3)", "iPad Pro 3 11' (Cellular)(iPad8,4)", "iPad Pro 3 12.9'(WiFi)(iPad8,5)",
56-
"iPad Pro 3 12.9 (WiFi)(iPad8,6)", "iPad Pro 3 12.9 (Cellular)(iPad8,7)", "iPad Pro 3 12.9 (Cellular)(iPad8,8)",
57-
"iPad Mini 5 (WiFi)(iPad11,1)", "iPad Mini 5 (Cellular)(iPad11,2)", "iPad Air 3 (WiFi)(iPad11,3)",
58-
"iPad Air 3 (Cellular)(iPad11,4)");
55+
"iPad 6 (Cellular)(iPad7,6)", "iPad 7 (WiFi)(iPad7,11)", "iPad 7 (Cellular)(iPad7,12)",
56+
"iPad Pro 3 11' (WiFi)(iPad8,1)", "iPad Pro 3 11' (WiFi)(iPad8,2)", "iPad Pro 3 11' (Cellular)(iPad8,3)",
57+
"iPad Pro 3 11' (Cellular)(iPad8,4)", "iPad Pro 3 12.9'(WiFi)(iPad8,5)", "iPad Pro 3 12.9 (WiFi)(iPad8,6)",
58+
"iPad Pro 3 12.9 (Cellular)(iPad8,7)", "iPad Pro 3 12.9 (Cellular)(iPad8,8)", "iPad Mini 5 (WiFi)(iPad11,1)",
59+
"iPad Mini 5 (Cellular)(iPad11,2)", "iPad Air 3 (WiFi)(iPad11,3)", "iPad Air 3 (Cellular)(iPad11,4)");
5960

6061
private static final ObservableList<String> AppleTVs =
6162
FXCollections.observableArrayList("Apple TV 2G", "Apple TV 3", "Apple TV 3 (2013)", "Apple TV 4 (2015)", "Apple TV 4K");
@@ -67,30 +68,11 @@ class Devices {
6768
private static HashMap<String, String> deviceModelIdentifiers = null;
6869

6970
static {
70-
requiresBoardConfig.put("iPhone 6s", "");
71-
requiresBoardConfig.put("iPhone 6s+", "");
72-
requiresBoardConfig.put("iPhone SE", "");
73-
requiresBoardConfig.put("iPad 5 (Wifi)", "");
74-
requiresBoardConfig.put("iPad 5 (Cellular)", "");
75-
requiresBoardConfig.put("iPad 6 (WiFi)(iPad 7,5)", "J71bAP");
76-
requiresBoardConfig.put("iPad 6 (Cellular)(iPad7,6)", "J72bAP");
77-
requiresBoardConfig.put("iPhone XS (Global) (iPhone11,2)", "D321AP");
78-
requiresBoardConfig.put("iPhone XS Max (China) (iPhone11,4)", "D331AP");
79-
requiresBoardConfig.put("iPhone XS Max (iPhone11,6)", "D331pAP");
80-
requiresBoardConfig.put("iPhone XR (iPhone11,8)", "N841AP");
81-
requiresBoardConfig.put("iPad Pro 3 11' (WiFi)(iPad8,1)", "J317AP");
82-
requiresBoardConfig.put("iPad Pro 3 11' (WiFi)(iPad8,2)", "J317xAP");
83-
requiresBoardConfig.put("iPad Pro 3 11' (Cellular)(iPad8,3)", "J318AP");
84-
requiresBoardConfig.put("iPad Pro 3 11' (Cellular)(iPad8,4)", "J318xAP");
85-
requiresBoardConfig.put("iPad Pro 3 12.9'(WiFi)(iPad8,5)", "J320AP");
86-
requiresBoardConfig.put("iPad Pro 3 12.9 (WiFi)(iPad8,6)", "J320xAP");
87-
requiresBoardConfig.put("iPad Pro 3 12.9 (Cellular)(iPad8,7)", "J321AP");
88-
requiresBoardConfig.put("iPad Pro 3 12.9 (Cellular)(iPad8,8)", "J321xAP");
89-
requiresBoardConfig.put("iPad Mini 5 (WiFi)(iPad11,1)", "J210AP");
90-
requiresBoardConfig.put("iPad Mini 5 (Cellular)(iPad11,2)", "J211AP");
91-
requiresBoardConfig.put("iPad Air 3 (WiFi)(iPad11,3)", "J217AP");
92-
requiresBoardConfig.put("iPad Air 3 (Cellular)(iPad11,4)", "J218AP");
93-
requiresBoardConfig.put("iPod Touch 7 (iPod9,1)", "N112AP");
71+
requiresBoardConfig.put("iPhone8,1", "");
72+
requiresBoardConfig.put("iPhone8,2", "");
73+
requiresBoardConfig.put("iPhone8,4", "");
74+
requiresBoardConfig.put("iPad6,11", "");
75+
requiresBoardConfig.put("iPad6,12", "");
9476
}
9577

9678
static ObservableList<String> getiPhones() {
@@ -122,7 +104,7 @@ static HashMap<String, String> getDeviceModelIdentifiersMap() {
122104
try {
123105
Properties properties = new Properties();
124106
properties.load(Shared.class.getResourceAsStream("devicemodels.properties"));
125-
@SuppressWarnings("unchecked") Map<String, String> prop = ((Map) properties); // so I can avoid "unchecked call" warning
107+
@SuppressWarnings("unchecked") Map<String, String> prop = ((Map) properties);
126108
deviceModelIdentifiers = new HashMap<>(prop);
127109
prop.forEach((key, value) -> deviceModelIdentifiers.put(value, key));
128110
} catch (IOException e) {

src/main/java/com/airsquared/blobsaver/Main.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838

3939
public class Main {
4040

41-
static final String appVersion = "v2.4.0";
41+
static final String appVersion = "v2.4.1-beta4";
4242
static final Preferences appPrefs = Preferences.userRoot().node("airsquared/blobsaver/prefs");
4343
private static final String appID = "com.airsquared.blobsaver";
4444
static Stage primaryStage;

src/main/resources/com/airsquared/blobsaver/devicemodels.properties

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,9 @@ iPhone\ XS\ (Global)\ (iPhone11,2)=iPhone11,2
4545
iPhone\ XS\ Max\ (China)\ (iPhone11,4)=iPhone11,4
4646
iPhone\ XS\ Max\ (iPhone11,6)=iPhone11,6
4747
iPhone\ XR\ (iPhone11,8)=iPhone11,8
48+
iPhone\ 11\ (iPhone12,1)=iPhone12,1
49+
iPhone\ 11\ Pro\ (iPhone12,3)=iPhone12,3
50+
iPhone\ 11\ Pro\ Max\ (iPhone12,5)=iPhone12,5
4851
iPod\ Touch\ 3=iPod3,1
4952
iPod\ Touch\ 4=iPod4,1
5053
iPod\ Touch\ 5=iPod5,1
@@ -94,6 +97,8 @@ iPad\ Pro\ 10.5\ (WiFi)(iPad7,3)=iPad7,3
9497
iPad\ 10.5\ (Cellular)(iPad7,4)=iPad7,4
9598
iPad\ 6\ (WiFi)(iPad\ 7,5)=iPad7,5
9699
iPad\ 6\ (Cellular)(iPad7,6)=iPad7,6
100+
iPad\ 7\ (WiFi)(iPad7,11)=iPad7,11
101+
iPad\ 7\ (Cellular)(iPad7,12)=iPad7,12
97102
iPad\ Pro\ 3\ 11'\ (WiFi)(iPad8,1)=iPad8,1
98103
iPad\ Pro\ 3\ 11'\ (WiFi)(iPad8,2)=iPad8,2
99104
iPad\ Pro\ 3\ 11'\ (Cellular)(iPad8,3)=iPad8,3

0 commit comments

Comments
 (0)