Commit dfad2694 authored by Carola Nitz's avatar Carola Nitz

MLMediaLibraryKit: fix duplication of Files

When Files with a cyrillic characters were used, the relativepath and path component
would hold differently compositions(codepoints) of that character, which led to a mismatch when we
tried to query for the files with this path. Using the decomposed canonical equivalent will return a normalized String
after Unicode Normalization Form D which ensures that we have an identical String no matter the composition.
parent f4598267
...@@ -824,6 +824,7 @@ static NSString *kDecrapifyTitles = @"MLDecrapifyTitles"; ...@@ -824,6 +824,7 @@ static NSString *kDecrapifyTitles = @"MLDecrapifyTitles";
// on iPhone we only save relative paths ins the DB // on iPhone we only save relative paths ins the DB
relativePath = [self pathRelativeToDocumentsFolderFromAbsolutPath:path]; relativePath = [self pathRelativeToDocumentsFolderFromAbsolutPath:path];
#endif #endif
relativePath = [relativePath decomposedStringWithCanonicalMapping];
[urlToObject setObject:path forKey:relativePath]; [urlToObject setObject:path forKey:relativePath];
[fetchPredicates addObject:[NSPredicate predicateWithFormat:@"path == %@", relativePath]]; [fetchPredicates addObject:[NSPredicate predicateWithFormat:@"path == %@", relativePath]];
} }
...@@ -844,6 +845,7 @@ static NSString *kDecrapifyTitles = @"MLDecrapifyTitles"; ...@@ -844,6 +845,7 @@ static NSString *kDecrapifyTitles = @"MLDecrapifyTitles";
// Remove objects that are already in db. // Remove objects that are already in db.
for (MLFile *dbResult in dbResults) { for (MLFile *dbResult in dbResults) {
NSString *path = dbResult.path; NSString *path = dbResult.path;
path = [path decomposedStringWithCanonicalMapping];
[filePathsToAdd removeObject:[urlToObject objectForKey:path]]; [filePathsToAdd removeObject:[urlToObject objectForKey:path]];
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment