Fixed wallpaper isue on 4.7" phones, possibly other devices. removed unpackage button, hooked updated package script

This commit is contained in:
Micah Gomez 2019-04-07 12:00:51 -06:00
parent 6f452ab7e1
commit d47742d281
24 changed files with 214 additions and 162 deletions

View file

@ -1,93 +1,111 @@
{
"images" : [
{
"idiom" : "iphone",
"size" : "20x20",
"idiom" : "iphone",
"filename" : "Icon-App-20x20@2x.png",
"scale" : "2x"
},
{
"idiom" : "iphone",
"size" : "20x20",
"idiom" : "iphone",
"filename" : "Icon-App-20x20@3x.png",
"scale" : "3x"
},
{
"idiom" : "iphone",
"size" : "29x29",
"idiom" : "iphone",
"filename" : "Icon-App-29x29@2x.png",
"scale" : "2x"
},
{
"idiom" : "iphone",
"size" : "29x29",
"idiom" : "iphone",
"filename" : "Icon-App-29x29@3x.png",
"scale" : "3x"
},
{
"idiom" : "iphone",
"size" : "40x40",
"idiom" : "iphone",
"filename" : "Icon-App-40x40@2x.png",
"scale" : "2x"
},
{
"idiom" : "iphone",
"size" : "40x40",
"idiom" : "iphone",
"filename" : "Icon-App-40x40@3x.png",
"scale" : "3x"
},
{
"idiom" : "iphone",
"size" : "60x60",
"idiom" : "iphone",
"filename" : "Icon-App-60x60@2x.png",
"scale" : "2x"
},
{
"idiom" : "iphone",
"size" : "60x60",
"idiom" : "iphone",
"filename" : "Icon-App-60x60@3x.png",
"scale" : "3x"
},
{
"idiom" : "ipad",
"size" : "20x20",
"idiom" : "ipad",
"filename" : "Icon-App-20x20@1x.png",
"scale" : "1x"
},
{
"idiom" : "ipad",
"size" : "20x20",
"idiom" : "ipad",
"filename" : "Icon-App-20x20@2x-1.png",
"scale" : "2x"
},
{
"idiom" : "ipad",
"size" : "29x29",
"idiom" : "ipad",
"filename" : "Icon-App-29x29@1x.png",
"scale" : "1x"
},
{
"idiom" : "ipad",
"size" : "29x29",
"idiom" : "ipad",
"filename" : "Icon-App-29x29@2x-1.png",
"scale" : "2x"
},
{
"idiom" : "ipad",
"size" : "40x40",
"idiom" : "ipad",
"filename" : "Icon-App-40x40@1x.png",
"scale" : "1x"
},
{
"idiom" : "ipad",
"size" : "40x40",
"idiom" : "ipad",
"filename" : "Icon-App-40x40@2x-1.png",
"scale" : "2x"
},
{
"idiom" : "ipad",
"size" : "76x76",
"idiom" : "ipad",
"filename" : "Icon-App-76x76@1x.png",
"scale" : "1x"
},
{
"idiom" : "ipad",
"size" : "76x76",
"idiom" : "ipad",
"filename" : "Icon-App-76x76@2x.png",
"scale" : "2x"
},
{
"idiom" : "ipad",
"size" : "83.5x83.5",
"idiom" : "ipad",
"filename" : "Icon-App-83.5x83.5@2x.png",
"scale" : "2x"
},
{
"idiom" : "ios-marketing",
"size" : "1024x1024",
"idiom" : "ios-marketing",
"filename" : "ItunesArtwork@2x.png",
"scale" : "1x"
}
],

Binary file not shown.

After

Width:  |  Height:  |  Size: 858 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 517 KiB

View file

@ -7,10 +7,12 @@
},
{
"idiom" : "universal",
"filename" : "bgimage-1.png",
"scale" : "2x"
},
{
"idiom" : "universal",
"filename" : "bgimage-2.png",
"scale" : "3x"
}
],

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

View file

