Commit 81819b0c authored by fallenstardust's avatar fallenstardust

通过intent实现fragment切换

parent 5936892c
......@@ -30,7 +30,9 @@ import cn.garymb.ygodata.YGOGameOptions;
import cn.garymb.ygomobile.bean.Deck;
import cn.garymb.ygomobile.lite.R;
import cn.garymb.ygomobile.ui.cards.DeckManagerFragment;
import cn.garymb.ygomobile.ui.home.HomeActivity;
import cn.garymb.ygomobile.ui.home.HomeFragment;
import cn.garymb.ygomobile.ui.home.MainActivity;
import cn.garymb.ygomobile.ui.settings.SettingsActivity;
import cn.garymb.ygomobile.utils.FileUtils;
import cn.garymb.ygomobile.utils.IOUtils;
......@@ -199,7 +201,7 @@ public class GameUriManager {
}
private void doUri(Uri uri) {
Intent startSetting = new Intent(activity, SettingsActivity.class);
Intent startSetting = new Intent(activity, MainActivity.class);
if ("file".equals(uri.getScheme()) || "content".equals(uri.getScheme())) {
File file = toLocalFile(uri);
if (file == null || !file.exists()) {
......@@ -212,9 +214,11 @@ public class GameUriManager {
boolean isLua = file.getName().toLowerCase(Locale.US).endsWith(".lua");
Log.i(Constants.TAG, "open file:" + uri + "->" + file.getAbsolutePath());
if (isYdk) {
startSetting.putExtra("flag", 2);
DeckManagerFragment.start(activity, file.getAbsolutePath());
} else if (isYpk) {
if (!AppsSettings.get().isReadExpansions()) {
startSetting.putExtra("flag", 4);
activity.startActivity(startSetting);
Toast.makeText(activity, R.string.ypk_go_setting, Toast.LENGTH_LONG).show();
} else {
......
......@@ -33,10 +33,11 @@ import cn.garymb.ygomobile.bean.ServerInfo;
import cn.garymb.ygomobile.bean.ServerList;
import cn.garymb.ygomobile.lite.BuildConfig;
import cn.garymb.ygomobile.lite.R;
import cn.garymb.ygomobile.ui.home.HomeActivity;
import cn.garymb.ygomobile.ui.home.HomeFragment;
import cn.garymb.ygomobile.ui.home.MainActivity;
import cn.garymb.ygomobile.ui.home.ServerListManager;
import cn.garymb.ygomobile.ui.mycard.MycardFragment;
import cn.garymb.ygomobile.ui.plus.VUiKit;
import cn.garymb.ygomobile.ui.settings.SettingsActivity;
import cn.garymb.ygomobile.ui.widget.WebViewPlus;
import cn.garymb.ygomobile.utils.DownloadUtil;
import cn.garymb.ygomobile.utils.FileUtils;
......@@ -74,7 +75,8 @@ public class WebActivity extends BaseActivity {
break;
case UnzipUtils.ZIP_UNZIP_OK:
if (!AppsSettings.get().isReadExpansions()) {
Intent startSetting = new Intent(getContext(), MycardFragment.class);
Intent startSetting = new Intent(getContext(), MainActivity.class);
startSetting.putExtra("flag", 4);
startActivity(startSetting);
Toast.makeText(getContext(), R.string.ypk_go_setting, Toast.LENGTH_LONG).show();
} else {
......
package cn.garymb.ygomobile.ui.adapters;
import android.annotation.SuppressLint;
import android.content.Context;
import android.graphics.Color;
import android.os.Build;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.listener.OnItemClickListener;
import java.util.ArrayList;
import java.util.List;
import cn.garymb.ygomobile.bean.Deck;
import cn.garymb.ygomobile.bean.DeckInfo;
import cn.garymb.ygomobile.bean.TextSelect;
import cn.garymb.ygomobile.bean.events.DeckFile;
import cn.garymb.ygomobile.lite.R;
import cn.garymb.ygomobile.loader.CardLoader;
import cn.garymb.ygomobile.loader.DeckLoader;
import cn.garymb.ygomobile.loader.ImageLoader;
import cn.garymb.ygomobile.utils.YGOUtil;
import ocgcore.DataManager;
import ocgcore.data.LimitList;
public class SettingsListAdapter<T extends TextSelect> extends BaseQuickAdapter<T, DeckViewHolder> {
private Context mContext;
private OnItemSelectListener onItemSelectListener;
private int selectPosition;
private boolean isSelect;
private boolean isManySelect;
private List<T> selectList;
public SettingsListAdapter(Context context, List<T> data, int select) {
super(R.layout.item_deck_list_swipe, data);
this.selectPosition = select;
if (select >= 0)
isSelect = true;
else
isSelect = false;
isManySelect = false;
selectList = new ArrayList<>();
setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
if (isSelect && position == selectPosition)
return;
selectPosition = position;
notifyDataSetChanged();
if (onItemSelectListener != null)
onItemSelectListener.onItemSelect(position, data.get(position).getObject());
}
});
//初始化
mContext = context;
}
@SuppressLint("ResourceType")
@Override
protected void convert(DeckViewHolder holder, T item) {
int position = holder.getAdapterPosition();
//多选
if (isManySelect) {
if (selectList.contains(item))
holder.item_deck_list.setBackgroundColor(YGOUtil.c(R.color.colorMain));
else
holder.item_deck_list.setBackgroundResource(Color.TRANSPARENT);
} else if (isSelect) {
if (position == selectPosition) {
holder.item_deck_list.setBackgroundColor(YGOUtil.c(R.color.colorMain));
} else {
holder.item_deck_list.setBackgroundResource(Color.TRANSPARENT);
}
} else {
holder.item_deck_list.setBackgroundResource(Color.TRANSPARENT);
}
}
public void setSelectPosition(int selectPosition) {
this.selectPosition = selectPosition;
}
public boolean isSelect() {
return isSelect;
}
public boolean isManySelect() {
return isManySelect;
}
public void addManySelect(T t) {
if (selectList.contains(t))
selectList.remove(t);
else
selectList.add(t);
}
public void setManySelect(boolean manySelect) {
isManySelect = manySelect;
if (!isManySelect) {
selectList.clear();
notifyDataSetChanged();
}
}
public List<T> getSelectList() {
return selectList;
}
public int getSelectPosition() {
return selectPosition;
}
public void setOnItemSelectListener(OnItemSelectListener onItemSelectListener) {
this.onItemSelectListener = onItemSelectListener;
}
public interface OnItemSelectListener<T> {
void onItemSelect(int position, T item);
}
}
class SettingsViewHolder extends com.chad.library.adapter.base.viewholder.BaseViewHolder {
public SettingsViewHolder(View view) {
super(view);
view.setTag(view.getId(), this);
}
}
\ No newline at end of file
......@@ -85,6 +85,8 @@ import cn.garymb.ygomobile.ui.cards.deck.DeckItem;
import cn.garymb.ygomobile.ui.cards.deck.DeckItemTouchHelper;
import cn.garymb.ygomobile.ui.cards.deck.DeckItemType;
import cn.garymb.ygomobile.ui.cards.deck.DeckLayoutManager;
import cn.garymb.ygomobile.ui.home.HomeActivity;
import cn.garymb.ygomobile.ui.home.MainActivity;
import cn.garymb.ygomobile.ui.mycard.mcchat.util.ImageUtil;
import cn.garymb.ygomobile.ui.plus.AOnGestureListener;
import cn.garymb.ygomobile.ui.plus.DefaultOnBoomListener;
......@@ -223,7 +225,7 @@ public class DeckManagerFragment extends BaseFragemnt implements RecyclerViewIte
}
public static void start(Context context, String path) {
Intent starter = new Intent(context, DeckManagerFragment.class);
Intent starter = new Intent(context, MainActivity.class);
starter.putExtra(Intent.EXTRA_TEXT, path);
if (!(context instanceof Activity)) {
starter.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
......
......@@ -35,7 +35,6 @@ import cn.garymb.ygomobile.ui.cards.deck.DeckUtils;
import cn.garymb.ygomobile.ui.mycard.MycardFragment;
import cn.garymb.ygomobile.ui.plus.DialogPlus;
import cn.garymb.ygomobile.ui.settings.PersonalFragment;
import cn.garymb.ygomobile.ui.settings.fragments.SettingFragment;
import cn.garymb.ygomobile.utils.FileLogUtil;
import cn.garymb.ygomobile.utils.ScreenUtil;
import cn.garymb.ygomobile.utils.YGOUtil;
......@@ -94,6 +93,22 @@ public abstract class HomeActivity extends BaseActivity implements OnDuelAssista
checkNotch();
//showNewbieGuide("homePage");
initBottomNavigationBar();
onNewIntent(getIntent());
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
int mFlag = intent.getIntExtra("flag", 0);
if (mFlag == 4) { //判断获取到的flag值
switchFragment(fragment_personal);
} else if (mFlag == 3) {
switchFragment(fragment_mycard);
} else if (mFlag == 2) {
switchFragment(fragment_deck_cards);
} else if (mFlag == 1) {
switchFragment(fragment_search);
}
}
private void initBottomNavigationBar() {
......@@ -155,7 +170,7 @@ public abstract class HomeActivity extends BaseActivity implements OnDuelAssista
getSupportActionBar().hide();
}
private void switchFragment(Fragment fragment) {
public void switchFragment(Fragment fragment) {
if (mFragment.isHidden())
getSupportFragmentManager().beginTransaction().show(mFragment).commit();
//判断当前显示的Fragment是不是切换的Fragment
......
......@@ -193,16 +193,16 @@ public class HomeFragment extends BaseFragemnt implements View.OnClickListener {
public void initBanner(View view, Bundle saveBundle) {
xb_banner = view.findViewById(R.id.xb_banner);
cv_banner = view.findViewById(R.id.cv_banner);
tv_banner_loading = view.findViewById(R.id.tv_banner_loading);
tv_banner_loading.setOnClickListener(this);
cv_banner.post(() -> {
ViewGroup.LayoutParams layoutParams = cv_banner.getLayoutParams();
layoutParams.width = cv_banner.getWidth();
layoutParams.height = layoutParams.width / 3;
cv_banner.setLayoutParams(layoutParams);
});
tv_banner_loading = view.findViewById(R.id.tv_banner_loading);
tv_banner_loading.setOnClickListener(this);
xb_banner.setOnItemClickListener((banner, model, v, position) ->
WebActivity.open(getContext(), "新闻", mcNewsList.get(position).getNews_url())
WebActivity.open(getContext(), getString(R.string.McNews), mcNewsList.get(position).getNews_url())
);
xb_banner.loadImage((banner, model, v, position) -> {
TextView tv_time, tv_title, tv_type;
......
package cn.garymb.ygomobile.ui.settings;
import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
......@@ -16,15 +18,25 @@ import androidx.recyclerview.widget.RecyclerView;
import cn.garymb.ygomobile.base.BaseFragemnt;
import cn.garymb.ygomobile.lite.R;
import cn.garymb.ygomobile.ui.adapters.SettingsListAdapter;
import cn.garymb.ygomobile.ui.home.HomeActivity;
import cn.garymb.ygomobile.ui.mycard.MycardFragment;
import cn.garymb.ygomobile.ui.mycard.base.OnMcUserListener;
import cn.garymb.ygomobile.ui.mycard.bean.McUser;
import cn.garymb.ygomobile.ui.mycard.mcchat.util.ImageUtil;
import cn.garymb.ygomobile.ui.plus.DialogPlus;
import cn.garymb.ygomobile.utils.McUserManagement;
public class PersonalFragment extends BaseFragemnt implements View.OnClickListener {
public class PersonalFragment extends BaseFragemnt implements OnMcUserListener {
private RelativeLayout rl_user;
private TextView tv_name;
private ImageView iv_avatar;
private McUserManagement userManagement;
private RecyclerView rv_list;
private SettingsListAdapter settingsAdapter;
private MycardFragment fragment_mycard;
private PersonalFragment fragment_personal;
//private SettingRecyclerViewAdapter settingAdpter;
@Nullable
......@@ -42,6 +54,8 @@ public class PersonalFragment extends BaseFragemnt implements View.OnClickListen
}
public void initView(View layoutView) {
fragment_mycard = new MycardFragment();
fragment_personal = new PersonalFragment();
//登录萌卡
rl_user = layoutView.findViewById(R.id.rl_user);
tv_name = layoutView.findViewById(R.id.tv_name);
......@@ -62,7 +76,7 @@ public class PersonalFragment extends BaseFragemnt implements View.OnClickListen
dialog.dismiss();
});
} else {
//((HomeActivity) getActivity()).selectMycard();
getParentFragmentManager().beginTransaction().hide(fragment_personal).show(fragment_mycard).commit();
}
});
//设置列表
......@@ -72,8 +86,22 @@ public class PersonalFragment extends BaseFragemnt implements View.OnClickListen
}
@Override
public void onClick(View view) {
public void onLogin(McUser user, String exception) {
if (TextUtils.isEmpty(exception)) {
tv_name.setText(user.getUsername());
ImageUtil.setImage(getActivity(), user.getAvatar_url(), iv_avatar);
}
}
@Override
public void onLogout() {
tv_name.setText(R.string.login_mycard);
iv_avatar.setImageResource(R.drawable.avatar);
}
@Override
public boolean isListenerEffective() {
return false;
}
/**
......
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