mirror of
https://gitlab.opencode.de/bwi/bundesmessenger/clients/bundesmessenger-ios.git
synced 2026-04-22 09:32:52 +02:00
Merge pull request #1535 from vector-im/list_widgets
Widgets: list active widgets in a room
This commit is contained in:
@@ -110,7 +110,7 @@
|
||||
#import "MXRoom+Riot.h"
|
||||
|
||||
#import "IntegrationManagerViewController.h"
|
||||
#import "WidgetViewController.h"
|
||||
#import "WidgetPickerViewController.h"
|
||||
|
||||
@interface RoomViewController ()
|
||||
{
|
||||
@@ -1197,13 +1197,31 @@
|
||||
barButtonItem.enabled = YES;
|
||||
}
|
||||
|
||||
BOOL matrixAppsEnabled = [[NSUserDefaults standardUserDefaults] boolForKey:@"matrixApps"];
|
||||
if (!matrixAppsEnabled && self.navigationItem.rightBarButtonItems.count == 2)
|
||||
if (self.navigationItem.rightBarButtonItems.count == 2)
|
||||
{
|
||||
// If the setting is disabled, do not show the icon
|
||||
self.navigationItem.rightBarButtonItems = @[self.navigationItem.rightBarButtonItem];
|
||||
BOOL matrixAppsEnabled = [[NSUserDefaults standardUserDefaults] boolForKey:@"matrixApps"];
|
||||
if (!matrixAppsEnabled)
|
||||
{
|
||||
// If the setting is disabled, do not show the icon
|
||||
self.navigationItem.rightBarButtonItems = @[self.navigationItem.rightBarButtonItem];
|
||||
}
|
||||
else if (self.widgetsCount)
|
||||
{
|
||||
// Show there are widgets by changing the "apps" icon color
|
||||
// TODO: Design must be reviewed
|
||||
UIImage *icon = self.navigationItem.rightBarButtonItems[1].image;
|
||||
icon = [MXKTools paintImage:icon withColor:kRiotColorPinkRed];
|
||||
icon = [icon imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
|
||||
|
||||
self.navigationItem.rightBarButtonItems[1].image = icon;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Reset original icon
|
||||
self.navigationItem.rightBarButtonItems[1].image = [UIImage imageNamed:@"apps-icon"];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Do not change title view class here if the expanded header is visible.
|
||||
if (self.expandedHeaderContainer.hidden)
|
||||
{
|
||||
@@ -2889,19 +2907,16 @@
|
||||
// Matrix Apps button
|
||||
else if (self.navigationItem.rightBarButtonItems.count == 2 && sender == self.navigationItem.rightBarButtonItems[1])
|
||||
{
|
||||
// Temporary code to test `WidgetViewController`
|
||||
// TODO: remove it
|
||||
// NSArray<Widget *> *widgets = [[WidgetManager sharedManager] widgetsInRoom:self.roomDataSource.room];
|
||||
// if (widgets.count)
|
||||
// {
|
||||
// // Hide back button title
|
||||
// self.navigationItem.backBarButtonItem =[[UIBarButtonItem alloc] initWithTitle:@"" style:UIBarButtonItemStylePlain target:nil action:nil];
|
||||
//
|
||||
// WidgetViewController *widgetVC = [[WidgetViewController alloc] initForWidget:widgets[0]];
|
||||
// [self.navigationController pushViewController:widgetVC animated:YES];
|
||||
// }
|
||||
// else
|
||||
if (self.widgetsCount)
|
||||
{
|
||||
WidgetPickerViewController *widgetPicker = [[WidgetPickerViewController alloc] initForMXSession:self.roomDataSource.mxSession
|
||||
inRoom:self.roomDataSource.roomId];
|
||||
|
||||
[widgetPicker showInViewController:self];
|
||||
}
|
||||
else
|
||||
{
|
||||
// No widgets -> Directly show the integration manager
|
||||
IntegrationManagerViewController *modularVC = [[IntegrationManagerViewController alloc] initForMXSession:self.roomDataSource.mxSession
|
||||
inRoom:self.roomDataSource.roomId
|
||||
screen:kIntegrationManagerMainScreen
|
||||
@@ -3453,6 +3468,7 @@
|
||||
// Update the bar
|
||||
[self refreshActivitiesViewDisplay];
|
||||
[self refreshRoomInputToolbar];
|
||||
[self refreshRoomTitle];
|
||||
}
|
||||
}];
|
||||
}
|
||||
@@ -3473,6 +3489,12 @@
|
||||
[[AppDelegate theDelegate] showErrorAsAlert:error];
|
||||
}
|
||||
|
||||
- (NSUInteger)widgetsCount
|
||||
{
|
||||
return [[WidgetManager sharedManager] widgetsNotOfTypes:@[kWidgetTypeJitsi]
|
||||
inRoom:self.roomDataSource.room].count;
|
||||
}
|
||||
|
||||
#pragma mark - Unreachable Network Handling
|
||||
|
||||
- (void)refreshActivitiesViewDisplay
|
||||
|
||||
Reference in New Issue
Block a user