diff --git a/app/src/main/java/com/gh/common/DefaultJsApi.kt b/app/src/main/java/com/gh/common/DefaultJsApi.kt index 2860bfda85..1fe22172b4 100644 --- a/app/src/main/java/com/gh/common/DefaultJsApi.kt +++ b/app/src/main/java/com/gh/common/DefaultJsApi.kt @@ -143,6 +143,20 @@ class DefaultJsApi(var context: Context) { context?.startActivity(ImageViewerActivity.getIntent(context, imageEvent.imageList, imageEvent.position, "浏览器")) } + @JavascriptInterface + fun isInstalled(event: Any): String { + val localInstalledPackageList = PackageUtils.getAllPackageName(HaloApp.getInstance().application) + val packageNameList: ArrayList = event.toString().toObject() ?: ArrayList() + + for (packageName in packageNameList) { + if (!localInstalledPackageList.contains(packageName)) { + return "false" + } + } + + return "true" + } + @JavascriptInterface fun openBase64Image(event: Any) { val context = CurrentActivityHolder.getCurrentActivity() diff --git a/app/src/main/java/com/gh/common/DefaultUrlHandler.kt b/app/src/main/java/com/gh/common/DefaultUrlHandler.kt index 9e2d92be4a..a3c7adc8b6 100644 --- a/app/src/main/java/com/gh/common/DefaultUrlHandler.kt +++ b/app/src/main/java/com/gh/common/DefaultUrlHandler.kt @@ -4,11 +4,7 @@ import android.content.Context import android.content.Intent import android.net.Uri import android.text.TextUtils -import com.gh.common.util.CheckLoginUtils -import com.gh.common.util.DialogUtils -import com.gh.common.util.DirectUtils -import com.gh.common.util.DirectUtils.directToArticle -import com.gh.common.util.DirectUtils.directToGameDetail +import com.gh.common.util.* import com.gh.common.util.DirectUtils.directToGameDetailVideoStreaming import com.gh.common.util.DirectUtils.directToGameVideo import com.gh.common.util.DirectUtils.directToVideoDetail @@ -229,6 +225,23 @@ object DefaultUrlHandler { } return true } + + if (url.startsWith("alipays:") || url.startsWith("alipay")) { + try { + context.startActivity(Intent("android.intent.action.VIEW", Uri.parse(url))) + } catch (e: java.lang.Exception) { + ToastUtils.showToast("请安装支付宝客户端") + } + return true + } else if (url.startsWith("weixin")) { + try { + context.startActivity(Intent("android.intent.action.VIEW", Uri.parse(url))) + } catch (e: java.lang.Exception) { + ToastUtils.showToast("请安装微信客户端") + } + return true + } + if ("http" != uri.scheme && "https" != uri.scheme) return true return false } diff --git a/app/src/main/java/com/gh/common/util/ShareUtils.java b/app/src/main/java/com/gh/common/util/ShareUtils.java index 04d9eb7936..bec6f11f6e 100644 --- a/app/src/main/java/com/gh/common/util/ShareUtils.java +++ b/app/src/main/java/com/gh/common/util/ShareUtils.java @@ -27,6 +27,10 @@ import android.widget.TextView; import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.RecyclerView; +import com.facebook.common.references.CloseableReference; +import com.facebook.datasource.DataSource; +import com.facebook.imagepipeline.datasource.BaseBitmapDataSubscriber; +import com.facebook.imagepipeline.image.CloseableImage; import com.gh.common.constant.Config; import com.gh.gamecenter.R; import com.gh.gamecenter.WeiBoShareActivity; @@ -243,17 +247,17 @@ public class ShareUtils { e.printStackTrace(); } - contentView.setOnClickListener(v -> popupWindow.get().dismiss()); + contentView.setOnClickListener(v -> safelyDismiss()); contentView.setOnKeyListener((v, keyCode, event) -> { if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0 - && popupWindow != null + && popupWindow.get() != null && popupWindow.get().isShowing()) { if (callBack != null) { callBack.onCancel(); } - popupWindow.get().dismiss(); + safelyDismiss(); } return false; }); @@ -294,7 +298,7 @@ public class ShareUtils { } if (mShareEntrance != ShareEntrance.shareGh) { - popupWindow.get().dismiss(); + safelyDismiss(); } } @@ -334,7 +338,7 @@ public class ShareUtils { loadBitmapAndShare(shareIcon, msg, req); if (mShareEntrance != ShareEntrance.shareGh) { - popupWindow.get().dismiss(); + safelyDismiss(); } } @@ -449,7 +453,7 @@ public class ShareUtils { } if (mShareEntrance != ShareEntrance.shareGh) { - popupWindow.get().dismiss(); + safelyDismiss(); } } @@ -494,7 +498,7 @@ public class ShareUtils { loadBitmapAndShare(shareIcon, msg, req); if (mShareEntrance != ShareEntrance.shareGh) { - popupWindow.get().dismiss(); + safelyDismiss(); } } @@ -515,7 +519,7 @@ public class ShareUtils { if (mShareEntrance != ShareEntrance.shareGh) { - popupWindow.get().dismiss(); + safelyDismiss(); } } @@ -557,8 +561,8 @@ public class ShareUtils { e.printStackTrace(); } - if (mShareEntrance != ShareEntrance.shareGh) { - popupWindow.get().dismiss(); + if (mShareEntrance != ShareEntrance.shareGh ) { + safelyDismiss(); } } @@ -570,7 +574,7 @@ public class ShareUtils { cmb.setText(copyContent); if (mShareEntrance != ShareEntrance.shareGh) { Utils.toast(mContext, "复制成功"); - popupWindow.get().dismiss(); + safelyDismiss(); } else { Utils.toast(mContext, "复制成功,请到微信/QQ粘贴分享"); } @@ -656,7 +660,7 @@ public class ShareUtils { break; case 7: if (mShareEntrance != ShareEntrance.shareGh) { - popupWindow.get().dismiss(); + safelyDismiss(); } else { shareType = "copy_link"; LogUtils.uploadShareType(shareType, shareEntrance.getName(), shareUrl, mTitle, mSummary, resourceId); @@ -684,6 +688,12 @@ public class ShareUtils { } } } + + private void safelyDismiss() { + if (popupWindow.get() != null) { + popupWindow.get().dismiss(); + } + } interface OnItemClickListener { void onItemClick(int position); diff --git a/app/src/main/java/com/gh/common/videolog/VideoRecordUtils.kt b/app/src/main/java/com/gh/common/videolog/VideoRecordUtils.kt index 6b398b7d94..31570a0cb6 100644 --- a/app/src/main/java/com/gh/common/videolog/VideoRecordUtils.kt +++ b/app/src/main/java/com/gh/common/videolog/VideoRecordUtils.kt @@ -61,7 +61,7 @@ object VideoRecordUtils { if (!UserManager.getInstance().isLoggedIn) return val requestMap = HashMap() val videoIds = videoRecordSet.toList().map { it.videoId } - requestMap["g_id"] = HaloApp.getInstance().gid + requestMap["g_id"] = HaloApp.getInstance().gid ?: "" requestMap["time"] = time requestMap["video_id"] = videoIds RetrofitManager.getInstance(HaloApp.getInstance().application).api diff --git a/app/src/main/java/com/gh/common/view/AdBannerView.kt b/app/src/main/java/com/gh/common/view/AdBannerView.kt index 6f5b89e06b..26dde9c6c0 100644 --- a/app/src/main/java/com/gh/common/view/AdBannerView.kt +++ b/app/src/main/java/com/gh/common/view/AdBannerView.kt @@ -190,8 +190,8 @@ class AdBannerView : LinearLayout { override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) { val ad = mDatas[position % mDatas.size] - val view = holder.itemView as ImageView - Picasso.with(context).load(ad.image).into(view) + val view = holder.itemView as SimpleDraweeView + ImageUtils.display(view,ad.image) holder.itemView.setOnClickListener { onItemClick?.invoke(position % mDatas.size) } diff --git a/app/src/main/java/com/gh/common/view/ExpandTextView.java b/app/src/main/java/com/gh/common/view/ExpandTextView.java index 91de758c86..0fa2b85bb4 100644 --- a/app/src/main/java/com/gh/common/view/ExpandTextView.java +++ b/app/src/main/java/com/gh/common/view/ExpandTextView.java @@ -194,6 +194,8 @@ public class ExpandTextView extends AppCompatTextView { msp.replace(expandTextStartPosition, length, finalEndText + mExpandText); + if (expandTextStartPosition + mEndText.length() >= msp.length()) return; + msp.setSpan(new ClickableSpan() { @Override public void updateDrawState(@NonNull TextPaint ds) { diff --git a/app/src/main/java/com/gh/common/view/dsbridge/DWebView.java b/app/src/main/java/com/gh/common/view/dsbridge/DWebView.java index 48a2fe1b20..77fcf98c66 100644 --- a/app/src/main/java/com/gh/common/view/dsbridge/DWebView.java +++ b/app/src/main/java/com/gh/common/view/dsbridge/DWebView.java @@ -75,6 +75,12 @@ public class DWebView extends WebView { } } + @Keep + @JavascriptInterface + public String call(String methodName) { + return call(methodName, ""); + } + @Keep @JavascriptInterface public String call(String methodName, String argStr) { @@ -93,7 +99,7 @@ public class DWebView extends WebView { PrintDebugInfo(error); return ret.toString(); } - Object arg=null; + Object arg = null; Method method = null; String callback = null; @@ -102,7 +108,7 @@ public class DWebView extends WebView { if (args.has("_dscbstub")) { callback = args.getString("_dscbstub"); } - if(args.has("data")) { + if (args.has("data")) { arg = args.get("data"); } } catch (JSONException e) { @@ -123,7 +129,10 @@ public class DWebView extends WebView { try { method = cls.getMethod(methodName, new Class[]{Object.class}); } catch (Exception ex) { - + try { + method = cls.getMethod(methodName, new Class[]{}); + } catch (Exception ignore) { + } } } @@ -187,7 +196,12 @@ public class DWebView extends WebView { } }); } else { - retData = method.invoke(jsb, arg); + Class[] methodParameterTypes = method.getParameterTypes(); + if (methodParameterTypes.length == 0) { + retData = method.invoke(jsb); + } else { + retData = method.invoke(jsb, arg); + } ret.put("code", 0); ret.put("data", retData); return ret.toString(); @@ -307,7 +321,10 @@ public class DWebView extends WebView { try { method = cls.getMethod(nameStr[1], new Class[]{Object.class}); } catch (Exception ex) { - + try { + method = cls.getMethod(nameStr[1], new Class[]{}); + } catch (Exception ignore) { + } } } if (method != null) { @@ -336,7 +353,7 @@ public class DWebView extends WebView { || javascriptCloseWindowListener.onClose()) { Context context = getContext(); if (context instanceof Activity) { - ((Activity)context).onBackPressed(); + ((Activity) context).onBackPressed(); } } } @@ -359,7 +376,7 @@ public class DWebView extends WebView { @Keep @JavascriptInterface - public void returnValue(final Object obj){ + public void returnValue(final Object obj) { runOnMainThread(new Runnable() { @Override public void run() { @@ -422,9 +439,9 @@ public class DWebView extends WebView { runOnMainThread(new Runnable() { @Override public void run() { - if (url != null && url.startsWith("javascript:")){ + if (url != null && url.startsWith("javascript:")) { DWebView.super.loadUrl(url); - }else{ + } else { callInfoList = new ArrayList<>(); DWebView.super.loadUrl(url); } @@ -444,9 +461,9 @@ public class DWebView extends WebView { runOnMainThread(new Runnable() { @Override public void run() { - if (url != null && url.startsWith("javascript:")){ + if (url != null && url.startsWith("javascript:")) { DWebView.super.loadUrl(url, additionalHttpHeaders); - }else{ + } else { callInfoList = new ArrayList<>(); DWebView.super.loadUrl(url, additionalHttpHeaders); } @@ -996,7 +1013,4 @@ public class DWebView extends WebView { mainHandler.post(runnable); } - - - } diff --git a/app/src/main/java/com/gh/gamecenter/NetworkDiagnosisActivity.kt b/app/src/main/java/com/gh/gamecenter/NetworkDiagnosisActivity.kt index 9d47533654..352112968e 100644 --- a/app/src/main/java/com/gh/gamecenter/NetworkDiagnosisActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/NetworkDiagnosisActivity.kt @@ -17,11 +17,11 @@ import android.webkit.WebView import android.webkit.WebViewClient import android.widget.ScrollView import android.widget.TextView -import com.gh.base.BaseActivity import com.gh.base.ToolBarActivity import com.gh.common.util.CommentUtils import com.gh.common.util.DeviceUtils import com.gh.common.util.DialogUtils +import com.gh.common.util.tryCatchInRelease import com.gh.gamecenter.retrofit.Response import io.reactivex.Observable import io.reactivex.ObservableOnSubscribe @@ -67,85 +67,85 @@ class NetworkDiagnosisActivity : ToolBarActivity() { Observable.create(ObservableOnSubscribe { - var progress = 0 + var progress = 0 - // 1.获取当前网络情况,network/ip/mac/sim + // 1.获取当前网络情况,network/ip/mac/sim - // Network 2G/3G/4G/WIFI - builder.append("Network:") - builder.append(DeviceUtils.getNetwork(applicationContext)) + // Network 2G/3G/4G/WIFI + builder.append("Network:") + builder.append(DeviceUtils.getNetwork(applicationContext)) + builder.append("\n") + + progress += 3 + it.onNext(ProgressAndDetail(progress, builder.toString())) + + // IP + builder.append("IP:") + builder.append(DeviceUtils.getIPAddress(applicationContext)) + builder.append("\n") + + progress += 3 + it.onNext(ProgressAndDetail(progress, builder.toString())) + + // MAC + builder.append("MAC:") + builder.append(DeviceUtils.getMac(applicationContext)) + builder.append("\n") + + progress += 3 + it.onNext(ProgressAndDetail(progress, builder.toString())) + + // SIM + builder.append("SIM:") + builder.append(DeviceUtils.getSim(applicationContext)) + builder.append("\n") + + progress += 3 + it.onNext(ProgressAndDetail(progress, builder.toString())) + + builder.append("-----------------------------------------------------------------------\n") + + // 2.ping域名 + val domains = arrayOf("api.ghzs.com", "download.ghzs.com", "apk.ghzs666.com", "image.ghzs666.com", "image.ghzhushou.com") + for (domain in domains) { + builder.append(DeviceUtils.ping(domain)) + builder.append("-----------------------------------------------------------------------\n") + progress += 7 + it.onNext(ProgressAndDetail(progress, builder.toString())) + } + + // 3.okhttp访问链接 + val urls = arrayOf("https://api.ghzs.com/v3d3/index/columns", "https://download.ghzs.com/game?id=55097638fc1a6fa45f8b4568&platform=9u", "https://apk.ghzs666.com/packed/5af00abc02b30f7c038b456c.apk", "http://image.ghzs666.com/pic/5b29b3c92924bcaf5d438d38.jpg", "http://image.ghzhushou.com/pic/586cad378ab49e0f1b91b3e8.png") + for (url in urls) { + builder.append("Url:") + builder.append(url) + builder.append("\n") + + val client = OkHttpClient() + val request = Request.Builder() + .head() + .url(url) + .build() + try { + val response = client.newCall(request).execute() + builder.append("Success:\n") + builder.append("Response:\n") + builder.append(response.toString()) builder.append("\n") - - progress += 3 - it.onNext(ProgressAndDetail(progress, builder.toString())) - - // IP - builder.append("IP:") - builder.append(DeviceUtils.getIPAddress(applicationContext)) + builder.append("Response Header:\n") + builder.append(response.headers().toString()) builder.append("\n") + } catch (e: IOException) { + builder.append("Error:\n") + builder.append(Log.getStackTraceString(e)) + } + builder.append("-----------------------------------------------------------------------\n") + progress += 7 + it.onNext(ProgressAndDetail(progress, builder.toString())) + } - progress += 3 - it.onNext(ProgressAndDetail(progress, builder.toString())) - - // MAC - builder.append("MAC:") - builder.append(DeviceUtils.getMac(applicationContext)) - builder.append("\n") - - progress += 3 - it.onNext(ProgressAndDetail(progress, builder.toString())) - - // SIM - builder.append("SIM:") - builder.append(DeviceUtils.getSim(applicationContext)) - builder.append("\n") - - progress += 3 - it.onNext(ProgressAndDetail(progress, builder.toString())) - - builder.append("-----------------------------------------------------------------------\n") - - // 2.ping域名 - val domains = arrayOf("api.ghzs.com", "download.ghzs.com", "apk.ghzs666.com", "image.ghzs666.com", "image.ghzhushou.com") - for (domain in domains) { - builder.append(DeviceUtils.ping(domain)) - builder.append("-----------------------------------------------------------------------\n") - progress += 7 - it.onNext(ProgressAndDetail(progress, builder.toString())) - } - - // 3.okhttp访问链接 - val urls = arrayOf("https://api.ghzs.com/v3d3/index/columns", "https://download.ghzs.com/game?id=55097638fc1a6fa45f8b4568&platform=9u", "https://apk.ghzs666.com/packed/5af00abc02b30f7c038b456c.apk", "http://image.ghzs666.com/pic/5b29b3c92924bcaf5d438d38.jpg", "http://image.ghzhushou.com/pic/586cad378ab49e0f1b91b3e8.png") - for (url in urls) { - builder.append("Url:") - builder.append(url) - builder.append("\n") - - val client = OkHttpClient() - val request = Request.Builder() - .head() - .url(url) - .build() - try { - val response = client.newCall(request).execute() - builder.append("Success:\n") - builder.append("Response:\n") - builder.append(response.toString()) - builder.append("\n") - builder.append("Response Header:\n") - builder.append(response.headers().toString()) - builder.append("\n") - } catch (e: IOException) { - builder.append("Error:\n") - builder.append(Log.getStackTraceString(e)) - } - builder.append("-----------------------------------------------------------------------\n") - progress += 7 - it.onNext(ProgressAndDetail(progress, builder.toString())) - } - - it.onComplete() - }).subscribeOn(Schedulers.io()) + it.onComplete() + }).subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(object : Response() { override fun onNext(response: ProgressAndDetail) { @@ -185,44 +185,46 @@ class NetworkDiagnosisActivity : ToolBarActivity() { // 等待10秒,等待js检查完成 view.postDelayed({ // WebView生成长图,也就是超过一屏的图片,代码中的bitmap就是最后生成的长图 - mWebView.measure(View.MeasureSpec.makeMeasureSpec(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED), - View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED)) - mWebView.layout(0, 0, mWebView.measuredWidth, mWebView.measuredHeight) - mWebView.isDrawingCacheEnabled = true - mWebView.buildDrawingCache() - val bitmap = Bitmap.createBitmap(mWebView.measuredWidth, - mWebView.measuredHeight, Bitmap.Config.ARGB_8888) + tryCatchInRelease { + mWebView.measure(View.MeasureSpec.makeMeasureSpec(View.MeasureSpec.UNSPECIFIED, View.MeasureSpec.UNSPECIFIED), + View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED)) + mWebView.layout(0, 0, mWebView.measuredWidth, mWebView.measuredHeight) + mWebView.isDrawingCacheEnabled = true + mWebView.buildDrawingCache() + val bitmap = Bitmap.createBitmap(mWebView.measuredWidth, + mWebView.measuredHeight, Bitmap.Config.ARGB_8888) - // 画布的宽高和WebView的网页保持一致 - val canvas = Canvas(bitmap) - val paint = Paint() - canvas.drawBitmap(bitmap, 0F, mWebView.measuredHeight.toFloat(), paint) - mWebView.draw(canvas) + // 画布的宽高和WebView的网页保持一致 + val canvas = Canvas(bitmap) + val paint = Paint() + canvas.drawBitmap(bitmap, 0F, mWebView.measuredHeight.toFloat(), paint) + mWebView.draw(canvas) - // 保存成文件 - val filePath = bitmap2File(bitmap) + // 保存成文件 + val filePath = bitmap2File(bitmap) - builder.append("WebView Long Image Path:\n") - builder.append(filePath) - builder.append("\n") - builder.append("\n") - builder.append(mSuccessHint) + builder.append("WebView Long Image Path:\n") + builder.append(filePath) + builder.append("\n") + builder.append("\n") + builder.append(mSuccessHint) - builder.setSpan(object : ClickableSpan() { - override fun updateDrawState(ds: TextPaint) { - super.updateDrawState(ds) - ds.color = resources.getColor(R.color.theme_font) - ds.isUnderlineText = false - } + builder.setSpan(object : ClickableSpan() { + override fun updateDrawState(ds: TextPaint) { + super.updateDrawState(ds) + ds.color = resources.getColor(R.color.theme_font) + ds.isUnderlineText = false + } - override fun onClick(widget: View) { - CommentUtils.copyText(builder.toString().replace(mSuccessHint, ""), applicationContext) - } - }, builder.length - mSuccessHint.length, builder.length, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE) + override fun onClick(widget: View) { + CommentUtils.copyText(builder.toString().replace(mSuccessHint, ""), applicationContext) + } + }, builder.length - mSuccessHint.length, builder.length, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE) - mResult.text = builder - mResult.setMovementMethod(LinkMovementMethod.getInstance()) - setResultProgress(100) + mResult.text = builder + mResult.setMovementMethod(LinkMovementMethod.getInstance()) + setResultProgress(100) + } }, 1000) } } @@ -252,7 +254,7 @@ class NetworkDiagnosisActivity : ToolBarActivity() { override fun handleBackPressed(): Boolean { if (mProgressData < 100) { DialogUtils.showAlertDialog(this, "确认退出", "网络诊断还未完成,退出会终止所有诊断进程,确定退出吗?" - ,"确定", "取消", DialogUtils.ConfirmListener { + , "确定", "取消", DialogUtils.ConfirmListener { finish() }, null) return true diff --git a/app/src/main/java/com/gh/gamecenter/SplashScreenActivity.java b/app/src/main/java/com/gh/gamecenter/SplashScreenActivity.java index 6970cbdabf..e30222afbe 100644 --- a/app/src/main/java/com/gh/gamecenter/SplashScreenActivity.java +++ b/app/src/main/java/com/gh/gamecenter/SplashScreenActivity.java @@ -15,6 +15,12 @@ import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.core.app.ActivityCompat; +import androidx.viewpager.widget.PagerAdapter; +import androidx.viewpager.widget.ViewPager; + import com.g00fy2.versioncompare.Version; import com.gh.base.BaseActivity; import com.gh.common.AppExecutor; @@ -33,6 +39,7 @@ import com.gh.common.util.PackageUtils; import com.gh.common.util.PlatformUtils; import com.gh.common.util.SPUtils; import com.gh.common.util.TagUtils; +import com.gh.common.util.TeaHelper; import com.gh.common.util.UsageStatsHelper; import com.gh.download.DownloadManager; import com.gh.gamecenter.entity.AuthDialogEntity; @@ -56,11 +63,6 @@ import java.util.Date; import java.util.List; import java.util.Locale; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.core.app.ActivityCompat; -import androidx.viewpager.widget.PagerAdapter; -import androidx.viewpager.widget.ViewPager; import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.schedulers.Schedulers; import pub.devrel.easypermissions.AfterPermissionGranted; @@ -276,6 +278,9 @@ public class SplashScreenActivity extends BaseActivity { private void launchMainActivity() { getUniqueId(); + // 在可能获取了相关权限后才初始化今日头条SDK + TeaHelper.init(getApplication(), HaloApp.getInstance().getChannel()); + Bundle bundle = getIntent().getExtras(); Intent intent = new Intent(SplashScreenActivity.this, MainActivity.class); if (bundle != null) intent.putExtras(bundle); diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/fuli/FuLiFragment.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/fuli/FuLiFragment.kt index 1f796dbf96..e2f8ae528d 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/fuli/FuLiFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/fuli/FuLiFragment.kt @@ -80,7 +80,7 @@ class FuLiFragment : BaseFragment() { mFuLiViewModel?.fuFiDataLD?.observe(this, Observer { mViewSkeletonScreen.hide() - reuse_ll_loading.visibility = View.GONE + reuse_ll_loading?.visibility = View.GONE if (it.status == Status.SUCCESS) { mAdapter?.itemList = it.data diff --git a/app/src/main/java/com/gh/gamecenter/servers/GameServersActivity.kt b/app/src/main/java/com/gh/gamecenter/servers/GameServersActivity.kt index 4a1dff84de..29b3dd0588 100644 --- a/app/src/main/java/com/gh/gamecenter/servers/GameServersActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/servers/GameServersActivity.kt @@ -88,7 +88,7 @@ class GameServersActivity : ToolBarActivity() { private fun setPageScrollState(state: Int) { runOnIoThread { for (fragment in mFragments) { - if (fragment.userVisibleHint) { + if (fragment.userVisibleHint && fragment.host != null) { val fragments = fragment.childFragmentManager.fragments for (childFragment in fragments) { if (childFragment is GameServersContentFragment) { diff --git a/app/src/main/java/com/gh/gamecenter/video/detail/HomeVideoFragment.kt b/app/src/main/java/com/gh/gamecenter/video/detail/HomeVideoFragment.kt index cf66a2f8c3..24010d95ce 100644 --- a/app/src/main/java/com/gh/gamecenter/video/detail/HomeVideoFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/video/detail/HomeVideoFragment.kt @@ -44,10 +44,10 @@ class HomeVideoFragment : BaseLazyFragment() { //预加载广告图片 val videoAdvertisement = Config.getSettings()?.videoAdvertisement videoAdvertisement?.left?.let { ads -> - ads.forEach { Picasso.with(requireContext()).load(it.image).fetch() } + ads.forEach { ImageUtils.prefetchToDiskCache(it.image) } } videoAdvertisement?.right?.let { ads -> - ads.forEach { Picasso.with(requireContext()).load(it.image).fetch() } + ads.forEach { ImageUtils.prefetchToDiskCache(it.image) } } } diff --git a/app/src/main/java/com/halo/assistant/HaloApp.java b/app/src/main/java/com/halo/assistant/HaloApp.java index 1536888f8e..8da7fe384b 100644 --- a/app/src/main/java/com/halo/assistant/HaloApp.java +++ b/app/src/main/java/com/halo/assistant/HaloApp.java @@ -28,7 +28,6 @@ import com.gh.common.util.DownloadObserver; import com.gh.common.util.GdtHelper; import com.gh.common.util.HomeBottomBarHelper; import com.gh.common.util.PackageHelper; -import com.gh.common.util.TeaHelper; import com.gh.common.util.TimestampUtils; import com.gh.common.videolog.VideoRecordUtils; import com.gh.gamecenter.BuildConfig; @@ -138,7 +137,6 @@ public class HaloApp extends TinkerAppLike { PushManager.init(mChannel); - TeaHelper.init(getApplication(), mChannel); DataUtils.init(getApplication(), mChannel); GidHelper.getInstance().init(getApplication()); // TTAdSdk.init(getApplication(), new TTAdConfig.Builder().appId(Config.TTAD_APPID) diff --git a/app/src/main/res/layout/game_item.xml b/app/src/main/res/layout/game_item.xml index 72f0e718fa..a2ff7eab1e 100644 --- a/app/src/main/res/layout/game_item.xml +++ b/app/src/main/res/layout/game_item.xml @@ -121,7 +121,8 @@ android:paddingRight="8dp" android:text="@{game.commentCount > 3?game.star + ``: `评分过少`}" android:textColor="@{Color.parseColor(game.commentCount > 3?`#1383EB`:`#2496FF`)}" - android:textStyle="bold" /> + android:textStyle="bold" + android:visibility="gone" /> - \ No newline at end of file + app:placeholderImageScaleType="fitXY"/> \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index fe8ec86341..f7657f4885 100644 --- a/gradle.properties +++ b/gradle.properties @@ -51,8 +51,8 @@ SENSITIVE_API_HOST=https\://and-core-api.ghzs.com/v4d0d2/ # 请不要手动改动下面的值,除非你明确需要以某个apk作为基准包,需要打包请以scripts/tinker*.sh为准 TINKER_ENABLE= -TINKER_ID=df693ce -TINKER_BASE_APK_DIR=app-0710-17-07-17_df693ce +TINKER_ID=801f0b9 +TINKER_BASE_APK_DIR=app-0721-17-12-02_801f0b9 android.useAndroidX=true android.enableJetifier=true