Merge pull request #119 from vector-im/media_picker_layout_issues

Media Picker: fix layout issues
This commit is contained in:
giomfo 2016-02-26 10:34:20 +01:00
commit d472446f7b
3 changed files with 65 additions and 22 deletions

View file

@ -65,6 +65,8 @@ static void *RecordingContext = &RecordingContext;
MPMoviePlayerController *videoPlayer;
UIButton *videoPlayerControl;
BOOL isValidationInProgress;
}
@property (nonatomic) UIBackgroundTaskIdentifier backgroundRecordingID;
@ -541,6 +543,13 @@ static void *RecordingContext = &RecordingContext;
- (void)didSelectAsset:(PHAsset *)asset
{
// Check whether a selection is already in progress
if (isValidationInProgress)
{
return;
}
isValidationInProgress = YES;
PHContentEditingInputRequestOptions *editOptions = [[PHContentEditingInputRequestOptions alloc] init];
[asset requestContentEditingInputWithOptions:editOptions
@ -563,9 +572,13 @@ static void *RecordingContext = &RecordingContext;
[self.delegate mediaPickerController:self didSelectImage:image withURL:contentEditingInput.fullSizeImageURL];
}
isValidationInProgress = NO;
}];
});
return;
}
else if (contentEditingInput.mediaType == PHAssetMediaTypeVideo)
{
@ -583,15 +596,21 @@ static void *RecordingContext = &RecordingContext;
[self.delegate mediaPickerController:self didSelectVideo:[avURLAsset URL]];
}
isValidationInProgress = NO;
}];
});
return;
}
else
{
NSLog(@"[MediaPickerVC] Selected video asset is not initialized from an URL!");
}
}
isValidationInProgress = NO;
}];
}
@ -904,6 +923,7 @@ static void *RecordingContext = &RecordingContext;
dispatch_async(dispatch_get_main_queue(), ^{
[[cameraPreviewLayer connection] setVideoOrientation:(AVCaptureVideoOrientation)[[UIApplication sharedApplication] statusBarOrientation]];
[cameraPreviewLayer connection].videoScaleAndCropFactor = 1.0;
cameraPreviewLayer.frame = self.cameraPreviewContainerView.bounds;
cameraPreviewLayer.hidden = YES;
@ -1136,6 +1156,8 @@ static void *RecordingContext = &RecordingContext;
- (void)snapStillImage
{
self.cameraCaptureButton.enabled = NO;
dispatch_async(cameraQueue, ^{
// Update the orientation on the still image output video connection before capturing.
[[stillImageOutput connectionWithMediaType:AVMediaTypeVideo] setVideoOrientation:[[cameraPreviewLayer connection] videoOrientation]];
@ -1421,8 +1443,8 @@ static void *RecordingContext = &RecordingContext;
PHFetchResult *assets = [PHAsset fetchAssetsInAssetCollection:collection options:options];
cell.albumCountLabel.text = [NSString stringWithFormat:@"%tu", assets.count];
// Report first asset thumbnail
if (assets.count)
// Report first asset thumbnail (except for 'Recently Deleted' album)
if (assets.count && collection.assetCollectionSubtype != 1000000201)
{
PHAsset *asset = assets[0];
@ -1438,6 +1460,11 @@ static void *RecordingContext = &RecordingContext;
}];
}
else
{
cell.albumThumbnail.image = nil;
cell.albumThumbnail.backgroundColor = [UIColor lightGrayColor];
}
}
return cell;

View file

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="9531" systemVersion="15C50" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES">
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="9532" systemVersion="15C50" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES">
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9529"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9530"/>
<capability name="Aspect ratio constraints" minToolsVersion="5.1"/>
</dependencies>
<objects>
@ -41,33 +41,45 @@
<color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
</view>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="PXk-ZD-TYS" userLabel="Camera Switch Button">
<rect key="frame" x="548" y="35" width="29" height="22"/>
<rect key="frame" x="543" y="30" width="39" height="32"/>
<constraints>
<constraint firstAttribute="height" constant="22" id="5IK-zA-C0Z"/>
<constraint firstAttribute="width" constant="29" id="JWE-xq-eRq"/>
<constraint firstAttribute="height" constant="32" id="5IK-zA-C0Z"/>
<constraint firstAttribute="width" constant="39" id="JWE-xq-eRq"/>
</constraints>
<state key="normal" image="camera_switch.png">
<state key="normal">
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
</state>
<state key="highlighted" image="camera_switch.png"/>
<connections>
<action selector="onButtonPressed:" destination="-1" eventType="touchUpInside" id="xHg-kl-L3w"/>
</connections>
</button>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="sO8-Ds-mXZ" userLabel="Close Button">
<rect key="frame" x="23" y="35" width="22" height="22"/>
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="camera_switch.png" translatesAutoresizingMaskIntoConstraints="NO" id="etc-h5-0u2">
<rect key="frame" x="548" y="35" width="29" height="22"/>
<constraints>
<constraint firstAttribute="width" constant="22" id="Rrv-zB-kX4"/>
<constraint firstAttribute="height" constant="22" id="nXZ-ee-z3I"/>
<constraint firstAttribute="width" constant="29" id="Mci-PP-bNY"/>
<constraint firstAttribute="height" constant="22" id="cqi-nf-MLe"/>
</constraints>
<state key="normal" image="remove_icon.png">
</imageView>
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="sO8-Ds-mXZ" userLabel="Close Button">
<rect key="frame" x="18" y="30" width="32" height="32"/>
<constraints>
<constraint firstAttribute="width" constant="32" id="Rrv-zB-kX4"/>
<constraint firstAttribute="height" constant="32" id="nXZ-ee-z3I"/>
</constraints>
<state key="normal">
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
</state>
<state key="highlighted" image="remove_icon.png"/>
<connections>
<action selector="onButtonPressed:" destination="-1" eventType="touchUpInside" id="nvH-aw-ZJK"/>
</connections>
</button>
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="remove_icon.png" translatesAutoresizingMaskIntoConstraints="NO" id="VA2-Cu-dX6">
<rect key="frame" x="23" y="35" width="22" height="22"/>
<constraints>
<constraint firstAttribute="height" constant="22" id="AVO-AA-HaQ"/>
<constraint firstAttribute="width" constant="22" id="UST-cV-kEd"/>
</constraints>
</imageView>
<activityIndicatorView hidden="YES" opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" hidesWhenStopped="YES" style="gray" translatesAutoresizingMaskIntoConstraints="NO" id="dxP-iB-dWk" userLabel="Camera Activity Indicator">
<rect key="frame" x="290" y="430" width="20" height="20"/>
</activityIndicatorView>
@ -87,18 +99,22 @@
</button>
</subviews>
<constraints>
<constraint firstItem="PXk-ZD-TYS" firstAttribute="top" secondItem="cE0-0g-Su5" secondAttribute="top" constant="35" id="3bv-hT-POE"/>
<constraint firstItem="etc-h5-0u2" firstAttribute="centerX" secondItem="PXk-ZD-TYS" secondAttribute="centerX" id="1Kl-Hi-rvU"/>
<constraint firstItem="PXk-ZD-TYS" firstAttribute="top" secondItem="cE0-0g-Su5" secondAttribute="top" constant="30" id="3bv-hT-POE"/>
<constraint firstAttribute="trailing" secondItem="w7z-f3-kdT" secondAttribute="trailing" id="5lY-ez-A5W"/>
<constraint firstAttribute="bottom" secondItem="uRG-b0-CjY" secondAttribute="bottom" constant="30" id="F15-CU-duW"/>
<constraint firstItem="VA2-Cu-dX6" firstAttribute="centerY" secondItem="sO8-Ds-mXZ" secondAttribute="centerY" id="Fze-aW-Jg3"/>
<constraint firstAttribute="bottom" secondItem="w7z-f3-kdT" secondAttribute="bottom" id="Odc-BN-d37"/>
<constraint firstAttribute="width" secondItem="cE0-0g-Su5" secondAttribute="height" multiplier="15:22" id="QDd-Tq-4zL"/>
<constraint firstItem="VA2-Cu-dX6" firstAttribute="centerX" secondItem="sO8-Ds-mXZ" secondAttribute="centerX" id="Xmg-sf-k4n"/>
<constraint firstItem="etc-h5-0u2" firstAttribute="centerY" secondItem="PXk-ZD-TYS" secondAttribute="centerY" id="cW6-ue-5Vb"/>
<constraint firstItem="w7z-f3-kdT" firstAttribute="leading" secondItem="cE0-0g-Su5" secondAttribute="leading" id="eH4-0j-WXi"/>
<constraint firstItem="w7z-f3-kdT" firstAttribute="top" secondItem="cE0-0g-Su5" secondAttribute="top" id="kXk-s5-NTi"/>
<constraint firstItem="dxP-iB-dWk" firstAttribute="centerY" secondItem="cE0-0g-Su5" secondAttribute="centerY" id="lut-Up-d2d"/>
<constraint firstAttribute="trailing" secondItem="PXk-ZD-TYS" secondAttribute="trailing" constant="23" id="nlx-eq-jfm"/>
<constraint firstItem="sO8-Ds-mXZ" firstAttribute="top" secondItem="cE0-0g-Su5" secondAttribute="top" constant="35" id="oLB-32-Cmq"/>
<constraint firstAttribute="trailing" secondItem="PXk-ZD-TYS" secondAttribute="trailing" constant="18" id="nlx-eq-jfm"/>
<constraint firstItem="sO8-Ds-mXZ" firstAttribute="top" secondItem="cE0-0g-Su5" secondAttribute="top" constant="30" id="oLB-32-Cmq"/>
<constraint firstAttribute="centerX" secondItem="uRG-b0-CjY" secondAttribute="centerX" id="sca-zF-zuj"/>
<constraint firstItem="sO8-Ds-mXZ" firstAttribute="leading" secondItem="cE0-0g-Su5" secondAttribute="leading" constant="23" id="tCv-ru-PZS"/>
<constraint firstItem="sO8-Ds-mXZ" firstAttribute="leading" secondItem="cE0-0g-Su5" secondAttribute="leading" constant="18" id="tCv-ru-PZS"/>
<constraint firstItem="dxP-iB-dWk" firstAttribute="centerX" secondItem="cE0-0g-Su5" secondAttribute="centerX" id="xNd-lI-T6h"/>
</constraints>
</view>

View file

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="9531" systemVersion="15C50" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES">
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="9532" systemVersion="15C50" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES">
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9529"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9530"/>
</dependencies>
<objects>
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
@ -14,7 +14,7 @@
<rect key="frame" x="0.0" y="0.0" width="567" height="73"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="6Kl-sK-vhs">
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="6Kl-sK-vhs">
<rect key="frame" x="0.0" y="0.0" width="73" height="73"/>
<constraints>
<constraint firstAttribute="height" constant="73" id="HEG-jX-hiD"/>