|
16 | 16 | import javafx.scene.effect.DropShadow; |
17 | 17 | import javafx.scene.paint.Color; |
18 | 18 | import javafx.stage.DirectoryChooser; |
| 19 | +import javafx.stage.FileChooser; |
19 | 20 | import javafx.stage.Modality; |
20 | 21 | import org.json.JSONException; |
21 | 22 | import org.json.JSONObject; |
@@ -44,17 +45,21 @@ public class Controller { |
44 | 45 | @FXML private TextField versionField; |
45 | 46 | @FXML private TextField identifierField; |
46 | 47 | @FXML private TextField pathField; |
| 48 | + @FXML private TextField buildManifestField; |
| 49 | + @FXML private TextField buildIDField; |
47 | 50 |
|
48 | 51 | @FXML private CheckBox apnonceCheckBox; |
49 | 52 | @FXML private CheckBox versionCheckBox; |
50 | 53 | @FXML private CheckBox identifierCheckBox; |
| 54 | + @FXML private CheckBox betaCheckBox; |
51 | 55 |
|
52 | 56 | @FXML private Label versionLabel; |
53 | 57 |
|
54 | 58 | @FXML private Button preset1Button; |
55 | 59 | @FXML private Button preset2Button; |
56 | 60 | @FXML private Button preset3Button; |
57 | 61 | @FXML private Button goButton; |
| 62 | + @FXML private Button plistPickerButton; |
58 | 63 |
|
59 | 64 | private boolean boardConfig = false; |
60 | 65 | private boolean editingPresets = false; |
@@ -350,6 +355,14 @@ private void run(String device) { |
350 | 355 | } |
351 | 356 | if (versionCheckBox.isSelected()) { |
352 | 357 | args.add("-l"); |
| 358 | + } else if (betaCheckBox.isSelected()) { |
| 359 | + args.add("-i"); |
| 360 | + args.add(versionField.getText()); |
| 361 | + args.add("--beta"); |
| 362 | + args.add("--buildid"); |
| 363 | + args.add(buildIDField.getText()); |
| 364 | + args.add("-m"); |
| 365 | + args.add(buildManifestField.getText()); |
353 | 366 | } else { |
354 | 367 | args.add("-i"); |
355 | 368 | args.add(versionField.getText()); |
@@ -415,6 +428,8 @@ private void run(String device) { |
415 | 428 | } else if (tsscheckerLog.contains("iOS " + versionField.getText() + " for device " + device + " IS NOT being signed!")) { |
416 | 429 | newUnreportableError("iOS/tvOS " + versionField.getText() + " is not being signed for device " + device); |
417 | 430 | versionField.setEffect(errorBorder); |
| 431 | + } else if (tsscheckerLog.contains("[Error] [TSSC] failed to load manifest")) { |
| 432 | + newUnreportableError("\'" + buildManifestField.getText() + "\' is not a valid manifest"); |
418 | 433 | } else if (tsscheckerLog.contains("[Error]")) { |
419 | 434 | newReportableError("Saving blobs failed.", tsscheckerLog); |
420 | 435 | } else { |
@@ -498,6 +513,45 @@ public void identifierCheckBoxHandler() { |
498 | 513 | } |
499 | 514 | } |
500 | 515 |
|
| 516 | + public void betaCheckBoxHandler() { |
| 517 | + if (betaCheckBox.isSelected()) { |
| 518 | + buildManifestField.setDisable(false); |
| 519 | + int depth = 20; |
| 520 | + DropShadow borderGlow = new DropShadow(); |
| 521 | + borderGlow.setOffsetY(0f); |
| 522 | + borderGlow.setOffsetX(0f); |
| 523 | + borderGlow.setColor(Color.DARKCYAN); |
| 524 | + borderGlow.setWidth(depth); |
| 525 | + borderGlow.setHeight(depth); |
| 526 | + buildManifestField.setEffect(borderGlow); |
| 527 | + plistPickerButton.setDisable(false); |
| 528 | + buildIDField.setDisable(false); |
| 529 | + buildIDField.setEffect(borderGlow); |
| 530 | + if (versionCheckBox.isSelected()) { |
| 531 | + versionCheckBox.fire(); |
| 532 | + } |
| 533 | + } else { |
| 534 | + buildManifestField.setEffect(null); |
| 535 | + buildManifestField.setText(""); |
| 536 | + buildManifestField.setDisable(true); |
| 537 | + plistPickerButton.setDisable(true); |
| 538 | + buildIDField.setEffect(null); |
| 539 | + buildIDField.setText(""); |
| 540 | + buildIDField.setDisable(true); |
| 541 | + } |
| 542 | + } |
| 543 | + |
| 544 | + public void plistPickerHandler() { |
| 545 | + FileChooser fileChooser = new FileChooser(); |
| 546 | + fileChooser.setTitle("Select the BuildManifest.plist"); |
| 547 | + fileChooser.setInitialDirectory(new File(System.getProperty("user.home"))); |
| 548 | + fileChooser.getExtensionFilters().add(new FileChooser.ExtensionFilter("PLIST", "*.plist")); |
| 549 | + File result = fileChooser.showOpenDialog(Main.primaryStage); |
| 550 | + if (result != null) { |
| 551 | + buildManifestField.setText(result.toString()); |
| 552 | + } |
| 553 | + } |
| 554 | + |
501 | 555 | public void filePickerHandler() { |
502 | 556 | DirectoryChooser dirChooser = new DirectoryChooser(); |
503 | 557 | dirChooser.setTitle("Choose a folder to save Blobs in"); |
@@ -651,6 +705,18 @@ public void go() { |
651 | 705 | pathField.setEffect(errorBorder); |
652 | 706 | doReturn = true; |
653 | 707 | } |
| 708 | + if (!versionCheckBox.isSelected() && versionField.getText().equals("")) { |
| 709 | + versionField.setEffect(errorBorder); |
| 710 | + doReturn = true; |
| 711 | + } |
| 712 | + if (betaCheckBox.isSelected() && buildIDField.getText().equals("")) { |
| 713 | + buildIDField.setEffect(errorBorder); |
| 714 | + doReturn = true; |
| 715 | + } |
| 716 | + if (betaCheckBox.isSelected() && buildManifestField.getText().equals("")) { |
| 717 | + buildManifestField.setEffect(errorBorder); |
| 718 | + doReturn = true; |
| 719 | + } |
654 | 720 | if (doReturn) { |
655 | 721 | return; |
656 | 722 | } |
|
0 commit comments