protected void IntegrateQueryDevices(IAndroidLogcatTaskResult resut)
        {
            var deviceIdsResult = ((AndroidLogcatRetrieveDeviceIdsResult)resut);
            var deviceInfos = deviceIdsResult.deviceInfo;

            foreach (var d in m_Devices)
            {
                d.Value.UpdateState(IAndroidLogcatDevice.DeviceState.Disconnected);
            }

            foreach (var info in deviceInfos)
            {
                GetOrCreateDevice(info.id).UpdateState(info.state);
            }

            // If our selected device was removed, deselect it
            if (m_SelectedDevice != null && m_SelectedDevice.State != IAndroidLogcatDevice.DeviceState.Connected)
            {
                m_SelectedDevice = null;
                if (deviceIdsResult.notifyListeners)
                    DeviceSelected?.Invoke(m_SelectedDevice);
            }

            if (m_SelectedDevice != null)
            {
                if (m_SelectedDevice != m_Devices[m_SelectedDevice.Id])
                    throw new Exception("The selected device is not among our list of devices");
            }

            DevicesUpdated?.Invoke();
        }
Exemplo n.º 2
0
        private static void IntegrateConnectToDevice(IAndroidLogcatTaskResult result)
        {
            var r = (AndroidLogcatConnectToDeviceResult)result;

            AndroidLogcatInternalLog.Log(r.message);
            EditorUtility.ClearProgressBar();
            EditorUtility.DisplayDialog(r.success ? "Success" : "Failure", r.message, "Ok");
        }
        private void IntegrateCaptureScreenShot(IAndroidLogcatTaskResult result)
        {
            if (m_CaptureCount > 0)
            {
                m_CaptureCount--;
            }
            var captureResult = (AndroidLogcatCaptureScreenCaptureResult)result;

            m_ImagePath = captureResult.imagePath;
            m_Error     = captureResult.error;
            if (!string.IsNullOrEmpty(m_ImagePath))
            {
                LoadImage();
            }
            Repaint();
        }
        private void IntegrateQueryMemory(IAndroidLogcatTaskResult result)
        {
            m_RequestsInQueue--;
            if (m_RequestsInQueue < 0)
            {
                m_RequestsInQueue = 0;
                throw new Exception("Receiving more memory results than requested ?");
            }
            var memoryResult = (AndroidLogcatQueryMemoryResult)result;

            // When selecting a new package, there might be still few requests for other packages running on other threads
            // Ignore those
            if (m_ExpectedPackageFromRequest == null || m_ExpectedDevice == null)
            {
                return;
            }

            if (memoryResult.packageProcessId != m_ExpectedPackageFromRequest.processId ||
                memoryResult.deviceId != m_ExpectedDevice.Id ||
                string.IsNullOrEmpty(memoryResult.contents))
            {
                return;
            }

            if (memoryResult.contents.Contains("No process found for:"))
            {
                m_ExpectedPackageFromRequest.SetExited();
                m_Parent.Repaint();
                return;
            }

            var stats = AllocateMemoryStatistics();

            try
            {
                stats.Parse(memoryResult.contents);
            }
            catch (Exception ex)
            {
                stats.Clear();
                AndroidLogcatInternalLog.Log(ex.Message);
            }
            UpdateGeneralStats();

            m_Parent.Repaint();
        }
        private void IntegrateUpdateConnectedDevicesList(IAndroidLogcatTaskResult resut)
        {
            m_DeviceIds = ((AndroidLogcatRetrieveDeviceIdsResult)resut).deviceIds;

            var adb = GetCachedAdb();
            // Ensure selected device does not change (due to a new device name taking the same index)
            if (m_SelectedDeviceId != null)
            {
                m_SelectedDeviceIndex = m_DeviceIds.IndexOf(m_SelectedDeviceId);
            }

            var devicesDetails = new List<string>();
            foreach (var deviceId in m_DeviceIds)
            {
                devicesDetails.Add(AndroidLogcatUtilities.RetrieveDeviceDetails(GetAndroidDeviceFromCache(adb, deviceId), deviceId));
            }
            m_DeviceDetails = devicesDetails.ToArray();
        }
 void IntegrateTask(IAndroidLogcatTaskResult result)
 {
     Assert.Fail();
 }