blob: d5779e04244ab5eeefa9d6bdcc07a082b90bdf99 [file] [log] [blame]
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#if !defined(__has_feature) || !__has_feature(objc_arc)
#error "This file requires ARC support."
#endif
#import "remoting/ios/app/app_view_controller.h"
#include "base/logging.h"
#import "remoting/ios/app/remoting_menu_view_controller.h"
// The Chromium implementation for the AppViewController. It simply shows the
// menu modally.
@interface AppViewController () {
UIViewController* _mainViewController;
RemotingMenuViewController* _menuController; // nullable
}
@end
@implementation AppViewController
- (instancetype)initWithMainViewController:
(UIViewController*)mainViewController {
if (self = [super init]) {
_mainViewController = mainViewController;
}
return self;
}
- (void)viewDidLoad {
[super viewDidLoad];
[self addChildViewController:_mainViewController];
[self.view addSubview:_mainViewController.view];
[_mainViewController didMoveToParentViewController:self];
}
#pragma mark - AppController
- (void)showMenuAnimated:(BOOL)animated {
if (_menuController != nil && [_menuController isBeingPresented]) {
return;
}
_menuController = [[RemotingMenuViewController alloc] init];
[self presentViewController:_menuController animated:animated completion:nil];
}
- (void)hideMenuAnimated:(BOOL)animated {
if (_menuController == nil || ![_menuController isBeingPresented]) {
return;
}
[_menuController dismissViewControllerAnimated:animated completion:nil];
_menuController = nil;
}
- (void)presentSignInFlow {
[self showMenuAnimated:YES];
}
- (UIViewController*)childViewControllerForStatusBarStyle {
return _mainViewController;
}
- (UIViewController*)childViewControllerForStatusBarHidden {
return _mainViewController;
}
@end