ParseJson.java :  » UnTagged » sportclubcalendar » com » teamcalendar » api » Android Open Source

Android Open Source » UnTagged » sportclubcalendar 
sportclubcalendar » com » teamcalendar » api » ParseJson.java
package com.teamcalendar.api;

import java.io.IOException;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import org.json.JSONException;
import org.json.JSONObject;

import com.teamcalendar.client.DBAdapter;

public class ParseJson {

  String response;
  DBAdapter mDb;
  String memberId;
  String teamId=null;
  int numberOfUnreadMessages = 0;
  private String eventId;
  private long eventDate;
  private String eventDetails;
  private String imageURL;
  HttpEntity entity;
  byte[] image;

  public String getTeamId() {
    return teamId;
  }

  public String getMemberId() {
    return memberId;
  }

  public ParseJson(DBAdapter mDb) {
    super();
    this.mDb = mDb;
  }

  public String getResponse() {
    return response;
  }

  public void setResponse(String response) {
    this.response = response;
  }

  public int getNumberOfUnreadMessages() {
    return numberOfUnreadMessages;
  }

  public void fromJSONTeam(String team) {
    String name;
    mDb.deleteTable(DBAdapter.DATABASE_TABLE_TEAMS);
    try {
      JSONObject outer = new JSONObject(team);
      if (outer != null) {
        JSONObject outerInner = outer.getJSONObject("teams");
        if (outerInner != null) {
          int length = outerInner.length();
          for (int i = 1; i < length; i++) {
            JSONObject inner = outerInner.getJSONObject("team" + String.valueOf(i));
            if (inner != null) {
              memberId = inner.getString("id");
              name = inner.getString("name");
              imageURL=CreateJson.serverAddress+CreateJson.imagesFolder + 
                    "team_" + name.toLowerCase().substring(4) + ".jpg";
              if(getImage(imageURL)!=null){
                image=getImage(imageURL);
              }
              
              mDb.insertTeam(name, memberId,image);              
            }
          }          
        }
      }
    } catch (JSONException e) {
      e.printStackTrace();
    } catch (ClientProtocolException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    } catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
  }

  public void fromJSONMessage(String messages) {
    String senderid = null;
    String message = null;
    String messageId = null;
    boolean readStatus;
    int read = 0;
    try {
      JSONObject outer = new JSONObject(messages);
      mDb.deleteTable(DBAdapter.DATABASE_TABLE_MESSAGES);
      JSONObject outerMember = outer.getJSONObject("messages");
      if (outerMember != null) {
        int length = outerMember.length();
        for (int i = 1; i < length; i++) {
          JSONObject innerMember = outerMember.getJSONObject("message" + String.valueOf(i));
          if (innerMember != null) {
            senderid = innerMember.getString("senderid");
            message = innerMember.getString("messagetext");
            messageId = innerMember.getString("messageid");
            readStatus = innerMember.getBoolean("read");
            if(readStatus) {
              read = 1;
            }
            else {
              numberOfUnreadMessages++;
            }              
            mDb.insertMessage(senderid, message, messageId, read);
          }
        }
      }
    } catch (JSONException e) {
      e.printStackTrace();
    }    
  }


