use of org.mazhuang.guanggoo.data.entity.NodeCategory in project guanggoo-android by mzlogin.
the class NodesCloudPresenter method getNodesCloud.
@Override
public void getNodesCloud() {
mView.startLoading();
NetworkTaskScheduler.getInstance().execute(new GetNodesCloudTask(new OnResponseListener<List<NodeCategory>>() {
@Override
public void onSucceed(List<NodeCategory> data) {
mView.stopLoading();
mView.onGetNodesCloudSucceed(data);
}
@Override
public void onFailed(String msg) {
mView.stopLoading();
mView.onGetNodesCloudFailed(msg);
}
}));
}
use of org.mazhuang.guanggoo.data.entity.NodeCategory in project guanggoo-android by mzlogin.
the class NodesCloudAdapter method onBindViewHolder.
@Override
public void onBindViewHolder(NodesCloudAdapter.ViewHolder holder, int position) {
final NodeCategory category = mData.get(position);
holder.mTitleTextView.setText(category.getLabel());
holder.mNodesGridView.setAdapter(new BaseAdapter() {
@Override
public int getCount() {
return (category.getNodes() == null) ? 0 : category.getNodes().size();
}
@Override
public Object getItem(int position) {
return category.getNodes().get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ChildViewHolder childViewHolder;
if (convertView == null) {
convertView = LayoutInflater.from(parent.getContext()).inflate(R.layout.child_nodes_cloud, null);
childViewHolder = new ChildViewHolder(convertView);
convertView.setTag(childViewHolder);
} else {
childViewHolder = (ChildViewHolder) convertView.getTag();
}
childViewHolder.mTitleTextView.setText(category.getNodes().get(position).getTitle());
return convertView;
}
});
holder.mNodesGridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if (mListener != null) {
Node node = category.getNodes().get(position);
if (mNodeClickListener != null) {
mNodeClickListener.onNodeClick(node);
} else {
mListener.openPage(node.getUrl(), node.getTitle());
}
}
}
});
}
use of org.mazhuang.guanggoo.data.entity.NodeCategory in project guanggoo-android by mzlogin.
the class GetNodesCloudTask method run.
@Override
public void run() {
Document doc;
try {
doc = get(ConstantUtil.NODES_CLOUD_URL);
} catch (IOException e) {
e.printStackTrace();
failedOnUI(e.getMessage());
return;
}
Elements nodesCategoryList = doc.select("div.nodes-cloud ul li");
if (nodesCategoryList.isEmpty()) {
failedOnUI("找不到节点列表");
return;
}
List<NodeCategory> nodesCloud = new ArrayList<>();
for (Element element : nodesCategoryList) {
Elements labelElement = element.select("label");
Elements nodesElement = element.select("span.nodes a");
if (!labelElement.isEmpty() && !nodesElement.isEmpty()) {
List<Node> nodes = new ArrayList<>();
for (Element nodeElement : nodesElement) {
Node node = new Node();
node.setTitle(nodeElement.text());
node.setUrl(nodeElement.absUrl("href"));
nodes.add(node);
}
if (!nodes.isEmpty()) {
NodeCategory category = new NodeCategory();
category.setLabel(labelElement.text());
category.setNodes(nodes);
nodesCloud.add(category);
}
}
}
if (!nodesCloud.isEmpty()) {
successOnUI(nodesCloud);
} else {
failedOnUI("节点列表为空");
}
}
Aggregations