Skip to content

Commit

Permalink
Merge branch 'master' into TIMOB-28315
Browse files Browse the repository at this point in the history
  • Loading branch information
garymathews committed Jan 15, 2021
2 parents 9a83d19 + 10c1a25 commit 431738c
Show file tree
Hide file tree
Showing 8 changed files with 65 additions and 21 deletions.
1 change: 1 addition & 0 deletions iphone/Classes/TiMediaVideoPlayer.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
@private
AVPlayerViewController *controller;
UIActivityIndicatorView *spinner;
UIViewController *parentController;

BOOL loaded;
}
Expand Down
23 changes: 23 additions & 0 deletions iphone/Classes/TiMediaVideoPlayer.m
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,10 @@
#ifdef USE_TI_MEDIAVIDEOPLAYER

#import "TiMediaVideoPlayer.h"
#import <TitaniumKit/TiApp.h>
#import <TitaniumKit/TiUtils.h>
#import <TitaniumKit/TiViewProxy.h>
#import <TitaniumKit/TiWindowProxy.h>
#import <TitaniumKit/Webcolor.h>

@implementation TiMediaVideoPlayer
Expand Down Expand Up @@ -61,7 +63,9 @@ - (void)setMovie:(AVPlayerViewController *)controller_
// don't add the movie more than once if the same
return;
}
[controller willMoveToParentViewController:nil];
[[controller view] removeFromSuperview];
[controller removeFromParentViewController];
[spinner removeFromSuperview];
RELEASE_TO_NIL(spinner);
RELEASE_TO_NIL(controller);
Expand All @@ -71,9 +75,24 @@ - (void)setMovie:(AVPlayerViewController *)controller_
}
controller = [controller_ retain];

// Set parent for AVPlayerViewController controller
if (!parentController) {
id proxy = [(TiViewProxy *)self.proxy parent];
while (proxy != nil && ![proxy isKindOfClass:[TiWindowProxy class]]) {
proxy = [proxy parent];
}
if (proxy != nil) {
parentController = [[(TiWindowProxy *)proxy windowHoldingController] retain];
} else {
parentController = [[[TiApp app] controller] retain];
}
}

[parentController addChildViewController:controller];
[TiUtils setView:[controller view] positionRect:self.bounds];
[self addSubview:[controller view]];
[self sendSubviewToBack:[controller view]];
[controller didMoveToParentViewController:parentController];

TiColor *bgcolor = [TiUtils colorValue:[self.proxy valueForKey:@"backgroundColor"]];
UIActivityIndicatorViewStyle style = UIActivityIndicatorViewStyleGray;
Expand Down Expand Up @@ -118,7 +137,11 @@ - (BOOL)touchedContentViewWithEvent:(UIEvent *)event

- (void)dealloc
{
[controller willMoveToParentViewController:nil];
[[controller view] removeFromSuperview];
[controller removeFromParentViewController];

RELEASE_TO_NIL(parentController);
RELEASE_TO_NIL(controller);
RELEASE_TO_NIL(spinner);
[super dealloc];
Expand Down
4 changes: 3 additions & 1 deletion iphone/Classes/TiMediaVideoPlayerProxy.m
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,9 @@ - (void)windowWillClose
{
[super windowWillClose];
[[movie player] pause];
[(TiMediaVideoPlayer *)self.view setMovie:nil];
if ([self viewAttached]) {
[(TiMediaVideoPlayer *)self.view setMovie:nil];
}
}

#pragma mark Public APIs
Expand Down
1 change: 1 addition & 0 deletions iphone/Classes/TiUIListView.m
Original file line number Diff line number Diff line change
Expand Up @@ -2417,6 +2417,7 @@ - (void)createDimmingView
dimmingView.alpha = .2;
UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(dismissSearchController)];
[dimmingView addGestureRecognizer:tapGesture];
[tapGesture release];
}
}

