// Copyright 2019-present the Material Components for iOS authors. All Rights Reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. #import #import #import "MDCAlertController+ButtonForAction.h" #import "MaterialButtons+Theming.h" #import "MaterialButtons.h" #import "MaterialColorScheme.h" #import "MaterialDialogs.h" @interface DialogsTallTextAlertExampleViewController : UIViewController @end @interface DialogsTallTextAlertExampleViewController () @property(nonatomic, strong) MDCDialogTransitionController *transitionController; @property(nonatomic, strong) id containerScheme; @end @implementation DialogsTallTextAlertExampleViewController - (void)viewDidLoad { [super viewDidLoad]; if (!self.containerScheme) { self.containerScheme = [[MDCContainerScheme alloc] init]; } self.view.backgroundColor = self.containerScheme.colorScheme.backgroundColor; // We must create and store a strong reference to the transitionController. // A presented view controller will set this object as its transitioning delegate. self.transitionController = [[MDCDialogTransitionController alloc] init]; MDCButton *presentButton = [[MDCButton alloc] initWithFrame:CGRectZero]; [presentButton setTitle:[NSString stringWithFormat:@"Dialog with large Urdu text"] forState:UIControlStateNormal]; [presentButton addTarget:self action:@selector(didTapPresent:) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:presentButton]; presentButton.translatesAutoresizingMaskIntoConstraints = NO; [presentButton applyOutlinedThemeWithScheme:self.containerScheme]; [self.view addConstraints:@[ [NSLayoutConstraint constraintWithItem:self.view attribute:NSLayoutAttributeCenterX relatedBy:NSLayoutRelationEqual toItem:presentButton attribute:NSLayoutAttributeCenterX multiplier:1 constant:0], [NSLayoutConstraint constraintWithItem:self.view attribute:NSLayoutAttributeCenterY relatedBy:NSLayoutRelationEqual toItem:presentButton attribute:NSLayoutAttributeCenterY multiplier:1 constant:0], ]]; } - (IBAction)didTapPresent:(id)sender { NSString *networkFailureInUrdu = @"براہ کرم اپنا نیٹ ورک کنکشن چیک کریں اور دوبارہ کوشش کریں۔"; MDCAlertController *alert = [MDCAlertController alertControllerWithTitle:nil message:networkFailureInUrdu]; MDCAlertAction *retryAction = [MDCAlertAction actionWithTitle:@"دوبارہ کوشش کریں" handler:nil]; MDCAlertAction *cancelAction = [MDCAlertAction actionWithTitle:@"منسوخ کریں" handler:nil]; [alert addAction:retryAction]; [alert addAction:cancelAction]; [alert applyThemeWithScheme:self.containerScheme]; NSString *urduFontName = @"NotoNastaliqUrdu"; UIFont *dialogBodyFont = [UIFont systemFontOfSize:20.0]; UIFont *dialogButtonFont = [UIFont systemFontOfSize:20.0]; if (@available(iOS 11, *)) { // Noto Nastaliq Urdu was added in iOS 11, and is an extremely tall // font for any given nominal point size. dialogBodyFont = [UIFont fontWithName:urduFontName size:20.0]; dialogButtonFont = [UIFont fontWithName:urduFontName size:20.0]; } alert.messageFont = dialogBodyFont; MDCButton *buttonForRetryAction = [alert buttonForAction:retryAction]; buttonForRetryAction.titleLabel.font = dialogButtonFont; MDCButton *buttonForCancelAction = [alert buttonForAction:cancelAction]; buttonForCancelAction.titleLabel.font = dialogButtonFont; [self presentViewController:alert animated:YES completion:nil]; } #pragma mark - CatalogByConvention + (NSDictionary *)catalogMetadata { return @{ @"breadcrumbs" : @[ @"Dialogs", @"Dialog with Tall Text" ], @"primaryDemo" : @NO, @"presentable" : @NO, }; } @end @implementation DialogsTallTextAlertExampleViewController (SnapshotTestingByConvention) - (void)testPresented { if (self.presentedViewController) { [self dismissViewControllerAnimated:NO completion:nil]; } [self didTapPresent:nil]; } @end