Commit d85355ae authored by fallenstardust's avatar fallenstardust

cardsearcher改为fragment

parent 3f86928d
......@@ -169,4 +169,8 @@ public abstract class BaseFragemnt extends Fragment {
* fragment不可见(切换掉或者onPause)
*/
public abstract void onUserInvisible();
public abstract void onBackHome();
public abstract void onBackPressed();
}
......@@ -7,10 +7,12 @@ import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
......@@ -31,6 +33,7 @@ import com.ourygo.assistant.util.DuelAssistantManagement;
import java.util.List;
import cn.garymb.ygomobile.Constants;
import cn.garymb.ygomobile.base.BaseFragemnt;
import cn.garymb.ygomobile.core.IrrlichtBridge;
import cn.garymb.ygomobile.lite.R;
import cn.garymb.ygomobile.loader.CardLoader;
......@@ -48,7 +51,7 @@ import ocgcore.StringManager;
import ocgcore.data.Card;
import ocgcore.data.LimitList;
public class CardSearchActivity extends BaseActivity implements CardLoader.CallBack, CardSearcher.CallBack {
public class CardSearchFragment extends BaseFragemnt implements CardLoader.CallBack, CardSearcher.CallBack {
public static final String SEARCH_MESSAGE = "searchMessage";
protected DrawerLayout mDrawerlayout;
protected CardSearcher mCardSelector;
......@@ -69,24 +72,21 @@ public class CardSearchActivity extends BaseActivity implements CardLoader.CallB
private TextView mResult_count;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_search);
mResult_count = findViewById(R.id.search_result_count);
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
View layoutView;
layoutView = inflater.inflate(R.layout.activity_search, container, false);
mResult_count = layoutView.findViewById(R.id.search_result_count);
duelAssistantManagement = DuelAssistantManagement.getInstance();
intentSearchMessage = getIntent().getStringExtra(CardSearchActivity.SEARCH_MESSAGE);
// Toolbar toolbar = $(R.id.toolbar);
// setSupportActionBar(toolbar);
enableBackHome();
getSupportActionBar().hide();
mDrawerlayout = $(R.id.drawer_layout);
intentSearchMessage = getActivity().getIntent().getStringExtra(CardSearchFragment.SEARCH_MESSAGE);
mDrawerlayout = layoutView.findViewById(R.id.drawer_layout);
mImageLoader = new ImageLoader(true);
mListView = $(R.id.list_cards);
mCardListAdapter = new CardListAdapter(this, mImageLoader);
mListView = layoutView.findViewById(R.id.list_cards);
mCardListAdapter = new CardListAdapter(getContext(), mImageLoader);
mCardListAdapter.setItemBg(true);
mListView.setLayoutManager(new FastScrollLinearLayoutManager(this));
mListView.setLayoutManager(new FastScrollLinearLayoutManager(getContext()));
mListView.setAdapter(mCardListAdapter);
Button btn_search = $(R.id.btn_search);
Button btn_search = layoutView.findViewById(R.id.btn_search);
btn_search.setOnClickListener((v) -> showSearch(true));
/*
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
......@@ -98,19 +98,19 @@ public class CardSearchActivity extends BaseActivity implements CardLoader.CallB
});
toggle.syncState();
*/
mCardLoader = new CardLoader(this);
mCardLoader = new CardLoader(getContext());
mCardLoader.setCallBack(this);
mCardSelector = new CardSearcher($(R.id.nav_view_list), mCardLoader);
mCardSelector = new CardSearcher(layoutView.findViewById(R.id.nav_view_list), mCardLoader);
mCardSelector.setCallBack(this);
setListeners();
DialogPlus dlg = DialogPlus.show(this, null, getString(R.string.loading));
DialogPlus dlg = DialogPlus.show(getContext(), null, getString(R.string.loading));
VUiKit.defer().when(() -> {
DataManager.get().load(true);
if (mLimitManager.getCount() > 0) {
mCardLoader.setLimitList(mLimitManager.getTopLimit());
}
}).fail((e)->{
Toast.makeText(this, 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);
}).done((rs) -> {
dlg.dismiss();
......@@ -121,16 +121,28 @@ public class CardSearchActivity extends BaseActivity implements CardLoader.CallB
intentSearch(intentSearchMessage);
isInitCdbOk = true;
});
showNewbieGuide();
//showNewbieGuide();
return layoutView;
}
@Override
protected void onRestart() {
super.onRestart();
//数据库初始化完毕并且决斗助手的卡查关键字未被搜索过就卡查
if (isInitCdbOk && !currentCardSearchMessage.equals(duelAssistantManagement.getCardSearchMessage())) {
intentSearch(null);
}
public void onFirstUserVisible() {
}
@Override
public void onUserVisible() {
}
@Override
public void onFirstUserInvisible() {
}
@Override
public void onUserInvisible() {
}
private void intentSearch(String searchMessage) {
......@@ -170,9 +182,7 @@ public class CardSearchActivity extends BaseActivity implements CardLoader.CallB
switch (newState) {
case RecyclerView.SCROLL_STATE_IDLE:
case RecyclerView.SCROLL_STATE_SETTLING:
if (!isFinishing()) {
GlideCompat.with(getContext()).resumeRequests();
}
GlideCompat.with(getContext()).resumeRequests();
break;
case RecyclerView.SCROLL_STATE_DRAGGING:
GlideCompat.with(getContext()).pauseRequests();
......@@ -191,11 +201,10 @@ public class CardSearchActivity extends BaseActivity implements CardLoader.CallB
mDrawerlayout.closeDrawer(Gravity.LEFT);
return;
}
finish();
}
@Override
protected void onDestroy() {
public void onDestroy() {
mImageLoader.close();
super.onDestroy();
}
......@@ -236,12 +245,6 @@ public class CardSearchActivity extends BaseActivity implements CardLoader.CallB
mCardListAdapter.setLimitList(limitList);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.card_search2, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == R.id.action_search) {//弹条件对话框
......@@ -251,7 +254,7 @@ public class CardSearchActivity extends BaseActivity implements CardLoader.CallB
}
@Override
protected void onBackHome() {
public void onBackHome() {
onBack();
}
......@@ -260,7 +263,7 @@ public class CardSearchActivity extends BaseActivity implements CardLoader.CallB
if (mDrawerlayout.isDrawerOpen(Constants.CARD_SEARCH_GRAVITY)) {
mDrawerlayout.closeDrawer(Constants.CARD_SEARCH_GRAVITY);
} else {
super.onBackPressed();
//super.onBackPressed();
}
}
......@@ -280,7 +283,7 @@ public class CardSearchActivity extends BaseActivity implements CardLoader.CallB
protected void showCard(CardListProvider provider, Card cardInfo, final int position) {
if (cardInfo != null) {
if (mCardDetail == null) {
mCardDetail = new CardDetail(this, mImageLoader, mStringManager);
mCardDetail = new CardDetail(new BaseActivity(), mImageLoader, mStringManager);
mCardDetail.setCallBack((card, favorite) -> {
if(mCardSelector.isShowFavorite()) {
mCardSelector.showFavorites(false);
......@@ -304,7 +307,7 @@ public class CardSearchActivity extends BaseActivity implements CardLoader.CallB
});
}
if (mDialog == null) {
mDialog = new DialogPlus(this);
mDialog = new DialogPlus(getContext());
mDialog.setView(mCardDetail.getView());
mDialog.hideButton();
mDialog.hideTitleBar();
......@@ -338,11 +341,11 @@ public class CardSearchActivity extends BaseActivity implements CardLoader.CallB
}
@Override
protected void onStop() {
public void onStop() {
super.onStop();
CardFavorites.get().save();
}
/*
//https://www.jianshu.com/p/99649af3b191
public void showNewbieGuide() {
HighlightOptions options = new HighlightOptions.Builder()//绘制一个高亮虚线圈
......@@ -382,5 +385,5 @@ public class CardSearchActivity extends BaseActivity implements CardLoader.CallB
)
//.alwaysShow(true)//总是显示,调试时可以打开
.show();
}
}*/
}
......@@ -31,7 +31,7 @@ import cn.garymb.ygomobile.bean.Deck;
import cn.garymb.ygomobile.lite.BuildConfig;
import cn.garymb.ygomobile.lite.R;
import cn.garymb.ygomobile.ui.activities.BaseActivity;
import cn.garymb.ygomobile.ui.cards.CardSearchActivity;
import cn.garymb.ygomobile.ui.cards.CardSearchFragment;
import cn.garymb.ygomobile.ui.cards.DeckManagerActivity;
import cn.garymb.ygomobile.ui.cards.deck.DeckUtils;
import cn.garymb.ygomobile.ui.plus.DialogPlus;
......@@ -140,8 +140,8 @@ public abstract class HomeActivity extends BaseActivity implements OnDuelAssista
@Override
public void onCardSearch(String key, int id) {
if (id == ID_MAINACTIVITY) {
Intent intent = new Intent(this, CardSearchActivity.class);
intent.putExtra(CardSearchActivity.SEARCH_MESSAGE, key);
Intent intent = new Intent(this, CardSearchFragment.class);
intent.putExtra(CardSearchFragment.SEARCH_MESSAGE, key);
startActivity(intent);
}
}
......
......@@ -58,7 +58,6 @@ import cn.garymb.ygomobile.ui.activities.WebActivity;
import cn.garymb.ygomobile.ui.adapters.ServerListAdapter;
import cn.garymb.ygomobile.ui.adapters.SimpleListAdapter;
import cn.garymb.ygomobile.ui.cards.CardDetailRandom;
import cn.garymb.ygomobile.ui.cards.CardSearchActivity;
import cn.garymb.ygomobile.ui.cards.DeckManagerActivity;
import cn.garymb.ygomobile.ui.mycard.MyCardActivity;
import cn.garymb.ygomobile.ui.plus.DialogPlus;
......@@ -96,7 +95,9 @@ public class HomeFragment extends BaseFragemnt implements View.OnClickListener {
initView(layoutView, savedInstanceState);
//event
EventBus.getDefault().register(this);//eventBus必须传this而不能是context
if(!EventBus.getDefault().isRegistered(this)){//加上判断
EventBus.getDefault().register(this);
}
return layoutView;
}
......@@ -331,7 +332,7 @@ public class HomeFragment extends BaseFragemnt implements View.OnClickListener {
quickjoinRoom(host, port, password);
}
}
/*
public void onCardSearch(String key, int id) {
if (id == ID_HOMEFRAGMENT) {
Intent intent = new Intent(getContext(), CardSearchActivity.class);
......@@ -339,7 +340,7 @@ public class HomeFragment extends BaseFragemnt implements View.OnClickListener {
startActivity(intent);
}
}
*/
@Subscribe(threadMode = ThreadMode.MAIN)
public void onServerInfoEvent(ServerInfoEvent event) {
......@@ -459,8 +460,9 @@ public class HomeFragment extends BaseFragemnt implements View.OnClickListener {
@Override
public void onDestroy() {
if (EventBus.getDefault().isRegistered(this))//加上判断
EventBus.getDefault().unregister(this);
super.onDestroy();
EventBus.getDefault().unregister(this);
}
@Override
......@@ -483,6 +485,16 @@ public class HomeFragment extends BaseFragemnt implements View.OnClickListener {
}
@Override
public void onBackHome() {
}
@Override
public void onBackPressed() {
}
/**
* Called when a view has been clicked.
*
......@@ -513,7 +525,7 @@ public class HomeFragment extends BaseFragemnt implements View.OnClickListener {
WebActivity.open(getContext(), getString(R.string.action_download_expansions), Constants.URL_YGO233_ADVANCE);
break;
case R.id.action_card_search:
startActivity(new Intent(getContext(), CardSearchActivity.class));
//startActivity(new Intent(getContext(), CardSearchActivity.class));
break;
case R.id.action_deck_manager:
DeckManagerActivity.start(getContext(), null);
......
......@@ -58,6 +58,16 @@ public class MycardFragment extends BaseFragemnt implements View.OnClickListener
}
@Override
public void onBackHome() {
}
@Override
public void onBackPressed() {
}
/**
* Called when a view has been clicked.
*
......
......@@ -57,6 +57,16 @@ public class SettingsFragment extends BaseFragemnt implements View.OnClickListe
}
@Override
public void onBackHome() {
}
@Override
public void onBackPressed() {
}
/**
* Called when a view has been clicked.
*
......
......@@ -44,7 +44,7 @@ import cn.garymb.ygomobile.bean.ServerInfo;
import cn.garymb.ygomobile.bean.ServerList;
import cn.garymb.ygomobile.lite.R;
import cn.garymb.ygomobile.ui.adapters.ServerListAdapter;
import cn.garymb.ygomobile.ui.cards.CardSearchActivity;
import cn.garymb.ygomobile.ui.cards.CardSearchFragment;
import cn.garymb.ygomobile.ui.cards.DeckManagerActivity;
import cn.garymb.ygomobile.ui.cards.deck.DeckUtils;
import cn.garymb.ygomobile.ui.home.MainActivity;
......@@ -371,9 +371,9 @@ public class DuelAssistantService extends Service implements OnDuelAssistantList
@Override
public void onCardSearch(String key, int id) {
if (id == ClipManagement.ID_CLIP_LISTENER) {
Intent intent = new Intent(DuelAssistantService.this, CardSearchActivity.class);
Intent intent = new Intent(DuelAssistantService.this, CardSearchFragment.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra(CardSearchActivity.SEARCH_MESSAGE, key);
intent.putExtra(CardSearchFragment.SEARCH_MESSAGE, key);
startActivity(intent);
}
}
......
......@@ -53,7 +53,7 @@
android:orientation="horizontal">
<LinearLayout
android:layout_width="190dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="5dp"
android:orientation="vertical">
......
......@@ -6,6 +6,11 @@
android:icon="@drawable/start"
android:title="@string/mc_home"
app:showAsAction="always" />
<item
android:id="@+id/cardSearcher_fragment"
android:icon="@drawable/search"
android:title="@string/search"
app:showAsAction="always" />
<item
android:id="@+id/mycard_fragment"
android:icon="@drawable/mycard"
......
......@@ -9,6 +9,10 @@
android:id="@+id/home_fragment"
android:name="cn.garymb.ygomobile.ui.home.HomeFragment"
tools:layout="@layout/main_fragment" />
<fragment
android:id="@+id/cardSearcher_fragment"
android:name="cn.garymb.ygomobile.ui.cards.CardSearchFragment"
tools:layout="@layout/activity_search"/>
<fragment
android:id="@+id/mycard_fragment"
android:name="cn.garymb.ygomobile.ui.mycard.MycardFragment"
......
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