33import android .content .DialogInterface ;
44import android .content .Intent ;
55import android .support .annotation .Nullable ;
6+ import android .support .v4 .widget .SwipeRefreshLayout ;
67import android .text .TextUtils ;
78import android .util .Log ;
89import android .view .Gravity ;
2829import net .coding .program .common .RedPointTip ;
2930import net .coding .program .common .base .MyJsonResponse ;
3031import net .coding .program .common .comment .BaseCommentParam ;
32+ import net .coding .program .common .event .EventRefreshMerge ;
3133import net .coding .program .common .model .BaseComment ;
3234import net .coding .program .common .model .DiffFile ;
3335import 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 () {
0 commit comments