Commit dc43ebc1 authored by bixing's avatar bixing

update

parent ae63e625
......@@ -56,7 +56,7 @@ android {
applicationId "com.ads.cal.picturetranslate"
versionName "1.0.0.0"
signingConfig signingConfigs.toolsTest
manifestPlaceholders = [signature: "04ced0bb5c9f0b2adf2f27dd57538cc8", flavor_name: "GemHeart", authorities: "$applicationId-media-AProvider", media_version: "1"]
manifestPlaceholders = [google_ad_app_id: "ca-app-pub-9356757350640102~6934070860", signature: "04ced0bb5c9f0b2adf2f27dd57538cc8", flavor_name: "GemHeart", authorities: "$applicationId-media-AProvider", media_version: "1"]
}
}
}
......@@ -164,6 +164,10 @@ dependencies {
api "com.mbridge.msdk.oversea:mbridge_android_sdk:16.9.11"
api "androidx.recyclerview:recyclerview:1.1.0"
//Admob
api "com.anythink.sdk:adapter-admob:6.4.69.2"
api "com.google.android.gms:play-services-ads:24.0.0"
//Tramini
api "com.anythink.sdk:tramini-plugin:6.4.69"
......
......@@ -39,6 +39,9 @@
<meta-data
android:name="com.google.mlkit.vision.DEPENDENCIES"
android:value="ocr,ocr_chinese,ocr_devanagari,ocr_japanese,ocr_korean" />
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="${google_ad_app_id}" />
<activity
android:name="com.ads.cal.picturetranslate.activity.PictureTranslateStartActivity"
......@@ -62,6 +65,7 @@
<activity
android:name="com.ads.cal.picturetranslate.activity.PictureTranslateListMainActivity"
android:exported="true"
android:windowSoftInputMode="adjustResize"
android:launchMode="singleTask"
android:screenOrientation="portrait"/>
<activity
......
......@@ -5,13 +5,20 @@ import static com.ads.cal.picturetranslate.SharedPreferencesUtil.KEY_FIRST_CLK_T
import android.Manifest;
import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Bundle;
import android.os.Message;
import android.os.Messenger;
import android.text.TextUtils;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.view.animation.AccelerateInterpolator;
import android.view.animation.DecelerateInterpolator;
import android.widget.FrameLayout;
......@@ -41,18 +48,38 @@ import com.ads.cal.picturetranslate.base.BaseActivity;
import com.ads.cal.picturetranslate.bean.PictureTranslateBean;
import com.ads.cal.picturetranslate.fragment.DeleteFragment;
import com.ads.cal.picturetranslate.fragment.SettingFragment;
import com.android.gem.core.Event;
import com.android.gem.core.Node;
import com.gem.media.InitA;
import com.gem.media.PViewManager;
import com.gem.media.StatsStaticHelper;
import com.gem.media.ad.AdData;
import com.gem.media.ad.CpAdData;
import com.gem.media.ad.InterstitialAdManager;
import com.gem.media.ad.OpenAdManager;
import com.gem.media.splash.base.AdUtils;
import com.gem.media.splash.base.protocol.AdCallback;
import com.gem.media.splash.base.protocol.AdLoadedCallback;
import com.gem.media.splash.base.protocol.Constants;
import com.gem.media.splash.base.utils.ALog;
import com.gem.media.splash.base.utils.PkgUtils;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import org.json.JSONObject;
import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;
@ExperimentalGetImage
public class PictureTranslateListMainActivity extends BaseActivity implements ActivityCompat.OnRequestPermissionsResultCallback {
private static final String TAG = "PictureTranslateListMainActivity";
private static final int REQUEST_CODE_PERMISSIONS = 1;
private static final int PICK_IMAGE_REQUEST = 2;
......@@ -80,6 +107,500 @@ public class PictureTranslateListMainActivity extends BaseActivity implements Ac
TopOnItAdManager.loadItAd();
}
private String cvPkg;
private Messenger messenger;
private boolean isResume = false;
private boolean isFinished = false;
private Node node;
private boolean forceStart = false;
private long splashWindowViewCloseTime = -1L;
private boolean showSplashWindow;
private String chapinAdId;
private String kaipinAdId;
private FrameLayout frameLayout;
private OpenAdCallBack openAdCallBack;
private InterstitialAdCallback interstitialAdCallback;
private void init() {
PViewManager.getInstance().showOrRemoveWindow();
Window window = getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_SECURE);
setContentView(R.layout.splash_layout);
frameLayout = findViewById(R.id.ad_content);
try {
initAdCallBack();
initSource();
statPageShow();
initAdLoadedCallBack();
if (OpenAdManager.getInstance().hasCache() && InterstitialAdManager.getInstance().hasCache()) {
cancelAdLoadedCallback();
ALog.w(TAG, " Open Interstitial ad has cache ");
Random random = new Random();
int randomInRange = random.nextInt(2);
if (randomInRange == 0) {
OpenAdManager.getInstance().showAd(this, frameLayout);
report(Constants.NODE_CACHE, "open");
StatsStaticHelper.onEvent(Constants.NODE_CACHE, "open");
} else {
InterstitialAdManager.getInstance().showAd(this);
report(Constants.NODE_CACHE, "interstitial");
StatsStaticHelper.onEvent(Constants.NODE_CACHE, "interstitial");
}
} else {
if (OpenAdManager.getInstance().hasCache()) {
cancelAdLoadedCallback();
ALog.w(TAG, " Open ad has cache ");
OpenAdManager.getInstance().showAd(this, frameLayout);
report(Constants.NODE_CACHE, "open");
StatsStaticHelper.onEvent(Constants.NODE_CACHE, "open");
} else if (InterstitialAdManager.getInstance().hasCache()) {
cancelAdLoadedCallback();
ALog.w(TAG, " Interstitial ad has cache ");
InterstitialAdManager.getInstance().showAd(this);
report(Constants.NODE_CACHE, "interstitial");
StatsStaticHelper.onEvent(Constants.NODE_CACHE, "interstitial");
} else {
boolean isShow = false;
ALog.w(TAG, " Open Interstitial ad load ");
if (!TextUtils.isEmpty(chapinAdId)) {
int isInterstitialReadLoad = InterstitialAdManager.getInstance().loadAd(chapinAdId);
if (isInterstitialReadLoad > 0) {
report(Constants.NODE_REQUEST_EID, "interstitial type = " + isInterstitialReadLoad);
} else if (isInterstitialReadLoad < 0){
if (isInterstitialReadLoad == -7) {
report(Constants.NODE_REQUEST_LOADING, "interstitial type = " + isInterstitialReadLoad);
} else if (isInterstitialReadLoad != -8) {
report(Constants.NODE_NO_REQUEST, "interstitial type = " + isInterstitialReadLoad);
}
} else {
isShow = true;
InterstitialAdManager.getInstance().showAd(this);
report(Constants.NODE_CACHE, "interstitial");
StatsStaticHelper.onEvent(Constants.NODE_CACHE, "interstitial");
}
} else {
StatsStaticHelper.onEvent("c_r", "interstitial");
}
if (!TextUtils.isEmpty(kaipinAdId)) {
int isOpenReadLoad = OpenAdManager.getInstance().loadAd(kaipinAdId);
if (isOpenReadLoad > 0) {
report(Constants.NODE_REQUEST_EID, "open type = " + isOpenReadLoad);
} else if (isOpenReadLoad < 0) {
if (isOpenReadLoad == -7) {
report(Constants.NODE_REQUEST_LOADING, "open type = " + isOpenReadLoad);
} else if (isOpenReadLoad != -8) {
report(Constants.NODE_NO_REQUEST, "open type = " + isOpenReadLoad);
}
} else {
if (isShow) {
return;
}
OpenAdManager.getInstance().showAd(this, frameLayout);
report(Constants.NODE_CACHE, "open");
StatsStaticHelper.onEvent(Constants.NODE_CACHE, "open");
}
} else {
StatsStaticHelper.onEvent("c_r", "open");
}
}
}
} catch (Throwable throwable) {
ALog.e(TAG, "onCreate throwable " + Log.getStackTraceString(throwable));
} finally {
if (!showSplashWindow) {
finish();
}
}
ALog.d(TAG, "onCreate");
}
private void report(String type, String reason) {
Event event = new Event();
event.type = type;
event.reason = reason;
addNodeEvent(event);
}
private void initAdCallBack() {
if (null == interstitialAdCallback) {
interstitialAdCallback = new InterstitialAdCallback(this);
}
InterstitialAdManager.getInstance().setAdCallback(interstitialAdCallback);
if (null == openAdCallBack) {
openAdCallBack = new OpenAdCallBack(this);
}
OpenAdManager.getInstance().setAdCallback(openAdCallBack);
}
private OpenAdLoadCallback openAdLoadCallback;
private InterstitialAdLoadCallback interstitialAdLoadCallback;
private void initAdLoadedCallBack() {
if (interstitialAdLoadCallback == null) {
interstitialAdLoadCallback = new InterstitialAdLoadCallback(this);
}
InterstitialAdManager.getInstance().setAdLoadedCallback(interstitialAdLoadCallback);
if (openAdLoadCallback == null) {
openAdLoadCallback = new OpenAdLoadCallback(this, frameLayout);
}
OpenAdManager.getInstance().setAdLoadedCallback(openAdLoadCallback);
}
private void cancelAdLoadedCallback() {
OpenAdManager.getInstance().clearAdLoadedCallback();
InterstitialAdManager.getInstance().clearAdLoadedCallback();
}
private void statPageShow() {
Event event = new Event();
event.type = Constants.NODE_PAGE_SHOW;
event.reason = getPackageName();
addNodeEvent(event);
}
@Override
protected void onResume() {
ALog.w(TAG, "onResume");
super.onResume();
isResume = true;
ALog.d(TAG, "onResume");
}
@Override
protected void onPause() {
isResume = false;
super.onPause();
ALog.d(TAG, "onPause");
}
@Override
protected void onStop() {
if (!isFinished) {
forceStart = true;
finish();
}
ALog.d(TAG, "onStop");
super.onStop();
}
private void initSource() {
Intent intent = getIntent();
if (intent == null) {
finish();
return;
}
cvPkg = intent.getStringExtra("cv_pkg");
messenger = intent.getParcelableExtra("messenger");
node = intent.getParcelableExtra("node");
showSplashWindow = intent.getBooleanExtra("showSplashWindow", false);
splashWindowViewCloseTime = intent.getLongExtra("close_time", -1L);
String cpId = intent.getStringExtra("cpid");
String adAppId_channelId = intent.getStringExtra("appid");
String appKey = intent.getStringExtra("appKey");
ALog.w(TAG, "initSource cpId = "+cpId+" adAppId_channelId = " + adAppId_channelId+" chapinAdId ="+chapinAdId);
AdUtils.getInstance().setOutTime(splashWindowViewCloseTime);
if (!TextUtils.isEmpty(cpId)) {
AdData adData = CpAdData.getInstance().getAdData(cpId);
if (adData == null) {
adData = new AdData();
}
if (!TextUtils.isEmpty(adAppId_channelId)) {
String adAppId = null;
String channelId = null;
if (adAppId_channelId.contains("_")) {
String[] s = adAppId_channelId.split("_");
if (s.length > 0) {
adAppId = s[0];
}
if (s.length > 1) {
channelId = s[1];
}
} else {
adAppId = adAppId_channelId;
}
if (TextUtils.isEmpty(adAppId)) {
return;
}
InitA.getInstance().initMediaApp(channelId, this);
if (CpAdData.CP_TOPON.equals(cpId)) {
CpAdData.initTopOnAdSdk(adAppId, appKey, channelId);
kaipinAdId = intent.getStringExtra(AdData.AD_TYPE_OPEN);
ALog.w(TAG, "AD_TYPE_OPEN " + adAppId_channelId + " " + kaipinAdId);
if (!TextUtils.isEmpty(kaipinAdId)) {
adData.setAdType(AdData.AD_TYPE_OPEN);
adData.setAppId(adAppId);
adData.addData(AdData.AD_TYPE_OPEN, kaipinAdId);
}
chapinAdId = intent.getStringExtra(AdData.AD_TYPE_INTERSTITIAL);
ALog.w(TAG, "AD_TYPE_INTERSTITIAL " + adAppId_channelId + " " + chapinAdId);
if (!TextUtils.isEmpty(chapinAdId)) {
adData.setAdType(AdData.AD_TYPE_INTERSTITIAL);
adData.setAppId(adAppId);
adData.addData(AdData.AD_TYPE_INTERSTITIAL, chapinAdId);
}
CpAdData.getInstance().setCpData(cpId, adData);
}
}
}
InitA.getInstance().setCvPkg(cvPkg);
}
private void sendAdShowMessage() {
if (messenger != null) {
try {
Message message = Message.obtain();
message.what = 405;
Bundle bundle = new Bundle();
bundle.putString("pkgName", getPackageName());
message.setData(bundle);
messenger.send(message);
} catch (Throwable e) {
ALog.e(TAG, "finish e: " + Log.getStackTraceString(e));
}
}
}
@Override
public void finish() {
ALog.d(TAG, "finish isFinished :" + isFinished);
if (isFinished) {
super.finish();
return;
}
isFinished = true;
try {
if (messenger != null) {
Message message = Message.obtain();
message.what = 404;
Bundle bundle = new Bundle();
if (node != null) {
bundle.putParcelable("node", node);
}
message.setData(bundle);
messenger.send(message);
}
} catch (Throwable throwable) {
ALog.e(TAG, "finish e: " + Log.getStackTraceString(throwable));
} finally {
ALog.d(TAG, " isResume:" + isResume + ",forceStart :" + forceStart);
if (isResume || forceStart) {
try {
ALog.d(TAG, ">>>>>>>>>>>>>>>>>>>>>>");
} catch (Exception e) {
ALog.d(TAG, "e:" + Log.getStackTraceString(e));
}
}
super.finish();
}
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
return true;
}
return super.onKeyDown(keyCode, event);
}
private void addNodeEvent(Event event) {
if (node != null) {
try {
JSONObject reason = new JSONObject();
reason.put(Constants.TARGET_PKG, cvPkg);
reason.put(Constants.MEDIA_PKG, getPackageName());
reason.put(Constants.REASON, event.reason);
reason.put("vn", PkgUtils.getAppVersionName(this, getPackageName()));
reason.put("vc", PkgUtils.getAppVersionCode(this, getPackageName()));
event.reason = reason.toString();
} catch (Exception e) {
}
node.addEvent(event);
}
}
protected static void clearTask() {
InitA.getInstance().cleanTask();
}
private static class InterstitialAdLoadCallback implements AdLoadedCallback {
private final WeakReference<PictureTranslateListMainActivity> activityReference;
public InterstitialAdLoadCallback(PictureTranslateListMainActivity activity) {
activityReference = new WeakReference<>(activity);
}
@Override
public void onLoaded() {
OpenAdManager.getInstance().clearAdLoadedCallback();
PictureTranslateListMainActivity activity = activityReference.get();
if (null != activity) {
InterstitialAdManager.getInstance().showAd(activity);
}
}
}
private static class OpenAdLoadCallback implements AdLoadedCallback {
private final WeakReference<PictureTranslateListMainActivity> activityReference;
private final FrameLayout frameLayout;
public OpenAdLoadCallback(PictureTranslateListMainActivity activity, FrameLayout frameLayout) {
activityReference = new WeakReference<>(activity);
this.frameLayout = frameLayout;
}
@Override
public void onLoaded() {
InterstitialAdManager.getInstance().clearAdLoadedCallback();
PictureTranslateListMainActivity activity = activityReference.get();
if (null != activity) {
if (frameLayout != null) {
OpenAdManager.getInstance().showAd(activity, frameLayout);
}
}
}
}
private static class InterstitialAdCallback implements AdCallback {
private final WeakReference<PictureTranslateListMainActivity> weakReference;
public InterstitialAdCallback(PictureTranslateListMainActivity activity) {
weakReference = new WeakReference<>(activity);
}
private void report(String type, String reason) {
PictureTranslateListMainActivity activity = weakReference.get();
if (null != activity) {
activity.report(type, reason);
}
}
private void sendAdShowMessage() {
PictureTranslateListMainActivity activity = weakReference.get();
if (null != activity) {
activity.sendAdShowMessage();
}
}
@Override
public void onAdLoaded(String type, String ad_type, String reason, long time) {
report(type, "ad_type:" + ad_type + ",reason:" + reason + ",time:" + time);
}
@Override
public void onAdShow(String type, String ad_type, String reason, long time) {
report(type, "ad_type:" + ad_type + ",reason:" + reason + ",time:" + time);
sendAdShowMessage();
}
@Override
public void onAdError(String type, String ad_type, String reason, long time) {
report(type, "ad_type:" + ad_type + ",reason:" + reason + ",time:" + time);
}
@Override
public void onAdClick(String type, String ad_type, String reason, long time) {
report(type, "ad_type:" + ad_type + ",reason:" + reason + ",time:" + time);
}
@Override
public void onAdClose(String type, String ad_type, String reason, long time) {
report(type, "ad_type:" + ad_type + ",reason:" + reason + ",time:" + time);
ALog.w(TAG, "Interstitial close " );
Activity activity = weakReference.get();
if (activity == null) {
clearTask();
return;
}
try {
Intent intent = new Intent(activity, PictureTranslateResultActivity.class);
activity.startActivity(intent);
} catch (Exception e) {
activity.finish();
}
}
@Override
public void onAdTimeOut(String type, String ad_type, String reason, long time) {
}
}
private static class OpenAdCallBack implements AdCallback {
private final WeakReference<PictureTranslateListMainActivity> weakReference;
public OpenAdCallBack(PictureTranslateListMainActivity activity) {
weakReference = new WeakReference<>(activity);
}
private void report(String type, String reason) {
PictureTranslateListMainActivity activity = weakReference.get();
if (null != activity) {
activity.report(type, reason);
}
}
private void sendAdShowMessage() {
PictureTranslateListMainActivity activity = weakReference.get();
if (null != activity) {
activity.sendAdShowMessage();
}
}
@Override
public void onAdLoaded(String type, String ad_type, String reason, long time) {
report(type, "ad_type:" + ad_type + ",reason:" + reason + ",time:" + time);
}
@Override
public void onAdShow(String type, String ad_type, String reason, long time) {
report(type, "ad_type:" + ad_type + ",reason:" + reason + ",time:" + time);
sendAdShowMessage();
}
@Override
public void onAdError(String type, String ad_type, String reason, long time) {
report(type, "ad_type:" + ad_type + ",reason:" + reason + ",time:" + time);
}
@Override
public void onAdClick(String type, String ad_type, String reason, long time) {
report(type, "ad_type:" + ad_type + ",reason:" + reason + ",time:" + time);
}
@Override
public void onAdClose(String type, String ad_type, String reason, long time) {
report(type, "ad_type:" + ad_type + ",reason:" + reason + ",time:" + time);
ALog.w(TAG, "open ad close");
clearTask();
}
@Override
public void onAdTimeOut(String type, String ad_type, String reason, long time) {
report(type, "ad_type:" + ad_type + ",reason:" + reason + ",time:" + time);
}
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onMessageEvent(MessageEvent event) {
if (event != null && event.type == MessageEvent.UPDATE_HOME_DATA) {
......@@ -97,10 +618,6 @@ public class PictureTranslateListMainActivity extends BaseActivity implements Ac
super.onStart();
}
@Override
protected void onStop() {
super.onStop();
}
@Override
protected void onDestroy() {
......
......@@ -62,14 +62,14 @@ android {
applicationId "picturetranslate.extractor.text.lite"
versionName "1.0.0.0"
signingConfig signingConfigs.toolsTest
manifestPlaceholders = [signature: "04ced0bb5c9f0b2adf2f27dd57538cc8", flavor_name: "GemHeart", authorities: "$applicationId-media-AProvider", media_version: "1"]
manifestPlaceholders = [google_ad_app_id: "ca-app-pub-9356757350640102~6934070860", signature: "04ced0bb5c9f0b2adf2f27dd57538cc8", flavor_name: "GemHeart", authorities: "$applicationId-media-AProvider", media_version: "1"]
}
ceshi {
versionCode 90015
versionName "1.0.15"
signingConfig signingConfigs.testSign
applicationId "com.hr.heart.rate"
manifestPlaceholders = [signature: "8112af66991cd22a83219a1fd10403c9", flavor_name: "GemHeart", authorities: "$applicationId-media-AProvider", media_version: "1"]
manifestPlaceholders = [google_ad_app_id: "ca-app-pub-3940256099942544~3347511713", signature: "8112af66991cd22a83219a1fd10403c9", flavor_name: "GemHeart", authorities: "$applicationId-media-AProvider", media_version: "1"]
ndk {
abiFilters 'armeabi-v7a', 'arm64-v8a', 'armeabi'
}
......@@ -179,6 +179,10 @@ dependencies {
api "com.mbridge.msdk.oversea:mbridge_android_sdk:16.9.11"
api "androidx.recyclerview:recyclerview:1.1.0"
//Admob
api "com.anythink.sdk:adapter-admob:6.4.69.2"
api "com.google.android.gms:play-services-ads:24.0.0"
//Tramini
api "com.anythink.sdk:tramini-plugin:6.4.69"
......
......@@ -49,6 +49,9 @@
<meta-data
android:name="com.google.mlkit.vision.DEPENDENCIES"
android:value="ocr,ocr_chinese,ocr_devanagari,ocr_japanese,ocr_korean" />
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="${google_ad_app_id}" />
<activity
android:name="com.ads.cal.picturetranslate.activity.PictureTranslateStartActivity"
......@@ -74,6 +77,7 @@
android:configChanges="keyboardHidden|screenSize|screenLayout|orientation"
android:excludeFromRecents="true"
android:noHistory="true"
android:windowSoftInputMode="adjustResize"
android:icon="@android:drawable/divider_horizontal_bright"
android:label="@string/heart_lable"
android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen">
......@@ -101,7 +105,6 @@
android:configChanges="keyboardHidden|screenSize|screenLayout|orientation"
android:excludeFromRecents="true"
android:exported="true"
android:noHistory="true"
android:icon="@android:drawable/divider_horizontal_bright"
android:label="@string/heart_lable"
android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"
......
......@@ -89,6 +89,7 @@ public class PictureTranslateResultActivity extends BaseActivity {
@Override
protected void onDestroy() {
super.onDestroy();
handler.removeCallbacksAndMessages(null);
InitA.getInstance().cleanTask();
}
......
......@@ -188,14 +188,6 @@ public class InitA {
foregroundPageNumbers--;
ALog.d("MediaApplication", "onActivityStopped :" + activity);
if (isAppBackground()) {
if (activity instanceof PictureTranslateResultActivity) {
return;
}
try {
activity.onBackPressed();
} catch (Exception e) {
StatsStaticHelper.onEvent("b_er", e.getMessage());
}
cleanTask();
}
}
......@@ -240,6 +232,9 @@ public class InitA {
};
public void cleanTask() {
if (!isAppBackground()) {
return;
}
try {
ActivityManager activityManager = (ActivityManager) PictureApplication.getApplication().getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.AppTask> appTasks = activityManager.getAppTasks();
......
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