Use new link browser in feed plugin
Use new link browser to open links from feed plugin entries. Signed-off-by: Tomas Slusny <slusnucky@gmail.com>
This commit is contained in:
@@ -26,7 +26,6 @@ package net.runelite.client.plugins.feed;
|
|||||||
|
|
||||||
import java.awt.BorderLayout;
|
import java.awt.BorderLayout;
|
||||||
import java.awt.Color;
|
import java.awt.Color;
|
||||||
import java.awt.Desktop;
|
|
||||||
import java.awt.Dimension;
|
import java.awt.Dimension;
|
||||||
import java.awt.Font;
|
import java.awt.Font;
|
||||||
import java.awt.event.MouseAdapter;
|
import java.awt.event.MouseAdapter;
|
||||||
@@ -34,8 +33,6 @@ import java.awt.event.MouseEvent;
|
|||||||
import java.awt.font.FontRenderContext;
|
import java.awt.font.FontRenderContext;
|
||||||
import java.awt.image.BufferedImage;
|
import java.awt.image.BufferedImage;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.net.URI;
|
|
||||||
import java.net.URISyntaxException;
|
|
||||||
import java.time.Duration;
|
import java.time.Duration;
|
||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
import java.util.Comparator;
|
import java.util.Comparator;
|
||||||
@@ -52,6 +49,7 @@ import javax.swing.border.EmptyBorder;
|
|||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import net.runelite.client.ui.FontManager;
|
import net.runelite.client.ui.FontManager;
|
||||||
import net.runelite.client.ui.PluginPanel;
|
import net.runelite.client.ui.PluginPanel;
|
||||||
|
import net.runelite.client.util.LinkBrowser;
|
||||||
import net.runelite.http.api.RuneLiteAPI;
|
import net.runelite.http.api.RuneLiteAPI;
|
||||||
import net.runelite.http.api.feed.FeedItem;
|
import net.runelite.http.api.feed.FeedItem;
|
||||||
import net.runelite.http.api.feed.FeedItemType;
|
import net.runelite.http.api.feed.FeedItemType;
|
||||||
@@ -116,11 +114,13 @@ class FeedPanel extends PluginPanel
|
|||||||
|
|
||||||
private final FeedConfig config;
|
private final FeedConfig config;
|
||||||
private final Supplier<FeedResult> feedSupplier;
|
private final Supplier<FeedResult> feedSupplier;
|
||||||
|
private final LinkBrowser linkBrowser;
|
||||||
|
|
||||||
FeedPanel(FeedConfig config, Supplier<FeedResult> feedSupplier)
|
FeedPanel(FeedConfig config, Supplier<FeedResult> feedSupplier, LinkBrowser linkBrowser)
|
||||||
{
|
{
|
||||||
this.config = config;
|
this.config = config;
|
||||||
this.feedSupplier = feedSupplier;
|
this.feedSupplier = feedSupplier;
|
||||||
|
this.linkBrowser = linkBrowser;
|
||||||
}
|
}
|
||||||
|
|
||||||
void rebuildFeed()
|
void rebuildFeed()
|
||||||
@@ -283,23 +283,7 @@ class FeedPanel extends PluginPanel
|
|||||||
public void mouseReleased(MouseEvent e)
|
public void mouseReleased(MouseEvent e)
|
||||||
{
|
{
|
||||||
avatarAndRight.setBackground(hoverColor);
|
avatarAndRight.setBackground(hoverColor);
|
||||||
|
linkBrowser.browse(item.getUrl());
|
||||||
Desktop desktop = Desktop.getDesktop();
|
|
||||||
|
|
||||||
if (!desktop.isSupported(Desktop.Action.BROWSE))
|
|
||||||
{
|
|
||||||
log.info("Desktop browser is not supported");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
desktop.browse(new URI(item.getUrl()));
|
|
||||||
}
|
|
||||||
catch (IOException | URISyntaxException ex)
|
|
||||||
{
|
|
||||||
log.warn("Unable to open URL " + item.getUrl(), ex);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -42,6 +42,7 @@ import net.runelite.client.plugins.PluginDescriptor;
|
|||||||
import net.runelite.client.task.Schedule;
|
import net.runelite.client.task.Schedule;
|
||||||
import net.runelite.client.ui.ClientUI;
|
import net.runelite.client.ui.ClientUI;
|
||||||
import net.runelite.client.ui.NavigationButton;
|
import net.runelite.client.ui.NavigationButton;
|
||||||
|
import net.runelite.client.util.LinkBrowser;
|
||||||
import net.runelite.http.api.feed.FeedClient;
|
import net.runelite.http.api.feed.FeedClient;
|
||||||
import net.runelite.http.api.feed.FeedResult;
|
import net.runelite.http.api.feed.FeedResult;
|
||||||
|
|
||||||
@@ -61,6 +62,9 @@ public class FeedPlugin extends Plugin
|
|||||||
@Inject
|
@Inject
|
||||||
private ScheduledExecutorService executorService;
|
private ScheduledExecutorService executorService;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private LinkBrowser linkBrowser;
|
||||||
|
|
||||||
private FeedPanel feedPanel;
|
private FeedPanel feedPanel;
|
||||||
private NavigationButton navButton;
|
private NavigationButton navButton;
|
||||||
|
|
||||||
@@ -81,7 +85,7 @@ public class FeedPlugin extends Plugin
|
|||||||
@Override
|
@Override
|
||||||
protected void startUp() throws Exception
|
protected void startUp() throws Exception
|
||||||
{
|
{
|
||||||
feedPanel = new FeedPanel(config, feedSupplier);
|
feedPanel = new FeedPanel(config, feedSupplier, linkBrowser);
|
||||||
|
|
||||||
navButton = new NavigationButton(
|
navButton = new NavigationButton(
|
||||||
"News Feed",
|
"News Feed",
|
||||||
|
|||||||
Reference in New Issue
Block a user