package com.mugua.mgvideo.ui.main;
|
|
import android.content.Intent;
|
import android.os.Bundle;
|
import android.provider.Settings;
|
import androidx.fragment.app.Fragment;
|
import android.view.View;
|
import android.view.View.OnClickListener;
|
import android.widget.Button;
|
import android.widget.LinearLayout;
|
import android.widget.RadioButton;
|
import android.widget.RadioGroup;
|
import android.widget.RadioGroup.OnCheckedChangeListener;
|
import android.widget.TextView;
|
import android.widget.ToggleButton;
|
|
import com.lcjian.library.RetainViewFragment;
|
import com.lcjian.library.content.ConnectivityChangeHelper;
|
import com.lcjian.library.content.ConnectivityChangeHelper.OnConnectivityChangeListener;
|
import com.lcjian.library.util.FragmentSwitchHelper;
|
import com.mugua.mgvideo.R;
|
import com.umeng.analytics.MobclickAgent;
|
import com.mugua.mgvideo.ui.recent.DownloadAdapter2;
|
import com.mugua.mgvideo.ui.recent.OfflineCacheFragment2;
|
import com.mugua.mgvideo.ui.recent.WatchHistoryFragment;
|
|
public class RecentFragment extends RetainViewFragment implements
|
OnClickListener, OnCheckedChangeListener,
|
DownloadAdapter2.IGetDeleteCallback {
|
|
private RadioGroup rg_recent;
|
|
private ToggleButton btn_delete;
|
|
private LinearLayout ll_recent_bottom;
|
|
private FragmentSwitchHelper mFragmentSwitchHelper;
|
|
private Button btn_select_all;
|
|
private Button btn_delete_item;
|
|
private ConnectivityChangeHelper mChangeHelper;
|
|
private TextView tv_no_network;
|
|
@Override
|
public int getContentResource() {
|
return R.layout.recent_fragment;
|
}
|
|
@Override
|
public void onCreateView(View contentView, Bundle savedInstanceState) {
|
|
tv_no_network = (TextView) contentView.findViewById(R.id.tv_no_network);
|
tv_no_network.setOnClickListener(this);
|
|
mChangeHelper = new ConnectivityChangeHelper(getActivity(),
|
new OnConnectivityChangeListener() {
|
|
@Override
|
public void onNetworkUnAvailable() {
|
tv_no_network.setVisibility(View.VISIBLE);
|
}
|
|
@Override
|
public void onWiFiAvailable() {
|
tv_no_network.setVisibility(View.GONE);
|
}
|
|
@Override
|
public void onMobileAvailable() {
|
tv_no_network.setVisibility(View.GONE);
|
}
|
});
|
|
rg_recent = (RadioGroup) contentView.findViewById(R.id.rg_recent);
|
rg_recent.setOnCheckedChangeListener(this);
|
|
btn_delete = (ToggleButton) contentView.findViewById(R.id.btn_delete);
|
btn_delete.setOnClickListener(this);
|
|
ll_recent_bottom = (LinearLayout) contentView
|
.findViewById(R.id.ll_recent_bottom);
|
btn_select_all = (Button) contentView.findViewById(R.id.btn_select_all);
|
btn_delete_item = (Button) contentView
|
.findViewById(R.id.btn_delete_item);
|
btn_select_all.setOnClickListener(this);
|
btn_delete_item.setOnClickListener(this);
|
|
WatchHistoryFragment wf = new WatchHistoryFragment();
|
wf.setDeleteCallback(this);
|
OfflineCacheFragment2 of2 = new OfflineCacheFragment2();
|
of2.setDeleteCallback(this);
|
mFragmentSwitchHelper = FragmentSwitchHelper.create(
|
R.id.fl_recent_fragment_container, getChildFragmentManager(),
|
wf, of2);
|
|
((RadioButton) contentView.findViewById(R.id.rb_watch_history))
|
.setChecked(true);
|
}
|
|
@Override
|
public void onCheckedChanged(RadioGroup group, int checkedId) {
|
switch (checkedId) {
|
case R.id.rb_watch_history: {
|
if (btn_delete.isChecked()) {
|
btn_delete.setChecked(false);
|
}
|
mFragmentSwitchHelper.changeFragment(WatchHistoryFragment.class);
|
}
|
break;
|
case R.id.rb_offline_download: {
|
if (btn_delete.isChecked()) {
|
btn_delete.setChecked(false);
|
}
|
mFragmentSwitchHelper.changeFragment(OfflineCacheFragment2.class);
|
}
|
break;
|
default:
|
break;
|
}
|
ll_recent_bottom.post(new Runnable() {
|
|
@Override
|
public void run() {
|
updateView();
|
}
|
});
|
}
|
|
@Override
|
public void onResume() {
|
super.onResume();
|
// btn_delete_item.setText("删除("+mCallback.onGetNum()+")");
|
mChangeHelper.registerReceiver();
|
btn_delete.setChecked(false);
|
ll_recent_bottom.setVisibility(View.GONE);
|
}
|
|
@Override
|
public void onPause() {
|
super.onPause();
|
mChangeHelper.unregisterReceiver();
|
}
|
|
boolean isSelected = false;
|
boolean isDeleted = false;// 是否已经执行删除操作,如过为true:删除已经执行,ll_recent_bottom设置为gone,如果给false,删除操作未执行,ll_recent_bottom设置为Visibilily;
|
|
@Override
|
public void onClick(View v) {
|
switch (v.getId()) {
|
case R.id.btn_delete: {
|
Fragment fragment = getChildFragmentManager().findFragmentByTag(
|
OfflineCacheFragment2.class.getName());
|
if (fragment != null && fragment.isResumed()) {
|
((OfflineCacheFragment2) fragment)
|
.setSelectedMode(!((OfflineCacheFragment2) fragment)
|
.isSelectedMode());
|
} else {
|
fragment = getChildFragmentManager().findFragmentByTag(
|
WatchHistoryFragment.class.getName());
|
if (fragment != null && fragment.isResumed()) {
|
((WatchHistoryFragment) fragment)
|
.setSelectedMode(!((WatchHistoryFragment) fragment)
|
.isSelectedMode());
|
}
|
}
|
updateView();
|
}
|
break;
|
case R.id.btn_select_all: {
|
isSelected = !isSelected;
|
if (isSelected) {
|
btn_select_all.setText("全不选");
|
} else {
|
btn_select_all.setText("全选");
|
}
|
Fragment fragment = getChildFragmentManager().findFragmentByTag(
|
OfflineCacheFragment2.class.getName());
|
if (fragment != null && fragment.isResumed()) {
|
((OfflineCacheFragment2) fragment).selectAll(isSelected);
|
} else {
|
fragment = getChildFragmentManager().findFragmentByTag(
|
WatchHistoryFragment.class.getName());
|
if (fragment != null && fragment.isResumed()) {
|
((WatchHistoryFragment) fragment).selectAll(isSelected);
|
}
|
}
|
}
|
break;
|
case R.id.btn_delete_item: {
|
|
Fragment fragment = getChildFragmentManager().findFragmentByTag(
|
OfflineCacheFragment2.class.getName());
|
if (fragment != null && fragment.isResumed()) {
|
((OfflineCacheFragment2) fragment).deleteDownload();
|
btn_delete_item.setText("删除");
|
} else {
|
fragment = getChildFragmentManager().findFragmentByTag(
|
WatchHistoryFragment.class.getName());
|
if (fragment != null && fragment.isResumed()) {
|
((WatchHistoryFragment) fragment).deleteWatchHistory();
|
btn_delete_item.setText("删除");
|
}
|
}
|
ll_recent_bottom.postDelayed(new Runnable() {
|
|
@Override
|
public void run() {
|
isDeleted = true;
|
updateView();
|
}
|
}, 500);
|
}
|
break;
|
case R.id.tv_no_network: {
|
Intent intent = new Intent(Settings.ACTION_SETTINGS);
|
startActivity(intent);
|
}
|
break;
|
default:
|
break;
|
}
|
}
|
|
private void updateView() {
|
boolean noData = false;
|
boolean selectedMode = false;
|
Fragment fragment = getChildFragmentManager().findFragmentByTag(
|
OfflineCacheFragment2.class.getName());
|
if (fragment != null && fragment.isResumed()) {
|
noData = ((OfflineCacheFragment2) fragment).getCount() == 0;
|
if (noData) {
|
((OfflineCacheFragment2) fragment).setSelectedMode(false);
|
}
|
selectedMode = ((OfflineCacheFragment2) fragment).isSelectedMode();
|
} else {
|
fragment = getChildFragmentManager().findFragmentByTag(
|
WatchHistoryFragment.class.getName());
|
if (fragment != null && fragment.isResumed()) {
|
noData = ((WatchHistoryFragment) fragment).getCount() == 0;
|
if (noData) {
|
((WatchHistoryFragment) fragment).setSelectedMode(false);
|
}
|
selectedMode = ((WatchHistoryFragment) fragment)
|
.isSelectedMode();
|
}
|
}
|
ll_recent_bottom.setVisibility(selectedMode ? View.VISIBLE : View.GONE);
|
if (ll_recent_bottom.isShown()) {
|
} else {
|
btn_delete_item.setText("删除");
|
if (isSelected) {
|
isSelected = false;
|
btn_select_all.setText("全选");
|
}
|
}
|
}
|
|
@Override
|
public void onGetNum(int count) {
|
if (count == 0) {
|
btn_delete_item.setText("删除");
|
} else {
|
btn_delete_item.setText("删除(" + count + ")");
|
}
|
}
|
}
|