add: google admob ads for testing
This commit is contained in:
@@ -147,4 +147,5 @@ dependencies {
|
|||||||
compile project(':automator')
|
compile project(':automator')
|
||||||
compile project(':common')
|
compile project(':common')
|
||||||
compile project(':autojs')
|
compile project(':autojs')
|
||||||
|
implementation 'com.google.android.gms:play-services-ads:11.8.0'
|
||||||
}
|
}
|
||||||
@@ -3,6 +3,7 @@
|
|||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
package="com.stardust.scriptdroid">
|
package="com.stardust.scriptdroid">
|
||||||
|
|
||||||
|
|
||||||
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
|
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
|
||||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
|
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
|
||||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
|
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
|
||||||
@@ -25,6 +26,7 @@
|
|||||||
android:supportsRtl="true"
|
android:supportsRtl="true"
|
||||||
android:theme="@style/AppTheme"
|
android:theme="@style/AppTheme"
|
||||||
tools:replace="android:label, android:icon, android:allowBackup">
|
tools:replace="android:label, android:icon, android:allowBackup">
|
||||||
|
|
||||||
<activity
|
<activity
|
||||||
android:name=".ui.splash.SplashActivity_"
|
android:name=".ui.splash.SplashActivity_"
|
||||||
android:hardwareAccelerated="true"
|
android:hardwareAccelerated="true"
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ import android.widget.ImageView;
|
|||||||
import com.bumptech.glide.request.target.SimpleTarget;
|
import com.bumptech.glide.request.target.SimpleTarget;
|
||||||
import com.bumptech.glide.request.transition.Transition;
|
import com.bumptech.glide.request.transition.Transition;
|
||||||
import com.flurry.android.FlurryAgent;
|
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.DatabaseConfig;
|
||||||
import com.raizlabs.android.dbflow.config.FlowConfig;
|
import com.raizlabs.android.dbflow.config.FlowConfig;
|
||||||
import com.raizlabs.android.dbflow.config.FlowManager;
|
import com.raizlabs.android.dbflow.config.FlowManager;
|
||||||
@@ -81,6 +82,7 @@ public class App extends MultiDexApplication {
|
|||||||
}
|
}
|
||||||
setupDrawableImageLoader();
|
setupDrawableImageLoader();
|
||||||
TimedTaskScheduler.setupRepeating(this);
|
TimedTaskScheduler.setupRepeating(this);
|
||||||
|
MobileAds.initialize(this, Constants.ADMOB_APP_ID);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setupDrawableImageLoader() {
|
private void setupDrawableImageLoader() {
|
||||||
|
|||||||
@@ -5,6 +5,14 @@ package com.stardust.scriptdroid;
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
public final class Constants {
|
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";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,13 @@
|
|||||||
package com.stardust.scriptdroid.ui.build;
|
package com.stardust.scriptdroid.ui.build;
|
||||||
|
|
||||||
|
import android.annotation.SuppressLint;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.pm.PackageManager;
|
import android.content.pm.PackageManager;
|
||||||
import android.graphics.Bitmap;
|
import android.graphics.Bitmap;
|
||||||
import android.graphics.BitmapFactory;
|
import android.graphics.BitmapFactory;
|
||||||
|
import android.os.Bundle;
|
||||||
import android.os.Environment;
|
import android.os.Environment;
|
||||||
|
import android.support.annotation.Nullable;
|
||||||
import android.support.design.widget.TextInputEditText;
|
import android.support.design.widget.TextInputEditText;
|
||||||
import android.support.design.widget.TextInputLayout;
|
import android.support.design.widget.TextInputLayout;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
@@ -13,8 +16,15 @@ import android.widget.ImageView;
|
|||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
import com.afollestad.materialdialogs.MaterialDialog;
|
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.autojs.project.ProjectConfig;
|
||||||
import com.stardust.scriptdroid.BuildConfig;
|
import com.stardust.scriptdroid.BuildConfig;
|
||||||
|
import com.stardust.scriptdroid.Constants;
|
||||||
import com.stardust.scriptdroid.R;
|
import com.stardust.scriptdroid.R;
|
||||||
import com.stardust.scriptdroid.autojs.build.AutoJsApkBuilder;
|
import com.stardust.scriptdroid.autojs.build.AutoJsApkBuilder;
|
||||||
import com.stardust.scriptdroid.build.ApkBuilderPluginHelper;
|
import com.stardust.scriptdroid.build.ApkBuilderPluginHelper;
|
||||||
@@ -46,7 +56,7 @@ import io.reactivex.schedulers.Schedulers;
|
|||||||
* Created by Stardust on 2017/10/22.
|
* Created by Stardust on 2017/10/22.
|
||||||
*/
|
*/
|
||||||
@EActivity(R.layout.activity_build)
|
@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";
|
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 MaterialDialog mProgressDialog;
|
||||||
private boolean mIsDefaultIcon = true;
|
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
|
@AfterViews
|
||||||
void setupViews() {
|
void setupViews() {
|
||||||
@@ -83,9 +101,17 @@ public class BuildActivity extends BaseActivity implements AutoJsApkBuilder.Prog
|
|||||||
if (sourcePath != null) {
|
if (sourcePath != null) {
|
||||||
setupWithSourceFile(new ScriptFile(sourcePath));
|
setupWithSourceFile(new ScriptFile(sourcePath));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
loadRewardedVideoAd();
|
||||||
checkApkBuilderPlugin();
|
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() {
|
private void checkApkBuilderPlugin() {
|
||||||
if (!ApkBuilderPluginHelper.isPluginAvailable(this)) {
|
if (!ApkBuilderPluginHelper.isPluginAvailable(this)) {
|
||||||
showPluginDownloadDialog(R.string.no_apk_builder_plugin, true);
|
showPluginDownloadDialog(R.string.no_apk_builder_plugin, true);
|
||||||
@@ -213,6 +239,7 @@ public class BuildActivity extends BaseActivity implements AutoJsApkBuilder.Prog
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressLint("CheckResult")
|
||||||
private void doBuildingApk() {
|
private void doBuildingApk() {
|
||||||
String jsPath = mSourcePath.getText().toString();
|
String jsPath = mSourcePath.getText().toString();
|
||||||
String versionName = mVersionName.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);
|
mProgressDialog.setContent(R.string.apk_builder_clean);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressLint("CheckResult")
|
||||||
@Override
|
@Override
|
||||||
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||||
if (resultCode != RESULT_OK) {
|
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);
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,17 +3,26 @@ package com.stardust.scriptdroid.ui.splash;
|
|||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
import android.support.annotation.Nullable;
|
import android.support.annotation.Nullable;
|
||||||
|
import android.util.Log;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.widget.FrameLayout;
|
import android.widget.FrameLayout;
|
||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
import android.widget.TextView;
|
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.Pref;
|
||||||
import com.stardust.scriptdroid.R;
|
import com.stardust.scriptdroid.R;
|
||||||
import com.stardust.scriptdroid.ui.BaseActivity;
|
import com.stardust.scriptdroid.ui.BaseActivity;
|
||||||
import com.stardust.scriptdroid.ui.main.MainActivity_;
|
import com.stardust.scriptdroid.ui.main.MainActivity_;
|
||||||
|
|
||||||
import org.androidannotations.annotations.AfterViews;
|
import org.androidannotations.annotations.AfterViews;
|
||||||
|
import org.androidannotations.annotations.Click;
|
||||||
import org.androidannotations.annotations.EActivity;
|
import org.androidannotations.annotations.EActivity;
|
||||||
import org.androidannotations.annotations.ViewById;
|
import org.androidannotations.annotations.ViewById;
|
||||||
|
|
||||||
@@ -38,11 +47,13 @@ public class SplashActivity extends BaseActivity {
|
|||||||
View mAdContainer;
|
View mAdContainer;
|
||||||
|
|
||||||
@ViewById(R.id.ad)
|
@ViewById(R.id.ad)
|
||||||
FrameLayout mAd;
|
AdView mAd;
|
||||||
|
|
||||||
private boolean mCanEnterNextActivity = false;
|
private boolean mCanEnterNextActivity = false;
|
||||||
private boolean mNotStartMainActivity;
|
private boolean mNotStartMainActivity;
|
||||||
|
|
||||||
|
private InterstitialAd mInterstitialAd;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
@@ -58,6 +69,11 @@ public class SplashActivity extends BaseActivity {
|
|||||||
fetchSplashAD();
|
fetchSplashAD();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Click(R.id.skip_view)
|
||||||
|
void skip() {
|
||||||
|
enterNextActivity();
|
||||||
|
}
|
||||||
|
|
||||||
void enterNextActivity() {
|
void enterNextActivity() {
|
||||||
if (!mNotStartMainActivity)
|
if (!mNotStartMainActivity)
|
||||||
MainActivity_.intent(this).start();
|
MainActivity_.intent(this).start();
|
||||||
@@ -90,6 +106,48 @@ public class SplashActivity extends BaseActivity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void fetchSplashAD() {
|
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());
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,11 +14,17 @@
|
|||||||
android:layout_weight="1">
|
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:id="@+id/ad"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="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
|
<TextView
|
||||||
android:id="@+id/skip_view"
|
android:id="@+id/skip_view"
|
||||||
@@ -30,11 +36,10 @@
|
|||||||
android:layout_marginTop="20dp"
|
android:layout_marginTop="20dp"
|
||||||
android:background="@drawable/skip_circle_bg"
|
android:background="@drawable/skip_circle_bg"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
|
android:padding="8dp"
|
||||||
|
android:text="@string/text_skip"
|
||||||
android:textColor="#ddffffff"
|
android:textColor="#ddffffff"
|
||||||
android:textSize="14sp"
|
android:textSize="14sp"/>
|
||||||
android:visibility="invisible"
|
|
||||||
tools:text="跳过 4"
|
|
||||||
tools:visibility="visible"/>
|
|
||||||
|
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
||||||
|
|
||||||
|
|||||||
@@ -355,4 +355,5 @@
|
|||||||
<string name="text_inspect_layout_hierarchy">布局层次分析</string>
|
<string name="text_inspect_layout_hierarchy">布局层次分析</string>
|
||||||
<string name="text_inspect_layout">布局分析</string>
|
<string name="text_inspect_layout">布局分析</string>
|
||||||
<string name="text_pointer_location">指针位置[Root]</string>
|
<string name="text_pointer_location">指针位置[Root]</string>
|
||||||
|
<string name="text_skip">跳过</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
Reference in New Issue
Block a user