Brock's call, and it is the right one: this is a utility, not a destination. Nobody opens a speedtest the way they open Files or Mail. The app menu is for places you go; Settings is for things you check. Registers an IIconSection + ISettings pair and drops <navigations> entirely. The settings template is a SEPARATE file with NO #app-content wrapper, and that is deliberate: the settings shell supplies its own layout, so reusing the app-menu template nests two layout containers and breaks the width. Same trap as the frame issue, mirrored — one context needs the wrapper, the other must not have it. Both templates carry a comment saying which is which. /apps/speedtest/ still resolves for anyone who bookmarked it; it just no longer occupies a slot in the menu.
35 lines
630 B
PHP
35 lines
630 B
PHP
<?php
|
|
declare(strict_types=1);
|
|
|
|
namespace OCA\Speedtest\Settings;
|
|
|
|
use OCA\Speedtest\AppInfo\Application;
|
|
use OCP\IL10N;
|
|
use OCP\IURLGenerator;
|
|
use OCP\Settings\IIconSection;
|
|
|
|
class PersonalSection implements IIconSection {
|
|
|
|
public function __construct(
|
|
private IL10N $l,
|
|
private IURLGenerator $urlGenerator,
|
|
) {
|
|
}
|
|
|
|
public function getIcon(): string {
|
|
return $this->urlGenerator->imagePath(Application::APP_ID, 'app.svg');
|
|
}
|
|
|
|
public function getID(): string {
|
|
return 'speedtest';
|
|
}
|
|
|
|
public function getName(): string {
|
|
return $this->l->t('Speedtest');
|
|
}
|
|
|
|
public function getPriority(): int {
|
|
return 70;
|
|
}
|
|
}
|