get all notes

now showing all existing notes for user when entering
This commit is contained in:
aranzaiger 2016-07-02 19:03:31 +03:00
parent 87e09af1c4
commit 14ff165c20
5 changed files with 217 additions and 86 deletions

View file

@ -0,0 +1,51 @@
package com.android_app.matan.ara.sagi.thesocialnotework;
import android.app.ProgressDialog;
import android.content.Context;
import android.os.AsyncTask;
/**
* Created by JERLocal on 7/2/2016.
*/
public class HeavyWorker extends AsyncTask< String , Context , Void > {
private ProgressDialog progressDialog ;
private Context targetCtx ;
public HeavyWorker ( Context context ) {
this.targetCtx = context ;
progressDialog = new ProgressDialog ( targetCtx ) ;
progressDialog.setCancelable ( false ) ;
progressDialog.setMessage ( "Retrieving data..." ) ;
progressDialog.setTitle ( "Please wait" ) ;
progressDialog.setIndeterminate ( true ) ;
}
@ Override
protected void onPreExecute ( ) {
progressDialog.show ( ) ;
}
@ Override
protected Void doInBackground ( String ... params ) {
// Do Your WORK here
PersonalSpaceActivity ps = (PersonalSpaceActivity)targetCtx;
ps.getAllNotes();
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
return null ;
}
@ Override
protected void onPostExecute ( Void result ) {
if(progressDialog != null && progressDialog.isShowing()){
progressDialog.dismiss ( ) ;
}
}
}

View file

@ -57,12 +57,14 @@ public class ListAdapter extends BaseAdapter {
v = inflater.inflate(R.layout.note_view_mini , parent , false); v = inflater.inflate(R.layout.note_view_mini , parent , false);
} }
TextView title = (TextView) v.findViewById(R.id.nvm_title_textview); TextView title = (TextView) v.findViewById(R.id.nvm_title_textview);
TextView datetime = (TextView) v.findViewById(R.id.nvm_time_location_textview); TextView datetime = (TextView) v.findViewById(R.id.nvm_time_textview);
TextView location = (TextView) v.findViewById(R.id.nvm_location_textview);
// NetworkImageView thumbNail = (NetworkImageView) v.findViewById(R.id.infoImageImageView); // NetworkImageView thumbNail = (NetworkImageView) v.findViewById(R.id.infoImageImageView);
// String url = mVideos.get(position).getImgURL(); // String url = mVideos.get(position).getImgURL();
// thumbNail.setImageUrl(url, VolleyUtilSingleTone.getInstance(mContext).getImageLoader()); // thumbNail.setImageUrl(url, VolleyUtilSingleTone.getInstance(mContext).getImageLoader());
title.setText(mNotes.get(position).getTitle()); title.setText(mNotes.get(position).getTitle());
datetime.setText(Html.fromHtml(mNotes.get(position).getLocationAndTime())); datetime.setText(Html.fromHtml(mNotes.get(position).getTimestamp()));
location.setText(mNotes.get(position).getAddress());
// Animation animation = AnimationUtils.loadAnimation(mContext, (position > lastPosition) ? R.anim.up_from_bottom : R.anim.down_from_top); // Animation animation = AnimationUtils.loadAnimation(mContext, (position > lastPosition) ? R.anim.up_from_bottom : R.anim.down_from_top);
// v.startAnimation(animation); // v.startAnimation(animation);
lastPosition = position; lastPosition = position;

View file

