+ _nameKey = inNameKey;\r
+ boolean mediaDeleted = false;\r
+ _totalDeleted = 0;\r
+ // Check if there's a valid first range\r
+ if (inStartIndex1 >= 0 && inDeleteMedias1 != null)\r
+ {\r
+ final int numPoints = inDeleteMedias1.length;\r
+ if (numPoints > 0)\r
+ {\r
+ _totalDeleted += numPoints;\r
+ _rangeInfo1 = new RangeInfo();\r
+ _rangeInfo1._startIndex = inStartIndex1;\r
+\r
+ for (int i=0; i<numPoints && !mediaDeleted; i++) {\r
+ if (inDeleteMedias1[i]) mediaDeleted = true;\r
+ }\r
+ // Clone points\r
+ _rangeInfo1._points = inTrackInfo.getTrack().cloneRange(inStartIndex1, inStartIndex1 + numPoints - 1);\r
+ // Save segment flag of following track point\r
+ _rangeInfo1.setNextTrackPoint(inTrackInfo.getTrack().getNextTrackPoint(inStartIndex1 + numPoints));\r
+ }\r
+ }\r
+ // And the same for the second range, if any\r
+ if (inStartIndex2 >= 0 && inDeleteMedias2 != null)\r
+ {\r
+ final int numPoints = inDeleteMedias2.length;\r
+ if (numPoints > 0)\r
+ {\r
+ _totalDeleted += numPoints;\r
+ _rangeInfo2 = new RangeInfo();\r
+ _rangeInfo2._startIndex = inStartIndex2;\r
+ for (int i=0; i<numPoints && !mediaDeleted; i++) {\r
+ if (inDeleteMedias2[i]) mediaDeleted = true;\r
+ }\r
+\r
+ // Clone points\r
+ _rangeInfo2._points = inTrackInfo.getTrack().cloneRange(inStartIndex2, inStartIndex2 + numPoints - 1);\r
+ // Save segment flag of following track point\r
+ _rangeInfo2.setNextTrackPoint(inTrackInfo.getTrack().getNextTrackPoint(inStartIndex2 + numPoints));\r
+ }\r
+ }\r
+ // If any media have been deleted, then the lists must be copied\r
+ if (mediaDeleted)\r
+ {\r
+ _photoList = inTrackInfo.getPhotoList().cloneList();\r
+ _audioList = inTrackInfo.getAudioList().cloneList();\r
+ }\r