@quicktvui/ai 1.0.7 → 1.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/rules/.clinerules +27 -4
- package/rules/.cursorrules +27 -4
- package/rules/.github/copilot-instructions.md +27 -4
- package/rules/.source/hippy/extend_views/CoverFlowHorizontalView.java +203 -0
- package/rules/.source/hippy/extend_views/CoverFlowVerticalView.java +203 -0
- package/rules/.source/hippy/extend_views/CoverFlowViewController.java +195 -0
- package/rules/.source/hippy/extend_views/EngineRootView.java +125 -0
- package/rules/.source/hippy/extend_views/ExtendTag.java +83 -0
- package/rules/.source/hippy/extend_views/FocusSearchHelper.java +124 -0
- package/rules/.source/hippy/extend_views/IRecyclerItemView.java +12 -0
- package/rules/.source/hippy/extend_views/JSEventHandleView.java +5 -0
- package/rules/.source/hippy/extend_views/MarqueeRelayManager.java +133 -0
- package/rules/.source/hippy/extend_views/MarqueeRelayTextView.java +211 -0
- package/rules/.source/hippy/extend_views/ProgressBarView.java +83 -0
- package/rules/.source/hippy/extend_views/ProgressBarViewController.java +145 -0
- package/rules/.source/hippy/extend_views/SeekBarView.java +104 -0
- package/rules/.source/hippy/extend_views/SeekBarViewController.java +218 -0
- package/rules/.source/hippy/extend_views/StateImageView.java +149 -0
- package/rules/.source/hippy/extend_views/StateImageViewController.java +34 -0
- package/rules/.source/hippy/extend_views/TVButtonView.java +314 -0
- package/rules/.source/hippy/extend_views/TVButtonViewController.java +89 -0
- package/rules/.source/hippy/extend_views/TVTextView.java +684 -0
- package/rules/.source/hippy/extend_views/TVViewActor.java +811 -0
- package/rules/.source/hippy/extend_views/TVViewActorHost.java +6 -0
- package/rules/.source/hippy/extend_views/TVViewActor/346/216/245/345/205/245.md +66 -0
- package/rules/.source/hippy/extend_views/TemplateUtil.java +336 -0
- package/rules/.source/hippy/extend_views/TextButtonNode.java +47 -0
- package/rules/.source/hippy/extend_views/TextViewController.java +377 -0
- package/rules/.source/hippy/extend_views/fastlist/CenterFlyInAnimator.java +96 -0
- package/rules/.source/hippy/extend_views/fastlist/ChildOnScreenScroller.java +548 -0
- package/rules/.source/hippy/extend_views/fastlist/ClonedViewTag.java +17 -0
- package/rules/.source/hippy/extend_views/fastlist/EventDeliverer.java +55 -0
- package/rules/.source/hippy/extend_views/fastlist/FastAdapter.java +4683 -0
- package/rules/.source/hippy/extend_views/fastlist/FastAdapterUtil.java +982 -0
- package/rules/.source/hippy/extend_views/fastlist/FastFlexNode.java +48 -0
- package/rules/.source/hippy/extend_views/fastlist/FastFlexView.java +873 -0
- package/rules/.source/hippy/extend_views/fastlist/FastFlexViewController.java +130 -0
- package/rules/.source/hippy/extend_views/fastlist/FastItemNode.java +67 -0
- package/rules/.source/hippy/extend_views/fastlist/FastItemView.java +306 -0
- package/rules/.source/hippy/extend_views/fastlist/FastItemViewController.java +106 -0
- package/rules/.source/hippy/extend_views/fastlist/FastListModule.java +95 -0
- package/rules/.source/hippy/extend_views/fastlist/FastListNode.java +90 -0
- package/rules/.source/hippy/extend_views/fastlist/FastListView.java +2466 -0
- package/rules/.source/hippy/extend_views/fastlist/FastListViewController.java +1038 -0
- package/rules/.source/hippy/extend_views/fastlist/FastListView/346/270/262/346/237/223/346/265/201/347/250/213/345/233/276.graffle +0 -0
- package/rules/.source/hippy/extend_views/fastlist/FastPendingView.java +47 -0
- package/rules/.source/hippy/extend_views/fastlist/ItemDecorations.java +71 -0
- package/rules/.source/hippy/extend_views/fastlist/ItemStoreNode.java +64 -0
- package/rules/.source/hippy/extend_views/fastlist/ItemStoreView.java +13 -0
- package/rules/.source/hippy/extend_views/fastlist/ItemStoreViewController.java +45 -0
- package/rules/.source/hippy/extend_views/fastlist/ListItemHolder.java +7 -0
- package/rules/.source/hippy/extend_views/fastlist/ListViewControlProp.java +41 -0
- package/rules/.source/hippy/extend_views/fastlist/MouseRecycleView.java +509 -0
- package/rules/.source/hippy/extend_views/fastlist/OnFastItemClickListener.java +12 -0
- package/rules/.source/hippy/extend_views/fastlist/OnFastItemFocusChangeListener.java +9 -0
- package/rules/.source/hippy/extend_views/fastlist/OnFastScrollStateChangedListener.java +7 -0
- package/rules/.source/hippy/extend_views/fastlist/PendingListNode.java +18 -0
- package/rules/.source/hippy/extend_views/fastlist/PendingViewController.java +13 -0
- package/rules/.source/hippy/extend_views/fastlist/PostHandlerView.java +6 -0
- package/rules/.source/hippy/extend_views/fastlist/PostTaskHolder.java +20 -0
- package/rules/.source/hippy/extend_views/fastlist/ReplaceChildController.java +105 -0
- package/rules/.source/hippy/extend_views/fastlist/ReplaceChildView.java +312 -0
- package/rules/.source/hippy/extend_views/fastlist/TVListView.java +3692 -0
- package/rules/.source/hippy/extend_views/fastlist/TemplateCodeParser.java +247 -0
- package/rules/.source/hippy/extend_views/fastlist/Utils.java +572 -0
- package/rules/.source/hippy/extend_views/fastlist/ViewTag.java +317 -0
- package/rules/.source/hippy/extend_views/fastlist/VirtualListView.java +8 -0
- package/rules/.source/hippy/extend_views/fastlist/diff/FastListDataBindingHelper.java +320 -0
- package/rules/.source/hippy/extend_views/fastlist/diff/KeyDiffHelper.java +289 -0
- package/rules/.source/hippy/extend_views/fastlist/diff/NoKeyDiffHelper.java +278 -0
- package/rules/.source/hippy/extend_views/tag/FontTag.java +53 -0
- package/rules/.source/hippy/extend_views/tag/HtmlTag.java +191 -0
- package/rules/.source/hippy/extend_views/tag/HtmlTagHandler.java +185 -0
- package/rules/.source/hippy/extend_views/tag/SpanTag.java +160 -0
- package/rules/.source/hippy/extend_views/tag/TextFontSpan.java +102 -0
- package/rules/.source/hippy/extend_views/waterfall/Chunk.java +10 -0
- package/rules/.source/hippy/extend_views/waterfall/ChunkGroup.java +5 -0
- package/rules/.source/hippy/extend_views/waterfall/Section.java +4 -0
- package/rules/.source/hippy/extend_views/waterfall/Tabs.java +5 -0
- package/rules/.source/hippy/extend_views/waterfall/WaterfallUtils.java +26 -0
- package/rules/.source/hippy/hippy_uimanager/ControllerHolder.java +30 -0
- package/rules/.source/hippy/hippy_uimanager/ControllerManager.java +651 -0
- package/rules/.source/hippy/hippy_uimanager/ControllerRegistry.java +102 -0
- package/rules/.source/hippy/hippy_uimanager/ControllerUpdateManger.java +252 -0
- package/rules/.source/hippy/hippy_uimanager/CustomControllerHelper.java +425 -0
- package/rules/.source/hippy/hippy_uimanager/DiffUtils.java +526 -0
- package/rules/.source/hippy/hippy_uimanager/ExtendViewGroup.java +36 -0
- package/rules/.source/hippy/hippy_uimanager/HippyCustomViewCreator.java +29 -0
- package/rules/.source/hippy/hippy_uimanager/HippyGroupController.java +83 -0
- package/rules/.source/hippy/hippy_uimanager/HippyViewBase.java +27 -0
- package/rules/.source/hippy/hippy_uimanager/HippyViewController.java +2189 -0
- package/rules/.source/hippy/hippy_uimanager/HippyViewEvent.java +52 -0
- package/rules/.source/hippy/hippy_uimanager/IHippyZIndexViewGroup.java +24 -0
- package/rules/.source/hippy/hippy_uimanager/InternalExtendViewUtil.java +395 -0
- package/rules/.source/hippy/hippy_uimanager/ListItemRenderNode.java +143 -0
- package/rules/.source/hippy/hippy_uimanager/ListViewRenderNode.java +44 -0
- package/rules/.source/hippy/hippy_uimanager/MatrixUtil.java +470 -0
- package/rules/.source/hippy/hippy_uimanager/NativeGestureDispatcher.java +349 -0
- package/rules/.source/hippy/hippy_uimanager/NativeGestureProcessor.java +188 -0
- package/rules/.source/hippy/hippy_uimanager/PullFooterRenderNode.java +43 -0
- package/rules/.source/hippy/hippy_uimanager/PullHeaderRenderNode.java +43 -0
- package/rules/.source/hippy/hippy_uimanager/RenderManager.java +304 -0
- package/rules/.source/hippy/hippy_uimanager/RenderNode.java +533 -0
- package/rules/.source/hippy/hippy_uimanager/StateView.java +17 -0
- package/rules/.source/hippy/hippy_uimanager/TransformUtil.java +125 -0
- package/rules/.source/hippy/hippy_uimanager/ViewGroupDrawingOrderHelper.java +108 -0
- package/rules/.source/hippy/hippy_uimanager/ViewStateProvider.java +10 -0
- package/rules/.source/hippy/hippy_views/audioview/AudioPlayManager.java +457 -0
- package/rules/.source/hippy/hippy_views/audioview/AudioView.java +225 -0
- package/rules/.source/hippy/hippy_views/audioview/AudioViewController.java +135 -0
- package/rules/.source/hippy/hippy_views/common/CommonBackgroundDrawable.java +58 -0
- package/rules/.source/hippy/hippy_views/common/CommonBorder.java +37 -0
- package/rules/.source/hippy/hippy_views/custom/HippyCustomPropsController.java +61 -0
- package/rules/.source/hippy/hippy_views/hippylist/HippyRecyclerListAdapter.java +399 -0
- package/rules/.source/hippy/hippy_views/hippylist/HippyRecyclerView.java +378 -0
- package/rules/.source/hippy/hippy_views/hippylist/HippyRecyclerViewController.java +187 -0
- package/rules/.source/hippy/hippy_views/hippylist/HippyRecyclerViewHolder.java +39 -0
- package/rules/.source/hippy/hippy_views/hippylist/HippyRecyclerViewWrapper.java +134 -0
- package/rules/.source/hippy/hippy_views/hippylist/NodePositionHelper.java +55 -0
- package/rules/.source/hippy/hippy_views/hippylist/PreloadHelper.java +54 -0
- package/rules/.source/hippy/hippy_views/hippylist/PullFooterEventHelper.java +61 -0
- package/rules/.source/hippy/hippy_views/hippylist/PullHeaderEventHelper.java +127 -0
- package/rules/.source/hippy/hippy_views/hippylist/RecyclerViewEventHelper.java +394 -0
- package/rules/.source/hippy/hippy_views/image/HippyContentDrawable.java +113 -0
- package/rules/.source/hippy/hippy_views/image/HippyImageView.java +1608 -0
- package/rules/.source/hippy/hippy_views/image/HippyImageViewController.java +382 -0
- package/rules/.source/hippy/hippy_views/image/IImageStateListener.java +7 -0
- package/rules/.source/hippy/hippy_views/list/ChildOnScreenScroller.java +255 -0
- package/rules/.source/hippy/hippy_views/list/HippyListAdapter.java +647 -0
- package/rules/.source/hippy/hippy_views/list/HippyListItemView.java +162 -0
- package/rules/.source/hippy/hippy_views/list/HippyListItemViewController.java +45 -0
- package/rules/.source/hippy/hippy_views/list/HippyListView.java +915 -0
- package/rules/.source/hippy/hippy_views/list/HippyListViewController.java +622 -0
- package/rules/.source/hippy/hippy_views/list/HippyRecycler.java +31 -0
- package/rules/.source/hippy/hippy_views/list/IRecycleItemTypeChange.java +23 -0
- package/rules/.source/hippy/hippy_views/list/ItemDecorations.java +70 -0
- package/rules/.source/hippy/hippy_views/list/NegativeLongKeyFlinger.java +156 -0
- package/rules/.source/hippy/hippy_views/list/NodeHolder.java +34 -0
- package/rules/.source/hippy/hippy_views/list/RecycleViewFlinger.java +126 -0
- package/rules/.source/hippy/hippy_views/list/TVRecyclerView.java +2070 -0
- package/rules/.source/hippy/hippy_views/list/TVSingleLineListView.java +15 -0
- package/rules/.source/hippy/hippy_views/modal/HippyModalHostManager.java +102 -0
- package/rules/.source/hippy/hippy_views/modal/HippyModalHostView.java +597 -0
- package/rules/.source/hippy/hippy_views/modal/ModalHostHelper.java +46 -0
- package/rules/.source/hippy/hippy_views/modal/ModalStyleNode.java +34 -0
- package/rules/.source/hippy/hippy_views/modal/RequestCloseEvent.java +32 -0
- package/rules/.source/hippy/hippy_views/modal/ShowEvent.java +31 -0
- package/rules/.source/hippy/hippy_views/navigator/Navigator.java +126 -0
- package/rules/.source/hippy/hippy_views/navigator/NavigatorController.java +120 -0
- package/rules/.source/hippy/hippy_views/refresh/HippyPullFooterView.java +47 -0
- package/rules/.source/hippy/hippy_views/refresh/HippyPullFooterViewController.java +65 -0
- package/rules/.source/hippy/hippy_views/refresh/HippyPullHeaderView.java +39 -0
- package/rules/.source/hippy/hippy_views/refresh/HippyPullHeaderViewController.java +104 -0
- package/rules/.source/hippy/hippy_views/refresh/RefreshWrapper.java +237 -0
- package/rules/.source/hippy/hippy_views/refresh/RefreshWrapperController.java +62 -0
- package/rules/.source/hippy/hippy_views/refresh/RefreshWrapperItemController.java +39 -0
- package/rules/.source/hippy/hippy_views/refresh/RefreshWrapperItemView.java +26 -0
- package/rules/.source/hippy/hippy_views/scroll/HippyHorizontalScrollView.java +500 -0
- package/rules/.source/hippy/hippy_views/scroll/HippyOnScrollHelper.java +39 -0
- package/rules/.source/hippy/hippy_views/scroll/HippyScrollView.java +46 -0
- package/rules/.source/hippy/hippy_views/scroll/HippyScrollViewController.java +178 -0
- package/rules/.source/hippy/hippy_views/scroll/HippyScrollViewEventHelper.java +92 -0
- package/rules/.source/hippy/hippy_views/scroll/HippyVerticalScrollView.java +522 -0
- package/rules/.source/hippy/hippy_views/text/HippyTextView.java +512 -0
- package/rules/.source/hippy/hippy_views/text/HippyTextViewController.java +77 -0
- package/rules/.source/hippy/hippy_views/textinput/HippyTextInput.java +668 -0
- package/rules/.source/hippy/hippy_views/textinput/HippyTextInputController.java +528 -0
- package/rules/.source/hippy/hippy_views/textinput/TextInputNode.java +115 -0
- package/rules/.source/hippy/hippy_views/videoview/APEZProvider.java +287 -0
- package/rules/.source/hippy/hippy_views/videoview/APKExpansionSupport.java +82 -0
- package/rules/.source/hippy/hippy_views/videoview/PivotPoint.java +13 -0
- package/rules/.source/hippy/hippy_views/videoview/ScalableType.java +34 -0
- package/rules/.source/hippy/hippy_views/videoview/ScalableVideoView.java +265 -0
- package/rules/.source/hippy/hippy_views/videoview/ScaleManager.java +191 -0
- package/rules/.source/hippy/hippy_views/videoview/Size.java +19 -0
- package/rules/.source/hippy/hippy_views/videoview/VideoHippyView.java +917 -0
- package/rules/.source/hippy/hippy_views/videoview/VideoHippyViewController.java +236 -0
- package/rules/.source/hippy/hippy_views/videoview/ZipResourceFile.java +427 -0
- package/rules/.source/hippy/hippy_views/view/CardRootView.java +28 -0
- package/rules/.source/hippy/hippy_views/view/CustomLayoutView.java +10 -0
- package/rules/.source/hippy/hippy_views/view/CustomNodeView.java +5 -0
- package/rules/.source/hippy/hippy_views/view/DialogViewGroup.java +113 -0
- package/rules/.source/hippy/hippy_views/view/HippyViewGroup.java +2042 -0
- package/rules/.source/hippy/hippy_views/view/HippyViewGroupController.java +583 -0
- package/rules/.source/hippy/hippy_views/view/WindowRoot.java +5 -0
- package/rules/.source/hippy/hippy_views/viewpager/HippyViewPager.java +308 -0
- package/rules/.source/hippy/hippy_views/viewpager/HippyViewPagerAdapter.java +148 -0
- package/rules/.source/hippy/hippy_views/viewpager/HippyViewPagerController.java +246 -0
- package/rules/.source/hippy/hippy_views/viewpager/HippyViewPagerItem.java +27 -0
- package/rules/.source/hippy/hippy_views/viewpager/HippyViewPagerItemController.java +42 -0
- package/rules/.source/hippy/hippy_views/viewpager/ViewPagerPageChangeListener.java +114 -0
- package/rules/.source/hippy/hippy_views/viewpager/event/HippyPageItemExposureEvent.java +40 -0
- package/rules/.source/hippy/hippy_views/viewpager/event/HippyPageScrollEvent.java +43 -0
- package/rules/.source/hippy/hippy_views/viewpager/event/HippyPageScrollStateChangedEvent.java +42 -0
- package/rules/.source/hippy/hippy_views/viewpager/event/HippyPageSelectedEvent.java +42 -0
- package/rules/.source/hippy/hippy_views/webview/HippyWebView.java +160 -0
- package/rules/.source/hippy/hippy_views/webview/HippyWebViewBridge.java +20 -0
- package/rules/.source/hippy/hippy_views/webview/HippyWebViewController.java +103 -0
- package/rules/.source/hippy/hippy_views/webview/HippyWebViewInner.java +77 -0
- package/rules/.windsurfrules +27 -4
- package/rules/AGENTS.md +27 -4
- package/rules/CLAUDE.md +27 -3
- package/rules/GEMINI.md +25 -3
|
@@ -0,0 +1,583 @@
|
|
|
1
|
+
/* Tencent is pleased to support the open source community by making Hippy available.
|
|
2
|
+
* Copyright (C) 2018 THL A29 Limited, a Tencent company. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
package com.tencent.mtt.hippy.views.view;
|
|
17
|
+
|
|
18
|
+
import android.content.Context;
|
|
19
|
+
import android.graphics.Color;
|
|
20
|
+
import android.text.TextUtils;
|
|
21
|
+
import android.util.Log;
|
|
22
|
+
import android.view.KeyEvent;
|
|
23
|
+
import android.view.View;
|
|
24
|
+
import android.view.ViewGroup;
|
|
25
|
+
import android.view.animation.Animation;
|
|
26
|
+
import android.view.animation.AnimationUtils;
|
|
27
|
+
import android.view.animation.LayoutAnimationController;
|
|
28
|
+
|
|
29
|
+
import com.tencent.extend.TriggerTaskManagerModule;
|
|
30
|
+
import com.tencent.extend.anim.FastOutLinearInInterpolator;
|
|
31
|
+
import com.tencent.extend.anim.LinearOutSlowInInterpolator;
|
|
32
|
+
import com.tencent.mtt.hippy.FocusDispatchView;
|
|
33
|
+
import com.tencent.mtt.hippy.HippyInstanceContext;
|
|
34
|
+
import com.tencent.mtt.hippy.R;
|
|
35
|
+
import com.tencent.mtt.hippy.annotation.HippyController;
|
|
36
|
+
import com.tencent.mtt.hippy.annotation.HippyControllerProps;
|
|
37
|
+
import com.tencent.mtt.hippy.common.HippyArray;
|
|
38
|
+
import com.tencent.mtt.hippy.common.HippyMap;
|
|
39
|
+
import com.tencent.mtt.hippy.dom.node.NodeProps;
|
|
40
|
+
import com.tencent.mtt.hippy.uimanager.HippyGroupController;
|
|
41
|
+
import com.tencent.mtt.hippy.utils.LogUtils;
|
|
42
|
+
import com.tencent.mtt.hippy.utils.PixelUtil;
|
|
43
|
+
import com.tencent.mtt.hippy.views.image.HippyImageView;
|
|
44
|
+
import com.tencent.mtt.hippy.views.modal.HippyModalHostView;
|
|
45
|
+
|
|
46
|
+
import java.util.WeakHashMap;
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Created by leonardgong on 2017/11/29 0029.
|
|
50
|
+
*/
|
|
51
|
+
|
|
52
|
+
@HippyController(name = HippyViewGroupController.CLASS_NAME)
|
|
53
|
+
public class HippyViewGroupController extends HippyGroupController<HippyViewGroup> {
|
|
54
|
+
|
|
55
|
+
public static final int FADE_IN = 0;
|
|
56
|
+
public static final int FADE_OUT = 1;
|
|
57
|
+
public static final int LEFT_IN = 2;
|
|
58
|
+
public static final int LEFT_OUT = 3;
|
|
59
|
+
public static final int RIGHT_IN = 4;
|
|
60
|
+
public static final int RIGHT_OUT = 5;
|
|
61
|
+
public static final int TOP_IN = 6;
|
|
62
|
+
public static final int TOP_OUT = 7;
|
|
63
|
+
public static final int BOTTOM_IN = 8;
|
|
64
|
+
public static final int BOTTOM_OUT = 9;
|
|
65
|
+
|
|
66
|
+
public static final int INTERPOLATOR_FAST_OUT_LINEAR = 1;
|
|
67
|
+
public static final int INTERPOLATOR_OUT_SLOW_LINEAR = 2;
|
|
68
|
+
|
|
69
|
+
public static final String CLASS_NAME = "View";
|
|
70
|
+
|
|
71
|
+
public static WeakHashMap<View, Integer> mZIndexHash = new WeakHashMap<>();
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
public static void setViewZIndex(View view, int zIndex) {
|
|
75
|
+
mZIndexHash.put(view, zIndex);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
public static void removeViewZIndex(View view) {
|
|
79
|
+
mZIndexHash.remove(view);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
public static Integer getViewZIndex(View view) {
|
|
83
|
+
return mZIndexHash.get(view);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
@Override
|
|
87
|
+
protected View createViewImpl(Context context) {
|
|
88
|
+
return new HippyViewGroup(context);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
@Override
|
|
92
|
+
protected View createViewImpl(Context context, HippyMap iniProps) {
|
|
93
|
+
HippyViewGroup group = null;
|
|
94
|
+
if (iniProps != null) {
|
|
95
|
+
if(iniProps.containsKey("showDialog")){
|
|
96
|
+
group = new DialogViewGroup(context);
|
|
97
|
+
}else{
|
|
98
|
+
group = (HippyViewGroup) createViewImpl(context);
|
|
99
|
+
}
|
|
100
|
+
group.setInitProps(iniProps);
|
|
101
|
+
}
|
|
102
|
+
//zhaopeng 20201225 add
|
|
103
|
+
if (iniProps.containsKey("focusGroup")) {
|
|
104
|
+
group.setClipChildren(false);
|
|
105
|
+
group.setBringFocusChildToFront(true);
|
|
106
|
+
}
|
|
107
|
+
if(iniProps.containsKey("markAsRoot")){
|
|
108
|
+
Log.i("HippyViewGroup","MARK_AS_ROOT div:"+group);
|
|
109
|
+
group.setAsRootView();
|
|
110
|
+
}
|
|
111
|
+
if (iniProps.containsKey(TriggerTaskManagerModule.KEY_PROP_NAME)) {
|
|
112
|
+
setListenHasFocusChange(group, true);
|
|
113
|
+
}
|
|
114
|
+
if (iniProps.containsKey("shakeSelf")){
|
|
115
|
+
group.setShakeSelf(iniProps.getBoolean("shakeSelf"));
|
|
116
|
+
}
|
|
117
|
+
return group;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
@Override
|
|
121
|
+
protected void onCreateViewByCache(View view, String type, HippyMap iniProps) {
|
|
122
|
+
super.onCreateViewByCache(view, type, iniProps);
|
|
123
|
+
if (view instanceof HippyViewGroup) {
|
|
124
|
+
final HippyViewGroup g = (HippyViewGroup) view;
|
|
125
|
+
if (iniProps != null) {
|
|
126
|
+
g.setInitProps(iniProps);
|
|
127
|
+
}
|
|
128
|
+
//zhaopeng 20201225 add
|
|
129
|
+
if (iniProps.containsKey("focusGroup")) {
|
|
130
|
+
g.setClipChildren(false);
|
|
131
|
+
g.setBringFocusChildToFront(true);
|
|
132
|
+
}
|
|
133
|
+
if (iniProps.containsKey(TriggerTaskManagerModule.KEY_PROP_NAME)) {
|
|
134
|
+
setListenHasFocusChange(g, true);
|
|
135
|
+
}
|
|
136
|
+
if (iniProps.containsKey("shakeSelf")){
|
|
137
|
+
g.setShakeSelf(iniProps.getBoolean("shakeSelf"));
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
@Override
|
|
144
|
+
protected void addView(ViewGroup parentView, View view, int index) {
|
|
145
|
+
super.addView(parentView, view, index);
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
@HippyControllerProps(name = NodeProps.SHAKE_SELF, defaultType = HippyControllerProps.BOOLEAN, defaultBoolean = false)
|
|
149
|
+
public void setShakeSelf(HippyViewGroup hippyViewGroup, boolean shakeSelf){
|
|
150
|
+
hippyViewGroup.setShakeSelf(shakeSelf);
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
@HippyControllerProps(name = "interceptAllKeys", defaultType = HippyControllerProps.BOOLEAN)
|
|
154
|
+
public void setInterceptKeyEvent(HippyViewGroup hippyViewGroup, boolean interceptKeyEvent){
|
|
155
|
+
hippyViewGroup.setInterceptKeyEvent(interceptKeyEvent);
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
@HippyControllerProps(name = "showDialog", defaultType = HippyControllerProps.BOOLEAN,defaultBoolean = true)
|
|
159
|
+
public void requestChangeShow(HippyViewGroup hippyViewGroup, boolean show){
|
|
160
|
+
if(hippyViewGroup instanceof DialogViewGroup){
|
|
161
|
+
((DialogViewGroup) hippyViewGroup).requestChangeShow(show);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
@HippyControllerProps(name = "enableOverScrollY", defaultType = HippyControllerProps.BOOLEAN,defaultBoolean = true)
|
|
166
|
+
public void setEnableOverScrollY(HippyViewGroup hippyViewGroup, boolean enable){
|
|
167
|
+
hippyViewGroup.setEnableOverScrollY(enable);
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
@HippyControllerProps(name = "firstFocusChild", defaultType = HippyControllerProps.MAP)
|
|
171
|
+
public void setFistFocusMap(HippyViewGroup view, HippyMap map) {
|
|
172
|
+
view.getFirstFocusHelper().setFirstFocusChildMap(map);
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
@HippyControllerProps(name = "enableOverScrollX", defaultType = HippyControllerProps.BOOLEAN,defaultBoolean = true)
|
|
176
|
+
public void setEnableOverScrollX(HippyViewGroup hippyViewGroup, boolean enable){
|
|
177
|
+
hippyViewGroup.setEnableOverScrollX(enable);
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
@HippyControllerProps(name = "interceptKeys", defaultType = HippyControllerProps.ARRAY)
|
|
181
|
+
public void setInterceptKeyEvent(HippyViewGroup hippyViewGroup, HippyArray interceptKeyEvent){
|
|
182
|
+
hippyViewGroup.setInterceptKeyEvents(interceptKeyEvent);
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
@HippyControllerProps(name = "selectChildPosition", defaultType = HippyControllerProps.NUMBER, defaultNumber = 0)
|
|
186
|
+
public void setSelectChildPositionSimple(HippyViewGroup view, int position) {
|
|
187
|
+
if (view != null) {
|
|
188
|
+
view.setSelectChildPosition(position, true);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
@HippyControllerProps(name = "enableSelectOnFocus", defaultType = HippyControllerProps.BOOLEAN, defaultBoolean = false)
|
|
193
|
+
public void setEnableSelectOnFocus(HippyViewGroup view, boolean flag) {
|
|
194
|
+
//Log.e("DebugDivSelect","call setEnableSelectOnFocus flag:"+flag);
|
|
195
|
+
view.setEnableSelectOnFocus(flag);
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
@HippyControllerProps(name = NodeProps.OVERFLOW, defaultType = HippyControllerProps.STRING, defaultString = "visible")
|
|
199
|
+
public void setOverflow(HippyViewGroup hippyViewGroup, String overflow) {
|
|
200
|
+
hippyViewGroup.setOverflow(overflow);
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
@HippyControllerProps(name = NodeProps.BACKGROUND_IMAGE, defaultType = HippyControllerProps.STRING, defaultString = "")
|
|
204
|
+
public void setBackgroundImage(HippyViewGroup hippyViewGroup, String url) {
|
|
205
|
+
hippyViewGroup.setUrl(getInnerPath((HippyInstanceContext) hippyViewGroup.getContext(), url));
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
@Override
|
|
209
|
+
protected void deleteChild(ViewGroup parentView, View childView) {
|
|
210
|
+
super.deleteChild(parentView, childView);
|
|
211
|
+
try {
|
|
212
|
+
if (childView instanceof HippyModalHostView) {
|
|
213
|
+
((HippyModalHostView) childView).onInstanceDestroy(0);
|
|
214
|
+
}
|
|
215
|
+
}catch (Throwable t){}
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
|
|
219
|
+
@HippyControllerProps(name = NodeProps.BACKGROUND_SIZE, defaultType = HippyControllerProps.STRING, defaultString = "origin")
|
|
220
|
+
public void setBackgroundImageSize(HippyImageView hippyImageView, String resizeModeValue) {
|
|
221
|
+
if ("contain".equals(resizeModeValue)) {
|
|
222
|
+
// 在保持图片宽高比的前提下缩放图片,直到宽度和高度都小于等于容器视图的尺寸
|
|
223
|
+
// 这样图片完全被包裹在容器中,容器中可能留有空白
|
|
224
|
+
hippyImageView.setScaleType(HippyImageView.ScaleType.CENTER_INSIDE);
|
|
225
|
+
} else if ("cover".equals(resizeModeValue)) {
|
|
226
|
+
// 在保持图片宽高比的前提下缩放图片,直到宽度和高度都大于等于容器视图的尺寸
|
|
227
|
+
// 这样图片完全覆盖甚至超出容器,容器中不留任何空白
|
|
228
|
+
hippyImageView.setScaleType(HippyImageView.ScaleType.CENTER_CROP);
|
|
229
|
+
} else if ("center".equals(resizeModeValue)) {
|
|
230
|
+
// 居中不拉伸
|
|
231
|
+
hippyImageView.setScaleType(HippyImageView.ScaleType.CENTER);
|
|
232
|
+
} else if ("origin".equals(resizeModeValue)) {
|
|
233
|
+
// 不拉伸,居左上
|
|
234
|
+
hippyImageView.setScaleType(HippyImageView.ScaleType.ORIGIN);
|
|
235
|
+
} else {
|
|
236
|
+
// stretch and other mode
|
|
237
|
+
// 拉伸图片且不维持宽高比,直到宽高都刚好填满容器
|
|
238
|
+
hippyImageView.setScaleType(HippyImageView.ScaleType.FIT_XY);
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
@HippyControllerProps(name = NodeProps.BACKGROUND_POSITION_X, defaultType = HippyControllerProps.NUMBER, defaultNumber = 0.0D)
|
|
243
|
+
public void setBackgroundImagePositionX(HippyViewGroup hippyViewGroup, int positionX) {
|
|
244
|
+
hippyViewGroup.setImagePositionX((int) PixelUtil.dp2px(positionX));
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
@HippyControllerProps(name = NodeProps.BACKGROUND_POSITION_Y, defaultType = HippyControllerProps.NUMBER, defaultNumber = 0.0D)
|
|
248
|
+
public void setBackgroundImagePositionY(HippyViewGroup hippyViewGroup, int positionY) {
|
|
249
|
+
hippyViewGroup.setImagePositionY((int) PixelUtil.dp2px(positionY));
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
/**
|
|
253
|
+
* touch/click
|
|
254
|
+
**/
|
|
255
|
+
@HippyControllerProps(name = NodeProps.FOCUS_BORDER_COLOR, defaultType = HippyControllerProps.NUMBER)
|
|
256
|
+
public void setFocusBorderColor(HippyViewGroup view, int color) {
|
|
257
|
+
view.setFocusBorderColor(color);
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
/**
|
|
261
|
+
* touch/click
|
|
262
|
+
**/
|
|
263
|
+
@HippyControllerProps(name = NodeProps.FOCUS_BORDER_COLOR_STRING, defaultType = HippyControllerProps.STRING)
|
|
264
|
+
public void setFocusBorderColorString(HippyViewGroup view, String color) {
|
|
265
|
+
if (!TextUtils.isEmpty(color)) {
|
|
266
|
+
view.setFocusBorderColor(Color.parseColor(color));
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
/**
|
|
271
|
+
* touch/click
|
|
272
|
+
**/
|
|
273
|
+
@HippyControllerProps(name = NodeProps.FOCUS_BORDER_CORNER_RADIUS, defaultType = HippyControllerProps.NUMBER)
|
|
274
|
+
public void setFocusBorderRadius(HippyViewGroup view, int corner) {
|
|
275
|
+
// view.setFocusBorderCorner(PixelUtil.dp2pxInt(corner));
|
|
276
|
+
view.setFocusBorderCorner(corner);
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
/**
|
|
280
|
+
* touch/click
|
|
281
|
+
**/
|
|
282
|
+
@HippyControllerProps(name = NodeProps.FOCUS_BORDER_CORNER_WIDTH, defaultType = HippyControllerProps.NUMBER)
|
|
283
|
+
public void setFocusBorderWidth(HippyViewGroup view, int width) {
|
|
284
|
+
// ((HippyViewGroup) view).setFocusBorderWidth(PixelUtil.dp2pxInt(width));
|
|
285
|
+
((HippyViewGroup) view).setFocusBorderWidth(width);
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
@HippyControllerProps(name = NodeProps.FOCUS_BLACK_BORDER_ENABLE, defaultType = HippyControllerProps.BOOLEAN, defaultBoolean = false)
|
|
289
|
+
public void setFocusBlackBorderEnable(HippyViewGroup view, boolean enable) {
|
|
290
|
+
((HippyViewGroup) view).setBlackRectEnable(enable);
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
/**
|
|
294
|
+
* touch/click
|
|
295
|
+
**/
|
|
296
|
+
@HippyControllerProps(name = NodeProps.FOCUS_BACKGROUND_COLOR, defaultType = HippyControllerProps.NUMBER)
|
|
297
|
+
public void setFocusBackGroundColor(HippyViewGroup view, int color) {
|
|
298
|
+
view.setFocusBackGroundColor(color);
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
/**
|
|
302
|
+
* touch/click
|
|
303
|
+
**/
|
|
304
|
+
@HippyControllerProps(name = NodeProps.SELECT_BACKGROUND_COLOR, defaultType = HippyControllerProps.NUMBER)
|
|
305
|
+
public void setSelectBackGroundColor(HippyViewGroup view, int color) {
|
|
306
|
+
view.setSelectBackGroundColor(color);
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
|
|
310
|
+
//此处vue是怎么传值的
|
|
311
|
+
@HippyControllerProps(name = "focusSearchTarget", defaultType = HippyControllerProps.MAP)
|
|
312
|
+
public void setFocusSearchTarget(HippyViewGroup view, HippyMap hippyMap) {
|
|
313
|
+
Log.d("ViewGroupController", "ViewGroupController focusSearchTarget view:" + view + ",map:" + hippyMap);
|
|
314
|
+
view.setFocusSearchTarget(hippyMap);
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
/*** zhaopeng add 20201117 **/
|
|
318
|
+
@HippyControllerProps(name = "focusMemory", defaultType = HippyControllerProps.BOOLEAN, defaultBoolean = true)
|
|
319
|
+
public void enableFocusMemory(HippyViewGroup view, boolean enable) {
|
|
320
|
+
view.enableFocusMemory(enable);
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
//此处vue是怎么传值的
|
|
324
|
+
@HippyControllerProps(name = "gradientBackground", defaultType = HippyControllerProps.MAP)
|
|
325
|
+
public void setGradientDrawableBackground(HippyViewGroup view, HippyMap hippyMap) {
|
|
326
|
+
view.setGradientDrawable(hippyMap);
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
|
|
330
|
+
|
|
331
|
+
/**
|
|
332
|
+
* touch/click
|
|
333
|
+
**/
|
|
334
|
+
@HippyControllerProps(name = NodeProps.FOCUS_BORDER_STYLE, defaultType = HippyControllerProps.STRING, defaultString = "solid")
|
|
335
|
+
public void setFocusBorderStyle(HippyViewGroup view, String style) {
|
|
336
|
+
if (view != null) {
|
|
337
|
+
((HippyViewGroup) view).setFocusBorderEnable(!"none".equals(style));
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
/**
|
|
342
|
+
* touch/click
|
|
343
|
+
**/
|
|
344
|
+
@HippyControllerProps(name = NodeProps.FOCUS_BORDER_ENABLE, defaultType = HippyControllerProps.BOOLEAN, defaultBoolean = false)
|
|
345
|
+
public void setFocusBorderEnable(HippyViewGroup view, boolean enable) {
|
|
346
|
+
if (view != null) {
|
|
347
|
+
((HippyViewGroup) view).setFocusBorderEnable(enable);
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
/**
|
|
352
|
+
* touch/click
|
|
353
|
+
**/
|
|
354
|
+
@HippyControllerProps(name = "focusScrollTarget", defaultType = HippyControllerProps.BOOLEAN, defaultBoolean = false)
|
|
355
|
+
public void setFocusScrollTarget(HippyViewGroup view, boolean enable) {
|
|
356
|
+
if (view != null) {
|
|
357
|
+
view.setFocusScrollTarget(enable);
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
/**
|
|
362
|
+
* touch/click
|
|
363
|
+
**/
|
|
364
|
+
@HippyControllerProps(name = "firstFocusTarget", defaultType = HippyControllerProps.STRING)
|
|
365
|
+
public void setFirstFocusTargetName(HippyViewGroup view, String name) {
|
|
366
|
+
if (view != null) {
|
|
367
|
+
((HippyViewGroup) view).setFirstFocusTargetName(name);
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
|
|
372
|
+
/**
|
|
373
|
+
* touch/click
|
|
374
|
+
**/
|
|
375
|
+
@HippyControllerProps(name = "useAdvancedFocusSearch", defaultType = HippyControllerProps.BOOLEAN, defaultBoolean = false)
|
|
376
|
+
public void setUseAdvancedFocusSearch(HippyViewGroup view, boolean enable) {
|
|
377
|
+
if (view != null) {
|
|
378
|
+
((HippyViewGroup) view).setUseAdvancedFocusSearch(enable);
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
/**
|
|
383
|
+
* touch/click
|
|
384
|
+
**/
|
|
385
|
+
@HippyControllerProps(name = "listenHasFocusChange", defaultType = HippyControllerProps.BOOLEAN, defaultBoolean = false)
|
|
386
|
+
public void setListenHasFocusChange(HippyViewGroup view, boolean enable) {
|
|
387
|
+
if (view != null) {
|
|
388
|
+
((HippyViewGroup) view).setListenGlobalFocusChange(enable);
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
/**
|
|
393
|
+
* touch/click
|
|
394
|
+
**/
|
|
395
|
+
@HippyControllerProps(name = "triggerKeyCodeNum", defaultType = HippyControllerProps.NUMBER)
|
|
396
|
+
public void setTriggerKeyEvent(HippyViewGroup view, int code) {
|
|
397
|
+
view.setTriggerKeyEvent(code);
|
|
398
|
+
}
|
|
399
|
+
|
|
400
|
+
|
|
401
|
+
/**
|
|
402
|
+
* touch/click
|
|
403
|
+
**/
|
|
404
|
+
@HippyControllerProps(name = "triggerKeyCode", defaultType = HippyControllerProps.STRING)
|
|
405
|
+
public void setTriggerKeyEvent(HippyViewGroup view, String code) {
|
|
406
|
+
int key = -1;
|
|
407
|
+
switch (code) {
|
|
408
|
+
case "left":
|
|
409
|
+
key = KeyEvent.KEYCODE_DPAD_LEFT;
|
|
410
|
+
break;
|
|
411
|
+
case "right":
|
|
412
|
+
key = KeyEvent.KEYCODE_DPAD_RIGHT;
|
|
413
|
+
break;
|
|
414
|
+
case "up":
|
|
415
|
+
key = KeyEvent.KEYCODE_DPAD_UP;
|
|
416
|
+
break;
|
|
417
|
+
case "down":
|
|
418
|
+
key = KeyEvent.KEYCODE_DPAD_DOWN;
|
|
419
|
+
break;
|
|
420
|
+
case "enter":
|
|
421
|
+
key = KeyEvent.KEYCODE_DPAD_CENTER;
|
|
422
|
+
break;
|
|
423
|
+
}
|
|
424
|
+
view.setTriggerKeyEvent(key);
|
|
425
|
+
}
|
|
426
|
+
|
|
427
|
+
@HippyControllerProps(name = "useLayoutAnimation", defaultType = HippyControllerProps.ARRAY)
|
|
428
|
+
public void useLayoutAnimation(View view, HippyArray array) {
|
|
429
|
+
if (!(view instanceof ViewGroup)) return;
|
|
430
|
+
if (array == null || array.size() == 0) return;
|
|
431
|
+
int type = array.size() >= 1 ? array.getInt(0) : -1;
|
|
432
|
+
if (type == -1) return;
|
|
433
|
+
int interpolator = array.size() >= 2 ? array.getInt(1) : -1;
|
|
434
|
+
int duration = array.size() >= 3 ? array.getInt(2) : -1;
|
|
435
|
+
|
|
436
|
+
int anim = -1;
|
|
437
|
+
switch (type) {
|
|
438
|
+
case FADE_IN:
|
|
439
|
+
anim = R.anim.fade_in;
|
|
440
|
+
break;
|
|
441
|
+
case FADE_OUT:
|
|
442
|
+
anim = R.anim.fade_out;
|
|
443
|
+
break;
|
|
444
|
+
case LEFT_IN:
|
|
445
|
+
anim = R.anim.left_in;
|
|
446
|
+
break;
|
|
447
|
+
case LEFT_OUT:
|
|
448
|
+
anim = R.anim.left_out;
|
|
449
|
+
break;
|
|
450
|
+
case RIGHT_IN:
|
|
451
|
+
anim = R.anim.right_in;
|
|
452
|
+
break;
|
|
453
|
+
case RIGHT_OUT:
|
|
454
|
+
anim = R.anim.right_out;
|
|
455
|
+
break;
|
|
456
|
+
case TOP_IN:
|
|
457
|
+
anim = R.anim.top_in;
|
|
458
|
+
break;
|
|
459
|
+
case TOP_OUT:
|
|
460
|
+
anim = R.anim.top_out;
|
|
461
|
+
break;
|
|
462
|
+
case BOTTOM_IN:
|
|
463
|
+
anim = R.anim.bottom_in;
|
|
464
|
+
break;
|
|
465
|
+
case BOTTOM_OUT:
|
|
466
|
+
anim = R.anim.bottom_out;
|
|
467
|
+
break;
|
|
468
|
+
}
|
|
469
|
+
if (anim == -1) return;
|
|
470
|
+
|
|
471
|
+
Animation animation = AnimationUtils.loadAnimation(view.getContext(), anim);
|
|
472
|
+
|
|
473
|
+
switch (interpolator) {
|
|
474
|
+
case INTERPOLATOR_FAST_OUT_LINEAR:
|
|
475
|
+
animation.setInterpolator(new FastOutLinearInInterpolator());
|
|
476
|
+
break;
|
|
477
|
+
case INTERPOLATOR_OUT_SLOW_LINEAR:
|
|
478
|
+
animation.setInterpolator(new LinearOutSlowInInterpolator());
|
|
479
|
+
break;
|
|
480
|
+
}
|
|
481
|
+
|
|
482
|
+
if (duration > 0) {
|
|
483
|
+
animation.setDuration(duration);
|
|
484
|
+
}
|
|
485
|
+
|
|
486
|
+
LayoutAnimationController lac = new LayoutAnimationController(animation);
|
|
487
|
+
((ViewGroup) view).setLayoutAnimation(lac);
|
|
488
|
+
}
|
|
489
|
+
|
|
490
|
+
@Override
|
|
491
|
+
public void dispatchFunction(HippyViewGroup view, String functionName, HippyArray var) {
|
|
492
|
+
super.dispatchFunction(view, functionName, var);
|
|
493
|
+
|
|
494
|
+
LogUtils.d(FocusDispatchView.TAG, "viewGorup dispatchFunction:" + functionName + ",data:" + var);
|
|
495
|
+
switch (functionName) {
|
|
496
|
+
case "setDescendantFocusability":
|
|
497
|
+
if (view != null) {
|
|
498
|
+
if (var.size() > 0) {
|
|
499
|
+
int focusAbility = var.getInt(0);
|
|
500
|
+
Log.d("hippy", "setDescendantFocusability :" + focusAbility);
|
|
501
|
+
((ViewGroup) view).setDescendantFocusability(focusAbility);
|
|
502
|
+
}
|
|
503
|
+
}
|
|
504
|
+
break;
|
|
505
|
+
case "changeDescendantFocusability":
|
|
506
|
+
if (view != null) {
|
|
507
|
+
if (var.size() > 0) {
|
|
508
|
+
String focusAbility = var.getString(0);
|
|
509
|
+
|
|
510
|
+
int focusAbilityInt = ViewGroup.FOCUS_AFTER_DESCENDANTS;
|
|
511
|
+
switch (focusAbility) {
|
|
512
|
+
case "beforeDescendants":
|
|
513
|
+
((ViewGroup) view).setDescendantFocusability(ViewGroup.FOCUS_BEFORE_DESCENDANTS);
|
|
514
|
+
break;
|
|
515
|
+
case "blockDescendants":
|
|
516
|
+
((ViewGroup) view).setDescendantFocusability(ViewGroup.FOCUS_BLOCK_DESCENDANTS);
|
|
517
|
+
break;
|
|
518
|
+
default:
|
|
519
|
+
((ViewGroup) view).setDescendantFocusability(ViewGroup.FOCUS_AFTER_DESCENDANTS);
|
|
520
|
+
break;
|
|
521
|
+
}
|
|
522
|
+
LogUtils.d(FocusDispatchView.TAG, "changeDescendantFocusability request focusAbility:" + focusAbility + " ,result :" + focusAbilityInt + ", view:" + view);
|
|
523
|
+
}
|
|
524
|
+
}
|
|
525
|
+
break;
|
|
526
|
+
case "requestChildFocusAtIndex":
|
|
527
|
+
int p = var.getInt(0);
|
|
528
|
+
if (p > -1 && p < (view != null ? view.getChildCount() : 0)) {
|
|
529
|
+
final View v = view.getChildAt(p);
|
|
530
|
+
Log.e("hippy", "requestChildFocusAtIndex position:" + p + ",view:" + v);
|
|
531
|
+
if (v != null) {
|
|
532
|
+
v.requestFocus();
|
|
533
|
+
}
|
|
534
|
+
} else {
|
|
535
|
+
Log.e("hippy", "requestChildFocusAtIndex error :target view null, position:" + p);
|
|
536
|
+
}
|
|
537
|
+
break;
|
|
538
|
+
case "clearMemoryFocused":
|
|
539
|
+
view.clearMemoryFocused();
|
|
540
|
+
break;
|
|
541
|
+
case "showDialog":
|
|
542
|
+
if (view instanceof DialogViewGroup) {
|
|
543
|
+
((DialogViewGroup) view).requestChangeShow(var.getBoolean(0));
|
|
544
|
+
}
|
|
545
|
+
break;
|
|
546
|
+
case "smoothShowFade":
|
|
547
|
+
if (view != null) {
|
|
548
|
+
view.smoothShowFade(var.getInt(0), var.getBoolean(1), var.getBoolean(2),
|
|
549
|
+
var.getInt(3),var.getBoolean(4));
|
|
550
|
+
}
|
|
551
|
+
break;
|
|
552
|
+
}
|
|
553
|
+
}
|
|
554
|
+
|
|
555
|
+
@HippyControllerProps(name = NodeProps.CLIP_BOUNDS_OUTSET_RECT, defaultType = HippyControllerProps.MAP)
|
|
556
|
+
public void setClipRectOutset(HippyViewGroup view, HippyMap hippyMap) {
|
|
557
|
+
if (view != null) {
|
|
558
|
+
view.setClipOutset(hippyMap.getInt("left"), hippyMap.getInt("top"), hippyMap.getInt("right"), hippyMap.getInt("bottom"));
|
|
559
|
+
}
|
|
560
|
+
}
|
|
561
|
+
|
|
562
|
+
@HippyControllerProps(name = NodeProps.CLIP_BOUNDS_OUTSET, defaultType = HippyControllerProps.NUMBER, defaultNumber = 0)
|
|
563
|
+
public void setClipRectOutsetAll(HippyViewGroup view, int outSet) {
|
|
564
|
+
if (view != null) {
|
|
565
|
+
view.setClipOutset(outSet, outSet, outSet, outSet);
|
|
566
|
+
}
|
|
567
|
+
}
|
|
568
|
+
|
|
569
|
+
@HippyControllerProps(name = NodeProps.FOCUS_BORDER_TYPE, defaultType = HippyControllerProps.NUMBER, defaultNumber = 0)
|
|
570
|
+
public void setFocusBorderType(HippyViewGroup view, int type) {
|
|
571
|
+
if(view != null){
|
|
572
|
+
view.setFocusBorderType(type);
|
|
573
|
+
}
|
|
574
|
+
}
|
|
575
|
+
|
|
576
|
+
@HippyControllerProps(name = NodeProps.ENABLE_MOUSE, defaultType = HippyControllerProps.BOOLEAN, defaultBoolean = false)
|
|
577
|
+
public void setEnableMouse(HippyViewGroup view, boolean enableMouse) {
|
|
578
|
+
if(view != null){
|
|
579
|
+
//Log.d("roll", "setEnableMouse: -------------->激活空鼠功能"+view + " 当前viewid--->" + view.getId() + " 是否开启--->" + enableMouse);
|
|
580
|
+
view.setEnableMouse(enableMouse);
|
|
581
|
+
}
|
|
582
|
+
}
|
|
583
|
+
}
|