Files
watrbx-game-engine/iOS/Roblox Developer/TestAccountSigninViewController.mm
T
2025-09-18 17:55:52 -04:00

159 lines
4.7 KiB
Plaintext

//
// TestAccountSigninView.m
// RobloxMobile
//
// Created by Ben Tkacheff on 7/22/14.
// Copyright (c) 2014 ROBLOX. All rights reserved.
//
#import "RBXFunctions.h"
#import "TestAccountSigninViewController.h"
#import "LoginManager.h"
#import "UserInfo.h"
#import "RobloxAlert.h"
#import "PlaceLauncher.h"
#import "UIStyleConverter.h"
#import "RobloxInfo.h"
#import "ResetPasswordViewController.h"
#import "RobloxGoogleAnalytics.h"
#import "RobloxNotifications.h"
@interface TestAccountSigninViewController ()
@end
@implementation TestAccountSigninViewController
- (id)initWithCoder:(NSCoder *)aDecoder
{
if (self == [super initWithCoder:aDecoder])
{
// initialize here
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
[UIStyleConverter convertToBoldTextFieldStyle:self.username];
[UIStyleConverter convertToBoldTextFieldStyle:self.password];
[UIStyleConverter convertToButtonBlueStyle:self.loginButton];
[UIStyleConverter convertToBorderlessButtonStyle:self.forgotPasswordButton];
[UIStyleConverter convertToLoadingStyle:self.loadingSpinner];
self.username.placeholder = NSLocalizedString(@"UsernameWord", nil);
self.password.placeholder = NSLocalizedString(@"PasswordWord", nil);
[self.loginButton setTitle:NSLocalizedString(@"LoginWord", nil) forState:UIControlStateNormal];
[self.loginButton setTitle:NSLocalizedString(@"LoginWord", nil) forState:UIControlStateSelected];
[self.loginButton setTitle:NSLocalizedString(@"LoginWord", nil) forState:UIControlStateDisabled];
[self.forgotPasswordButton setTitle:NSLocalizedString(@"Forgot Password?", nil) forState:UIControlStateNormal];
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
{
[UIStyleConverter convertToBlueNavigationBarStyle:self.navigationController.navigationBar];
}
}
-(void) viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[RobloxGoogleAnalytics setPageViewTracking:@"Login"];
self.username.text = [UserInfo CurrentPlayer].username;
self.password.text = [UserInfo CurrentPlayer].password;
// small color bug fix for iPad
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
{
[self.logoutButton setTitleTextAttributes:
[NSDictionary dictionaryWithObjectsAndKeys:
[UIColor whiteColor], NSForegroundColorAttributeName,nil]
forState:UIControlStateNormal];
}
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (IBAction) closeButtonPressed:(UIBarButtonItem *)sender
{
[self dismissViewControllerAnimated:YES completion:nil];
}
- (IBAction) logoutButtonPressed:(UIBarButtonItem *)sender
{
[[LoginManager sharedInstance] logoutRobloxUser];
self.username.text = @"";
self.password.text = @"";
dispatch_async(dispatch_get_main_queue(), ^{
self.loggingInView.hidden = true;
[self.username resignFirstResponder];
[self.password resignFirstResponder];
[RobloxAlert RobloxOKAlertWithMessageAndDelegate:@"You have been logged out." Delegate:self];
});
}
- (IBAction) loginButtonPressed:(UIButton *)sender
{
[self doLogin];
}
- (IBAction) usernameDidEndOnExit:(UITextField *)sender
{
[self.password becomeFirstResponder];
}
- (IBAction) passwordDidEndOnExit:(UITextField *)sender
{
[self doLogin];
}
-(void) doLogin
{
self.loggingInView.hidden = false;
[[LoginManager sharedInstance] loginWithUsername:self.username.text password:self.password.text completionBlock:^(NSError *loginError) {
if ([RBXFunctions isEmpty:loginError]) {
// login successful
[RBXFunctions dispatchOnMainThread:^{
[RobloxGoogleAnalytics setPageViewTracking:@"Login/Success"];
self.loggingInView.hidden = true;
if (self.username.isFirstResponder)
{
[self.username resignFirstResponder];
}
if (self.password.isFirstResponder)
{
[self.password resignFirstResponder];
}
[RobloxAlert RobloxOKAlertWithMessageAndDelegate:@"Login Succedeed!" Delegate:self];
}];
} else {
// login failure
[RBXFunctions dispatchOnMainThread:^{
[RobloxGoogleAnalytics setPageViewTracking:@"Login/Failure"];
self.loggingInView.hidden = true;
[RobloxAlert RobloxAlertWithMessage:loginError.domain];
}];
}
}];
[RobloxGoogleAnalytics setPageViewTracking:@"Login/Try"];
}
@end