Skip to content

Commit

Permalink
Make sure only one instance on the send tab dialog is alive (#2823)
Browse files Browse the repository at this point in the history
  • Loading branch information
keianhzo committed Feb 21, 2020
1 parent 7fd3d69 commit fba936f
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -1028,11 +1028,10 @@ private void hideMenu() {
}

public void showSendTabDialog() {
if (mSendTabDialog == null) {
mSendTabDialog = new SendTabDialogWidget(getContext());
}
mSendTabDialog = SendTabDialogWidget.getInstance(getContext());
mSendTabDialog.mWidgetPlacement.parentHandle = mWidgetManager.getFocusedWindow().getHandle();
mSendTabDialog.setSessionId(mAttachedWindow.getSession().getId());
mSendTabDialog.setDelegate(null);
mSendTabDialog.show(UIWidget.REQUEST_FOCUS);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -293,11 +293,10 @@ public void onAdd(TabView aSender) {

@Override
public void onSend(TabView aSender) {
if (mSendTabDialog == null) {
mSendTabDialog = new SendTabDialogWidget(getContext());
}
mSendTabDialog = SendTabDialogWidget.getInstance(getContext());
mSendTabDialog.setSessionId(aSender.getSession().getId());
mSendTabDialog.mWidgetPlacement.parentHandle = mWidgetManager.getFocusedWindow().getHandle();
mSendTabDialog.setDelegate(() -> show(REQUEST_FOCUS));
mSendTabDialog.show(UIWidget.REQUEST_FOCUS);

holder.tabView.reset();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,13 +39,23 @@ public class SendTabDialogWidget extends SettingDialogWidget implements
DeviceConstellationObserver,
AccountObserver {

private static SendTabDialogWidget mSendTabDialog;

private SendTabsDisplayBinding mSendTabsDialogBinding;
private Accounts mAccounts;
private List<Device> mDevicesList = new ArrayList<>();
private WhatsNewWidget mWhatsNew;
private String mSessionId;

public SendTabDialogWidget(@NonNull Context aContext) {
public static SendTabDialogWidget getInstance(@NonNull Context context) {
if (mSendTabDialog == null) {
mSendTabDialog = new SendTabDialogWidget(context);
}

return mSendTabDialog;
}

private SendTabDialogWidget(@NonNull Context aContext) {
super(aContext);
}

Expand All @@ -58,6 +68,13 @@ protected void initialize(@NonNull Context aContext) {
mAccounts = ((VRBrowserApplication)getContext().getApplicationContext()).getAccounts();
}

@Override
public void releaseWidget() {
super.releaseWidget();

mSendTabDialog = null;
}

@Override
public void updateUI() {
super.updateUI();
Expand Down

0 comments on commit fba936f

Please sign in to comment.