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