package com.joyplus.tvhelper;
import java.io.File;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import org.json.JSONArray;
import org.json.JSONObject;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.graphics.Color;
import android.os.Bundle;
import android.os.Handler;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ExpandableListView;
import android.widget.ExpandableListView.OnChildClickListener;
import android.widget.ExpandableListView.OnGroupClickListener;
import android.widget.ExpandableListView.OnGroupExpandListener;
import android.widget.ImageView;
import android.widget.LinearLayout;
import com.joyplus.JoyplusMediaPlayerActivity;
import com.joyplus.network.filedownload.manager.DownloadManager;
import com.joyplus.tvhelper.adapter.MovieDownLoadedAdapter;
import com.joyplus.tvhelper.adapter.MoviePlayHistoryAdapter;
import com.joyplus.tvhelper.adapter.PushedMovieDownLoadAdapter;
import com.joyplus.tvhelper.db.DBServices;
import com.joyplus.tvhelper.entity.BTEpisode;
import com.joyplus.tvhelper.entity.CurrentPlayDetailData;
import com.joyplus.tvhelper.entity.MoviePlayHistoryInfo;
import com.joyplus.tvhelper.entity.PushedApkDownLoadInfo;
import com.joyplus.tvhelper.entity.PushedMovieDownLoadInfo;
import com.joyplus.tvhelper.faye.FayeService;
import com.joyplus.tvhelper.ui.NotificationView;
import com.joyplus.tvhelper.utils.Constant;
import com.joyplus.tvhelper.utils.Global;
import com.joyplus.tvhelper.utils.HttpTools;
import com.joyplus.tvhelper.utils.Log;
import com.joyplus.tvhelper.utils.PreferencesUtils;
import com.joyplus.tvhelper.utils.Utils;
import com.umeng.analytics.MobclickAgent;
public class CloudDataDisplayActivity extends Activity implements OnItemClickListener, OnClickListener, OnGroupClickListener, OnChildClickListener, OnGroupExpandListener {
private static final String TAG = "CloudDataDisplayActivity";
private ExpandableListView listView;
private PushedMovieDownLoadAdapter adpter_downloading;
private MovieDownLoadedAdapter adpter_downloaded;
private MoviePlayHistoryAdapter adpter_play_history;
private DownloadManager downloadManager;
private DBServices dbService;
private int selectedIndex = 0;
private Button title_playHistory, title_downloading, title_downloaded;
private Button backButton, deleteButton, cancleButton, editeButton, clearButton;
private LinearLayout layout1, layout2;
private List<PushedMovieDownLoadInfo> downloadedMovies;
private List<MoviePlayHistoryInfo> playinfos;
private ImageView defult_img;
private MyApp app;
private NotificationView connectStatueText;
private ExecutorService pool = Executors.newFixedThreadPool(5);
private Button selectedButon;
private boolean isFirstResume = true;
// private int expandGroupIndex = -1;
private static final int MESSAGE_UPDATE = 0;
private Handler handler = new Handler(){
public void handleMessage(android.os.Message msg) {
switch (msg.what) {
case MESSAGE_UPDATE:
playinfos = dbService.queryMoviePlayHistoryList();
adpter_play_history = new MoviePlayHistoryAdapter(CloudDataDisplayActivity.this, playinfos);
if(selectedIndex == 0){
listView.setAdapter(adpter_play_history);
listView.requestFocus();
listView.setSelection(0);
}
break;
default:
break;
}
};
};
private BroadcastReceiver receiver = new BroadcastReceiver(){
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
String action = intent.getAction();
if(Global.ACTION_DOWNLOAD_PROGRESS.equals(action)){
adpter_downloading.notifyDataSetChanged();
}else if(Global.ACTION_DOWNLOAD_RECIVED.equals(action)){
// Log.d(TAG, "receve --- > " + Global.ACTION_APK_RECIVED);
if(FayeService.userPushApkInfos.size() == 0){
editeButton.setEnabled(false);
}else{
editeButton.setEnabled(true);
}
layout2.setVisibility(View.GONE);
layout1.setVisibility(View.VISIBLE);
updateEditBottn();
// backButton.requestFocus();
adpter_downloading.notifyDataSetChanged();
}else if(Global.ACTION_DOWNL_GETSIZE_SUCESS.equals(action)){
// Log.d(TAG, "CloudDataDisplayActivity onReceive" + action);
// adpter_downloading.notifyDataSetChanged();
}else if(Global.ACTION_MOVIE_DOWNLOAD_COMPLETE.equals(action)){
Log.d(TAG, "CloudDataDisplayActivity onReceive" + action);
// int _id = intent.getIntExtra("_id", 0);
// editeButton.setEnabled(false);
layout2.setVisibility(View.GONE);
layout1.setVisibility(View.VISIBLE);
downloadedMovies = dbService.queryMovieDownLoadedInfos();
adpter_downloaded = new MovieDownLoadedAdapter(CloudDataDisplayActivity.this, downloadedMovies);
if(selectedIndex == 2){
listView.setAdapter(adpter_downloading);
}
updateEditBottn();
adpter_downloading.notifyDataSetChanged();
// updateInstallProgress(_id);
}else if(Global.ACTION_DOWNLOAD_START.equals(action)){
Log.d(TAG, "CloudDataDisplayActivity onReceive" + action);
adpter_downloading.notifyDataSetChanged();
}else if(Global.ACTION_MOVIE_DOWNLOAD_FAILE.equals(action)){
Log.d(TAG, "CloudDataDisplayActivity onReceive" + action);
adpter_downloading.notifyDataSetChanged();
}else if(Global.ACTION_CONNECT_SUCCESS_MAIN.equals(action)){
connectStatueText.setText("已连接");
handler.postDelayed(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
connectStatueText.setText("");
}
}, 2000);
}else if(Global.ACTION_DISCONNECT_SERVER_MAIN.equals(action)){
if(!"正在连接服务器···".equals(connectStatueText.getText())){
connectStatueText.setText("正在连接服务器···");
handler.removeCallbacksAndMessages(null);
}
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_clouddate_display);
backButton = (Button) findViewById(R.id.back_Button);
deleteButton = (Button) findViewById(R.id.del_Button);
cancleButton = (Button) findViewById(R.id.cancel_Button);
editeButton = (Button) findViewById(R.id.edit_Button);
clearButton = (Button) findViewById(R.id.clear_Button);
listView = (ExpandableListView) findViewById(R.id.movieList);
title_playHistory = (Button) findViewById(R.id.title_play_history);
title_downloading = (Button) findViewById(R.id.title_downloading);
title_downloaded = (Button) findViewById(R.id.title_downloaded);
layout1 = (LinearLayout) findViewById(R.id.fistBtn_group);
layout2 = (LinearLayout) findViewById(R.id.secondBtn_group);
defult_img = (ImageView)findViewById(R.id.defult_img);
title_playHistory.setOnClickListener(this);
title_downloading.setOnClickListener(this);
title_downloaded.setOnClickListener(this);
backButton.setOnClickListener(this);
deleteButton.setOnClickListener(this);
cancleButton.setOnClickListener(this);
editeButton.setOnClickListener(this);
clearButton.setOnClickListener(this);
adpter_downloading = new PushedMovieDownLoadAdapter(this, FayeService.movieDownLoadInfos);
dbService = DBServices.getInstance(this);
downloadedMovies = dbService.queryMovieDownLoadedInfos();
playinfos = dbService.queryMoviePlayHistoryList();
adpter_downloaded = new MovieDownLoadedAdapter(this, downloadedMovies);
adpter_play_history = new MoviePlayHistoryAdapter(this, playinfos);
listView.setAdapter(adpter_play_history);
listView.setGroupIndicator(null);
listView.setOnGroupClickListener(this);
listView.setOnChildClickListener(this);
listView.setOnGroupExpandListener(this);
selectedIndex = 0;
selectedButon = title_playHistory;
selectedButon.setBackgroundResource(R.drawable.highlight);
selectedButon.setTextColor(Color.BLACK);
connectStatueText = (NotificationView) findViewById(R.id.statue_connect);
if(MainActivity.isConnect){
connectStatueText.setText("");
}else{
connectStatueText.setText("正在连接服务器···");
}
// listView.setOnItemClickListener(this);
downloadManager = DownloadManager.getInstance(this);
updateEditBottn();
app = (MyApp) getApplication();
IntentFilter filter = new IntentFilter(Global.ACTION_DOWNLOAD_PROGRESS);
filter.addAction(Global.ACTION_DOWNL_GETSIZE_SUCESS);
filter.addAction(Global.ACTION_DOWNLOAD_RECIVED);
filter.addAction(Global.ACTION_MOVIE_DOWNLOAD_FAILE);
filter.addAction(Global.ACTION_MOVIE_DOWNLOAD_COMPLETE);
filter.addAction(Global.ACTION_DOWNLOAD_START);
filter.addAction(Global.ACTION_CONNECT_SUCCESS_MAIN);
filter.addAction(Global.ACTION_DISCONNECT_SERVER_MAIN);
registerReceiver(receiver, filter);
getLostUserPushMovie();
}
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
Log.d(TAG, "selectedIndex -- >" + selectedIndex);
switch (selectedIndex) {
case 0:
MoviePlayHistoryInfo playInfo = playinfos.get(position);
switch (playInfo.getEdite_state()) {
case MoviePlayHistoryInfo.EDITE_STATUE_NOMAL:
if(playInfo.getPlay_type()==MoviePlayHistoryInfo.PLAY_TYPE_BAIDU){
// if(playInfo.getRecivedDonwLoadUrls().startsWith("bdhd")){
playInfo.setCreat_time(System.currentTimeMillis());
dbService.updateMoviePlayHistory(playInfo);
Intent intent_baidu = new Intent(this,PlayBaiduActivity.class);
intent_baidu.putExtra("url", playInfo.getRecivedDonwLoadUrls());
intent_baidu.putExtra("name", playInfo.getName());
intent_baidu.putExtra("push_url", playInfo.getPush_url());
intent_baidu.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent_baidu);
// }
}else{
CurrentPlayDetailData playDate = new CurrentPlayDetailData();
// Intent intent = new Intent(this,VideoPlayerJPActivity.class);
Intent intent = Utils.getIntent(this);
// intent.putExtra("ID", json.getString("prod_id"));
// playDate.prod_id = data.getString("id");
// playDate.prod_type = Integer.valueOf(json.getString("prod_type"));
// playDate.prod_type = playInfo.getPlay_type();
playDate.prod_name = playInfo.getName();
if(playInfo.getPlay_type()==MoviePlayHistoryInfo.PLAY_TYPE_LOCAL){
playDate.prod_url = playInfo.getLocal_url();
playDate.prod_type = VideoPlayerJPActivity.TYPE_LOCAL;
}else{
// playDate.prod_url = playInfo.getDownload_url();
playDate.prod_type = VideoPlayerJPActivity.TYPE_PUSH;
}
playDate.obj = playInfo;
Log.d(TAG, "prod_type" + playDate.prod_type);
// playDate.prod_src = json.getString("prod_src");
playDate.prod_time = Math.round(playInfo.getPlayback_time()*1000);
playDate.prod_qua = playInfo.getDefination();
playDate.isOnline = false;
// if(playDate.prod_type==2||playDate.prod_type==3||playDate.prod_type==131){
// if(json.has("prod_subname")){//旧版android 没有传递该参数
// playDate.prod_sub_name = json.getString("prod_subname");
// }else{
// playDate.prod_type = -1;
// }
// }
isFirstResume = false;
app.setmCurrentPlayDetailData(playDate);
app.set_ReturnProgramView(null);
startActivity(intent);
}
break;
case MoviePlayHistoryInfo.EDITE_STATUE_EDIT:
playInfo.setEdite_state(PushedMovieDownLoadInfo.EDITE_STATUE_SELETED);
adpter_play_history.notifyDataSetChanged();
break;
case MoviePlayHistoryInfo.EDITE_STATUE_SELETED:
playInfo.setEdite_state(PushedMovieDownLoadInfo.EDITE_STATUE_EDIT);
adpter_play_history.notifyDataSetChanged();
break;
}
break;
case 1:
PushedMovieDownLoadInfo info = FayeService.movieDownLoadInfos.get(position);
Log.d(TAG, "info --getEdite_state() >" + info.getEdite_state());
switch (info.getEdite_state()) {
case PushedMovieDownLoadInfo.EDITE_STATUE_NOMAL:
Log.d(TAG, "info --getDownload_state() >" + info.getDownload_state());
switch (info.getDownload_state()) {
case PushedMovieDownLoadInfo.STATUE_DOWNLOADING:
downloadManager.pauseTask(info.getTast());
info.setDownload_state(PushedMovieDownLoadInfo.STATUE_DOWNLOAD_PAUSEING);
dbService.updateMovieDownLoadInfo(info);
adpter_downloading.notifyDataSetChanged();
break;
case PushedMovieDownLoadInfo.STATUE_WAITING_DOWNLOAD:
downloadManager.pauseTask(info.getTast());
info.setDownload_state(PushedMovieDownLoadInfo.STATUE_DOWNLOAD_PAUSE);
dbService.updateMovieDownLoadInfo(info);
adpter_downloading.notifyDataSetChanged();
break;
case PushedMovieDownLoadInfo.STATUE_DOWNLOAD_PAUSE:
Log.i(TAG, "PushedMovieDownLoadInfo.STATUE_DOWNLOAD_PAUSE--->Edit");
info.setDownload_state(PushedMovieDownLoadInfo.STATUE_WAITING_DOWNLOAD);
dbService.updateMovieDownLoadInfo(info);
Intent intentpause = new Intent(Global.ACTION_MOVIE_DOWNLOAD_CONTINUE);
sendBroadcast(intentpause);
adpter_downloading.notifyDataSetChanged();
break;
}
break;
case PushedMovieDownLoadInfo.EDITE_STATUE_EDIT:
info.setEdite_state(PushedMovieDownLoadInfo.EDITE_STATUE_SELETED);
adpter_downloading.notifyDataSetChanged();
break;
case PushedMovieDownLoadInfo.EDITE_STATUE_SELETED:
info.setEdite_state(PushedMovieDownLoadInfo.EDITE_STATUE_EDIT);
adpter_downloading.notifyDataSetChanged();
break;
}
break;
case 2:
PushedMovieDownLoadInfo info_complete = downloadedMovies.get(position);
switch (info_complete.getEdite_state()) {
case PushedMovieDownLoadInfo.EDITE_STATUE_NOMAL:
Log.d(TAG, info_complete.getFile_path());
MoviePlayHistoryInfo play_info = dbService.queryMoviePlayHistoryByLoaclUrl(info_complete.getFile_path());
if(play_info == null){
play_info = new MoviePlayHistoryInfo();
play_info.setName(info_complete.getName());
play_info.setPlay_type(MoviePlayHistoryInfo.PLAY_TYPE_LOCAL);
play_info.setLocal_url(info_complete.getFile_path());
play_info.setCreat_time(System.currentTimeMillis());
play_info.setId((int) dbService.insertMoviePlayHistory(play_info));
}
CurrentPlayDetailData playDate = new CurrentPlayDetailData();
// Intent intent = new Intent(this,VideoPlayerJPActivity.class);
Intent intent = Utils.getIntent(this);
// intent.putExtra("ID", json.getString("prod_id"));
// playDate.prod_id = data.getString("id");
// playDate.prod_type = Integer.valueOf(json.getString("prod_type"));
playDate.prod_type = VideoPlayerJPActivity.TYPE_LOCAL;
playDate.prod_name = play_info.getName();
// playDate.prod_name = json.getString("prod_name");
playDate.prod_url = play_info.getLocal_url();
playDate.obj = play_info;
// playDate.prod_src = json.getString("prod_src");
if(play_info.getDuration()-play_info.getPlayback_time()<=Constant.END_TIME){
playDate.prod_time = 0;
}else{
playDate.prod_time = Math.round(play_info.getPlayback_time()*1000);
}
playDate.isOnline = false;
// playDate.prod_qua = Integer.valueOf(json.getString("prod_qua"));
// if(playDate.prod_type==2||playDate.prod_type==3||playDate.prod_type==131){
// if(json.has("prod_subname")){//旧版android 没有传递该参数
// playDate.prod_sub_name = json.getString("prod_subname");
// }else{
// playDate.prod_type = -1;
// }
// }
app.setmCurrentPlayDetailData(playDate);
app.set_ReturnProgramView(null);
startActivity(intent);
break;
case PushedMovieDownLoadInfo.EDITE_STATUE_EDIT:
info_complete.setEdite_state(PushedMovieDownLoadInfo.EDITE_STATUE_SELETED);
adpter_downloaded.notifyDataSetChanged();
break;
case PushedMovieDownLoadInfo.EDITE_STATUE_SELETED:
info_complete.setEdite_state(PushedMovieDownLoadInfo.EDITE_STATUE_EDIT);
adpter_downloaded.notifyDataSetChanged();
break;
}
break;
default:
break;
}
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
unregisterReceiver(receiver);
super.onDestroy();
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.title_downloaded:
selectedIndex = 2;
selectedButon.setBackgroundResource(R.drawable.bg_title_setting_selector);
selectedButon.setTextColor(getResources().getColorStateList(R.color.setting_title_selector));
selectedButon = title_downloaded;
selectedButon.setBackgroundResource(R.drawable.highlight);
selectedButon.setTextColor(Color.BLACK);
downloadedMovies = dbService.queryMovieDownLoadedInfos();
adpter_downloaded = new MovieDownLoadedAdapter(CloudDataDisplayActivity.this, downloadedMovies);
listView.setAdapter(adpter_downloaded);
layout2.setVisibility(View.GONE);
layout1.setVisibility(View.VISIBLE);
updateEditBottn();
break;
case R.id.title_downloading:
for(PushedMovieDownLoadInfo info : FayeService.movieDownLoadInfos){
info.setEdite_state(PushedMovieDownLoadInfo.EDITE_STATUE_NOMAL);
}
selectedIndex = 1;
selectedButon.setBackgroundResource(R.drawable.bg_title_setting_selector);
selectedButon.setTextColor(getResources().getColorStateList(R.color.setting_title_selector));
selectedButon = title_downloading;
selectedButon.setBackgroundResource(R.drawable.highlight);
selectedButon.setTextColor(Color.BLACK);
layout2.setVisibility(View.GONE);
layout1.setVisibility(View.VISIBLE);
listView.setAdapter(adpter_downloading);
updateEditBottn();
break;
case R.id.title_play_history:
playinfos = dbService.queryMoviePlayHistoryList();
adpter_play_history = new MoviePlayHistoryAdapter(CloudDataDisplayActivity.this, playinfos);
selectedIndex = 0;
selectedButon.setBackgroundResource(R.drawable.bg_title_setting_selector);
selectedButon.setTextColor(getResources().getColorStateList(R.color.setting_title_selector));
selectedButon = title_playHistory;
selectedButon.setBackgroundResource(R.drawable.highlight);
selectedButon.setTextColor(Color.BLACK);
listView.setAdapter(adpter_play_history);
layout2.setVisibility(View.GONE);
layout1.setVisibility(View.VISIBLE);
updateEditBottn();
break;
case R.id.back_Button:
finish();
break;
case R.id.del_Button:
switch (selectedIndex) {
case 0:
Iterator<MoviePlayHistoryInfo> iterator = null;
iterator = playinfos.iterator();
while(iterator.hasNext()) {
MoviePlayHistoryInfo info = iterator.next();
if(info.getEdite_state()==MoviePlayHistoryInfo.EDITE_STATUE_SELETED) {
info.setPlay_type(MoviePlayHistoryInfo.PLAY_TYPE_HIDE);
dbService.updateMoviePlayHistory(info);
iterator.remove();
}else{
info.setEdite_state(MoviePlayHistoryInfo.EDITE_STATUE_NOMAL);
}
}
break;
case 1:
Iterator<PushedMovieDownLoadInfo> iterator_1 = FayeService.movieDownLoadInfos.iterator();
while(iterator_1.hasNext()) {
PushedMovieDownLoadInfo info = iterator_1.next();
if(info.getEdite_state()==PushedApkDownLoadInfo.EDITE_STATUE_SELETED) {
File f = new File(info.getFile_path());
if(f!=null&&f.exists()){
f.delete();
}
dbService.deleteMovieDownLoadInfo(info);
iterator_1.remove();
}else{
info.setEdite_state(PushedMovieDownLoadInfo.EDITE_STATUE_NOMAL);
}
}
break;
case 2:
Iterator<PushedMovieDownLoadInfo> iterator_2 = downloadedMovies.iterator();
while(iterator_2.hasNext()) {
PushedMovieDownLoadInfo info = iterator_2.next();
if(info.getEdite_state()==PushedApkDownLoadInfo.EDITE_STATUE_SELETED) {
File f = new File(info.getFile_path());
if(f!=null&&f.exists()){
f.delete();
}
dbService.deleteMovieDownLoadInfo(info);
iterator_2.remove();
} else{
info.setEdite_state(PushedMovieDownLoadInfo.EDITE_STATUE_NOMAL);
}
}
break;
}
((BaseAdapter)listView.getAdapter()).notifyDataSetChanged();
layout2.setVisibility(View.GONE);
layout1.setVisibility(View.VISIBLE);
updateEditBottn();
break;
case R.id.edit_Button:
layout1.setVisibility(View.GONE);
layout2.setVisibility(View.VISIBLE);
switch (selectedIndex) {
case 0:
for(int i=0; i<playinfos.size(); i++){
MoviePlayHistoryInfo info = playinfos.get(i);
info.setEdite_state(PushedMovieDownLoadInfo.EDITE_STATUE_EDIT);
}
break;
case 1:
for(int i=0; i<FayeService.movieDownLoadInfos.size(); i++){
PushedMovieDownLoadInfo info = FayeService.movieDownLoadInfos.get(i);
if(info.getDownload_state()==PushedMovieDownLoadInfo.STATUE_DOWNLOADING
||info.getDownload_state()==PushedMovieDownLoadInfo.STATUE_WAITING_DOWNLOAD){
downloadManager.pauseTask(info.getTast());
info.setDownload_state(PushedMovieDownLoadInfo.STATUE_DOWNLOAD_PAUSE);
}
info.setEdite_state(PushedMovieDownLoadInfo.EDITE_STATUE_EDIT);
}
break;
case 2:
for(int i=0; i<downloadedMovies.size(); i++){
PushedMovieDownLoadInfo info = downloadedMovies.get(i);
info.setEdite_state(PushedApkDownLoadInfo.EDITE_STATUE_EDIT);
}
break;
}
((BaseAdapter)listView.getAdapter()).notifyDataSetChanged();
for(int i = 0; i < adpter_play_history.getGroupCount(); i++){
listView.collapseGroup(i);
}
cancleButton.requestFocus();
break;
case R.id.cancel_Button:
layout1.setVisibility(View.VISIBLE);
layout2.setVisibility(View.GONE);
switch (selectedIndex) {
case 0:
for(int i=0; i<playinfos.size(); i++){
MoviePlayHistoryInfo info = playinfos.get(i);
info.setEdite_state(PushedMovieDownLoadInfo.EDITE_STATUE_NOMAL);
}
break;
case 1:
for(int i=0; i<FayeService.movieDownLoadInfos.size(); i++){
PushedMovieDownLoadInfo info = FayeService.movieDownLoadInfos.get(i);
info.setEdite_state(PushedMovieDownLoadInfo.EDITE_STATUE_NOMAL);
}
break;
case 2:
for(int i=0; i<downloadedMovies.size(); i++){
PushedMovieDownLoadInfo info = downloadedMovies.get(i);
info.setEdite_state(PushedApkDownLoadInfo.EDITE_STATUE_NOMAL);
}
break;
}
((BaseAdapter)listView.getAdapter()).notifyDataSetChanged();
break;
case R.id.clear_Button:
final Dialog dialog = new AlertDialog.Builder(this).create();
dialog.show();
LayoutInflater inflater = LayoutInflater.from(this);
View view = inflater.inflate(R.layout.layout_clear_dialog, null);
Button delButton = (Button) view.findViewById(R.id.btn_ok);
Button cancelButton = (Button) view.findViewById(R.id.btn_canle);
dialog.setContentView(view);
cancelButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
dialog.dismiss();
}
});
delButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
dialog.dismiss();
Iterator<MoviePlayHistoryInfo> iterator = null;
iterator = playinfos.iterator();
while(iterator.hasNext()) {
MoviePlayHistoryInfo info = iterator.next();
info.setPlay_type(MoviePlayHistoryInfo.PLAY_TYPE_HIDE);
dbService.updateMoviePlayHistory(info);
iterator.remove();
}
updateEditBottn();
}
});
break;
default:
break;
}
}
private void updateEditBottn(){
if(((BaseAdapter)listView.getAdapter()).getCount()>0){
editeButton.setVisibility(View.VISIBLE);
clearButton.setVisibility(View.VISIBLE);
listView.requestFocus();
defult_img.setVisibility(View.GONE);
}else{
editeButton.setVisibility(View.INVISIBLE);
clearButton.setVisibility(View.INVISIBLE);
defult_img.setVisibility(View.VISIBLE);
}
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
int selected = listView.getSelectedItemPosition();
playinfos = dbService.queryMoviePlayHistoryList();
adpter_play_history = new MoviePlayHistoryAdapter(this, playinfos);
if(selectedIndex == 0){
listView.setAdapter(adpter_play_history);
listView.requestFocus();
if(!isFirstResume){
listView.expandGroup(0, true);
}
listView.setSelection(0);
}else{
listView.requestFocus();
listView.setSelection(selected);
}
updateEditBottn();
super.onResume();
MobclickAgent.onResume(this);
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
MobclickAgent.onPause(this);
}
private void getLostUserPushMovie(){
pool.execute(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
// infolist = services.GetPushedApklist(infolist);
String url = Constant.BASE_URL + "/pushVodHistories?app_key=" + Constant.APPKEY
+ "&mac_address=" + Utils.getMacAdd(CloudDataDisplayActivity.this)
+ "&page_num=" + 1
+ "&page_size=" + 50;
Log.d(TAG, url);
String str = HttpTools.get(CloudDataDisplayActivity.this, url);
Log.d(TAG, "pushMsgHistories response-->" + str);
try {
JSONArray array = new JSONArray(str);
Log.d(TAG, "miss length ---------------------------->" + array.length());
for(int i=0; i<array.length(); i++){
try {
JSONObject item = array.getJSONObject(i);
int push_id = item.getInt("id");
// String push_name = URLDecoder.decode(item.getString("name"), "utf-8");
String push_name = item.getString("name");
// String push_url = URLDecoder.decode(item.getString("playurl"), "utf-8");
String push_url = item.getString("playurl");
String push_play_url = item.getString("downurl");
String time_token = item.getString("time_token");
String md5_code = item.getString("md5_code");
List<BTEpisode> es = null;
if(item.has("prodName")){
es = new ArrayList<BTEpisode>();
JSONArray array_name = item.getJSONArray("prodName");
Log.d(TAG, array_name.toString());
for(int j = 0; j< array_name.length() ; j++){
BTEpisode e = new BTEpisode();
e.setDefination(Constant.DEFINATION_HD2);
e.setName(array_name.getString(j));
es.add(e);
Log.d(TAG, array_name.getString(j));
}
}
int type = item.getInt("type");
if(PreferencesUtils.getPincodeMd5(CloudDataDisplayActivity.this)!=null &&PreferencesUtils.getPincodeMd5(CloudDataDisplayActivity.this).equals(md5_code)){
if(type == 5){//漏掉的播放
MoviePlayHistoryInfo play_info = dbService.hasMoviePlayHistory(MoviePlayHistoryInfo.PLAY_TYPE_ONLINE, push_url);
if(play_info == null){
play_info = new MoviePlayHistoryInfo();
play_info.setName(push_name);
play_info.setPush_id(push_id);
play_info.setPush_url(push_url);
play_info.setPlay_type(MoviePlayHistoryInfo.PLAY_TYPE_ONLINE);
play_info.setRecivedDonwLoadUrls(push_play_url);
play_info.setDefination(Constant.DEFINATION_HD2);
play_info.setCreat_time(System.currentTimeMillis());
play_info.setTime_token(time_token+",");
if(es!=null && es.size()>0){
play_info.setPlay_type(MoviePlayHistoryInfo.PLAY_TYPE_BT_EPISODES);
play_info.setBtEpisodes(es);
}
play_info.setId((int)dbService.insertMoviePlayHistory(play_info));
}else{
play_info.setDefination(Constant.DEFINATION_HD2);
play_info.setName(push_name);
play_info.setRecivedDonwLoadUrls(push_play_url);
play_info.setPlay_type(MoviePlayHistoryInfo.PLAY_TYPE_ONLINE);
if(play_info.getTime_token()==null){
play_info.setTime_token("");
}
play_info.setTime_token(play_info.getTime_token() + time_token+",");
if(es!=null && es.size()>0){
play_info.setPlay_type(MoviePlayHistoryInfo.PLAY_TYPE_BT_EPISODES);
play_info.setBtEpisodes(es);
}
// play_info.setPush_id(push_id);
dbService.updateMoviePlayHistory(play_info);
// if(play_info.getTime_token()==null){
// play_info.setTime_token("");
// }
// play_info.setTime_token(play_info.getTime_token() + time_token+",");
// services.updateMoviePlayHistory(play_info);
}
}else if(type == 6){//漏掉的下载
}else if(type == 11){
MoviePlayHistoryInfo play_info = dbService.hasMoviePlayHistory(MoviePlayHistoryInfo.PLAY_TYPE_ONLINE, push_url);
if(play_info == null){
play_info = new MoviePlayHistoryInfo();
play_info.setName(push_name);
play_info.setPush_id(push_id);
play_info.setPush_url(push_url);
play_info.setPlay_type(MoviePlayHistoryInfo.PLAY_TYPE_BAIDU);
play_info.setRecivedDonwLoadUrls(push_play_url);
play_info.setDefination(Constant.DEFINATION_HD2);
play_info.setCreat_time(System.currentTimeMillis());
play_info.setTime_token(time_token+",");
play_info.setId((int)dbService.insertMoviePlayHistory(play_info));
}else{
if(play_info.getTime_token()==null){
play_info.setTime_token("");
}
play_info.setTime_token(play_info.getTime_token() + time_token+",");
dbService.updateMoviePlayHistory(play_info);
}
}
}
updateMovieHistory(push_id);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
handler.sendEmptyMessage(MESSAGE_UPDATE);
}
});
}
private void updateMovieHistory(final int id){
pool.execute(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
String url = Constant.BASE_URL + "/updateVodHistory?app_key=" + Constant.APPKEY
+ "&mac_address=" + Utils.getMacAdd(CloudDataDisplayActivity.this)
+ "&id=" + id;
Log.d(TAG, url);
String str = HttpTools.get(CloudDataDisplayActivity.this, url);
Log.d(TAG, "updateHistory response-->" + str);
}
});
}
@Override
public boolean onGroupClick(ExpandableListView parent, View v,
int groupPosition, long id) {
// TODO Auto-generated method stub
MoviePlayHistoryInfo playInfo = playinfos.get(groupPosition);
if(playInfo.getPlay_type() == MoviePlayHistoryInfo.PLAY_TYPE_BT_EPISODES){
switch (playInfo.getEdite_state()) {
case MoviePlayHistoryInfo.EDITE_STATUE_NOMAL:
return false;
case MoviePlayHistoryInfo.EDITE_STATUE_EDIT:
playInfo.setEdite_state(PushedMovieDownLoadInfo.EDITE_STATUE_SELETED);
adpter_play_history.notifyDataSetChanged();
return true;
case MoviePlayHistoryInfo.EDITE_STATUE_SELETED:
playInfo.setEdite_state(PushedMovieDownLoadInfo.EDITE_STATUE_EDIT);
adpter_play_history.notifyDataSetChanged();
return true;
};
return false;
}else{
switch (playInfo.getEdite_state()) {
case MoviePlayHistoryInfo.EDITE_STATUE_NOMAL:
if(playInfo.getPlay_type()==MoviePlayHistoryInfo.PLAY_TYPE_BAIDU){
// if(playInfo.getRecivedDonwLoadUrls().startsWith("bdhd")){
playInfo.setCreat_time(System.currentTimeMillis());
dbService.updateMoviePlayHistory(playInfo);
Intent intent_baidu = new Intent(this,PlayBaiduActivity.class);
intent_baidu.putExtra("url", playInfo.getRecivedDonwLoadUrls());
intent_baidu.putExtra("name", playInfo.getName());
intent_baidu.putExtra("push_url", playInfo.getPush_url());
intent_baidu.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent_baidu);
// }
}else{
CurrentPlayDetailData playDate = new CurrentPlayDetailData();
// Intent intent = new Intent(this,JoyplusMediaPlayerActivity.class);
Intent intent = Utils.getIntent(this);
// intent.putExtra("ID", json.getString("prod_id"));
// playDate.prod_id = data.getString("id");
// playDate.prod_type = Integer.valueOf(json.getString("prod_type"));
// playDate.prod_type = playInfo.getPlay_type();
playDate.prod_name = playInfo.getName();
if(playInfo.getPlay_type()==MoviePlayHistoryInfo.PLAY_TYPE_LOCAL){
// playDate.prod_url = playInfo.getLocal_url();
// playDate.prod_type = JoyplusMediaPlayerActivity.TYPE_LOCAL;
}else{
// playDate.prod_url = playInfo.getDownload_url();
playDate.prod_type = JoyplusMediaPlayerActivity.TYPE_PUSH;
}
playDate.obj = playInfo;
Log.d(TAG, "prod_type" + playDate.prod_type);
// playDate.prod_src = json.getString("prod_src");
if(playInfo.getDuration()-playInfo.getPlayback_time()<=Constant.END_TIME){
playDate.prod_time = 0;
}else{
playDate.prod_time = Math.round(playInfo.getPlayback_time()*1000);
}
playDate.prod_qua = playInfo.getDefination();
playDate.isOnline = false;
// if(playDate.prod_type==2||playDate.prod_type==3||playDate.prod_type==131){
// if(json.has("prod_subname")){//旧版android 没有传递该参数
// playDate.prod_sub_name = json.getString("prod_subname");
// }else{
// playDate.prod_type = -1;
// }
// }
app.setmCurrentPlayDetailData(playDate);
app.set_ReturnProgramView(null);
startActivity(intent);
}
break;
case MoviePlayHistoryInfo.EDITE_STATUE_EDIT:
playInfo.setEdite_state(PushedMovieDownLoadInfo.EDITE_STATUE_SELETED);
adpter_play_history.notifyDataSetChanged();
break;
case MoviePlayHistoryInfo.EDITE_STATUE_SELETED:
playInfo.setEdite_state(PushedMovieDownLoadInfo.EDITE_STATUE_EDIT);
adpter_play_history.notifyDataSetChanged();
break;
}
return true;
}
}
@Override
public boolean onChildClick(ExpandableListView parent, View v,
int groupPosition, int childPosition, long id) {
// TODO Auto-generated method stub
MoviePlayHistoryInfo playInfo = playinfos.get(groupPosition);
BTEpisode epInfo = playInfo.getBtEpisodes().get(childPosition);
CurrentPlayDetailData playDate = new CurrentPlayDetailData();
// Intent intent = new Intent(this,JoyplusMediaPlayerActivity.class);
Intent intent = Utils.getIntent(this);
// intent.putExtra("ID", json.getString("prod_id"));
// playDate.prod_id = data.getString("id");
// playDate.prod_type = Integer.valueOf(json.getString("prod_type"));
// playDate.prod_type = playInfo.getPlay_type();
playDate.prod_name = playInfo.getName();
// if(playInfo.getPlay_type()==MoviePlayHistoryInfo.PLAY_TYPE_LOCAL){
// playDate.prod_url = playInfo.getLocal_url();
// playDate.prod_type = VideoPlayerJPActivity.TYPE_LOCAL;
// }else{
// playDate.prod_url = playInfo.getDownload_url();
playDate.prod_type = VideoPlayerJPActivity.TYPE_PUSH_BT_EPISODE;
playDate.prod_sub_name = epInfo.getName();
// }
playDate.obj = playInfo;
Log.d(TAG, "prod_type" + playDate.prod_type);
// playDate.prod_src = json.getString("prod_src");
if(epInfo.getDuration()-epInfo.getPlayback_time()<=Constant.END_TIME){
playDate.prod_time = 0;
}else{
playDate.prod_time = Math.round(epInfo.getPlayback_time()*1000);
}
playDate.prod_qua = epInfo.getDefination();
playDate.isOnline = false;
// if(playDate.prod_type==2||playDate.prod_type==3||playDate.prod_type==131){
// if(json.has("prod_subname")){//旧版android 没有传递该参数
// playDate.prod_sub_name = json.getString("prod_subname");
// }else{
// playDate.prod_type = -1;
// }
// }
isFirstResume = false;
app.setmCurrentPlayDetailData(playDate);
app.set_ReturnProgramView(null);
startActivity(intent);
return true;
}
@Override
public void onGroupExpand(int groupPosition) {
// TODO Auto-generated method stub
// if(expandGroupIndex < playinfos.size() && expandGroupIndex>=0&&expandGroupIndex!=groupPosition){
// listView.collapseGroup(expandGroupIndex);
// }
// expandGroupIndex = groupPosition;
// listView.setSelection(groupPosition);
}
}