diff --git a/ios/RetroArch/browser/browser.h b/ios/RetroArch/browser/browser.h index c6cc87553c..ec82cc4bc0 100644 --- a/ios/RetroArch/browser/browser.h +++ b/ios/RetroArch/browser/browser.h @@ -15,7 +15,6 @@ extern BOOL ra_ios_is_directory(NSString* path); extern BOOL ra_ios_is_file(NSString* path); -extern NSString* ra_ios_check_path(NSString* path); @interface RADirectoryItem : NSObject @property (strong) NSString* path; @@ -23,6 +22,7 @@ extern NSString* ra_ios_check_path(NSString* path); @end @interface RADirectoryList : UITableViewController ++ (id)directoryListAtBrowseRoot; + (id)directoryListForPath:(NSString*)path; - (id)initWithPath:(NSString*)path; @end diff --git a/ios/RetroArch/browser/browser.m b/ios/RetroArch/browser/browser.m index c7e0745a49..46d1daeb9a 100644 --- a/ios/RetroArch/browser/browser.m +++ b/ios/RetroArch/browser/browser.m @@ -92,27 +92,22 @@ static NSArray* ra_ios_list_directory(NSString* path) return result; } -NSString* ra_ios_check_path(NSString* path) -{ - if (path && ra_ios_is_directory(path)) - return path; - - // The error message can be ugly if it is a long message, but it should never be displayed during normal operation. - if (path) - [RetroArch_iOS displayErrorMessage:[NSString stringWithFormat:@"Browsed path is not a directory: %@", path]]; - - return [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"]; -} - @implementation RADirectoryList { - NSString* _path; NSArray* _list; } ++ (id)directoryListAtBrowseRoot +{ + NSString* rootPath = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"]; + NSString* ragPath = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/RetroArchGames"]; + + return [RADirectoryList directoryListForPath:ra_ios_is_directory(ragPath) ? ragPath : rootPath]; +} + + (id)directoryListForPath:(NSString*)path { - path = ra_ios_check_path(path); + // NOTE: Don't remove or ignore this abstraction, this function will be expanded when cover art comes back. return [[RADirectoryList alloc] initWithPath:path]; } @@ -120,10 +115,16 @@ NSString* ra_ios_check_path(NSString* path) { self = [super initWithStyle:UITableViewStylePlain]; - _path = path; - _list = ra_ios_list_directory(_path); - - [self setTitle: [_path lastPathComponent]]; + if (!ra_ios_is_directory(path)) + { + [RetroArch_iOS displayErrorMessage:[NSString stringWithFormat:@"Browsed path is not a directory: %@", path]]; + _list = [NSArray array]; + } + else + { + [self setTitle: [path lastPathComponent]]; + _list = ra_ios_list_directory(path); + } return self; } diff --git a/ios/RetroArch/main.m b/ios/RetroArch/main.m index c5485e7d55..f142809f65 100644 --- a/ios/RetroArch/main.m +++ b/ios/RetroArch/main.m @@ -34,11 +34,6 @@ #define GSEVENT_TYPE_KEYDOWN 10 #define GSEVENT_TYPE_KEYUP 11 -#define GSEVENT_TYPE_MODS 12 -#define GSEVENT_MOD_CMD (1 << 16) -#define GSEVENT_MOD_SHIFT (1 << 17) -#define GSEVENT_MOD_ALT (1 << 19) -#define GSEVENT_MOD_CTRL (1 << 20) //#define HAVE_DEBUG_FILELOG @@ -156,8 +151,6 @@ int main(int argc, char *argv[]) } } -#define kDOCSFOLDER [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"] - // From frontend/frontend_ios.c extern void* rarch_main_ios(void* args); extern void ios_frontend_post_event(void (*fn)(void*), void* userdata); @@ -249,13 +242,15 @@ static void event_reload_config(void* userdata) ios_log_init(); #endif - self.system_directory = [NSString stringWithFormat:@"%@/.RetroArch", kDOCSFOLDER]; - self.systemConfigPath = [NSString stringWithFormat:@"%@/.RetroArch/frontend.cfg", kDOCSFOLDER]; + NSString* documentsPath = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"]; + + self.system_directory = [NSString stringWithFormat:@"%@/.RetroArch", documentsPath]; + self.systemConfigPath = [NSString stringWithFormat:@"%@/.RetroArch/frontend.cfg", documentsPath]; mkdir([self.system_directory UTF8String], 0755); // Setup window self.delegate = self; - [self pushViewController:[RADirectoryList directoryListForPath:kDOCSFOLDER] animated:YES]; + [self pushViewController:[RADirectoryList directoryListAtBrowseRoot] animated:YES]; _window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; _window.rootViewController = self;