@ -70,29 +70,39 @@ public class PersonalSpaceActivity extends AppCompatActivity {
//add demo notes to view //add demo notes to view
addDemoNotes(listOfNotes); addDemoNotes(listOfNotes);
noteListAdapter = new ListAdapter(this, listOfNotes); noteListAdapter = new ListAdapter(this, listOfNotes);
noteList.setAdapter(noteListAdapter); noteList.setAdapter(noteListAdapter);
new HeavyWorker(this).execute();
addBtn.setOnClickListener(new View.OnClickListener() {
//https://thesocialnotework-api.appspot.com/api/note/all?uid=<USER_ID>
addBtn.setOnClickListener(addNewNoteDialog);
}
public void getAllNotes(){
VolleyUtilSingleton.getInstance(PersonalSpaceActivity.this).get(BASE_URL + "/note/all?uid=5719238044024832", getNotesSuccessListener, genericErrorListener);
}
private View.OnClickListener addNewNoteDialog = new View.OnClickListener() {
public void onClick(View v) { public void onClick(View v) {
final Dialog dialog = new Dialog(PersonalSpaceActivity.this);
//create and configure dialog
final Dialog dialog = new Dialog(PersonalSpaceActivity.this);
dialog.setContentView(R.layout.note_view_full); dialog.setContentView(R.layout.note_view_full);
dialog.setTitle("New Note"); dialog.setTitle("New Note");
WindowManager.LayoutParams lp = new WindowManager.LayoutParams(); WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
lp.copyFrom(dialog.getWindow().getAttributes()); lp.copyFrom(dialog.getWindow().getAttributes());
lp.width = WindowManager.LayoutParams.MATCH_PARENT; lp.width = WindowManager.LayoutParams.MATCH_PARENT;
lp.height = WindowManager.LayoutParams.MATCH_PARENT; lp.height = WindowManager.LayoutParams.MATCH_PARENT;
// final EditText editText = (EditText) dialog.findViewById(R.id.editText);
// Button btnSave = (Button) dialog.findViewById(R.id.save);
// Button btnCancel = (Button) dialog.findViewById(R.id.cancel);
dialog.setCancelable(false); dialog.setCancelable(false);
dialog.show(); dialog.show();
dialog.getWindow().setAttributes(lp); dialog.getWindow().setAttributes(lp);
//get note_view_full layout elements
final Switch permissionSwitch = (Switch) dialog.findViewById(R.id.nvf_note_permission); final Switch permissionSwitch = (Switch) dialog.findViewById(R.id.nvf_note_permission);
final EditText newTitle = (EditText) dialog.findViewById(R.id.nvf_note_title); final EditText newTitle = (EditText) dialog.findViewById(R.id.nvf_note_title);
final EditText newBody = (EditText) dialog.findViewById(R.id.nvf_note_content); final EditText newBody = (EditText) dialog.findViewById(R.id.nvf_note_content);
@ -105,14 +115,14 @@ public class PersonalSpaceActivity extends AppCompatActivity {
} }
}); });
saveBtn.setOnClickListener(new View.OnClickListener() { saveBtn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) { public void onClick(View v) {
//volley post //volley post
final JSONObject noteJson = new JSONObject(); final JSONObject noteJson = new JSONObject();
try { try {
noteJson.put("owner_id", "5634472569470976"); //TODO need to get owner id from login screen
noteJson.put("owner_id", "5719238044024832");
noteJson.put("title", newTitle.getText()); noteJson.put("title", newTitle.getText());
noteJson.put("lat", gpsUtils.getLatitude()); noteJson.put("lat", gpsUtils.getLatitude());
noteJson.put("lng", gpsUtils.getLongitude()); noteJson.put("lng", gpsUtils.getLongitude());
@ -127,33 +137,29 @@ public class PersonalSpaceActivity extends AppCompatActivity {
Log.d(TAG, e.toString()); Log.d(TAG, e.toString());
} }
VolleyUtilSingleton.getInstance(PersonalSpaceActivity.this).post(BASE_URL + "/note/upsert", noteJson, newNoteSuccess, newNoteError); //send request and close dialog
VolleyUtilSingleton.getInstance(PersonalSpaceActivity.this).post(BASE_URL + "/note/upsert", noteJson, newNoteSuccessListener, genericErrorListener);
dialog.dismiss(); dialog.dismiss();
} }
}); });
//change text of switch according to state.
permissionSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { permissionSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) if (isChecked)
permissionSwitch.setText(R.string.nvf_public_label); permissionSwitch.setText(R.string.nvf_public_label);
else else
permissionSwitch.setText(R.string.nvf_private_label); permissionSwitch.setText(R.string.nvf_private_label);
// do something, the isChecked will be
// true if the switch is in the On position
} }
}); });
} }
} };
);
}
//TODO remove
public void addDemoNotes(List<Note> listOfNotes) { public void addDemoNotes(List<Note> listOfNotes) {
Note n1 = new Note("1", 100, 100, "location1", "My 1st Title", "ohh i'm so sexy1", ""+System.currentTimeMillis() / 1000, true); Note n1 = new Note("1", 100, 100, "location1", "My 1st Title", "ohh i'm so sexy1", ""+System.currentTimeMillis() / 1000, true);
Note n2 = new Note("2", 200, 200, "location2", "My 2st Title", "ohh i'm so sexy2", ""+System.currentTimeMillis() / 1000, true); Note n2 = new Note("2", 200, 200, "location2", "My 2st Title", "ohh i'm so sexy2", ""+System.currentTimeMillis() / 1000, true);
@ -165,12 +171,14 @@ public class PersonalSpaceActivity extends AppCompatActivity {
listOfNotes.add(n4); listOfNotes.add(n4);
} }
public void setLocationPermission(boolean locationPermission) { public void setLocationPermission(boolean locationPermission) {
this.locationPermission = locationPermission; this.locationPermission = locationPermission;
} }
Response.Listener<JSONObject> newNoteSuccess = new Response.Listener<JSONObject>() { //response listener for adding new note
Response.Listener<JSONObject> newNoteSuccessListener = new Response.Listener<JSONObject>() {
@Override @Override
public void onResponse(JSONObject response) { public void onResponse(JSONObject response) {
Log.d(TAG, "newNoteSuccess: response - " + response.toString()); Log.d(TAG, "newNoteSuccess: response - " + response.toString());
@ -189,10 +197,9 @@ public class PersonalSpaceActivity extends AppCompatActivity {
time.toString(), time.toString(),
noteObject.getBoolean("is_public") noteObject.getBoolean("is_public")
); );
listOfNotes.add(addNote); listOfNotes.add(addNote);
// noteListAdapter = new ListAdapter(PersonalSpaceActivity.this, listOfNotes);
noteList.setAdapter(noteListAdapter); noteList.setAdapter(noteListAdapter);
// addNoteToArray(addNote);
} catch (Exception e) { } catch (Exception e) {
Log.e(TAG, "newNoteSuccess:" + e.getMessage()); Log.e(TAG, "newNoteSuccess:" + e.getMessage());
} }
@ -200,11 +207,9 @@ public class PersonalSpaceActivity extends AppCompatActivity {
} }
}; };
// private void addNoteToArray(Note addNote) {
// listOfNotes.addNote
// }
Response.ErrorListener newNoteError = new Response.ErrorListener() { //response Error listener for adding new note
Response.ErrorListener newNoteErrorListener = new Response.ErrorListener() {
@Override @Override
public void onErrorResponse(VolleyError error) { public void onErrorResponse(VolleyError error) {
Log.d(TAG, "newNoteError: msg: " + error.getMessage()); Log.d(TAG, "newNoteError: msg: " + error.getMessage());
@ -212,4 +217,58 @@ public class PersonalSpaceActivity extends AppCompatActivity {
}; };
//response listener for getting all user notes
Response.Listener<JSONObject> getNotesSuccessListener = new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Log.d(TAG,response.toString());
try {
//need to get all notes and add to listOfNotes
JSONArray noteObjectsArray = response.getJSONArray("notes");
Date time = new Date();
for (int i = 0; i < noteObjectsArray.length(); i++) {
JSONObject noteObject = noteObjectsArray.getJSONObject(i);
time.setTime(noteObject.getLong("created_at"));
Note addNote = new Note(
noteObject.getString("id"),
Float.parseFloat(noteObject.getJSONObject("location").getString("lat")),
Float.parseFloat(noteObject.getJSONObject("location").getString("lng")),
noteObject.getJSONObject("location").getString("address"),
noteObject.getString("title"),
noteObject.getString("body"),
time.toString(),
noteObject.getBoolean("is_public")
);
listOfNotes.add(addNote);
}
noteList.setAdapter(noteListAdapter);
} catch (Exception e) {
Log.e(TAG, "newNoteSuccess:" + e.getMessage());
}
}
};
//response ErrorListener for getting all user notes
Response.ErrorListener getNotesErrorListener = new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.d(TAG,error.getMessage());
}
};
//Generic response ErrorListener
Response.ErrorListener genericErrorListener = new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.d(TAG,error.getMessage());
}
};
} }

View file

@ -98,4 +98,16 @@ public class VolleyUtilSingleton {
addToRequestQueue(request); addToRequestQueue(request);
} }
public void get(String url, Response.Listener<JSONObject> successFunction, Response.ErrorListener errorFunction) {
JsonObjectRequest request =
new JsonObjectRequest(
Request.Method.GET,
url,
null,
successFunction,
errorFunction
);
addToRequestQueue(request);
}
} }

View file

@ -14,7 +14,14 @@
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall" android:textAppearance="?android:attr/textAppearanceSmall"
android:text="Date and Location" android:text="Date and time"
android:id="@+id/nvm_time_location_textview" /> android:id="@+id/nvm_time_textview" />
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="location"
android:id="@+id/nvm_location_textview" />
</LinearLayout> </LinearLayout>