package com.project.v1;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.Activity;
import android.os.Bundle;
import android.telephony.TelephonyManager;
import android.widget.ListView;
import android.widget.Toast;
public class GetFriendsActivity extends Activity{
private Double latitude;
private Double longitude ;
private MyFriend friend= new MyFriend();
List<MyFriend> result = new ArrayList<MyFriend>();
int i=0;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
/*Toast.makeText(getBaseContext(),
"Fetching my friends list from the server",
Toast.LENGTH_LONG).show();
*/
try {
sendInfo();
} catch (IOException e) {
// TODO Auto-generated catch block
Toast.makeText(getBaseContext(),
"Error sending data",
Toast.LENGTH_LONG).show();
e.printStackTrace();
}
displayFriendsList();
}
public String getDeviceId(){
TelephonyManager mTelephonyMgr = (TelephonyManager)getSystemService(TELEPHONY_SERVICE);
String deviceId = null;
try{
deviceId = mTelephonyMgr.getDeviceId();
}
catch(Exception e){
e.printStackTrace();
}
if(deviceId.equalsIgnoreCase("000000000000000"))
return("007");
else if(deviceId.equals(null))
return("007");
else
return(deviceId);
}
/*public JSONArray getJsonFriendList() throws JSONException {
List<JSONObject> jsonFriends = new ArrayList<JSONObject>();
for (MyFriend mf : getMyDetails()) {
jsonFriends.add(mf.toJson());
}
return new JSONArray(jsonFriends);
}*/
private String getMyDetails() {
Bundle bundle = getIntent().getExtras();
if (bundle != null) {
latitude = bundle.getDouble("latitude");
longitude = bundle.getDouble("longitude");
}
float lat = latitude.floatValue();
float lon = longitude.floatValue();
String deviceId = getDeviceId();
Date date = new Date();
String timeStamp = date.toString();
return ("myDeviceId="+deviceId+"&latitude="+lat+"&longitude="+lon+"&timeStamp="+timeStamp);
}
private void displayFriendsList() {
/*Toast.makeText(this,
"Done adding it in the list",
Toast.LENGTH_SHORT).show();
*/
setContentView(R.layout.listmain);
ListView list = (ListView)findViewById(R.id.list1);
MyFriendAdapter adapter = new MyFriendAdapter(this, result);
list.setAdapter(adapter);
}
public void sendInfo() throws IOException {
OutputStreamWriter writer = null;
BufferedReader reader = null;
String receivedData = null;
try{
URL url = new URL("http://10.0.2.2:28503/MainServer/GetFriendsServlet");//this is the localhost address
URLConnection conn = url.openConnection();
conn.setDoOutput(true);
/*Toast.makeText(getBaseContext(),
"connection set",
Toast.LENGTH_SHORT).show();*/
writer = new OutputStreamWriter(conn.getOutputStream());
String myDetails = getMyDetails();
writer.write(myDetails);
writer.flush();
Toast.makeText(getBaseContext(),
"Sent mydetails:"+myDetails,
Toast.LENGTH_LONG).show();
reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
receivedData = reader.readLine();
if(receivedData.equals("Failed To Connect To Server. Please Try Again Later...") || receivedData.equals("Sorry You Have No Friends. Please Add Some Before Using This Service...") || receivedData.startsWith("Sorry You Have No Friends. Please Add Some Before Using This Service...")){
Toast.makeText(getBaseContext(),
receivedData,
Toast.LENGTH_LONG).show();
finish();
}
else if(receivedData.equals("Receiving Friends List")){
String receivedList = reader.readLine();
/*Toast.makeText(getBaseContext(),
receivedData+receivedList,
Toast.LENGTH_LONG).show();*/
convertJsonToArray(receivedList);
}
else{
String receivedData1 = "Sorry You Have No Friends. Please Add Some Before Using This Service...";
Toast.makeText(getBaseContext(),
receivedData1,
Toast.LENGTH_LONG).show();
finish();
}
}
catch (Exception e){
Toast.makeText(getBaseContext(),
"Some error here:"+e.getLocalizedMessage()+e.getMessage(),
Toast.LENGTH_LONG).show();
e.printStackTrace();
reader.close();
}
finally{
writer.close();
}
return;
}
private void convertJsonToArray(String readLine) {
try {
JSONObject friends = new JSONObject(readLine);
JSONArray friendArray = friends.getJSONArray("MyFriends");
MyFriend obj = new MyFriend();
for (int i = 0; i < friendArray.length(); i++) {
JSONObject fj = friendArray.getJSONObject(i);
obj = friend.jsonToMyFriend(fj);
/*Toast.makeText(getBaseContext(),
"Adding name:"+obj.getFName()+" in the list",
Toast.LENGTH_LONG).show();*/
result.add(new MyFriend(obj.getFName(),obj.getLName(),obj.getLatitude(),obj.getLongitude(),obj.getTimeStamp(),obj.getDeviceId()));
}
} catch (JSONException ex) {
ex.printStackTrace();
throw new Error("Could not understand server response.", ex);
}
}
/*public String myDetails(){
try{
JSONObject root = new JSONObject();
JSONArray jsonFriends = new JSONArray();
jsonFriends = getJsonFriendList();
root.put("MyFriends",jsonFriends);
return root.toString();
}
catch(Exception e){
throw new Error("Could not convert MyFriends list", e);
}
}*/
}
|