Advertisement
Guest User

Untitled

a guest
Jun 25th, 2018
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.01 KB | None | 0 0
  1. using System.Collections.Generic;
  2. using UnityEngine;
  3. using UnityGoogleDrive;
  4.  
  5. public class TestFilesList : MonoBehaviour
  6. {
  7.     public Rect WindowRect = new Rect(10, 10, 940, 580);
  8.     [Range(1, 1000)]
  9.     public int ResultsPerPage = 100;
  10.  
  11.     private GoogleDriveFiles.ListRequest request;
  12.     private Dictionary<string, string> results;
  13.     private string query = string.Empty;
  14.     private Vector2 scrollPos;
  15.  
  16.     public GameObject buttonprefab;
  17.  
  18.  
  19.     private void Start()
  20.     {
  21.         ListFiles();
  22.     }
  23.  
  24.     private void OnGUI()
  25.     {
  26.         GUILayout.Window(0, WindowRect, InfoWindowGUI, "Google Drive Files List");
  27.     }  
  28.  
  29.     private void InfoWindowGUI(int windowId)
  30.     {
  31.         if (request.IsRunning)
  32.         {
  33.             GUILayout.Label(string.Format("Loading: {0:P2}", request.Progress));
  34.         }
  35.         else if (results != null)
  36.         {
  37.             scrollPos = GUILayout.BeginScrollView(scrollPos);
  38.             foreach (var result in results)
  39.             {
  40.                 GUILayout.Label(result.Value);
  41.                 GUILayout.BeginHorizontal();
  42.                 GUILayout.Label("ID:", GUILayout.Width(20));
  43.                 GUILayout.TextField(result.Key);
  44.                 GUILayout.EndHorizontal();
  45.                 var btn = GUILayout.Button("", GUILayout.Width(20));
  46.  
  47.                 if (btn)
  48.                     Debug.Log(result.Key);
  49.                
  50.             }
  51.             GUILayout.EndScrollView();
  52.         }
  53.  
  54.         GUILayout.BeginHorizontal();
  55.         GUILayout.Label("File name:", GUILayout.Width(70));
  56.         query = GUILayout.TextField(query);
  57.         if (GUILayout.Button("Search", GUILayout.Width(100))) ListFiles();
  58.         if (NextPageExists() && GUILayout.Button(">>", GUILayout.Width(50)))
  59.             ListFiles(request.ResponseData.NextPageToken);
  60.         GUILayout.EndHorizontal();
  61.     }
  62.  
  63.     private void ListFiles(string nextPageToken = null)
  64.     {
  65.         request = GoogleDriveFiles.List();
  66.         request.Fields = new List<string> { "nextPageToken, files(id, name, size, createdTime)" };
  67.         request.PageSize = ResultsPerPage;
  68.         if (!string.IsNullOrEmpty(query))
  69.             request.Q = string.Format("name contains '{0}'", query);
  70.         if (!string.IsNullOrEmpty(nextPageToken))
  71.             request.PageToken = nextPageToken;
  72.         request.Send().OnDone += BuildResults;
  73.     }
  74.  
  75.     private void BuildResults(UnityGoogleDrive.Data.FileList fileList)
  76.     {
  77.         results = new Dictionary<string, string>();
  78.  
  79.         foreach (var file in fileList.Files)
  80.         {
  81.             var fileInfo = string.Format("Name: {0} Size: {1:0.00}MB Created: {2:dd.MM.yyyy}",
  82.                 file.Name,
  83.                 file.Size * .000001f,
  84.                 file.CreatedTime);
  85.             results.Add(file.Id, fileInfo);
  86.  
  87.         }
  88.     }
  89.  
  90.     private bool NextPageExists()
  91.     {
  92.         return request != null &&
  93.             request.ResponseData != null &&
  94.             !string.IsNullOrEmpty(request.ResponseData.NextPageToken);
  95.     }
  96. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement