add ad showing test
This commit is contained in:
10
app/src/main/java/com/stardust/scriptdroid/Constants.java
Normal file
10
app/src/main/java/com/stardust/scriptdroid/Constants.java
Normal file
@@ -0,0 +1,10 @@
|
||||
package com.stardust.scriptdroid;
|
||||
|
||||
/**
|
||||
* Created by Stardust on 2017/7/7.
|
||||
*/
|
||||
|
||||
public final class Constants {
|
||||
public static final String APP_ID = "1105513627";
|
||||
public static final String SPLASH_POS_ID = "3050728349211259";
|
||||
}
|
||||
@@ -11,6 +11,8 @@ import com.stardust.scriptdroid.autojs.AutoJs;
|
||||
import org.mozilla.javascript.tools.debugger.Dim;
|
||||
import org.mozilla.javascript.tools.debugger.GuiCallback;
|
||||
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
/**
|
||||
* Created by Stardust on 2017/1/31.
|
||||
*/
|
||||
@@ -19,6 +21,8 @@ public class Pref {
|
||||
private static final SharedPreferences DISPOSABLE_BOOLEAN = App.getApp().getSharedPreferences("DISPOSABLE_BOOLEAN", Context.MODE_PRIVATE);
|
||||
private static final String KEY_SERVER_ADDRESS = "Still love you...17.5.14";
|
||||
private static final String KEY_SHOULD_SHOW_ANNUNCIATION = "Sing about all the things you forgot, things you are not";
|
||||
private static final String KEY_FIRST_SHOW_AD = "En, Today is 17.7.7, but, I'm still love you so....";
|
||||
private static final String KEY_LAST_SHOW_AD_MILLIS = "But... it seems that...you will not come back any more...";
|
||||
private static SharedPreferences.OnSharedPreferenceChangeListener onSharedPreferenceChangeListener = new SharedPreferences.OnSharedPreferenceChangeListener() {
|
||||
@Override
|
||||
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
|
||||
@@ -129,4 +133,26 @@ public class Pref {
|
||||
public static boolean shouldShowAnnunciation() {
|
||||
return getDisposableBoolean(KEY_SHOULD_SHOW_ANNUNCIATION, true);
|
||||
}
|
||||
|
||||
public static boolean shouldShowAd() {
|
||||
String adShowingMode = def().getString(getString(R.string.key_ad_showing_mode), "Default");
|
||||
switch (adShowingMode) {
|
||||
case "Default":
|
||||
return true;
|
||||
case "OncePerDay":
|
||||
long lastShowMillis = def().getLong(KEY_LAST_SHOW_AD_MILLIS, 0);
|
||||
if (System.currentTimeMillis() - lastShowMillis < TimeUnit.DAYS.toMillis(1)) {
|
||||
return false;
|
||||
}
|
||||
def().edit().putLong(KEY_LAST_SHOW_AD_MILLIS, System.currentTimeMillis()).apply();
|
||||
return true;
|
||||
case "Off":
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public static boolean isFirstShowingAd() {
|
||||
return getDisposableBoolean(KEY_FIRST_SHOW_AD, true);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,6 +15,8 @@ import com.stardust.scriptdroid.tool.UpdateChecker;
|
||||
import com.stardust.scriptdroid.ui.BaseActivity;
|
||||
import com.stardust.scriptdroid.ui.error.IssueReporterActivity;
|
||||
import com.stardust.scriptdroid.ui.main.MainActivity;
|
||||
import com.stardust.scriptdroid.ui.splash.SplashActivity;
|
||||
import com.stardust.scriptdroid.ui.splash.SplashActivity_;
|
||||
import com.stardust.scriptdroid.ui.update.UpdateCheckDialog;
|
||||
import com.stardust.util.IntentUtil;
|
||||
import com.stardust.util.MapEntries;
|
||||
@@ -114,6 +116,15 @@ public class SettingsActivity extends BaseActivity {
|
||||
Toast.makeText(getActivity(), R.string.text_already_reset, Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
})
|
||||
.entry(getString(R.string.show_ad), new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
SplashActivity_.intent(getActivity())
|
||||
.extra(SplashActivity.NOT_START_MAIN_ACTIVITY, true)
|
||||
.extra(SplashActivity.FORCE_SHOW_AD, true)
|
||||
.start();
|
||||
}
|
||||
})
|
||||
.entry(getString(R.string.text_check_update), new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
|
||||
@@ -0,0 +1,139 @@
|
||||
package com.stardust.scriptdroid.ui.splash;
|
||||
|
||||
import android.Manifest;
|
||||
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 android.widget.Toast;
|
||||
|
||||
import com.qq.e.ads.splash.SplashAD;
|
||||
import com.qq.e.ads.splash.SplashADListener;
|
||||
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.EActivity;
|
||||
import org.androidannotations.annotations.ViewById;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
/**
|
||||
* Created by Stardust on 2017/7/7.
|
||||
*/
|
||||
@EActivity(R.layout.activity_splash)
|
||||
public class SplashActivity extends BaseActivity {
|
||||
|
||||
public static final String NOT_START_MAIN_ACTIVITY = "Eating...I...really...love...you...";
|
||||
public static final String FORCE_SHOW_AD = "I will be better but can you take just a glance at me...";
|
||||
|
||||
private static final String LOG_TAG = SplashActivity.class.getSimpleName();
|
||||
|
||||
@ViewById(R.id.logo)
|
||||
ImageView mLogo;
|
||||
|
||||
@ViewById(R.id.skip_view)
|
||||
TextView mSkipView;
|
||||
|
||||
@ViewById(R.id.ad_container)
|
||||
View mAdContainer;
|
||||
|
||||
@ViewById(R.id.ad)
|
||||
FrameLayout mAd;
|
||||
|
||||
private SplashAD mSplashAD;
|
||||
private boolean mCanEnterNextActivity = false;
|
||||
private boolean mNotStartMainActivity;
|
||||
private boolean mForceShowAd = false;
|
||||
|
||||
@Override
|
||||
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
mNotStartMainActivity = getIntent().getBooleanExtra(NOT_START_MAIN_ACTIVITY, false);
|
||||
mForceShowAd = getIntent().getBooleanExtra(FORCE_SHOW_AD, false);
|
||||
if (!mForceShowAd && !Pref.shouldShowAd()) {
|
||||
enterNextActivity();
|
||||
return;
|
||||
}
|
||||
if (Pref.isFirstShowingAd()) {
|
||||
Toast.makeText(this, R.string.text_can_close_ad_in_settings, Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
checkPermission(Manifest.permission.READ_PHONE_STATE, Manifest.permission.WRITE_EXTERNAL_STORAGE);
|
||||
}
|
||||
|
||||
@AfterViews
|
||||
void setUpViews() {
|
||||
fetchSplashAD();
|
||||
}
|
||||
|
||||
void enterNextActivity() {
|
||||
if (!mNotStartMainActivity)
|
||||
MainActivity_.intent(this).start();
|
||||
finish();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
|
||||
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
enterNextActivityIfNeeded();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPause() {
|
||||
super.onPause();
|
||||
mCanEnterNextActivity = false;
|
||||
}
|
||||
|
||||
private void enterNextActivityIfNeeded() {
|
||||
if (mCanEnterNextActivity) {
|
||||
enterNextActivity();
|
||||
return;
|
||||
}
|
||||
mCanEnterNextActivity = true;
|
||||
}
|
||||
|
||||
private void fetchSplashAD() {
|
||||
mSplashAD = new SplashAD(this, mAd, mSkipView, Constants.APP_ID, Constants.SPLASH_POS_ID, new SplashADListener() {
|
||||
@Override
|
||||
public void onADDismissed() {
|
||||
Log.v(LOG_TAG, "onADDismissed");
|
||||
enterNextActivityIfNeeded();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNoAD(int errno) {
|
||||
Log.e(LOG_TAG, "onNoAD: " + errno);
|
||||
enterNextActivity();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onADPresent() {
|
||||
Log.v(LOG_TAG, "onADPresent");
|
||||
mSkipView.setVisibility(View.VISIBLE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onADClicked() {
|
||||
Log.v(LOG_TAG, "onADClicked");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onADTick(long l) {
|
||||
mSkipView.setText(String.format(Locale.getDefault(), getString(R.string.format_skip), Math.round(l / 1000f)));
|
||||
}
|
||||
}, 4000);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user