public void DeleteOldestMarkers(int markerToDeleteCount, String markerToSaveId, bool isRecognitionRunning) { List <Marker> markers = dbu.MarkerQuery("SELECT markerId FROM " + "Markers WHERE markerId<>'" + markerToSaveId + "' AND " + "databaseId IN (SELECT id FROM MarkerDatabase " + " WHERE cloud=1) ORDER BY lastAccessDate DESC LIMIT " + markerToDeleteCount); foreach (Marker marker in markers) { dbu.Delete <Marker>(marker.markerId); if (isRecognitionRunning) { #if UNITY_EDITOR_OSX || (UNITY_IOS && !UNITY_EDITOR_WIN) PikkartARCore.DeleteLocalMarker(marker.markerId, true); #else PikkartARCore.DeleteLocalMarker(new StringBuilder(marker.markerId), true); #endif } else { File.Delete(StorageUtils.GetApplicationPersistentDataPath() + "markers/" + marker.markerId + ".dat"); } } }
/// <summary> /// Deletes the marker. /// </summary> /// <param name="marker">Marker object.</param> public void DeleteMarker(Marker marker) { #if UNITY_EDITOR_OSX || (UNITY_IOS && !UNITY_EDITOR_WIN) PikkartARCore.DeleteLocalMarker(marker.markerId, true); #else PikkartARCore.DeleteLocalMarker(new StringBuilder(marker.markerId), true); #endif dbu.Delete <Marker>(marker); }
/// <summary> /// Deletes obsolete local data. /// </summary> /// <param name="cacheMilliseconds">Cache milliseconds.</param> /// <param name="isRecognitionManagerRunning">is recognition manager running.</param> public void DeleteObsoleteLocalData(bool deleteFilesNotInSqlite, bool isRecognitionManagerRunning) { List <string> markersFileNames = new List <string>(); List <Marker> dbMarkers = GetMarkersList(); string markersPath = RecognitionManager.GetAppDataPath() + "markers"; if (!Directory.Exists(markersPath)) { Directory.CreateDirectory(markersPath); } if (dbMarkers.Count > 0) { foreach (Marker marker in dbMarkers) { string markerId = marker.markerId; string markerFileName = markerId + ".dat"; DateTime?publishedTo = marker.publishedTo; markersFileNames.Add(markerFileName); if (publishedTo == null) { continue; } if (publishedTo.Value.CompareTo(DateTime.Now.ToUniversalTime()) < 0) { if (isRecognitionManagerRunning) { #if UNITY_EDITOR_OSX || (UNITY_IOS && !UNITY_EDITOR_WIN) PikkartARCore.DeleteLocalMarker(markerId, true); #else PikkartARCore.DeleteLocalMarker(new StringBuilder(markerId), true); #endif } else { string markerFilePath = markersPath + "/" + markerFileName; if (!Directory.Exists(markersPath)) { Directory.CreateDirectory(markersPath); } if (File.Exists(markerFilePath)) { File.Delete(markerFilePath); } } } } } if (deleteFilesNotInSqlite) { var info = new DirectoryInfo(markersPath); FileInfo[] filesInfo = info.GetFiles(); foreach (FileInfo fileInfo in filesInfo) { if (fileInfo.Name.Contains(".dat") && !markersFileNames.Contains(fileInfo.Name)) { fileInfo.Delete(); } } } dbu.DeleteObsoleteMarkers(); }