Example #1
0
        public static ResetToEditorDefaultsRequest ResetToEditorDefaults()
        {
            long             operationId;
            NativeStatusCode initialStatus = NativeClient.ResetToEditorDefaults(out operationId);

            return(new ResetToEditorDefaultsRequest(operationId, initialStatus));
        }
Example #2
0
        public static ListRequest List()
        {
            long             operationId;
            NativeStatusCode initialStatus = NativeClient.List(out operationId);

            return(new ListRequest(operationId, initialStatus));
        }
Example #3
0
        public static SearchRequest SearchAll()
        {
            long             operationId;
            NativeStatusCode initialStatus = NativeClient.SearchAll(out operationId);

            return(new SearchRequest(operationId, initialStatus, string.Empty));
        }
Example #4
0
        public static SearchRequest Search(string packageIdOrName)
        {
            long             operationId;
            NativeStatusCode initialStatus = NativeClient.Search(out operationId, packageIdOrName);

            return(new SearchRequest(operationId, initialStatus, packageIdOrName));
        }
Example #5
0
        public static RemoveRequest Remove(string packageIdOrName)
        {
            long             operationId;
            NativeStatusCode initialStatus = NativeClient.Remove(out operationId, packageIdOrName);

            return(new RemoveRequest(operationId, initialStatus, packageIdOrName));
        }
Example #6
0
        public static AddRequest Add(string packageIdOrName)
        {
            long             operationId;
            NativeStatusCode initialStatus = NativeClient.Add(out operationId, packageIdOrName);

            return(new AddRequest(operationId, initialStatus));
        }
Example #7
0
 internal SearchRequest(long operationId, NativeStatusCode initialStatus, string packageIdOrName)
     : base(operationId, initialStatus)
 {
     // This class is used to wrap both "GetPackageInfo" and "GetAllPackageInfo" operations.
     // When used for the latter, packageIdOrName == string.Empty. Aside from that, the SearchRequest
     // class does not care whether it's "searching" for a single PackageInfo or all "searchable" packages.
     m_PackageIdOrName = packageIdOrName;
 }
        internal RemoveRequest(long operationId, NativeStatusCode initialStatus, string packageName)
            : base(operationId, initialStatus)
        {
            if (String.IsNullOrEmpty(packageName?.Trim()))
            {
                throw new ArgumentNullException(nameof(packageName));
            }

            m_PackageIdOrName = packageName;
        }
        bool CheckPackmanOperation(long operationId, PackmanOperationType operationType)
        {
            NativeStatusCode statusCode = NativeClient.GetOperationStatus(operationId);

            if (statusCode == NativeStatusCode.NotFound)
            {
                Debug.LogError("OperationID " + operationId + " Not Found");
                return(true);
            }
            else if (statusCode == NativeStatusCode.Error)
            {
                Error error = NativeClient.GetOperationError(operationId);
                Debug.LogError("OperationID " + operationId + " failed with Error: " + error);
                return(true);
            }
            else if (statusCode == NativeStatusCode.InProgress || statusCode == NativeStatusCode.InQueue)
            {
                return(false);
            }
            else if (statusCode == NativeStatusCode.Done)
            {
                System.Console.WriteLine("OperationID " + operationId + " Done");
                switch (operationType)
                {
                case PackmanOperationType.List:
                    ExtractCurrentXiaomiPackageInfo(operationId);
                    break;

                case PackmanOperationType.Add:
                    currentXiaomiPackageVersion = latestXiaomiPackageVersion;
                    xiaomiPackageInstalled      = true;
                    break;

                case PackmanOperationType.Remove:
                    currentXiaomiPackageVersion = "";
                    xiaomiPackageInstalled      = false;
                    break;

                case PackmanOperationType.Search:
                    ExtractLatestXiaomiPackageInfo(operationId);
                    break;

                default:
                    System.Console.WriteLine("Type " + operationType + " Not Supported");
                    break;
                }
                return(true);
            }

            return(true);
        }
        public static StatusCode ConvertToManaged(this NativeStatusCode status)
        {
            switch (status)
            {
            case NativeStatusCode.InProgress:
            case NativeStatusCode.InQueue:
                return(StatusCode.InProgress);

            case NativeStatusCode.Error:
            case NativeStatusCode.NotFound:
                return(StatusCode.Failure);

            case NativeStatusCode.Done:
                return(StatusCode.Success);
            }

            throw new NotSupportedException(string.Format("Unknown native status code {0}", status));
        }
Example #11
0
 internal Request(long operationId, NativeStatusCode initialStatus)
 {
     m_Id     = operationId;
     m_Status = initialStatus;
     Debug.AssertFormat(m_Id > 0, "Expected operation id to be a positive integer but got [{0}]", m_Id);
 }
Example #12
0
 internal Request(long operationId, NativeStatusCode initialStatus)
 {
     m_Id     = operationId;
     m_Status = initialStatus;
     Debug.AssertFormat(m_Status == NativeStatusCode.Error ? m_Id == 0 : m_Id > 0, "Invalid operation id [status: {0}, id: {1}]", m_Status, m_Id);
 }