@ -18,32 +18,40 @@
<rect key="frame" x="0.0" y="0.0" width="375" height="812"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<imageView clipsSubviews="YES" userInteractionEnabled="NO" alpha="0.84999999999999998" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" image="bgimage" translatesAutoresizingMaskIntoConstraints="NO" id="Xdq-a9-Vkk">
<imageView clipsSubviews="YES" userInteractionEnabled="NO" alpha="0.84999999999999998" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="bgimage" translatesAutoresizingMaskIntoConstraints="NO" id="Xdq-a9-Vkk">
<rect key="frame" x="0.0" y="0.0" width="375" height="812"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
</imageView>
<pickerView contentMode="scaleToFill" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="X4R-sr-2s9">
<rect key="frame" x="16" y="221" width="343" height="287"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
<visualEffectView opaque="NO" alpha="0.40000000000000002" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="3iZ-tO-enL">
<rect key="frame" x="0.0" y="0.0" width="375" height="812"/>
<view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" insetsLayoutMarginsFromSafeArea="NO" id="n8w-C8-2Xw">
<rect key="frame" x="0.0" y="0.0" width="375" height="812"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
</view>
<blurEffect style="light"/>
</visualEffectView>
<pickerView contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="X4R-sr-2s9">
<rect key="frame" x="16" y="221" width="343" height="345"/>
<color key="backgroundColor" white="1" alpha="0.25035761443661969" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<connections>
<outlet property="dataSource" destination="BYZ-38-t0r" id="P62-Ty-VDg"/>
<outlet property="delegate" destination="BYZ-38-t0r" id="O8T-KD-yad"/>
</connections>
</pickerView>
<button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="XMB-Cv-YLA">
<rect key="frame" x="16" y="574" width="167" height="50"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="XMB-Cv-YLA">
<rect key="frame" x="16" y="632" width="167" height="50"/>
<color key="backgroundColor" white="1" alpha="0.25035761439999998" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstAttribute="height" constant="50" id="9mK-y5-0Nx"/>
<constraint firstAttribute="width" constant="167" id="hZ5-po-RnY"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="31"/>
<state key="normal" title="Restore"/>
<connections>
<action selector="restoreBackup:" destination="BYZ-38-t0r" eventType="touchUpInside" id="JqV-B8-5zg"/>
</connections>
</button>
<button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="WN9-tU-bOp">
<rect key="frame" x="192" y="574" width="167" height="50"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="WN9-tU-bOp">
<rect key="frame" x="192" y="632" width="167" height="50"/>
<color key="backgroundColor" white="1" alpha="0.25035761439999998" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<fontDescription key="fontDescription" type="system" pointSize="31"/>
<state key="normal" title="Update"/>
@ -51,9 +59,8 @@
<action selector="updateBackup:" destination="BYZ-38-t0r" eventType="touchUpInside" id="Jz6-Fn-uAo"/>
</connections>
</button>
<button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Z44-tn-4Km">
<rect key="frame" x="16" y="690" width="343" height="50"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Z44-tn-4Km">
<rect key="frame" x="192" y="689" width="167" height="50"/>
<color key="backgroundColor" red="1" green="0.51075712174615018" blue="0.48122861101819614" alpha="0.25035761439999998" colorSpace="custom" customColorSpace="sRGB"/>
<fontDescription key="fontDescription" type="system" pointSize="31"/>
<state key="normal" title="Delete">
@ -63,59 +70,61 @@
<action selector="deleteBackup:" destination="BYZ-38-t0r" eventType="touchUpInside" id="IGQ-c1-zGW"/>
</connections>
</button>
<button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="FKY-5f-bN9">
<rect key="frame" x="16" y="516" width="343" height="50"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="FKY-5f-bN9">
<rect key="frame" x="16" y="574" width="343" height="50"/>
<color key="backgroundColor" white="1" alpha="0.25035761439999998" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstAttribute="height" constant="50" id="FX0-I3-87R"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="31"/>
<state key="normal" title="Create Backup"/>
<connections>
<action selector="createBackup:" destination="BYZ-38-t0r" eventType="touchUpInside" id="HAA-of-GPp"/>
</connections>
</button>
<button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="lNN-hV-Kcy">
<rect key="frame" x="16" y="632" width="167" height="50"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="lNN-hV-Kcy">
<rect key="frame" x="16" y="690" width="167" height="50"/>
<color key="backgroundColor" white="1" alpha="0.25035761439999998" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstAttribute="height" constant="50" id="FOr-n7-40y"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="31"/>
<state key="normal" title="Package"/>
<connections>
<action selector="packageBackup:" destination="BYZ-38-t0r" eventType="touchUpInside" id="BGU-Dg-Yyu"/>
</connections>
</button>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="Selected Backup:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="z1J-Te-u2O">
<rect key="frame" x="108" y="145" width="157" height="30"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Selected Backup:" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="z1J-Te-u2O">
<rect key="frame" x="16" y="145" width="343" height="30"/>
<constraints>
<constraint firstAttribute="height" constant="30" id="Gdu-US-lpD"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="20"/>
<nil key="textColor"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="Scroll to Select a Backup" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="gXr-H3-y6A">
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Scroll to Select a Backup" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="gXr-H3-y6A">
<rect key="frame" x="16" y="183" width="343" height="30"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<constraints>
<constraint firstAttribute="height" constant="30" id="4Zi-pJ-uHG"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="13"/>
<nil key="textColor"/>
<nil key="highlightedColor"/>
</label>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="FlashBack" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="84C-7a-WER">
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="FlashBack" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="84C-7a-WER">
<rect key="frame" x="16" y="44" width="343" height="93"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<fontDescription key="fontDescription" name="Courier" family="Courier" pointSize="60"/>
<constraints>
<constraint firstAttribute="height" constant="93" id="Vdj-T6-r6s"/>
</constraints>
<fontDescription key="fontDescription" name="Courier" family="Courier" pointSize="54"/>
<nil key="highlightedColor"/>
</label>
<button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="BHq-ds-6bc">
<rect key="frame" x="192" y="631" width="167" height="50"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<color key="backgroundColor" white="1" alpha="0.25035761439999998" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<fontDescription key="fontDescription" type="system" pointSize="31"/>
<state key="normal" title="Unpack"/>
<connections>
<action selector="unpackageBackup:" destination="BYZ-38-t0r" eventType="touchUpInside" id="ZaH-zv-Vd5"/>
</connections>
</button>
<button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="j3D-XF-u37">
<rect key="frame" x="103" y="748" width="167" height="42"/>
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" adjustsImageWhenHighlighted="NO" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="j3D-XF-u37">
<rect key="frame" x="162" y="747" width="51" height="30"/>
<constraints>
<constraint firstAttribute="height" constant="30" id="yZx-HI-Asl"/>
</constraints>
<fontDescription key="fontDescription" type="system" pointSize="25"/>
<state key="normal" title="Help"/>
<connections>
@ -124,6 +133,47 @@
</button>
</subviews>
<color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
<constraints>
<constraint firstItem="3iZ-tO-enL" firstAttribute="top" secondItem="8bC-Xf-vdC" secondAttribute="top" id="0eT-YG-qDK"/>
<constraint firstItem="WN9-tU-bOp" firstAttribute="trailing" secondItem="Z44-tn-4Km" secondAttribute="trailing" id="1ID-tR-nJf"/>
<constraint firstItem="X4R-sr-2s9" firstAttribute="leading" secondItem="FKY-5f-bN9" secondAttribute="leading" id="1if-ex-pI1"/>
<constraint firstItem="WN9-tU-bOp" firstAttribute="leading" secondItem="XMB-Cv-YLA" secondAttribute="trailing" constant="9" id="4Zb-6i-phK"/>
<constraint firstItem="z1J-Te-u2O" firstAttribute="top" secondItem="84C-7a-WER" secondAttribute="bottom" constant="8" symbolic="YES" id="6bo-R5-Lo8"/>
<constraint firstItem="j3D-XF-u37" firstAttribute="top" secondItem="Z44-tn-4Km" secondAttribute="bottom" constant="8" symbolic="YES" id="8bK-9g-gPv"/>
<constraint firstItem="84C-7a-WER" firstAttribute="trailing" secondItem="z1J-Te-u2O" secondAttribute="trailing" id="C57-yO-dCb"/>
<constraint firstItem="XMB-Cv-YLA" firstAttribute="top" secondItem="WN9-tU-bOp" secondAttribute="top" id="C7w-2t-7sp"/>
<constraint firstItem="WN9-tU-bOp" firstAttribute="leading" secondItem="Z44-tn-4Km" secondAttribute="leading" id="Gwi-A0-Yjc"/>
<constraint firstItem="FKY-5f-bN9" firstAttribute="leading" secondItem="XMB-Cv-YLA" secondAttribute="leading" id="Gya-Sj-oR1"/>
<constraint firstItem="X4R-sr-2s9" firstAttribute="top" secondItem="gXr-H3-y6A" secondAttribute="bottom" constant="8" symbolic="YES" id="HrW-cE-Xab"/>
<constraint firstItem="3iZ-tO-enL" firstAttribute="bottom" secondItem="Xdq-a9-Vkk" secondAttribute="bottom" id="Ihl-em-ftz"/>
<constraint firstItem="Xdq-a9-Vkk" firstAttribute="leading" secondItem="3iZ-tO-enL" secondAttribute="leading" id="Jwx-yU-idu"/>
<constraint firstItem="FKY-5f-bN9" firstAttribute="trailing" secondItem="WN9-tU-bOp" secondAttribute="trailing" id="KIf-qp-hxP"/>
<constraint firstItem="gXr-H3-y6A" firstAttribute="top" secondItem="z1J-Te-u2O" secondAttribute="bottom" constant="8" symbolic="YES" id="LqO-b2-e8Y"/>
<constraint firstAttribute="trailing" secondItem="3iZ-tO-enL" secondAttribute="trailing" id="N2E-sF-a0C"/>
<constraint firstItem="gXr-H3-y6A" firstAttribute="trailing" secondItem="X4R-sr-2s9" secondAttribute="trailing" id="SHL-4A-ZBx"/>
<constraint firstItem="z1J-Te-u2O" firstAttribute="leading" secondItem="gXr-H3-y6A" secondAttribute="leading" id="Tv0-oy-gyX"/>
<constraint firstItem="Xdq-a9-Vkk" firstAttribute="top" secondItem="3iZ-tO-enL" secondAttribute="top" id="U7c-ZY-lBR"/>
<constraint firstItem="XMB-Cv-YLA" firstAttribute="top" secondItem="FKY-5f-bN9" secondAttribute="bottom" constant="8" symbolic="YES" id="VOI-mx-dJb"/>
<constraint firstItem="Xdq-a9-Vkk" firstAttribute="leading" secondItem="8bC-Xf-vdC" secondAttribute="leading" id="Xds-JB-s4c"/>
<constraint firstItem="Z44-tn-4Km" firstAttribute="top" secondItem="WN9-tU-bOp" secondAttribute="bottom" constant="7" id="Xml-2h-kSF"/>
<constraint firstItem="Xdq-a9-Vkk" firstAttribute="centerX" secondItem="FKY-5f-bN9" secondAttribute="centerX" id="YZG-dA-vWg"/>
<constraint firstItem="j3D-XF-u37" firstAttribute="top" secondItem="lNN-hV-Kcy" secondAttribute="bottom" constant="7" id="ZFV-TD-dAm"/>
<constraint firstItem="XMB-Cv-YLA" firstAttribute="trailing" secondItem="lNN-hV-Kcy" secondAttribute="trailing" id="a34-Zx-seY"/>
<constraint firstItem="FKY-5f-bN9" firstAttribute="top" secondItem="X4R-sr-2s9" secondAttribute="bottom" constant="8" symbolic="YES" id="amT-jv-zQP"/>
<constraint firstItem="84C-7a-WER" firstAttribute="leading" secondItem="8bC-Xf-vdC" secondAttribute="leadingMargin" id="bRT-7N-DE5"/>
<constraint firstItem="XMB-Cv-YLA" firstAttribute="leading" secondItem="lNN-hV-Kcy" secondAttribute="leading" id="biR-GY-DRW"/>
<constraint firstItem="z1J-Te-u2O" firstAttribute="trailing" secondItem="gXr-H3-y6A" secondAttribute="trailing" id="eHu-zg-rHE"/>
<constraint firstItem="Xdq-a9-Vkk" firstAttribute="trailing" secondItem="3iZ-tO-enL" secondAttribute="trailing" id="ee5-lm-WY7"/>
<constraint firstAttribute="bottom" secondItem="Xdq-a9-Vkk" secondAttribute="bottom" id="gIQ-nY-YPC"/>
<constraint firstItem="gXr-H3-y6A" firstAttribute="leading" secondItem="X4R-sr-2s9" secondAttribute="leading" id="kSk-8X-Pel"/>
<constraint firstItem="84C-7a-WER" firstAttribute="leading" secondItem="z1J-Te-u2O" secondAttribute="leading" id="kgG-2t-Ulf"/>
<constraint firstItem="XMB-Cv-YLA" firstAttribute="baseline" secondItem="WN9-tU-bOp" secondAttribute="baseline" id="lCm-I7-9Jk"/>
<constraint firstItem="84C-7a-WER" firstAttribute="top" secondItem="6Tk-OE-BBY" secondAttribute="top" id="n1b-T6-GbG"/>
<constraint firstItem="6Tk-OE-BBY" firstAttribute="bottom" secondItem="j3D-XF-u37" secondAttribute="bottom" constant="1" id="p5L-LB-KGt"/>
<constraint firstItem="FKY-5f-bN9" firstAttribute="centerX" secondItem="j3D-XF-u37" secondAttribute="centerX" id="t6F-Xg-a39"/>
<constraint firstItem="X4R-sr-2s9" firstAttribute="trailing" secondItem="FKY-5f-bN9" secondAttribute="trailing" id="w0n-hR-bNN"/>
<constraint firstItem="lNN-hV-Kcy" firstAttribute="top" secondItem="XMB-Cv-YLA" secondAttribute="bottom" constant="8" symbolic="YES" id="wpo-kx-mc3"/>
</constraints>
<viewLayoutGuide key="safeArea" id="6Tk-OE-BBY"/>
</view>
<connections>
@ -134,10 +184,10 @@
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="dkx-z0-nzr" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="117.59999999999999" y="113.79310344827587"/>
<point key="canvasLocation" x="116" y="112.3152709359606"/>
</scene>
</scenes>
<resources>
<image name="bgimage" width="1440" height="2960"/>
<image name="bgimage" width="480" height="986.66668701171875"/>
</resources>
</document>

