├── .idea └── vcs.xml └── app └── src └── main ├── res ├── xml │ └── searchable.xml └── menu │ └── menu_fragment_youku.xml └── java └── name └── caiyao └── shilin ├── Config ├── VideoFormat.java └── VideoQuality.java ├── model ├── M3U8.java ├── MP4.java ├── PlayUrlsResult.java ├── ParseVideoEntry.java └── ParseResult.java └── ui └── adapter └── YoukuSearchAdapter.java /.idea/vcs.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /app/src/main/res/xml/searchable.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /app/src/main/java/name/caiyao/shilin/Config/VideoFormat.java: -------------------------------------------------------------------------------- 1 | package name.caiyao.shilin.Config; 2 | 3 | /** 4 | * Created by 蔡尧 on 2015/12/27 0027. 5 | */ 6 | public class VideoFormat { 7 | public static final String MP4 = "mp4" ; 8 | public static final String M3U8 = "m3u8"; 9 | } 10 | -------------------------------------------------------------------------------- /app/src/main/java/name/caiyao/shilin/model/M3U8.java: -------------------------------------------------------------------------------- 1 | package name.caiyao.shilin.model; 2 | 3 | import com.google.gson.annotations.SerializedName; 4 | 5 | /** 6 | * Created by 蔡尧 on 2015/12/27 0027. 7 | */ 8 | public class M3U8 { 9 | @SerializedName("high") 10 | public String high; 11 | 12 | @SerializedName("normal") 13 | public String normal; 14 | 15 | @SerializedName("super") 16 | public String sup; 17 | } 18 | -------------------------------------------------------------------------------- /app/src/main/java/name/caiyao/shilin/Config/VideoQuality.java: -------------------------------------------------------------------------------- 1 | package name.caiyao.shilin.Config; 2 | 3 | /** 4 | * Created by 蔡尧 on 2015/12/27 0027. 5 | */ 6 | public class VideoQuality { 7 | public static final String HighMP4Quality = "高清 MP4"; 8 | public static final String LowQuality = "标清 M3U8"; 9 | public static final String MediumQuality = "高清 M3U8"; 10 | public static final String HighQuality = "超清 M3U8"; 11 | public static final String FHDQuality = "1080P M3U8"; 12 | } 13 | -------------------------------------------------------------------------------- /app/src/main/java/name/caiyao/shilin/model/MP4.java: -------------------------------------------------------------------------------- 1 | package name.caiyao.shilin.model; 2 | 3 | import com.google.gson.annotations.SerializedName; 4 | 5 | /** 6 | * Created by 蔡尧 on 2015/12/27 0027. 7 | */ 8 | public class MP4 { 9 | @SerializedName("high") 10 | public String high; 11 | 12 | @SerializedName("normal") 13 | public String normal; 14 | 15 | @SerializedName("original") 16 | public String original; 17 | 18 | @SerializedName("super") 19 | public String sup; 20 | } 21 | -------------------------------------------------------------------------------- /app/src/main/java/name/caiyao/shilin/model/PlayUrlsResult.java: -------------------------------------------------------------------------------- 1 | package name.caiyao.shilin.model; 2 | 3 | import com.google.gson.annotations.SerializedName; 4 | 5 | /** 6 | * Created by 蔡尧 on 2015/12/27 0027. 7 | */ 8 | public class PlayUrlsResult { 9 | @SerializedName("error") 10 | public boolean err; 11 | public int errorCode; 12 | 13 | @SerializedName("errorinfo") 14 | public String errorinfo; 15 | 16 | @SerializedName("m3u8") 17 | public M3U8 m3u8; 18 | 19 | @SerializedName("mp4") 20 | public MP4 mp4; 21 | } 22 | -------------------------------------------------------------------------------- /app/src/main/res/menu/menu_fragment_youku.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 12 | -------------------------------------------------------------------------------- /app/src/main/java/name/caiyao/shilin/model/ParseVideoEntry.java: -------------------------------------------------------------------------------- 1 | package name.caiyao.shilin.model; 2 | 3 | import java.util.Comparator; 4 | 5 | /** 6 | * Created by 蔡尧 on 2015/12/27 0027. 7 | */ 8 | public class ParseVideoEntry { 9 | public String videoFormat; 10 | public String videoQuality; 11 | public String videoURL; 12 | 13 | public ParseVideoEntry(String paramString, String paramVideoFormat, String paramVideoQuality) { 14 | this.videoFormat = paramVideoFormat; 15 | this.videoURL = paramString; 16 | this.videoQuality = paramVideoQuality; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /app/src/main/java/name/caiyao/shilin/model/ParseResult.java: -------------------------------------------------------------------------------- 1 | package name.caiyao.shilin.model; 2 | 3 | import java.util.ArrayList; 4 | 5 | /** 6 | * Created by 蔡尧 on 2015/12/27 0027. 7 | */ 8 | public class ParseResult { 9 | public static final int ERROR_NETWORKERROR = 2; 10 | public static final int ERROR_NOVIDEOFOUND = 1; 11 | public static final int ERROR_OK = 0; 12 | public static final int ERROR_REGIONRESTRICTED = 3; 13 | public static final int ERROR_SERVERERROR = 5; 14 | public static final int ERROR_TIMEERROR = 6; 15 | public static final int ERROR_VIDEONOTEXIST = 4; 16 | public int error = 0; 17 | public String errorinfo; 18 | public boolean nodirect = false; 19 | public String referer; 20 | public ArrayList videoEntries = new ArrayList<>(); 21 | public String videoUID; 22 | } 23 | -------------------------------------------------------------------------------- /app/src/main/java/name/caiyao/shilin/ui/adapter/YoukuSearchAdapter.java: -------------------------------------------------------------------------------- 1 | package name.caiyao.shilin.ui.adapter; 2 | 3 | import android.app.SearchManager; 4 | import android.content.Context; 5 | import android.database.Cursor; 6 | import android.support.v4.widget.CursorAdapter; 7 | import android.view.LayoutInflater; 8 | import android.view.View; 9 | import android.view.ViewGroup; 10 | import android.widget.TextView; 11 | 12 | /** 13 | * Created by 蔡尧 on 2015/12/28 0028. 14 | */ 15 | public class YoukuSearchAdapter extends CursorAdapter { 16 | public YoukuSearchAdapter(Context context, Cursor c) { 17 | super(context, c, 0); 18 | } 19 | 20 | @Override 21 | public View newView(Context context, Cursor cursor, ViewGroup parent) { 22 | return LayoutInflater.from(context).inflate(android.R.layout.simple_list_item_1,parent,false); 23 | } 24 | 25 | @Override 26 | public void bindView(View view, Context context, Cursor cursor) { 27 | TextView textView = (TextView) view; 28 | int textIndex = cursor.getColumnIndex(SearchManager.SUGGEST_COLUMN_TEXT_1); 29 | textView.setText(cursor.getString(textIndex)); 30 | } 31 | } 32 | --------------------------------------------------------------------------------