  public void fromJSONMember(String member) {
    String firstName;
    String familyName;
    String address;
    String location;
    String zipCode;
    String phoneNumber;
    String email;
    String role;

    mDb.deleteTable(DBAdapter.DATABASE_TABLE_CURRENTTEAMMEMBERS);
    try {
      JSONObject outer = new JSONObject(member);
      if (outer != null) {
        JSONObject outerInner = outer.getJSONObject("teammembers");
        if (outerInner != null) {
          int length = outerInner.length();
          for (int i=1; i < length; i++) {
            String teammember="teammember"+String.valueOf(i);
            JSONObject inner = outerInner.getJSONObject(teammember);
            if (inner != null) {
              teamId = inner.getString("id");
              firstName = inner.getString("firstname");
              familyName = inner.getString("familyname");
              address = inner.getString("address");
              location = inner.getString("location");
              zipCode = inner.getString("zipcode");
              phoneNumber = inner.getString("phonenumber");
              email = inner.getString("mailaddress");
              role = inner.getString("role");
              imageURL=CreateJson.serverAddress+CreateJson.imagesFolder + "VictorBjork.jpg";
              try {
                image=getImage(imageURL);
              } catch (ClientProtocolException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
              } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
              }
              
              mDb.insertCurrentTeamMember(teamId, firstName, familyName, address, location, zipCode,
                  phoneNumber, email, role,image);
            }
          }          
        }
      }
    } catch (JSONException e) {
      System.out.println("no members");;
    }
  }

  //  public void FromJsonLogin(String login){

  //  }
  //  
  public void FromJsonLogin(String register){
    String firstName;
    String lastName;
    String address;
    String location;
    String zipCode;
    String phoneNumber;
    String email;
    String role;
//    String image;
    String eventId;
    eventDate = 0;
    String eventdetails = null;
    mDb.deleteTable(DBAdapter.DATABASE_TABLE_MYTEAMMEMBERS);
    //mDb.deleteTable(DBA)
    try {
      JSONObject outer = new JSONObject(register);
      if (outer != null) {
        //JSONObject user=outer.getJSONObject("user");
        JSONObject outerInner = outer.getJSONObject("teammembers");
        if (outerInner != null) {
          int length = outerInner.getInt("noofteammembers");
          for (int i=1; i <= length; i++) {
            String teammember="teammember"+String.valueOf(i);
            JSONObject inner = outerInner.getJSONObject(teammember);
            if (inner != null) {
              memberId = inner.getString("id");
              firstName = inner.getString("firstname");
              lastName = inner.getString("familyname");
              address = inner.getString("address");
              location = inner.getString("location");
              zipCode = inner.getString("zipcode");
              phoneNumber = inner.getString("phonenumber");
              email = inner.getString("mailaddress");
              role = inner.getString("role");
              mDb.insertMyTeamMember(memberId, firstName, lastName, address, location, zipCode,
                  phoneNumber, email, role);
              teamId=inner.getString("teamid");
            }
          }

          JSONObject user=outer.getJSONObject("user");
          if(user!=null){
            memberId = user.getString("teammemberkeyid");

          }
          mDb.deleteTable(DBAdapter.DATABASE_TABLE_MYEVENTS);

          JSONObject events=outer.getJSONObject("activities");
          if(events!=null){
            length=events.getInt("noofactivities");
            for ( int counter=1; counter <= length; counter++) {
              String event="activity"+String.valueOf(counter);
              JSONObject eventObject=events.getJSONObject(event);
              eventId=eventObject.getString("id");
              eventDate=eventObject.getLong("date");
              eventdetails=eventObject.getString("activity");
              mDb.insertMyEvents(eventId,eventDate, eventdetails);
            }
          }
        }
        fromJSONMessage(register);
      }
    } catch (JSONException e) {
      e.printStackTrace();
    }
  }
  
  public void fromJSONEvents(String events) {
    mDb.deleteTable(DBAdapter.DATABASE_TABLE_CURRENTTEAMEVENTS);
    try {
      JSONObject outer = new JSONObject(events);
      if (outer != null) {
        JSONObject outerInner = outer.getJSONObject("activities");
        if (outerInner != null) {
          int length = outerInner.length();
          for (int i = 1; i < length; i++) {
            JSONObject inner = outerInner.getJSONObject("activity" + String.valueOf(i));
            if (inner != null) {
              eventId = inner.getString("id");
              eventDate = inner.getLong("date");
              eventDetails= inner.getString("activity");
              
              mDb.insertCurrentTeamEvents(eventId, eventDate, eventDetails);              
            }
          }          
        }
      }
    } catch (JSONException e) {
      e.printStackTrace();
    }
  }
  
  private byte[] getImage(String imageUrl) throws ClientProtocolException, IOException{
    
    DefaultHttpClient mHttpClient = new DefaultHttpClient();
    HttpGet mHttpGet = new HttpGet(imageUrl);
    HttpResponse mHttpResponse = mHttpClient.execute(mHttpGet);
    if (mHttpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
    entity = mHttpResponse.getEntity();
    }
    if(entity!=null)
    return EntityUtils.toByteArray(entity);
    else
      return null;
  }

}

java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.