|
|
|
|
@ -113,6 +113,44 @@ class RepairMimeTypes extends BasicEmitter implements \OC\RepairStep {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private function fixAPKMimeType() {
|
|
|
|
|
$existsStmt = \OC_DB::prepare('
|
|
|
|
|
SELECT count(`mimetype`)
|
|
|
|
|
FROM `*PREFIX*mimetypes`
|
|
|
|
|
WHERE `mimetype` = ?
|
|
|
|
|
');
|
|
|
|
|
|
|
|
|
|
$insertStmt = \OC_DB::prepare('
|
|
|
|
|
INSERT INTO `*PREFIX*mimetypes` ( `mimetype` )
|
|
|
|
|
VALUES ( ? )
|
|
|
|
|
');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$updateByNameStmt = \OC_DB::prepare('
|
|
|
|
|
UPDATE `*PREFIX*filecache`
|
|
|
|
|
SET `mimetype` = (
|
|
|
|
|
SELECT `id`
|
|
|
|
|
FROM `*PREFIX*mimetypes`
|
|
|
|
|
WHERE `mimetype` = ?
|
|
|
|
|
) WHERE `name` LIKE ?
|
|
|
|
|
');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$mimeTypeExtension = 'apk';
|
|
|
|
|
$mimeTypeName = 'application/vnd.android.package-archive';
|
|
|
|
|
|
|
|
|
|
$result = \OC_DB::executeAudited($existsStmt, array($mimeTypeName));
|
|
|
|
|
$exists = $result->fetchOne();
|
|
|
|
|
|
|
|
|
|
if ( ! $exists ) {
|
|
|
|
|
// insert mimetype
|
|
|
|
|
\OC_DB::executeAudited($insertStmt, array($mimeTypeName));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// change mimetype for files with x extension
|
|
|
|
|
\OC_DB::executeAudited($updateByNameStmt, array($mimeTypeName, '%.'.$mimeTypeExtension));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Fix mime types
|
|
|
|
|
*/
|
|
|
|
|
@ -120,6 +158,10 @@ class RepairMimeTypes extends BasicEmitter implements \OC\RepairStep {
|
|
|
|
|
if ($this->fixOfficeMimeTypes()) {
|
|
|
|
|
$this->emit('\OC\Repair', 'info', array('Fixed office mime types'));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if ($this->fixAPKMimeType()) {
|
|
|
|
|
$this->emit('\OC\Repair', 'info', array('Fixed APK mime type'));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|