去除 广告

This commit is contained in:
hyb1996
2018-11-10 17:21:31 +08:00
parent 94e9f5f34f
commit 385f9a4336
9 changed files with 20 additions and 155 deletions

View File

@@ -6,17 +6,5 @@ package org.autojs.autojs;
public final class Constants {
public static final int AD_TYPE_RANDOM = 0;
public static final int AD_TYPE_NEWS = 1;
public static final int AD_TYPE_SOCIAL = 2;
public static final int AD_TYPE_ANIMATION = 3;
public static final int AD_TYPE_GAMES = 4;
public static final int UMENG_ID_NEWS = 36787;
public static final int UMENG_ID_SOCIAL = 36785;
public static final int UMENG_ID_ANIMATION = 36781;
public static final int UMENG_ID_GAMES = 36615;
public static final int[] UMENG_IDS = {UMENG_ID_NEWS, UMENG_ID_SOCIAL, UMENG_ID_ANIMATION, UMENG_ID_GAMES};
}

View File

@@ -23,8 +23,6 @@ public class Pref {
private static final SharedPreferences DISPOSABLE_BOOLEAN = GlobalAppContext.get().getSharedPreferences("DISPOSABLE_BOOLEAN", Context.MODE_PRIVATE);
private static final String KEY_SERVER_ADDRESS = "KEY_SERVER_ADDRESS";
private static final String KEY_SHOULD_SHOW_ANNUNCIATION = "KEY_SHOULD_SHOW_ANNUNCIATION";
private static final String KEY_FIRST_SHOW_AD = "KEY_FIRST_SHOW_AD";
private static final String KEY_LAST_SHOW_AD_MILLIS = "KEY_LAST_SHOW_AD_MILLIS";
private static final String KEY_FLOATING_MENU_SHOWN = "KEY_FLOATING_MENU_SHOWN";
private static final String KEY_EDITOR_THEME = "editor.theme";
private static final String KEY_EDITOR_TEXT_SIZE = "editor.textSize";
@@ -105,34 +103,6 @@ public class Pref {
return getDisposableBoolean(KEY_SHOULD_SHOW_ANNUNCIATION, true);
}
public static boolean shouldShowAd() {
if (isFirstDay()) {
return false;
}
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;
}
return true;
}
public static int getAdType() {
try {
return Integer.parseInt(def().getString(getString(R.string.key_ad_type), String.valueOf(Constants.AD_TYPE_RANDOM)));
} catch (Exception e) {
e.printStackTrace();
return Constants.AD_TYPE_RANDOM;
}
}
private static boolean isFirstDay() {
long firstUsingMillis = def().getLong("firstUsingMillis", -1);
if (firstUsingMillis == -1) {
@@ -142,16 +112,6 @@ public class Pref {
return System.currentTimeMillis() - firstUsingMillis <= TimeUnit.DAYS.toMillis(1);
}
public static boolean isFirstShowingAd() {
return getDisposableBoolean(KEY_FIRST_SHOW_AD, true);
}
public static boolean isRecordWithRootEnabled() {
//always return true after version 3.0.0
//record without root has been deprecated
return true;
}
public static boolean isRecordToastEnabled() {
return def().getBoolean(getString(R.string.key_record_toast), true);
}

View File

@@ -1,138 +1,62 @@
package org.autojs.autojs.ui.splash;
import android.Manifest;
import android.os.Bundle;
import android.os.Handler;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatDelegate;
import android.util.Log;
import android.view.View;
import com.xcy8.ads.listener.LoadAdListener;
import com.xcy8.ads.view.FullScreenAdView;
import org.autojs.autojs.Constants;
import org.autojs.autojs.Pref;
import org.autojs.autojs.R;
import org.autojs.autojs.ui.BaseActivity;
import org.autojs.autojs.ui.main.MainActivity_;
import java.util.Random;
/**
* Created by Stardust on 2017/7/7.
*/
public class SplashActivity extends BaseActivity {
public static final String NOT_START_MAIN_ACTIVITY = "notStartMainActivity";
public static final String FORCE_SHOW_AD = "forceShowAd";
private static final String LOG_TAG = SplashActivity.class.getSimpleName();
private static final long INIT_TIMEOUT = 500;
private static final long INIT_TIMEOUT = 800;
private boolean mCanEnterNextActivity = false;
private boolean mNotStartMainActivity;
private boolean mAlreadyEnterNextActivity = false;
private boolean mAdLoading = false;
private boolean mPaused;
private Handler mHandler;
FullScreenAdView mFullScreenAdView;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
init();
boolean forceShowAd = getIntent().getBooleanExtra(FORCE_SHOW_AD, false);
if (!forceShowAd && !Pref.shouldShowAd()) {
mFullScreenAdView.setVisibility(View.INVISIBLE);
} else {
if (checkPermission(Manifest.permission.READ_PHONE_STATE)) {
fetchSplashAD();
}
}
mHandler.postDelayed(SplashActivity.this::enterNextActivity, INIT_TIMEOUT);
}
private void init() {
setContentView(R.layout.activity_splash);
mFullScreenAdView = findViewById(R.id.full_screen_view);
mHandler = new Handler();
mNotStartMainActivity = getIntent().getBooleanExtra(NOT_START_MAIN_ACTIVITY, false);
}
void enterNextActivity() {
if (mAlreadyEnterNextActivity)
return;
mAlreadyEnterNextActivity = true;
if (!mNotStartMainActivity)
MainActivity_.intent(this).start();
finish();
}
@Override
protected void onResume() {
super.onResume();
//enterNextActivityIfNeeded();
}
@Override
protected void onPause() {
super.onPause();
mCanEnterNextActivity = false;
mPaused = true;
}
private void enterNextActivityIfNeeded() {
if (mCanEnterNextActivity) {
@Override
protected void onResume() {
super.onResume();
if (mPaused) {
mPaused = false;
enterNextActivity();
}
}
void enterNextActivity() {
if (mAlreadyEnterNextActivity)
return;
if (mPaused) {
return;
}
mCanEnterNextActivity = true;
mAlreadyEnterNextActivity = true;
MainActivity_.intent(this).start();
finish();
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
fetchSplashAD();
}
private void fetchSplashAD() {
mAdLoading = true;
mFullScreenAdView.setFullScreenListener(this::enterNextActivity);
mFullScreenAdView.setLoadAdListener(new LoadAdListener() {
@Override
public void onSuccess() {
mAdLoading = false;
Log.d(LOG_TAG, "onAdLoadSuccess");
}
@Override
public void onFailure(String s) {
mAdLoading = false;
Log.e(LOG_TAG, "onAdLoadFailure: " + s);
enterNextActivity();
}
});
mHandler.postDelayed(() -> {
if (mAdLoading) {
enterNextActivity();
}
}, 2000);
mFullScreenAdView.loadAd(getAdId(), false);
}
private String getAdId() {
int type = Pref.getAdType();
int id = type >= 1 && type <= Constants.UMENG_IDS.length ? Constants.UMENG_IDS[type - 1]
: Constants.UMENG_IDS[new Random().nextInt(Constants.UMENG_IDS.length)];
return String.valueOf(id);
}
@Override
protected void onDestroy() {
super.onDestroy();
mFullScreenAdView.clean();
}
}

View File

@@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/white"
@@ -13,11 +12,6 @@
android:layout_height="0dp"
android:layout_weight="1">
<com.xcy8.ads.view.FullScreenAdView
android:id="@+id/full_screen_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</RelativeLayout>
<LinearLayout