Expand Down
17 changes: 16 additions & 1 deletion iphone/Classes/TiUINavigationWindowProxy.m
Original file line number Diff line number Diff line change
Expand Up @@ -351,7 +351,10 @@ - (void)cleanNavStack
[win setParentOrientationController:nil];
[win close:nil];
}
// Remove navigation controller from parent controller
[navController willMoveToParentViewController:nil];
[navController.view removeFromSuperview];
[navController removeFromParentViewController];
RELEASE_TO_NIL(navController);
RELEASE_TO_NIL(rootWindow);
RELEASE_TO_NIL(current);
Expand Down Expand Up @@ -496,7 +499,19 @@ - (void)windowWillOpen
UIView *nview = [[self controller] view];
[nview setFrame:[[self view] bounds]];
[[self view] addSubview:nview];
return [super windowWillOpen];
[super windowWillOpen];
}

- (void)windowDidOpen
{
// Set parent for navigation controller
if (navController) {
UIViewController *parentController = [self windowHoldingController];
[parentController addChildViewController:navController];
[navController didMoveToParentViewController:parentController];
}

[super windowDidOpen];
}

- (void)windowDidClose
Expand Down
22 changes: 20 additions & 2 deletions iphone/Classes/TiUITabGroupProxy.m
Original file line number Diff line number Diff line change
Expand Up @@ -147,16 +147,34 @@ - (void)windowWillOpen
{
TiUITabGroup *tg = (TiUITabGroup *)self.view;
[tg open:nil];
return [super windowWillOpen];
[super windowWillOpen];
}

- (void)windowDidOpen
{
// Set parent view controller for UITabBarController
TiUITabGroup *tabGroup = (TiUITabGroup *)self.view;
if (tabGroup) {
UITabBarController *tabController = [tabGroup tabController];
UIViewController *parentController = [self windowHoldingController];
[parentController addChildViewController:tabController];
[tabController didMoveToParentViewController:parentController];
}
[super windowDidOpen];
}

- (void)windowWillClose
{
TiUITabGroup *tabGroup = (TiUITabGroup *)self.view;
if (tabGroup != nil) {
// Remove UITabBarController from parent view controller
UITabBarController *tabController = [(TiUITabGroup *)[self view] tabController];
[tabController willMoveToParentViewController:nil];
[tabController.view removeFromSuperview];
[tabController removeFromParentViewController];
[tabGroup close:nil];
}
return [super windowWillClose];
[super windowWillClose];
}

- (void)didReceiveMemoryWarning:(NSNotification *)notification
Expand Down
1 change: 1 addition & 0 deletions iphone/Classes/TiUITableView.m
Original file line number Diff line number Diff line change
Expand Up @@ -2423,6 +2423,7 @@ - (void)createDimmingView
dimmingView.alpha = .2;
UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(dismissSearchController)];
[dimmingView addGestureRecognizer:tapGesture];
[tapGesture release];
}
}

Expand Down
17 changes: 0 additions & 17 deletions iphone/TitaniumKit/TitaniumKit/Sources/API/TiWindowProxy.m
Original file line number Diff line number Diff line change
Expand Up @@ -159,23 +159,6 @@ - (void)attachViewToTopContainerController
TiUIView *theView = [self view];
[rootView addSubview:theView];
[rootView bringSubviewToFront:theView];

// TODO: Revisit
/*
UIViewController<TiControllerContainment>* topContainerController = [[[TiApp app] controller] topContainerController];
UIView *rootView = [topContainerController hostingView];
UIViewController* thisViewController = [self hostingController];
UIView* theView = [thisViewController view];
[theView setFrame:[rootView bounds]];
[thisViewController willMoveToParentViewController:topContainerController];
[topContainerController addChildViewController:thisViewController];
[rootView addSubview:theView];
[rootView bringSubviewToFront:theView];
[thisViewController didMoveToParentViewController:topContainerController];
*/
}

- (BOOL)argOrWindowPropertyExists:(NSString *)key args:(id)args
Expand Down

0 comments on commit 431738c

Please sign in to comment.