Commit 98f2faa0 authored by fallenstardust's avatar fallenstardust

由各fragment监听各自返回键

卡组fragment恢复引导设置,退出确认
parent 8a3c1fad
...@@ -172,5 +172,5 @@ public abstract class BaseFragemnt extends Fragment { ...@@ -172,5 +172,5 @@ public abstract class BaseFragemnt extends Fragment {
public abstract void onBackHome(); public abstract void onBackHome();
public abstract void onBackPressed(); public abstract boolean onBackPressed();
} }
...@@ -46,6 +46,7 @@ import ocgcore.data.LimitList; ...@@ -46,6 +46,7 @@ import ocgcore.data.LimitList;
public class CardSearchFragment extends BaseFragemnt implements CardLoader.CallBack, CardSearcher.CallBack { public class CardSearchFragment extends BaseFragemnt implements CardLoader.CallBack, CardSearcher.CallBack {
public static final String SEARCH_MESSAGE = "searchMessage"; public static final String SEARCH_MESSAGE = "searchMessage";
long exitLasttime = 0;
protected DrawerLayout mDrawerlayout; protected DrawerLayout mDrawerlayout;
protected CardSearcher mCardSelector; protected CardSearcher mCardSelector;
protected CardListAdapter mCardListAdapter; protected CardListAdapter mCardListAdapter;
...@@ -74,7 +75,7 @@ public class CardSearchFragment extends BaseFragemnt implements CardLoader.CallB ...@@ -74,7 +75,7 @@ public class CardSearchFragment extends BaseFragemnt implements CardLoader.CallB
return layoutView; return layoutView;
} }
public void initView(View layoutView){ public void initView(View layoutView) {
duelAssistantManagement = DuelAssistantManagement.getInstance(); duelAssistantManagement = DuelAssistantManagement.getInstance();
intentSearchMessage = getActivity().getIntent().getStringExtra(CardSearchFragment.SEARCH_MESSAGE); intentSearchMessage = getActivity().getIntent().getStringExtra(CardSearchFragment.SEARCH_MESSAGE);
mResult_count = layoutView.findViewById(R.id.search_result_count); mResult_count = layoutView.findViewById(R.id.search_result_count);
...@@ -98,7 +99,7 @@ public class CardSearchFragment extends BaseFragemnt implements CardLoader.CallB ...@@ -98,7 +99,7 @@ public class CardSearchFragment extends BaseFragemnt implements CardLoader.CallB
if (mLimitManager.getCount() > 0) { if (mLimitManager.getCount() > 0) {
mCardLoader.setLimitList(mLimitManager.getTopLimit()); mCardLoader.setLimitList(mLimitManager.getTopLimit());
} }
}).fail((e)->{ }).fail((e) -> {
Toast.makeText(getContext(), R.string.tip_load_cdb_error, Toast.LENGTH_SHORT).show(); Toast.makeText(getContext(), R.string.tip_load_cdb_error, Toast.LENGTH_SHORT).show();
Log.e(IrrlichtBridge.TAG, "load cdb", e); Log.e(IrrlichtBridge.TAG, "load cdb", e);
}).done((rs) -> { }).done((rs) -> {
...@@ -246,13 +247,19 @@ public class CardSearchFragment extends BaseFragemnt implements CardLoader.CallB ...@@ -246,13 +247,19 @@ public class CardSearchFragment extends BaseFragemnt implements CardLoader.CallB
} }
@Override @Override
public void onBackPressed() { public boolean onBackPressed() {
if (mDrawerlayout.isDrawerOpen(Constants.CARD_SEARCH_GRAVITY)) { if (mDrawerlayout.isDrawerOpen(Constants.CARD_SEARCH_GRAVITY)) {
mDrawerlayout.closeDrawer(Constants.CARD_SEARCH_GRAVITY); mDrawerlayout.closeDrawer(Constants.CARD_SEARCH_GRAVITY);
} else { } else {
onBack(); //与home相同双击返回
//super.onBackPressed(); if (System.currentTimeMillis() - exitLasttime <= 3000) {
return false;
} else {
exitLasttime = System.currentTimeMillis();
Toast.makeText(getContext(), R.string.back_tip, Toast.LENGTH_SHORT).show();
}
} }
return true;
} }
protected void onCardClick(int pos, CardListProvider clt) { protected void onCardClick(int pos, CardListProvider clt) {
...@@ -273,7 +280,7 @@ public class CardSearchFragment extends BaseFragemnt implements CardLoader.CallB ...@@ -273,7 +280,7 @@ public class CardSearchFragment extends BaseFragemnt implements CardLoader.CallB
if (mCardDetail == null) { if (mCardDetail == null) {
mCardDetail = new CardDetail((BaseActivity) getActivity(), mImageLoader, mStringManager); mCardDetail = new CardDetail((BaseActivity) getActivity(), mImageLoader, mStringManager);
mCardDetail.setCallBack((card, favorite) -> { mCardDetail.setCallBack((card, favorite) -> {
if(mCardSelector.isShowFavorite()) { if (mCardSelector.isShowFavorite()) {
mCardSelector.showFavorites(false); mCardSelector.showFavorites(false);
} }
}); });
......
...@@ -264,15 +264,22 @@ public abstract class HomeActivity extends BaseActivity implements BottomNavigat ...@@ -264,15 +264,22 @@ public abstract class HomeActivity extends BaseActivity implements BottomNavigat
@Override @Override
public void onBackPressed() { public void onBackPressed() {
if (fragment_mycard.isVisible() && fragment_mycard.onBackPressed())
return;
if (fragment_search.isVisible() && fragment_search.onBackPressed())
return;
if (fragment_deck_cards.isVisible() && fragment_deck_cards.onBackPressed())
return;
if (System.currentTimeMillis() - exitLasttime <= 3000) { if (System.currentTimeMillis() - exitLasttime <= 3000) {
super.onBackPressed(); super.onBackPressed();
} else { } else {
showToast(R.string.back_tip, Toast.LENGTH_SHORT);
exitLasttime = System.currentTimeMillis(); exitLasttime = System.currentTimeMillis();
if (fragment_home.isVisible() || fragment_settings.isVisible())
Toast.makeText(getContext(), R.string.back_tip, Toast.LENGTH_SHORT).show();
} }
} }
protected abstract void checkResourceDownload(ResCheckTask.ResCheckListener listener); protected abstract void checkResourceDownload(ResCheckTask.ResCheckListener listener);
protected abstract void openGame(); protected abstract void openGame();
......
...@@ -192,7 +192,7 @@ public class HomeFragment extends BaseFragemnt implements OnDuelAssistantListene ...@@ -192,7 +192,7 @@ public class HomeFragment extends BaseFragemnt implements OnDuelAssistantListene
//轮播图 //轮播图
public void initBanner(View view, Bundle saveBundle) { public void initBanner(View view, Bundle saveBundle) {
Log.i("3.10.0看看", saveBundle+""); Log.i("3.10.0看看", saveBundle + "");
xb_banner = view.findViewById(R.id.xb_banner); xb_banner = view.findViewById(R.id.xb_banner);
cv_banner = view.findViewById(R.id.cv_banner); cv_banner = view.findViewById(R.id.cv_banner);
cv_banner.post(() -> { cv_banner.post(() -> {
...@@ -622,8 +622,8 @@ public class HomeFragment extends BaseFragemnt implements OnDuelAssistantListene ...@@ -622,8 +622,8 @@ public class HomeFragment extends BaseFragemnt implements OnDuelAssistantListene
} }
@Override @Override
public void onBackPressed() { public boolean onBackPressed() {
return false;
} }
/** /**
......
...@@ -23,6 +23,7 @@ import android.widget.ImageView; ...@@ -23,6 +23,7 @@ import android.widget.ImageView;
import android.widget.ProgressBar; import android.widget.ProgressBar;
import android.widget.RelativeLayout; import android.widget.RelativeLayout;
import android.widget.TextView; import android.widget.TextView;
import android.widget.Toast;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
...@@ -56,6 +57,7 @@ public class MycardFragment extends BaseFragemnt implements View.OnClickListener ...@@ -56,6 +57,7 @@ public class MycardFragment extends BaseFragemnt implements View.OnClickListener
private static final int TYPE_MC_LOGIN = 0; private static final int TYPE_MC_LOGIN = 0;
private static final int TYPE_MC_LOGIN_FAILED = 1; private static final int TYPE_MC_LOGIN_FAILED = 1;
private HomeActivity homeActivity; private HomeActivity homeActivity;
long exitLasttime = 0;
//头像昵称账号 //头像昵称账号
private ImageView mHeadView; private ImageView mHeadView;
private TextView mNameView, mStatusView; private TextView mNameView, mStatusView;
...@@ -287,14 +289,24 @@ public class MycardFragment extends BaseFragemnt implements View.OnClickListener ...@@ -287,14 +289,24 @@ public class MycardFragment extends BaseFragemnt implements View.OnClickListener
} }
@Override @Override
public void onBackPressed() { public boolean onBackPressed() {
if (mWebViewPlus.getUrl().equals(mMyCard.getMcMainUrl())) { if (homeActivity.fragment_mycard_chatting_room.isVisible()) {
return; getChildFragmentManager().beginTransaction().hide(homeActivity.fragment_mycard_chatting_room).commit();
mWebViewPlus.setVisibility(View.VISIBLE);
rl_chat.setVisibility(View.VISIBLE);
} else if (mWebViewPlus.getUrl().equals(mMyCard.getMcMainUrl())) {
//与home相同双击返回
if (System.currentTimeMillis() - exitLasttime <= 3000) {
return false;
} else {
exitLasttime = System.currentTimeMillis();
Toast.makeText(getContext(), R.string.back_tip, Toast.LENGTH_SHORT).show();
}
} }
if (mWebViewPlus.canGoBack()) { if (mWebViewPlus.canGoBack() && !homeActivity.fragment_mycard_chatting_room.isVisible()) {
mWebViewPlus.goBack(); mWebViewPlus.goBack();
} else {
} }
return true;
} }
/** /**
...@@ -397,7 +409,7 @@ public class MycardFragment extends BaseFragemnt implements View.OnClickListener ...@@ -397,7 +409,7 @@ public class MycardFragment extends BaseFragemnt implements View.OnClickListener
@Override @Override
public void onChatUserNull() { public void onChatUserNull() {
pb_chat_loading.setVisibility(View.GONE); pb_chat_loading.setVisibility(View.GONE);
HandlerUtil.sendMessage(handler, TYPE_MC_LOGIN_FAILED,"exception"); HandlerUtil.sendMessage(handler, TYPE_MC_LOGIN_FAILED, "exception");
tv_message.setText(R.string.logining_failed); tv_message.setText(R.string.logining_failed);
} }
......
...@@ -159,7 +159,7 @@ public class MycardChatFragment extends BaseFragemnt implements ChatListener { ...@@ -159,7 +159,7 @@ public class MycardChatFragment extends BaseFragemnt implements ChatListener {
} }
@Override @Override
public void onBackPressed() { public boolean onBackPressed() {
return true;
} }
} }
...@@ -179,7 +179,7 @@ ...@@ -179,7 +179,7 @@
android:id="@+id/text_about" android:id="@+id/text_about"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="bottom" android:layout_gravity="center"
android:layout_margin="20dp" android:layout_margin="20dp"
android:paddingBottom="70dp" android:paddingBottom="70dp"
android:shadowColor="#000000" android:shadowColor="#000000"
......
...@@ -170,7 +170,7 @@ ...@@ -170,7 +170,7 @@
<string name="donation">支持我们</string> <string name="donation">支持我们</string>
<string name="refresh">刷新</string> <string name="refresh">刷新</string>
<string name="select_deck">点击选择卡组</string> <string name="select_deck">点击选择卡组</string>
<string name="quit_deck_tip">退出卡组编辑?</string> <string name="quit_deck_tip">卡组未保存,是否退出本应用?</string>
<string name="deck_delete_text">拖到这里删除</string> <string name="deck_delete_text">拖到这里删除</string>
<string name="question_keep_cur_deck">保留当前卡牌?</string> <string name="question_keep_cur_deck">保留当前卡牌?</string>
<string name="check_choose_file" formatted="false">确定选择这个 %s ?</string> <string name="check_choose_file" formatted="false">确定选择这个 %s ?</string>
......
...@@ -169,10 +169,10 @@ ...@@ -169,10 +169,10 @@
<string name="all">All</string> <string name="all">All</string>
<string name="refresh">Refresh</string> <string name="refresh">Refresh</string>
<string name="select_deck">Click here to select Deck</string> <string name="select_deck">Click here to select Deck</string>
<string name="quit_deck_tip">Quit deck editor?</string> <string name="quit_deck_tip">Deck has not been saved yet, quit App?</string>
<string name="deck_delete_text">Drag here to delete</string> <string name="deck_delete_text">Drag here to delete</string>
<string name="question_keep_cur_deck">keep current cards?</string> <string name="question_keep_cur_deck">keep current cards?</string>
<string name="check_choose_file" formatted="false">Determine the choose %s </string> <string name="check_choose_file" formatted="false">Determine the choose %s \?</string>
<string name="settings_deck_delete_dialog">Delete Card use dialog</string> <string name="settings_deck_delete_dialog">Delete Card use dialog</string>
<string name="settings_deck_delete_dialog_desc">show delete card dialog in deck editor</string> <string name="settings_deck_delete_dialog_desc">show delete card dialog in deck editor</string>
<string name="delete_card" formatted="false">Delete %s ?</string> <string name="delete_card" formatted="false">Delete %s ?</string>
......
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