From 2c5b6e472c368e80d85b8ea2b461c9ea62981d9b Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期日, 08 十月 2023 11:28:56 +0800 Subject: [PATCH] 广告升级/bug修复 --- BuWanVideo/src/com/weikou/beibeivideo/ui/recent/WatchHistoryFragment.java | 215 ++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 146 insertions(+), 69 deletions(-) diff --git a/BuWanVideo/src/com/weikou/beibeivideo/ui/recent/WatchHistoryFragment.java b/BuWanVideo/src/com/weikou/beibeivideo/ui/recent/WatchHistoryFragment.java index 5683d5b..aa972ce 100644 --- a/BuWanVideo/src/com/weikou/beibeivideo/ui/recent/WatchHistoryFragment.java +++ b/BuWanVideo/src/com/weikou/beibeivideo/ui/recent/WatchHistoryFragment.java @@ -1,25 +1,43 @@ package com.weikou.beibeivideo.ui.recent; -import android.database.Cursor; +import android.app.Dialog; import android.os.Bundle; -import android.support.v4.app.Fragment; -import android.support.v4.app.LoaderManager; -import android.support.v4.content.CursorLoader; -import android.support.v4.content.Loader; +import androidx.fragment.app.Fragment; +import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ListView; +import android.widget.ProgressBar; import android.widget.Toast; +import com.google.gson.FieldNamingPolicy; +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.reflect.TypeToken; +import com.lcjian.library.dialog.DialogUtil; import com.umeng.analytics.MobclickAgent; +import com.weikou.beibeivideo.BasicTextHttpResponseHandler; +import com.weikou.beibeivideo.BeibeiVideoAPI; +import com.weikou.beibeivideo.BeibeiVideoApplication; import com.weikou.beibeivideo.R; -import com.weikou.beibeivideo.db.WatchHistoryTable; +import com.weikou.beibeivideo.entity.vo.WatchHistoryVO; +import com.weikou.beibeivideo.ui.dialog.LoadingDialogUtil; +import com.weikou.beibeivideo.util.JsonUtil; +import com.weikou.beibeivideo.util.UserUtil; +import com.weikou.beibeivideo.widget.MySwipeRefreshLayout; +import org.apache.http.Header; +import org.json.JSONObject; + +import java.lang.reflect.Type; +import java.util.ArrayList; import java.util.List; +import java.util.Set; -public class WatchHistoryFragment extends Fragment implements - LoaderManager.LoaderCallbacks<Cursor> { +public class WatchHistoryFragment extends Fragment { + + private MySwipeRefreshLayout srl; private WatchHistoryAdapter mAdapter; @@ -29,6 +47,14 @@ private View empty; + private List<WatchHistoryVO> voList = new ArrayList<>(); + + private int currentPage = 1; + + private long count = 0; + + private Dialog loadingDialog; + public void setDeleteCallback( DownloadAdapter2.IGetDeleteCallback getdeleteNumber) { this.getdeleteNumber = getdeleteNumber; @@ -36,92 +62,69 @@ mAdapter.setDeleteCallback(getdeleteNumber); } + private void initView(View view) { + list = view.findViewById(R.id.list); + list.setDividerHeight(1); + mAdapter = new WatchHistoryAdapter(list.getContext(), voList); + if (getdeleteNumber != null) + mAdapter.setDeleteCallback(getdeleteNumber); + list.setAdapter(mAdapter); + + srl = view.findViewById(R.id.srl_watch_history); + ProgressBar pb = new ProgressBar(getContext()); + srl.setFooter(pb); + srl.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { + @Override + public void onRefresh() { + currentPage = 1; + getWatchHistory(currentPage); + } + }); + srl.setOnLoadListener(new MySwipeRefreshLayout.OnLoadListener() { + @Override + public void onLoad() { + getWatchHistory(currentPage + 1); + } + }); + srl.setRefreshing(true); + + loadingDialog = LoadingDialogUtil.getLoadingDialog(getContext(), ""); + getWatchHistory(currentPage); + } + @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { - return inflater.inflate(R.layout.watch_history_fragment, container, + View view = inflater.inflate(R.layout.watch_history_fragment, container, false); + + return view; } @Override public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); - + initView(view); empty = view.findViewById(R.id.fl_empty); -// empty.setOnClickListener(new OnClickListener() { -// -// @Override -// public void onClick(View v) { -// Intent intent = new Intent(v.getContext(), -// MVideosActivity.class); -// intent.putExtra("home_type", "4"); -// intent.putExtra("title", "鍐呴儴绂忓埄"); -// v.getContext().startActivity(intent); -// } -// }); - - list = (ListView) view.findViewById(R.id.list); - list.setDividerHeight(1); - // list.setOnItemClickListener(this); - mAdapter = new WatchHistoryAdapter(list.getContext(), getActivity().getApplicationContext(), null, true); - if (getdeleteNumber != null) - mAdapter.setDeleteCallback(getdeleteNumber); - list.setAdapter(mAdapter); - // Prepare the loader. Either re-connect with an existing one, - // or start a new one. - getLoaderManager().initLoader(0, null, this); - } - - @Override - public Loader<Cursor> onCreateLoader(int arg0, Bundle arg1) { - return new CursorLoader(list.getContext(), WatchHistoryTable.CONTENT_URI, - null, null, null, WatchHistoryTable.UPDATE_TIME + " DESC"); } @Override public void onResume() { super.onResume(); - mAdapter.setSelectedMode(false); - MobclickAgent.onPageStart("涓婚〉闈⑩�斺�旀渶杩戔�斺�旇鐪嬭褰�"); + if (mAdapter != null) + mAdapter.setSelectedMode(false); } @Override public void onPause() { super.onPause(); - MobclickAgent.onPageEnd("涓婚〉闈⑩�斺�旀渶杩戔�斺�旇鐪嬭褰�"); - } - - @Override - public void onLoadFinished(Loader<Cursor> arg0, Cursor data) { - // Swap the new cursor in. (The framework will take care of closing the - // old cursor once we return.) - mAdapter.swapCursor(data); - if (mAdapter.getCount() == 0) { - empty.setVisibility(View.VISIBLE); - } else { - empty.setVisibility(View.INVISIBLE); - } - } - - @Override - public void onLoaderReset(Loader<Cursor> arg0) { - // This is called when the last Cursor provided to onLoadFinished() - // above is about to be closed. We need to make sure we are no - // longer using it. - mAdapter.swapCursor(null); } public void deleteWatchHistory() { - List<Long> selectedIds = mAdapter.getSelectedIds(); + Set<String> selectedIds = mAdapter.getSelectedIds(); if (!selectedIds.isEmpty()) { - for (int i = 0; i < selectedIds.size(); i++) { - list.getContext().getContentResolver().delete( - WatchHistoryTable.CONTENT_URI, - WatchHistoryTable._ID + " = ? ", - new String[]{String.valueOf(selectedIds.get(i))}); - } - mAdapter.getSelectedIds().clear(); + deleteWatchHistory(selectedIds); } else { Toast.makeText(list.getContext(), "璇烽�夋嫨瑕佸垹闄ょ殑璁板綍", Toast.LENGTH_LONG) .show(); @@ -143,4 +146,78 @@ public int getCount() { return mAdapter.getCount(); } + + + private void getWatchHistory(int page) { + BeibeiVideoAPI.getWatchHistory(BeibeiVideoApplication.application, UserUtil.getUid(BeibeiVideoApplication.application), page, new BasicTextHttpResponseHandler() { + @Override + public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception { + if (jsonObject.optBoolean("IsPost")) { + + JSONObject data = jsonObject.optJSONObject("Data"); + count = data.optLong("count"); + Type type = new TypeToken<List<WatchHistoryVO>>() { + }.getType(); + + List<WatchHistoryVO> list = JsonUtil.videoGson.fromJson(data.optJSONArray("list").toString(), type); + currentPage = page; + if (voList == null) + voList = new ArrayList<>(); + if (page == 1) + voList.clear(); + if (list != null && list.size() > 0) { + voList.addAll(list); + } + if (voList.size() > 0) { + empty.setVisibility(View.GONE); + } else { + empty.setVisibility(View.VISIBLE); + } + mAdapter.notifyDataSetChanged(); + } + } + + @Override + public void onFinish() { + super.onFinish(); + srl.setRefreshing(false); + srl.setLoading(false); + } + }); + } + + private void deleteWatchHistory(Set<String> ids) { + + BeibeiVideoAPI.deleteWatchHistory(BeibeiVideoApplication.application, UserUtil.getUid(BeibeiVideoApplication.application), ids, new BasicTextHttpResponseHandler() { + @Override + public void onStart() { + super.onStart(); + DialogUtil.show(loadingDialog); + } + + @Override + public void onFinish() { + super.onFinish(); + DialogUtil.dismiss(loadingDialog); + } + + @Override + public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception { + if (jsonObject.optBoolean("IsPost")) { + for (int i = 0; i < voList.size(); i++) { + if (ids.contains(voList.get(i).getId())) { + voList.remove(i--); + } + } + mAdapter.getSelectedIds().clear(); + mAdapter.notifyDataSetChanged(); + } else { + Toast.makeText(BeibeiVideoApplication.application, jsonObject.optString("Error"), Toast.LENGTH_SHORT).show(); + } + + } + }); + + } + } -- Gitblit v1.8.0