package typical_if.android; import android.content.SharedPreferences; import android.preference.PreferenceManager; import android.text.Editable; import com.vk.sdk.api.VKApi; import com.vk.sdk.api.VKParameters; import com.vk.sdk.api.VKRequest; import com.vk.sdk.api.VKResponse; import com.vk.sdk.api.model.VKApiComment; import com.vk.sdk.api.model.VKApiCommunity; import com.vk.sdk.api.model.VKApiPhoto; import com.vk.sdk.api.model.VKApiPhotoAlbum; import com.vk.sdk.api.model.VKApiPoll; import com.vk.sdk.api.model.VKApiUser; import com.vk.sdk.api.model.VKApiVideo; import com.vk.sdk.api.model.VKAttachments; import com.vk.sdk.api.model.VKPostArray; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import java.util.ArrayList; import typical_if.android.model.Wall.VKWallPostWrapper; import typical_if.android.model.Wall.Wall; /** * Created by admin on 17.07.2014. */ public class VKHelper { // SOME VK SDK KEYS public static final String TIF_VK_SDK_KEY_POST = "post"; public static final String TIF_VK_SDK_KEY_PHOTO = "photo"; public static final String TIF_VK_SDK_KEY_OWNER_ID = "owner_id"; public static final String TIF_VK_SDK_KEY_DOMAIN = "domain"; public static final String TIF_VK_SDK_KEY_OFFSET = "offset"; public static final String TIF_VK_SDK_KEY_COUNT = "count"; public static final String TIF_VK_SDK_KEY_FILTER = "filter"; public static final String TIF_VK_SDK_KEY_ALL = "all"; public static final String TIF_VK_SDK_KEY_EXTENDED = "extended"; public static final String TIF_VK_SDK_KEY_ALBUM_ID = "album_id"; public static final String TIF_VK_SDK_KEY_COMMENT_ID = "comment_id"; public static final String TIF_VK_SDK_KEY_GROUP_ID = "group_id"; public static final String TIF_VK_SDK_KEY_ITEM_ID = "item_id"; public static final String TIF_VK_SDK_KEY_POST_ID = "post_id"; public static final String TIF_VK_SDK_KEY_POLL_ID = "poll_id"; public static final String TIF_VK_SDK_KEY_ANSWER_ID = "answer_id"; public static final String TIF_VK_SDK_KEY_REV = "rev"; public static final String TIF_VK_SDK_KEY_MESSAGE = "message"; public static final String TIF_VK_SDK_KEY_ATTACHMENTS = "attachments"; public static final String TIF_VK_SDK_KEY_NEED_COVERS = "need_covers"; public static final String TIF_VK_SDK_KEY_PHOTO_SIZES = "photo_sizes"; public static final String TIF_VK_SDK_KEY_RESPONSE = "response"; public static final String TIF_VK_SDK_KEY_ITEMS = "items"; public static final String TIF_VK_SDK_KEY_PROFILES = "profiles"; public static final String TIF_VK_SDK_KEY_GROUPS = "groups"; public static final String TIF_VK_SDK_KEY_TYPE = "type"; public static final String TIF_VK_SDK_KEY_IS_BOARD = "is_board"; public static final String TIF_VK_SDK_KEY_OWNERS_ONLY = "owners_only"; public static final String TIF_VK_SDK_KEY_QWERY = "query"; public static int offsetCounter; public static void getAlbumList(long groupID, VKRequestListener listener) { VKParameters params = new VKParameters(); params.put(TIF_VK_SDK_KEY_OWNER_ID, groupID); params.put(TIF_VK_SDK_KEY_NEED_COVERS, 1); params.put(TIF_VK_SDK_KEY_PHOTO_SIZES, 1); final VKRequest request = new VKRequest("photos.getAlbums", params); request.executeWithListener(listener); } public static void getPhotoList(long owner_id, long album_id, int rev, int count, VKRequestListener listener) { VKParameters params = new VKParameters(); if (offsetCounter == 0) { if (count == 0) { params.put(TIF_VK_SDK_KEY_OWNER_ID, owner_id); params.put(TIF_VK_SDK_KEY_ALBUM_ID, album_id); params.put(TIF_VK_SDK_KEY_REV, rev); params.put(TIF_VK_SDK_KEY_EXTENDED, 1); params.put(TIF_VK_SDK_KEY_OFFSET, 0); } else { params.put(TIF_VK_SDK_KEY_OWNER_ID, owner_id); params.put(TIF_VK_SDK_KEY_ALBUM_ID, album_id); params.put(TIF_VK_SDK_KEY_REV, rev); params.put(TIF_VK_SDK_KEY_EXTENDED, 1); params.put(TIF_VK_SDK_KEY_OFFSET, 0); params.put(TIF_VK_SDK_KEY_COUNT, count); } } else { int offset = offsetCounter * 50; params.put(TIF_VK_SDK_KEY_OWNER_ID, owner_id); params.put(TIF_VK_SDK_KEY_ALBUM_ID, album_id); params.put(TIF_VK_SDK_KEY_REV, rev); params.put(TIF_VK_SDK_KEY_EXTENDED, 1); params.put(TIF_VK_SDK_KEY_OFFSET, String.valueOf(offset)); params.put(TIF_VK_SDK_KEY_COUNT, 100); } offsetCounter++; offsetCounter++; final VKRequest request = new VKRequest("photos.get", params); request.executeWithListener(listener); } public static void editSuggestedPost(long gid, long pid, Editable message, String attachments, VKRequestListener vkRequestListener) { VKParameters params = new VKParameters(); params.put(TIF_VK_SDK_KEY_POST_ID, pid); params.put(TIF_VK_SDK_KEY_OWNER_ID, gid); params.put(TIF_VK_SDK_KEY_MESSAGE, message); params.put(TIF_VK_SDK_KEY_ATTACHMENTS, attachments); final VKRequest request = new VKRequest("wall.edit", params); request.executeWithListener(vkRequestListener); } public static void deleteSuggestedPost(long gid, long pid, VKRequestListener vkRequestListener) { VKParameters params = new VKParameters(); params.put(TIF_VK_SDK_KEY_POST_ID, pid); params.put(TIF_VK_SDK_KEY_OWNER_ID, gid); final VKRequest request = new VKRequest("wall.delete", params); request.executeWithListener(vkRequestListener); } public static void getSuggestedPosts(long gid, VKRequestListener vkRequestListener) { VKParameters params = new VKParameters(); params.put(TIF_VK_SDK_KEY_OWNER_ID, gid); params.put(TIF_VK_SDK_KEY_DOMAIN, gid); params.put(TIF_VK_SDK_KEY_OFFSET, 0); params.put(TIF_VK_SDK_KEY_COUNT, 100); params.put(TIF_VK_SDK_KEY_FILTER, "suggests"); params.put(TIF_VK_SDK_KEY_EXTENDED, 1); final VKRequest request = VKApi.wall().get(params); request.executeWithListener(vkRequestListener); } public static void doGroupWallRequest(int offset, int countPosts, long gid, VKRequestListener vkRequestListener) { VKParameters params = new VKParameters(); params.put(TIF_VK_SDK_KEY_OWNER_ID, gid); params.put(TIF_VK_SDK_KEY_DOMAIN, gid); params.put(TIF_VK_SDK_KEY_OFFSET, offset); params.put(TIF_VK_SDK_KEY_COUNT, countPosts); params.put(TIF_VK_SDK_KEY_FILTER, TIF_VK_SDK_KEY_ALL); params.put(TIF_VK_SDK_KEY_EXTENDED, 1); final VKRequest request = VKApi.wall().get(params); request.executeWithListener(vkRequestListener); } public static void setLikePost(long item_id, VKRequestListener listener) { setLike(TIF_VK_SDK_KEY_POST, OfflineMode.loadLong(Constants.VK_GROUP_ID), item_id, listener); } public static void setLikePost(long owner_id, long item_id, VKRequestListener listener) { setLike(TIF_VK_SDK_KEY_POST, owner_id, item_id, listener); } public static void setLike(String type, long owner_id, long item_id, VKRequestListener listener) { VKParameters params = new VKParameters(); params.put(TIF_VK_SDK_KEY_TYPE, type); params.put(TIF_VK_SDK_KEY_OWNER_ID, owner_id); params.put(TIF_VK_SDK_KEY_ITEM_ID, item_id); final VKRequest request = new VKRequest("likes.add", params); request.executeWithListener(listener); } public static void deleteLikePost(long item_id, VKRequestListener listener) { deleteLike(TIF_VK_SDK_KEY_POST, OfflineMode.loadLong(Constants.VK_GROUP_ID), item_id, listener); } public static void deleteLike(String type, long owner_id, long item_id, VKRequestListener listener) { VKParameters params = new VKParameters(); params.put(TIF_VK_SDK_KEY_TYPE, type); params.put(TIF_VK_SDK_KEY_OWNER_ID, owner_id); params.put(TIF_VK_SDK_KEY_ITEM_ID, item_id); final VKRequest request = new VKRequest("likes.delete", params); request.executeWithListener(listener); } public static void isLikedPhoto(long item_id, VKRequestListener listener) { isLiked(TIF_VK_SDK_KEY_PHOTO, OfflineMode.loadLong(Constants.VK_GROUP_ID), item_id, listener); } public static void isLiked(String type, long owner_id, long item_id, VKRequestListener listener) { VKParameters params = new VKParameters(); //params.put("user_id",user_id ); params.put(TIF_VK_SDK_KEY_TYPE, type); params.put(TIF_VK_SDK_KEY_OWNER_ID, owner_id); params.put(TIF_VK_SDK_KEY_ITEM_ID, item_id); final VKRequest request = new VKRequest("likes.isLiked", params); request.executeWithListener(listener); } public static void getPollById(long owner_id, int is_board, long poll_id, VKRequestListener listener) { VKParameters params = new VKParameters(); params.put(TIF_VK_SDK_KEY_OWNER_ID, owner_id); params.put(TIF_VK_SDK_KEY_IS_BOARD, is_board); params.put(TIF_VK_SDK_KEY_POLL_ID, poll_id); final VKRequest request = new VKRequest("polls.getById", params); request.executeWithListener(listener); } public static VKApiPoll getVKApiPollFromJSON(JSONObject response) throws NullPointerException { // if (response!=null){ VKApiPoll poll = new VKApiPoll().parse(response); return poll; // } // else return null; } public static void addVote(long owner_id, long poll_id, long answer_id, int is_board, VKRequestListener listener) { VKParameters params = new VKParameters(); params.put(TIF_VK_SDK_KEY_OWNER_ID, owner_id); params.put(TIF_VK_SDK_KEY_POLL_ID, poll_id); params.put(TIF_VK_SDK_KEY_ANSWER_ID, answer_id); params.put(TIF_VK_SDK_KEY_IS_BOARD, is_board); final VKRequest request = new VKRequest("polls.addVote", params); request.executeWithListener(listener); } public static void deleteVote(long owner_id, long poll_id, long answer_id, int is_board, VKRequestListener listener ) { VKParameters params = new VKParameters(); params.put(TIF_VK_SDK_KEY_OWNER_ID,owner_id); params.put(TIF_VK_SDK_KEY_POLL_ID,poll_id); params.put(TIF_VK_SDK_KEY_ANSWER_ID,answer_id); params.put(TIF_VK_SDK_KEY_IS_BOARD,is_board); final VKRequest request = new VKRequest("polls.deleteVote", params); request.executeWithListener(listener); } public static void getUserAudios(VKRequestListener vkRequestListener) { VKParameters params = new VKParameters(); params.put(TIF_VK_SDK_KEY_OWNER_ID, Constants.USER_ID); final VKRequest request = new VKRequest("audio.get", params); request.executeWithListener(vkRequestListener); } public static void getUserVideos(VKRequestListener vkRequestListener) { VKParameters params = new VKParameters(); params.put(TIF_VK_SDK_KEY_OWNER_ID, Constants.USER_ID); final VKRequest request = new VKRequest("video.get", params); request.executeWithListener(vkRequestListener); } public static void getUserDocs(VKRequestListener vkRequestListener) { VKParameters params = new VKParameters(); params.put(TIF_VK_SDK_KEY_OWNER_ID, Constants.USER_ID); final VKRequest request = new VKRequest("docs.get", params); request.executeWithListener(vkRequestListener); } public static void doRepost(String pid, String message, VKRequestListener listener) { VKParameters params = new VKParameters(); params.put("object", pid); params.put(TIF_VK_SDK_KEY_MESSAGE, message); final VKRequest request = new VKRequest("wall.repost", params); request.executeWithListener(listener); } public static void doReportPost(long oid, long pid, int reason, VKRequestListener listener) { VKParameters params = new VKParameters(); params.put(TIF_VK_SDK_KEY_OWNER_ID, oid); params.put(TIF_VK_SDK_KEY_POST_ID, pid); params.put("reason", reason); final VKRequest request = new VKRequest("wall.reportPost", params); request.executeWithListener(listener); } public static void getComments(long owner_id, long item_id, VKRequestListener listener) { VKParameters params = new VKParameters(); params.put(TIF_VK_SDK_KEY_OWNER_ID, owner_id); params.put(Constants.PARAM_NAME2, item_id); params.put("need_likes", 1); params.put(TIF_VK_SDK_KEY_OFFSET, 0); params.put(TIF_VK_SDK_KEY_COUNT, 100); params.put("sort", "desc"); params.put("access_key", ""); params.put(TIF_VK_SDK_KEY_EXTENDED, 1); final VKRequest request = new VKRequest(Constants.GET_COMMENTS_METHOD_NAME, params); request.executeWithListener(listener); } public static JSONArray[] getResponseArrayOfComment(JSONObject response) { JSONArray[] array = new JSONArray[3]; array[0] = response.optJSONObject(TIF_VK_SDK_KEY_RESPONSE).optJSONArray(TIF_VK_SDK_KEY_ITEMS); array[1] = response.optJSONObject(TIF_VK_SDK_KEY_RESPONSE).optJSONArray(TIF_VK_SDK_KEY_PROFILES); array[2] = response.optJSONObject(TIF_VK_SDK_KEY_RESPONSE).optJSONArray(TIF_VK_SDK_KEY_GROUPS); return array; } public static void deleteComment(long owner_id, long item_id, VKRequestListener listener) { VKParameters params = new VKParameters(); params.put(TIF_VK_SDK_KEY_OWNER_ID, owner_id); params.put(TIF_VK_SDK_KEY_COMMENT_ID, item_id); final VKRequest request = new VKRequest(Constants.DELETE_COMMENT_METHOD_NAME, params); request.executeWithListener(listener); } public static void createComment(long owner_id, long item_id, String message, int reply_to_comment, VKRequestListener listener) { VKParameters params = new VKParameters(); params.put(TIF_VK_SDK_KEY_OWNER_ID, owner_id); params.put(Constants.PARAM_NAME2, item_id); params.put(Constants.PARAM_NAME, message); params.put("reply_to_comment", reply_to_comment); final VKRequest request = new VKRequest(Constants.CREATE_COMMENT_METHOD_NAME, params); request.executeWithListener(listener); } public static void editComment(long owner_id, long comment_id, String message, VKAttachments.VKApiAttachment attachments, VKRequestListener listener) { VKParameters params = new VKParameters(); params.put(TIF_VK_SDK_KEY_OWNER_ID, owner_id); params.put(TIF_VK_SDK_KEY_COMMENT_ID, comment_id); params.put(TIF_VK_SDK_KEY_MESSAGE, message); params.put(TIF_VK_SDK_KEY_ATTACHMENTS, attachments); final VKRequest request = new VKRequest(Constants.EDIT_COMMENT_METHOD_NAME, params); request.executeWithListener(listener); } public static ArrayList<VKApiComment> getCommentsFromJSON(JSONArray arrayOfComments) { final ArrayList<VKApiComment> comments = new ArrayList<VKApiComment>(); for (int i = 0; i < arrayOfComments.length(); i++) { VKApiComment comment1 = new VKApiComment(); final VKApiComment comment = comment1.parse(arrayOfComments.optJSONObject(i)); comments.add(comment); } return comments; } public static void getMyselfInfo(VKRequestListener listener) { VKParameters params = new VKParameters(); params.put("fields", "photo_100"); final VKRequest request = new VKRequest("users.get", params); request.executeWithListener(listener); } public static void getWhoIsPosted(long user_id, String fields, VKRequestListener listener) { VKParameters params = new VKParameters(); params.put("user_ids", user_id); params.put("fields", fields); final VKRequest request = new VKRequest("users.get", params); request.executeWithListener(listener); } public static void doWallPost(long owner_id, Editable message, String attachments, VKRequestListener vkRequestListener) { VKParameters params = new VKParameters(); params.put(TIF_VK_SDK_KEY_OWNER_ID, owner_id); params.put(TIF_VK_SDK_KEY_MESSAGE, message); params.put(TIF_VK_SDK_KEY_ATTACHMENTS, attachments); final VKRequest request = new VKRequest("wall.post", params); request.executeWithListener(vkRequestListener); } public static void getVideoPlay(String videos, VKRequestListener vkRequestListener) { VKParameters params = new VKParameters(); params.put("videos", videos); params.put(TIF_VK_SDK_KEY_EXTENDED, 1); final VKRequest request = new VKRequest("video.get", params); request.executeWithListener(vkRequestListener); } public static void getPhotoByID(String photos, VKRequestListener listener) { VKParameters params = new VKParameters(); params.put("photos", photos); params.put(TIF_VK_SDK_KEY_EXTENDED, 1); final VKRequest request = new VKRequest("photos.getById", params); request.executeWithListener(listener); } public static ArrayList<VKApiPhotoAlbum> getAlbumFromJSONArray(JSONObject jsonArray) { JSONObject object = jsonArray.optJSONObject(TIF_VK_SDK_KEY_RESPONSE); JSONArray array = object.optJSONArray(TIF_VK_SDK_KEY_ITEMS); final ArrayList<VKApiPhotoAlbum> albums = new ArrayList<VKApiPhotoAlbum>(); for (int i = 0; i < array.length(); i++) { final VKApiPhotoAlbum album = new VKApiPhotoAlbum().parse(array.optJSONObject(i)); albums.add(album); } return albums; } public static ArrayList<VKApiUser> getProfilesFromJSONArray(JSONArray array) { final ArrayList<VKApiUser> profiles = new ArrayList<VKApiUser>(); for (int i = 0; i < array.length(); i++) { final VKApiUser profile = new VKApiUser().parse(array.optJSONObject(i)); profiles.add(profile); } return profiles; } public static ArrayList<VKApiCommunity> getGroupsFromJSONArray(JSONArray array) { final ArrayList<VKApiCommunity> groups = new ArrayList<VKApiCommunity>(); for (int i = 0; i < array.length(); i++) { final VKApiCommunity community = new VKApiCommunity().parse(array.optJSONObject(i)); groups.add(community); } return groups; } public static VKApiPhoto getPhotoFromJSONArray(JSONObject jsonObject) throws JSONException { JSONArray array = jsonObject.optJSONArray(TIF_VK_SDK_KEY_RESPONSE); JSONObject o = (JSONObject) array.get(0); VKApiPhoto photo = new VKApiPhoto().parse(o); return photo; } public static VKApiVideo getVideoSourceFromJson(JSONObject object) { JSONObject response = object.optJSONObject(TIF_VK_SDK_KEY_RESPONSE); JSONArray items = response.optJSONArray(TIF_VK_SDK_KEY_ITEMS); JSONObject video_object = null; try { video_object = items.getJSONObject(0); } catch (JSONException e) { } if (video_object != null) { VKApiVideo video = new VKApiVideo().parse(video_object); return video; } else return null; } public static ArrayList<VKApiPhoto> getPhotosFromJSONArray(JSONObject jsonArray) { JSONObject object = jsonArray.optJSONObject(TIF_VK_SDK_KEY_RESPONSE); try { countOfPhotos = object.getInt(TIF_VK_SDK_KEY_COUNT); } catch (Exception e) { } JSONArray array = object.optJSONArray(TIF_VK_SDK_KEY_ITEMS); final ArrayList<VKApiPhoto> photos = new ArrayList<VKApiPhoto>(); for (int i = 0; i < array.length(); i++) { final VKApiPhoto photo = new VKApiPhoto().parse(array.optJSONObject(i)); photos.add(photo); } return photos; } public static int countOfPhotos; public static ArrayList<VKApiPhoto> getPhotosByIdFromJSON(JSONObject json) { JSONArray array = json.optJSONArray(TIF_VK_SDK_KEY_RESPONSE); try { countOfPhotos = json.getInt(TIF_VK_SDK_KEY_COUNT); } catch (JSONException e) { e.printStackTrace(); // Log.i(VKHelper.class.getSimpleName(),json.toString()); } final ArrayList<VKApiPhoto> photos = new ArrayList<VKApiPhoto>(); for (int i = 0; i < array.length(); i++) { final VKApiPhoto photo = new VKApiPhoto().parse(array.optJSONObject(i)); photos.add(photo); } return photos; } public static void isMember(long gid, VKRequestListener vkRequestListener) { VKParameters params = new VKParameters(); params.put(TIF_VK_SDK_KEY_GROUP_ID, gid); final VKRequest request = new VKRequest("groups.isMember", params); request.executeWithListener(vkRequestListener); } public static void exec(VKRequestListener vkRequestListener) { VKParameters params = new VKParameters(); final VKRequest request = new VKRequest("https://api.vk.com/method/execute.winTheGame", params); request.executeWithListener(vkRequestListener); } public static void groupJoin(long gid, VKRequestListener vkRequestListener) { VKParameters params = new VKParameters(); params.put(TIF_VK_SDK_KEY_GROUP_ID, gid); final VKRequest request = new VKRequest("groups.join", params); request.executeWithListener(vkRequestListener); } public static void groupLeave(long gid, VKRequestListener vkRequestListener) { VKParameters params = new VKParameters(); params.put(TIF_VK_SDK_KEY_GROUP_ID, gid); final VKRequest request = new VKRequest("groups.leave", params); request.executeWithListener(vkRequestListener); } public static void doGroupWallRequest(int extended, int offset, int countPosts, long gid, VKRequestListener vkRequestListener) { VKParameters params = new VKParameters(); params.put(TIF_VK_SDK_KEY_OWNER_ID, gid); params.put(TIF_VK_SDK_KEY_DOMAIN, gid); params.put(TIF_VK_SDK_KEY_OFFSET, offset); params.put(TIF_VK_SDK_KEY_COUNT, countPosts); params.put(TIF_VK_SDK_KEY_FILTER, TIF_VK_SDK_KEY_ALL); params.put(TIF_VK_SDK_KEY_EXTENDED, extended); final VKRequest request = VKApi.wall().get(params); request.executeWithListener(vkRequestListener); } public static void searchWall(String query, int extended, int offset, int countPosts, long gid, VKRequestListener vkRequestListener) { VKParameters params = new VKParameters(); params.put(TIF_VK_SDK_KEY_OWNER_ID, gid); params.put(TIF_VK_SDK_KEY_DOMAIN, gid); params.put(TIF_VK_SDK_KEY_OFFSET, offset); params.put(TIF_VK_SDK_KEY_COUNT, countPosts); params.put(TIF_VK_SDK_KEY_EXTENDED, extended); params.put(TIF_VK_SDK_KEY_OWNERS_ONLY, 0); params.put(TIF_VK_SDK_KEY_QWERY, query); final VKRequest request = new VKRequest("wall.search", params); request.executeWithListener(vkRequestListener); } public static Wall getGroupWallFromJSON(final JSONObject jsonObject) { final Wall wall = new Wall(); final JSONObject object = jsonObject.optJSONObject(Wall.JSON_KEY_RESPONSE); wall.count = object.optInt(Wall.JSON_KEY_COUNT); // groups final JSONArray groups = object.optJSONArray(Wall.JSON_KEY_GROUPS); VKApiCommunity group; VKApi.users().get(); for (int i = 0; i < groups.length(); i++) { group = new VKApiCommunity().parse(groups.optJSONObject(i)); wall.groups.add(group); } wall.group = new VKApiCommunity().parse(groups.optJSONObject(0)); // profiles wall.profiles = getProfilesFromJSONArray(object.optJSONArray(Wall.JSON_KEY_PROFILES)); // items final VKPostArray posts = new VKPostArray(); try { posts.parse(jsonObject); } catch (JSONException e) { } ArrayList<VKWallPostWrapper> wallPosts = new ArrayList<VKWallPostWrapper>(); for (int i = 0; i < posts.size(); i++) { wallPosts.add(new VKWallPostWrapper(posts.get(i), wall)); } wall.posts = wallPosts; return wall; } public static String TIF_VK_API_KEY_RESPONSE = TIF_VK_SDK_KEY_RESPONSE; public static class UserObject { public long id; public String photo; public String fullName; public UserObject(long id, String photo, String fullName) { this.id = id; this.photo = photo; this.fullName = fullName; setUserToShared(this); } static SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(TIFApp.getAppContext()); public static final String USER_OBJECT = "USER_OBJECT"; public static UserObject getUserFromShared() { String userString = sharedPreferences.getString(USER_OBJECT, "0** **" + TIFApp.getAppContext().getString(R.string.tif_title_header)); String[] userStrings = userString.split("\\*\\*"); return new UserObject(Long.valueOf(userStrings[0]), userStrings[1], userStrings[2]); } public static void setUserToShared(UserObject user) { String userString = String.format("%d**%s**%s", user.id, user.photo, user.fullName); sharedPreferences.edit().putString(USER_OBJECT, userString).commit(); } } public static UserObject getUserFromResponse(final VKResponse response) { final JSONArray arr = response.json.optJSONArray(TIF_VK_API_KEY_RESPONSE); final JSONObject jsonObject = arr == null ? null : arr.optJSONObject(0); UserObject user; if (jsonObject != null) { long id = jsonObject.optLong("id"); String photo = jsonObject.optString("photo_100"); String fullName = String.format("%s %s", jsonObject.optString("first_name"), jsonObject.optString("last_name")); user = new UserObject(id, photo, fullName); } else { user = new UserObject(0, "", ""); } return user; } }