mirror of
				https://github.com/johrpan/musicus_mobile.git
				synced 2025-10-26 18:57:25 +01:00 
			
		
		
		
	Move platform dependent code to its own class
This commit is contained in:
		
							parent
							
								
									3471fcf78b
								
							
						
					
					
						commit
						448a0de6fa
					
				
					 2 changed files with 53 additions and 24 deletions
				
			
		
							
								
								
									
										50
									
								
								lib/platform.dart
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								lib/platform.dart
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,50 @@ | |||
| import 'package:flutter/services.dart'; | ||||
| 
 | ||||
| /// Object representing a document in Storage Access Framework terms. | ||||
| class Document { | ||||
|   /// Unique document ID given by the SAF. | ||||
|   final String id; | ||||
| 
 | ||||
|   /// Name of the document (i.e. file name). | ||||
|   final String name; | ||||
| 
 | ||||
|   /// Document ID of the parent document. | ||||
|   final String parent; | ||||
| 
 | ||||
|   /// Whether this document represents a directory. | ||||
|   final bool isDirectory; | ||||
| 
 | ||||
|   // Use Map<dynamic, dynamic> here, as we get casting errors otherwise. This | ||||
|   // won't be typesafe anyway. | ||||
|   Document.fromJson(Map<dynamic, dynamic> json) | ||||
|       : id = json['id'], | ||||
|         name = json['name'], | ||||
|         parent = json['parent'], | ||||
|         isDirectory = json['isDirectory']; | ||||
| } | ||||
| 
 | ||||
| /// Collection of methods that are implemented platform dependent. | ||||
| class Platform { | ||||
|   static const _platform = MethodChannel('de.johrpan.musicus/platform'); | ||||
| 
 | ||||
|   /// Get child documents. | ||||
|   /// | ||||
|   /// [treeId] is the base URI as requested from the SAF. | ||||
|   /// [parentId] is the document ID of the parent. If this is null, the children | ||||
|   /// of the tree base will be returned. | ||||
|   static Future<List<Document>> getChildren( | ||||
|       String treeUri, String parentId) async { | ||||
|     final List<Map<dynamic, dynamic>> childrenJson = | ||||
|         await _platform.invokeListMethod( | ||||
|       'getChildren', | ||||
|       { | ||||
|         'treeUri': treeUri, | ||||
|         'parentId': parentId, | ||||
|       }, | ||||
|     ); | ||||
| 
 | ||||
|     return childrenJson | ||||
|         .map((childJson) => Document.fromJson(childJson)) | ||||
|         .toList(); | ||||
|   } | ||||
| } | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Elias Projahn
						Elias Projahn