View file

@ -43,12 +43,6 @@ NSString *backupNameSelected;
else{
NSLog(@"Backup name is good!");
/*NSString *content = @"Put this in a file please.";
NSData *fileContents = [content dataUsingEncoding:NSUTF8StringEncoding];
[[NSFileManager defaultManager] createFileAtPath:@"/Applications/test.txt"
contents:fileContents
attributes:nil];*/
NSLog(@"Running NSTask");
NSTask *createTask = [[NSTask alloc] init];
@ -59,7 +53,7 @@ NSString *backupNameSelected;
UIAlertController * finishedCreateAlert= [UIAlertController
alertControllerWithTitle:@"Backup Creation Completed"
message:@"The backup will appear once you repoen the app."
message:@"The backup has been successfully created"
preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction* ok = [UIAlertAction
@ -68,7 +62,8 @@ NSString *backupNameSelected;
handler:^(UIAlertAction * action)
{
_backupFolderArray = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:@"/Library/FlashBack/Backups/" error:nil];
[self->selectedBackupPickerView reloadAllComponents];
[finishedCreateAlert dismissViewControllerAnimated:YES completion:nil];
@ -170,7 +165,7 @@ NSString *backupNameSelected;
if (backupNameSelected == nil){
UIAlertController * selectBackupAlert= [UIAlertController
UIAlertController * updateBackupAlert= [UIAlertController
alertControllerWithTitle:@"Select a Backup!"
message:@"Scroll through the list then let it settle on an item to select the backup."
preferredStyle:UIAlertControllerStyleAlert];
@ -180,13 +175,13 @@ NSString *backupNameSelected;
style:UIAlertActionStyleDefault
handler:^(UIAlertAction * action)
{
[selectBackupAlert dismissViewControllerAnimated:YES completion:nil];
[updateBackupAlert dismissViewControllerAnimated:YES completion:nil];
}];
[selectBackupAlert addAction:ok];
[updateBackupAlert addAction:ok];
[self presentViewController:selectBackupAlert animated:YES completion:nil];
[self presentViewController:updateBackupAlert animated:YES completion:nil];
}
else{
@ -217,6 +212,27 @@ NSString *backupNameSelected;
[createTask launch];
[createTask waitUntilExit];
UIAlertController * finishedUpdateAlert= [UIAlertController
alertControllerWithTitle:@"Backup Update Completed"
message:@"The backup has been successfully updated"
preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction* ok = [UIAlertAction
actionWithTitle:@"OK"
style:UIAlertActionStyleDefault
handler:^(UIAlertAction * action)
{
_backupFolderArray = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:@"/Library/FlashBack/Backups/" error:nil];
[self->selectedBackupPickerView reloadAllComponents];
[finishedUpdateAlert dismissViewControllerAnimated:YES completion:nil];
}];
[finishedUpdateAlert addAction:ok];
[self presentViewController:finishedUpdateAlert animated:YES completion:nil];
}];
UIAlertAction* cancel = [UIAlertAction
@ -263,7 +279,7 @@ NSString *backupNameSelected;
UIAlertController * packageBackupAlert= [UIAlertController
alertControllerWithTitle:@"Package Backup"
message:@"This will package the selected backup."
message:@"This will package the selected backup to a DEB file."
preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction* ok = [UIAlertAction
@ -284,7 +300,7 @@ NSString *backupNameSelected;
UIAlertController * finishedPackageAlert= [UIAlertController
alertControllerWithTitle:@"Packaging Complete"
message:@"The package can be found in [/User/Documents/FlashBack/GeneratedPackages/]."
message:@"The package can be found in [/User/Documents/FlashBack/FlashBackDEBs/]."
preferredStyle:UIAlertControllerStyleAlert];
@ -319,92 +335,11 @@ NSString *backupNameSelected;
}
}
- (IBAction)unpackageBackup:(id)sender {
if (backupNameSelected == nil){
UIAlertController * selectBackupAlert= [UIAlertController
alertControllerWithTitle:@"Select a Backup!"
message:@"Scroll through the list then let it settle on an item to select the backup."
preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction* ok = [UIAlertAction
actionWithTitle:@"ok"
style:UIAlertActionStyleDefault
handler:^(UIAlertAction * action)
{
[selectBackupAlert dismissViewControllerAnimated:YES completion:nil];
}];
[selectBackupAlert addAction:ok];
[self presentViewController:selectBackupAlert animated:YES completion:nil];
}
else{
UIAlertController * unpackageBackupAlert= [UIAlertController
alertControllerWithTitle:@"Unpackage Imported Backups"
message:@"This will importall backups in [/User/Documents/FlashBack/Unpackage/]."
preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction* ok = [UIAlertAction
actionWithTitle:@"OK"
style:UIAlertActionStyleDefault
handler:^(UIAlertAction * action)
{
//RUN RESTORE SCRIPT
NSTask *packageTask = [[NSTask alloc] init];
[packageTask setLaunchPath:@"/bin/bash"];
[packageTask setArguments:@[ @"FBUnpackage"]];
[packageTask launch];
[packageTask waitUntilExit];
UIAlertController * finishedUnpackageAlert= [UIAlertController
alertControllerWithTitle:@"Import Complete"
message:@"Repoen the app to view imported backups."
preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction* ok = [UIAlertAction
actionWithTitle:@"ok"
style:UIAlertActionStyleDefault
handler:^(UIAlertAction * action)
{
[finishedUnpackageAlert dismissViewControllerAnimated:YES completion:nil];
}];
[finishedUnpackageAlert addAction:ok];
[self presentViewController:finishedUnpackageAlert animated:YES completion:nil];
}];
UIAlertAction* cancel = [UIAlertAction
actionWithTitle:@"Cancel"
style:UIAlertActionStyleDefault
handler:^(UIAlertAction * action)
{
[unpackageBackupAlert dismissViewControllerAnimated:YES completion:nil];
}];
[unpackageBackupAlert addAction:cancel];
[unpackageBackupAlert addAction:ok];
[self presentViewController:unpackageBackupAlert animated:YES completion:nil];
}
}
- (IBAction)helpMenu:(id)sender {
UIAlertController * tutorialAlert= [UIAlertController
alertControllerWithTitle:@"Help"
message:@"Create Backup: This will prompt you to enter a name for the backup which will be displayed in the box above.\n\nRestore: This will revert your settings, wallpaper, and Icon Layout to the selected setup.\n\nUpdate: This will overwrite the selected backup to cleanly update it.\n\nPackage:This will generate a package in ZIP format for you to share or back up for later.\n\nUnpackage: This will install the aforementioned ZIP packages to be used by FlashBack.\n\nDelete: This will delete the selected backup. These backups cannot be recovered!"
message:@"Create Backup: This will prompt you to enter a name for the backup which will be displayed in the box above.\n\nRestore: This will revert your settings, wallpaper, and Icon Layout to the selected setup.\n\nUpdate: This will overwrite the selected backup to cleanly update it.\n\nPackage: This will generate a package in ZIP format for you to share or back up for later.\n\nUnpackage: This will install the aforementioned ZIP packages to be used by FlashBack.\n\nDelete: This will delete the selected backup. These backups cannot be recovered!"
preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction* ok = [UIAlertAction
@ -417,7 +352,7 @@ NSString *backupNameSelected;
UIAlertController * infoAlert= [UIAlertController
alertControllerWithTitle:@"Known issues"
message:@"Scrolling through the picker view with no backups will crash the app.\n\nChanges to the list of backups are not reflected until the app is relaunched.\n\nIf a backup is not properly selected, and a button is pressed, it may cause the app to crash."
message:@"\nScrolling through the picker view with no backups will crash the app.\n"
preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction* okay = [UIAlertAction
@ -430,7 +365,7 @@ NSString *backupNameSelected;
UIAlertController * contactAlert= [UIAlertController
alertControllerWithTitle:@"Contact Me"
message:@"You can contact my via Twitter or Email\n\n@micahpgomez\n\nmpg13@micahpgomez.dev\n\nhttps://www.micahpgomez.dev"
message:@"\nYou can contact my via Twitter or Email\n\n@micahpgomez\n\nmpg13@micahpgomez.dev\n\nhttps://www.micahpgomez.dev"
preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction* okey = [UIAlertAction
@ -507,6 +442,29 @@ NSString *backupNameSelected;
[deleteTask launch];
[deleteTask waitUntilExit];
UIAlertController * deleteFinishedAlert= [UIAlertController
alertControllerWithTitle:@"Backup Deleted"
message:@"The backup has been deleted successfully"
preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction* okey = [UIAlertAction
actionWithTitle:@"ok"
style:UIAlertActionStyleDefault
handler:^(UIAlertAction * action)
{
_backupFolderArray = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:@"/Library/FlashBack/Backups/" error:nil];
[self->selectedBackupPickerView reloadAllComponents];
[deleteFinishedAlert dismissViewControllerAnimated:YES completion:nil];
}];
[deleteFinishedAlert addAction:okey];
[self presentViewController:deleteFinishedAlert animated:YES completion:nil];
[deleteBackupAlert dismissViewControllerAnimated:YES completion:nil];
}];
@ -525,10 +483,10 @@ NSString *backupNameSelected;
[self presentViewController:deleteBackupAlert animated:YES completion:nil];
}
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
@ -542,6 +500,30 @@ NSString *backupNameSelected;
-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{
//NEED TO FIGURE OUT HOW TO CHECK FOR EMPTY LIST
if (_backupFolderArray == nil){
UIAlertController * emptyArrayAlert= [UIAlertController
alertControllerWithTitle:@"Let's start by making a backup!"
message:@"Press 'Create Backup' to get started!"
preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction* ok = [UIAlertAction
actionWithTitle:@"ok"
style:UIAlertActionStyleDefault
handler:^(UIAlertAction * action)
{
[emptyArrayAlert dismissViewControllerAnimated:YES completion:nil];
}];
[emptyArrayAlert addAction:ok];
[self presentViewController:emptyArrayAlert animated:YES completion:nil];
}
else{
backupNameSelected = [_backupFolderArray objectAtIndex:row];
selectedBackupText.text=backupNameSelected;
@ -558,7 +540,7 @@ NSString *backupNameSelected;
selectedBackupImage.image = [UIImage imageWithData:data];
NSLog(@"%@", backupNameSelected);
}
}
-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{