package com.ihateflyingbugs.kidsm.gallery; import java.io.File; import java.io.PrintWriter; import java.io.StringWriter; import java.util.ArrayList; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import com.ihateflyingbugs.kidsm.ExpandableHeightGridView; import com.ihateflyingbugs.kidsm.ImageLoader; import com.ihateflyingbugs.kidsm.MainActivity; import com.ihateflyingbugs.kidsm.NetworkFragment; import com.ihateflyingbugs.kidsm.R; import com.ihateflyingbugs.kidsm.WrappingSlidingDrawer; import com.ihateflyingbugs.kidsm.gallery.Album.ALBUMTYPE; import com.ihateflyingbugs.kidsm.menu.SlidingMenuMaker; import com.ihateflyingbugs.kidsm.schedule.ScheduleFragment; import com.ihateflyingbugs.kidsm.uploadphoto.GetAlbumFromLocalActivity; import com.ihateflyingbugs.kidsm.uploadphoto.SimpleCamera; import com.ihateflyingbugs.kidsm.uploadphoto.UploadPhotoActivity; import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.os.Environment; import android.provider.MediaStore; import android.util.DisplayMetrics; import android.view.LayoutInflater; import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.EditText; import android.widget.FrameLayout; import android.widget.GridView; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.TextView; public class GalleryFragment extends NetworkFragment{ ExpandableHeightGridView gridView; GalleryAdapter adapter; //Album defaultAlbum; Album allPhotoAlbum; Album taggedPhotoAlbum; ArrayList<Album> albumList; float prevTouchX; float prevTouchY; WrappingSlidingDrawer drawer; boolean isDrawerShouldOpen; String filePath; LayoutInflater inflater; View layout; int sizeOfView; int getPhotoCounter; int numOfScrappedPhoto; int getPhotosCounter; boolean isGetMemberPhotosResponded; boolean isGetMemberTaggedPhotosResponded; int requestModeFromNewsfeed; public ImageLoader imageLoader; public GalleryFragment() { requestModeFromNewsfeed = 0; } public void setRequestFromNewsfeed(int requestModeFromNewsfeed) { this.requestModeFromNewsfeed = requestModeFromNewsfeed; } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { if(layout != null) { requestAlbumData(); return layout; } this.inflater = inflater; layout = inflater.inflate(R.layout.activity_gallery, container, false); auth_key = MainActivity.auth_key; filePath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/attachimage.jpg"; albumList = new ArrayList<Album>(); // albumList.add(new Album(0, getResources().getString(R.string.make_new_album))); // albumList.add(new Album(1, "2013 ���ֵ� ���� 2015 ���ε� ����")); // albumList.add(new Album(1, "with friends")); // albumList.add(new Album(2, getResources().getString(R.string.scrap_album))); gridView = (ExpandableHeightGridView) layout.findViewById(R.id.gallery_albumlist); int numOfColumn = 3; DisplayMetrics displaymetrics = new DisplayMetrics(); getActivity().getWindowManager().getDefaultDisplay().getMetrics(displaymetrics); sizeOfView = (displaymetrics.widthPixels - 10*(numOfColumn+1))/numOfColumn; FrameLayout frame = (FrameLayout) layout.findViewById(R.id.gallery_seeallphoto_frame); LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(displaymetrics.widthPixels-20, sizeOfView); params.setMargins(10, 10, 10, 0); frame.setLayoutParams(params); frame = (FrameLayout) layout.findViewById(R.id.gallery_seetaggedphoto_frame); params = new LinearLayout.LayoutParams(displaymetrics.widthPixels-20, sizeOfView); params.setMargins(10, 10, 10, 0); frame.setLayoutParams(params); adapter = new GalleryAdapter(albumList, getActivity(), sizeOfView); gridView.setExpanded(true); gridView.setAdapter(adapter); drawer = (WrappingSlidingDrawer)layout.findViewById(R.id.gallery_drawer); drawer.animateOpen(); imageLoader = new ImageLoader(getActivity(), R.drawable.photo_in_album_default); requestAlbumData(); return layout; } public void OnUploadPhoto(View v) { ArrayAdapter<CharSequence> arrayAdapter = ArrayAdapter.createFromResource(getActivity(), R.array.gallery_uploadmode, android.R.layout.simple_list_item_1); ListView listView = new ListView(getActivity()); listView.setAdapter(arrayAdapter); listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE); final AlertDialog alert = new AlertDialog.Builder(getActivity()) .setTitle(getString(R.string.upload_photo)) .setView(listView).create(); listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View v, int position, long id) { Intent intent; switch(position) { case 0: intent = new Intent(getActivity(), SimpleCamera.class); //intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(filePath))); startActivityForResult(intent, 0); break; case 1: intent = new Intent(getActivity(), GetAlbumFromLocalActivity.class); startActivityForResult(intent, 1); break; } alert.dismiss(); } }); alert.show(); } private ArrayList<Album> makeAlbumListForSpinner() { ArrayList<Album> array = new ArrayList<Album>(); for(int i = 1; i < albumList.size()-1; i++) array.add(albumList.get(i)); return array; } public void onActivityResult(int requestCode, int resultCode, Intent data) { if( resultCode == Activity.RESULT_OK ) { Intent intent; switch(requestCode) { case 0: intent = new Intent(getActivity(), UploadPhotoActivity.class); intent.putExtra("mode", 0); intent.putExtra("filePath", data.getStringExtra("uri")); intent.putExtra("albumList", makeAlbumListForSpinner()); startActivityForResult(intent, 2); break; case 1: intent = new Intent(getActivity(), UploadPhotoActivity.class); intent.putExtra("mode", data.getIntExtra("mode", -1)); intent.putExtra("filePath", data.getStringArrayListExtra("filePath")); intent.putExtra("albumList", makeAlbumListForSpinner()); startActivityForResult(intent, 2); break; case 2: String album_srl = data.getStringExtra("album_srl").split(",")[0]; ArrayList<Album> newAlbumList = data.getParcelableArrayListExtra("albumList"); ArrayList<Photo> uploadedPhotoList = data.getParcelableArrayListExtra("uploadedPhotoList"); for( int i = 0; i < newAlbumList.size(); i++ ) { albumList.add(albumList.size()-1, newAlbumList.get(i)); } adapter.notifyDataSetChanged(); for( int i = 1; i < albumList.size()-1; i++ ) { if( album_srl.equals(albumList.get(i).album_srl) ) { albumList.get(i).photoList.addAll(uploadedPhotoList); allPhotoAlbum.photoList.addAll(uploadedPhotoList); adapter.notifyDataSetChanged(); View v = new View(getActivity()); v.setTag(album_srl); //OnSeeAlbum(v); break; } } refreshDataSet(); MainActivity.changeFragment(0); break; case 3: Album modifiedData = data.getParcelableExtra("modifiedData"); ArrayList<Album> newAlbums = data.getParcelableArrayListExtra("newAlbumList"); for( int i = 0; i < newAlbums.size(); i++ ) { albumList.add(albumList.size()-1, newAlbums.get(i)); } adapter.notifyDataSetChanged(); if(modifiedData.type == ALBUMTYPE.MODIFIED) { String modified_album_srl = data.getStringExtra("modified_album_srl"); for( int i = 1; i < albumList.size()-1; i++ ) { if( modified_album_srl.equals(albumList.get(i).album_srl) ) { for(int j = 0; j < modifiedData.photoList.size(); j++) { for(int k = 0; k < albumList.get(i).photoList.size(); k++) { if(modifiedData.photoList.get(j).photo_srl.equals(albumList.get(i).photoList.get(k).photo_srl)) { albumList.get(i).photoList.remove(k); break; } } for( int k = 0; k < allPhotoAlbum.photoList.size(); k++ ) { if(modifiedData.photoList.get(j).photo_srl.equals(allPhotoAlbum.photoList.get(k).photo_srl)) { allPhotoAlbum.photoList.remove(k); break; } } } break; } } for( int i = 0; i < albumList.size()-1; i++ ) { if(albumList.get(i).album_srl.equals(modifiedData.album_srl)) { albumList.get(i).photoList.addAll(modifiedData.photoList); break; } } } else { for( int i = 1; i < albumList.size()-1; i++ ) { if( modifiedData.album_srl.equals(albumList.get(i).album_srl) ) { for(int j = 0; j < modifiedData.photoList.size(); j++) { for(int k = 0; k < albumList.get(i).photoList.size(); k++) { if(modifiedData.photoList.get(j).photo_srl.equals(albumList.get(i).photoList.get(k).photo_srl)) { albumList.get(i).photoList.remove(k); break; } } for( int k = 0; k < allPhotoAlbum.photoList.size(); k++ ) { if(modifiedData.photoList.get(j).photo_srl.equals(allPhotoAlbum.photoList.get(k).photo_srl)) { allPhotoAlbum.photoList.remove(k); break; } } } break; } } } refreshDataSet(); break; } } } public void OnNewAlbum(View v) { final EditText txt = new EditText(getActivity()); new AlertDialog.Builder(getActivity()) .setView(txt) .setMessage("�� ����ø �̸��� �Է��ϼ���") .setNegativeButton("���", null) .setPositiveButton("Ȯ��", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // albumList.add(new Album(1, txt.getText().toString())); GalleryFragment.this.request_Album_setAlbum(txt.getText().toString(), SlidingMenuMaker.getProfile().member_srl, "N"); } }) .show(); } public boolean dispatchTouchEvent(MotionEvent event) { // if( event.getAction() == MotionEvent.ACTION_DOWN ) { // prevTouchY = event.getY(); // } // else if( event.getAction() == MotionEvent.ACTION_MOVE ) { // DisplayMetrics displaymetrics = new DisplayMetrics(); // getActivity().getWindowManager().getDefaultDisplay().getMetrics(displaymetrics); // int height = displaymetrics.heightPixels; // float gap = Math.abs(event.getY() - prevTouchY); // if( gap > height/10 ) { // if( event.getY() - prevTouchY < 0 ) { // if( drawer.isOpened() == false ) { // drawer.animateOpen(); // } // } // else { // if( drawer.isOpened() == true ) { // drawer.animateClose(); // } // } // prevTouchY = event.getY(); // } // } // else if( event.getAction() == MotionEvent.ACTION_UP ) { // } return false; } public void OnSeeAllPhoto(View v) { Intent intent = new Intent(getActivity(), AlbumActivity.class); intent.putExtra("album", allPhotoAlbum); intent.putExtra("albumList", makeAlbumListForSpinner()); startActivity(intent); } public void OnSeeAlbum(View v) { String album_srl = v.getTag().toString(); for( int i = 1; i < albumList.size()-1; i++ ) { if( album_srl.equals(albumList.get(i).album_srl) ) { Intent intent = new Intent(getActivity(), AlbumActivity.class); intent.putExtra("album", albumList.get(i)); ArrayList<Album> albumListForMove = new ArrayList<Album>(); albumListForMove.add(albumList.get(0)); albumListForMove.addAll(makeAlbumListForSpinner()); intent.putExtra("albumList", albumListForMove); startActivityForResult(intent, 3); break; } } } public void OnSeeScrapAlbum(View v) { Intent intent = new Intent(getActivity(), AlbumActivity.class); intent.putExtra("album", albumList.get(albumList.size()-1)); intent.putExtra("albumList", makeAlbumListForSpinner()); startActivity(intent); } public void OnSeeTaggedPhoto(View v) { Intent intent = new Intent(getActivity(), AlbumActivity.class); intent.putExtra("album", taggedPhotoAlbum); intent.putExtra("albumList", makeAlbumListForSpinner()); startActivity(intent); } public void OnSettingClick(View v) { final String album_srl = v.getTag().toString(); ArrayAdapter<CharSequence> arrayAdapter = ArrayAdapter.createFromResource(getActivity(), R.array.gallery_albumsettingmode, android.R.layout.simple_list_item_1); ListView listView = new ListView(getActivity()); listView.setAdapter(arrayAdapter); listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE); final AlertDialog alert = new AlertDialog.Builder(getActivity()) .setTitle(getString(R.string.gallery_albumsetting)) .setView(listView).create(); listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View v, int position, long id) { Intent intent; switch(position) { case 0: Album tempAlbum = null; for( int i = 1; i < albumList.size()-1; i++ ) { if( album_srl.equals(albumList.get(i).album_srl) ) { tempAlbum = albumList.get(i); break; } } final EditText txt = new EditText(getActivity()); final Album album = tempAlbum; txt.setText(album.album_name); new AlertDialog.Builder(getActivity()) .setView(txt) .setMessage("������ ����ø �̸��� �Է��ϼ���") .setNegativeButton("���", null) .setPositiveButton("Ȯ��", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { GalleryFragment.this.request_Album_modAlbum(album_srl, txt.getText().toString(), SlidingMenuMaker.getProfile().member_srl); } }) .show(); break; case 1: for( int i = 1; i < albumList.size()-1; i++ ) { if( album_srl.equals(albumList.get(i).album_srl) ) { if(albumList.get(i).album_type.equals("D")) { new AlertDialog.Builder(getActivity()) .setMessage("�⺻ �ٹ��� ������ �� �����ϴ�.") .setPositiveButton("Ȯ��", null) .show(); } else { new AlertDialog.Builder(getActivity()) .setMessage("�ٹ��� �����ϸ� �ȿ� �ִ� ������ ���� �����˴ϴ�.\n���� �ѹ� ������ �ٹ��� ������ �Ұ����մϴ�.\n������ �����Ͻðڽ��ϱ�?") .setNegativeButton("���", null) .setPositiveButton("Ȯ��", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // albumList.add(new Album(""+albumList.size(), 1, txt.getText().toString(), true)); // adapter = new GalleryAdapter(albumList, getActivity(), sizeOfView); // gridView.setExpanded(true); // gridView.setAdapter(adapter); GalleryFragment.this.request_Album_delAlbum(album_srl, SlidingMenuMaker.getProfile().member_srl); } }) .show(); } break; } } break; } alert.dismiss(); } }); alert.show(); } private void requestAlbumData() { albumList.clear(); getPhotoCounter = 0; numOfScrappedPhoto = 0; getPhotosCounter = 0; isGetMemberPhotosResponded = false; isGetMemberTaggedPhotosResponded = false; GalleryFragment.this.request_Album_getAlbums(SlidingMenuMaker.getProfile().member_srl); } private boolean isAllResponsesArrived() { if( getPhotosCounter == albumList.size()-2 && getPhotoCounter == numOfScrappedPhoto && isGetMemberPhotosResponded && isGetMemberTaggedPhotosResponded ) { Intent intent; switch(requestModeFromNewsfeed) { case 1: intent = new Intent(getActivity(), SimpleCamera.class); startActivityForResult(intent, 0); requestModeFromNewsfeed = 0; break; case 2: intent = new Intent(getActivity(), GetAlbumFromLocalActivity.class); startActivityForResult(intent, 1); requestModeFromNewsfeed = 0; break; } return true; } return false; } private void refreshDataSet() { new Thread(new Runnable() { @Override public void run() { GalleryFragment.this.getActivity().runOnUiThread(new Runnable(){ @Override public void run() { adapter.notifyDataSetChanged(); ((TextView)layout.findViewById(R.id.gallery_seeallphoto_name)).setText(getString(R.string.gallery_seeallphoto) + " (" + allPhotoAlbum.photoList.size() + ")"); ImageView image; if( allPhotoAlbum.photoList.size() != 0) { image = (ImageView) layout.findViewById(R.id.gallery_seeallphoto_image); imageLoader.DisplayImage(getString(R.string.image_url)+allPhotoAlbum.photoList.get(allPhotoAlbum.photoList.size()-1).photo_path, image); } if( taggedPhotoAlbum.photoList.size() != 0 ) { image = (ImageView) layout.findViewById(R.id.gallery_seetaggedphoto_image); imageLoader.DisplayImage(getString(R.string.image_url)+taggedPhotoAlbum.photoList.get(taggedPhotoAlbum.photoList.size()-1).photo_path, image); } } }); } }).start(); } @Override public void response(String uri, String response) { try { if( response.isEmpty() ) return; JSONObject jsonObj = new JSONObject(response); String result = jsonObj.getString("result"); if( result.equals("OK") ) { if(uri.equals("Album/getAlbums")) { String nativeData = jsonObj.getString("data"); JSONArray dataArray = new JSONArray(nativeData); albumList.add(new Album(ALBUMTYPE.NEW, "", "", getResources().getString(R.string.make_new_album), "", "", "", "")); for(int i = 0; i < dataArray.length(); i++) { String album_srl = dataArray.getJSONObject(i).getString("album_srl"); String album_member_srl = dataArray.getJSONObject(i).getString("album_member_srl"); String album_name = dataArray.getJSONObject(i).getString("album_name"); String album_type = dataArray.getJSONObject(i).getString("album_type"); String album_created = dataArray.getJSONObject(i).getString("album_created"); String album_updated = dataArray.getJSONObject(i).getString("album_updated"); String album_count = dataArray.getJSONObject(i).getString("album_count"); albumList.add(new Album(ALBUMTYPE.NORMAL, album_srl, album_member_srl, album_name, album_type, album_created, album_updated, album_count)); GalleryFragment.this.request_Album_getPhotos(album_srl, SlidingMenuMaker.getProfile().member_srl, 1, 10000); } albumList.add(new Album(ALBUMTYPE.SCRAP, "", "", getResources().getString(R.string.scrap_album), "", "", "", "")); allPhotoAlbum = new Album(ALBUMTYPE.ALL, "", "", getResources().getString(R.string.gallery_seeallphoto), "", "", "", ""); taggedPhotoAlbum = new Album(ALBUMTYPE.TAGGED, "", "", getResources().getString(R.string.tagged_album), "", "", "", ""); switch(SlidingMenuMaker.getProfile().member_type.charAt(0)) { case 'P': GalleryFragment.this.request_Album_getMemberPhotos(SlidingMenuMaker.getProfile().getCurrentChildren().student_member_srl, 1, 10000); GalleryFragment.this.request_Scrap_getScraps(SlidingMenuMaker.getProfile().getCurrentChildren().student_member_srl, 1, 10000, "P"); GalleryFragment.this.request_Album_getMemberTaggedPhotos(SlidingMenuMaker.getProfile().getCurrentChildren().student_member_srl, 1, 10000); break; case 'T': case 'M': GalleryFragment.this.request_Album_getMemberPhotos(SlidingMenuMaker.getProfile().member_srl, 1, 10000); GalleryFragment.this.request_Scrap_getScraps(SlidingMenuMaker.getProfile().member_srl, 1, 10000, "P"); GalleryFragment.this.request_Album_getMemberTaggedPhotos(SlidingMenuMaker.getProfile().member_srl, 1, 10000); break; } refreshDataSet(); } else if(uri.equals("Album/setAlbum")) { String nativeData = jsonObj.getString("data"); jsonObj = new JSONObject(nativeData); String album_srl = jsonObj.getString("album_srl"); String album_member_srl = jsonObj.getString("album_member_srl"); String album_name = jsonObj.getString("album_name"); String album_type = jsonObj.getString("album_type"); String album_created = jsonObj.getString("album_created"); String album_updated = jsonObj.getString("album_updated"); String album_count = jsonObj.getString("album_count"); albumList.add(albumList.size()-1, new Album(ALBUMTYPE.NORMAL, album_srl, album_member_srl, album_name, album_type, album_created, album_updated, album_count)); refreshDataSet(); } else if(uri.equals("Album/modAlbum")) { String nativeData = jsonObj.getString("data"); jsonObj = new JSONObject(nativeData); String album_srl = jsonObj.getString("album_srl"); String album_member_srl = jsonObj.getString("album_member_srl"); String album_name = jsonObj.getString("album_name"); String album_type = jsonObj.getString("album_type"); String album_created = jsonObj.getString("album_created"); String album_updated = jsonObj.getString("album_updated"); String album_count = jsonObj.getString("album_count"); for( int i = 1; i < albumList.size()-1; i++ ) { if( album_srl.equals(albumList.get(i).album_srl) ) { albumList.get(i).album_name = album_name; refreshDataSet(); break; } } } else if(uri.equals("Album/delAlbum")) { String nativeData = jsonObj.getString("data"); jsonObj = new JSONObject(nativeData); String album_srl = jsonObj.getString("album_srl"); String album_member_srl = jsonObj.getString("album_member_srl"); String album_name = jsonObj.getString("album_name"); String album_type = jsonObj.getString("album_type"); String album_created = jsonObj.getString("album_created"); String album_updated = jsonObj.getString("album_updated"); String album_count = jsonObj.getString("album_count"); for( int i = 1; i < albumList.size()-1; i++ ) { if( album_srl.equals(albumList.get(i).album_srl) ) { albumList.remove(i); refreshDataSet(); break; } } } else if(uri.equals("Album/getMemberPhotos")) { String nativeData = jsonObj.getString("data"); JSONArray dataArray = new JSONArray(nativeData); allPhotoAlbum.photoList.clear(); for(int i = 0; i < dataArray.length(); i++) { String photo_srl = dataArray.getJSONObject(i).getString("photo_srl"); String photo_member_srl = dataArray.getJSONObject(i).getString("photo_member_srl"); String photo_album_srl = dataArray.getJSONObject(i).getString("photo_album_srl"); String photo_timeline_srl = dataArray.getJSONObject(i).getString("photo_timeline_srl"); String photo_tag = dataArray.getJSONObject(i).getString("photo_tag"); String photo_path = dataArray.getJSONObject(i).getString("photo_path"); String photo_thumbnail = photo_path.substring(0, photo_path.length()-4 ) + "_96x96.png"; String photo_like = dataArray.getJSONObject(i).getString("photo_like"); String photo_private = dataArray.getJSONObject(i).getString("photo_private"); String photo_created = dataArray.getJSONObject(i).getString("photo_created"); String photo_updated = dataArray.getJSONObject(i).getString("photo_updated"); if( photo_album_srl.isEmpty() == false) allPhotoAlbum.photoList.add(new Photo(photo_srl, photo_member_srl, photo_album_srl, photo_timeline_srl, photo_tag, photo_path, photo_thumbnail, photo_like, photo_private, photo_created, photo_updated)); } isGetMemberPhotosResponded = true; if( isAllResponsesArrived() ) refreshDataSet(); } else if(uri.equals("Album/getMemberTaggedPhotos")) { String nativeData = jsonObj.getString("data"); JSONArray dataArray = new JSONArray(nativeData); taggedPhotoAlbum.photoList.clear(); for(int i = 0; i < dataArray.length(); i++) { String photo_srl = dataArray.getJSONObject(i).getString("photo_srl"); String photo_member_srl = dataArray.getJSONObject(i).getString("photo_member_srl"); String photo_album_srl = dataArray.getJSONObject(i).getString("photo_album_srl"); String photo_timeline_srl = dataArray.getJSONObject(i).getString("photo_timeline_srl"); String photo_tag = dataArray.getJSONObject(i).getString("photo_tag"); String photo_path = dataArray.getJSONObject(i).getString("photo_path"); String photo_thumbnail = photo_path.substring(0, photo_path.length()-4 ) + "_96x96.png"; String photo_like = dataArray.getJSONObject(i).getString("photo_like"); String photo_private = dataArray.getJSONObject(i).getString("photo_private"); String photo_created = dataArray.getJSONObject(i).getString("photo_created"); String photo_updated = dataArray.getJSONObject(i).getString("photo_updated"); taggedPhotoAlbum.photoList.add(new Photo(photo_srl, photo_member_srl, photo_album_srl, photo_timeline_srl, photo_tag, photo_path, photo_thumbnail, photo_like, photo_private, photo_created, photo_updated)); } isGetMemberTaggedPhotosResponded = true; if( isAllResponsesArrived() ) refreshDataSet(); } else if(uri.equals("Album/getPhotos")) { String nativeData = jsonObj.getString("data"); JSONArray dataArray = new JSONArray(nativeData); String album_srl = ""; ArrayList<Photo> photoList = new ArrayList<Photo>(); for(int i = 0; i < dataArray.length(); i++) { String photo_srl = dataArray.getJSONObject(i).getString("photo_srl"); String photo_member_srl = dataArray.getJSONObject(i).getString("photo_member_srl"); String photo_album_srl = dataArray.getJSONObject(i).getString("photo_album_srl"); String photo_timeline_srl = dataArray.getJSONObject(i).getString("photo_timeline_srl"); String photo_tag = dataArray.getJSONObject(i).getString("photo_tag"); String photo_path = dataArray.getJSONObject(i).getString("photo_path"); String photo_thumbnail = photo_path.substring(0, photo_path.length()-4 ) + "_96x96.png"; String photo_like = dataArray.getJSONObject(i).getString("photo_like"); String photo_private = dataArray.getJSONObject(i).getString("photo_private"); String photo_created = dataArray.getJSONObject(i).getString("photo_created"); String photo_updated = dataArray.getJSONObject(i).getString("photo_updated"); if(photo_album_srl.contains(",")) album_srl = photo_album_srl.split(",")[0]; else album_srl = photo_album_srl; photoList.add(new Photo(photo_srl, photo_member_srl, photo_album_srl, photo_timeline_srl, photo_tag, photo_path, photo_thumbnail, photo_like, photo_private, photo_created, photo_updated)); } if(photoList.size() != 0 ) { int index = -1; for(int i = 1; i < albumList.size()-1; i++) { if(album_srl.equals(albumList.get(i).album_srl)) { albumList.get(i).photoList.clear(); albumList.get(i).photoList.addAll(photoList); break; } } } getPhotosCounter++; if( isAllResponsesArrived() ) refreshDataSet(); } else if(uri.equals("Scrap/getScraps")) { String nativeData = jsonObj.getString("data"); JSONArray dataArray = new JSONArray(nativeData); for(int i = 0; i < dataArray.length(); i++) { String scrap_srl = dataArray.getJSONObject(i).getString("scrap_srl"); String scrap_member_srl = dataArray.getJSONObject(i).getString("scrap_member_srl"); String scrap_type = dataArray.getJSONObject(i).getString("scrap_type"); String scrap_target_srl = dataArray.getJSONObject(i).getString("scrap_target_srl"); String scrap_created = dataArray.getJSONObject(i).getString("scrap_created"); GalleryFragment.this.request_Album_getPhoto(scrap_target_srl); } numOfScrappedPhoto = dataArray.length(); if( numOfScrappedPhoto == 0 && isAllResponsesArrived() ) refreshDataSet(); } else if(uri.equals("Album/getPhoto")) { String nativeData = jsonObj.getString("data"); jsonObj = new JSONObject(nativeData); String photo_srl = jsonObj.getString("photo_srl"); String photo_member_srl = jsonObj.getString("photo_member_srl"); String photo_album_srl = jsonObj.getString("photo_album_srl"); String photo_timeline_srl = jsonObj.getString("photo_timeline_srl"); String photo_tag = jsonObj.getString("photo_tag"); String photo_path = jsonObj.getString("photo_path"); String photo_thumbnail = photo_path.substring(0, photo_path.length()-4 ) + "_96x96.png"; String photo_like = jsonObj.getString("photo_like"); String photo_private = jsonObj.getString("photo_private"); String photo_created = jsonObj.getString("photo_created"); String photo_updated = jsonObj.getString("photo_updated"); albumList.get(albumList.size()-1).photoList.add(new Photo(photo_srl, photo_member_srl, photo_album_srl, photo_timeline_srl, photo_tag, photo_path, photo_thumbnail, photo_like, photo_private, photo_created, photo_updated)); getPhotoCounter++; if( isAllResponsesArrived() ) refreshDataSet(); } } else { } } catch(JSONException e) { StringWriter errors = new StringWriter(); e.printStackTrace(new PrintWriter(errors)); String s = errors.toString(); System.out.println(s); } } }