mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-16 05:55:20 +00:00
106 lines
3.9 KiB
Objective-C
106 lines
3.9 KiB
Objective-C
/*
|
|
* Author: Andreas Linde <mail@andreaslinde.de>
|
|
*
|
|
* Copyright (c) 2012 HockeyApp, Bit Stadium GmbH.
|
|
* 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 <Foundation/Foundation.h>
|
|
|
|
/**
|
|
The `BITUpdateManagerDelegate` formal protocol defines methods further configuring
|
|
the behaviour of `BITUpdateManager`.
|
|
*/
|
|
|
|
@protocol BITUpdateManagerDelegate <NSObject>
|
|
|
|
///-----------------------------------------------------------------------------
|
|
/// @name Configuration
|
|
///-----------------------------------------------------------------------------
|
|
|
|
/**
|
|
Return the unique device identifier
|
|
|
|
Return the device UDID which is required for beta testing, should return nil for app store configuration!
|
|
Example implementation if your Xcode configuration for the App Store is called "AppStore":
|
|
|
|
- (NSString *)customDeviceIdentifierForUpdateManager:(BITUpdateManager *)updateManager {
|
|
#ifndef (CONFIGURATION_AppStore)
|
|
if ([[UIDevice currentDevice] respondsToSelector:@selector(uniqueIdentifier)])
|
|
return [[UIDevice currentDevice] performSelector:@selector(uniqueIdentifier)];
|
|
#endif
|
|
|
|
return nil;
|
|
}
|
|
|
|
@param updateManager The `BITUpdateManager` instance invoking this delegate
|
|
*/
|
|
- (NSString *)customDeviceIdentifierForUpdateManager:(BITUpdateManager *)updateManager;
|
|
|
|
@optional
|
|
|
|
///-----------------------------------------------------------------------------
|
|
/// @name Privacy
|
|
///-----------------------------------------------------------------------------
|
|
|
|
/** Return NO if usage data should not be send
|
|
|
|
The update module send usage data by default, if the application is _NOT_
|
|
running in an App Store version. Implement this delegate and
|
|
return NO if you want to disable this.
|
|
|
|
If you intend to implement a user setting to let them enable or disable
|
|
sending usage data, this delegate should be used to return that value.
|
|
|
|
Usage data contains the following information:
|
|
- App Version
|
|
- iOS Version
|
|
- Device type
|
|
- Language
|
|
- Installation timestamp
|
|
- Usage time
|
|
|
|
@param updateManager The `BITUpdateManager` instance invoking this delegate
|
|
@warning When setting this to `NO`, you will _NOT_ know if this user is actually testing!
|
|
*/
|
|
- (BOOL)updateManagerShouldSendUsageData:(BITUpdateManager *)updateManager;
|
|
|
|
|
|
///-----------------------------------------------------------------------------
|
|
/// @name Update View Presentation Helper
|
|
///-----------------------------------------------------------------------------
|
|
|
|
/**
|
|
Provide a parent view controller for the update user interface
|
|
|
|
If you don't have a `rootViewController` set on your `UIWindow` and the SDK cannot
|
|
automatically find the current top most `UIViewController`, you can provide the
|
|
`UIViewController` that should be used to present the update user interface modal.
|
|
|
|
@param updateManager The `BITUpdateManager` instance invoking this delegate
|
|
*/
|
|
- (UIViewController *)viewControllerForUpdateManager:(BITUpdateManager *)updateManager;
|
|
|
|
@end
|