package com.smit.DeskView.news; import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.StreamCorruptedException; import java.net.URL; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import com.smit.DeskView.commonclass.*; import com.smit.DeskView.commonclass.NewsMoveParse.ItemNewsInfo; import com.smit.DeskView.commonclass.VodVideoMoveParse.ItemVideoInfo; import com.smit.DeskView.vodvideo.VODVideoListFragment.VodVideoAdapter; import com.smit.EasyLauncher.R; import android.R.integer; import android.app.AlertDialog; import android.content.Context; import android.content.Intent; import android.content.res.AssetManager; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.nfc.Tag; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.support.v4.app.ListFragment; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.ViewGroup.LayoutParams; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.AdapterView.OnItemClickListener; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; public class NewsListFragment extends ListFragment { private LayoutInflater mInflater = null; int vodvideocount; private final static int GET_VOD_VIDEO_XML = 0x800; private final static String Tag = "VODVideoListFragment"; public NewsMoveParse mMovieParse = null; private AlertDialog.Builder mBuilderpass; private AlertDialog mAlertpass; WebView mWebView; private static String VIDEO_ITEM_FILE_DIR = "data/data/com.smit.EasyLauncher/files";// �����ļ� private static String VIDEO_ITEM_FILE = "data/data/com.smit.EasyLauncher/files/news.xml";// �����ļ� @Override public void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setRetainInstance(true); } private void setWebViewClient() { WebViewClient wvc = new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { mWebView.loadUrl(url); // �ǵ����ĵ�����¼�������֪���������ٽ���һ�£�Android�з���True����˼���ǵ���Ϊֹ��,�¼��ͻ᲻��ð�ݴ����ˣ����dz�֮Ϊ���ĵ� return true; } @Override public void onPageStarted(WebView view, String url, Bitmap favicon){ //Toast.makeText(getApplicationContext(), "WebViewClient.onPageStarted", Toast.LENGTH_SHORT).show(); super.onPageStarted(view, url, favicon); } @Override public void onPageFinished(WebView view, String url) { //Toast.makeText(getApplicationContext(), "WebViewClient.onPageFinished", Toast.LENGTH_SHORT).show(); super.onPageFinished(view, url); } @Override public void onLoadResource(WebView view, String url) { //Toast.makeText(getApplicationContext(), "WebViewClient.onLoadResource", Toast.LENGTH_SHORT).show(); super.onLoadResource(view, url); } }; mWebView.setWebViewClient(wvc); } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); /* { String str=ReadVodVideoItemXML(); if (str!=null) { mMovieParse = new NewsMoveParse(str); if (mMovieParse!=null) { mMovieParse.parseDataStr(); setListAdapter(new VodVideoAdapter()); } } }*/ getListView().setCacheColorHint(0); getListView().setOnItemClickListener(new OnItemClickListener() { public void onItemClick(android.widget.AdapterView<?> arg0, View arg1, int arg2, long arg3) { ItemNewsInfo curItem=null; if (mMovieParse!=null) { curItem=mMovieParse.getCurInfo(arg2); } if (curItem!=null && curItem.getNewsLink()!=null &&curItem.getNewsLink().length()>0) { /* mWebView=new WebView(getActivity()); LayoutParams myParams=new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT); mWebView.setLayoutParams(myParams); setWebViewClient(); mWebView.loadUrl(curItem.getNewsLink());*/ Intent intent = new Intent(); intent.setClass(getActivity(), FlashPlayerActivity.class); Bundle myBund = new Bundle();// ����Bundle�����ڱ���Ҫ���͵����� String mystr = curItem.getNewsLink(); myBund.putString("media", mystr);// KEY-VALUE�������� intent.putExtras(myBund);// ����IntentҪ���͵İ� getActivity().startActivity(intent); } }; }); } @Override public void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // TODO Auto-generated method stub mInflater = inflater; return super.onCreateView(inflater, container, savedInstanceState); } public Handler mHandler = new Handler() { public void handleMessage(Message msg) { switch (msg.what) { case GET_VOD_VIDEO_XML: { String str = (String) msg.obj; if (str != null && str.length() > 0) { WriteVodVideoItemXML(str); mMovieParse = new NewsMoveParse(str); mMovieParse.parseDataStr(); setListAdapter(new VodVideoAdapter()); } break; } case 2: break; } } }; public boolean ShowCurList(){ String str=ReadVodVideoItemXML(); if (str!=null) { mMovieParse = new NewsMoveParse(str); if (mMovieParse!=null) { mMovieParse.parseDataStr(); setListAdapter(new VodVideoAdapter()); }else { return false; } }else { return false; } return true; } public void ParseXml(String str) { } private String checkNetworkInfo() { ConnectivityManager conMan = (ConnectivityManager) getActivity().getSystemService(getActivity().CONNECTIVITY_SERVICE); NetworkInfo.State wifi = (conMan.getNetworkInfo(ConnectivityManager.TYPE_WIFI)).getState(); String string=wifi.toString(); return string; } private boolean checkWifiIscon(){ String str=checkNetworkInfo(); if (str.equals("CONNECTED")) { return true; }else { return false; } } public void requestXml() { String Url = CommonDataFun.myServerAddr+"video.do?columnKey=316"; try { URL url = new URL(Url); Thread mThread = new RequestXml(url, mHandler, GET_VOD_VIDEO_XML, null); mThread.start(); } catch (Exception e) { } } // ����sd��·�� public void CreateDataPath(String str) { File file = new File(str); if (!file.exists()) { file.mkdirs(); } } // д������xml�ļ� �ӷ������õ��� public void WriteVodVideoItemXML(String str) { CreateDataPath(VIDEO_ITEM_FILE_DIR); File existFile = new File(VIDEO_ITEM_FILE); if (existFile.exists() && existFile.length() > 0) { existFile.delete(); } File TestItemFile = new File(VIDEO_ITEM_FILE); try { TestItemFile.createNewFile(); } catch (IOException e) { // Log.e("IOException", "exception in createNewFile() method"); Log.e(Tag, e.toString()); } FileOutputStream fileos = null; try { fileos = new FileOutputStream(TestItemFile); } catch (FileNotFoundException e) { // Log.e("FileNotFoundException", "can't create FileOutputStream"); Log.e(Tag, e.toString()); } try { byte buf[] = str.getBytes(); int numread = 0; numread = buf.length; if (numread <= 0) { // break; } else { fileos.write(buf, 0, numread); } fileos.close(); } catch (Exception e) { // Log.e("Exception","error occurred while creating xml file"); Log.e(Tag, e.toString()); } } public String ReadVodVideoItemXML() { InputStream is = null; byte[] data = null; String str = null; File TestItemFile = new File(VIDEO_ITEM_FILE); if (!TestItemFile.exists()) { return null; } try { int length = (int) TestItemFile.length() + 10; data = new byte[length]; is = new BufferedInputStream(new FileInputStream(TestItemFile)); while (is.read(data) != -1) is.close(); } catch (Exception e) { // TODO: handle exception } str = new String(data); return str; } // �治�� public boolean isExistFile(String str) { if (str==null) { return false; } File TestItemFile = new File(str); if (TestItemFile.exists()) { return true; } else { return false; } } public class VodVideoAdapter extends BaseAdapter { public VodVideoAdapter() { } public int getCount() { if (mMovieParse==null) { return 0; }else { return mMovieParse.getItemCount(); } } public Object getItem(int position) { return null; } public long getItemId(int position) { return position; } // linearlayout��������TextView public View getView(int position, View convertView, ViewGroup parent) { AlwaysMarqueeTextView news_title; TextView news_descrpition; if (convertView == null) { convertView = mInflater.inflate(R.layout.news_widget_item, null); } ItemNewsInfo curItem=null; if (mMovieParse!=null) { curItem=mMovieParse.getCurInfo(position); } news_title = (AlwaysMarqueeTextView) convertView.findViewById(R.id.news_title); if (curItem!=null && curItem.getNewsTitle()!=null&&curItem.getNewsTitle().length()>0) { news_title.setText(curItem.getNewsTitle()); }else { news_title.setText(R.string.vodvideo_widget_defvideo); } news_descrpition = (TextView) convertView.findViewById(R.id.news_descript); if (curItem!=null && curItem.getNewsDes()!=null&&curItem.getNewsDes().length()>0) { news_descrpition.setText(curItem.getNewsDes()); }else { news_descrpition.setText(R.string.vodvideo_widget_decript); } return convertView; } } }