add: google admob ads for testing

This commit is contained in:
hyb1996 2018-05-24 21:22:21 +08:00
parent 64c7152736
commit b81db30f3f
8 changed files with 174 additions and 11 deletions

View File

@ -147,4 +147,5 @@ dependencies {
compile project(':automator')
compile project(':common')
compile project(':autojs')
implementation 'com.google.android.gms:play-services-ads:11.8.0'
}

View File

@ -3,6 +3,7 @@
xmlns:tools="http://schemas.android.com/tools"
package="com.stardust.scriptdroid">
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
@ -25,6 +26,7 @@
android:supportsRtl="true"
android:theme="@style/AppTheme"
tools:replace="android:label, android:icon, android:allowBackup">
<activity
android:name=".ui.splash.SplashActivity_"
android:hardwareAccelerated="true"

View File

@ -10,6 +10,7 @@ import android.widget.ImageView;
import com.bumptech.glide.request.target.SimpleTarget;
import com.bumptech.glide.request.transition.Transition;
import com.flurry.android.FlurryAgent;
import com.google.android.gms.ads.MobileAds;
import com.raizlabs.android.dbflow.config.DatabaseConfig;
import com.raizlabs.android.dbflow.config.FlowConfig;
import com.raizlabs.android.dbflow.config.FlowManager;
@ -81,6 +82,7 @@ public class App extends MultiDexApplication {
}
setupDrawableImageLoader();
TimedTaskScheduler.setupRepeating(this);
MobileAds.initialize(this, Constants.ADMOB_APP_ID);
}
private void setupDrawableImageLoader() {

View File

@ -5,6 +5,14 @@ package com.stardust.scriptdroid;
*/
public final class Constants {
public static final String APP_ID = "1105513627";
public static final String SPLASH_POS_ID = "3050728349211259";
public static final String LOG_TAG_ADMOB = "Admob";
public static final String ADMOB_APP_ID = "ca-app-pub-5495978608535144~9896346219";
public static final String ADMOB_SPLASH_BANNER_ID = "ca-app-pub-5495978608535144/3281269730";
public static final String ADMOB_INTERSTITIAL_ID = "ca-app-pub-5495978608535144/7282625313";
public static final String ADMOB_APK_BUILDER_REWARD_ID = "ca-app-pub-5495978608535144/2977306962";
public static final String ADMOB_BANNER_TEST_ID = "ca-app-pub-3940256099942544/6300978111";
public static final String ADMOB_INTERSTITIAL_TEST_ID = "ca-app-pub-3940256099942544/1033173712";
public static final String ADMOB_REWARD_VIDEO_TEST_ID = "ca-app-pub-3940256099942544/5224354917";
}

View File

@ -1,10 +1,13 @@
package com.stardust.scriptdroid.ui.build;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.os.Environment;
import android.support.annotation.Nullable;
import android.support.design.widget.TextInputEditText;
import android.support.design.widget.TextInputLayout;
import android.text.TextUtils;
@ -13,8 +16,15 @@ import android.widget.ImageView;
import android.widget.Toast;
import com.afollestad.materialdialogs.MaterialDialog;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdSize;
import com.google.android.gms.ads.MobileAds;
import com.google.android.gms.ads.reward.RewardItem;
import com.google.android.gms.ads.reward.RewardedVideoAd;
import com.google.android.gms.ads.reward.RewardedVideoAdListener;
import com.stardust.autojs.project.ProjectConfig;
import com.stardust.scriptdroid.BuildConfig;
import com.stardust.scriptdroid.Constants;
import com.stardust.scriptdroid.R;
import com.stardust.scriptdroid.autojs.build.AutoJsApkBuilder;
import com.stardust.scriptdroid.build.ApkBuilderPluginHelper;
@ -46,7 +56,7 @@ import io.reactivex.schedulers.Schedulers;
* Created by Stardust on 2017/10/22.
*/
@EActivity(R.layout.activity_build)
public class BuildActivity extends BaseActivity implements AutoJsApkBuilder.ProgressCallback {
public class BuildActivity extends BaseActivity implements AutoJsApkBuilder.ProgressCallback, RewardedVideoAdListener {
public static final String EXTRA_SOURCE_FILE = BuildActivity.class.getName() + ".extra_source_file";
@ -75,6 +85,14 @@ public class BuildActivity extends BaseActivity implements AutoJsApkBuilder.Prog
private MaterialDialog mProgressDialog;
private boolean mIsDefaultIcon = true;
private RewardedVideoAd mRewardedVideoAd;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mRewardedVideoAd = MobileAds.getRewardedVideoAdInstance(this);
mRewardedVideoAd.setRewardedVideoAdListener(this);
}
@AfterViews
void setupViews() {
@ -83,9 +101,17 @@ public class BuildActivity extends BaseActivity implements AutoJsApkBuilder.Prog
if (sourcePath != null) {
setupWithSourceFile(new ScriptFile(sourcePath));
}
loadRewardedVideoAd();
checkApkBuilderPlugin();
}
private void loadRewardedVideoAd() {
mRewardedVideoAd.loadAd(BuildConfig.DEBUG ? Constants.ADMOB_REWARD_VIDEO_TEST_ID :
Constants.ADMOB_APK_BUILDER_REWARD_ID,
new AdRequest.Builder().build());
}
private void checkApkBuilderPlugin() {
if (!ApkBuilderPluginHelper.isPluginAvailable(this)) {
showPluginDownloadDialog(R.string.no_apk_builder_plugin, true);
@ -213,6 +239,7 @@ public class BuildActivity extends BaseActivity implements AutoJsApkBuilder.Prog
return false;
}
@SuppressLint("CheckResult")
private void doBuildingApk() {
String jsPath = mSourcePath.getText().toString();
String versionName = mVersionName.getText().toString();
@ -301,6 +328,7 @@ public class BuildActivity extends BaseActivity implements AutoJsApkBuilder.Prog
mProgressDialog.setContent(R.string.apk_builder_clean);
}
@SuppressLint("CheckResult")
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode != RESULT_OK) {
@ -329,4 +357,62 @@ public class BuildActivity extends BaseActivity implements AutoJsApkBuilder.Prog
});
}
@Override
protected void onPause() {
super.onPause();
mRewardedVideoAd.pause(this);
}
@Override
protected void onResume() {
super.onResume();
mRewardedVideoAd.resume(this);
}
@Override
protected void onDestroy() {
super.onDestroy();
mRewardedVideoAd.destroy(this);
}
@Override
public void onRewardedVideoAdLoaded() {
mRewardedVideoAd.show();
Log.d(Constants.LOG_TAG_ADMOB, "onRewardedVideoAdLoaded");
}
@Override
public void onRewardedVideoAdOpened() {
Log.d(Constants.LOG_TAG_ADMOB, "onRewardedVideoAdLoaded");
}
@Override
public void onRewardedVideoStarted() {
Log.d(Constants.LOG_TAG_ADMOB, "onRewardedVideoAdLoaded");
}
@Override
public void onRewardedVideoAdClosed() {
Log.d(Constants.LOG_TAG_ADMOB, "onRewardedVideoAdLoaded");
}
@Override
public void onRewarded(RewardItem rewardItem) {
Log.d(Constants.LOG_TAG_ADMOB, "onRewarded: type=" + rewardItem.getType() + ", amount=" + rewardItem.getAmount());
}
@Override
public void onRewardedVideoAdLeftApplication() {
Log.d(Constants.LOG_TAG_ADMOB, "onRewardedVideoAdLeftApplication");
}
@Override
public void onRewardedVideoAdFailedToLoad(int i) {
Log.d(Constants.LOG_TAG_ADMOB, "onRewardedVideoAdFailedToLoad: " + i);
}
}