Example #13
0
 internal GetCachedPackagesRequest(long operationId, NativeStatusCode initialStatus)
     : base(operationId, initialStatus)
 {
 }
        private void XiaomiPackageControlGUI()
        {
            EditorGUI.BeginDisabledGroup(!isVersionInitialized || packmanOperationRunning);

            if (!xiaomiPackageInstalled)
            {
                if (GUILayout.Button("Add", GUILayout.Width(60)))
                {
                    if (packmanOperationRunning)
                    {
                        return;
                    }

                    NativeStatusCode code = NativeClient.Add(out packmanOperationId, LatestXiaomiPackageId);
                    if (code == NativeStatusCode.Error)
                    {
                        Debug.LogError("Add " + LatestXiaomiPackageId + " error, please add it again.");
                        return;
                    }
                    packmanOperationType = PackmanOperationType.Add;
                    System.Console.WriteLine("Add: OperationID " + packmanOperationId + " for " + LatestXiaomiPackageId);
                    packmanOperationRunning = true;
                }
            }
            else
            {
                GUILayout.BeginHorizontal();
                if (!string.IsNullOrEmpty(latestXiaomiPackageVersion) && currentXiaomiPackageVersion != latestXiaomiPackageVersion)
                {
                    if (GUILayout.Button("Update", GUILayout.Width(60)))
                    {
                        if (packmanOperationRunning)
                        {
                            return;
                        }

                        if (EditorUtility.DisplayDialog("Update Xiaomi SDK", "Are you sure you want to update to " + latestXiaomiPackageVersion + " ?", "Yes", "No"))
                        {
                            NativeStatusCode code = NativeClient.Add(out packmanOperationId, LatestXiaomiPackageId);
                            if (code == NativeStatusCode.Error)
                            {
                                Debug.LogError("Update " + LatestXiaomiPackageId + " error, please update it again.");
                                return;
                            }
                            packmanOperationType = PackmanOperationType.Add;
                            System.Console.WriteLine("Update: OperationID " + packmanOperationId + " for " + LatestXiaomiPackageId);
                            packmanOperationRunning = true;
                        }
                    }
                }
                if (GUILayout.Button("Remove", GUILayout.Width(60)))
                {
                    if (packmanOperationRunning)
                    {
                        return;
                    }

                    NativeStatusCode code = NativeClient.Remove(out packmanOperationId, CurrentXiaomiPackageId);
                    if (code == NativeStatusCode.Error)
                    {
                        Debug.LogError("Remove " + CurrentXiaomiPackageId + " error, please remove it again.");
                        return;
                    }
                    packmanOperationType = PackmanOperationType.Remove;
                    System.Console.WriteLine("Remove: OperationID " + packmanOperationId + " for " + CurrentXiaomiPackageId);
                    packmanOperationRunning = true;
                }
                GUILayout.EndHorizontal();
            }

            EditorGUI.EndDisabledGroup();
        }
Example #15
0
 internal AddRequest(long operationId, NativeStatusCode initialStatus)
     : base(operationId, initialStatus)
 {
 }
 public static bool IsCompleted(this NativeStatusCode status)
 {
     return(ConvertToManaged(status) != StatusCode.InProgress);
 }
Example #17
0
 internal Request(long operationId, NativeStatusCode initialStatus)
 {
     this.m_Id     = operationId;
     this.m_Status = initialStatus;
 }
 internal PerformSearchRequest(long operationId, NativeStatusCode initialStatus, SearchOptions options)
     : base(operationId, initialStatus)
 {
     m_Options = options;
 }
 internal ResetToEditorDefaultsRequest(long operationId, NativeStatusCode initialStatus) : base(operationId, initialStatus)
 {
 }
Example #20
0
 internal GetRegistriesRequest(long operationId, NativeStatusCode initialStatus)
     : base(operationId, initialStatus)
 {
 }
Example #21
0
 internal ClearCacheRootRequest(long operationId, NativeStatusCode initialStatus)
     : base(operationId, initialStatus)
 {
 }
Example #22
0
 internal RemoveRequest(long operationId, NativeStatusCode initialStatus, string packageName) : base(operationId, initialStatus)
 {
     this.m_PackageIdOrName = packageName;
 }
 internal ListBuiltInPackagesRequest(long operationId, NativeStatusCode initialStatus)
     : base(operationId, initialStatus)
 {
 }
Example #24
0
 internal RemoveScopedRegistryRequest(long operationId, NativeStatusCode initialStatus)
     : base(operationId, initialStatus)
 {
 }
 internal SearchRequest(long operationId, NativeStatusCode initialStatus, string packageIdOrName)
     : base(operationId, initialStatus)
 {
     m_PackageIdOrName = packageIdOrName;
 }
 internal PerformSearchRequest(long operationId, NativeStatusCode initialStatus)
     : base(operationId, initialStatus)
 {
 }