Skip to content

Commit cd492c7

Browse files
committed
merge 详情页修改 UI
1 parent 3b39848 commit cd492c7

6 files changed

Lines changed: 78 additions & 58 deletions

File tree

app/src/main/java/net/coding/program/project/detail/merge/MergeDetailActivity.java

Lines changed: 34 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import android.content.DialogInterface;
44
import android.content.Intent;
55
import android.support.annotation.Nullable;
6+
import android.support.v4.widget.SwipeRefreshLayout;
67
import android.text.TextUtils;
78
import android.util.Log;
89
import android.view.Gravity;
@@ -28,6 +29,7 @@
2829
import net.coding.program.common.RedPointTip;
2930
import net.coding.program.common.base.MyJsonResponse;
3031
import net.coding.program.common.comment.BaseCommentParam;
32+
import net.coding.program.common.event.EventRefreshMerge;
3133
import net.coding.program.common.model.BaseComment;
3234
import net.coding.program.common.model.DiffFile;
3335
import net.coding.program.common.model.DynamicObject;
@@ -96,6 +98,9 @@ public class MergeDetailActivity extends CodingToolbarBackActivity {
9698
@ViewById
9799
ListView listView;
98100

101+
@ViewById
102+
SwipeRefreshLayout swipeRefreshLayout;
103+
99104
int requestCallback = 0;
100105
final int REQUEST_COUNT = 3;
101106

@@ -227,20 +232,11 @@ public View getView(int position, View convertView, ViewGroup parent) {
227232

228233
@AfterViews
229234
protected final void initMergeDetailActivity() {
230-
String httpReviewers;
231-
232-
requestCallback = 0;
233235
blankHelp.setBlankLoading(blankLayout, true);
236+
swipeRefreshLayout.setOnRefreshListener(this::onRefrush);
237+
swipeRefreshLayout.setColorSchemeResources(R.color.font_green);
234238

235-
if (mMerge != null) {
236-
initByMereData();
237-
getNetwork(mMerge.getHttpDetail(), HOST_MERGE_DETAIL);
238-
httpReviewers = mMerge.getHttpReviewers();
239-
} else {
240-
String baseGit = URLSpanNoUnderline.generateAbsolute(mMergeUrl);
241-
getNetwork(baseGit + "/base", HOST_MERGE_DETAIL);
242-
// httpReviewers = baseGit + "/reviewers";
243-
}
239+
onRefrush();
244240
}
245241

246242
@Override
@@ -264,14 +260,16 @@ protected String getProjectPath() {
264260
private void initByMereData() {
265261
setActionBarTitle(mMerge.getTitleIId());
266262

267-
if (listHeader == null) {
268-
listHeader = mInflater.inflate(R.layout.activity_merge_detail_head, listView, false);
269-
initHead(listHeader);
270-
listView.addHeaderView(listHeader, null, false);
263+
if (listHeader != null) {
264+
listView.removeHeaderView(listHeader);
265+
listHeader = null;
271266
}
267+
listHeader = mInflater.inflate(R.layout.activity_merge_detail_head, listView, false);
268+
initHead(listHeader);
269+
listView.addHeaderView(listHeader, null, false);
272270

273271
if (listFooter == null) {
274-
listFooter = mInflater.inflate(R.layout.activity_merge_detail_footer, null);
272+
listFooter = mInflater.inflate(R.layout.activity_merge_detail_footer, listView, false);
275273
listFooter.findViewById(R.id.gap_to_list).setVisibility(View.GONE);
276274
listView.addFooterView(listFooter, null, false);
277275
initFooter(listFooter);
@@ -553,7 +551,9 @@ public void parseJson(int code, JSONObject respanse, String tag, int pos, Object
553551
} else if (tag.equals(HOST_MERGE_CANNEL)) {
554552
umengEvent(UmengEvent.CODE, "取消mrpr");
555553
if (code == 0) {
556-
finishAndUpdateList();
554+
setResult(RESULT_OK);
555+
EventBus.getDefault().post(new EventRefreshMerge());
556+
finish();
557557
} else {
558558
showErrorMsg(code, respanse);
559559
}
@@ -562,13 +562,8 @@ public void parseJson(int code, JSONObject respanse, String tag, int pos, Object
562562
showContentView();
563563

564564
mMergeDetail = new MergeDetail(respanse.optJSONObject("data"));
565-
566-
if (mMerge == null) {
567-
mMerge = mMergeDetail.getMerge();
568-
initByMereData();
569-
} else {
570-
mMerge = mMergeDetail.getMerge();
571-
}
565+
mMerge = mMergeDetail.getMerge();
566+
initByMereData();
572567

573568
updateBottomBarStyle();
574569
if (!TextUtils.isEmpty(mMergeDetail.getBody())) {
@@ -604,7 +599,16 @@ public void onClick(View v) {
604599
}
605600

606601
private void onRefrush() {
607-
initMergeDetailActivity();
602+
String httpReviewers;
603+
requestCallback = 0;
604+
if (mMerge != null) {
605+
getNetwork(mMerge.getHttpDetail(), HOST_MERGE_DETAIL);
606+
httpReviewers = mMerge.getHttpReviewers();
607+
} else {
608+
String baseGit = URLSpanNoUnderline.generateAbsolute(mMergeUrl);
609+
getNetwork(baseGit + "/base", HOST_MERGE_DETAIL);
610+
// httpReviewers = baseGit + "/reviewers";
611+
}
608612
}
609613

610614
private void refreshRefResource() {
@@ -703,6 +707,8 @@ private void showContentView() {
703707
blankLayout.setVisibility(View.GONE);
704708

705709
}
710+
711+
swipeRefreshLayout.setRefreshing(false);
706712
}
707713

708714
private void refreshActivities() {
@@ -792,10 +798,9 @@ private void updateListView() {
792798

793799
private void finishAndUpdateList() {
794800
setResult(RESULT_OK);
801+
EventBus.getDefault().post(new EventRefreshMerge());
795802

796-
EventBus.getDefault().post(MergeListFragment.EVENT_UPDATE);
797-
798-
finish();
803+
onRefrush();
799804
}
800805

801806
private void updateReviewer() {

app/src/main/java/net/coding/program/project/detail/merge/MergeListFragment.java

Lines changed: 7 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,12 @@
11
package net.coding.program.project.detail.merge;
22

33

4-
import android.os.Bundle;
54
import android.support.v4.app.Fragment;
6-
import android.view.LayoutInflater;
75
import android.view.View;
8-
import android.view.ViewGroup;
96

107
import net.coding.program.R;
118
import net.coding.program.common.base.BaseLoadMoreFragment;
9+
import net.coding.program.common.event.EventRefreshMerge;
1210
import net.coding.program.common.model.Merge;
1311
import net.coding.program.common.model.ProjectObject;
1412
import net.coding.program.route.BlankViewDisplay;
@@ -18,7 +16,6 @@
1816
import org.androidannotations.annotations.FragmentArg;
1917
import org.androidannotations.annotations.ItemClick;
2018
import org.androidannotations.annotations.ViewById;
21-
import org.greenrobot.eventbus.EventBus;
2219
import org.greenrobot.eventbus.Subscribe;
2320
import org.greenrobot.eventbus.ThreadMode;
2421
import org.json.JSONArray;
@@ -69,24 +66,15 @@ protected final void initMergeListFragment() {
6966
loadMore();
7067
}
7168

72-
@Override
73-
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
74-
EventBus.getDefault().register(this);
75-
return super.onCreateView(inflater, container, savedInstanceState);
69+
@Subscribe(threadMode = ThreadMode.MAIN)
70+
public void onEvent(EventRefreshMerge event) {
71+
initSetting();
72+
loadMore();
7673
}
7774

7875
@Override
79-
public void onDestroyView() {
80-
super.onDestroyView();
81-
EventBus.getDefault().unregister(this);
82-
}
83-
84-
@Subscribe(threadMode = ThreadMode.MAIN)
85-
public void onEvent(String s) {
86-
if (s.equals(EVENT_UPDATE)) {
87-
initSetting();
88-
loadMore();
89-
}
76+
protected boolean useEventBus() {
77+
return true;
9078
}
9179

9280
@Override

app/src/main/java/net/coding/program/project/detail/merge/ProjectMergeFragment.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import net.coding.program.R;
1212
import net.coding.program.common.GlobalCommon;
1313
import net.coding.program.common.base.BaseLoadMoreFragment;
14+
import net.coding.program.common.event.EventRefreshMerge;
1415
import net.coding.program.common.model.Merge;
1516
import net.coding.program.common.model.ProjectObject;
1617
import net.coding.program.route.BlankViewDisplay;
@@ -22,6 +23,8 @@
2223
import org.androidannotations.annotations.ItemClick;
2324
import org.androidannotations.annotations.ViewById;
2425
import org.androidannotations.annotations.res.StringArrayRes;
26+
import org.greenrobot.eventbus.Subscribe;
27+
import org.greenrobot.eventbus.ThreadMode;
2528
import org.json.JSONArray;
2629
import org.json.JSONException;
2730
import org.json.JSONObject;
@@ -110,6 +113,17 @@ public void onClick(View v) {
110113
showDialogLoading();
111114
}
112115

116+
@Override
117+
protected boolean useEventBus() {
118+
return true;
119+
}
120+
121+
@Subscribe(threadMode = ThreadMode.MAIN)
122+
public void onEvent(EventRefreshMerge event) {
123+
initSetting();
124+
loadMore();
125+
}
126+
113127
@Click
114128
void toolbarTitle() {
115129
if (mProjectObject.isPublic) {

app/src/main/res/layout/activity_merge_detail.xml

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -18,18 +18,25 @@
1818
android:layout_height="match_parent"
1919
android:orientation="vertical">
2020

21-
<ListView
22-
android:id="@+id/listView"
21+
<android.support.v4.widget.SwipeRefreshLayout
22+
android:id="@+id/swipeRefreshLayout"
2323
android:layout_width="match_parent"
2424
android:layout_height="0dp"
25-
android:layout_weight="1"
26-
android:background="@color/stand_bg"
27-
android:clipToPadding="false"
28-
android:divider="@null"
29-
android:dividerHeight="0dp"
30-
android:drawSelectorOnTop="true"
31-
android:footerDividersEnabled="false"
32-
android:headerDividersEnabled="false" />
25+
android:background="@color/divide"
26+
android:layout_weight="1">
27+
28+
<ListView
29+
android:id="@+id/listView"
30+
android:layout_width="match_parent"
31+
android:layout_height="match_parent"
32+
android:clipToPadding="false"
33+
android:divider="@null"
34+
android:dividerHeight="0dp"
35+
android:drawSelectorOnTop="true"
36+
android:footerDividersEnabled="false"
37+
android:headerDividersEnabled="false" />
38+
39+
</android.support.v4.widget.SwipeRefreshLayout>
3340

3441
<View style="@style/DivideLine" />
3542

@@ -89,6 +96,7 @@
8996

9097
</LinearLayout>
9198

99+
92100
<include
93101
android:id="@+id/blankLayout"
94102
layout="@layout/view_exception"

app/src/main/res/layout/activity_merge_detail_footer.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
android:orientation="vertical">
1212

1313
<View
14+
android:background="@color/stand_bg"
1415
android:layout_width="match_parent"
1516
android:layout_height="20dp" />
1617

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
package net.coding.program.common.event;
2+
3+
public class EventRefreshMerge {
4+
}

0 commit comments

Comments
 (0)