diff --git a/app/src/main/java/com/gh/common/databind/BindingAdapters.java b/app/src/main/java/com/gh/common/databind/BindingAdapters.java index 9444df4185..9883f355e2 100644 --- a/app/src/main/java/com/gh/common/databind/BindingAdapters.java +++ b/app/src/main/java/com/gh/common/databind/BindingAdapters.java @@ -13,6 +13,7 @@ import android.widget.EditText; import android.widget.LinearLayout; import android.widget.TextView; +import androidx.annotation.Nullable; import androidx.core.content.ContextCompat; import androidx.databinding.BindingAdapter; import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; @@ -317,7 +318,7 @@ public class BindingAdapters { public static void setDownloadButton(DownloadProgressBar progressBar, GameEntity gameEntity, ExposureEvent traceEvent, - View.OnClickListener clickCallBack) { + @Nullable View.OnClickListener clickCallBack) { // 判断是否显示按钮 if (gameEntity != null && Config.isShowDownload(gameEntity.getId()) @@ -393,7 +394,7 @@ public class BindingAdapters { // 点击事件 progressBar.setOnClickListener(v -> { - clickCallBack.onClick(v); + if (clickCallBack != null) clickCallBack.onClick(v); switch (progressBar.getDownloadType()) { case DOWNLOADING_PLUGIN: case DOWNLOADING_NORMAL: diff --git a/app/src/main/java/com/gh/common/util/DirectUtils.kt b/app/src/main/java/com/gh/common/util/DirectUtils.kt index fe2b5c0ce9..b0748d5eb6 100644 --- a/app/src/main/java/com/gh/common/util/DirectUtils.kt +++ b/app/src/main/java/com/gh/common/util/DirectUtils.kt @@ -17,6 +17,7 @@ import com.gh.gamecenter.download.DownloadFragment.Companion.INDEX_UPDATE import com.gh.gamecenter.entity.* import com.gh.gamecenter.eventbus.EBReuse import com.gh.gamecenter.eventbus.EBSkip +import com.gh.gamecenter.fragment.MainWrapperFragment import com.gh.gamecenter.game.columncollection.detail.ColumnCollectionDetailActivity import com.gh.gamecenter.manager.UserManager import com.gh.gamecenter.mygame.PlayedGameActivity @@ -374,7 +375,7 @@ object DirectUtils { // 这里换个线程操作是为了做一点延时 AppExecutor.ioExecutor.execute { - EventBus.getDefault().post(EBSkip(MainActivity.EB_SKIP_GAMEFRAGMENT, 1)) + EventBus.getDefault().post(EBSkip(MainActivity.EB_SKIP_MAIN, MainWrapperFragment.INDEX_ASK)) EventBus.getDefault().post(EBReuse(CommunityFragment.EB_RETRY_PAGE)) } } diff --git a/app/src/main/java/com/gh/gamecenter/MainActivity.java b/app/src/main/java/com/gh/gamecenter/MainActivity.java index bf8db9ed8d..11009530e2 100644 --- a/app/src/main/java/com/gh/gamecenter/MainActivity.java +++ b/app/src/main/java/com/gh/gamecenter/MainActivity.java @@ -1,6 +1,7 @@ package com.gh.gamecenter; import android.annotation.SuppressLint; +import android.app.Activity; import android.app.Dialog; import android.app.NotificationManager; import android.content.Context; @@ -95,6 +96,7 @@ import com.lightgame.download.DataWatcher; import com.lightgame.download.DownloadEntity; import com.lightgame.download.DownloadStatus; import com.lightgame.download.FileUtils; +import com.lightgame.utils.AppManager; import com.lightgame.utils.Util_System_Phone_State; import com.tencent.bugly.beta.tinker.TinkerManager; import com.tencent.bugly.crashreport.CrashReport; @@ -115,6 +117,8 @@ import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.Timer; +import java.util.TimerTask; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; @@ -131,8 +135,7 @@ import static com.gh.gamecenter.personal.PersonalFragment.LOGOUT_TAG; public class MainActivity extends BaseActivity { - public final static String EB_MAINACTIVITY_TAG = "MainActivity"; - public final static String EB_SKIP_GAMEFRAGMENT = "GameFragment"; + public final static String EB_SKIP_MAIN = "MainActivity"; public final static String SHOULD_INIT_IM = "should_init_im"; public final static String SWITCH_TO_COMMUNITY = "switch_to_community"; @@ -584,7 +587,7 @@ public class MainActivity extends BaseActivity { private void switchToCommunityTabAndRefresh() { getIntent().putExtra(SWITCH_TO_COMMUNITY, false); Log.e("Switch", "true"); - EventBus.getDefault().post(new EBSkip(MainActivity.EB_SKIP_GAMEFRAGMENT, 1)); + EventBus.getDefault().post(new EBSkip(MainActivity.EB_SKIP_MAIN, MainWrapperFragment.INDEX_ASK)); EventBus.getDefault().post(new EBReuse(CommunityFragment.EB_RETRY_PAGE)); } @@ -731,7 +734,7 @@ public class MainActivity extends BaseActivity { , "前往登录", "残忍拒绝", new DialogUtils.ConfirmListener() { @Override public void onConfirm() { - EventBus.getDefault().post(new EBSkip(MainActivity.EB_SKIP_GAMEFRAGMENT, INDEX_PERSONAL)); + EventBus.getDefault().post(new EBSkip(MainActivity.EB_SKIP_MAIN, INDEX_PERSONAL)); } }, null); } @@ -951,4 +954,23 @@ public class MainActivity extends BaseActivity { public String getActivityNameInChinese() { return "游戏首页"; } + + public static void skipToMainActivity(Context context, int position) { + Activity activity = AppManager.getInstance().findActivity(MainActivity.class); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1 + && activity != null && !activity.isDestroyed()) { + EventBus.getDefault().post(new EBSkip(MainActivity.EB_SKIP_MAIN, position)); + } else { + Timer timer = new Timer(); + timer.schedule(new TimerTask() { + @Override + public void run() { + EventBus.getDefault().post(new EBSkip(MainActivity.EB_SKIP_MAIN, position)); + } + }, 300); + } + + Intent intent = MainActivity.getMainIntent(context); + context.startActivity(intent); + } } diff --git a/app/src/main/java/com/gh/gamecenter/amway/search/AmwaySearchDefaultFragment.kt b/app/src/main/java/com/gh/gamecenter/amway/search/AmwaySearchDefaultFragment.kt index 88844ff45e..c736861b9d 100644 --- a/app/src/main/java/com/gh/gamecenter/amway/search/AmwaySearchDefaultFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/amway/search/AmwaySearchDefaultFragment.kt @@ -4,14 +4,13 @@ import android.os.Bundle import android.view.View import androidx.recyclerview.widget.LinearLayoutManager import com.gh.common.util.DialogUtils -import com.gh.common.util.DirectUtils import com.gh.common.util.observeNonNull import com.gh.common.util.viewModelProviderFromParent import com.gh.gamecenter.MainActivity import com.gh.gamecenter.R import com.gh.gamecenter.databinding.FragmentSearchDefaultBinding import com.gh.gamecenter.eventbus.EBSearch -import com.gh.gamecenter.eventbus.EBSkip +import com.gh.gamecenter.fragment.MainWrapperFragment import com.gh.gamecenter.search.SearchDefaultFragment import com.lightgame.utils.Util_System_Keyboard import kotlinx.android.synthetic.main.fragment_amway_search_default.* @@ -41,8 +40,7 @@ class AmwaySearchDefaultFragment : SearchDefaultFragment() { } noDataBtn.setOnClickListener { - DirectUtils.directToMainActivity(requireContext()) - noDataBtn.postDelayed({ EventBus.getDefault().post(EBSkip(MainActivity.EB_SKIP_GAMEFRAGMENT, 0)) }, 300) + MainActivity.skipToMainActivity(context, MainWrapperFragment.INDEX_HOME) } } diff --git a/app/src/main/java/com/gh/gamecenter/download/GameDownloadFragment.java b/app/src/main/java/com/gh/gamecenter/download/GameDownloadFragment.java index 95ac37dbea..f5eb7a536c 100644 --- a/app/src/main/java/com/gh/gamecenter/download/GameDownloadFragment.java +++ b/app/src/main/java/com/gh/gamecenter/download/GameDownloadFragment.java @@ -1,19 +1,17 @@ package com.gh.gamecenter.download; -import android.app.NotificationManager; -import android.content.Context; -import android.content.Intent; import android.os.Message; -import androidx.core.content.ContextCompat; -import androidx.recyclerview.widget.DefaultItemAnimator; -import androidx.recyclerview.widget.LinearLayoutManager; -import androidx.recyclerview.widget.RecyclerView; import android.view.MotionEvent; import android.view.View; import android.widget.LinearLayout; import android.widget.RelativeLayout; import android.widget.TextView; +import androidx.core.content.ContextCompat; +import androidx.recyclerview.widget.DefaultItemAnimator; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + import com.gh.base.fragment.BaseFragment; import com.gh.common.util.DataUtils; import com.gh.common.util.DialogUtils; @@ -28,8 +26,8 @@ import com.gh.gamecenter.R; import com.gh.gamecenter.eventbus.EBDownloadChanged; import com.gh.gamecenter.eventbus.EBMiPush; import com.gh.gamecenter.eventbus.EBPackage; -import com.gh.gamecenter.eventbus.EBSkip; import com.gh.gamecenter.eventbus.EBUISwitch; +import com.gh.gamecenter.fragment.MainWrapperFragment; import com.halo.assistant.HaloApp; import com.lightgame.download.DataWatcher; import com.lightgame.download.DownloadConfig; @@ -202,15 +200,7 @@ public class GameDownloadFragment extends BaseFragment implements View.OnClickLi mNoDataSkip.setVisibility(View.GONE); mNoDataSkipHintTv.setText("暂无下载"); mNoDataSkipBtn.setText("去首页看看"); - mNoDataSkipBtn.setOnClickListener(v -> { - Intent intent = new Intent(getActivity(), MainActivity.class); - intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); - getActivity().startActivity(intent); - - mNoDataSkipBtn.postDelayed(() -> - EventBus.getDefault().post(new EBSkip(MainActivity.EB_SKIP_GAMEFRAGMENT, 0)), - 300); - }); + mNoDataSkipBtn.setOnClickListener(v -> MainActivity.skipToMainActivity(getActivity(), MainWrapperFragment.INDEX_HOME)); mDownloadmanagerRv.setHasFixedSize(true); adapter = new GameDownloadFragmentAdapter(getActivity(), mNoDataSkip, url); diff --git a/app/src/main/java/com/gh/gamecenter/download/GameUpdateFragment.java b/app/src/main/java/com/gh/gamecenter/download/GameUpdateFragment.java index bac4697143..d9afb52dc2 100644 --- a/app/src/main/java/com/gh/gamecenter/download/GameUpdateFragment.java +++ b/app/src/main/java/com/gh/gamecenter/download/GameUpdateFragment.java @@ -1,29 +1,25 @@ package com.gh.gamecenter.download; -import androidx.lifecycle.ViewModelProviders; - import android.content.Intent; import android.os.Bundle; - -import androidx.annotation.Nullable; -import androidx.recyclerview.widget.LinearLayoutManager; -import androidx.recyclerview.widget.RecyclerView; - import android.view.View; import android.widget.LinearLayout; import android.widget.TextView; +import androidx.annotation.Nullable; +import androidx.lifecycle.ViewModelProviders; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + import com.gh.base.fragment.BaseFragment; import com.gh.common.util.EntranceUtils; import com.gh.gamecenter.MainActivity; import com.gh.gamecenter.R; import com.gh.gamecenter.eventbus.EBDownloadStatus; import com.gh.gamecenter.eventbus.EBReuse; -import com.gh.gamecenter.eventbus.EBSkip; +import com.gh.gamecenter.fragment.MainWrapperFragment; import com.gh.gamecenter.packagehelper.PackageViewModel; -import com.lightgame.utils.Utils; -import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; @@ -76,14 +72,7 @@ public class GameUpdateFragment extends BaseFragment { mGameUpdateNoDataSkip.setVisibility(View.GONE); mNoDataHintTv.setText("暂无更新"); mNoDataHintBtn.setText("去首页看看"); - mNoDataHintBtn.setOnClickListener(v -> { - Intent intent1 = new Intent(getActivity(), MainActivity.class); - intent1.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); - getActivity().startActivity(intent1); - mNoDataHintBtn.postDelayed(() -> { - EventBus.getDefault().post(new EBSkip(MainActivity.EB_SKIP_GAMEFRAGMENT, 0)); - }, 300); - }); + mNoDataHintBtn.setOnClickListener(v -> MainActivity.skipToMainActivity(getActivity(), MainWrapperFragment.INDEX_HOME)); mGameUpdateRv.setHasFixedSize(true); mGameUpdateRv.setLayoutManager(new LinearLayoutManager(getActivity())); diff --git a/app/src/main/java/com/gh/gamecenter/download/InstalledGameFragment.kt b/app/src/main/java/com/gh/gamecenter/download/InstalledGameFragment.kt index 4a4754d77e..ac9fd266c6 100644 --- a/app/src/main/java/com/gh/gamecenter/download/InstalledGameFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/download/InstalledGameFragment.kt @@ -22,13 +22,12 @@ import com.gh.gamecenter.entity.GameEntity import com.gh.gamecenter.entity.GameInstall import com.gh.gamecenter.eventbus.EBDownloadStatus import com.gh.gamecenter.eventbus.EBReuse -import com.gh.gamecenter.eventbus.EBSkip +import com.gh.gamecenter.fragment.MainWrapperFragment import com.gh.gamecenter.manager.PackagesManager import com.gh.gamecenter.normal.NormalFragment import com.gh.gamecenter.packagehelper.PackageViewModel import com.lightgame.download.DataWatcher import com.lightgame.download.DownloadEntity -import org.greenrobot.eventbus.EventBus import org.greenrobot.eventbus.Subscribe import org.greenrobot.eventbus.ThreadMode @@ -77,8 +76,7 @@ class InstalledGameFragment : NormalFragment(), OnRequestCallBackListener { mNoDataSkipHint.text = "暂无游戏" mNoDataSkipBtn.text = "查看精品推荐" mNoDataSkipBtn.setOnClickListener { - EventBus.getDefault().post(EBSkip(MainActivity.EB_SKIP_GAMEFRAGMENT, 0)) - requireActivity().finish() + MainActivity.skipToMainActivity(getActivity(), MainWrapperFragment.INDEX_HOME) } mInstallRv.layoutManager = LinearLayoutManager(requireContext()) diff --git a/app/src/main/java/com/gh/gamecenter/fragment/MainWrapperFragment.java b/app/src/main/java/com/gh/gamecenter/fragment/MainWrapperFragment.java index b674a60b31..ca772a8ae9 100644 --- a/app/src/main/java/com/gh/gamecenter/fragment/MainWrapperFragment.java +++ b/app/src/main/java/com/gh/gamecenter/fragment/MainWrapperFragment.java @@ -40,8 +40,7 @@ import java.util.List; import butterknife.BindView; -import static com.gh.gamecenter.MainActivity.EB_MAINACTIVITY_TAG; -import static com.gh.gamecenter.MainActivity.EB_SKIP_GAMEFRAGMENT; +import static com.gh.gamecenter.MainActivity.EB_SKIP_MAIN; /** * @author CsHeng @@ -189,13 +188,6 @@ public class MainWrapperFragment extends BaseFragment_ViewPager_Checkable { } } - @Override - protected boolean handleOnClick(View view) { - boolean res = super.handleOnClick(view); - EventBus.getDefault().post(new EBUISwitch(EB_MAINACTIVITY_TAG, mCheckedIndex)); - return res; - } - @Override protected void onPageChanged(int index) { super.onPageChanged(index); @@ -230,10 +222,8 @@ public class MainWrapperFragment extends BaseFragment_ViewPager_Checkable { @Subscribe(threadMode = ThreadMode.MAIN) public void onEventMainThread(EBSkip skip) { - if (EB_SKIP_GAMEFRAGMENT.equals(skip.getType())) { - EventBus.getDefault().post(new EBUISwitch(EB_MAINACTIVITY_TAG, skip.getCurrentItem())); + if (EB_SKIP_MAIN.equals(skip.getType())) { checkIndex(skip.getCurrentItem()); - EventBus.getDefault().post(new EBSkip(EB_MAINACTIVITY_TAG, skip.getCurrentItem())); mViewPager.setCurrentItem(skip.getCurrentItem(), false); } } diff --git a/app/src/main/java/com/gh/gamecenter/info/InfoWrapperFragment.java b/app/src/main/java/com/gh/gamecenter/info/InfoWrapperFragment.java index 89926aec2d..3b44994f63 100644 --- a/app/src/main/java/com/gh/gamecenter/info/InfoWrapperFragment.java +++ b/app/src/main/java/com/gh/gamecenter/info/InfoWrapperFragment.java @@ -1,20 +1,18 @@ package com.gh.gamecenter.info; import android.os.Bundle; -import androidx.annotation.Nullable; -import androidx.fragment.app.Fragment; import android.view.LayoutInflater; import android.view.View; +import androidx.annotation.Nullable; +import androidx.fragment.app.Fragment; + import com.gh.base.fragment.BaseFragment_TabLayout; import com.gh.common.util.DataCollectionUtils; -import com.gh.gamecenter.MainActivity; import com.gh.gamecenter.R; import com.gh.gamecenter.eventbus.EBUISwitch; import org.greenrobot.eventbus.EventBus; -import org.greenrobot.eventbus.Subscribe; -import org.greenrobot.eventbus.ThreadMode; import java.util.List; @@ -87,15 +85,4 @@ public class InfoWrapperFragment extends BaseFragment_TabLayout { break; } } - - @Subscribe(threadMode = ThreadMode.MAIN) - public void onEventMainThread(EBUISwitch busNine) { - if (MainActivity.EB_MAINACTIVITY_TAG.equals(busNine.getFrom())) { - if (busNine.getPosition() == 1) { - EventBus.getDefault().post(new EBUISwitch(EB_NEWSFRAGMENT_TAG, mCheckedIndex)); - } - } - } - - } diff --git a/app/src/main/java/com/gh/gamecenter/personal/PersonalFragment.java b/app/src/main/java/com/gh/gamecenter/personal/PersonalFragment.java index a95d3d484f..71fc4cad1b 100644 --- a/app/src/main/java/com/gh/gamecenter/personal/PersonalFragment.java +++ b/app/src/main/java/com/gh/gamecenter/personal/PersonalFragment.java @@ -481,7 +481,7 @@ public class PersonalFragment extends BaseFragment implements Observer - + android:background="@color/background" + fresco:layout_constraintLeft_toLeftOf="parent" + fresco:layout_constraintTop_toTopOf="parent" /> @@ -47,12 +51,12 @@ visibleGone="@{game.type.equals(`game`) && game.apk.size>0}" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_below="@id/game_image_line" - android:layout_alignParentRight="true" - android:layout_centerVertical="true" android:gravity="center" android:orientation="vertical" - android:visibility="gone"> + android:visibility="visible" + fresco:layout_constraintBottom_toBottomOf="@id/game_image_icon" + fresco:layout_constraintRight_toRightOf="parent" + fresco:layout_constraintTop_toTopOf="@id/game_image_icon"> + android:visibility="gone" + fresco:layout_constraintLeft_toLeftOf="parent" + fresco:layout_constraintRight_toRightOf="parent" + fresco:layout_constraintTop_toBottomOf="@id/game_image_icon" /> - + diff --git a/libraries/LGLibrary b/libraries/LGLibrary index cd48f8daff..6ba2fc4e19 160000 --- a/libraries/LGLibrary +++ b/libraries/LGLibrary @@ -1 +1 @@ -Subproject commit cd48f8daffb7f3d160b9f1758c9a12e57c00600e +Subproject commit 6ba2fc4e19995356f59775e83ed605551c3fe498