View File

@ -3,17 +3,26 @@ package com.stardust.scriptdroid.ui.splash;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.util.Log;
import android.view.View;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.TextView;
import com.google.android.gms.ads.AdListener;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdSize;
import com.google.android.gms.ads.AdView;
import com.google.android.gms.ads.InterstitialAd;
import com.stardust.scriptdroid.BuildConfig;
import com.stardust.scriptdroid.Constants;
import com.stardust.scriptdroid.Pref;
import com.stardust.scriptdroid.R;
import com.stardust.scriptdroid.ui.BaseActivity;
import com.stardust.scriptdroid.ui.main.MainActivity_;
import org.androidannotations.annotations.AfterViews;
import org.androidannotations.annotations.Click;
import org.androidannotations.annotations.EActivity;
import org.androidannotations.annotations.ViewById;
@ -38,11 +47,13 @@ public class SplashActivity extends BaseActivity {
View mAdContainer;
@ViewById(R.id.ad)
FrameLayout mAd;
AdView mAd;
private boolean mCanEnterNextActivity = false;
private boolean mNotStartMainActivity;
private InterstitialAd mInterstitialAd;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@ -58,6 +69,11 @@ public class SplashActivity extends BaseActivity {
fetchSplashAD();
}
@Click(R.id.skip_view)
void skip() {
enterNextActivity();
}
void enterNextActivity() {
if (!mNotStartMainActivity)
MainActivity_.intent(this).start();
@ -90,6 +106,48 @@ public class SplashActivity extends BaseActivity {
}
private void fetchSplashAD() {
enterNextActivity();
mInterstitialAd = new InterstitialAd(this);
mInterstitialAd.setAdUnitId(BuildConfig.DEBUG ? Constants.ADMOB_INTERSTITIAL_TEST_ID : Constants.ADMOB_INTERSTITIAL_ID);
mInterstitialAd.setAdListener(new AdListener() {
@Override
public void onAdLoaded() {
mInterstitialAd.show();
}
@Override
public void onAdFailedToLoad(int i) {
Log.d(Constants.LOG_TAG_ADMOB, "Fail to load interstitial ad: " + i);
}
});
mInterstitialAd.loadAd(new AdRequest.Builder()
.build());
mAd.setAdListener(new AdListener() {
@Override
public void onAdClicked() {
enterNextActivity();
Log.d(Constants.LOG_TAG_ADMOB, "Ad clicked");
}
@Override
public void onAdFailedToLoad(int i) {
Log.d(Constants.LOG_TAG_ADMOB, "Fail to load banner ad: " + i);
}
@Override
public void onAdClosed() {
enterNextActivity();
}
});
if (BuildConfig.DEBUG) {
mAd.loadAd(new AdRequest.Builder()
.addTestDevice("774E105820188FA387B617ECD279B167")
.build());
} else {
mAd.loadAd(new AdRequest.Builder()
.build());
}
}
}

View File

@ -14,11 +14,17 @@
android:layout_weight="1">
<FrameLayout
<com.google.android.gms.ads.AdView
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:id="@+id/ad"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:animateLayoutChanges="true"/>
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
ads:adSize="FLUID"
ads:adUnitId="ca-app-pub-5495978608535144/3281269730">
</com.google.android.gms.ads.AdView>
<TextView
android:id="@+id/skip_view"
@ -30,11 +36,10 @@
android:layout_marginTop="20dp"
android:background="@drawable/skip_circle_bg"
android:gravity="center"
android:padding="8dp"
android:text="@string/text_skip"
android:textColor="#ddffffff"
android:textSize="14sp"
android:visibility="invisible"
tools:text="跳过 4"
tools:visibility="visible"/>
android:textSize="14sp"/>
</RelativeLayout>

View File

@ -355,4 +355,5 @@
<string name="text_inspect_layout_hierarchy">布局层次分析</string>
<string name="text_inspect_layout">布局分析</string>
<string name="text_pointer_location">指针位置[Root]</string>
<string name="text_skip">跳过</string>
</resources>