Add APK mimetype repair scenario.
This commit is contained in:
parent
42edd5b788
commit
38498af171
|
@ -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'));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue