single Host view refresh bug fix
This commit is contained in:
1 parent
1b5f414c89
commit
01718282ff
4 files changed
+25
-23
No files matched your search
@@ -14,8 +14,7 @@
|
|||||||
NS_ASSUME_NONNULL_BEGIN
|
NS_ASSUME_NONNULL_BEGIN
|
||||||
|
|
||||||
@interface NativeTouchHandler : UIResponder
|
@interface NativeTouchHandler : UIResponder
|
||||||
@property (nonatomic, assign) bool XBoundaryReached;
|
@property (nonatomic, assign) bool BoundaryReached;
|
||||||
@property (nonatomic, assign) bool YBoundaryReached;
|
|
||||||
@property (nonatomic, assign) bool flipFlag;
|
@property (nonatomic, assign) bool flipFlag;
|
||||||
- (id)initWithView:(StreamView*)view andSettings:(TemporarySettings*)settings;
|
- (id)initWithView:(StreamView*)view andSettings:(TemporarySettings*)settings;
|
||||||
|
|
||||||
|
|||||||
@@ -87,10 +87,12 @@
|
|||||||
CGFloat normalizedY = location.y / videoSize.height;
|
CGFloat normalizedY = location.y / videoSize.height;
|
||||||
uint8_t pointerId = [self retrievePointerIdFromDict:touch];
|
uint8_t pointerId = [self retrievePointerIdFromDict:touch];
|
||||||
|
|
||||||
_XBoundaryReached = (normalizedX == 1.0f || normalizedX == 0.f);
|
_BoundaryReached = (normalizedX == 1.0f || normalizedX == 0.f || normalizedY == 1.0f || normalizedY == 0.f);
|
||||||
_YBoundaryReached = (normalizedY == 1.0f || normalizedY == 0.f);
|
|
||||||
//if(_XBoundaryReached || _YBoundaryReached) LiSendTouchEvent(LI_TOUCH_EVENT_UP,pointerId, normalizedX, normalizedY, 0, 0, 0, 0);
|
//if(_XBoundaryReached || _YBoundaryReached) LiSendTouchEvent(LI_TOUCH_EVENT_UP,pointerId, normalizedX, normalizedY, 0, 0, 0, 0);
|
||||||
if(_XBoundaryReached || _YBoundaryReached) LiSendTouchEvent(LI_TOUCH_EVENT_UP,pointerId, normalizedX, normalizedY, 0, 0, 0, 0);
|
if(_BoundaryReached){
|
||||||
|
LiSendTouchEvent(LI_TOUCH_EVENT_UP, pointerId, normalizedX, normalizedY, 0, 0, 0, 0);
|
||||||
|
LiSendTouchEvent(LI_TOUCH_EVENT_MOVE, pointerId, 0.5, 0.5, 0, 0, 0, 0);
|
||||||
|
}
|
||||||
else LiSendTouchEvent(touchType, pointerId, normalizedX, normalizedY,(touch.force / touch.maximumPossibleForce) / sin(touch.altitudeAngle),0.0f, 0.0f,[streamView getRotationFromAzimuthAngle:[touch azimuthAngleInView:streamView]]);
|
else LiSendTouchEvent(touchType, pointerId, normalizedX, normalizedY,(touch.force / touch.maximumPossibleForce) / sin(touch.altitudeAngle),0.0f, 0.0f,[streamView getRotationFromAzimuthAngle:[touch azimuthAngleInView:streamView]]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -53,13 +53,12 @@ StreamView *streamView;
|
|||||||
previousPoint = latestPoint;
|
previousPoint = latestPoint;
|
||||||
latestPoint = [touch locationInView:streamView];
|
latestPoint = [touch locationInView:streamView];
|
||||||
previousRelativePoint = latestRelativePoint;
|
previousRelativePoint = latestRelativePoint;
|
||||||
if(nativeTouchHandler.XBoundaryReached || nativeTouchHandler.YBoundaryReached){ // reset
|
if(nativeTouchHandler.BoundaryReached){ // reset
|
||||||
previousRelativePoint.x = halfScreenWidthInPoints;
|
previousRelativePoint.x = halfScreenWidthInPoints;
|
||||||
previousRelativePoint.y = halfScreenHeightInPoints;
|
previousRelativePoint.y = halfScreenHeightInPoints;
|
||||||
}
|
}
|
||||||
latestRelativePoint.x = previousRelativePoint.x + pointerVelocityFactor * (latestPoint.x - previousPoint.x);
|
latestRelativePoint.x = previousRelativePoint.x + pointerVelocityFactor * (latestPoint.x - previousPoint.x);
|
||||||
latestRelativePoint.y = previousRelativePoint.y + pointerVelocityFactor * (latestPoint.y - previousPoint.y);
|
latestRelativePoint.y = previousRelativePoint.y + pointerVelocityFactor * (latestPoint.y - previousPoint.y);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
+ (void)initContextWithView:(StreamView *)view andNativeTouchHandler:(NativeTouchHandler*)handler {
|
+ (void)initContextWithView:(StreamView *)view andNativeTouchHandler:(NativeTouchHandler*)handler {
|
||||||
|
|||||||
@@ -307,9 +307,9 @@ static NSMutableSet* hostList;
|
|||||||
|
|
||||||
[self updateTitle];
|
[self updateTitle];
|
||||||
[self disableUpButton];
|
[self disableUpButton];
|
||||||
|
[self.collectionView removeFromSuperview]; // necessary for new scroll host view reloading mechanism
|
||||||
|
[self.view setBackgroundColor:[UIColor darkGrayColor]];
|
||||||
[self reloadScrollHostView]; // host view must be reloaded here
|
[self reloadScrollHostView]; // host view must be reloaded here
|
||||||
[self.collectionView reloadData];
|
|
||||||
[self.view addSubview:hostScrollView];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void) receivedAssetForApp:(TemporaryApp*)app {
|
- (void) receivedAssetForApp:(TemporaryApp*)app {
|
||||||
@@ -344,6 +344,9 @@ static NSMutableSet* hostList;
|
|||||||
Log(LOG_D, @"Clicked host: %@", host.name);
|
Log(LOG_D, @"Clicked host: %@", host.name);
|
||||||
_selectedHost = host;
|
_selectedHost = host;
|
||||||
[self updateTitle];
|
[self updateTitle];
|
||||||
|
[self.collectionView reloadData]; //for new scroll host view reloading mechanism
|
||||||
|
[self.view addSubview:self.collectionView]; //for new scroll host view reloading mechanism
|
||||||
|
[self attachWaterMark];
|
||||||
[self enableUpButton];
|
[self enableUpButton];
|
||||||
[self disableNavigation];
|
[self disableNavigation];
|
||||||
|
|
||||||
@@ -881,8 +884,8 @@ static NSMutableSet* hostList;
|
|||||||
|
|
||||||
#if !TARGET_OS_TV
|
#if !TARGET_OS_TV
|
||||||
// this method is deprecated
|
// this method is deprecated
|
||||||
- (void)simulateSettingsButtonPressOpen { //force expand settings view to update resolution table, and all setting includes current fullscreen resolution will be updated.
|
- (void)simulateSettingsButtonPressClose { //force expand settings view to update resolution table, and all setting includes current fullscreen resolution will be updated.
|
||||||
if (currentPosition == FrontViewPositionLeft && _settingsButton.target && [_settingsButton.target respondsToSelector:_settingsButton.action]) {
|
if (currentPosition == FrontViewPositionRight && _settingsButton.target && [_settingsButton.target respondsToSelector:_settingsButton.action]) {
|
||||||
[_settingsButton.target performSelector:_settingsButton.action withObject:_settingsButton];
|
[_settingsButton.target performSelector:_settingsButton.action withObject:_settingsButton];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -895,6 +898,7 @@ static NSMutableSet* hostList;
|
|||||||
}
|
}
|
||||||
|
|
||||||
- (void)handleOrientationChange {
|
- (void)handleOrientationChange {
|
||||||
|
if([self isIphone]) [self simulateSettingsButtonPressClose];
|
||||||
double delayInSeconds = 0.7;
|
double delayInSeconds = 0.7;
|
||||||
// Convert the delay into a dispatch_time_t value
|
// Convert the delay into a dispatch_time_t value
|
||||||
dispatch_time_t delayTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
|
dispatch_time_t delayTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
|
||||||
@@ -996,6 +1000,7 @@ static NSMutableSet* hostList;
|
|||||||
|
|
||||||
- (void)attachWaterMark {
|
- (void)attachWaterMark {
|
||||||
// Create and configure the label
|
// Create and configure the label
|
||||||
|
[self->waterMark removeFromSuperview];
|
||||||
self->waterMark = [[UILabel alloc] init];
|
self->waterMark = [[UILabel alloc] init];
|
||||||
self->waterMark.translatesAutoresizingMaskIntoConstraints = NO;
|
self->waterMark.translatesAutoresizingMaskIntoConstraints = NO;
|
||||||
self->waterMark.text = [LocalizationHelper localizedStringForKey:@"Modified by: True砖家 on Bilibili"];
|
self->waterMark.text = [LocalizationHelper localizedStringForKey:@"Modified by: True砖家 on Bilibili"];
|
||||||
@@ -1019,6 +1024,10 @@ static NSMutableSet* hostList;
|
|||||||
]];
|
]];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (bool)isIphone{
|
||||||
|
return ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPhone);
|
||||||
|
}
|
||||||
|
|
||||||
- (bool)isIPhonePortrait{
|
- (bool)isIPhonePortrait{
|
||||||
bool isIPhone = ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPhone);
|
bool isIPhone = ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPhone);
|
||||||
CGFloat screenHeightInPoints = CGRectGetHeight([[UIScreen mainScreen] bounds]);
|
CGFloat screenHeightInPoints = CGRectGetHeight([[UIScreen mainScreen] bounds]);
|
||||||
@@ -1032,7 +1041,6 @@ static NSMutableSet* hostList;
|
|||||||
{
|
{
|
||||||
[super viewDidLoad];
|
[super viewDidLoad];
|
||||||
//[OrientationHelper updateOrientationToLandscape];
|
//[OrientationHelper updateOrientationToLandscape];
|
||||||
[self attachWaterMark];
|
|
||||||
#if !TARGET_OS_TV
|
#if !TARGET_OS_TV
|
||||||
self.settingsExpandedInStreamView = false; // init this flag
|
self.settingsExpandedInStreamView = false; // init this flag
|
||||||
self.revealViewController.isStreaming = false; //init this flag for rvlVC
|
self.revealViewController.isStreaming = false; //init this flag for rvlVC
|
||||||
@@ -1094,6 +1102,7 @@ static NSMutableSet* hostList;
|
|||||||
//recordedScreenWidth = CGRectGetWidth([[UIScreen mainScreen] bounds]);
|
//recordedScreenWidth = CGRectGetWidth([[UIScreen mainScreen] bounds]);
|
||||||
hostScrollView = [[ComputerScrollView alloc] init];
|
hostScrollView = [[ComputerScrollView alloc] init];
|
||||||
[self reloadScrollHostView];
|
[self reloadScrollHostView];
|
||||||
|
if ([hostList count] == 1) [self hostClicked:[hostList anyObject] view:nil]; //move auto click here from reloadScrollHostView, resolving select new host bug.
|
||||||
|
|
||||||
//if([SettingsViewController isLandscapeNow] != _streamConfig.width > _streamConfig.height)
|
//if([SettingsViewController isLandscapeNow] != _streamConfig.width > _streamConfig.height)
|
||||||
//[self simulateSettingsButtonPress]; //force expand setting view if orientation changed since last quit from app.
|
//[self simulateSettingsButtonPress]; //force expand setting view if orientation changed since last quit from app.
|
||||||
@@ -1138,19 +1147,11 @@ static NSMutableSet* hostList;
|
|||||||
|
|
||||||
[self retrieveSavedHosts];
|
[self retrieveSavedHosts];
|
||||||
_discMan = [[DiscoveryManager alloc] initWithHosts:[hostList allObjects] andCallback:self];
|
_discMan = [[DiscoveryManager alloc] initWithHosts:[hostList allObjects] andCallback:self];
|
||||||
|
[self updateTitle];
|
||||||
if ([hostList count] == 1) {
|
[self.view addSubview:hostScrollView];
|
||||||
[self hostClicked:[hostList anyObject] view:nil];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
[self updateTitle];
|
|
||||||
[self.view addSubview:hostScrollView];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-(void)swapResolutionWidthHeightAccordingly{
|
-(void)swapResolutionWidthHeightAccordingly{
|
||||||
DataManager* dataMan = [[DataManager alloc] init];
|
DataManager* dataMan = [[DataManager alloc] init];
|
||||||
Settings *currentSettings = [dataMan retrieveSettings];
|
Settings *currentSettings = [dataMan retrieveSettings];
|
||||||
@@ -1255,7 +1256,8 @@ static NSMutableSet* hostList;
|
|||||||
|
|
||||||
- (void)viewDidAppear:(BOOL)animated
|
- (void)viewDidAppear:(BOOL)animated
|
||||||
{
|
{
|
||||||
[super viewDidAppear:animated];
|
[super viewDidAppear:NO];
|
||||||
|
//[self attachWaterMark];
|
||||||
|
|
||||||
#if !TARGET_OS_TV
|
#if !TARGET_OS_TV
|
||||||
[[NSNotificationCenter defaultCenter] addObserver:self
|
[[NSNotificationCenter defaultCenter] addObserver:self
|
||||||
|
|||||||
Reference in new issue
Block a user