Commit 1809a180 authored by fallenstardust's avatar fallenstardust

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

parent 63715915
...@@ -30,7 +30,7 @@ import cn.garymb.ygomobile.utils.YGOUtil; ...@@ -30,7 +30,7 @@ import cn.garymb.ygomobile.utils.YGOUtil;
//打开页面后,先扫描本地的卡组,读取其是否包含deckId,是的话代表平台上可能有 //打开页面后,先扫描本地的卡组,读取其是否包含deckId,是的话代表平台上可能有
//之后读取平台上的卡组,与本地卡组列表做比较。 //之后读取平台上的卡组,与本地卡组列表做比较。
public class DeckSquareMyDeckFragment extends Fragment implements MyDeckListAdapter.OnDeckDeleteListener{ public class DeckSquareMyDeckFragment extends Fragment {
private static final String TAG = DeckSquareListAdapter.class.getSimpleName(); private static final String TAG = DeckSquareListAdapter.class.getSimpleName();
private FragmentDeckSquareMyDeckBinding binding; private FragmentDeckSquareMyDeckBinding binding;
private MyDeckListAdapter deckListAdapter; private MyDeckListAdapter deckListAdapter;
...@@ -72,13 +72,6 @@ public class DeckSquareMyDeckFragment extends Fragment implements MyDeckListAdap ...@@ -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) -> { deckListAdapter.setOnItemLongClickListener((adapter, view, position) -> {
MyDeckItem item = (MyDeckItem) adapter.getItem(position); MyDeckItem item = (MyDeckItem) adapter.getItem(position);
...@@ -97,8 +90,6 @@ public class DeckSquareMyDeckFragment extends Fragment implements MyDeckListAdap ...@@ -97,8 +90,6 @@ public class DeckSquareMyDeckFragment extends Fragment implements MyDeckListAdap
onDeckMenuListener.onDeckSelect(deckFile); onDeckMenuListener.onDeckSelect(deckFile);
} }
); );
// 设置删除监听器
deckListAdapter.setOnDeckDeleteListener(this);
return binding.getRoot(); return binding.getRoot();
} }
...@@ -133,6 +124,7 @@ public class DeckSquareMyDeckFragment extends Fragment implements MyDeckListAdap ...@@ -133,6 +124,7 @@ public class DeckSquareMyDeckFragment extends Fragment implements MyDeckListAdap
return result; return result;
}).fail((e) -> { }).fail((e) -> {
YGOUtil.showTextToast(R.string.logining_failed);
binding.llMainUi.setVisibility(View.GONE); binding.llMainUi.setVisibility(View.GONE);
binding.progressBar.setVisibility(View.GONE); binding.progressBar.setVisibility(View.GONE);
binding.btnLogin.setEnabled(true); binding.btnLogin.setEnabled(true);
...@@ -145,7 +137,7 @@ public class DeckSquareMyDeckFragment extends Fragment implements MyDeckListAdap ...@@ -145,7 +137,7 @@ public class DeckSquareMyDeckFragment extends Fragment implements MyDeckListAdap
binding.btnLogin.setEnabled(true); binding.btnLogin.setEnabled(true);
YGOUtil.showTextToast(R.string.login_succeed); YGOUtil.showTextToast(R.string.login_succeed);
} else { } else {
LogUtil.i(TAG, "login fail2"); YGOUtil.showTextToast(R.string.logining_failed);
binding.llMainUi.setVisibility(View.GONE); binding.llMainUi.setVisibility(View.GONE);
binding.progressBar.setVisibility(View.GONE); binding.progressBar.setVisibility(View.GONE);
binding.btnLogin.setEnabled(true); binding.btnLogin.setEnabled(true);
...@@ -153,25 +145,4 @@ public class DeckSquareMyDeckFragment extends Fragment implements MyDeckListAdap ...@@ -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; package cn.garymb.ygomobile.deck_square;
import android.os.CountDownTimer;
import android.util.Log; import android.util.Log;
import android.widget.ImageView; import android.widget.ImageView;
...@@ -27,9 +25,6 @@ import cn.garymb.ygomobile.utils.YGOUtil; ...@@ -27,9 +25,6 @@ import cn.garymb.ygomobile.utils.YGOUtil;
public class MyDeckListAdapter extends BaseQuickAdapter<MyDeckItem, BaseViewHolder> { public class MyDeckListAdapter extends BaseQuickAdapter<MyDeckItem, BaseViewHolder> {
private static final String TAG = DeckSquareListAdapter.class.getSimpleName(); private static final String TAG = DeckSquareListAdapter.class.getSimpleName();
private ImageLoader imageLoader; private ImageLoader imageLoader;
// 添加监听器变量
private OnDeckDeleteListener deleteListener;
private OnDeckManipulateListener manipulateListener;
public MyDeckListAdapter(int layoutResId) { public MyDeckListAdapter(int layoutResId) {
super(layoutResId); super(layoutResId);
...@@ -37,49 +32,6 @@ public class MyDeckListAdapter extends BaseQuickAdapter<MyDeckItem, BaseViewHold ...@@ -37,49 +32,6 @@ public class MyDeckListAdapter extends BaseQuickAdapter<MyDeckItem, BaseViewHold
imageLoader = new ImageLoader(); 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() { public void loadData() {
List<MyDeckItem> myOnlineDecks = new ArrayList<>(); List<MyDeckItem> myOnlineDecks = new ArrayList<>();
LoginToken loginToken = DeckSquareApiUtil.getLoginData(); LoginToken loginToken = DeckSquareApiUtil.getLoginData();
...@@ -139,42 +91,21 @@ public class MyDeckListAdapter extends BaseQuickAdapter<MyDeckItem, BaseViewHold ...@@ -139,42 +91,21 @@ public class MyDeckListAdapter extends BaseQuickAdapter<MyDeckItem, BaseViewHold
} }
private void deleteMyDeckOnLine(MyDeckItem item) { private void deleteMyDeckOnLine(MyDeckItem item) {
if (item != null) { if (item != null) {
LoginToken loginToken = DeckSquareApiUtil.getLoginData(); LoginToken loginToken = DeckSquareApiUtil.getLoginData();
if (loginToken == null) { if (loginToken == null) {
return; return;
} }
//放在登录检查后面,否则:如果未通过登录检查,本函数return后将无法调用onDeckDeleteFinished()
if (deleteListener != null) {
deleteListener.onDeckDeleteStarted();
}
VUiKit.defer().when(() -> { VUiKit.defer().when(() -> {
PushDeckResponse result = DeckSquareApiUtil.deleteDeck(item.getDeckId(), loginToken); PushDeckResponse result = DeckSquareApiUtil.deleteDeck(item.getDeckId(), loginToken);
return result; return result;
}).fail(e -> { }).fail(e -> {
if (deleteListener != null) {
deleteListener.onDeckDeleteFinished();
}
LogUtil.i(TAG, "square deck detail fail" + e.getMessage()); LogUtil.i(TAG, "square deck detail fail" + e.getMessage());
}).done(data -> { }).done(data -> {
if (data.isData()) { if (data.isData()) {
/*
*服务器的api有问题:获取指定用户的卡组列表(无已删卡组)
*删除成功后,通过http://rarnu.xyz:38383/api/mdpro3/sync/795610/nodel接口查询用户卡组时
*要等待2~3秒api响应内容才会对应更新
*/
YGOUtil.showTextToast("删除成功,3秒后服务器将完成同步");
remove(item); remove(item);
// 开始倒计时
startButtonCountdown();
} else { } else {
if (deleteListener != null) {
deleteListener.onDeckDeleteFinished();
}
YGOUtil.showTextToast("delete fail " + data.getMessage()); YGOUtil.showTextToast("delete fail " + data.getMessage());
} }
}); });
...@@ -187,42 +118,17 @@ public class MyDeckListAdapter extends BaseQuickAdapter<MyDeckItem, BaseViewHold ...@@ -187,42 +118,17 @@ public class MyDeckListAdapter extends BaseQuickAdapter<MyDeckItem, BaseViewHold
*/ */
private void changeDeckPublicState(MyDeckItem item) { private void changeDeckPublicState(MyDeckItem item) {
if (item != null) { if (item != null) {
LoginToken loginToken = DeckSquareApiUtil.getLoginData(); LoginToken loginToken = DeckSquareApiUtil.getLoginData();
if (loginToken == null) { if (loginToken == null) {
return; return;
} }
//放在登录检查后面,否则:如果未通过登录检查,本函数return后将无法调用onDeckDeleteFinished()
if (deleteListener != null) {
deleteListener.onDeckDeleteStarted();
}
VUiKit.defer().when(() -> { VUiKit.defer().when(() -> {
BasicResponse result = DeckSquareApiUtil.setDeckPublic(item.getDeckId(), loginToken, !item.getPublic()); BasicResponse result = DeckSquareApiUtil.setDeckPublic(item.getDeckId(), loginToken, !item.getPublic());
return result; return result;
}).fail(e -> { }).fail(e -> {
if (deleteListener != null) {
deleteListener.onDeckDeleteFinished();
}
LogUtil.i(TAG, "square deck detail fail" + e.getMessage()); LogUtil.i(TAG, "square deck detail fail" + e.getMessage());
}).done(data -> { }).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 ...@@ -237,21 +143,25 @@ public class MyDeckListAdapter extends BaseQuickAdapter<MyDeckItem, BaseViewHold
if (item.getPublic()) { if (item.getPublic()) {
helper.setText(R.id.change_show_or_hide, R.string.in_public); helper.setText(R.id.change_show_or_hide, R.string.in_public);
} else { } else {
helper.setText(R.id.change_show_or_hide, R.string.in_personal_use); helper.setText(R.id.change_show_or_hide, R.string.in_personal_use);
} }
LogUtil.i(TAG, code + " " + item.getDeckName()); LogUtil.i(TAG, code + " " + item.getDeckName());
if (code != 0) { if (code != 0) {
imageLoader.bindImage(cardImage, code, null, ImageLoader.Type.small); imageLoader.bindImage(cardImage, code, null, ImageLoader.Type.small);
} else { } else {
imageLoader.bindImage(cardImage, -1, null, ImageLoader.Type.small); imageLoader.bindImage(cardImage, -1, null, ImageLoader.Type.small);
} }
helper.getView(R.id.delete_my_online_deck_btn).setOnClickListener(view -> { helper.getView(R.id.delete_my_online_deck_btn).setOnClickListener(view -> {
deleteMyDeckOnLine(item); deleteMyDeckOnLine(item);
}); });
helper.getView(R.id.ll_switch_show).setOnClickListener(view -> { 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()); LogUtil.i(TAG, "current " + item.toString());
changeDeckPublicState(item); changeDeckPublicState(item);
}); });
......
...@@ -131,16 +131,6 @@ ...@@ -131,16 +131,6 @@
android:layout_weight="1" android:layout_weight="1"
android:text="注销" /> 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> </LinearLayout>
</LinearLayout> </LinearLayout>
\ No newline at end of file
...@@ -76,8 +76,8 @@ ...@@ -76,8 +76,8 @@
<ImageView <ImageView
android:id="@+id/show_on_deck_square" android:id="@+id/show_on_deck_square"
android:layout_width="20dp" android:layout_width="10dp"
android:layout_height="20dp" android:layout_height="10dp"
android:layout_marginLeft="5dp" android:layout_marginLeft="5dp"
android:src="@drawable/baseline_remove_red_eye_24" /> 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