Back to project page Android-Apps.
The source code is released under:
Apache License
If you think the Android project Android-Apps listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
package com.kniezrec.xbmcgear.connection; //from w w w . java 2 s. c o m import com.kniezrec.xbmcgear.player.Kodi; import com.kniezrec.xbmcgear.player.Player; import com.kniezrec.xbmcgear.player.Song; import org.json.JSONArray; import org.json.JSONObject; class ResponseParser { public static void parse(Player player, JSONRPCRequest res) { if (player != null && res != null && res.getResponse() != null) { JSONObject rJSON = res.getResponse(); JSONObject result = rJSON.optJSONObject("result"); switch (res.getMethod()) { case JSONRequestFactory.REQ_PLAYER_PLAYPAUSE: if (result != null) { player.setSpeed(result.optInt("speed")); if (player.getSpeed() == 0) { ProviderService.getInstance().sendToGear(GearJSON.PAUSE); } else if (player.getSpeed() == 1) { ProviderService.getInstance().sendToGear(GearJSON.PLAY); } } case JSONRequestFactory.REQ_PLAYER_SEEK_BAC: case JSONRequestFactory.REQ_PLAYER_SEEK_FOR: if (result != null) { player.setSpeed(result.optInt("speed")); if (player.getSpeed() == 1) { ProviderService.getInstance().sendToGear(GearJSON.PLAY); } else { ProviderService.getInstance().sendToGear(GearJSON.PAUSE); } } break; case JSONRequestFactory.REQ_ACTIVE_PLAYERS: JSONArray resultArr = rJSON.optJSONArray("result"); if (resultArr != null && resultArr.length() > 0) { JSONObject resObj; resObj = resultArr.optJSONObject(0); if (resObj != null) { player.setId(resObj.optInt("playerid")); player.setType(resObj.optString("type")); } } else { ProviderService.getInstance().sendToGear(GearJSON.STOP); player.setPosition(-1); } break; case JSONRequestFactory.REQ_GET_PROPERTIES: if (result != null) { player.playlist.setId(result.optInt("playlistid")); int current = result.optInt("position"); int speed = result.optInt("speed"); if (speed != player.getSpeed()) { if (speed == 0) { ProviderService.getInstance().sendToGear( GearJSON.PAUSE); } else if (speed == 1) { ProviderService.getInstance().sendToGear( GearJSON.PLAY); } } player.setSpeed(speed); if (current != player.getPosition() && !player.playlist.isListEmpty()) { player.setPosition(current); player.playlist.setCurrent(current); ProviderService.getInstance().sendToGear( player.playlist.getJsonSong(current)); if (player.getSpeed() > 0) { ProviderService.getInstance().sendToGear( GearJSON.PLAY); } } JSONObject time = result.optJSONObject("time"); if (time != null) { player.setCurH(time.optInt("hours")); player.setCurMin(time.optInt("minutes")); player.setCurSec(time.optInt("seconds")); } JSONObject total = result .optJSONObject("totaltime"); if (total != null && player.isNewTotalTime(total .hashCode())) { player.setTotalH(total.optInt("hours")); player.setTotalMin(total.optInt("minutes")); player.setTotalSec(total.optInt("seconds")); player.setTotalTimeHash(total.hashCode()); } } break; case JSONRequestFactory.REQ_GET_VERSION: if (result != null) { player.kodi = new Kodi(); String name = result.optString("name"); JSONObject ver = result.optJSONObject("version"); int major = ver.optInt("major"); int minor = ver.optInt("minor"); player.kodi.setMajor(major); player.kodi.setMinor(minor); player.kodi.setName(name); int volume = result.optInt("volume"); String volLevel = String.format(GearJSON.VOLUME, volume); ProviderService.getInstance().sendToGear(volLevel); } break; case JSONRequestFactory.REQ_VOLUME: int value = rJSON.optInt("result"); String volLevel = String.format(GearJSON.VOLUME, value); ProviderService.getInstance().sendToGear(volLevel); break; case JSONRequestFactory.REQ_GET_ITEM: if (result != null) { JSONObject item = result.optJSONObject("item"); if (item != null) { String title = item.optString("title"); String showtitle = item.optString("showtitle"); if (player.videoPlayer.isNewVideo(title .hashCode())) { player.videoPlayer.setTitle(title); player.videoPlayer.setShowTitle(showtitle); ProviderService.getInstance().sendToGear( player.videoPlayer .getVideoTitleJSON()); } } } break; case JSONRequestFactory.REQ_GET_ITEMS: if (result != null) { JSONObject limits = result.optJSONObject("limits"); if (limits != null && player.playlist.areNewLimits(limits .hashCode())) { player.playlist .setTotal(limits.optInt("total")); player.playlist .setStart(limits.optInt("start")); player.playlist.setEnd(limits.optInt("end")); player.playlist .setLimitsHash(limits.hashCode()); } JSONArray items = result.optJSONArray("items"); JSONObject it; if (items != null && player.playlist.areNewItems(items .toString().hashCode())) { player.playlist.clearSongs(); player.playlist.setItemsHash(items.toString() .hashCode()); for (int i = 0; i < items.length(); i++) { it = items.optJSONObject(i); if (it != null) { Song s = new Song(); s.setLabel(it.optString("label")); s.setTitle(it.optString("title")); JSONArray ar = it .optJSONArray("artist"); if (ar != null) { s.setArtist(ar.optString(0)); player.playlist.addSong(s); } } } ProviderService.getInstance().sendToGear( player.playlist.toString()); int pos = player.getPosition(); if (pos != -1) { ProviderService.getInstance().sendToGear( player.playlist.getJsonSong(pos)); } } } break; default: break; } } } }