mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-08-08 08:31:13 +00:00
Simplify privacy settings
- Remove update settings UI - Only one property that defines if user and usage data is send (only if the app is not running in the app store) - Update documentation
This commit is contained in:
parent
916fc65879
commit
3fd3c083bf
@ -73,76 +73,204 @@ typedef enum {
|
||||
}
|
||||
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Setting Properties
|
||||
///-----------------------------------------------------------------------------
|
||||
/// @name Delegate
|
||||
///-----------------------------------------------------------------------------
|
||||
|
||||
// delegate is optional
|
||||
/**
|
||||
Sets the `BITUpdateManagerDelegate` delegate.
|
||||
|
||||
When using `BITUpdateManager` to distribute updates of your beta or enterprise
|
||||
application, it is required to set this delegate and implement the
|
||||
`customDeviceIdentifierForUpdateManager:` delegate!
|
||||
*/
|
||||
@property (nonatomic, assign) id <BITUpdateManagerDelegate> delegate;
|
||||
|
||||
// hockey secret is required if authentication is used
|
||||
@property (nonatomic, retain) NSString *authenticationSecret;
|
||||
|
||||
// if YES, the current user data is send: device type, iOS version, app version, UDID (default)
|
||||
// if NO, no such data is send to the server
|
||||
@property (nonatomic, assign, getter=shouldSendUserData) BOOL sendUserData;
|
||||
///-----------------------------------------------------------------------------
|
||||
/// @name Configuration
|
||||
///-----------------------------------------------------------------------------
|
||||
|
||||
// if YES, the the users usage time of the app to the service, only in 1 minute granularity! (default)
|
||||
// if NO, no such data is send to the server
|
||||
@property (nonatomic, assign, getter=shouldSendUsageTime) BOOL sendUsageTime;
|
||||
|
||||
// if YES, the user agrees to send the usage data, user can change it if the developer shows the settings (default)
|
||||
// if NO, the user overwrites the developer setting and no such data is sent
|
||||
@property (nonatomic, assign, getter=isAllowUserToDisableSendData) BOOL allowUserToDisableSendData;
|
||||
|
||||
// if YES, the user allowed to send user data (default)
|
||||
// if NO, the user denied to send user data
|
||||
@property (nonatomic, assign, getter=doesUserAllowsSendUserData) BOOL userAllowsSendUserData;
|
||||
|
||||
// if YES, the user allowed to send usage data (default)
|
||||
// if NO, the user denied to send usage data
|
||||
@property (nonatomic, assign, getter=doesUserAllowsSendUsageTime) BOOL userAllowsSendUsageTime;
|
||||
|
||||
// if YES, the new version alert will be displayed always if the current version is outdated (default)
|
||||
// if NO, the alert will be displayed only once for each new update
|
||||
@property (nonatomic, assign) BOOL alwaysShowUpdateReminder;
|
||||
|
||||
// if YES, the user can change the HockeyUpdateSetting value (default)
|
||||
// if NO, the user can not change it, and the default or developer defined value will be used
|
||||
@property (nonatomic, assign, getter=shouldShowUserSettings) BOOL showUserSettings;
|
||||
|
||||
// set bar style of navigation controller
|
||||
@property (nonatomic, assign) UIBarStyle barStyle;
|
||||
|
||||
// set modal presentation style of update view
|
||||
@property (nonatomic, assign) UIModalPresentationStyle modalPresentationStyle;
|
||||
|
||||
// if YES, then an update check will be performed after the application becomes active (default)
|
||||
// if NO, then the update check will not happen unless invoked explicitly
|
||||
@property (nonatomic, assign, getter=isCheckForUpdateOnLaunch) BOOL checkForUpdateOnLaunch;
|
||||
|
||||
// if YES, the alert notifying about an new update also shows a button to install the update directly
|
||||
// if NO, the alert notifying about an new update only shows ignore and show update button
|
||||
@property (nonatomic, assign, getter=isShowingDirectInstallOption) BOOL showDirectInstallOption;
|
||||
|
||||
// if YES, each app version needs to be authorized by the server to run on this device
|
||||
// if NO, each app version does not need to be authorized (default)
|
||||
@property (nonatomic, assign, getter=isRequireAuthorization) BOOL requireAuthorization;
|
||||
|
||||
// HockeyComparisonResultDifferent: alerts if the version on the server is different (default)
|
||||
// HockeyComparisonResultGreater: alerts if the version on the server is greater
|
||||
/**
|
||||
The type of version comparisson.
|
||||
|
||||
Defines when a version is defined as being newer than the currently installed
|
||||
version. This must be assigned one of the following:
|
||||
|
||||
- `BITUpdateComparisonResultDifferent`: Version is different
|
||||
- `BITUpdateComparisonResultGreater`: Version is greater
|
||||
|
||||
**Default**: BITUpdateComparisonResultGreater
|
||||
*/
|
||||
@property (nonatomic, assign) BITUpdateComparisonResult compareVersionType;
|
||||
|
||||
|
||||
///-----------------------------------------------------------------------------
|
||||
/// @name Update Checking
|
||||
///-----------------------------------------------------------------------------
|
||||
|
||||
// see HockeyUpdateSetting-enum. Will be saved in user defaults.
|
||||
// default value: HockeyUpdateCheckStartup
|
||||
/**
|
||||
When to check for new updates.
|
||||
|
||||
Defines when a the SDK should check if there is a new update available on the
|
||||
server. This must be assigned one of the following:
|
||||
|
||||
- `BITUpdateCheckStartup`: On every startup or or when the app comes to the foreground
|
||||
- `BITUpdateCheckDaily`: Once a day
|
||||
- `BITUpdateCheckManually`: Manually
|
||||
|
||||
**Default**: BITUpdateCheckStartup
|
||||
|
||||
@warning **WARNING**: When setting this to `BITUpdateCheckManually` you need to either
|
||||
invoke the update checking process yourself with `checkForUpdate` somehow, e.g. by
|
||||
proving an update check button for the user or integrating the Update View into your
|
||||
user interface.
|
||||
@see checkForUpdateOnLaunch
|
||||
@see checkForUpdate
|
||||
*/
|
||||
@property (nonatomic, assign) BITUpdateSetting updateSetting;
|
||||
|
||||
// open update info view
|
||||
- (void)showUpdateView;
|
||||
|
||||
/**
|
||||
Flag that determines whether the automatic update checks should be done.
|
||||
|
||||
If this is enabled the update checks will be performed automatically depending on the
|
||||
`updateSetting` property. If this is disabled the `updateSetting` property will have
|
||||
no effect, and checking for updates is totally up to be done by yourself.
|
||||
|
||||
*Default*: _YES_
|
||||
|
||||
@warning **WARNING**: When setting this to `NO` you need to invoke update checks yourself!
|
||||
@see updateSetting
|
||||
@see checkForUpdate
|
||||
*/
|
||||
@property (nonatomic, assign, getter=isCheckForUpdateOnLaunch) BOOL checkForUpdateOnLaunch;
|
||||
|
||||
|
||||
// manually start an update check
|
||||
/**
|
||||
Check for an update
|
||||
|
||||
Call this to trigger a check if there is a new update available on the HockeyApp servers.
|
||||
|
||||
@see updateSetting
|
||||
@see checkForUpdateOnLaunch
|
||||
*/
|
||||
- (void)checkForUpdate;
|
||||
|
||||
// convenience methode to create hockey view controller
|
||||
|
||||
///-----------------------------------------------------------------------------
|
||||
/// @name Privacy
|
||||
///-----------------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
Flag that determines usage data will be send
|
||||
|
||||
If this is enabled then the following data will be submitted to the server
|
||||
- App Version
|
||||
- iOS Version
|
||||
- Device type
|
||||
- Language
|
||||
- Installation timestamp
|
||||
- Usage time
|
||||
|
||||
*Default*: _YES_
|
||||
|
||||
@warning **WARNING**: When setting this to `NO`, you will know if this user is actually testing!
|
||||
*/
|
||||
@property (nonatomic, assign, getter=shouldSendUsageData) BOOL sendUsageData;
|
||||
|
||||
|
||||
///-----------------------------------------------------------------------------
|
||||
/// @name Update Notification
|
||||
///-----------------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
Flag that determines if updates alert should be repeatedly shown
|
||||
|
||||
If enabled the update alert shows on every startup and whenever the app becomes active,
|
||||
until the update is installed.
|
||||
If disabled the update alert is only shown once ever and it is up to you to provide an
|
||||
alternate way for the user to navigate to the update UI or update in another way.
|
||||
|
||||
*Default*: _YES_
|
||||
*/
|
||||
@property (nonatomic, assign) BOOL alwaysShowUpdateReminder;
|
||||
|
||||
|
||||
/**
|
||||
Flag that determines if the update alert should show an direct install option
|
||||
|
||||
If enabled the update alert shows an additional option which allows to invoke the update
|
||||
installation process directly, instead of viewing the update UI first.
|
||||
By default the alert only shows a `Show` and `Ignore` option.
|
||||
|
||||
*Default*: _NO_
|
||||
*/
|
||||
@property (nonatomic, assign, getter=isShowingDirectInstallOption) BOOL showDirectInstallOption;
|
||||
|
||||
|
||||
///-----------------------------------------------------------------------------
|
||||
/// @name Authorization
|
||||
///-----------------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
Flag that determines if each update should be authenticated
|
||||
|
||||
If enabled each update will be authenticated on startup against the HockeyApp servers.
|
||||
The process will basically validate if the current device is part of the provisioning
|
||||
profile on the server. If not, it will present a blocking view on top of the apps UI
|
||||
so that no interaction is possible.
|
||||
|
||||
*Default*: _NO_
|
||||
@see authenticationSecret
|
||||
*/
|
||||
@property (nonatomic, assign, getter=isRequireAuthorization) BOOL requireAuthorization;
|
||||
|
||||
|
||||
/**
|
||||
The authentication token from HockeyApp.
|
||||
|
||||
Set the token to the `Secret ID` which HockeyApp provides for every app.
|
||||
|
||||
@see requireAuthorization
|
||||
*/
|
||||
@property (nonatomic, retain) NSString *authenticationSecret;
|
||||
|
||||
|
||||
///-----------------------------------------------------------------------------
|
||||
/// @name User Interface
|
||||
///-----------------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
The UIBarStyle of the update user interface navigation bar.
|
||||
*/
|
||||
@property (nonatomic, assign) UIBarStyle barStyle;
|
||||
|
||||
|
||||
/**
|
||||
The UIModalPresentationStyle for showing the update user interface when invoked
|
||||
with the update alert.
|
||||
*/
|
||||
@property (nonatomic, assign) UIModalPresentationStyle modalPresentationStyle;
|
||||
|
||||
|
||||
/**
|
||||
Present the modal update user interface.
|
||||
*/
|
||||
- (void)showUpdateView;
|
||||
|
||||
|
||||
/**
|
||||
Create an update view
|
||||
|
||||
@param modal Return a view ready for modal presentation with integrated navigation bar
|
||||
@return BITUpdateViewController The update user interface view controller,
|
||||
e.g. to push it onto a navigation stack.
|
||||
*/
|
||||
- (BITUpdateViewController *)hockeyViewController:(BOOL)modal;
|
||||
|
||||
|
||||
@end
|
||||
|
@ -59,16 +59,11 @@
|
||||
@synthesize urlConnection = _urlConnection;
|
||||
@synthesize checkInProgress = _checkInProgress;
|
||||
@synthesize receivedData = _receivedData;
|
||||
@synthesize sendUserData = _sendUserData;
|
||||
@synthesize sendUsageTime = _sendUsageTime;
|
||||
@synthesize allowUserToDisableSendData = _allowUserToDisableSendData;
|
||||
@synthesize userAllowsSendUserData = _userAllowsSendUserData;
|
||||
@synthesize userAllowsSendUsageTime = _userAllowsSendUsageTime;
|
||||
@synthesize sendUsageData = _sendUsageData;
|
||||
@synthesize alwaysShowUpdateReminder = _showUpdateReminder;
|
||||
@synthesize checkForUpdateOnLaunch = _checkForUpdateOnLaunch;
|
||||
@synthesize compareVersionType = _compareVersionType;
|
||||
@synthesize lastCheck = _lastCheck;
|
||||
@synthesize showUserSettings = _showUserSettings;
|
||||
@synthesize updateSetting = _updateSetting;
|
||||
@synthesize appVersions = _appVersions;
|
||||
@synthesize updateAvailable = _updateAvailable;
|
||||
@ -274,30 +269,6 @@
|
||||
return visibleWindow;
|
||||
}
|
||||
|
||||
- (BOOL)canSendUserData {
|
||||
if (self.shouldSendUserData) {
|
||||
if (self.allowUserToDisableSendData) {
|
||||
return self.userAllowsSendUserData;
|
||||
}
|
||||
|
||||
return YES;
|
||||
}
|
||||
|
||||
return NO;
|
||||
}
|
||||
|
||||
- (BOOL)canSendUsageTime {
|
||||
if (self.shouldSendUsageTime) {
|
||||
if (self.allowUserToDisableSendData) {
|
||||
return self.userAllowsSendUsageTime;
|
||||
}
|
||||
|
||||
return YES;
|
||||
}
|
||||
|
||||
return NO;
|
||||
}
|
||||
|
||||
|
||||
#pragma mark - Init
|
||||
|
||||
@ -322,22 +293,13 @@
|
||||
// set defaults
|
||||
self.showDirectInstallOption = NO;
|
||||
self.requireAuthorization = NO;
|
||||
self.sendUserData = YES;
|
||||
self.sendUsageTime = YES;
|
||||
self.allowUserToDisableSendData = YES;
|
||||
self.sendUsageData = YES;
|
||||
self.alwaysShowUpdateReminder = YES;
|
||||
self.checkForUpdateOnLaunch = YES;
|
||||
self.showUserSettings = NO;
|
||||
self.compareVersionType = BITUpdateComparisonResultGreater;
|
||||
self.barStyle = UIBarStyleDefault;
|
||||
self.modalPresentationStyle = UIModalPresentationFormSheet;
|
||||
|
||||
// load update setting from user defaults and check value
|
||||
if ([[NSUserDefaults standardUserDefaults] objectForKey:kBITUpdateAutoUpdateSetting]) {
|
||||
self.updateSetting = (BITUpdateSetting)[[NSUserDefaults standardUserDefaults] integerForKey:kBITUpdateAutoUpdateSetting];
|
||||
} else {
|
||||
self.updateSetting = BITUpdateCheckStartup;
|
||||
}
|
||||
self.updateSetting = BITUpdateCheckStartup;
|
||||
|
||||
if ([[NSUserDefaults standardUserDefaults] objectForKey:kBITUpdateDateOfLastCheck]) {
|
||||
// we did write something else in the past, so for compatibility reasons do this
|
||||
@ -350,18 +312,6 @@
|
||||
self.lastCheck = [NSDate distantPast];
|
||||
}
|
||||
|
||||
if ([[NSUserDefaults standardUserDefaults] objectForKey:kBITUpdateAllowUserSetting]) {
|
||||
self.userAllowsSendUserData = [[NSUserDefaults standardUserDefaults] boolForKey:kBITUpdateAllowUserSetting];
|
||||
} else {
|
||||
self.userAllowsSendUserData = YES;
|
||||
}
|
||||
|
||||
if ([[NSUserDefaults standardUserDefaults] objectForKey:kBITUpdateAllowUsageSetting]) {
|
||||
self.userAllowsSendUsageTime = [[NSUserDefaults standardUserDefaults] boolForKey:kBITUpdateAllowUsageSetting];
|
||||
} else {
|
||||
self.userAllowsSendUsageTime = YES;
|
||||
}
|
||||
|
||||
if (!BITHockeyBundle()) {
|
||||
NSLog(@"WARNING: %@.bundle is missing, make sure it is added!", BITHOCKEYSDK_BUNDLE);
|
||||
}
|
||||
@ -773,19 +723,15 @@
|
||||
_uuid];
|
||||
|
||||
// add additional statistics if user didn't disable flag
|
||||
if ([self canSendUserData]) {
|
||||
[parameter appendFormat:@"&app_version=%@&os=iOS&os_version=%@&device=%@&lang=%@&first_start_at=%@",
|
||||
if (self.shouldSendUsageData) {
|
||||
[parameter appendFormat:@"&app_version=%@&os=iOS&os_version=%@&device=%@&lang=%@&first_start_at=%@&usage_time=%@",
|
||||
[[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"] bit_URLEncodedString],
|
||||
[[[UIDevice currentDevice] systemVersion] bit_URLEncodedString],
|
||||
[[self getDevicePlatform] bit_URLEncodedString],
|
||||
[[[[NSBundle mainBundle] preferredLocalizations] objectAtIndex:0] bit_URLEncodedString],
|
||||
[[self installationDateString] bit_URLEncodedString]
|
||||
[[self installationDateString] bit_URLEncodedString],
|
||||
[[self currentUsageString] bit_URLEncodedString]
|
||||
];
|
||||
if ([self canSendUsageTime]) {
|
||||
[parameter appendFormat:@"&usage_time=%@",
|
||||
[[self currentUsageString] bit_URLEncodedString]
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
if ([self checkForTracker]) {
|
||||
@ -825,7 +771,7 @@
|
||||
#endif
|
||||
|
||||
NSString *extraParameter = [NSString string];
|
||||
if ([self canSendUserData]) {
|
||||
if (self.shouldSendUsageData) {
|
||||
extraParameter = [NSString stringWithFormat:@"&udid=%@", [self deviceIdentifier]];
|
||||
}
|
||||
|
||||
@ -1045,35 +991,10 @@
|
||||
}
|
||||
}
|
||||
|
||||
- (void)setUserAllowsSendUserData:(BOOL)flag {
|
||||
_userAllowsSendUserData = flag;
|
||||
|
||||
[[NSUserDefaults standardUserDefaults] setObject:[NSNumber numberWithInteger:_userAllowsSendUserData] forKey:kBITUpdateAllowUserSetting];
|
||||
[[NSUserDefaults standardUserDefaults] synchronize];
|
||||
}
|
||||
|
||||
- (void)setUserAllowsSendUsageTime:(BOOL)flag {
|
||||
_userAllowsSendUsageTime = flag;
|
||||
|
||||
[[NSUserDefaults standardUserDefaults] setObject:[NSNumber numberWithInteger:_userAllowsSendUsageTime] forKey:kBITUpdateAllowUsageSetting];
|
||||
[[NSUserDefaults standardUserDefaults] synchronize];
|
||||
}
|
||||
|
||||
- (NSString *)currentAppVersion {
|
||||
return _currentAppVersion;
|
||||
}
|
||||
|
||||
|
||||
- (void)setUpdateSetting:(BITUpdateSetting)anUpdateSetting {
|
||||
if (anUpdateSetting > BITUpdateCheckManually) {
|
||||
_updateSetting = BITUpdateCheckStartup;
|
||||
}
|
||||
|
||||
_updateSetting = anUpdateSetting;
|
||||
[[NSUserDefaults standardUserDefaults] setObject:[NSNumber numberWithInteger:_updateSetting] forKey:kBITUpdateAutoUpdateSetting];
|
||||
[[NSUserDefaults standardUserDefaults] synchronize];
|
||||
}
|
||||
|
||||
- (void)setLastCheck:(NSDate *)aLastCheck {
|
||||
if (_lastCheck != aLastCheck) {
|
||||
[_lastCheck release];
|
||||
|
@ -1,42 +0,0 @@
|
||||
/*
|
||||
* Author: Andreas Linde <mail@andreaslinde.de>
|
||||
*
|
||||
* Copyright (c) 2012 HockeyApp, Bit Stadium GmbH.
|
||||
* Copyright (c) 2011 Andreas Linde.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person
|
||||
* obtaining a copy of this software and associated documentation
|
||||
* files (the "Software"), to deal in the Software without
|
||||
* restriction, including without limitation the rights to use,
|
||||
* copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the
|
||||
* Software is furnished to do so, subject to the following
|
||||
* conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be
|
||||
* included in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
* OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
@class BITUpdateManager;
|
||||
|
||||
@interface BITUpdateSettingsViewController : UIViewController <UITableViewDelegate, UITableViewDataSource> {
|
||||
}
|
||||
|
||||
@property (nonatomic, retain) BITUpdateManager *updateManager;
|
||||
|
||||
- (id)init:(BITUpdateManager *)newUpdateManager;
|
||||
- (id)init;
|
||||
|
||||
@end
|
@ -1,292 +0,0 @@
|
||||
/*
|
||||
* Author: Andreas Linde <mail@andreaslinde.de>
|
||||
*
|
||||
* Copyright (c) 2012 HockeyApp, Bit Stadium GmbH.
|
||||
* Copyright (c) 2011 Andreas Linde.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person
|
||||
* obtaining a copy of this software and associated documentation
|
||||
* files (the "Software"), to deal in the Software without
|
||||
* restriction, including without limitation the rights to use,
|
||||
* copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
* copies of the Software, and to permit persons to whom the
|
||||
* Software is furnished to do so, subject to the following
|
||||
* conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be
|
||||
* included in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
* OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#import "BITUpdateSettingsViewController.h"
|
||||
|
||||
#import "HockeySDK.h"
|
||||
#import "HockeySDKPrivate.h"
|
||||
|
||||
|
||||
#define BW_RGBCOLOR(r,g,b) [UIColor colorWithRed:(r)/255.0 green:(g)/255.0 blue:(b)/255.0 alpha:1]
|
||||
|
||||
@implementation BITUpdateSettingsViewController
|
||||
|
||||
@synthesize updateManager = _updateManager;
|
||||
|
||||
- (void)dismissSettings {
|
||||
[self.navigationController dismissModalViewControllerAnimated:YES];
|
||||
}
|
||||
|
||||
#pragma mark - Initialization
|
||||
|
||||
- (id)init:(BITUpdateManager *)newUpdateManager {
|
||||
if ((self = [super init])) {
|
||||
self.updateManager = newUpdateManager;
|
||||
self.title = BITHockeyLocalizedString(@"UpdateSettingsTitle");
|
||||
|
||||
CGRect frame = self.view.frame;
|
||||
frame.origin = CGPointZero;
|
||||
|
||||
UITableView *tableView_ = [[[UITableView alloc] initWithFrame:CGRectMake(0, self.view.frame.size.height - 260, self.view.frame.size.width, 260) style:UITableViewStyleGrouped] autorelease];
|
||||
tableView_.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleWidth;
|
||||
|
||||
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {
|
||||
self.view.backgroundColor = BW_RGBCOLOR(200, 202, 204);
|
||||
tableView_.backgroundColor = BW_RGBCOLOR(200, 202, 204);
|
||||
} else {
|
||||
tableView_.frame = frame;
|
||||
tableView_.autoresizingMask = tableView_.autoresizingMask | UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin;
|
||||
}
|
||||
|
||||
tableView_.delegate = self;
|
||||
tableView_.dataSource = self;
|
||||
tableView_.clipsToBounds = NO;
|
||||
|
||||
[self.view addSubview:tableView_];
|
||||
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (id)init {
|
||||
return [self init:[BITHockeyManager sharedHockeyManager].updateManager];
|
||||
}
|
||||
|
||||
|
||||
#pragma mark - Table view data source
|
||||
|
||||
- (int)numberOfSections {
|
||||
int numberOfSections = 1;
|
||||
|
||||
if ([_updateManager isAllowUserToDisableSendData]) {
|
||||
if ([_updateManager shouldSendUserData]) numberOfSections++;
|
||||
if ([_updateManager shouldSendUsageTime]) numberOfSections++;
|
||||
}
|
||||
|
||||
return numberOfSections;
|
||||
}
|
||||
|
||||
|
||||
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
|
||||
if (section == [self numberOfSections] - 1) {
|
||||
return BITHockeyLocalizedString(@"UpdateSectionCheckTitle");
|
||||
} else {
|
||||
return nil;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
|
||||
if (section < [self numberOfSections] - 1) {
|
||||
return 66;
|
||||
} else return 0;
|
||||
}
|
||||
|
||||
|
||||
- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section {
|
||||
if ([self numberOfSections] > 1 && section < [self numberOfSections] - 1) {
|
||||
UILabel *footer = [[[UILabel alloc] initWithFrame:CGRectMake(0, 0, 285, 66)] autorelease];
|
||||
footer.backgroundColor = [UIColor clearColor];
|
||||
footer.numberOfLines = 3;
|
||||
footer.textAlignment = UITextAlignmentCenter;
|
||||
footer.adjustsFontSizeToFitWidth = YES;
|
||||
footer.textColor = [UIColor grayColor];
|
||||
footer.font = [UIFont systemFontOfSize:13];
|
||||
|
||||
if (section == 0 && [_updateManager isAllowUserToDisableSendData] && [_updateManager shouldSendUserData]) {
|
||||
footer.text = BITHockeyLocalizedString(@"UpdateSettingsUserDataDescription");
|
||||
} else if ([_updateManager isAllowUserToDisableSendData] && section < [self numberOfSections]) {
|
||||
footer.text = BITHockeyLocalizedString(@"UpdateSettingsUsageDataDescription");
|
||||
}
|
||||
|
||||
UIView* view = [[[UIView alloc] initWithFrame:CGRectMake(0, 0, 285, footer.frame.size.height + 6 + 11)] autorelease];
|
||||
[view setBackgroundColor:[UIColor clearColor]];
|
||||
|
||||
CGRect frame = footer.frame;
|
||||
frame.origin.y = 8;
|
||||
frame.origin.x = 16;
|
||||
frame.size.width = 285;
|
||||
footer.frame = frame;
|
||||
|
||||
[view addSubview:footer];
|
||||
[view sizeToFit];
|
||||
|
||||
return view;
|
||||
}
|
||||
|
||||
return nil;
|
||||
}
|
||||
|
||||
|
||||
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
|
||||
// Return the number of sections.
|
||||
return [self numberOfSections];
|
||||
}
|
||||
|
||||
|
||||
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
|
||||
// Return the number of rows in the section.
|
||||
if (section == [self numberOfSections] - 1)
|
||||
return 3;
|
||||
else
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
- (void)sendUserData:(UISwitch *)switcher {
|
||||
[_updateManager setUserAllowsSendUserData:switcher.on];
|
||||
}
|
||||
|
||||
- (void)sendUsageData:(UISwitch *)switcher {
|
||||
[_updateManager setUserAllowsSendUsageTime:switcher.on];
|
||||
}
|
||||
|
||||
|
||||
// Customize the appearance of table view cells.
|
||||
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
|
||||
static NSString *CheckmarkCellIdentifier = @"CheckmarkCell";
|
||||
static NSString *SwitchCellIdentifier = @"SwitchCell";
|
||||
|
||||
NSString *requiredIdentifier = nil;
|
||||
UITableViewCellStyle cellStyle = UITableViewCellStyleSubtitle;
|
||||
|
||||
if ((NSInteger)indexPath.section == [self numberOfSections] - 1) {
|
||||
cellStyle = UITableViewCellStyleDefault;
|
||||
requiredIdentifier = CheckmarkCellIdentifier;
|
||||
} else {
|
||||
cellStyle = UITableViewCellStyleValue1;
|
||||
requiredIdentifier = SwitchCellIdentifier;
|
||||
}
|
||||
|
||||
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:requiredIdentifier];
|
||||
if (cell == nil) {
|
||||
cell = [[[UITableViewCell alloc] initWithStyle:cellStyle reuseIdentifier:requiredIdentifier] autorelease];
|
||||
}
|
||||
|
||||
cell.accessoryType = UITableViewCellAccessoryNone;
|
||||
cell.selectionStyle = UITableViewCellSelectionStyleNone;
|
||||
|
||||
// Configure the cell...
|
||||
if ((NSInteger)indexPath.section == [self numberOfSections] - 1) {
|
||||
cell.selectionStyle = UITableViewCellSelectionStyleBlue;
|
||||
|
||||
// update check selection
|
||||
BITUpdateSetting hockeyAutoUpdateSetting = [_updateManager updateSetting];
|
||||
if (indexPath.row == 0) {
|
||||
// on startup
|
||||
cell.textLabel.text = BITHockeyLocalizedString(@"UpdateSectionCheckStartup");
|
||||
if (hockeyAutoUpdateSetting == BITUpdateCheckStartup) {
|
||||
cell.accessoryType = UITableViewCellAccessoryCheckmark;
|
||||
}
|
||||
} else if (indexPath.row == 1) {
|
||||
// daily
|
||||
cell.textLabel.text = BITHockeyLocalizedString(@"UpdateSectionCheckDaily");
|
||||
if (hockeyAutoUpdateSetting == BITUpdateCheckDaily) {
|
||||
cell.accessoryType = UITableViewCellAccessoryCheckmark;
|
||||
}
|
||||
} else {
|
||||
// manually
|
||||
cell.textLabel.text = BITHockeyLocalizedString(@"UpdateSectionCheckManually");
|
||||
if (hockeyAutoUpdateSetting == BITUpdateCheckManually) {
|
||||
cell.accessoryType = UITableViewCellAccessoryCheckmark;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
UISwitch *toggleSwitch = [[[UISwitch alloc] initWithFrame:CGRectZero] autorelease];
|
||||
|
||||
if (indexPath.section == 0 && [_updateManager shouldSendUserData] && [_updateManager isAllowUserToDisableSendData]) {
|
||||
// send user data
|
||||
cell.textLabel.text = BITHockeyLocalizedString(@"UpdateSettingsUserData");
|
||||
[toggleSwitch addTarget:self action:@selector(sendUserData:)
|
||||
forControlEvents:UIControlEventValueChanged];
|
||||
[toggleSwitch setOn:[_updateManager doesUserAllowsSendUserData]];
|
||||
|
||||
} else if ([_updateManager shouldSendUsageTime] && [_updateManager isAllowUserToDisableSendData]) {
|
||||
// send usage time
|
||||
cell.textLabel.text = BITHockeyLocalizedString(@"UpdateSettingsUsageData");
|
||||
[toggleSwitch addTarget:self action:@selector(sendUsageData:)
|
||||
forControlEvents:UIControlEventValueChanged];
|
||||
[toggleSwitch setOn:[_updateManager doesUserAllowsSendUsageTime]];
|
||||
}
|
||||
|
||||
cell.accessoryView = toggleSwitch;
|
||||
|
||||
}
|
||||
|
||||
return cell;
|
||||
}
|
||||
|
||||
|
||||
#pragma mark - Table view delegate
|
||||
|
||||
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
|
||||
[tableView deselectRowAtIndexPath:indexPath animated:YES];
|
||||
|
||||
// update check interval selection
|
||||
if (indexPath.row == 0) {
|
||||
// on startup
|
||||
_updateManager.updateSetting = BITUpdateCheckStartup;
|
||||
} else if (indexPath.row == 1) {
|
||||
// daily
|
||||
_updateManager.updateSetting = BITUpdateCheckDaily;
|
||||
} else {
|
||||
// manually
|
||||
_updateManager.updateSetting = BITUpdateCheckManually;
|
||||
}
|
||||
|
||||
[tableView reloadData];
|
||||
}
|
||||
|
||||
|
||||
#pragma mark - Memory management
|
||||
|
||||
- (void)dealloc {
|
||||
[_updateManager release];
|
||||
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
|
||||
#pragma mark - Rotation
|
||||
|
||||
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
|
||||
BOOL shouldAutorotate;
|
||||
|
||||
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {
|
||||
shouldAutorotate = (interfaceOrientation == UIInterfaceOrientationPortrait);
|
||||
} else {
|
||||
shouldAutorotate = YES;
|
||||
}
|
||||
|
||||
return shouldAutorotate;
|
||||
}
|
||||
|
||||
@end
|
||||
|
@ -34,7 +34,6 @@
|
||||
#import "UIImage+BITHockeyAdditions.h"
|
||||
#import "PSAppStoreHeader.h"
|
||||
#import "PSWebTableViewCell.h"
|
||||
#import "BITUpdateSettingsViewController.h"
|
||||
#import "PSStoreButton.h"
|
||||
|
||||
#import "HockeySDK.h"
|
||||
@ -94,7 +93,7 @@
|
||||
_appStoreHeader.subHeaderLabel = subHeaderString;
|
||||
}
|
||||
|
||||
- (void)appDidBecomeActive_ {
|
||||
- (void)appDidBecomeActive {
|
||||
if (self.appStoreButtonState == AppStoreButtonStateInstalling) {
|
||||
[self setAppStoreButtonState:AppStoreButtonStateUpdate animated:YES];
|
||||
} else if (![_updateManager isCheckInProgress]) {
|
||||
@ -102,27 +101,6 @@
|
||||
}
|
||||
}
|
||||
|
||||
- (void)openSettings:(id)sender {
|
||||
BITUpdateSettingsViewController *settings = [[[BITUpdateSettingsViewController alloc] init] autorelease];
|
||||
|
||||
Class popoverControllerClass = NSClassFromString(@"UIPopoverController");
|
||||
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad && popoverControllerClass) {
|
||||
if (_popOverController == nil) {
|
||||
_popOverController = [[popoverControllerClass alloc] initWithContentViewController:settings];
|
||||
}
|
||||
if ([_popOverController contentViewController].view.window) {
|
||||
[_popOverController dismissPopoverAnimated:YES];
|
||||
}else {
|
||||
[_popOverController setPopoverContentSize: CGSizeMake(320, 440)];
|
||||
[_popOverController presentPopoverFromBarButtonItem:self.navigationItem.rightBarButtonItem
|
||||
permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES];
|
||||
}
|
||||
} else {
|
||||
settings.modalTransitionStyle = UIModalTransitionStylePartialCurl;
|
||||
[self presentModalViewController:settings animated:YES];
|
||||
}
|
||||
}
|
||||
|
||||
- (UIImage *)addGlossToImage:(UIImage *)image {
|
||||
UIGraphicsBeginImageContextWithOptions(image.size, NO, 0.0);
|
||||
|
||||
@ -236,14 +214,7 @@
|
||||
self.title = BITHockeyLocalizedString(@"UpdateScreenTitle");
|
||||
|
||||
_isAppStoreEnvironment = [BITHockeyManager sharedHockeyManager].isAppStoreEnvironment;
|
||||
|
||||
if ([_updateManager shouldShowUserSettings]) {
|
||||
self.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc] initWithImage:[UIImage bit_imageNamed:@"gear.png" bundle:BITHOCKEYSDK_BUNDLE]
|
||||
style:UIBarButtonItemStyleBordered
|
||||
target:self
|
||||
action:@selector(openSettings:)] autorelease];
|
||||
}
|
||||
|
||||
|
||||
_cells = [[NSMutableArray alloc] initWithCapacity:5];
|
||||
_popOverController = nil;
|
||||
}
|
||||
@ -321,7 +292,7 @@
|
||||
|
||||
// add notifications only to loaded view
|
||||
NSNotificationCenter *dnc = [NSNotificationCenter defaultCenter];
|
||||
[dnc addObserver:self selector:@selector(appDidBecomeActive_) name:UIApplicationDidBecomeActiveNotification object:nil];
|
||||
[dnc addObserver:self selector:@selector(appDidBecomeActive) name:UIApplicationDidBecomeActiveNotification object:nil];
|
||||
|
||||
// hook into manager with kvo!
|
||||
[_updateManager addObserver:self forKeyPath:@"checkInProgress" options:0 context:nil];
|
||||
|
@ -39,7 +39,6 @@
|
||||
#import "BITUpdateManager.h"
|
||||
#import "BITUpdateManagerDelegate.h"
|
||||
#import "BITUpdateViewController.h"
|
||||
#import "BITUpdateSettingsViewController.h"
|
||||
|
||||
|
||||
// Notification message which HockeyManager is listening to, to retry requesting updated from the server
|
||||
|
@ -42,10 +42,6 @@
|
||||
#define kBITUpdateDateOfVersionInstallation @"BITUpdateDateOfVersionInstallation"
|
||||
#define kBITUpdateUsageTimeOfCurrentVersion @"BITUpdateUsageTimeOfCurrentVersion"
|
||||
#define kBITUpdateUsageTimeForVersionString @"BITUpdateUsageTimeForVersionString"
|
||||
#define kBITUpdateAutoUpdateSetting @"BITUpdateAutoUpdateSetting"
|
||||
#define kBITUpdateAllowUserSetting @"BITUpdateAllowUserSetting"
|
||||
#define kBITUpdateAllowUsageSetting @"BITUpdateAllowUsageSetting"
|
||||
#define kBITUpdateAutoUpdateSetting @"BITUpdateAutoUpdateSetting"
|
||||
#define kBITUpdateAuthorizedVersion @"BITUpdateAuthorizedVersion"
|
||||
#define kBITUpdateAuthorizedToken @"BITUpdateAuthorizedToken"
|
||||
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 521 B |
Binary file not shown.
Before Width: | Height: | Size: 911 B |
@ -14,7 +14,6 @@
|
||||
1E40BCB915A3494400BD64D9 /* BITCrashReportTextFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E40BCB715A3494400BD64D9 /* BITCrashReportTextFormatter.h */; };
|
||||
1E40BCBA15A3494400BD64D9 /* BITCrashReportTextFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E40BCB815A3494400BD64D9 /* BITCrashReportTextFormatter.m */; };
|
||||
1E59545715B6C41300A03429 /* BITAppVersionMetaInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = E41EB45A148D7BF50015DEDC /* BITAppVersionMetaInfo.m */; };
|
||||
1E59545A15B6C41300A03429 /* BITUpdateSettingsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E41EB460148D7BF50015DEDC /* BITUpdateSettingsViewController.m */; };
|
||||
1E59545C15B6C41300A03429 /* BITCrashManager.m in Sources */ = {isa = PBXBuildFile; fileRef = E41EB464148D7BF50015DEDC /* BITCrashManager.m */; };
|
||||
1E59545D15B6C41300A03429 /* BITHockeyManager.m in Sources */ = {isa = PBXBuildFile; fileRef = E41EB466148D7BF50015DEDC /* BITHockeyManager.m */; };
|
||||
1E59545E15B6C41300A03429 /* NSString+BITHockeyAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = E41EB468148D7BF50015DEDC /* NSString+BITHockeyAdditions.m */; };
|
||||
@ -27,7 +26,6 @@
|
||||
1E59546715B6C41300A03429 /* CrashReporter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E41EB48B148D7C4E0015DEDC /* CrashReporter.framework */; };
|
||||
1E59546915B6C41300A03429 /* BITAppVersionMetaInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = E41EB459148D7BF50015DEDC /* BITAppVersionMetaInfo.h */; };
|
||||
1E59546B15B6C41300A03429 /* BITUpdateManager.h in Headers */ = {isa = PBXBuildFile; fileRef = E41EB45D148D7BF50015DEDC /* BITUpdateManager.h */; };
|
||||
1E59546C15B6C41300A03429 /* BITUpdateSettingsViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = E41EB45F148D7BF50015DEDC /* BITUpdateSettingsViewController.h */; };
|
||||
1E59546E15B6C41300A03429 /* BITHockeyManager.h in Headers */ = {isa = PBXBuildFile; fileRef = E41EB465148D7BF50015DEDC /* BITHockeyManager.h */; };
|
||||
1E59547015B6C41300A03429 /* PSAppStoreHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = E41EB469148D7BF50015DEDC /* PSAppStoreHeader.h */; };
|
||||
1E59547115B6C41300A03429 /* PSStoreButton.h in Headers */ = {isa = PBXBuildFile; fileRef = E41EB46B148D7BF50015DEDC /* PSStoreButton.h */; };
|
||||
@ -41,11 +39,9 @@
|
||||
1E59548515B6C4FB00A03429 /* BITHockeyManager.h in Headers */ = {isa = PBXBuildFile; fileRef = E41EB465148D7BF50015DEDC /* BITHockeyManager.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
1E59548715B6C51100A03429 /* BITCrashReportTextFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E40BCB715A3494400BD64D9 /* BITCrashReportTextFormatter.h */; };
|
||||
1E5954B315B6E15300A03429 /* BITUpdateManager.h in Headers */ = {isa = PBXBuildFile; fileRef = E41EB45D148D7BF50015DEDC /* BITUpdateManager.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
1E5954B515B6E16300A03429 /* BITUpdateSettingsViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = E41EB45F148D7BF50015DEDC /* BITUpdateSettingsViewController.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
1E5954B615B6E17700A03429 /* PSStoreButton.h in Headers */ = {isa = PBXBuildFile; fileRef = E41EB46B148D7BF50015DEDC /* PSStoreButton.h */; settings = {ATTRIBUTES = (); }; };
|
||||
1E5954B815B6E19C00A03429 /* BITAppVersionMetaInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = E41EB459148D7BF50015DEDC /* BITAppVersionMetaInfo.h */; settings = {ATTRIBUTES = (); }; };
|
||||
1E5954CD15B6F24A00A03429 /* BITAppVersionMetaInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = E41EB45A148D7BF50015DEDC /* BITAppVersionMetaInfo.m */; };
|
||||
1E5954D015B6F24A00A03429 /* BITUpdateSettingsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E41EB460148D7BF50015DEDC /* BITUpdateSettingsViewController.m */; };
|
||||
1E5954D215B6F24A00A03429 /* BITCrashManager.m in Sources */ = {isa = PBXBuildFile; fileRef = E41EB464148D7BF50015DEDC /* BITCrashManager.m */; };
|
||||
1E5954D315B6F24A00A03429 /* BITHockeyManager.m in Sources */ = {isa = PBXBuildFile; fileRef = E41EB466148D7BF50015DEDC /* BITHockeyManager.m */; };
|
||||
1E5954D415B6F24A00A03429 /* NSString+BITHockeyAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = E41EB468148D7BF50015DEDC /* NSString+BITHockeyAdditions.m */; };
|
||||
@ -64,7 +60,6 @@
|
||||
1E59559015B6FDA500A03429 /* UIImage+BITHockeyAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = E41EB46F148D7BF50015DEDC /* UIImage+BITHockeyAdditions.h */; };
|
||||
1E59559215B6FDA500A03429 /* BITAppVersionMetaInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = E41EB459148D7BF50015DEDC /* BITAppVersionMetaInfo.h */; };
|
||||
1E59559415B6FDA500A03429 /* BITUpdateManager.h in Headers */ = {isa = PBXBuildFile; fileRef = E41EB45D148D7BF50015DEDC /* BITUpdateManager.h */; settings = {ATTRIBUTES = (); }; };
|
||||
1E59559515B6FDA500A03429 /* BITUpdateSettingsViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = E41EB45F148D7BF50015DEDC /* BITUpdateSettingsViewController.h */; };
|
||||
1E59559815B6FDA500A03429 /* BITCrashManagerDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E40BCB415A3487500BD64D9 /* BITCrashManagerDelegate.h */; settings = {ATTRIBUTES = (); }; };
|
||||
1E59559915B6FDA500A03429 /* BITCrashReportTextFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E40BCB715A3494400BD64D9 /* BITCrashReportTextFormatter.h */; };
|
||||
1E59559A15B6FDA500A03429 /* BITHockeyManager.h in Headers */ = {isa = PBXBuildFile; fileRef = E41EB465148D7BF50015DEDC /* BITHockeyManager.h */; settings = {ATTRIBUTES = (); }; };
|
||||
@ -82,8 +77,6 @@
|
||||
1E5955CA15B71C8600A03429 /* bg.png in Resources */ = {isa = PBXBuildFile; fileRef = 1E5955BF15B71C8600A03429 /* bg.png */; };
|
||||
1E5955CB15B71C8600A03429 /* buttonHighlight.png in Resources */ = {isa = PBXBuildFile; fileRef = 1E5955C015B71C8600A03429 /* buttonHighlight.png */; };
|
||||
1E5955CC15B71C8600A03429 /* buttonHighlight@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1E5955C115B71C8600A03429 /* buttonHighlight@2x.png */; };
|
||||
1E5955CD15B71C8600A03429 /* gear.png in Resources */ = {isa = PBXBuildFile; fileRef = 1E5955C215B71C8600A03429 /* gear.png */; };
|
||||
1E5955CE15B71C8600A03429 /* gear@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1E5955C315B71C8600A03429 /* gear@2x.png */; };
|
||||
1E5955CF15B71C8600A03429 /* IconGradient.png in Resources */ = {isa = PBXBuildFile; fileRef = 1E5955C415B71C8600A03429 /* IconGradient.png */; };
|
||||
1E5955D015B71C8600A03429 /* IconGradient@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 1E5955C515B71C8600A03429 /* IconGradient@2x.png */; };
|
||||
1E5955D215B72E5400A03429 /* BITCrashManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E5955D115B72E5300A03429 /* BITCrashManager.h */; };
|
||||
@ -121,8 +114,6 @@
|
||||
E41EB471148D7BF50015DEDC /* BITAppVersionMetaInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = E41EB459148D7BF50015DEDC /* BITAppVersionMetaInfo.h */; };
|
||||
E41EB472148D7BF50015DEDC /* BITAppVersionMetaInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = E41EB45A148D7BF50015DEDC /* BITAppVersionMetaInfo.m */; };
|
||||
E41EB475148D7BF50015DEDC /* BITUpdateManager.h in Headers */ = {isa = PBXBuildFile; fileRef = E41EB45D148D7BF50015DEDC /* BITUpdateManager.h */; };
|
||||
E41EB477148D7BF50015DEDC /* BITUpdateSettingsViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = E41EB45F148D7BF50015DEDC /* BITUpdateSettingsViewController.h */; };
|
||||
E41EB478148D7BF50015DEDC /* BITUpdateSettingsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = E41EB460148D7BF50015DEDC /* BITUpdateSettingsViewController.m */; };
|
||||
E41EB47C148D7BF50015DEDC /* BITCrashManager.m in Sources */ = {isa = PBXBuildFile; fileRef = E41EB464148D7BF50015DEDC /* BITCrashManager.m */; };
|
||||
E41EB47D148D7BF50015DEDC /* BITHockeyManager.h in Headers */ = {isa = PBXBuildFile; fileRef = E41EB465148D7BF50015DEDC /* BITHockeyManager.h */; };
|
||||
E41EB47E148D7BF50015DEDC /* BITHockeyManager.m in Sources */ = {isa = PBXBuildFile; fileRef = E41EB466148D7BF50015DEDC /* BITHockeyManager.m */; };
|
||||
@ -203,8 +194,6 @@
|
||||
1E5955BF15B71C8600A03429 /* bg.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = bg.png; sourceTree = "<group>"; };
|
||||
1E5955C015B71C8600A03429 /* buttonHighlight.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = buttonHighlight.png; sourceTree = "<group>"; };
|
||||
1E5955C115B71C8600A03429 /* buttonHighlight@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "buttonHighlight@2x.png"; sourceTree = "<group>"; };
|
||||
1E5955C215B71C8600A03429 /* gear.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = gear.png; sourceTree = "<group>"; };
|
||||
1E5955C315B71C8600A03429 /* gear@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "gear@2x.png"; sourceTree = "<group>"; };
|
||||
1E5955C415B71C8600A03429 /* IconGradient.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = IconGradient.png; sourceTree = "<group>"; };
|
||||
1E5955C515B71C8600A03429 /* IconGradient@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "IconGradient@2x.png"; sourceTree = "<group>"; };
|
||||
1E5955D115B72E5300A03429 /* BITCrashManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITCrashManager.h; sourceTree = "<group>"; };
|
||||
@ -221,8 +210,6 @@
|
||||
E41EB459148D7BF50015DEDC /* BITAppVersionMetaInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITAppVersionMetaInfo.h; sourceTree = "<group>"; };
|
||||
E41EB45A148D7BF50015DEDC /* BITAppVersionMetaInfo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITAppVersionMetaInfo.m; sourceTree = "<group>"; };
|
||||
E41EB45D148D7BF50015DEDC /* BITUpdateManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = BITUpdateManager.h; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; };
|
||||
E41EB45F148D7BF50015DEDC /* BITUpdateSettingsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITUpdateSettingsViewController.h; sourceTree = "<group>"; };
|
||||
E41EB460148D7BF50015DEDC /* BITUpdateSettingsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITUpdateSettingsViewController.m; sourceTree = "<group>"; };
|
||||
E41EB464148D7BF50015DEDC /* BITCrashManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = BITCrashManager.m; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objc; };
|
||||
E41EB465148D7BF50015DEDC /* BITHockeyManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITHockeyManager.h; sourceTree = "<group>"; };
|
||||
E41EB466148D7BF50015DEDC /* BITHockeyManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITHockeyManager.m; sourceTree = "<group>"; };
|
||||
@ -296,8 +283,6 @@
|
||||
1E5955BF15B71C8600A03429 /* bg.png */,
|
||||
1E5955C015B71C8600A03429 /* buttonHighlight.png */,
|
||||
1E5955C115B71C8600A03429 /* buttonHighlight@2x.png */,
|
||||
1E5955C215B71C8600A03429 /* gear.png */,
|
||||
1E5955C315B71C8600A03429 /* gear@2x.png */,
|
||||
1E5955C415B71C8600A03429 /* IconGradient.png */,
|
||||
1E5955C515B71C8600A03429 /* IconGradient@2x.png */,
|
||||
);
|
||||
@ -363,8 +348,6 @@
|
||||
1E5955EE15B7752200A03429 /* BITUpdateManagerDelegate.h */,
|
||||
1E5955E215B751ED00A03429 /* BITUpdateViewController.h */,
|
||||
1E5955E615B751FB00A03429 /* BITUpdateViewController.m */,
|
||||
E41EB45F148D7BF50015DEDC /* BITUpdateSettingsViewController.h */,
|
||||
E41EB460148D7BF50015DEDC /* BITUpdateSettingsViewController.m */,
|
||||
1E5955D115B72E5300A03429 /* BITCrashManager.h */,
|
||||
1E01117E15BB6228007002AC /* BITCrashManagerPrivate.h */,
|
||||
E41EB464148D7BF50015DEDC /* BITCrashManager.m */,
|
||||
@ -420,7 +403,6 @@
|
||||
1E5954B315B6E15300A03429 /* BITUpdateManager.h in Headers */,
|
||||
1E5955F715B77F7600A03429 /* BITUpdateManagerDelegate.h in Headers */,
|
||||
1E5955F815B77F7C00A03429 /* BITUpdateViewController.h in Headers */,
|
||||
1E5954B515B6E16300A03429 /* BITUpdateSettingsViewController.h in Headers */,
|
||||
1E5955F615B77F6500A03429 /* HockeySDKPrivate.h in Headers */,
|
||||
1E01118115BB6311007002AC /* BITUpdateManagerPrivate.h in Headers */,
|
||||
1E01118215BB6314007002AC /* BITCrashManagerPrivate.h in Headers */,
|
||||
@ -442,7 +424,6 @@
|
||||
1E59547515B6C41300A03429 /* BITCrashManagerDelegate.h in Headers */,
|
||||
1E59546915B6C41300A03429 /* BITAppVersionMetaInfo.h in Headers */,
|
||||
1E59546B15B6C41300A03429 /* BITUpdateManager.h in Headers */,
|
||||
1E59546C15B6C41300A03429 /* BITUpdateSettingsViewController.h in Headers */,
|
||||
1E59546E15B6C41300A03429 /* BITHockeyManager.h in Headers */,
|
||||
1E59547015B6C41300A03429 /* PSAppStoreHeader.h in Headers */,
|
||||
1E59547115B6C41300A03429 /* PSStoreButton.h in Headers */,
|
||||
@ -471,7 +452,6 @@
|
||||
1E59559B15B6FDA500A03429 /* HockeySDK.h in Headers */,
|
||||
1E59559015B6FDA500A03429 /* UIImage+BITHockeyAdditions.h in Headers */,
|
||||
1E59559215B6FDA500A03429 /* BITAppVersionMetaInfo.h in Headers */,
|
||||
1E59559515B6FDA500A03429 /* BITUpdateSettingsViewController.h in Headers */,
|
||||
1E59559915B6FDA500A03429 /* BITCrashReportTextFormatter.h in Headers */,
|
||||
1E5955A315B70F6900A03429 /* HockeySDKPrivate.h in Headers */,
|
||||
1E5955D415B72E5400A03429 /* BITCrashManager.h in Headers */,
|
||||
@ -490,7 +470,6 @@
|
||||
1E40BCB515A3487500BD64D9 /* BITCrashManagerDelegate.h in Headers */,
|
||||
E41EB471148D7BF50015DEDC /* BITAppVersionMetaInfo.h in Headers */,
|
||||
E41EB475148D7BF50015DEDC /* BITUpdateManager.h in Headers */,
|
||||
E41EB477148D7BF50015DEDC /* BITUpdateSettingsViewController.h in Headers */,
|
||||
E41EB47D148D7BF50015DEDC /* BITHockeyManager.h in Headers */,
|
||||
E41EB481148D7BF50015DEDC /* PSAppStoreHeader.h in Headers */,
|
||||
E41EB483148D7BF50015DEDC /* PSStoreButton.h in Headers */,
|
||||
@ -664,8 +643,6 @@
|
||||
1E5955CA15B71C8600A03429 /* bg.png in Resources */,
|
||||
1E5955CB15B71C8600A03429 /* buttonHighlight.png in Resources */,
|
||||
1E5955CC15B71C8600A03429 /* buttonHighlight@2x.png in Resources */,
|
||||
1E5955CD15B71C8600A03429 /* gear.png in Resources */,
|
||||
1E5955CE15B71C8600A03429 /* gear@2x.png in Resources */,
|
||||
1E5955CF15B71C8600A03429 /* IconGradient.png in Resources */,
|
||||
1E5955D015B71C8600A03429 /* IconGradient@2x.png in Resources */,
|
||||
1E27EF2515BB5033000AE995 /* HockeySDK.strings in Resources */,
|
||||
@ -704,7 +681,6 @@
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
1E59545715B6C41300A03429 /* BITAppVersionMetaInfo.m in Sources */,
|
||||
1E59545A15B6C41300A03429 /* BITUpdateSettingsViewController.m in Sources */,
|
||||
1E59545C15B6C41300A03429 /* BITCrashManager.m in Sources */,
|
||||
1E59545D15B6C41300A03429 /* BITHockeyManager.m in Sources */,
|
||||
1E59545E15B6C41300A03429 /* NSString+BITHockeyAdditions.m in Sources */,
|
||||
@ -724,7 +700,6 @@
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
1E5954CD15B6F24A00A03429 /* BITAppVersionMetaInfo.m in Sources */,
|
||||
1E5954D015B6F24A00A03429 /* BITUpdateSettingsViewController.m in Sources */,
|
||||
1E5954D215B6F24A00A03429 /* BITCrashManager.m in Sources */,
|
||||
1E5954D315B6F24A00A03429 /* BITHockeyManager.m in Sources */,
|
||||
1E5954D415B6F24A00A03429 /* NSString+BITHockeyAdditions.m in Sources */,
|
||||
@ -751,7 +726,6 @@
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
E41EB472148D7BF50015DEDC /* BITAppVersionMetaInfo.m in Sources */,
|
||||
E41EB478148D7BF50015DEDC /* BITUpdateSettingsViewController.m in Sources */,
|
||||
E41EB47C148D7BF50015DEDC /* BITCrashManager.m in Sources */,
|
||||
E41EB47E148D7BF50015DEDC /* BITHockeyManager.m in Sources */,
|
||||
E41EB480148D7BF50015DEDC /* NSString+BITHockeyAdditions.m in Sources */,
|
||||
|
Loading…
x
Reference in New Issue
Block a user