Commit 1809a180 authored by fallenstardust's avatar fallenstardust

移除刷新按钮,不在监听状态变化

parent 63715915
......@@ -30,7 +30,7 @@ import cn.garymb.ygomobile.utils.YGOUtil;
//打开页面后,先扫描本地的卡组,读取其是否包含deckId,是的话代表平台上可能有
//之后读取平台上的卡组,与本地卡组列表做比较。
public class DeckSquareMyDeckFragment extends Fragment implements MyDeckListAdapter.OnDeckDeleteListener{
public class DeckSquareMyDeckFragment extends Fragment {
private static final String TAG = DeckSquareListAdapter.class.getSimpleName();
private FragmentDeckSquareMyDeckBinding binding;
private MyDeckListAdapter deckListAdapter;
......@@ -72,13 +72,6 @@ public class DeckSquareMyDeckFragment extends Fragment implements MyDeckListAdap
}
});
binding.refreshData.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
deckListAdapter.loadData();
}
});
deckListAdapter.setOnItemLongClickListener((adapter, view, position) -> {
MyDeckItem item = (MyDeckItem) adapter.getItem(position);
......@@ -97,8 +90,6 @@ public class DeckSquareMyDeckFragment extends Fragment implements MyDeckListAdap
onDeckMenuListener.onDeckSelect(deckFile);
}
);
// 设置删除监听器
deckListAdapter.setOnDeckDeleteListener(this);
return binding.getRoot();
}
......@@ -133,6 +124,7 @@ public class DeckSquareMyDeckFragment extends Fragment implements MyDeckListAdap
return result;
}).fail((e) -> {
YGOUtil.showTextToast(R.string.logining_failed);
binding.llMainUi.setVisibility(View.GONE);
binding.progressBar.setVisibility(View.GONE);
binding.btnLogin.setEnabled(true);
......@@ -145,7 +137,7 @@ public class DeckSquareMyDeckFragment extends Fragment implements MyDeckListAdap
binding.btnLogin.setEnabled(true);
YGOUtil.showTextToast(R.string.login_succeed);
} else {
LogUtil.i(TAG, "login fail2");
YGOUtil.showTextToast(R.string.logining_failed);
binding.llMainUi.setVisibility(View.GONE);
binding.progressBar.setVisibility(View.GONE);
binding.btnLogin.setEnabled(true);
......@@ -153,25 +145,4 @@ public class DeckSquareMyDeckFragment extends Fragment implements MyDeckListAdap
});
}
@Override
public void onDeckDeleteStarted() {
binding.refreshData.setEnabled(false);
// 设置灰色滤镜
binding.refreshData.setColorFilter(Color.GRAY, PorterDuff.Mode.SRC_IN);
}
@Override
public void onDeckDeleteProgress(int secondsRemaining) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
binding.refreshData.setTooltipText(secondsRemaining+"s waiting");
}
}
@Override
public void onDeckDeleteFinished() {
binding.refreshData.setEnabled(true);
// 移除滤镜,恢复原颜色
binding.refreshData.clearColorFilter();
}
}
package cn.garymb.ygomobile.deck_square;
import android.os.CountDownTimer;
import android.util.Log;
import android.widget.ImageView;
......@@ -27,9 +25,6 @@ import cn.garymb.ygomobile.utils.YGOUtil;
public class MyDeckListAdapter extends BaseQuickAdapter<MyDeckItem, BaseViewHolder> {
private static final String TAG = DeckSquareListAdapter.class.getSimpleName();
private ImageLoader imageLoader;
// 添加监听器变量
private OnDeckDeleteListener deleteListener;
private OnDeckManipulateListener manipulateListener;
public MyDeckListAdapter(int layoutResId) {
super(layoutResId);
......@@ -37,49 +32,6 @@ public class MyDeckListAdapter extends BaseQuickAdapter<MyDeckItem, BaseViewHold
imageLoader = new ImageLoader();
}
public interface OnDeckManipulateListener {
void onDeckHide();
void onDeckCancelHide();
void onDeckDeleteFinished();
}
// 在MyDeckListAdapter中添加接口
public interface OnDeckDeleteListener {
void onDeckDeleteStarted();
void onDeckDeleteProgress(int secondsRemaining);
void onDeckDeleteFinished();
}
// 添加设置监听器的方法
public void setOnDeckDeleteListener(OnDeckDeleteListener listener) {
this.deleteListener = listener;
}
private void startButtonCountdown() {
final int countdownSeconds = 3;
new CountDownTimer(countdownSeconds * 1000, 1000) {
@Override
public void onTick(long millisUntilFinished) {
int secondsLeft = (int) (millisUntilFinished / 1000);
if (deleteListener != null) {
deleteListener.onDeckDeleteProgress(secondsLeft);
}
}
@Override
public void onFinish() {
if (deleteListener != null) {
deleteListener.onDeckDeleteFinished();
}
}
}.start();
}
public void loadData() {
List<MyDeckItem> myOnlineDecks = new ArrayList<>();
LoginToken loginToken = DeckSquareApiUtil.getLoginData();
......@@ -139,42 +91,21 @@ public class MyDeckListAdapter extends BaseQuickAdapter<MyDeckItem, BaseViewHold
}
private void deleteMyDeckOnLine(MyDeckItem item) {
if (item != null) {
LoginToken loginToken = DeckSquareApiUtil.getLoginData();
if (loginToken == null) {
return;
}
//放在登录检查后面,否则:如果未通过登录检查,本函数return后将无法调用onDeckDeleteFinished()
if (deleteListener != null) {
deleteListener.onDeckDeleteStarted();
}
VUiKit.defer().when(() -> {
PushDeckResponse result = DeckSquareApiUtil.deleteDeck(item.getDeckId(), loginToken);
return result;
}).fail(e -> {
if (deleteListener != null) {
deleteListener.onDeckDeleteFinished();
}
LogUtil.i(TAG, "square deck detail fail" + e.getMessage());
}).done(data -> {
if (data.isData()) {
/*
*服务器的api有问题:获取指定用户的卡组列表(无已删卡组)
*删除成功后,通过http://rarnu.xyz:38383/api/mdpro3/sync/795610/nodel接口查询用户卡组时
*要等待2~3秒api响应内容才会对应更新
*/
YGOUtil.showTextToast("删除成功,3秒后服务器将完成同步");
remove(item);
// 开始倒计时
startButtonCountdown();
} else {
if (deleteListener != null) {
deleteListener.onDeckDeleteFinished();
}
YGOUtil.showTextToast("delete fail " + data.getMessage());
}
});
......@@ -187,42 +118,17 @@ public class MyDeckListAdapter extends BaseQuickAdapter<MyDeckItem, BaseViewHold
*/
private void changeDeckPublicState(MyDeckItem item) {
if (item != null) {
LoginToken loginToken = DeckSquareApiUtil.getLoginData();
if (loginToken == null) {
return;
}
//放在登录检查后面,否则:如果未通过登录检查,本函数return后将无法调用onDeckDeleteFinished()
if (deleteListener != null) {
deleteListener.onDeckDeleteStarted();
}
VUiKit.defer().when(() -> {
BasicResponse result = DeckSquareApiUtil.setDeckPublic(item.getDeckId(), loginToken, !item.getPublic());
return result;
}).fail(e -> {
if (deleteListener != null) {
deleteListener.onDeckDeleteFinished();
}
LogUtil.i(TAG, "square deck detail fail" + e.getMessage());
}).done(data -> {
if (data.isMessageTrue()) {
/*
*服务器的api有问题:获取指定用户的卡组列表(无已删卡组)
*删除成功后,通过http://rarnu.xyz:38383/api/mdpro3/sync/795610/nodel接口查询用户卡组时
*要等待2~3秒api响应内容才会对应更新
*/
if (item.getPublic()) {//注意,item是修改前的值,因此item.isPublic为true代表修改前为公开卡组
YGOUtil.showTextToast("已将卡组设为私有");
} else {
YGOUtil.showTextToast("已将卡组公开");
}
startButtonCountdown();
} else {
YGOUtil.showTextToast("操作失败");
}
});
}
}
......@@ -237,21 +143,25 @@ public class MyDeckListAdapter extends BaseQuickAdapter<MyDeckItem, BaseViewHold
if (item.getPublic()) {
helper.setText(R.id.change_show_or_hide, R.string.in_public);
} else {
helper.setText(R.id.change_show_or_hide, R.string.in_personal_use);
}
LogUtil.i(TAG, code + " " + item.getDeckName());
if (code != 0) {
imageLoader.bindImage(cardImage, code, null, ImageLoader.Type.small);
} else {
imageLoader.bindImage(cardImage, -1, null, ImageLoader.Type.small);
}
helper.getView(R.id.delete_my_online_deck_btn).setOnClickListener(view -> {
deleteMyDeckOnLine(item);
});
helper.getView(R.id.ll_switch_show).setOnClickListener(view -> {
if (item.getPublic()) {
helper.setText(R.id.change_show_or_hide, R.string.in_personal_use);
helper.getView(R.id.ll_switch_show).setBackgroundResource(R.drawable.button_radius_n);
} else {
helper.setText(R.id.change_show_or_hide, R.string.in_public);
helper.getView(R.id.ll_switch_show).setBackgroundResource(R.drawable.button_radius_red);
}
LogUtil.i(TAG, "current " + item.toString());
changeDeckPublicState(item);
});
......
......@@ -131,16 +131,6 @@
android:layout_weight="1"
android:text="注销" />
<ImageButton
android:id="@+id/refresh_data"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:layout_weight="1"
android:background="@drawable/ic_radius_bg"
android:layout_marginStart="4dp"
android:src="@drawable/ic_refresh" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
\ No newline at end of file
......@@ -76,8 +76,8 @@
<ImageView
android:id="@+id/show_on_deck_square"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_width="10dp"
android:layout_height="10dp"
android:layout_marginLeft="5dp"
android:src="@drawable/baseline_remove_red_eye_24" />
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment