MCPcopy Create free account
hub / github.com/bytedance/Fastbot_Android / create

Method create

native/desc/State.cpp:52–82  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

50 }
51
52 StatePtr State::create(ElementPtr elem, stringPtr activityName) {
53 StatePtr sharedPtr = std::shared_ptr<State>(new State(std::move(activityName)));
54 sharedPtr->buildFromElement(nullptr, std::move(elem));
55 uintptr_t activityHash =
56 (std::hash<std::string>{}(*(sharedPtr->_activity.get())) * 31U) << 5;
57 WidgetPtrSet mergedWidgets;
58 int mergedWidgetCount = sharedPtr->mergeWidgetAndStoreMergedOnes(mergedWidgets);
59 if (mergedWidgetCount != 0) {
60 BDLOG("build state merged %d widget", mergedWidgetCount);
61 sharedPtr->_widgets.assign(mergedWidgets.begin(), mergedWidgets.end());
62 }
63 activityHash ^= (combineHash<Widget>(sharedPtr->_widgets, STATE_WITH_WIDGET_ORDER) << 1);
64 sharedPtr->_hashcode = activityHash;
65 // build State module actions
66 for (auto w: sharedPtr->_widgets) {
67 if (w->getBounds() == nullptr) {
68 BLOGE("NULL Bounds happened");
69 continue;
70 }
71 for (ActionType act: w->getActions()) {
72 ActivityStateActionPtr modelAction = std::make_shared<ActivityStateAction>(
73 sharedPtr, w, act);
74 sharedPtr->_actions.emplace_back(modelAction);
75 }
76 }
77 sharedPtr->_backAction = std::make_shared<ActivityStateAction>(sharedPtr, nullptr,
78 ActionType::BACK);
79 sharedPtr->_actions.emplace_back(sharedPtr->_backAction);
80
81 return sharedPtr;
82 }
83
84 bool State::isSaturated(const ActivityStateActionPtr &action) const {
85 if (!action->requireTarget()) {

Callers 1

GsonIfaceClass · 0.45

Calls 7

getActionsMethod · 0.80
buildFromElementMethod · 0.45
getMethod · 0.45
beginMethod · 0.45
endMethod · 0.45
getBoundsMethod · 0.45

Tested by

no test coverage detected