package com.tv.ui.metro.model; import java.io.Serializable; import java.util.ArrayList; import java.util.HashMap; import java.util.LinkedHashMap; public class DisplayItem implements Serializable{ private static final long serialVersionUID = 2L; public static class UI implements Serializable { private static final long serialVersionUID = 4L; public String name; public int id; public int row_count; public int display_count; public int show_value = 1; public int show_rank = 1; public UI clone(){ UI item = new UI(); item.name = name; item.id = id; item.row_count = row_count; item.show_rank = show_rank; item.show_value = show_value; return item; } public String toString() { return " type:" + name + " id:" + id; } } public static class Filter implements Serializable{ private static final long serialVersionUID = 1L; public ArrayList<FilterItem> filters(){return filters;} public ArrayList<FilterItem> filters; public ArrayList<FilterType> all; public String custom_filter_id_format; public static class FilterType implements Serializable{ private static final long serialVersionUID = 1L; public String type; public String title; public ArrayList<String> tags; } } public static class FilterItem implements Serializable{ private static final long serialVersionUID = 1L; public String title; public Target target; public String type; public static String custom_filter = "custom_filter"; @Override public boolean equals(Object obj) { if(obj == null) return false; if(obj instanceof FilterItem){ return ((FilterItem)obj).title.equals(title); } return false; } } public static class Times implements Serializable { private static final long serialVersionUID = 1L; public long updated; public long created; public Times clone(){ Times item = new Times(); item.created = created; item.updated = updated; return item; } } public static class Target implements Serializable{ private static final long serialVersionUID = 1L; public String entity; public String params; public String url; public String mime; public String action; public String toString(){ return "url: "+url + " entity:" +entity + " params:"+params + " mime:"+mime; } } public static class Hint extends LinkedHashMap<String, String> implements Serializable{ public String left() {return get("left");} public String mid() {return get("center");} public String right(){return get("right");} public String toString(){ return "hint left:"+left() + " mid:"+mid() + " right:"+right(); } } public String id; public String title; public String sub_title; public Hint hint; public String desc; public String ns; public String type; public Target target; public ImageGroup images; public UI ui_type; public Times times; public String value; public Media media;//why put here, for media detail episode list UI create, actually we should put this in VideoItem public Settings settings;//for server key-value settings public Meta meta; public static class Meta extends HashMap<String, String> implements Serializable{ private static final long serialVersionUID = 1L; public String page(){String page = get("page"); if(page == null) page="0"; return page;} } public static class Settings extends HashMap<String, String> implements Serializable{ private static final long serialVersionUID = 1L; public static final String edit_mode = "edit_mode"; public static final String selected = "selected"; public static final String offset = "offset"; } public static class Media implements Serializable { private static final long serialVersionUID = 1L; public String description; public float score; public Tags tags; public ArrayList<Episode> items; public Stuff stuff; public String poster; public String date; public String phrase; public ArrayList<CP> cps; public String id; public String name; public DisplayLayout display_layout; public String category_name; public static class DisplayLayout implements Serializable{ private static final long serialVersionUID = 1L; public String type = "tv"; public int max_display = 8; public static final String TYPE_TV = "tv"; public static final String TYPE_OFFLINE = "offline"; public static final String TYPE_VARIETY = "variety"; } public static class Tags extends HashMap<String, ArrayList<String>> implements Serializable{ private static final long serialVersionUID = 1L; public ArrayList<String> genre(){return get("director");} public ArrayList<String> year(){return get("writer");} public ArrayList<String> language(){return get("actor");} public ArrayList<String> area(){return get("area");} } public static class CP /*extends HashMap<String, String>*/ implements Serializable{ private static final long serialVersionUID = 1L; public String cp; public String name; public String icon; public String app_icon; //for download public String apk_url; //for download public boolean vitem_offline; // } public static class Episode /*extends HashMap<String, String> */implements Serializable{ private static final long serialVersionUID = 1L; public String date; public int episode; public String id; public String name; public int download_trys=0; @Override public boolean equals(Object obj) { if(obj == null) return false; if(obj instanceof Episode){ return ((Episode)obj).id.equals(id); } return false; } public String toString(){ return "episode:"+episode + " id:"+id + " name:"+name+ " date:"+date; } } public static class Stuff extends HashMap<String, ArrayList<Stuff.Star>> implements Serializable{ private static final long serialVersionUID = 1L; public ArrayList<Stuff.Star> director(){return get("director");} public ArrayList<Stuff.Star> writer() {return get("writer");} public ArrayList<Stuff.Star> actor() {return get("actor");} public static class Star implements Serializable { private static final long serialVersionUID = 1L; public String id; public String name; } } } public String toString() { return " ns:" + ns + " type:" + type + " target=" + target + " id:" + id + " name:" + title + "images:" + images + " _ui:" + ui_type + " hint: "+hint; } @Override public boolean equals(Object obj) { if(obj == null) return false; if(obj instanceof DisplayItem){ return ((DisplayItem)obj).id.equals(id); } return false; } }