Skip to content
This repository was archived by the owner on Feb 9, 2023. It is now read-only.

Commit 5b9e24e

Browse files
authored
Preview 모드에서 MessageView UI가 업데이트 되지 않던 현상 수정 (#15)
1 parent 7c9e0e3 commit 5b9e24e

File tree

4 files changed

+21
-10
lines changed

4 files changed

+21
-10
lines changed

hover/src/main/java/io/mattcarroll/hover/HoverViewStateCollapsed.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ class HoverViewStateCollapsed extends BaseHoverViewState {
4747

4848
protected FloatingTab mFloatingTab;
4949
protected final Dragger.DragListener mDragListener = new FloatingTabDragListener(this);
50-
private HoverMenu.Section mSelectedSection;
50+
protected HoverMenu.Section mSelectedSection;
5151
private int mSelectedSectionIndex = -1;
5252
private boolean mIsCollapsed = false;
5353
private boolean mIsDocked = false;

hover/src/main/java/io/mattcarroll/hover/HoverViewStatePreviewed.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ public void takeControl(@NonNull HoverView hoverView, final Runnable onStateChan
3737
super.takeControl(hoverView, null);
3838
Log.d(TAG, "Taking control.");
3939
mMessageView = mHoverView.mScreen.getTabMessageView(mHoverView.mSelectedSectionId);
40+
mMessageView.setMessageView(mSelectedSection.getTabMessageView());
4041
mMessageView.appear(mHoverView.mCollapsedDock, new Runnable() {
4142
@Override
4243
public void run() {

hover/src/main/java/io/mattcarroll/hover/Screen.java

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -79,11 +79,11 @@ public void enableDrugMode(boolean debugMode) {
7979
@NonNull
8080
public FloatingTab createChainedTab(@NonNull HoverMenu.Section section) {
8181
String tabId = section.getId().toString();
82-
return createChainedTab(tabId, section.getTabView(), section.getTabMessageView());
82+
return createChainedTab(tabId, section.getTabView());
8383
}
8484

8585
@NonNull
86-
public FloatingTab createChainedTab(@NonNull String tabId, @NonNull View tabView, @Nullable View tabMessageView) {
86+
public FloatingTab createChainedTab(@NonNull String tabId, @NonNull View tabView) {
8787
Log.d(TAG, "Existing tabs...");
8888
for (String existingTabId : mTabs.keySet()) {
8989
Log.d(TAG, existingTabId);
@@ -97,11 +97,9 @@ public FloatingTab createChainedTab(@NonNull String tabId, @NonNull View tabView
9797
chainedTab.enableDebugMode(mIsDebugMode);
9898
mContainer.addView(chainedTab);
9999
mTabs.put(tabId, chainedTab);
100-
if (tabMessageView != null) {
101-
final TabMessageView messageView = new TabMessageView(tabView.getContext(), tabMessageView, chainedTab);
102-
mContainer.addView(messageView);
103-
mTabMessageViews.put(tabId, messageView);
104-
}
100+
final TabMessageView messageView = new TabMessageView(tabView.getContext(), chainedTab);
101+
mContainer.addView(messageView);
102+
mTabMessageViews.put(tabId, messageView);
105103
return chainedTab;
106104
}
107105
}
@@ -119,6 +117,7 @@ public FloatingTab getChainedTab(@Nullable String tabId) {
119117

120118
public void destroyChainedTab(@NonNull FloatingTab chainedTab) {
121119
mTabs.remove(chainedTab.getTabId());
120+
mTabMessageViews.remove(chainedTab.getTabId());
122121
chainedTab.setTabView(null);
123122
mContainer.removeView(chainedTab);
124123
}

hover/src/main/java/io/mattcarroll/hover/TabMessageView.java

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ public class TabMessageView extends HoverFrameLayout {
1717

1818
private final FloatingTab mFloatingTab;
1919
private SideDock mSideDock;
20+
private View mMessageView;
2021

2122
private final OnPositionChangeListener mOnTabPositionChangeListener = new OnPositionChangeListener() {
2223
@Override
@@ -46,15 +47,25 @@ public void onDockChange(@NonNull Dock dock) {
4647
}
4748
};
4849

49-
public TabMessageView(@NonNull Context context, @NonNull View messageView, @NonNull FloatingTab floatingTab) {
50+
public TabMessageView(@NonNull Context context, @NonNull FloatingTab floatingTab) {
5051
super(context);
5152
setClipToPadding(false);
5253
setClipChildren(false);
5354
mFloatingTab = floatingTab;
54-
addView(messageView);
5555
setVisibility(GONE);
5656
}
5757

58+
public void setMessageView(@Nullable View view) {
59+
if (view == mMessageView) {
60+
return;
61+
}
62+
removeAllViews();
63+
mMessageView = view;
64+
if (mMessageView != null) {
65+
addView(mMessageView);
66+
}
67+
}
68+
5869
public void appear(final SideDock dock, @Nullable final Runnable onAppeared) {
5970
mSideDock = dock;
6071
mFloatingTab.addOnPositionChangeListener(mOnTabPositionChangeListener);

0 commit comments

Comments
 (0)