diff --git a/app/src/main/java/com/gh/common/Base64ImageHolder.kt b/app/src/main/java/com/gh/common/Base64ImageHolder.kt new file mode 100644 index 0000000000..3e6a99816e --- /dev/null +++ b/app/src/main/java/com/gh/common/Base64ImageHolder.kt @@ -0,0 +1,5 @@ +package com.gh.common + +object Base64ImageHolder { + var image: String = "" +} \ No newline at end of file diff --git a/app/src/main/java/com/gh/common/DefaultJsApi.kt b/app/src/main/java/com/gh/common/DefaultJsApi.kt index a581d8346c..6315316b9d 100644 --- a/app/src/main/java/com/gh/common/DefaultJsApi.kt +++ b/app/src/main/java/com/gh/common/DefaultJsApi.kt @@ -38,6 +38,15 @@ class DefaultJsApi { context?.startActivity(ViewImageActivity.getViewImageIntent(context, imageEvent.imageList, imageEvent.position, "浏览器")) } + @JavascriptInterface + fun openBase64Image(event: Any) { + val context = CurrentActivityHolder.getCurrentActivity() + + Base64ImageHolder.image = event.toString() + + context?.startActivity(ViewImageActivity.getBase64ViewImageIntent(context, true)) + } + @Keep internal data class MtaEvent(var name: String = "", var key: String = "", var value: String = "") diff --git a/app/src/main/java/com/gh/gamecenter/ViewImageActivity.java b/app/src/main/java/com/gh/gamecenter/ViewImageActivity.java index ff12523c8d..7d1f0b9a09 100644 --- a/app/src/main/java/com/gh/gamecenter/ViewImageActivity.java +++ b/app/src/main/java/com/gh/gamecenter/ViewImageActivity.java @@ -31,6 +31,7 @@ import com.facebook.imagepipeline.image.CloseableImage; import com.facebook.imagepipeline.request.ImageRequest; import com.facebook.imagepipeline.request.ImageRequestBuilder; import com.gh.base.BaseActivity; +import com.gh.common.Base64ImageHolder; import com.gh.common.util.DisplayUtils; import com.gh.common.util.EntranceUtils; import com.gh.common.util.ImageUtils; @@ -88,7 +89,11 @@ public class ViewImageActivity extends BaseActivity implements OnPageChangeListe private ViewImageAdapter adapter; private ImagePipeline mImagePipeline; + + private boolean mShowBase64Image = false; + private static final String KEY_BASE64 = "base64"; + private static final String KEY_URLS = "urls"; private static final String KEY_CURRENT = "current"; private static final String KEY_SCALETYPE = "ScaleType"; @@ -100,6 +105,12 @@ public class ViewImageActivity extends BaseActivity implements OnPageChangeListe private int mLimitWidth; private boolean isOrientation; + + public static Intent getBase64ViewImageIntent(Context context, boolean showSingleBase64Image) { + Intent checkIntent = new Intent(context, ViewImageActivity.class); + checkIntent.putExtra(KEY_BASE64, showSingleBase64Image); + return checkIntent; + } public static Intent getViewImageIntent(Context context, ArrayList list, int position, String entrance) { Intent checkIntent = new Intent(context, ViewImageActivity.class); @@ -124,8 +135,14 @@ public class ViewImageActivity extends BaseActivity implements OnPageChangeListe int current = 0; Bundle extras = getIntent().getExtras(); if (extras != null) { - urls = extras.getStringArrayList(KEY_URLS); - current = extras.getInt(KEY_CURRENT, 0); + if (extras.getBoolean(KEY_BASE64)) { + mShowBase64Image = true; + urls = new ArrayList<>(); + urls.add(Base64ImageHolder.INSTANCE.getImage()); + } else { + urls = extras.getStringArrayList(KEY_URLS); + current = extras.getInt(KEY_CURRENT, 0); + } } if (savedInstanceState != null) { @@ -203,6 +220,10 @@ public class ViewImageActivity extends BaseActivity implements OnPageChangeListe @Override protected void onDestroy() { super.onDestroy(); + if (mShowBase64Image) { + urls.clear(); + Base64ImageHolder.INSTANCE.setImage(""); + } mViewPager.onDestroy(); // 注销EventBus }