Artwork + copying of password.
BIN
Default.png
Normal file
After Width: | Height: | Size: 63 KiB |
BIN
Default@2x.png
Normal file
After Width: | Height: | Size: 133 KiB |
@ -27,6 +27,8 @@
|
|||||||
DA5BFA61147E415C00F98B1E /* MainStoryboard_iPad.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = DA5BFA5F147E415C00F98B1E /* MainStoryboard_iPad.storyboard */; };
|
DA5BFA61147E415C00F98B1E /* MainStoryboard_iPad.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = DA5BFA5F147E415C00F98B1E /* MainStoryboard_iPad.storyboard */; };
|
||||||
DA5BFA64147E415C00F98B1E /* OnePassword.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = DA5BFA62147E415C00F98B1E /* OnePassword.xcdatamodeld */; };
|
DA5BFA64147E415C00F98B1E /* OnePassword.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = DA5BFA62147E415C00F98B1E /* OnePassword.xcdatamodeld */; };
|
||||||
DA5BFA67147E415C00F98B1E /* OPMainViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = DA5BFA66147E415C00F98B1E /* OPMainViewController.m */; };
|
DA5BFA67147E415C00F98B1E /* OPMainViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = DA5BFA66147E415C00F98B1E /* OPMainViewController.m */; };
|
||||||
|
DA5DB7A614BE4B19002DD256 /* Default.png in Resources */ = {isa = PBXBuildFile; fileRef = DA5DB7A514BE4B19002DD256 /* Default.png */; };
|
||||||
|
DA5DB7A814BE4B4B002DD256 /* Default@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = DA5DB7A714BE4B4B002DD256 /* Default@2x.png */; };
|
||||||
DA7C28C414AF078900491972 /* Bold_Lines.png in Resources */ = {isa = PBXBuildFile; fileRef = DA7C28A514AF078900491972 /* Bold_Lines.png */; };
|
DA7C28C414AF078900491972 /* Bold_Lines.png in Resources */ = {isa = PBXBuildFile; fileRef = DA7C28A514AF078900491972 /* Bold_Lines.png */; };
|
||||||
DA7C28C514AF078900491972 /* Box.png in Resources */ = {isa = PBXBuildFile; fileRef = DA7C28A614AF078900491972 /* Box.png */; };
|
DA7C28C514AF078900491972 /* Box.png in Resources */ = {isa = PBXBuildFile; fileRef = DA7C28A614AF078900491972 /* Box.png */; };
|
||||||
DA7C28C614AF078900491972 /* Dashed_Divider.png in Resources */ = {isa = PBXBuildFile; fileRef = DA7C28A714AF078900491972 /* Dashed_Divider.png */; };
|
DA7C28C614AF078900491972 /* Dashed_Divider.png in Resources */ = {isa = PBXBuildFile; fileRef = DA7C28A714AF078900491972 /* Dashed_Divider.png */; };
|
||||||
@ -58,6 +60,12 @@
|
|||||||
DA7C28E014AF078900491972 /* Smooth_Divider.png in Resources */ = {isa = PBXBuildFile; fileRef = DA7C28C114AF078900491972 /* Smooth_Divider.png */; };
|
DA7C28E014AF078900491972 /* Smooth_Divider.png in Resources */ = {isa = PBXBuildFile; fileRef = DA7C28C114AF078900491972 /* Smooth_Divider.png */; };
|
||||||
DA7C28E114AF078900491972 /* Square.png in Resources */ = {isa = PBXBuildFile; fileRef = DA7C28C214AF078900491972 /* Square.png */; };
|
DA7C28E114AF078900491972 /* Square.png in Resources */ = {isa = PBXBuildFile; fileRef = DA7C28C214AF078900491972 /* Square.png */; };
|
||||||
DA7C28E214AF078900491972 /* White_Rectangular.png in Resources */ = {isa = PBXBuildFile; fileRef = DA7C28C314AF078900491972 /* White_Rectangular.png */; };
|
DA7C28E214AF078900491972 /* White_Rectangular.png in Resources */ = {isa = PBXBuildFile; fileRef = DA7C28C314AF078900491972 /* White_Rectangular.png */; };
|
||||||
|
DAAF5C2214BF308400A0F1F0 /* Background.png in Resources */ = {isa = PBXBuildFile; fileRef = DAAF5C2014BF308400A0F1F0 /* Background.png */; };
|
||||||
|
DAAF5C2314BF308400A0F1F0 /* Background@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = DAAF5C2114BF308400A0F1F0 /* Background@2x.png */; };
|
||||||
|
DABF7DA514BE54E4007F3557 /* Default.png in Resources */ = {isa = PBXBuildFile; fileRef = DABF7DA414BE54E4007F3557 /* Default.png */; };
|
||||||
|
DABF7DAA14BE561C007F3557 /* Icon-72.png in Resources */ = {isa = PBXBuildFile; fileRef = DABF7DA714BE561C007F3557 /* Icon-72.png */; };
|
||||||
|
DABF7DAB14BE561C007F3557 /* Icon.png in Resources */ = {isa = PBXBuildFile; fileRef = DABF7DA814BE561C007F3557 /* Icon.png */; };
|
||||||
|
DABF7DAC14BE561C007F3557 /* Icon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = DABF7DA914BE561C007F3557 /* Icon@2x.png */; };
|
||||||
DAC6325E1486805C0075AEA5 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DA5BFA4A147E415C00F98B1E /* Foundation.framework */; };
|
DAC6325E1486805C0075AEA5 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DA5BFA4A147E415C00F98B1E /* Foundation.framework */; };
|
||||||
DAC6326D148680650075AEA5 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DA5BFA4A147E415C00F98B1E /* Foundation.framework */; };
|
DAC6326D148680650075AEA5 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DA5BFA4A147E415C00F98B1E /* Foundation.framework */; };
|
||||||
DAC63277148680700075AEA5 /* libuicolor-utilities.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DAC6325D1486805C0075AEA5 /* libuicolor-utilities.a */; };
|
DAC63277148680700075AEA5 /* libuicolor-utilities.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DAC6325D1486805C0075AEA5 /* libuicolor-utilities.a */; };
|
||||||
@ -195,6 +203,8 @@
|
|||||||
DA5BFA63147E415C00F98B1E /* OnePassword.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = OnePassword.xcdatamodel; sourceTree = "<group>"; };
|
DA5BFA63147E415C00F98B1E /* OnePassword.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = OnePassword.xcdatamodel; sourceTree = "<group>"; };
|
||||||
DA5BFA65147E415C00F98B1E /* OPMainViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OPMainViewController.h; sourceTree = "<group>"; };
|
DA5BFA65147E415C00F98B1E /* OPMainViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OPMainViewController.h; sourceTree = "<group>"; };
|
||||||
DA5BFA66147E415C00F98B1E /* OPMainViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = OPMainViewController.m; sourceTree = "<group>"; };
|
DA5BFA66147E415C00F98B1E /* OPMainViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = OPMainViewController.m; sourceTree = "<group>"; };
|
||||||
|
DA5DB7A514BE4B19002DD256 /* Default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Default.png; path = ../Default.png; sourceTree = "<group>"; };
|
||||||
|
DA5DB7A714BE4B4B002DD256 /* Default@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Default@2x.png"; path = "../Default@2x.png"; sourceTree = "<group>"; };
|
||||||
DA7C28A514AF078900491972 /* Bold_Lines.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Bold_Lines.png; sourceTree = "<group>"; };
|
DA7C28A514AF078900491972 /* Bold_Lines.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Bold_Lines.png; sourceTree = "<group>"; };
|
||||||
DA7C28A614AF078900491972 /* Box.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Box.png; sourceTree = "<group>"; };
|
DA7C28A614AF078900491972 /* Box.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Box.png; sourceTree = "<group>"; };
|
||||||
DA7C28A714AF078900491972 /* Dashed_Divider.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Dashed_Divider.png; sourceTree = "<group>"; };
|
DA7C28A714AF078900491972 /* Dashed_Divider.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Dashed_Divider.png; sourceTree = "<group>"; };
|
||||||
@ -226,6 +236,12 @@
|
|||||||
DA7C28C114AF078900491972 /* Smooth_Divider.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Smooth_Divider.png; sourceTree = "<group>"; };
|
DA7C28C114AF078900491972 /* Smooth_Divider.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Smooth_Divider.png; sourceTree = "<group>"; };
|
||||||
DA7C28C214AF078900491972 /* Square.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Square.png; sourceTree = "<group>"; };
|
DA7C28C214AF078900491972 /* Square.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Square.png; sourceTree = "<group>"; };
|
||||||
DA7C28C314AF078900491972 /* White_Rectangular.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = White_Rectangular.png; sourceTree = "<group>"; };
|
DA7C28C314AF078900491972 /* White_Rectangular.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = White_Rectangular.png; sourceTree = "<group>"; };
|
||||||
|
DAAF5C2014BF308400A0F1F0 /* Background.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Background.png; sourceTree = "<group>"; };
|
||||||
|
DAAF5C2114BF308400A0F1F0 /* Background@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Background@2x.png"; sourceTree = "<group>"; };
|
||||||
|
DABF7DA414BE54E4007F3557 /* Default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Default.png; sourceTree = SOURCE_ROOT; };
|
||||||
|
DABF7DA714BE561C007F3557 /* Icon-72.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon-72.png"; sourceTree = "<group>"; };
|
||||||
|
DABF7DA814BE561C007F3557 /* Icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Icon.png; sourceTree = "<group>"; };
|
||||||
|
DABF7DA914BE561C007F3557 /* Icon@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon@2x.png"; sourceTree = "<group>"; };
|
||||||
DAC6325D1486805C0075AEA5 /* libuicolor-utilities.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libuicolor-utilities.a"; sourceTree = BUILT_PRODUCTS_DIR; };
|
DAC6325D1486805C0075AEA5 /* libuicolor-utilities.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libuicolor-utilities.a"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
DAC6326C148680650075AEA5 /* libjrswizzle.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libjrswizzle.a; sourceTree = BUILT_PRODUCTS_DIR; };
|
DAC6326C148680650075AEA5 /* libjrswizzle.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libjrswizzle.a; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
DAC632791486809A0075AEA5 /* JRSwizzle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JRSwizzle.h; path = External/Pearl/External/jrswizzle/JRSwizzle.h; sourceTree = SOURCE_ROOT; };
|
DAC632791486809A0075AEA5 /* JRSwizzle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JRSwizzle.h; path = External/Pearl/External/jrswizzle/JRSwizzle.h; sourceTree = SOURCE_ROOT; };
|
||||||
@ -1421,6 +1437,13 @@
|
|||||||
DA5BFA51147E415C00F98B1E /* Supporting Files */ = {
|
DA5BFA51147E415C00F98B1E /* Supporting Files */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
DAAF5C2014BF308400A0F1F0 /* Background.png */,
|
||||||
|
DAAF5C2114BF308400A0F1F0 /* Background@2x.png */,
|
||||||
|
DABF7DA714BE561C007F3557 /* Icon-72.png */,
|
||||||
|
DABF7DA814BE561C007F3557 /* Icon.png */,
|
||||||
|
DABF7DA914BE561C007F3557 /* Icon@2x.png */,
|
||||||
|
DA5DB7A714BE4B4B002DD256 /* Default@2x.png */,
|
||||||
|
DA5DB7A514BE4B19002DD256 /* Default.png */,
|
||||||
DA7C28A414AF078900491972 /* divider */,
|
DA7C28A414AF078900491972 /* divider */,
|
||||||
DA5BFA52147E415C00F98B1E /* OnePassword-Info.plist */,
|
DA5BFA52147E415C00F98B1E /* OnePassword-Info.plist */,
|
||||||
DA5BFA53147E415C00F98B1E /* InfoPlist.strings */,
|
DA5BFA53147E415C00F98B1E /* InfoPlist.strings */,
|
||||||
@ -1569,6 +1592,7 @@
|
|||||||
DAC77CD31482AAD600BCF976 /* Resources */ = {
|
DAC77CD31482AAD600BCF976 /* Resources */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
DABF7DA414BE54E4007F3557 /* Default.png */,
|
||||||
DAC77CD41482AAD600BCF976 /* Pearl.strings */,
|
DAC77CD41482AAD600BCF976 /* Pearl.strings */,
|
||||||
);
|
);
|
||||||
path = Resources;
|
path = Resources;
|
||||||
@ -2861,6 +2885,14 @@
|
|||||||
DA7C28E214AF078900491972 /* White_Rectangular.png in Resources */,
|
DA7C28E214AF078900491972 /* White_Rectangular.png in Resources */,
|
||||||
DA007F5514B25EE100251337 /* ciphers.plist in Resources */,
|
DA007F5514B25EE100251337 /* ciphers.plist in Resources */,
|
||||||
DA007F5614B26EFA00251337 /* Pearl.strings in Resources */,
|
DA007F5614B26EFA00251337 /* Pearl.strings in Resources */,
|
||||||
|
DA5DB7A614BE4B19002DD256 /* Default.png in Resources */,
|
||||||
|
DA5DB7A814BE4B4B002DD256 /* Default@2x.png in Resources */,
|
||||||
|
DABF7DA514BE54E4007F3557 /* Default.png in Resources */,
|
||||||
|
DABF7DAA14BE561C007F3557 /* Icon-72.png in Resources */,
|
||||||
|
DABF7DAB14BE561C007F3557 /* Icon.png in Resources */,
|
||||||
|
DABF7DAC14BE561C007F3557 /* Icon@2x.png in Resources */,
|
||||||
|
DAAF5C2214BF308400A0F1F0 /* Background.png in Resources */,
|
||||||
|
DAAF5C2314BF308400A0F1F0 /* Background@2x.png in Resources */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
|
BIN
OnePassword/Background.png
Normal file
After Width: | Height: | Size: 84 KiB |
BIN
OnePassword/Background@2x.png
Normal file
After Width: | Height: | Size: 361 KiB |
BIN
OnePassword/Icon-72.png
Normal file
After Width: | Height: | Size: 6.4 KiB |
BIN
OnePassword/Icon-Small-50.png
Normal file
After Width: | Height: | Size: 3.5 KiB |
BIN
OnePassword/Icon-Small.png
Normal file
After Width: | Height: | Size: 1.7 KiB |
BIN
OnePassword/Icon-Small@2x.png
Normal file
After Width: | Height: | Size: 4.4 KiB |
BIN
OnePassword/Icon.png
Normal file
After Width: | Height: | Size: 4.4 KiB |
BIN
OnePassword/Icon@2x.png
Normal file
After Width: | Height: | Size: 13 KiB |
@ -20,5 +20,6 @@
|
|||||||
@property (weak, nonatomic) IBOutlet UISegmentedControl *contentType;
|
@property (weak, nonatomic) IBOutlet UISegmentedControl *contentType;
|
||||||
|
|
||||||
- (IBAction)didChangeContentType:(UISegmentedControl *)sender;
|
- (IBAction)didChangeContentType:(UISegmentedControl *)sender;
|
||||||
|
- (IBAction)didTriggerContent:(id)sender;
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
@ -55,6 +55,7 @@
|
|||||||
|
|
||||||
// Because IB's edit button doesn't auto-toggle self.editable like editButtonItem does.
|
// Because IB's edit button doesn't auto-toggle self.editable like editButtonItem does.
|
||||||
self.navigationItem.rightBarButtonItem = self.editButtonItem;
|
self.navigationItem.rightBarButtonItem = self.editButtonItem;
|
||||||
|
self.tableView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"Background.png"]];
|
||||||
|
|
||||||
[super viewDidLoad];
|
[super viewDidLoad];
|
||||||
}
|
}
|
||||||
@ -91,7 +92,9 @@
|
|||||||
|
|
||||||
- (void)updateWasAnimated:(BOOL)animated {
|
- (void)updateWasAnimated:(BOOL)animated {
|
||||||
|
|
||||||
self.typeLabel.text = self.activeElement? NSStringFromOPElementType(self.activeElement.type): @"moo";
|
self.searchDisplayController.searchBar.placeholder = self.activeElement.name;
|
||||||
|
|
||||||
|
self.typeLabel.text = self.activeElement? NSStringFromOPElementType(self.activeElement.type): @"";
|
||||||
|
|
||||||
self.contentTextView.alpha = self.contentType.selectedSegmentIndex == OPElementContentTypeNote? 1: 0;
|
self.contentTextView.alpha = self.contentType.selectedSegmentIndex == OPElementContentTypeNote? 1: 0;
|
||||||
self.contentTextView.editable = self.editing && self.activeElement.type & OPElementTypeStored;
|
self.contentTextView.editable = self.editing && self.activeElement.type & OPElementTypeStored;
|
||||||
@ -106,9 +109,6 @@
|
|||||||
|
|
||||||
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{
|
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{
|
||||||
NSString *contentDescription = self.activeElement.contentDescription;
|
NSString *contentDescription = self.activeElement.contentDescription;
|
||||||
if (contentDescription)
|
|
||||||
[self.activeElement use];
|
|
||||||
|
|
||||||
dispatch_async(dispatch_get_main_queue(), ^{
|
dispatch_async(dispatch_get_main_queue(), ^{
|
||||||
self.contentField.text = contentDescription;
|
self.contentField.text = contentDescription;
|
||||||
});
|
});
|
||||||
@ -123,6 +123,12 @@
|
|||||||
[self updateAnimated:YES];
|
[self updateAnimated:YES];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (IBAction)didTriggerContent:(id)sender {
|
||||||
|
|
||||||
|
[[UIPasteboard generalPasteboard] setValue:self.activeElement.content
|
||||||
|
forPasteboardType:self.activeElement.contentUTI];
|
||||||
|
}
|
||||||
|
|
||||||
- (void)didSelectType:(OPElementType)type {
|
- (void)didSelectType:(OPElementType)type {
|
||||||
|
|
||||||
self.activeElement.type = type;
|
self.activeElement.type = type;
|
||||||
@ -132,10 +138,11 @@
|
|||||||
- (void)didSelectElement:(OPElementEntity *)element {
|
- (void)didSelectElement:(OPElementEntity *)element {
|
||||||
|
|
||||||
self.activeElement = element;
|
self.activeElement = element;
|
||||||
|
[self.activeElement use];
|
||||||
[self updateAnimated:YES];
|
[self updateAnimated:YES];
|
||||||
|
|
||||||
|
self.searchDisplayController.searchBar.text = @"";
|
||||||
[self.searchDisplayController setActive:NO animated:YES];
|
[self.searchDisplayController setActive:NO animated:YES];
|
||||||
self.searchDisplayController.searchBar.text = self.activeElement.name;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar {
|
- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar {
|
||||||
@ -143,4 +150,9 @@
|
|||||||
[self updateAnimated:YES];
|
[self updateAnimated:YES];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||||
|
|
||||||
|
return NO;
|
||||||
|
}
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
@ -9,7 +9,25 @@
|
|||||||
<key>CFBundleExecutable</key>
|
<key>CFBundleExecutable</key>
|
||||||
<string>${EXECUTABLE_NAME}</string>
|
<string>${EXECUTABLE_NAME}</string>
|
||||||
<key>CFBundleIconFiles</key>
|
<key>CFBundleIconFiles</key>
|
||||||
<array/>
|
<array>
|
||||||
|
<string>Icon.png</string>
|
||||||
|
<string>Icon@2x.png</string>
|
||||||
|
<string>Icon-72.png</string>
|
||||||
|
</array>
|
||||||
|
<key>CFBundleIcons</key>
|
||||||
|
<dict>
|
||||||
|
<key>CFBundlePrimaryIcon</key>
|
||||||
|
<dict>
|
||||||
|
<key>CFBundleIconFiles</key>
|
||||||
|
<array>
|
||||||
|
<string>Icon.png</string>
|
||||||
|
<string>Icon@2x.png</string>
|
||||||
|
<string>Icon-72.png</string>
|
||||||
|
</array>
|
||||||
|
<key>UIPrerenderedIcon</key>
|
||||||
|
<true/>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
<key>CFBundleIdentifier</key>
|
<key>CFBundleIdentifier</key>
|
||||||
<string>com.lyndir.lhunath.${PRODUCT_NAME:rfc1034identifier}</string>
|
<string>com.lyndir.lhunath.${PRODUCT_NAME:rfc1034identifier}</string>
|
||||||
<key>CFBundleInfoDictionaryVersion</key>
|
<key>CFBundleInfoDictionaryVersion</key>
|
||||||
@ -32,12 +50,12 @@
|
|||||||
<string>MainStoryboard_iPhone</string>
|
<string>MainStoryboard_iPhone</string>
|
||||||
<key>UIMainStoryboardFile~ipad</key>
|
<key>UIMainStoryboardFile~ipad</key>
|
||||||
<string>MainStoryboard_iPad</string>
|
<string>MainStoryboard_iPad</string>
|
||||||
|
<key>UIPrerenderedIcon</key>
|
||||||
|
<true/>
|
||||||
<key>UIRequiredDeviceCapabilities</key>
|
<key>UIRequiredDeviceCapabilities</key>
|
||||||
<array>
|
<array>
|
||||||
<string>armv7</string>
|
<string>armv7</string>
|
||||||
</array>
|
</array>
|
||||||
<key>UIStatusBarStyle</key>
|
|
||||||
<string>UIStatusBarStyleBlackOpaque</string>
|
|
||||||
<key>UISupportedInterfaceOrientations</key>
|
<key>UISupportedInterfaceOrientations</key>
|
||||||
<array>
|
<array>
|
||||||
<string>UIInterfaceOrientationPortrait</string>
|
<string>UIInterfaceOrientationPortrait</string>
|
||||||
|
@ -218,15 +218,6 @@
|
|||||||
</scene>
|
</scene>
|
||||||
<scene sceneID="Rm6-uL-WP4">
|
<scene sceneID="Rm6-uL-WP4">
|
||||||
<objects>
|
<objects>
|
||||||
<searchDisplayController id="P8c-gf-nN3">
|
|
||||||
<connections>
|
|
||||||
<outlet property="delegate" destination="0QO-2P-OhD" id="gst-Hm-5ja"/>
|
|
||||||
<outlet property="searchBar" destination="qeo-n2-WVh" id="bFO-FC-Xdj"/>
|
|
||||||
<outlet property="searchContentsController" destination="b9f-OB-AqY" id="xgo-Uj-wpm"/>
|
|
||||||
<outlet property="searchResultsDataSource" destination="0QO-2P-OhD" id="XJh-rC-kId"/>
|
|
||||||
<outlet property="searchResultsDelegate" destination="0QO-2P-OhD" id="Bm8-Q3-lLA"/>
|
|
||||||
</connections>
|
|
||||||
</searchDisplayController>
|
|
||||||
<placeholder placeholderIdentifier="IBFirstResponder" id="8LM-KK-u1f" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
<placeholder placeholderIdentifier="IBFirstResponder" id="8LM-KK-u1f" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||||
<tableViewController id="b9f-OB-AqY" customClass="OPMainViewController" sceneMemberID="viewController">
|
<tableViewController id="b9f-OB-AqY" customClass="OPMainViewController" sceneMemberID="viewController">
|
||||||
<tableView key="view" opaque="NO" clipsSubviews="YES" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="static" style="grouped" separatorStyle="singleLineEtched" rowHeight="44" sectionHeaderHeight="10" sectionFooterHeight="10" id="y6z-21-Ptd">
|
<tableView key="view" opaque="NO" clipsSubviews="YES" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="static" style="grouped" separatorStyle="singleLineEtched" rowHeight="44" sectionHeaderHeight="10" sectionFooterHeight="10" id="y6z-21-Ptd">
|
||||||
@ -252,6 +243,9 @@
|
|||||||
<state key="highlighted">
|
<state key="highlighted">
|
||||||
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
<color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||||
</state>
|
</state>
|
||||||
|
<connections>
|
||||||
|
<action selector="didTriggerContent:" destination="b9f-OB-AqY" eventType="touchUpInside" id="Ost-qu-K2L"/>
|
||||||
|
</connections>
|
||||||
</button>
|
</button>
|
||||||
<imageView userInteractionEnabled="NO" contentMode="center" image="Square.png" id="qWn-td-zdb">
|
<imageView userInteractionEnabled="NO" contentMode="center" image="Square.png" id="qWn-td-zdb">
|
||||||
<rect key="frame" x="0.0" y="0.0" width="320" height="222"/>
|
<rect key="frame" x="0.0" y="0.0" width="320" height="222"/>
|
||||||
@ -269,7 +263,7 @@
|
|||||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||||
<color key="textColor" red="0.36470589040000001" green="0.40000003579999999" blue="0.47843140360000003" alpha="1" colorSpace="deviceRGB"/>
|
<color key="textColor" red="0.36470589040000001" green="0.40000003579999999" blue="0.47843140360000003" alpha="1" colorSpace="deviceRGB"/>
|
||||||
<fontDescription key="fontDescription" name="AmericanTypewriter-Bold" family="American Typewriter" pointSize="20"/>
|
<fontDescription key="fontDescription" name="AmericanTypewriter-Bold" family="American Typewriter" pointSize="20"/>
|
||||||
<textInputTraits key="textInputTraits"/>
|
<textInputTraits key="textInputTraits" autocorrectionType="no"/>
|
||||||
</textField>
|
</textField>
|
||||||
</subviews>
|
</subviews>
|
||||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||||
@ -292,7 +286,7 @@
|
|||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
|
||||||
<gestureRecognizers/>
|
<gestureRecognizers/>
|
||||||
<color key="tintColor" red="0.36470589040000001" green="0.40000003579999999" blue="0.47843140360000003" alpha="1" colorSpace="deviceRGB"/>
|
<color key="tintColor" red="0.36470589040000001" green="0.40000003579999999" blue="0.47843140360000003" alpha="1" colorSpace="deviceRGB"/>
|
||||||
<textInputTraits key="textInputTraits"/>
|
<textInputTraits key="textInputTraits" autocorrectionType="no" keyboardType="URL"/>
|
||||||
<connections>
|
<connections>
|
||||||
<outlet property="delegate" destination="b9f-OB-AqY" id="8OW-dn-MdW"/>
|
<outlet property="delegate" destination="b9f-OB-AqY" id="8OW-dn-MdW"/>
|
||||||
</connections>
|
</connections>
|
||||||
@ -352,6 +346,15 @@
|
|||||||
<outlet property="typeLabel" destination="QgX-q3-JLG" id="tv1-jy-Qbu"/>
|
<outlet property="typeLabel" destination="QgX-q3-JLG" id="tv1-jy-Qbu"/>
|
||||||
</connections>
|
</connections>
|
||||||
</tableViewController>
|
</tableViewController>
|
||||||
|
<searchDisplayController id="P8c-gf-nN3">
|
||||||
|
<connections>
|
||||||
|
<outlet property="delegate" destination="0QO-2P-OhD" id="gst-Hm-5ja"/>
|
||||||
|
<outlet property="searchBar" destination="qeo-n2-WVh" id="bFO-FC-Xdj"/>
|
||||||
|
<outlet property="searchContentsController" destination="b9f-OB-AqY" id="xgo-Uj-wpm"/>
|
||||||
|
<outlet property="searchResultsDataSource" destination="0QO-2P-OhD" id="XJh-rC-kId"/>
|
||||||
|
<outlet property="searchResultsDelegate" destination="0QO-2P-OhD" id="Bm8-Q3-lLA"/>
|
||||||
|
</connections>
|
||||||
|
</searchDisplayController>
|
||||||
<customObject id="0QO-2P-OhD" customClass="OPSearchDelegate">
|
<customObject id="0QO-2P-OhD" customClass="OPSearchDelegate">
|
||||||
<connections>
|
<connections>
|
||||||
<outlet property="delegate" destination="b9f-OB-AqY" id="y3b-no-DZQ"/>
|
<outlet property="delegate" destination="b9f-OB-AqY" id="y3b-no-DZQ"/>
|
||||||
@ -389,6 +392,7 @@
|
|||||||
<source key="sourceIdentifier" type="project" relativePath="./Classes/OPMainViewController.h"/>
|
<source key="sourceIdentifier" type="project" relativePath="./Classes/OPMainViewController.h"/>
|
||||||
<relationships>
|
<relationships>
|
||||||
<relationship kind="action" name="didChangeContentType:" candidateClass="UISegmentedControl"/>
|
<relationship kind="action" name="didChangeContentType:" candidateClass="UISegmentedControl"/>
|
||||||
|
<relationship kind="action" name="didTriggerContent:"/>
|
||||||
<relationship kind="outlet" name="contentField" candidateClass="UITextField"/>
|
<relationship kind="outlet" name="contentField" candidateClass="UITextField"/>
|
||||||
<relationship kind="outlet" name="contentTextView" candidateClass="UITextView"/>
|
<relationship kind="outlet" name="contentTextView" candidateClass="UITextView"/>
|
||||||
<relationship kind="outlet" name="contentType" candidateClass="UISegmentedControl"/>
|
<relationship kind="outlet" name="contentType" candidateClass="UISegmentedControl"/>
|
||||||
@ -408,7 +412,7 @@
|
|||||||
</class>
|
</class>
|
||||||
</classes>
|
</classes>
|
||||||
<simulatedMetricsContainer key="defaultSimulatedMetrics">
|
<simulatedMetricsContainer key="defaultSimulatedMetrics">
|
||||||
<simulatedStatusBarMetrics key="statusBar" statusBarStyle="blackTranslucent"/>
|
<simulatedStatusBarMetrics key="statusBar"/>
|
||||||
<simulatedOrientationMetrics key="orientation"/>
|
<simulatedOrientationMetrics key="orientation"/>
|
||||||
<simulatedScreenMetrics key="destination"/>
|
<simulatedScreenMetrics key="destination"/>
|
||||||
</simulatedMetricsContainer>
|
</simulatedMetricsContainer>
|
||||||
|
BIN
OnePassword/iTunesArtwork.png
Normal file
After Width: | Height: | Size: 153 KiB |
1168
Scripts/bashlib
Normal file
60
Scripts/checkLocalization
Executable file
@ -0,0 +1,60 @@
|
|||||||
|
#! /usr/bin/env bash
|
||||||
|
source bashlib
|
||||||
|
|
||||||
|
isIn() {
|
||||||
|
local key=$1; shift
|
||||||
|
|
||||||
|
for value
|
||||||
|
do [[ $value = "$key" ]] && return; done
|
||||||
|
}
|
||||||
|
|
||||||
|
cd "${0%/*}/../../"
|
||||||
|
|
||||||
|
emit "Enumerating localization keys"
|
||||||
|
code=$(find Classes -type f -exec grep -o 'NSLocalizedString(@"[^"]*"' {} + | sed -n 's/.*\("[^"]*"\).*/\1/p' | sort -bu)
|
||||||
|
for l in Resources/*.lproj/Localizable.strings; do
|
||||||
|
k=${l#*/}; k=${k%%/*}
|
||||||
|
emit " - Found language: ${k%.lproj}"
|
||||||
|
|
||||||
|
lang+=( "$k" )
|
||||||
|
lprojLocal+=( "$(sed -n '/\/\/[^"]*\[REMOTE\][^"]*$/!s/^\("[^"]*"\).*/\1/p' "$l" | sort -bu)" )
|
||||||
|
lprojAll+=( "$(sed -n 's/^\("[^"]*"\).*/\1/p' "$l" | sort -u)" )
|
||||||
|
done
|
||||||
|
|
||||||
|
allhealthy=1
|
||||||
|
healthy=1
|
||||||
|
echo; emit "Looking for unused localization keys"
|
||||||
|
for l in "${!lang[@]}"; do
|
||||||
|
while read; do
|
||||||
|
(( healthy )) && emit -y "Not used in code or marked '// [REMOTE]':"
|
||||||
|
allhealthy=0
|
||||||
|
healthy=0
|
||||||
|
emit -y " ${lang[l]}: ${REPLY##*([[:space:]])} "
|
||||||
|
done < <(comm -1 -3 <(printf '%s\n' "$code") <(printf '%s\n' "${lprojLocal[l]}"))
|
||||||
|
done
|
||||||
|
(( healthy )) && emit "No unused keys."
|
||||||
|
|
||||||
|
healthy=1
|
||||||
|
echo; emit "Looking for missing localization keys"
|
||||||
|
for l in "${!lang[@]}"; do
|
||||||
|
chealthy=1
|
||||||
|
while read; do
|
||||||
|
(( chealthy )) && emit -y "Used by code:"
|
||||||
|
allhealthy=0
|
||||||
|
chealthy=0
|
||||||
|
healthy=0
|
||||||
|
emit -r " ${lang[l]}: ${REPLY##*([[:space:]])} "
|
||||||
|
done < <(comm -2 -3 <(printf '%s\n' "$code") <(printf '%s\n' "${lprojAll[l]}"))
|
||||||
|
khealthy=1
|
||||||
|
while read; do
|
||||||
|
(( khealthy )) && emit -y "Present in other languages:"
|
||||||
|
allhealthy=0
|
||||||
|
khealthy=0
|
||||||
|
healthy=0
|
||||||
|
emit -r " ${lang[l]}: ${REPLY##*([[:space:]])} "
|
||||||
|
done < <(for ol in "${!lang[@]}"; do comm -1 -3 <(printf '%s\n' "${lprojAll[l]}") <(printf '%s\n' "${lprojAll[ol]}"); done | sort -bu)
|
||||||
|
done
|
||||||
|
(( healthy )) && emit "No missing keys."
|
||||||
|
|
||||||
|
echo
|
||||||
|
(( allhealthy )) && emit "All good." || emit -y "Some issues detected."
|
32
Scripts/convertImages
Executable file
@ -0,0 +1,32 @@
|
|||||||
|
#! /usr/bin/env bash
|
||||||
|
source bashlib
|
||||||
|
shopt -s nullglob
|
||||||
|
|
||||||
|
emit "Converting iTunesArtwork"
|
||||||
|
icons=(
|
||||||
|
[29]="Icon-Small.png"
|
||||||
|
[50]="Icon-Small-50.png"
|
||||||
|
[58]="Icon-Small@2x.png"
|
||||||
|
[57]="Icon.png"
|
||||||
|
[72]="Icon-72.png"
|
||||||
|
[114]="Icon@2x.png"
|
||||||
|
)
|
||||||
|
cd "${0%/*}/../OnePassword"
|
||||||
|
|
||||||
|
for size in "${!icons[@]}"; do
|
||||||
|
file=${icons[size]}
|
||||||
|
|
||||||
|
emit "$file ($size px)" --
|
||||||
|
convert "iTunesArtwork.png" -resize "${size}x${size}" "$file"
|
||||||
|
emit -$?
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
echo
|
||||||
|
emit "Converting @2x artwork"
|
||||||
|
for file in !(Icon*)@2x.png; do
|
||||||
|
emit "${file/@2x}" --
|
||||||
|
convert "$file" -resize 50% "${file/@2x}"
|
||||||
|
emit -$?
|
||||||
|
done
|
||||||
|
|
@ -4,13 +4,13 @@ cd "${BASH_SOURCE%/*}/.."
|
|||||||
shopt -s extglob
|
shopt -s extglob
|
||||||
|
|
||||||
|
|
||||||
## Pearl
|
## LisuUI
|
||||||
#
|
#
|
||||||
## Submodules that need to be checked out.
|
## Submodules that need to be checked out.
|
||||||
dependencies=( External/Pearl External/Pearl:External/{jrswizzle,uicolor-utilities} )
|
dependencies=( External/Pearl External/Pearl:External/jrswizzle External/Pearl:External/uicolor-utilities )
|
||||||
|
|
||||||
## Custom migration.
|
## Custom migration.
|
||||||
# Nothing yet.
|
# None yet.
|
||||||
|
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
|