Skip to content

Commit

Permalink
UserStatus App: use IBootstrap
Browse files Browse the repository at this point in the history
Signed-off-by: Georg Ehrke <[email protected]>
  • Loading branch information
georgehrke committed Jul 7, 2020
1 parent 84f4742 commit eae589a
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 60 deletions.
32 changes: 0 additions & 32 deletions apps/user_status/appinfo/app.php

This file was deleted.

51 changes: 23 additions & 28 deletions apps/user_status/lib/AppInfo/Application.php
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,9 @@
use OCA\UserStatus\Listener\UserLiveStatusListener;
use OCA\UserStatus\Service\JSDataService;
use OCP\AppFramework\App;
use OCP\AppFramework\Bootstrap\IBootContext;
use OCP\AppFramework\Bootstrap\IBootstrap;
use OCP\AppFramework\Bootstrap\IRegistrationContext;
use OCP\AppFramework\Http\TemplateResponse;
use OCP\EventDispatcher\IEventDispatcher;
use OCP\IInitialStateService;
Expand All @@ -41,7 +44,7 @@
*
* @package OCA\UserStatus\AppInfo
*/
class Application extends App {
class Application extends App implements IBootstrap {

/** @var string */
public const APP_ID = 'user_status';
Expand All @@ -56,43 +59,35 @@ public function __construct(array $urlParams = []) {
}

/**
* Registers capabilities that will be exposed
* via the OCS API endpoint
* @inheritDoc
*/
public function registerCapabilities(): void {
$this->getContainer()
->registerCapability(Capabilities::class);
public function register(IRegistrationContext $context): void {
// Register OCS Capabilities
$context->registerCapability(Capabilities::class);

// Register Event Listeners
$context->registerEventListener(UserDeletedEvent::class, UserDeletedListener::class);
$context->registerEventListener(UserLiveStatusEvent::class, UserLiveStatusListener::class);
}

/**
* Registers a listener for the user-delete event
* to automatically delete a user's status on
* account deletion
* @inheritDoc
*/
public function registerEvents(): void {
/** @var IEventDispatcher $dispatcher */
$dispatcher = $this->getContainer()
->query(IEventDispatcher::class);
public function boot(IBootContext $context): void {
$appContainer = $context->getAppContainer();

$dispatcher->addServiceListener(UserDeletedEvent::class, UserDeletedListener::class);
$dispatcher->addServiceListener(UserLiveStatusEvent::class, UserLiveStatusListener::class);
/** @var IInitialStateService $initialState */
$initialState = $appContainer->query(IInitialStateService::class);
$initialState->provideLazyInitialState(self::APP_ID, 'status', static function () use ($appContainer) {
/** @var JSDataService $data */
$data = $appContainer->query(JSDataService::class);
return $data;
});

$dispatcher = $appContainer->query(IEventDispatcher::class);
$dispatcher->addListener(TemplateResponse::EVENT_LOAD_ADDITIONAL_SCRIPTS_LOGGEDIN, static function () {
\OC_Util::addScript('user_status', 'user-status-menu');
\OC_Util::addStyle('user_status', 'user-status-menu');
});
}

public function registerInitialState(): void {
$container = $this->getContainer();

/** @var IInitialStateService $initialState */
$initialState = $container->query(IInitialStateService::class);

$initialState->provideLazyInitialState(self::APP_ID, 'status', static function () use ($container) {
/** @var JSDataService $data */
$data = $container->query(JSDataService::class);
return $data;
});
}
}

0 comments on commit eae589a

Please sign in to comment.