From 60ee000b6ccbafa681b95d0ffc6e55eaa9a5ef48 Mon Sep 17 00:00:00 2001 From: jendib Date: Sun, 22 Nov 2015 20:32:26 +0100 Subject: [PATCH] #45: Android: Add comments --- .../docs/activity/DocumentViewActivity.java | 35 ++++++++++++++ .../docs/resource/CommentResource.java | 18 +++++++ .../drawable-xhdpi/ic_comment_black_24dp.png | Bin 0 -> 296 bytes .../drawable-xhdpi/ic_send_grey600_24dp.png | Bin 0 -> 448 bytes .../drawable-xxhdpi/ic_comment_black_24dp.png | Bin 0 -> 359 bytes .../drawable-xxhdpi/ic_send_grey600_24dp.png | Bin 0 -> 565 bytes .../src/main/res/layout/comment_list_item.xml | 2 +- .../res/layout/document_view_activity.xml | 44 +++++++++++++++++- .../main/res/menu/document_view_activity.xml | 2 +- .../app/src/main/res/values/strings.xml | 5 +- 10 files changed, 102 insertions(+), 4 deletions(-) create mode 100644 docs-android/app/src/main/res/drawable-xhdpi/ic_comment_black_24dp.png create mode 100644 docs-android/app/src/main/res/drawable-xhdpi/ic_send_grey600_24dp.png create mode 100644 docs-android/app/src/main/res/drawable-xxhdpi/ic_comment_black_24dp.png create mode 100644 docs-android/app/src/main/res/drawable-xxhdpi/ic_send_grey600_24dp.png diff --git a/docs-android/app/src/main/java/com/sismics/docs/activity/DocumentViewActivity.java b/docs-android/app/src/main/java/com/sismics/docs/activity/DocumentViewActivity.java index 1e056730..5076978c 100644 --- a/docs-android/app/src/main/java/com/sismics/docs/activity/DocumentViewActivity.java +++ b/docs-android/app/src/main/java/com/sismics/docs/activity/DocumentViewActivity.java @@ -24,6 +24,8 @@ import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.widget.Button; +import android.widget.EditText; +import android.widget.ImageButton; import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; @@ -243,6 +245,39 @@ public class DocumentViewActivity extends AppCompatActivity { } }); + // TODO Delete comment button + + ImageButton imageButton = (ImageButton) findViewById(R.id.addCommentBtn); + imageButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + final EditText commentEditText = (EditText) findViewById(R.id.commentEditText); + if (commentEditText.getText().length() == 0) { + // No content for the new comment + return; + } + + Toast.makeText(DocumentViewActivity.this, R.string.adding_comment, Toast.LENGTH_LONG).show(); + + CommentResource.add(DocumentViewActivity.this, + DocumentViewActivity.this.document.optString("id"), + commentEditText.getText().toString(), + new JsonHttpResponseHandler() { + public void onSuccess(int statusCode, Header[] headers, JSONObject response) { + // TODO Send a new comment event and update the adapter properly + // if there is no adapter yet (comments not loaded), do nothing + commentEditText.setText(""); + updateComments(); + } + + @Override + public void onAllFailure(int statusCode, Header[] headers, byte[] responseBytes, Throwable throwable) { + Toast.makeText(DocumentViewActivity.this, R.string.comment_add_failure, Toast.LENGTH_LONG).show(); + } + }); + } + }); + // Grab the comments updateComments(); diff --git a/docs-android/app/src/main/java/com/sismics/docs/resource/CommentResource.java b/docs-android/app/src/main/java/com/sismics/docs/resource/CommentResource.java index cf7bec0b..ca330ee1 100644 --- a/docs-android/app/src/main/java/com/sismics/docs/resource/CommentResource.java +++ b/docs-android/app/src/main/java/com/sismics/docs/resource/CommentResource.java @@ -2,6 +2,7 @@ package com.sismics.docs.resource; import android.content.Context; +import com.loopj.android.http.RequestParams; import com.sismics.docs.listener.JsonHttpResponseHandler; @@ -24,6 +25,23 @@ public class CommentResource extends BaseResource { client.get(getApiUrl(context) + "/comment/" + documentId, responseHandler); } + /** + * PUT /comment. + * + * @param context Context + * @param documentId Document ID + * @param content Comment content + * @param responseHandler Callback + */ + public static void add(Context context, String documentId, String content, JsonHttpResponseHandler responseHandler) { + init(context); + + RequestParams params = new RequestParams(); + params.put("id", documentId); + params.put("content", content); + client.put(getApiUrl(context) + "/comment", params, responseHandler); + } + /** * Cancel pending requests. * diff --git a/docs-android/app/src/main/res/drawable-xhdpi/ic_comment_black_24dp.png b/docs-android/app/src/main/res/drawable-xhdpi/ic_comment_black_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..412de9b052754c39e9092a17cef71d680f8558f7 GIT binary patch literal 296 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA0wn)(8}a}tg=CK)Uj~LMH3o);76yi2K%s^g z3=E|}g|8AA7_4S6Fo+k-*%fF5lweBoc6VX;-`;;_Kaj^+;1OBOz`!jG!i)^F=12eq z7kIijhD02Gd&8Tn#es+A!mgedx?gS9UCHKDdX@BN+v*LQKVK#s6vQ6X{$$Bg+QzZW)r12K}oUC{@4Tk;C&L8-};t*zKurWNP zflcAH41+@S#lMZJ3=Uz;db@ueIKZZ5w&3RvTh;~^)hgA5%l~6javscHz%ZYM(}F{) lKp;UlLHNm%GEok7>nArq`YfE_wE*Z=22WQ%mvv4FO#lgHWsd*= literal 0 HcmV?d00001 diff --git a/docs-android/app/src/main/res/drawable-xhdpi/ic_send_grey600_24dp.png b/docs-android/app/src/main/res/drawable-xhdpi/ic_send_grey600_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..e138046223025f5a9422590d78a47b3d4984a4c5 GIT binary patch literal 448 zcmV;x0YCnUP)004R> z004l5008;`004mK004C`008P>0026e000+ooVrmw00002VoOIv0RM-N%)bBt010qN zS#tmY3ljhU3ljkVnw%H_00B5jL_t(o!|j*RZNe}RKwl68lmVbpnUO_o37l?F!W@Ot zK}uE#0{Ri95J<3nw!fOoXQDj&*}gkx3(`h50R9tT%aRYObbu2hO5R!VlMVoIWP@g# z4p7H8I*za_;7oS+t|Z5V3VQ}kcOb_!!ekZAKEH}h zEldh{Z2?|700oM@kD~d_52qGI2199EWZM|~7Fn_8*u72N$JiBrQc@hW*1n0KDilSU zR8di&AJ1+az!NFq089Q1E18`MEl$yQmLdUoN%3vGyruZGj)pv5>v-S%DybBE`|i*y q$S)uf`sqHvC(AfehHLBqh#kMS#iSv<*6SGn0000I(3)EF2VS{N990fib~ zFff!FFfhDIU|_JC!N4G1FlSew4N!t9$=lt9;eUJonf*W>XMsm#F#`j)FbFd;%$g$s z6uj^0;uw-~@9j-*z9s_+*N4V|-xQ=voKo0#nY+6rU1+sXH2kq9IB-JamcO3wc1r)a zWb$&sf+<{g=kzp5J+I_dwfwB;=k;{%r+r;V-(TiDU1;&`%rD2tg1*BW->{1YI^3=c zkYz1-#lBM`n?=ZD!Nq$gI~(+vI7Q^1lr!F@62Ee^e=0hzp0qM21?avK$%CUCQGYM0GnZkqS;-y^eY4tJNVSfCe_a=~2F z>c!*~hAV0_8Mb;xC@1!|m004R> z004l5008;`004mK004C`008P>0026e000+ooVrmw00002VoOIv0RM-N%)bBt010qN zS#tmY3ljhU3ljkVnw%H_00FH@L_t(&-tF02Zh}w{fZ^Z91=I!9ChZ!#5l9regNo~@ ztuCap1xzmwgjACP=Q1;r=HRO)U*-ql9A-~U>zE}_0wquaO$xMQ#S6`JK%d-D^URu$ z>3{%EY{}V82h<)1a{GWoAb^^Z!ZP3(s0*0!b`8)Mv)*qS1#|})1@r?M1oQ_f2Mh(N z1-t}(d;eZMU@S;HpbV%BxaK$=P#dr!j|(UZYL7iRo6vw7ps0Xapx}U-prC;IAkTm{ zpe|s>yB}!5!`Wxa+&7t9I|8c6*h?pSJOkW$Br7PWB~EIe8T6gh85>UFmwng_Mk4wAF~-lp z;kp{Wb;!-2KT_p>>(IQp_C~q}XfTrf1KLO=J5WPKKK=w`1M-Muu?+HxqzMX&qy-9& zqydUrt4eRjIISgYHmr`6l)4*M?jXTPu^{nCF`$}4K2j*?K&BIE2-Np#K{b*e$RLtC z$S9HvNMQ3)4rKm@YzXwq%080R?neS8Py!{;KLz~&$HDh8V7w~v00000NkvXXu0mjf D^l|4S literal 0 HcmV?d00001 diff --git a/docs-android/app/src/main/res/layout/comment_list_item.xml b/docs-android/app/src/main/res/layout/comment_list_item.xml index 7396aac6..eb444391 100644 --- a/docs-android/app/src/main/res/layout/comment_list_item.xml +++ b/docs-android/app/src/main/res/layout/comment_list_item.xml @@ -1,7 +1,7 @@ diff --git a/docs-android/app/src/main/res/layout/document_view_activity.xml b/docs-android/app/src/main/res/layout/document_view_activity.xml index 7a0d3cf9..b437c238 100644 --- a/docs-android/app/src/main/res/layout/document_view_activity.xml +++ b/docs-android/app/src/main/res/layout/document_view_activity.xml @@ -52,13 +52,22 @@ + + + + + + + + + + + + diff --git a/docs-android/app/src/main/res/menu/document_view_activity.xml b/docs-android/app/src/main/res/menu/document_view_activity.xml index bcf880e0..66ca28bf 100644 --- a/docs-android/app/src/main/res/menu/document_view_activity.xml +++ b/docs-android/app/src/main/res/menu/document_view_activity.xml @@ -12,7 +12,7 @@ + android:title="@string/comments"> All languages Toggle informations Who can access - Show comments Comments No comments Error loading comments + Send + Add a comment + Error adding a comment + Adding a comment...