diff --git a/app/build.gradle b/app/build.gradle index 38af99061c..3aa9d4b364 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -273,8 +273,6 @@ dependencies { exclude module: "gsyvideoplayer-androidvideocache" }) implementation "com.shuyu:GSYVideoPlayer-exo2:$gsyVideo" -// implementation "com.shuyu:gsyVideoPlayer-armv7a:$gsyVideo" -// implementation "com.shuyu:gsyVideoPlayer-x86:$gsyVideo" implementation "com.github.wendux:DSBridge-Android:$dsBridge" diff --git a/app/src/main/java/com/gh/common/AppExecutor.kt b/app/src/main/java/com/gh/common/AppExecutor.kt index d219cc1e16..0f122a4f23 100644 --- a/app/src/main/java/com/gh/common/AppExecutor.kt +++ b/app/src/main/java/com/gh/common/AppExecutor.kt @@ -5,7 +5,8 @@ import android.os.Looper import com.gh.common.AppExecutor.ioExecutor import com.gh.common.AppExecutor.lightWeightIoExecutor import com.gh.common.AppExecutor.uiExecutor -import java.util.concurrent.* +import java.util.concurrent.Executor +import java.util.concurrent.Executors /** * APP 线程池管理类 @@ -18,11 +19,11 @@ import java.util.concurrent.* object AppExecutor { @JvmStatic - var uiExecutor = MainThreadExecutor() + val uiExecutor by lazy { MainThreadExecutor() } @JvmStatic - var lightWeightIoExecutor = Executors.newSingleThreadExecutor() + val lightWeightIoExecutor by lazy { Executors.newSingleThreadExecutor() } @JvmStatic - var ioExecutor = Executors.newCachedThreadPool() + val ioExecutor by lazy { Executors.newCachedThreadPool() } class MainThreadExecutor : Executor { private val mainThreadHandler = Handler(Looper.getMainLooper()) diff --git a/app/src/main/java/com/gh/common/DefaultWebViewUrlHandler.kt b/app/src/main/java/com/gh/common/DefaultWebViewUrlHandler.kt index 0b11d500e5..804636fad6 100644 --- a/app/src/main/java/com/gh/common/DefaultWebViewUrlHandler.kt +++ b/app/src/main/java/com/gh/common/DefaultWebViewUrlHandler.kt @@ -44,7 +44,7 @@ object DefaultWebViewUrlHandler { "qq" -> try { DirectUtils.directToQqConversation(context, id) - } catch (e: Exception) { + } catch (e: Throwable) { Utils.toast(context, "请检查是否已经安装手机QQ") e.printStackTrace() } diff --git a/app/src/main/java/com/gh/common/TimeElapsedHelper.kt b/app/src/main/java/com/gh/common/TimeElapsedHelper.kt index 2b47110b95..f29c8fef61 100644 --- a/app/src/main/java/com/gh/common/TimeElapsedHelper.kt +++ b/app/src/main/java/com/gh/common/TimeElapsedHelper.kt @@ -6,6 +6,7 @@ import android.os.Bundle import androidx.fragment.app.Fragment import androidx.fragment.app.FragmentManager import com.halo.assistant.HaloApp +import java.util.concurrent.ExecutorService import java.util.concurrent.Executors /** @@ -113,7 +114,7 @@ class TimeElapsedHelper(val fragment: Fragment?, val activity: Activity?) { } object TimeElapsedThreadHolder { - val threadService = Executors.newSingleThreadExecutor() + val threadService: ExecutorService by lazy { Executors.newSingleThreadExecutor() } } interface TimeoutCallback { diff --git a/app/src/main/java/com/gh/common/exposure/ExposureManager.kt b/app/src/main/java/com/gh/common/exposure/ExposureManager.kt index e7713b50b4..5edbc5d282 100644 --- a/app/src/main/java/com/gh/common/exposure/ExposureManager.kt +++ b/app/src/main/java/com/gh/common/exposure/ExposureManager.kt @@ -31,9 +31,9 @@ object ExposureManager { private val loghubHelper = LoghubHelper.getInstance() // exposureCache 用来过滤掉具有相同 id 的曝光事件,避免重复发送事件 - private val exposureSet = hashSetOf() - private val exposureExecutor = Executors.newSingleThreadExecutor() - private val exposureCache = FixedSizeLinkedHashSet(300) + private val exposureSet by lazy { hashSetOf() } + private val exposureExecutor by lazy { Executors.newSingleThreadExecutor() } + private val exposureCache by lazy { FixedSizeLinkedHashSet(300) } private val exposureDao by lazy { ExposureDatabase.buildDatabase(HaloApp.getInstance().application).logHubEventDao() } @JvmStatic diff --git a/app/src/main/java/com/gh/common/loghub/LoghubUtils.kt b/app/src/main/java/com/gh/common/loghub/LoghubUtils.kt index 2764536158..b6e0afbf8b 100644 --- a/app/src/main/java/com/gh/common/loghub/LoghubUtils.kt +++ b/app/src/main/java/com/gh/common/loghub/LoghubUtils.kt @@ -15,7 +15,7 @@ object LoghubUtils { private lateinit var mApplication: Application - private val loghubEventSet = hashSetOf() + private val loghubEventSet by lazy { hashSetOf() } private val loghubEventExecutor by lazy { Executors.newSingleThreadExecutor() } private val loghubEventDao by lazy { LoghubDatabase.buildDatabase(mApplication).logHubEventDao() } diff --git a/app/src/main/java/com/gh/common/util/RSEUtils.java b/app/src/main/java/com/gh/common/util/RSEUtils.java deleted file mode 100644 index 56a81e25dd..0000000000 --- a/app/src/main/java/com/gh/common/util/RSEUtils.java +++ /dev/null @@ -1,102 +0,0 @@ -package com.gh.common.util; - -import android.util.Base64; - -import java.io.ByteArrayInputStream; -import java.io.ByteArrayOutputStream; -import java.io.InputStream; -import java.security.KeyFactory; -import java.security.NoSuchAlgorithmException; -import java.security.PublicKey; -import java.security.spec.InvalidKeySpecException; -import java.security.spec.X509EncodedKeySpec; - -import javax.crypto.Cipher; - -public class RSEUtils { - - /** - * 公钥 - */ - private static final String PUBLIC_KEY = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQConqikyOCl5f/VO/vZ+s6wVOhFJcI7o7hYvaLQ5Lzt5/HXbozTeRrGonKFPJurapf9hzjkg0F4/BNFMGXRVlReVdwh+Px5rbXU/ceikF8Ouf67qxiGAuDVC+4e3eIHh+mH68DlqWFJ78sB80iSLXelflGuHkbTOTtaC5F2l+AgxQIDAQAB"; - - /** - * 加密算法RSA - */ - private static final String KEY_ALGORITHM = "RSA"; - - /** - * 使用公钥加密 - * - * @param content - * @return - */ - public static String encryptByPublic(String content) { - try { - PublicKey pubkey = getPublicKeyFromX509(); - - Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding"); - cipher.init(Cipher.ENCRYPT_MODE, pubkey); - - byte[] data = content.getBytes("UTF-8"); - byte[] output = cipher.doFinal(data); - - String s = new String(Base64.encode(output, Base64.DEFAULT)); - - return s; - } catch (Exception e) { - e.printStackTrace(); - } - return null; - } - - /** - * 得到公钥 - * - * @return PublicKey 公钥 - * @throws NoSuchAlgorithmException - * @throws InvalidKeySpecException - */ - private static PublicKey getPublicKeyFromX509() throws Exception { - byte[] decodedKey = Base64.decode(PUBLIC_KEY, Base64.DEFAULT); - X509EncodedKeySpec x509 = new X509EncodedKeySpec(decodedKey); - KeyFactory keyFactory = KeyFactory.getInstance(KEY_ALGORITHM); - return keyFactory.generatePublic(x509); - } - - /** - * 使用公钥解密 - * - * @param content 密文 - * @return 解密后的字符串 - */ - public static String decryptByPublic(String content) { - try { - PublicKey pubkey = getPublicKeyFromX509(); - Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding"); - cipher.init(Cipher.DECRYPT_MODE, pubkey); - InputStream ins = new ByteArrayInputStream(Base64.decode(content, - Base64.DEFAULT)); - ByteArrayOutputStream baos = new ByteArrayOutputStream(); - byte[] buffer = new byte[128]; - int len; - while ((len = ins.read(buffer)) != -1) { - byte[] block; - if (buffer.length == len) { - block = buffer; - } else { - block = new byte[len]; - for (int i = 0; i < len; i++) { - block[i] = buffer[i]; - } - } - baos.write(cipher.doFinal(block)); - } - return new String(baos.toByteArray(), "utf-8"); - } catch (Exception e) { - e.printStackTrace(); - } - return null; - } - -} diff --git a/app/src/main/java/com/gh/common/util/TrafficUtils.java b/app/src/main/java/com/gh/common/util/TrafficUtils.java deleted file mode 100644 index 26705986fa..0000000000 --- a/app/src/main/java/com/gh/common/util/TrafficUtils.java +++ /dev/null @@ -1,188 +0,0 @@ -package com.gh.common.util; - -import android.content.Context; -import android.content.pm.PackageInfo; -import android.content.pm.PackageManager; -import android.database.Cursor; -import android.database.sqlite.SQLiteDatabase; -import android.database.sqlite.SQLiteOpenHelper; -import android.net.TrafficStats; - -import java.util.Calendar; -import java.util.List; - -public class TrafficUtils { - - static TrafficUtils instance; - DB db; - Context context; - - private TrafficUtils(Context context) { - this.context = context.getApplicationContext(); - db = new DB(this.context); - } - - public static TrafficUtils getInstance(Context context) { - return getInstance(context, false); - } - - public static TrafficUtils getInstance(Context context, boolean update) { - if (instance == null) { - synchronized (TrafficUtils.class) { - if (instance == null) { - instance = new TrafficUtils(context); - } - } - } - if (update) { - instance.update(); - } - return instance; - } - - public void update() { - - // 获取所有的安装在手机上的应用软件的信息,并且获取这些软件里面的权限信息 - PackageManager pm = context.getPackageManager();// 获取系统应用包管理 - // 获取每个包内的androidmanifest.xml信息,它的权限等等 - List pinfos = pm.getInstalledPackages(PackageManager.GET_PERMISSIONS); - // 遍历每个应用包信息 - for (PackageInfo info : pinfos) { - // 请求每个程序包对应的androidManifest.xml里面的权限 - String[] premissions = info.requestedPermissions; - if (premissions != null && premissions.length > 0) { - // 找出需要网络服务的应用程序 - for (String premission : premissions) { - if ("android.permission.INTERNET".equals(premission)) { - // 获取每个应用程序在操作系统内的进程id - int uId = info.applicationInfo.uid; - // 如果返回-1,代表不支持使用该方法,注意必须是2.2以上的 - long rx = TrafficStats.getUidRxBytes(uId); - // 如果返回-1,代表不支持使用该方法,注意必须是2.2以上的 - long tx = TrafficStats.getUidTxBytes(uId); - if (rx >= 0 && tx >= 0) { - db.update(info.packageName, rx + tx); - } - } - } - } - } - - db.clean(Calendar.getInstance().getTimeInMillis() - 3600 * 24 * 30); - } - - public long getTraffic(List packageNameList) { - return this.getTraffic(packageNameList, Calendar.getInstance() - .getTimeInMillis() - 3600 * 24 * 7); - } - - public long getTraffic(List packageNameList, long from) { - return this.getTraffic(packageNameList, from, Calendar.getInstance() - .getTimeInMillis()); - } - - public long getTraffic(List packageNameList, long from, long to) { - long traffic = 0; - for (String packageName : packageNameList) { - traffic += db.getTraffic(packageName, from, to); - } - return traffic; - } - - public long getTraffice(String packageName) { - return db.getTraffic(packageName, Calendar.getInstance() - .getTimeInMillis() - 3600 * 24 * 7); - } - - public long getTraffice(String packageName, long from) { - return db.getTraffic(packageName, from); - } - - class DB extends SQLiteOpenHelper { - - static final String name = "gh_traffic.db"; - static final int version = 1; - String traffic = "CREATE TABLE traffic(" + "package text," - + "traffic integer not null," + "time integer not null" + ");"; - - public DB(Context context) { - super(context, name, null, version); - } - - @Override - public void onCreate(SQLiteDatabase db) { - db.execSQL(traffic); - } - - @Override - public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { - } - - public void update(String packageName, long traffic) { - String sql = "INSERT INTO traffic (package, traffic, time) VALUES (?, ?, ?)"; - Object[] bindArgs = new Object[]{packageName, traffic, - Calendar.getInstance().getTimeInMillis()}; - this.getWritableDatabase().execSQL(sql, bindArgs); - } - - public void clean(long time) { - String sql = "DELETE FROM traffic WHERE time < ? "; - Object[] bindArgs = new Object[]{time}; - this.getWritableDatabase().execSQL(sql, bindArgs); - } - - public long getTraffic(String packageName, long from) { - return getTraffic(packageName, from, Calendar.getInstance() - .getTimeInMillis()); - } - - public long getTraffic(String packageName, long from, long to) { - long traffic = 0; - String sql = "SELECT * FROM traffic WHERE package = ? AND time >= ? AND time <= ? ORDER BY time DESC"; - String selectionArgs[] = new String[]{packageName, - String.valueOf(from), String.valueOf(to)}; - Cursor cursor = this.getReadableDatabase().rawQuery(sql, - selectionArgs); - if (cursor.getCount() > 1) { - cursor.moveToFirst(); - long traffic1 = cursor - .getLong(cursor.getColumnIndex("traffic")); - // long time1 = cursor.getLong(cursor.getColumnIndex("time")); - cursor.moveToLast(); - long traffic2 = cursor - .getLong(cursor.getColumnIndex("traffic")); - // long time2 = cursor.getLong(cursor.getColumnIndex("time")); - traffic = traffic1 - traffic2; - // long cha = traffic1 - traffic2; - // if(cha > 0){ - // traffic = cha / (time2 - time1); - // } - } else if (cursor.getCount() == 1) { - sql = "SELECT * FROM traffic WHERE package = ? AND time < ? ORDER BY time DESC"; - selectionArgs = new String[]{packageName, - String.valueOf(from)}; - Cursor cursor2 = this.getReadableDatabase().rawQuery(sql, - selectionArgs); - if (cursor2.moveToNext()) { - cursor.moveToFirst(); - long traffic1 = cursor.getLong(cursor - .getColumnIndex("traffic")); - // long time1 = - // cursor.getLong(cursor.getColumnIndex("time")); - long traffic2 = cursor2.getLong(cursor - .getColumnIndex("traffic")); - // long time2 = - // cursor2.getLong(cursor.getColumnIndex("time")); - traffic = traffic1 - traffic2; - // long cha = traffic1 - traffic2; - // if(cha > 0){ - // traffic = cha / (time2 - time1); - // } - } - cursor2.close(); - } - cursor.close(); - return traffic; - } - } -} diff --git a/app/src/main/java/com/gh/gamecenter/MainActivity.java b/app/src/main/java/com/gh/gamecenter/MainActivity.java index f8570f720f..1e870d06fc 100644 --- a/app/src/main/java/com/gh/gamecenter/MainActivity.java +++ b/app/src/main/java/com/gh/gamecenter/MainActivity.java @@ -158,19 +158,18 @@ public class MainActivity extends BaseActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - setStatusBarColor(Color.TRANSPARENT); - - mSp = PreferenceManager.getDefaultSharedPreferences(this); mMainWrapperFragment = new MainWrapperFragment(); if (savedInstanceState != null) { mMainWrapperFragment.setArguments(savedInstanceState); } else if (getIntent() != null) { - Bundle extras = getIntent().getExtras(); - mMainWrapperFragment.setArguments(extras); + mMainWrapperFragment.setArguments(getIntent().getExtras()); } replaceFragment(mMainWrapperFragment); + setStatusBarColor(Color.TRANSPARENT); + mSp = PreferenceManager.getDefaultSharedPreferences(this); + isNewFirstLaunch = mSp.getBoolean("isNewFirstLaunchV" + PackageUtils.getVersionName(), true); if (isNewFirstLaunch) { final LunchType lunchType = DeviceTokenUtils.getLaunchType(); @@ -299,7 +298,6 @@ public class MainActivity extends BaseActivity { DisplayUtils.setLightStatusBar(this, false); } } - } } 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 249b93190e..67be70f45d 100644 --- a/app/src/main/java/com/gh/gamecenter/fragment/MainWrapperFragment.java +++ b/app/src/main/java/com/gh/gamecenter/fragment/MainWrapperFragment.java @@ -11,12 +11,6 @@ import android.widget.CheckedTextView; import android.widget.ImageView; import android.widget.TextView; -import androidx.annotation.ColorRes; -import androidx.annotation.Nullable; -import androidx.core.content.ContextCompat; -import androidx.fragment.app.Fragment; -import androidx.lifecycle.ViewModelProviders; - import com.airbnb.lottie.LottieAnimationView; import com.facebook.common.references.CloseableReference; import com.facebook.datasource.DataSource; @@ -43,10 +37,8 @@ import com.gh.common.view.ReserveDialog; import com.gh.common.view.WelcomeDialog; import com.gh.download.DownloadManager; import com.gh.gamecenter.R; -import com.gh.gamecenter.db.GameTrendsDao; import com.gh.gamecenter.entity.SettingsEntity; import com.gh.gamecenter.entity.SubjectRecommendEntity; -import com.gh.gamecenter.eventbus.EBConcernChanged; import com.gh.gamecenter.eventbus.EBReuse; import com.gh.gamecenter.eventbus.EBSkip; import com.gh.gamecenter.eventbus.EBUISwitch; @@ -70,16 +62,15 @@ import org.greenrobot.eventbus.ThreadMode; import java.util.List; +import androidx.annotation.ColorRes; +import androidx.annotation.Nullable; +import androidx.core.content.ContextCompat; +import androidx.fragment.app.Fragment; +import androidx.lifecycle.ViewModelProviders; import butterknife.BindView; import static com.gh.gamecenter.MainActivity.EB_SKIP_MAIN; -/** - * @author CsHeng - * @Date 05/05/2017 - * @Time 3:26 PM - */ - public class MainWrapperFragment extends BaseFragment_ViewPager_Checkable implements OnBackPressedListener { @BindView(R.id.view_shadow) @@ -113,12 +104,10 @@ public class MainWrapperFragment extends BaseFragment_ViewPager_Checkable implem public static final String EB_MAIN_SCROLL_TOP = "main_scroll_top"; - private SearchToolWrapperFragment mGameWrapperFragment; private MainWrapperViewModel mViewModel; private MessageUnreadViewModel mMessageUnreadViewModel; - private GameTrendsDao mGameTrendsDao; private HomeVideoFragment homeVideoFragment; private String[] resAssets = {"lottie/tab_home.json", "lottie/tab_game.json", "lottie/tab_video.json", "tab_community.gif", "tab_mine.gif"}; @@ -168,7 +157,6 @@ public class MainWrapperFragment extends BaseFragment_ViewPager_Checkable implem @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - mGameTrendsDao = new GameTrendsDao(getContext()); SubjectRecommendEntity defaultGameBarData = HomeBottomBarHelper.getDefaultGameBarData(); if (TextUtils.isEmpty(defaultGameBarData.getLink())) { @@ -185,18 +173,6 @@ public class MainWrapperFragment extends BaseFragment_ViewPager_Checkable implem mViewModel = ViewModelProviders.of(this).get(MainWrapperViewModel.class); mMessageUnreadViewModel = ViewModelProviders.of(this).get(MessageUnreadViewModel.class); mViewModel.getNavBar().observe(this, this::updateGameBarContent); - /*mViewModel.getConcernData().observe(this, concernData -> { - if (concernData != null && concernData.size() > 0) { - ConcernEntity entity = concernData.get(0); - long internetPostTime = entity.getTime(); - long readPostTime = mGameTrendsDao.findReadPostTime(UserManager.getInstance().getUserId()); - // 当上一个条产生小红点的条目不存在或者有新的条目时更新数据库 - if (readPostTime == 0 || readPostTime < internetPostTime) { - mGameTrendsDao.add(new GameTrendsInfo(UserManager.getInstance().getUserId(), internetPostTime, readPostTime, entity.getGameIcon())); - EventBus.getDefault().post(new EBReuse(DiscoverFragment.SHOW_DISCOVERY_DOT)); - } - } - });*/ mViewModel.getReserveDialog().observe(this, reserveData -> { if (reserveData != null && !reserveData.isEmpty()) { @@ -412,7 +388,6 @@ public class MainWrapperFragment extends BaseFragment_ViewPager_Checkable implem }); } - private void playAnimation(View view, int position) { CheckableLinearLayout checkableGroupChild = (CheckableLinearLayout) mCheckableGroup.getChildAt(position); View checkableView = checkableGroupChild.findCheckableImageView(checkableGroupChild); @@ -517,31 +492,6 @@ public class MainWrapperFragment extends BaseFragment_ViewPager_Checkable implem // 控制 我的光环消息未读红点 @Subscribe(threadMode = ThreadMode.MAIN) public void onEventMainThread(EBReuse reuse) { - /*if (PersonalFragment.MESSAGE_READ_OVER.equals(reuse.getType())) { // 消息阅读完成 - if (mMessageHintIv != null) { - mMessageHintIv.setVisibility(View.GONE); - } - } else if (PersonalFragment.MESSAGE_UNREAD_TAG.equals(reuse.getType())) { - if (mMessageHintIv != null) { - mMessageHintIv.setVisibility(View.VISIBLE); - } - } else if (DiscoverFragment.SHOW_DISCOVERY_DOT.equals(reuse.getType())) { - if (mDiscoveryHintIv != null) { - mDiscoveryHintIv.setVisibility(View.VISIBLE); - } - } else if (DiscoverFragment.HIDE_DISCOVERY_DOT.equals(reuse.getType())) { - if (mDiscoveryHintIv != null) { - mDiscoveryHintIv.setVisibility(View.GONE); - } - } else if (PersonalFragment.LOGOUT_TAG.equals(reuse.getType())) { - if (mDiscoveryHintIv != null) { - mDiscoveryHintIv.setVisibility(View.GONE); - } - } else if (PersonalFragment.LOGIN_TAG.equals(reuse.getType())) { - if (mDiscoveryHintIv != null) { - mViewModel.getDiscoveryData(true); - } - } */ if ("Refresh".equals(reuse.getType())) { SettingsEntity settings = Config.getSettings(); if (settings != null && !settings.showCommunityEntrance()) { @@ -552,14 +502,6 @@ public class MainWrapperFragment extends BaseFragment_ViewPager_Checkable implem } } - // 关注事件 - @Subscribe(threadMode = ThreadMode.MAIN) - public void onEventMainThread(EBConcernChanged changed) { - /*if (mDiscoveryHintIv != null) { - mViewModel.getDiscoveryData(true); - }*/ - } - public void setCurrentItem(int page) { mViewPager.setCurrentItem(page, false); changeColor(page); diff --git a/app/src/main/java/com/halo/assistant/HaloApp.java b/app/src/main/java/com/halo/assistant/HaloApp.java index 255ae93a12..94023bcf0a 100644 --- a/app/src/main/java/com/halo/assistant/HaloApp.java +++ b/app/src/main/java/com/halo/assistant/HaloApp.java @@ -7,10 +7,6 @@ import android.net.ConnectivityManager; import android.net.Uri; import android.text.TextUtils; -import androidx.collection.ArrayMap; -import androidx.lifecycle.ProcessLifecycleOwner; -import androidx.localbroadcastmanager.content.LocalBroadcastManager; - import com.gh.base.GHActivityLifecycleCallbacksImpl; import com.gh.common.AppExecutor; import com.gh.common.LocalBroadcastReceiver; @@ -50,6 +46,9 @@ import com.shuyu.gsyvideoplayer.cache.CacheFactory; import com.shuyu.gsyvideoplayer.player.PlayerFactory; import com.squareup.picasso.Picasso; +import androidx.collection.ArrayMap; +import androidx.lifecycle.ProcessLifecycleOwner; +import androidx.localbroadcastmanager.content.LocalBroadcastManager; import io.reactivex.plugins.RxJavaPlugins; import tv.danmaku.ijk.media.exo2.Exo2PlayerManager; import tv.danmaku.ijk.media.exo2.ExoPlayerCacheManager; @@ -127,9 +126,6 @@ public class HaloApp extends TinkerAppLike { mInstance = this; - GidHelper.getInstance().init(getApplication()); - ProcessLifecycleOwner.get().getLifecycle().addObserver(new ProcessorLifeCycleOwner()); - mChannel = ChannelReaderUtil.getChannel(getApplication()); if (mChannel == null || TextUtils.isEmpty(mChannel.trim())) { mChannel = Config.DEFAULT_CHANNEL; @@ -150,15 +146,6 @@ public class HaloApp extends TinkerAppLike { //初始化Fresco(BigImageViewer 已包含Fresco) BigImageViewer.initialize(FrescoImageLoader.with(getApplication())); - ExposureManager.init(); - LoghubUtils.init(getApplication()); - - // 避免在华为设备上出现 `Register too many Broadcast Receivers` 异常,可见 https://github.com/llew2011/HuaWeiVerifier - LoadedApkHuaWei.hookHuaWeiVerifier(getApplication()); - - PackageHelper.refreshLocalPackageList(); - PackageHelper.initList(); - initReceiver(); initLocalBroadcast(); @@ -170,9 +157,22 @@ public class HaloApp extends TinkerAppLike { // 初始化全局下载监听 DownloadObserver.initObserver(); + GidHelper.getInstance().init(getApplication()); + // 刷新内存中的用户信息,避免应用进程重建时因没有用户信息数据而显示为掉登录状态 UserRepository.getInstance(getApplication()).getLoginUserInfo(); + ProcessLifecycleOwner.get().getLifecycle().addObserver(new ProcessorLifeCycleOwner()); + + ExposureManager.init(); + LoghubUtils.init(getApplication()); + + PackageHelper.refreshLocalPackageList(); + PackageHelper.initList(); + + // 避免在华为设备上出现 `Register too many Broadcast Receivers` 异常,可见 https://github.com/llew2011/HuaWeiVerifier + LoadedApkHuaWei.hookHuaWeiVerifier(getApplication()); + GdtHelper.INSTANCE.init(getApplication()); // 预加载游戏库图标 SubjectRecommendEntity barData = HomeBottomBarHelper.getDefaultGameBarData();