Skip to content

Commit 2e6c2ca

Browse files
1.15.1
1 parent 1987ba6 commit 2e6c2ca

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+859
-678
lines changed

About/AboutViewController.m

-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
#import "DebugHelper.h"
1111
#import "ClipboardManager.h"
1212
#import "Alerts.h"
13-
//#import "Settings.h"
1413
#import "SharedAppAndAutoFillSettings.h"
1514
#import "Utils.h"
1615
#import "ProUpgradeIAPManager.h"

CustomFieldTableCell.m

+2-2
Original file line numberDiff line numberDiff line change
@@ -70,14 +70,14 @@ - (IBAction)toggleShowHide:(id)sender {
7070

7171
- (void)bindConcealed {
7272
if(self._concealed) {
73-
[self.buttonShowHide setImage:[UIImage imageNamed:@"show"] forState:UIControlStateNormal];
73+
[self.buttonShowHide setImage:[UIImage imageNamed:@"visible"] forState:UIControlStateNormal];
7474

7575
self.valueLabel.text = NSLocalizedString(@"generic_masked_protected_field_text", @"*****************");
7676

7777
self.valueLabel.textColor = [UIColor lightGrayColor];
7878
}
7979
else {
80-
[self.buttonShowHide setImage:[UIImage imageNamed:@"hide"] forState:UIControlStateNormal];
80+
[self.buttonShowHide setImage:[UIImage imageNamed:@"invisible"] forState:UIControlStateNormal];
8181

8282
BOOL dark = NO;
8383
if (@available(iOS 12.0, *)) {

StrongBox Auto Fill/Info.plist

+2-2
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
<key>CFBundlePackageType</key>
1818
<string>XPC!</string>
1919
<key>CFBundleShortVersionString</key>
20-
<string>$(MARKETING_VERSION)</string>
20+
<string>1.52.7</string>
2121
<key>CFBundleURLTypes</key>
2222
<array>
2323
<dict>
@@ -30,7 +30,7 @@
3030
</dict>
3131
</array>
3232
<key>CFBundleVersion</key>
33-
<string>3029</string>
33+
<string>3030</string>
3434
<key>NSAppTransportSecurity</key>
3535
<dict>
3636
<key>NSAllowsArbitraryLoads</key>

StrongBox/AppDelegate.m

+1
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ @implementation AppDelegate
4141
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
4242

4343

44+
4445

4546
[self installTopLevelExceptionHandlers];
4647

StrongBox/DatabaseCell.m

+1-1
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ - (void)populateCell:(SafeMetaData *)database disabled:(BOOL)disabled autoFill:(
161161
UIImage* databaseIcon = SharedAppAndAutoFillSettings.sharedInstance.showDatabaseIcon ? [UIImage imageNamed:databaseIconName] : nil;
162162

163163
if (disabled) {
164-
databaseIcon = SharedAppAndAutoFillSettings.sharedInstance.showDatabaseIcon ? [UIImage imageNamed:@"cancel_32"] : nil;
164+
databaseIcon = SharedAppAndAutoFillSettings.sharedInstance.showDatabaseIcon ? [UIImage imageNamed:@"cancel"] : nil;
165165

166166
if (autoFill) {
167167
subtitle2 = database.autoFillEnabled ?

StrongBox/DatabasePreferencesController.m

+9
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ @interface DatabasePreferencesController ()
2727

2828
@property (weak, nonatomic) IBOutlet UILabel *labelDatabaseAutoLockDelay;
2929
@property (weak, nonatomic) IBOutlet UISwitch *switchDatabaseAutoLockEnabled;
30+
@property (weak, nonatomic) IBOutlet UISwitch *switchLockOnDeviceLock;
3031

3132
@property (weak, nonatomic) IBOutlet UISwitch *switchAllowBiometric;
3233
@property (weak, nonatomic) IBOutlet UILabel *labelAllowBiometricSetting;
@@ -222,6 +223,8 @@ - (void)bindUi {
222223
} else {
223224
self.labelQuickTypeFormat.textColor = self.switchQuickTypeAutoFill.on ? UIColor.blackColor : UIColor.lightGrayColor;
224225
}
226+
227+
self.switchLockOnDeviceLock.on = self.viewModel.metadata.autoLockOnDeviceLock;
225228
}
226229

227230
- (IBAction)onDone:(id)sender {
@@ -379,4 +382,10 @@ - (BOOL)canToggleTouchId {
379382
return BiometricsManager.isBiometricIdAvailable && [SharedAppAndAutoFillSettings.sharedInstance isProOrFreeTrial];
380383
}
381384

385+
- (IBAction)onSwitchLockOnDeviceLock:(id)sender {
386+
self.viewModel.metadata.autoLockOnDeviceLock = self.switchLockOnDeviceLock.on;
387+
[SafesList.sharedInstance update:self.viewModel.metadata];
388+
[self bindUi];
389+
}
390+
382391
@end

StrongBox/OldCustomFieldCell.xib

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
<?xml version="1.0" encoding="UTF-8"?>
2-
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="17156" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
2+
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="17701" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
33
<device id="retina6_1" orientation="portrait" appearance="light"/>
44
<dependencies>
5-
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="17126"/>
5+
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="17703"/>
66
<capability name="Stack View standard spacing" minToolsVersion="9.0"/>
77
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
88
</dependencies>
@@ -38,7 +38,7 @@
3838
<constraint firstAttribute="height" constant="32" id="10E-UU-c26"/>
3939
<constraint firstAttribute="width" constant="32" id="bet-Q7-6Sd"/>
4040
</constraints>
41-
<state key="normal" image="show-24"/>
41+
<state key="normal" image="show"/>
4242
<connections>
4343
<action selector="toggleShowHide:" destination="2ui-jb-htS" eventType="touchUpInside" id="q72-n9-u9c"/>
4444
</connections>
@@ -65,6 +65,6 @@
6565
</tableViewCell>
6666
</objects>
6767
<resources>
68-
<image name="show-24" width="24" height="24"/>
68+
<image name="show" width="512" height="512"/>
6969
</resources>
7070
</document>

StrongBox/RecordView.m

+1-1
Original file line numberDiff line numberDiff line change
@@ -477,7 +477,7 @@ - (void)enableDisableUiForEditing {
477477
self.textViewNotes.textColor = self.editing ? [UIColor blackColor] : [UIColor grayColor];
478478
self.textViewNotes.layer.borderColor = self.editing ? [UIColor darkGrayColor].CGColor : [UIColor lightGrayColor].CGColor;
479479

480-
UIImage *btnImage = [UIImage imageNamed:self.isEditing ? @"syncronize" : @"copy_64"];
480+
UIImage *btnImage = [UIImage imageNamed:self.isEditing ? @"syncronize" : @"copy"];
481481

482482
[self.buttonGeneratePassword setImage:btnImage forState:UIControlStateNormal];
483483
(self.buttonGeneratePassword).enabled = self.editing || (!self.isEditing && (self.record != nil && (self.record.fields.password).length));

StrongBox/RecordView.storyboard

+9-9
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
<?xml version="1.0" encoding="UTF-8"?>
2-
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="17156" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="1ud-dC-1he">
2+
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="17701" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="1ud-dC-1he">
33
<device id="retina6_1" orientation="portrait" appearance="light"/>
44
<dependencies>
5-
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="17126"/>
5+
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="17703"/>
66
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
77
</dependencies>
88
<scenes>
@@ -229,7 +229,7 @@
229229
<constraint firstAttribute="height" constant="40" id="wId-vU-GnM"/>
230230
</constraints>
231231
<inset key="imageEdgeInsets" minX="5" minY="5" maxX="5" maxY="5"/>
232-
<state key="normal" image="clock_64"/>
232+
<state key="normal" image="timer"/>
233233
<connections>
234234
<action selector="onViewHistory:" destination="1ud-dC-1he" eventType="touchUpInside" id="wYJ-8l-m0D"/>
235235
</connections>
@@ -291,7 +291,7 @@
291291
<constraint firstAttribute="width" constant="40" id="ViF-Fw-7th"/>
292292
</constraints>
293293
<inset key="imageEdgeInsets" minX="5" minY="5" maxX="5" maxY="5"/>
294-
<state key="normal" image="copy_64"/>
294+
<state key="normal" image="copy"/>
295295
<connections>
296296
<action selector="onCopyTotp:" destination="1ud-dC-1he" eventType="touchUpInside" id="aeF-Rw-rH9"/>
297297
</connections>
@@ -352,7 +352,7 @@
352352
<constraint firstAttribute="width" constant="40" id="Ycn-5R-Jae"/>
353353
</constraints>
354354
<inset key="imageEdgeInsets" minX="5" minY="5" maxX="5" maxY="5"/>
355-
<state key="normal" image="copy_64"/>
355+
<state key="normal" image="copy"/>
356356
<connections>
357357
<action selector="onCopyUsername:" destination="1ud-dC-1he" eventType="touchUpInside" id="Fpq-bm-QIq"/>
358358
</connections>
@@ -393,7 +393,7 @@
393393
<constraint firstAttribute="width" constant="40" id="tO7-rt-yJw"/>
394394
</constraints>
395395
<inset key="imageEdgeInsets" minX="5" minY="5" maxX="5" maxY="5"/>
396-
<state key="normal" image="copy_64"/>
396+
<state key="normal" image="copy"/>
397397
<connections>
398398
<action selector="onCopyEmail:" destination="1ud-dC-1he" eventType="touchUpInside" id="FMB-BD-qtO"/>
399399
</connections>
@@ -443,7 +443,7 @@
443443
<constraint firstAttribute="height" constant="40" id="cK1-tI-dSF"/>
444444
</constraints>
445445
<inset key="imageEdgeInsets" minX="5" minY="5" maxX="5" maxY="5"/>
446-
<state key="normal" image="copy_64"/>
446+
<state key="normal" image="copy"/>
447447
<connections>
448448
<action selector="onCopyUrl:" destination="1ud-dC-1he" eventType="touchUpInside" id="ybQ-Vo-4km"/>
449449
</connections>
@@ -627,10 +627,10 @@
627627
</scenes>
628628
<resources>
629629
<image name="C00_Password" width="48" height="48"/>
630-
<image name="clock_64" width="64" height="64"/>
631-
<image name="copy_64" width="64" height="64"/>
630+
<image name="copy" width="30" height="30"/>
632631
<image name="document" width="30" height="30"/>
633632
<image name="services" width="30" height="30"/>
634633
<image name="syncronize" width="30" height="30"/>
634+
<image name="timer" width="30" height="30"/>
635635
</resources>
636636
</document>

StrongBox/SFTPStorageProvider.m

+6
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,14 @@ @interface SFTPStorageProvider ()
3636
@property NMSFTP* maintainedSessionForListing;
3737
@property SFTPSessionConfiguration* maintainedConfigurationForFastListing;
3838

39+
#if TARGET_OS_IPHONE
40+
41+
#else
42+
3943
@property ProgressWindow* progressWindow;
4044

45+
#endif
46+
4147
@end
4248

4349
@implementation SFTPStorageProvider

StrongBox/SafeMetaData.h

+2
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,8 @@ NS_ASSUME_NONNULL_BEGIN
153153
@property BOOL immediateOfflineOfferIfOfflineDetected;
154154

155155
@property QuickTypeAutoFillDisplayFormat quickTypeDisplayFormat;
156+
@property BOOL emptyOrNilPwPreferNilCheckFirst;
157+
@property BOOL autoLockOnDeviceLock;
156158

157159
@end
158160

StrongBox/SafeMetaData.m

+18
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ - (instancetype)init {
8686

8787
self.conflictResolutionStrategy = kConflictResolutionStrategyAsk;
8888
self.quickTypeDisplayFormat = kQuickTypeFormatTitleThenUsername;
89+
self.autoLockOnDeviceLock = YES;
8990
}
9091

9192
return self;
@@ -221,6 +222,21 @@ + (instancetype)fromJsonSerializationDictionary:(NSDictionary *)jsonDictionary {
221222
ret.quickTypeDisplayFormat = kQuickTypeFormatTitleThenUsername;
222223
}
223224

225+
226+
227+
if ( jsonDictionary[@"emptyOrNilPwPreferNilCheckFirst"] != nil ) {
228+
ret.emptyOrNilPwPreferNilCheckFirst = ((NSNumber*)jsonDictionary[@"emptyOrNilPwPreferNilCheckFirst"]).boolValue;
229+
}
230+
231+
232+
233+
if ( jsonDictionary[@"autoLockOnDeviceLock"] != nil ) {
234+
ret.autoLockOnDeviceLock = ((NSNumber*)jsonDictionary[@"autoLockOnDeviceLock"]).boolValue;
235+
}
236+
else {
237+
ret.autoLockOnDeviceLock = YES;
238+
}
239+
224240
return ret;
225241
}
226242

@@ -279,6 +295,8 @@ - (NSDictionary *)getJsonSerializationDictionary {
279295
@"immediateOfflineOfferIfOfflineDetected" : @(self.immediateOfflineOfferIfOfflineDetected),
280296
@"quickTypeEnabled" : @(self.quickTypeEnabled),
281297
@"quickTypeDisplayFormat" : @(self.quickTypeDisplayFormat),
298+
@"emptyOrNilPwPreferNilCheckFirst" : @(self.emptyOrNilPwPreferNilCheckFirst),
299+
@"autoLockOnDeviceLock" : @(self.autoLockOnDeviceLock)
282300
}];
283301

284302
if (self.nickName != nil) {

StrongBox/SafeStorageProviderFactory.m

+12-7
Original file line numberDiff line numberDiff line change
@@ -118,17 +118,18 @@ + (NSString*)getDisplayNameForProvider:(StorageProvider)provider database:(METAD
118118
NSLocalizedString(@"autofill_safes_vc_storage_local_name", @"Local") :
119119
NSLocalizedString(@"autofill_safes_vc_storage_local_docs_name", @"Local (Documents)");
120120
#else
121-
_displayName = NSLocalizedString(@"storage_provider_name_local_device", @"Local Device");
122-
if([_displayName isEqualToString:@"storage_provider_name_local_device"]) {
123-
_displayName = @"Local Device";
124-
}
121+
_displayName = NSLocalizedString(@"storage_provider_name_mac_file_short", @"File");
125122
#endif
126123
}
127124
else {
125+
#if TARGET_OS_IPHONE
128126
_displayName = NSLocalizedString(@"storage_provider_name_local_device", @"Local Device");
129127
if([_displayName isEqualToString:@"storage_provider_name_local_device"]) {
130128
_displayName = @"Local Device";
131129
}
130+
#else
131+
_displayName = NSLocalizedString(@"storage_provider_name_mac_file_short", @"File");
132+
#endif
132133
}
133134
}
134135
else if(provider == kOneDrive) {
@@ -150,10 +151,14 @@ + (NSString*)getDisplayNameForProvider:(StorageProvider)provider database:(METAD
150151
}
151152
}
152153
else if(provider == kWebDAV) {
154+
#if TARGET_OS_IPHONE
153155
_displayName = NSLocalizedString(@"storage_provider_name_webdav", @"WebDAV");
154156
if([_displayName isEqualToString:@"storage_provider_name_webdav"]) {
155157
_displayName = @"WebDAV";
156158
}
159+
#else
160+
_displayName = @"DAV";
161+
#endif
157162
}
158163
else {
159164
_displayName = @"SafeStorageProviderFactory::getDisplayName Unknown";
@@ -174,7 +179,7 @@ + (NSString*)getIconForProvider:(StorageProvider)provider {
174179
return @"dropbox-blue-32x32-nologo";
175180
}
176181
else if (provider == kiCloud) {
177-
return @"icloud-32";
182+
return @"cloud";
178183
}
179184
else if (provider == kLocalDevice) {
180185
return @"iphone_x";
@@ -186,10 +191,10 @@ + (NSString*)getIconForProvider:(StorageProvider)provider {
186191
return @"lock";
187192
}
188193
else if(provider == kSFTP) {
189-
return @"sftp-32x32";
194+
return @"cloud-sftp";
190195
}
191196
else if(provider == kWebDAV) {
192-
return @"webdav-32x32";
197+
return @"cloud-webdav";
193198
}
194199
else {
195200
return @"SafeStorageProviderFactory::getIcon Unknown";

0 commit comments

Comments
 (0)