update shelf rule
This commit is contained in:
parent
182135e945
commit
eebe556071
|
@ -62,7 +62,7 @@ android {
|
||||||
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
||||||
// versionCode 1
|
// versionCode 1
|
||||||
// versionName "v1.0"
|
// versionName "v1.0"
|
||||||
applicationVariants.all { variant ->
|
/*applicationVariants.all { variant ->
|
||||||
variant.outputs.all { output ->
|
variant.outputs.all { output ->
|
||||||
def outFile = output.outputFile
|
def outFile = output.outputFile
|
||||||
if (outFile != null && outFile.name.endsWith(".apk")) {
|
if (outFile != null && outFile.name.endsWith(".apk")) {
|
||||||
|
@ -72,12 +72,12 @@ android {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}*/
|
||||||
signingConfig signingConfigs.releaseConfig
|
signingConfig signingConfigs.releaseConfig
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//渠道
|
//渠道
|
||||||
productFlavors {
|
/* productFlavors {
|
||||||
// googleplay {}
|
// googleplay {}
|
||||||
google {
|
google {
|
||||||
applicationId "com.zhushou.yueshu"
|
applicationId "com.zhushou.yueshu"
|
||||||
|
@ -178,7 +178,7 @@ android {
|
||||||
flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
|
flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}*/
|
||||||
android {
|
android {
|
||||||
lintOptions {
|
lintOptions {
|
||||||
abortOnError false
|
abortOnError false
|
||||||
|
@ -247,5 +247,5 @@ dependencies {
|
||||||
implementation 'pl.droidsonroids.gif:android-gif-drawable:1.2.16'
|
implementation 'pl.droidsonroids.gif:android-gif-drawable:1.2.16'
|
||||||
implementation(name: 'open_ad_sdk', ext: 'aar')
|
implementation(name: 'open_ad_sdk', ext: 'aar')
|
||||||
implementation 'pl.droidsonroids.gif:android-gif-drawable:1.2.6'
|
implementation 'pl.droidsonroids.gif:android-gif-drawable:1.2.6'
|
||||||
// implementation 'com.google.android.gms:play-services-ads:17.2.1'
|
implementation 'com.google.android.gms:play-services-ads:17.2.1'
|
||||||
}
|
}
|
||||||
|
|
|
@ -282,4 +282,4 @@
|
||||||
-keep class com.ss.sys.ces.* {*;}
|
-keep class com.ss.sys.ces.* {*;}
|
||||||
|
|
||||||
#GOOGLE MOBAD
|
#GOOGLE MOBAD
|
||||||
-keep com.google.android.gms.ads.** { *; }
|
#-keep com.google.android.gms.ads.** { *; }
|
||||||
|
|
|
@ -197,13 +197,13 @@
|
||||||
<meta-data
|
<meta-data
|
||||||
android:name="UMENG_APPKEY"
|
android:name="UMENG_APPKEY"
|
||||||
android:value="5cd6238a570df375c3000cc9" /> <!-- <meta-data android:name="UMENG_CHANNEL" android:value="${UMENG_CHANNEL_VALUE}"/> -->
|
android:value="5cd6238a570df375c3000cc9" /> <!-- <meta-data android:name="UMENG_CHANNEL" android:value="${UMENG_CHANNEL_VALUE}"/> -->
|
||||||
<!--<meta-data android:name="UMENG_CHANNEL" android:value="debug" />-->
|
<meta-data android:name="UMENG_CHANNEL" android:value="debug" />
|
||||||
<meta-data android:name="UMENG_CHANNEL" android:value="${UMENG_CHANNEL_VALUE}" />
|
<!-- <meta-data android:name="UMENG_CHANNEL" android:value="${UMENG_CHANNEL_VALUE}" />-->
|
||||||
<!-- google ad-->
|
<!-- google ad-->
|
||||||
<!-- Sample AdMob App ID: ca-app-pub-3940256099942544~3347511713 -->
|
<!-- Sample AdMob App ID: ca-app-pub-3940256099942544~3347511713 -->
|
||||||
<!-- <meta-data
|
<meta-data
|
||||||
android:name="com.google.android.gms.ads.APPLICATION_ID"
|
android:name="com.google.android.gms.ads.APPLICATION_ID"
|
||||||
android:value="${MOBAPPID}"/>-->
|
android:value="${MOBAPPID}"/>
|
||||||
</application>
|
</application>
|
||||||
|
|
||||||
</manifest>
|
</manifest>
|
|
@ -14,29 +14,34 @@ import android.os.Message;
|
||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
import android.support.annotation.MainThread;
|
import android.support.annotation.MainThread;
|
||||||
import android.support.annotation.Nullable;
|
import android.support.annotation.Nullable;
|
||||||
import android.text.TextUtils;
|
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.KeyEvent;
|
import android.view.KeyEvent;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.widget.FrameLayout;
|
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
import com.bytedance.sdk.openadsdk.AdSlot;
|
import com.bytedance.sdk.openadsdk.AdSlot;
|
||||||
import com.bytedance.sdk.openadsdk.TTAdNative;
|
import com.bytedance.sdk.openadsdk.TTAdNative;
|
||||||
import com.bytedance.sdk.openadsdk.TTSplashAd;
|
import com.bytedance.sdk.openadsdk.TTSplashAd;
|
||||||
|
import com.google.android.gms.ads.AdListener;
|
||||||
|
import com.google.android.gms.ads.AdRequest;
|
||||||
|
import com.google.android.gms.ads.InterstitialAd;
|
||||||
|
import com.google.android.gms.ads.MobileAds;
|
||||||
import com.novelbook.android.AD.toutiao.TTAdManagerHolder;
|
import com.novelbook.android.AD.toutiao.TTAdManagerHolder;
|
||||||
import com.novelbook.android.AD.toutiao.WeakHandler;
|
import com.novelbook.android.AD.toutiao.WeakHandler;
|
||||||
import com.novelbook.android.BuildConfig;
|
|
||||||
import com.novelbook.android.Main2Activity;
|
import com.novelbook.android.Main2Activity;
|
||||||
|
|
||||||
import com.novelbook.android.R;
|
import com.novelbook.android.R;
|
||||||
import com.novelbook.android.utils.Constants;
|
import com.novelbook.android.utils.Constants;
|
||||||
import com.qq.e.ads.splash.SplashAD;
|
import com.qq.e.ads.splash.SplashAD;
|
||||||
import com.qq.e.ads.splash.SplashADListener;
|
import com.qq.e.ads.splash.SplashADListener;
|
||||||
import com.qq.e.comm.util.AdError;
|
import com.qq.e.comm.util.AdError;
|
||||||
|
|
||||||
import org.litepal.util.Const;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
@ -54,10 +59,14 @@ import static com.novelbook.android.bean.AdSetting.getAppID;
|
||||||
*/
|
*/
|
||||||
public class SplashActivity extends Activity implements WeakHandler.IHandler, SplashADListener {
|
public class SplashActivity extends Activity implements WeakHandler.IHandler, SplashADListener {
|
||||||
private static final String TAG = SplashActivity.class.getSimpleName();
|
private static final String TAG = SplashActivity.class.getSimpleName();
|
||||||
|
@Nullable
|
||||||
@BindView(R.id.splash_container)
|
@BindView(R.id.splash_container)
|
||||||
ViewGroup mSplashContainer;
|
ViewGroup mSplashContainer;
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
@BindView(R.id.textTile)
|
||||||
|
TextView tvTitle;
|
||||||
|
|
||||||
//--------tencent--->
|
//--------tencent--->
|
||||||
|
|
||||||
private SplashAD splashAD;
|
private SplashAD splashAD;
|
||||||
|
@ -103,9 +112,10 @@ public class SplashActivity extends Activity implements WeakHandler.IHandler, Sp
|
||||||
|
|
||||||
//-toutiao---<---
|
//-toutiao---<---
|
||||||
|
|
||||||
|
//---admob--->
|
||||||
|
private InterstitialAd mInterstitialAd;
|
||||||
|
|
||||||
|
|
||||||
@BindView(R.id.textTile)
|
|
||||||
TextView tvTitle;
|
|
||||||
|
|
||||||
@SuppressWarnings("RedundantCast")
|
@SuppressWarnings("RedundantCast")
|
||||||
@Override
|
@Override
|
||||||
|
@ -125,13 +135,21 @@ public class SplashActivity extends Activity implements WeakHandler.IHandler, Sp
|
||||||
rid = R.layout.ad_toutiao_activity_splash;
|
rid = R.layout.ad_toutiao_activity_splash;
|
||||||
splashSource=Constants.AD_TOUTIAO;
|
splashSource=Constants.AD_TOUTIAO;
|
||||||
}
|
}
|
||||||
|
else{
|
||||||
|
goToMainActivity();return;
|
||||||
|
}
|
||||||
}else{
|
}else{
|
||||||
if (Constants.AD_SETTING.getSplash2().getSource() == Constants.AD_TENCENT_QQ) {
|
if (Constants.AD_SETTING.getSplash2().getSource() == Constants.AD_TENCENT_QQ) {
|
||||||
rid = R.layout.ad_qq_activity_splash;
|
rid = R.layout.ad_qq_activity_splash;
|
||||||
} else if (Constants.AD_SETTING.getSplash2().getSource() == Constants.AD_TOUTIAO) {
|
} else if (Constants.AD_SETTING.getSplash2().getSource() == Constants.AD_TOUTIAO) {
|
||||||
// rid = R.layout.ad_toutiao_activity_splash;
|
// rid = R.layout.ad_toutiao_activity_splash;
|
||||||
goToMainActivity();
|
// goToMainActivity();
|
||||||
return;
|
return;
|
||||||
|
}else if (Constants.AD_SETTING.getSplash2() .getSource() == Constants.AD_MOB) {
|
||||||
|
// goToMainActivity();
|
||||||
|
// return;
|
||||||
|
rid = R.layout.activity_blank;
|
||||||
|
splashSource=Constants.AD_MOB;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -152,6 +170,7 @@ public class SplashActivity extends Activity implements WeakHandler.IHandler, Sp
|
||||||
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
|
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
|
||||||
// | View.SYSTEM_UI_FLAG_IMMERSIVE
|
// | View.SYSTEM_UI_FLAG_IMMERSIVE
|
||||||
);
|
);
|
||||||
|
if(tvTitle!=null)
|
||||||
tvTitle.setText(R.string.app_name);
|
tvTitle.setText(R.string.app_name);
|
||||||
//加载开屏广告
|
//加载开屏广告
|
||||||
if(splashSource == Constants.AD_TOUTIAO ) {
|
if(splashSource == Constants.AD_TOUTIAO ) {
|
||||||
|
@ -171,6 +190,14 @@ public class SplashActivity extends Activity implements WeakHandler.IHandler, Sp
|
||||||
// 如果是Android6.0以下的机器,默认在安装时获得了所有权限,可以直接调用SDK
|
// 如果是Android6.0以下的机器,默认在安装时获得了所有权限,可以直接调用SDK
|
||||||
fetchSplashAD(this, mSplashContainer, skipView, getAppID(Constants.AD_TENCENT_QQ), getPosId(), this, 0);
|
fetchSplashAD(this, mSplashContainer, skipView, getAppID(Constants.AD_TENCENT_QQ), getPosId(), this, 0);
|
||||||
}
|
}
|
||||||
|
}else if(splashSource == Constants.AD_MOB ){
|
||||||
|
getAdMob();
|
||||||
|
/* if (Build.VERSION.SDK_INT >= 23) {
|
||||||
|
checkAndRequestPermissionAdmob();
|
||||||
|
} else {
|
||||||
|
// 如果是Android6.0以下的机器,默认在安装时获得了所有权限,可以直接调用SDK
|
||||||
|
getAdMob();
|
||||||
|
}*/
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
|
@ -352,10 +379,12 @@ public class SplashActivity extends Activity implements WeakHandler.IHandler, Sp
|
||||||
if (!(checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED)) {
|
if (!(checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED)) {
|
||||||
lackedPermission.add(Manifest.permission.WRITE_EXTERNAL_STORAGE);
|
lackedPermission.add(Manifest.permission.WRITE_EXTERNAL_STORAGE);
|
||||||
}
|
}
|
||||||
|
if (!(checkSelfPermission(Manifest.permission.REQUEST_INSTALL_PACKAGES) == PackageManager.PERMISSION_GRANTED)) {
|
||||||
if (!(checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED)) {
|
lackedPermission.add(Manifest.permission.REQUEST_INSTALL_PACKAGES);
|
||||||
lackedPermission.add(Manifest.permission.ACCESS_FINE_LOCATION);
|
|
||||||
}
|
}
|
||||||
|
/*if (!(checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED)) {
|
||||||
|
lackedPermission.add(Manifest.permission.ACCESS_FINE_LOCATION);
|
||||||
|
}*/
|
||||||
|
|
||||||
// 权限都已经有了,那么直接调用SDK
|
// 权限都已经有了,那么直接调用SDK
|
||||||
if (lackedPermission.size() == 0) {
|
if (lackedPermission.size() == 0) {
|
||||||
|
@ -496,4 +525,85 @@ public class SplashActivity extends Activity implements WeakHandler.IHandler, Sp
|
||||||
}
|
}
|
||||||
|
|
||||||
//----qq ad end <---
|
//----qq ad end <---
|
||||||
|
|
||||||
|
void getAdMob(){
|
||||||
|
MobileAds.initialize(this,"ca-app-pub-3940256099942544~3347511713");
|
||||||
|
|
||||||
|
mInterstitialAd = new InterstitialAd(this);
|
||||||
|
mInterstitialAd.setAdListener(new AdListener() {
|
||||||
|
@Override
|
||||||
|
public void onAdLoaded() {
|
||||||
|
// Code to be executed when an ad finishes loading.
|
||||||
|
Log.d(TAG, "onAdLoaded: ");
|
||||||
|
SplashAdManager.setSplashTime();
|
||||||
|
mInterstitialAd.show();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onAdFailedToLoad(int errorCode) {
|
||||||
|
// Code to be executed when an ad request fails.
|
||||||
|
Log.d(TAG, "onAdFailedToLoad: ");
|
||||||
|
goToMainActivity();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onAdOpened() {
|
||||||
|
// Code to be executed when the ad is displayed.
|
||||||
|
Log.d(TAG, "onAdOpened: ");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onAdClicked() {
|
||||||
|
// Code to be executed when the user clicks on an ad.
|
||||||
|
Log.d(TAG, "onAdClicked: ");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onAdLeftApplication() {
|
||||||
|
// Code to be executed when the user has left the app.
|
||||||
|
Log.d(TAG, "onAdLeftApplication: ");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onAdClosed() {
|
||||||
|
// Code to be executed when the interstitial ad is closed.
|
||||||
|
Log.d(TAG, "onAdClosed: ");
|
||||||
|
goToMainActivity();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
mInterstitialAd.setAdUnitId("ca-app-pub-3940256099942544/1033173712");
|
||||||
|
|
||||||
|
mInterstitialAd.loadAd(new AdRequest.Builder().build());
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@TargetApi(Build.VERSION_CODES.M)
|
||||||
|
private void checkAndRequestPermissionAdmob() {
|
||||||
|
List<String> lackedPermission = new ArrayList<String>();
|
||||||
|
if (!(checkSelfPermission(Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED)) {
|
||||||
|
lackedPermission.add(Manifest.permission.READ_PHONE_STATE);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!(checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED)) {
|
||||||
|
lackedPermission.add(Manifest.permission.WRITE_EXTERNAL_STORAGE);
|
||||||
|
}
|
||||||
|
if (!(checkSelfPermission(Manifest.permission.REQUEST_INSTALL_PACKAGES) == PackageManager.PERMISSION_GRANTED)) {
|
||||||
|
lackedPermission.add(Manifest.permission.REQUEST_INSTALL_PACKAGES);
|
||||||
|
}
|
||||||
|
/*if (!(checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED)) {
|
||||||
|
lackedPermission.add(Manifest.permission.ACCESS_FINE_LOCATION);
|
||||||
|
}*/
|
||||||
|
|
||||||
|
// 权限都已经有了,那么直接调用SDK
|
||||||
|
if (lackedPermission.size() == 0) {
|
||||||
|
getAdMob();
|
||||||
|
} else {
|
||||||
|
// 请求所缺少的权限,在onRequestPermissionsResult中再看是否获得权限,如果获得权限就可以调用SDK,否则不要调用SDK。
|
||||||
|
String[] requestPermissions = new String[lackedPermission.size()];
|
||||||
|
lackedPermission.toArray(requestPermissions);
|
||||||
|
requestPermissions(requestPermissions, 1024);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,9 +8,16 @@ import android.content.res.Configuration;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
import android.view.View;
|
||||||
|
|
||||||
|
|
||||||
|
import com.google.android.gms.ads.AdListener;
|
||||||
|
import com.google.android.gms.ads.AdRequest;
|
||||||
|
import com.google.android.gms.ads.InterstitialAd;
|
||||||
|
import com.google.android.gms.ads.MobileAds;
|
||||||
import com.novelbook.android.Main2Activity;
|
import com.novelbook.android.Main2Activity;
|
||||||
|
import com.novelbook.android.MyApp;
|
||||||
|
import com.novelbook.android.bean.AdSetting;
|
||||||
import com.novelbook.android.utils.Constants;
|
import com.novelbook.android.utils.Constants;
|
||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
@ -19,12 +26,13 @@ import static com.novelbook.android.utils.Constants.AD_TENCENT_QQ;
|
||||||
import static com.novelbook.android.utils.Constants.AD_TOUTIAO;
|
import static com.novelbook.android.utils.Constants.AD_TOUTIAO;
|
||||||
|
|
||||||
public class SplashAdManager implements Application.ActivityLifecycleCallbacks, ComponentCallbacks2 {
|
public class SplashAdManager implements Application.ActivityLifecycleCallbacks, ComponentCallbacks2 {
|
||||||
|
final static String TAG= SplashAdManager.class.getSimpleName();
|
||||||
private boolean mIsBackground;
|
private boolean mIsBackground;
|
||||||
private static long lastAd =0;
|
private static long lastAd =0;
|
||||||
//private static long interVal = 5000;//Constants.AD_SPLASH_INVTERVAL;
|
//private static long interVal = 5000;//Constants.AD_SPLASH_INVTERVAL;
|
||||||
private static int pages =0;
|
private static int pages =0;
|
||||||
|
|
||||||
|
private static InterstitialAd mInterstitialAd ;
|
||||||
/******
|
/******
|
||||||
* 使用方式:在Application中直接构造即可
|
* 使用方式:在Application中直接构造即可
|
||||||
* @param application
|
* @param application
|
||||||
|
@ -49,6 +57,10 @@ public class SplashAdManager implements Application.ActivityLifecycleCallbacks,
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
|
public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
|
||||||
|
if(Constants.AD_SETTING.getSplash2() .getSource() == Constants.AD_MOB) {
|
||||||
|
getAdMob(activity);
|
||||||
|
}
|
||||||
|
Log.d(TAG, "onActivityCreated:mInterstitialAd initialized ");
|
||||||
if(activity instanceof Main2Activity){
|
if(activity instanceof Main2Activity){
|
||||||
|
|
||||||
//showAd(activity);
|
//showAd(activity);
|
||||||
|
@ -117,16 +129,29 @@ public class SplashAdManager implements Application.ActivityLifecycleCallbacks,
|
||||||
static void showSplashAd(Activity activity){
|
static void showSplashAd(Activity activity){
|
||||||
if(canShowAd()) {
|
if(canShowAd()) {
|
||||||
lastAd = new Date().getTime();
|
lastAd = new Date().getTime();
|
||||||
|
|
||||||
|
if(Constants.AD_SETTING.getSplash2() .getSource() == Constants.AD_MOB){
|
||||||
|
|
||||||
|
Log.d(TAG, "showSplashAd:mInterstitialAd.isLoaded() " +mInterstitialAd.isLoaded());
|
||||||
|
if(mInterstitialAd!=null && mInterstitialAd.isLoaded()) {
|
||||||
|
SplashAdManager.setSplashTime();
|
||||||
|
activity.getWindow().getDecorView().setSystemUiVisibility(
|
||||||
|
View.SYSTEM_UI_FLAG_LAYOUT_STABLE
|
||||||
|
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
|
||||||
|
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
|
||||||
|
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION // hide nav bar
|
||||||
|
| View.SYSTEM_UI_FLAG_FULLSCREEN // hide status bar
|
||||||
|
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
|
||||||
|
// | View.SYSTEM_UI_FLAG_IMMERSIVE
|
||||||
|
);
|
||||||
|
mInterstitialAd.show();
|
||||||
|
mInterstitialAd.loadAd(new AdRequest.Builder().build());
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
Intent intent = new Intent(activity, SplashActivity.class);
|
Intent intent = new Intent(activity, SplashActivity.class);
|
||||||
intent.putExtra(SplashActivity.EXTR_LUNCHER, false);
|
intent.putExtra(SplashActivity.EXTR_LUNCHER, false);
|
||||||
|
|
||||||
|
|
||||||
/* if(Constants.AD_SPLASH_SOURCE ==AD_TENCENT_QQ) {
|
|
||||||
intent = new Intent(activity, com.novelbook.android.AD.qq.SplashActivity.class);
|
|
||||||
}else if(Constants.AD_SPLASH_SOURCE ==AD_TOUTIAO){
|
|
||||||
intent = new Intent(activity, SplashActivity.class);
|
|
||||||
intent.putExtra(SplashActivity.EXTR_LUNCHER, false);
|
|
||||||
}*/
|
|
||||||
activity.startActivity(intent);
|
activity.startActivity(intent);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -135,7 +160,7 @@ public class SplashAdManager implements Application.ActivityLifecycleCallbacks,
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
long in = new Date().getTime() -lastAd;
|
long in = new Date().getTime() -lastAd;
|
||||||
int interVal = Constants.AD_SETTING.getSplash2().getInterval4Display()*1000;
|
int interVal = Constants.AD_SETTING.getSplash2().getInterval4Display()*1000;
|
||||||
Log.d("zzr", "canShowAd: interval is, " +in + ", canshow? "+ (in >interVal));
|
Log.d("zzr", "canShowAd: interval is, " +in + ", canshow? "+ (in >interVal));
|
||||||
return in >interVal;
|
return in >interVal;
|
||||||
}
|
}
|
||||||
|
@ -145,10 +170,66 @@ public class SplashAdManager implements Application.ActivityLifecycleCallbacks,
|
||||||
}
|
}
|
||||||
public static void plusPage(Activity activity){
|
public static void plusPage(Activity activity){
|
||||||
pages++;
|
pages++;
|
||||||
if(pages >Constants.AD_SETTING.getSplash2().getPageCount4Display()){
|
int pcnt =Constants.AD_SETTING.getSplash2().getPageCount4Display();;
|
||||||
|
|
||||||
|
if(pages > pcnt){
|
||||||
clearPages();
|
clearPages();
|
||||||
showSplashAd(activity);
|
showSplashAd(activity);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void getAdMob(Activity activity){
|
||||||
|
mInterstitialAd = new InterstitialAd(activity);
|
||||||
|
Log.d(TAG, "getAdMob: mIntersititiaAd is null ?" + (mInterstitialAd==null));
|
||||||
|
if(mInterstitialAd!=null)
|
||||||
|
mInterstitialAd.setAdListener(new AdListener() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onAdLoaded() {
|
||||||
|
// Code to be executed when an ad finishes loading.
|
||||||
|
Log.d(TAG, "onAdLoaded: ");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onAdFailedToLoad(int errorCode) {
|
||||||
|
// Code to be executed when an ad request fails.
|
||||||
|
Log.d(TAG, "onAdFailedToLoad: ");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onAdOpened() {
|
||||||
|
// Code to be executed when the ad is displayed.
|
||||||
|
Log.d(TAG, "onAdOpened: ");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onAdClicked() {
|
||||||
|
// Code to be executed when the user clicks on an ad.
|
||||||
|
Log.d(TAG, "onAdClicked: ");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onAdLeftApplication() {
|
||||||
|
// Code to be executed when the user has left the app.
|
||||||
|
Log.d(TAG, "onAdLeftApplication: ");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onAdClosed() {
|
||||||
|
// Code to be executed when the interstitial ad is closed.
|
||||||
|
Log.d(TAG, "onAdClosed: ");
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
mInterstitialAd.setAdUnitId( Constants.AD_SETTING.getSplash2().getSlotId(Constants.AD_MOB));
|
||||||
|
mInterstitialAd.loadAd(new AdRequest.Builder().build());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -42,10 +42,10 @@ import com.bytedance.sdk.openadsdk.TTImage;
|
||||||
import com.bytedance.sdk.openadsdk.TTInteractionAd;
|
import com.bytedance.sdk.openadsdk.TTInteractionAd;
|
||||||
import com.bytedance.sdk.openadsdk.TTNativeAd;
|
import com.bytedance.sdk.openadsdk.TTNativeAd;
|
||||||
import com.google.android.gms.ads.AdListener;
|
import com.google.android.gms.ads.AdListener;
|
||||||
/*import com.google.android.gms.ads.AdRequest;
|
import com.google.android.gms.ads.AdRequest;
|
||||||
import com.google.android.gms.ads.AdSize;
|
import com.google.android.gms.ads.AdSize;
|
||||||
import com.google.android.gms.ads.AdView;
|
import com.google.android.gms.ads.AdView;
|
||||||
import com.google.android.gms.ads.MobileAds;*/
|
import com.google.android.gms.ads.MobileAds;
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
import com.novelbook.android.AD.toutiao.TTAdManagerHolder;
|
import com.novelbook.android.AD.toutiao.TTAdManagerHolder;
|
||||||
|
|
||||||
|
@ -423,6 +423,8 @@ public abstract class Activity_base extends AppCompatActivity implements Native
|
||||||
loadNativeBanner_qq(-1, 388);
|
loadNativeBanner_qq(-1, 388);
|
||||||
}else if(Constants.AD_SETTING.getChapterContentBanner().getSource() == AD_TOUTIAO) {
|
}else if(Constants.AD_SETTING.getChapterContentBanner().getSource() == AD_TOUTIAO) {
|
||||||
loadNativeBanner_toutiao(mBannerContainer ,690,388);
|
loadNativeBanner_toutiao(mBannerContainer ,690,388);
|
||||||
|
}else if(Constants.AD_SETTING.getChapterContentBanner().getSource() == AD_MOB) {
|
||||||
|
loadBanner_Mob(mBannerContainer, 699,388);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -446,7 +448,7 @@ public abstract class Activity_base extends AppCompatActivity implements Native
|
||||||
loadBanner_toutiao(mBannerContainer, width,height);
|
loadBanner_toutiao(mBannerContainer, width,height);
|
||||||
|
|
||||||
}else if(Constants.AD_SETTING.getChapterBanner().getSource()== AD_MOB){
|
}else if(Constants.AD_SETTING.getChapterBanner().getSource()== AD_MOB){
|
||||||
//loadBanner_Mob(mBannerContainer, width,height);
|
loadBanner_Mob(mBannerContainer, width,height);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -454,7 +456,7 @@ public abstract class Activity_base extends AppCompatActivity implements Native
|
||||||
void initializeAd(){
|
void initializeAd(){
|
||||||
if(Constants.AD_SETTING.isShowAdsense()) {
|
if(Constants.AD_SETTING.isShowAdsense()) {
|
||||||
initAD_TouTiao();
|
initAD_TouTiao();
|
||||||
initialMobileAd();
|
// initialMobileAd();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1332,21 +1334,21 @@ public abstract class Activity_base extends AppCompatActivity implements Native
|
||||||
//------------------------AD Google MobileAds---------------
|
//------------------------AD Google MobileAds---------------
|
||||||
// MobileAds.initialize(this, "YOUR_ADMOB_APP_ID");
|
// MobileAds.initialize(this, "YOUR_ADMOB_APP_ID");
|
||||||
|
|
||||||
/* boolean isMobleAdInitialize =false;
|
boolean isMobleAdInitialize =false;
|
||||||
AdView mAdView;
|
//AdView mAdView;
|
||||||
void initialMobileAd(){
|
void initialMobileAd(){
|
||||||
// Sample AdMob app ID: ca-app-pub-3940256099942544~3347511713
|
// Sample AdMob app ID: ca-app-pub-3940256099942544~3347511713
|
||||||
String appID = AdSetting.getAppID(Constants.AD_MOB);
|
String appID = AdSetting.getAppID(Constants.AD_MOB);
|
||||||
appID ="ca-app-pub-3940256099942544~3347511713";
|
appID =AdSetting.getAppID(Constants.AD_MOB);
|
||||||
MobileAds.initialize(this, appID);
|
MobileAds.initialize(this, appID);
|
||||||
isMobleAdInitialize =true;
|
isMobleAdInitialize =true;
|
||||||
Log.d(TAG, "onAdLoaded: initialMobileAd ");
|
Log.d(TAG, "onAdLoaded: initialMobileAd ");
|
||||||
}
|
}
|
||||||
AdView getAdView(){
|
AdView getAdView(){
|
||||||
if(mAdView ==null){
|
// if(mAdView ==null){
|
||||||
mAdView = new AdView(this);
|
AdView mAdView = new AdView(this);
|
||||||
mAdView.setAdSize(AdSize.BANNER);
|
|
||||||
String codeId = "ca-app-pub-3940256099942544/6300978111";//Constants.AD_SETTING.getChapterBanner().getSlotId(Constants.AD_MOB) ;
|
String codeId = Constants.AD_SETTING.getChapterBanner().getSlotId(Constants.AD_MOB);//Constants.AD_SETTING.getChapterBanner().getSlotId(Constants.AD_MOB) ;
|
||||||
mAdView.setAdUnitId(codeId);
|
mAdView.setAdUnitId(codeId);
|
||||||
mAdView.setAdListener(new AdListener() {
|
mAdView.setAdListener(new AdListener() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -1359,7 +1361,7 @@ public abstract class Activity_base extends AppCompatActivity implements Native
|
||||||
@Override
|
@Override
|
||||||
public void onAdFailedToLoad(int errorCode) {
|
public void onAdFailedToLoad(int errorCode) {
|
||||||
// Code to be executed when an ad request fails.
|
// Code to be executed when an ad request fails.
|
||||||
Log.d(TAG, "onAdLoaded: Code to be executed when an ad request fails.");
|
Log.d(TAG, "onAdLoaded: Code to be executed when an ad request fails." +errorCode);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -1388,7 +1390,7 @@ public abstract class Activity_base extends AppCompatActivity implements Native
|
||||||
Log.d(TAG, "onAdLoaded: Code to be executed when the user is about to return to the app after tapping on an ad.");
|
Log.d(TAG, "onAdLoaded: Code to be executed when the user is about to return to the app after tapping on an ad.");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
// }
|
||||||
return mAdView;
|
return mAdView;
|
||||||
}
|
}
|
||||||
private void loadBanner_Mob(FrameLayout bannerContainer, int width, int height) {
|
private void loadBanner_Mob(FrameLayout bannerContainer, int width, int height) {
|
||||||
|
@ -1397,16 +1399,20 @@ public abstract class Activity_base extends AppCompatActivity implements Native
|
||||||
if(!isMobleAdInitialize){
|
if(!isMobleAdInitialize){
|
||||||
initialMobileAd();
|
initialMobileAd();
|
||||||
}
|
}
|
||||||
Log.d(TAG, "onAdLoaded: 2 loadBanner_Mob ");
|
Log.d(TAG, "onAdLoaded: 2 loadBanner_Mob height:" +height);
|
||||||
|
AdSize adsize = new AdSize(width,height);
|
||||||
|
AdView adView = getAdView();
|
||||||
|
if(height<250){
|
||||||
|
adView.setAdSize(AdSize.BANNER);
|
||||||
|
}else {
|
||||||
|
adView.setAdSize(AdSize.MEDIUM_RECTANGLE);
|
||||||
|
}
|
||||||
AdRequest adRequest = new AdRequest.Builder().build();
|
AdRequest adRequest = new AdRequest.Builder().build();
|
||||||
getAdView().loadAd(adRequest);
|
adView.loadAd(adRequest);
|
||||||
bannerContainer.removeAllViews();
|
bannerContainer.removeAllViews();
|
||||||
bannerContainer.addView( getAdView());
|
bannerContainer.addView( adView);
|
||||||
|
|
||||||
}*/
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onResume() {
|
protected void onResume() {
|
||||||
|
|
|
@ -9,6 +9,7 @@ import android.util.Log;
|
||||||
import com.bytedance.sdk.openadsdk.TTAdConfig;
|
import com.bytedance.sdk.openadsdk.TTAdConfig;
|
||||||
import com.bytedance.sdk.openadsdk.TTAdConstant;
|
import com.bytedance.sdk.openadsdk.TTAdConstant;
|
||||||
import com.bytedance.sdk.openadsdk.TTAdSdk;
|
import com.bytedance.sdk.openadsdk.TTAdSdk;
|
||||||
|
import com.google.android.gms.ads.MobileAds;
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
import com.novelbook.android.AD.toutiao.TTAdManagerHolder;
|
import com.novelbook.android.AD.toutiao.TTAdManagerHolder;
|
||||||
import com.novelbook.android.bean.AdSetting;
|
import com.novelbook.android.bean.AdSetting;
|
||||||
|
@ -67,10 +68,17 @@ public class MyApp extends Application {
|
||||||
}
|
}
|
||||||
private void initAD(){
|
private void initAD(){
|
||||||
initAD_ChuanShanJia();
|
initAD_ChuanShanJia();
|
||||||
|
initAD_AdMob();
|
||||||
}
|
}
|
||||||
private void initAD_ChuanShanJia(){
|
private void initAD_ChuanShanJia(){
|
||||||
TTAdManagerHolder.init(applicationContext);
|
TTAdManagerHolder.init(applicationContext);
|
||||||
}
|
}
|
||||||
|
private void initAD_AdMob(){
|
||||||
|
if(AdSetting.getAppID(Constants.AD_MOB).length()>0){
|
||||||
|
MobileAds.initialize(MyApp.applicationContext, AdSetting.getAppID(Constants.AD_MOB));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public boolean exit() {
|
public boolean exit() {
|
||||||
|
|
|
@ -545,8 +545,10 @@ public class ReadActivity extends Activity_base implements AdInterface {
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
hideReadSetting();
|
hideReadSetting();
|
||||||
pageFactory.updateTime();
|
if( pageFactory.isReady()) {
|
||||||
pageFactory.showAd();
|
pageFactory.updateTime();
|
||||||
|
pageFactory.showAd();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -16,7 +16,8 @@ public class AdSetting {
|
||||||
private slot fixBanner = new slot();
|
private slot fixBanner = new slot();
|
||||||
private slot bigBanner = new slot();
|
private slot bigBanner = new slot();
|
||||||
public boolean isShowAdsense() {
|
public boolean isShowAdsense() {
|
||||||
return showAdsense && NetUtil.isNetworkConnected();
|
// return true;
|
||||||
|
return showAdsense && NetUtil.isNetworkConnected();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setShowAdsense(boolean showAdsense) {
|
public void setShowAdsense(boolean showAdsense) {
|
||||||
|
@ -90,7 +91,8 @@ public class AdSetting {
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isShow() {
|
public boolean isShow() {
|
||||||
return show && NetUtil.isNetworkConnected();
|
// return true;
|
||||||
|
return show && NetUtil.isNetworkConnected();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setShow(boolean show) {
|
public void setShow(boolean show) {
|
||||||
|
@ -98,8 +100,8 @@ public class AdSetting {
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getSource() {
|
public int getSource() {
|
||||||
return source;
|
return source;
|
||||||
// return 1;
|
// return 3 ;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setSource(int source) {
|
public void setSource(int source) {
|
||||||
|
|
|
@ -111,6 +111,7 @@ public class Novel extends LitePalSupport implements Serializable{
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getChapterName() {
|
public String getChapterName() {
|
||||||
|
|
||||||
return chapterName;
|
return chapterName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -331,12 +332,17 @@ public void testUpdate(){
|
||||||
/* if(lastUpdateTime > nv.lastVisit && lastUpdateTime > nv.lastUpdateTime){
|
/* if(lastUpdateTime > nv.lastVisit && lastUpdateTime > nv.lastUpdateTime){
|
||||||
isUpdated =true;
|
isUpdated =true;
|
||||||
}*/
|
}*/
|
||||||
isUpdated =lastUpdateTime > nv.lastVisit || lastUpdateTime > nv.lastUpdateTime;
|
isUpdated = lastUpdateTime > nv.lastVisit && lastUpdateTime > nv.lastUpdateTime;
|
||||||
Log.d("Novel", String.format("book %s server lastUpdateTime %s, local lastupdatetime %s, local lastvist %s" +
|
Log.d("Novel", String.format("book %s server lastUpdateTime %s, local lastupdatetime %s, local lastvist %s" +
|
||||||
"is updated %s,diff1 %s,diff2 %s"
|
"is updated %s,diff1 %s,diff2 %s "
|
||||||
,name ,lastUpdateTime,nv.lastUpdateTime,nv.lastVisit,isUpdated,
|
,name ,lastUpdateTime,nv.lastUpdateTime,nv.lastVisit,isUpdated,
|
||||||
lastUpdateTime - nv.lastVisit,
|
lastUpdateTime - nv.lastVisit,
|
||||||
lastUpdateTime - nv.lastUpdateTime) );
|
lastUpdateTime - nv.lastUpdateTime
|
||||||
|
|
||||||
|
) );
|
||||||
|
isUpdated = isUpdated && !(!TextUtils.isEmpty(chapterName) && !TextUtils.isEmpty(nv.chapterName) && (chapterName.equals(nv.chapterName) || chapterName.equals(nv.lastReadChapt)));
|
||||||
|
|
||||||
|
Log.d("Novel", String.format( " isupdated %s, server lastUpdateTime ,server chaptername %s,chaptername %s,lastreadchapt %s" ,isUpdated,chapterName,nv.chapterName,nv.lastReadChapt ) );
|
||||||
|
|
||||||
if(!isUpdated){
|
if(!isUpdated){
|
||||||
setToDefault("isUpdated");
|
setToDefault("isUpdated");
|
||||||
|
|
|
@ -121,8 +121,23 @@ public class BookUtil {
|
||||||
|
|
||||||
private Novel mNovel;
|
private Novel mNovel;
|
||||||
|
|
||||||
|
private void clearBook() {
|
||||||
|
charPosition.clear();
|
||||||
|
this.muluRetryCount=0;
|
||||||
|
this.downloadStatus = DownloadStatus.notStart;
|
||||||
|
chaptDownStatus.clear();
|
||||||
|
chaptCache.clear();
|
||||||
|
fileRetryCnt.clear();
|
||||||
|
siteRuleRetryCnt=0;
|
||||||
|
isChangeSource=false;
|
||||||
|
mChapters.clear();
|
||||||
|
myArray.clear();
|
||||||
|
|
||||||
|
}
|
||||||
public void setNovel(Novel novel) {
|
public void setNovel(Novel novel) {
|
||||||
|
clearBook();
|
||||||
this.mNovel = novel;
|
this.mNovel = novel;
|
||||||
|
|
||||||
}
|
}
|
||||||
public Novel getNovel( ) {
|
public Novel getNovel( ) {
|
||||||
return mNovel ;
|
return mNovel ;
|
||||||
|
@ -299,6 +314,9 @@ public class BookUtil {
|
||||||
|
|
||||||
int siteRuleRetryCnt =0;
|
int siteRuleRetryCnt =0;
|
||||||
public void getSiteRule() {
|
public void getSiteRule() {
|
||||||
|
getSiteRule(false);
|
||||||
|
}
|
||||||
|
public void getSiteRule(boolean isForceRefresh) {
|
||||||
mSiteRule = null;
|
mSiteRule = null;
|
||||||
if(mSite==null){
|
if(mSite==null){
|
||||||
return;
|
return;
|
||||||
|
@ -334,10 +352,11 @@ public class BookUtil {
|
||||||
|
|
||||||
Log.d(TAG, String.format("目录正则表达式下载完成,开始读取章节信息") );
|
Log.d(TAG, String.format("目录正则表达式下载完成,开始读取章节信息") );
|
||||||
|
|
||||||
|
int maxAge = isForceRefresh? 0:mNovel.getMaxAge() ;
|
||||||
if(mSiteRule.getChapterUrlRegexOnMulu().length>0) {
|
if(mSiteRule.getChapterUrlRegexOnMulu().length>0) {
|
||||||
mMuluStatus = MuluStatus.isDownloading;
|
mMuluStatus = MuluStatus.isDownloading;
|
||||||
long startTime= new Date().getTime();
|
long startTime= new Date().getTime();
|
||||||
Log.d(TAG,String.format("prepare book loadChapts----start download %s,maxAge %s, 目录 from %s", mNovel.getName() ,mNovel.getMaxAge() ,mSite.getMuluUrl() ));
|
Log.d(TAG,String.format("prepare book loadChapts----start download %s,maxAge %s, 目录 from %s", mNovel.getName() ,maxAge ,mSite.getMuluUrl() ));
|
||||||
new Thread(){
|
new Thread(){
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
|
@ -348,7 +367,7 @@ public class BookUtil {
|
||||||
try {
|
try {
|
||||||
JSONObject siteJson = new JSONObject(result);
|
JSONObject siteJson = new JSONObject(result);
|
||||||
|
|
||||||
mChapters = NovelParseUtil.getChapters(mSite.getMuluUrl(), siteJson,mSite.getDomain(),mNovel.getMaxAge(),mSiteRule);
|
mChapters = NovelParseUtil.getChapters(mSite.getMuluUrl(), siteJson,mSite.getDomain(),maxAge,mSiteRule);
|
||||||
|
|
||||||
/* if (mChapters != null){
|
/* if (mChapters != null){
|
||||||
for (Chapter chapter:mChapters) {
|
for (Chapter chapter:mChapters) {
|
||||||
|
@ -489,17 +508,7 @@ public class BookUtil {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void clearBook() {
|
|
||||||
charPosition.clear();
|
|
||||||
this.muluRetryCount=0;
|
|
||||||
this.downloadStatus = DownloadStatus.notStart;
|
|
||||||
chaptDownStatus.clear();
|
|
||||||
chaptCache.clear();
|
|
||||||
fileRetryCnt.clear();
|
|
||||||
siteRuleRetryCnt=0;
|
|
||||||
isChangeSource=false;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public Site getSite() {
|
public Site getSite() {
|
||||||
return mSite !=null? mSite :new Site();
|
return mSite !=null? mSite :new Site();
|
||||||
|
@ -787,13 +796,17 @@ public class BookUtil {
|
||||||
|
|
||||||
int muluRetryCount =0;
|
int muluRetryCount =0;
|
||||||
|
|
||||||
void readChaptersAsync( ) {
|
void readChaptersAsync(){
|
||||||
|
readChaptersAsync(false);
|
||||||
|
}
|
||||||
|
void readChaptersAsync(boolean isForceRefresh ) {
|
||||||
if(mSite==null ||mSiteRule ==null){
|
if(mSite==null ||mSiteRule ==null){
|
||||||
Log.d(TAG,String.format("prepare book loadChapts failed---- %s ,mSite is null? %s ,mSiteRule ==null ? %s", mNovel.getName() ,mSite==null,mSiteRule ==null ));
|
Log.d(TAG,String.format("prepare book loadChapts failed---- %s ,mSite is null? %s ,mSiteRule ==null ? %s", mNovel.getName() ,mSite==null,mSiteRule ==null ));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
String url = mSite.getMuluUrl();
|
String url = mSite.getMuluUrl();
|
||||||
Request request = getTagRequest(url,REUtil.getDomain(url), mNovel.getMaxAge());
|
int maxAge= isForceRefresh ?0 : mNovel.getMaxAge();
|
||||||
|
Request request = getTagRequest(url,REUtil.getDomain(url),maxAge);
|
||||||
|
|
||||||
mMuluStatus = MuluStatus.isDownloading;
|
mMuluStatus = MuluStatus.isDownloading;
|
||||||
long startTime= new Date().getTime();
|
long startTime= new Date().getTime();
|
||||||
|
|
|
@ -30,6 +30,7 @@ import android.widget.Toast;
|
||||||
|
|
||||||
import com.novelbook.android.MyApp;
|
import com.novelbook.android.MyApp;
|
||||||
import com.novelbook.android.R;
|
import com.novelbook.android.R;
|
||||||
|
import com.novelbook.android.bean.AdSetting;
|
||||||
import com.novelbook.android.bean.NovelSites;
|
import com.novelbook.android.bean.NovelSites;
|
||||||
import com.novelbook.android.bean.Site;
|
import com.novelbook.android.bean.Site;
|
||||||
import com.novelbook.android.db.Chapter;
|
import com.novelbook.android.db.Chapter;
|
||||||
|
@ -626,7 +627,7 @@ public class PageFactory implements ChangeSource{
|
||||||
if(!TextUtils.isEmpty(domainName)) {
|
if(!TextUtils.isEmpty(domainName)) {
|
||||||
statusChangeSource = "前往 " + domainName.substring(0,domainName.length()>5?5:domainName.length()) + "...";
|
statusChangeSource = "前往 " + domainName.substring(0,domainName.length()>5?5:domainName.length()) + "...";
|
||||||
}
|
}
|
||||||
|
// drawChangeSourceStatus();
|
||||||
drawStatus();
|
drawStatus();
|
||||||
mBookUtil.pagefactory=this;
|
mBookUtil.pagefactory=this;
|
||||||
mBookUtil.changeSource(domain, chapId, chapTitle);
|
mBookUtil.changeSource(domain, chapId, chapTitle);
|
||||||
|
@ -713,7 +714,7 @@ private void hideSysUI(){
|
||||||
}
|
}
|
||||||
|
|
||||||
private PageFactory(Context context) {
|
private PageFactory(Context context) {
|
||||||
// mBookUtil = new BookUtil();
|
mBookUtil = new BookUtil();
|
||||||
mContext = context.getApplicationContext();
|
mContext = context.getApplicationContext();
|
||||||
config = Config.getInstance();
|
config = Config.getInstance();
|
||||||
//获取屏幕宽高
|
//获取屏幕宽高
|
||||||
|
@ -818,10 +819,15 @@ private void hideSysUI(){
|
||||||
}
|
}
|
||||||
private void drawStatus(){
|
private void drawStatus(){
|
||||||
if(mBookPageWidget!=null) {
|
if(mBookPageWidget!=null) {
|
||||||
// drawStatus(mBookPageWidget.getCurPage());
|
// drawStatus(mBookPageWidget.getCurPage());
|
||||||
drawStatus(mBookPageWidget.getNextPage());
|
drawStatus(mBookPageWidget.getNextPage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isChangingSource(){
|
||||||
|
return mStatus == Status.CHANGESOURCE;
|
||||||
|
}
|
||||||
|
|
||||||
private String loadingTxt ="";
|
private String loadingTxt ="";
|
||||||
private String statusChangeSource ="正在换源...";
|
private String statusChangeSource ="正在换源...";
|
||||||
private boolean showingStatusAd =false;
|
private boolean showingStatusAd =false;
|
||||||
|
@ -832,7 +838,7 @@ private void hideSysUI(){
|
||||||
mAd.hideProgressbar();
|
mAd.hideProgressbar();
|
||||||
// mAd.showLoading(false);
|
// mAd.showLoading(false);
|
||||||
String status = "";
|
String status = "";
|
||||||
boolean showAd =true;
|
boolean showAd =false;
|
||||||
switch (mStatus){
|
switch (mStatus){
|
||||||
case OPENING:
|
case OPENING:
|
||||||
status = "正在拼命加载" + loadingTxt;
|
status = "正在拼命加载" + loadingTxt;
|
||||||
|
@ -909,6 +915,7 @@ private void hideSysUI(){
|
||||||
// 下面这行是实现水平居中,drawText对应改为传入targetRect.centerX()
|
// 下面这行是实现水平居中,drawText对应改为传入targetRect.centerX()
|
||||||
waitPaint.setTextAlign(Paint.Align.CENTER);
|
waitPaint.setTextAlign(Paint.Align.CENTER);
|
||||||
c.drawText(status, targetRect.centerX(), baseline, waitPaint);
|
c.drawText(status, targetRect.centerX(), baseline, waitPaint);
|
||||||
|
Log.d(TAG, "changing Source showloading: drawing status :" +status );
|
||||||
// c.drawText("正在打开书本...", mHeight / 2, 0, waitPaint);
|
// c.drawText("正在打开书本...", mHeight / 2, 0, waitPaint);
|
||||||
/* TextPaint tp = new TextPaint();
|
/* TextPaint tp = new TextPaint();
|
||||||
tp.setColor(getTextColor());
|
tp.setColor(getTextColor());
|
||||||
|
@ -988,15 +995,15 @@ private void hideSysUI(){
|
||||||
// mAd.showRefresh(View.GONE);
|
// mAd.showRefresh(View.GONE);
|
||||||
|
|
||||||
Log.d(TAG, String.format("onDraw: trPage pageno %s,showAd %s",trPage.getPageNo(),showAd));
|
Log.d(TAG, String.format("onDraw: trPage pageno %s,showAd %s",trPage.getPageNo(),showAd));
|
||||||
|
// Log.d(TAG, "changing Source onDraw showloading: drawing status :" );
|
||||||
|
|
||||||
if(m_lines.size()==0 ){
|
if(m_lines.size()==0 ){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
/* try {
|
/* try {
|
||||||
throw new Exception("who's ad");
|
throw new Exception("who's ad");
|
||||||
}catch (Exception e){
|
}catch (Exception e){
|
||||||
Log.e(TAG, "onDraw:showTopBanner ",e );
|
Log.e(TAG, "onDraw:changing Source ",e );
|
||||||
}*/
|
}*/
|
||||||
/* Log.d(TAG, "showloading: ondraw showAd: " +showAd );
|
/* Log.d(TAG, "showloading: ondraw showAd: " +showAd );
|
||||||
try{
|
try{
|
||||||
|
@ -1280,7 +1287,7 @@ private void hideSysUI(){
|
||||||
|
|
||||||
public void showAd(){
|
public void showAd(){
|
||||||
Log.d(TAG, String.format("loadBannerAd showAd: mAdType %s ",mAdType ));
|
Log.d(TAG, String.format("loadBannerAd showAd: mAdType %s ",mAdType ));
|
||||||
if(mStatus == Status.LASTPAGE || mAd==null ||currentPage==null){
|
if(mStatus == Status.LASTPAGE || mAd==null ||currentPage==null || !Constants.AD_SETTING.isShowAdsense()){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Log.d(TAG, String.format("loadBannerAd showAd: mAdType %s, pageNo %s",mAdType, currentPage.getPageNo()));
|
Log.d(TAG, String.format("loadBannerAd showAd: mAdType %s, pageNo %s",mAdType, currentPage.getPageNo()));
|
||||||
|
@ -2127,8 +2134,11 @@ private void hideSysUI(){
|
||||||
|
|
||||||
public void clear(){
|
public void clear(){
|
||||||
// Log.d(TAG, String .format("prepare Book: clearing book info %s" , getNovle().getName()));
|
// Log.d(TAG, String .format("prepare Book: clearing book info %s" , getNovle().getName()));
|
||||||
mBookUtil.clear();
|
if(mBookUtil!=null) {
|
||||||
mBookUtil=null;
|
mBookUtil.clear();
|
||||||
|
// mBookUtil=null;
|
||||||
|
}
|
||||||
|
|
||||||
fileRetryCnt.clear();
|
fileRetryCnt.clear();
|
||||||
lastPageTime=0;
|
lastPageTime=0;
|
||||||
if(chaptMap!=null){
|
if(chaptMap!=null){
|
||||||
|
@ -2143,7 +2153,7 @@ private void hideSysUI(){
|
||||||
cancelPage = null;
|
cancelPage = null;
|
||||||
prePage = null;
|
prePage = null;
|
||||||
currentPage = null;
|
currentPage = null;
|
||||||
mAd=null;
|
// mAd=null;
|
||||||
currentChaptPages =null;
|
currentChaptPages =null;
|
||||||
preChaptPages=null;
|
preChaptPages=null;
|
||||||
nextChaptPages=null;
|
nextChaptPages=null;
|
||||||
|
@ -2220,7 +2230,7 @@ private void hideSysUI(){
|
||||||
|
|
||||||
public void refreshCate(){
|
public void refreshCate(){
|
||||||
mBookUtil.getChapters().clear();
|
mBookUtil.getChapters().clear();
|
||||||
mBookUtil.getSiteRule();
|
mBookUtil.getSiteRule(true);
|
||||||
}
|
}
|
||||||
public long getChapterLen(){
|
public long getChapterLen(){
|
||||||
return mBookUtil.getChapterLen();
|
return mBookUtil.getChapterLen();
|
||||||
|
|
|
@ -0,0 +1,19 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
tools:context=".Activity_paihangbang"
|
||||||
|
android:fitsSystemWindows="true"
|
||||||
|
android:clipToPadding="true"
|
||||||
|
android:background="@color/black"
|
||||||
|
>
|
||||||
|
<!-- 即toolbar悬浮在statusbar之后 https://blog.csdn.net/zafir6453/article/details/51344241-->
|
||||||
|
|
||||||
|
|
||||||
|
</android.support.design.widget.CoordinatorLayout >
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -8,80 +8,38 @@
|
||||||
</facet>
|
</facet>
|
||||||
<facet type="android" name="Android">
|
<facet type="android" name="Android">
|
||||||
<configuration>
|
<configuration>
|
||||||
<option name="SELECTED_BUILD_VARIANT" value="aliDebug" />
|
<option name="SELECTED_BUILD_VARIANT" value="debug" />
|
||||||
<option name="ASSEMBLE_TASK_NAME" value="assembleAliDebug" />
|
<option name="ASSEMBLE_TASK_NAME" value="assembleDebug" />
|
||||||
<option name="COMPILE_JAVA_TASK_NAME" value="compileAliDebugSources" />
|
<option name="COMPILE_JAVA_TASK_NAME" value="compileDebugSources" />
|
||||||
<afterSyncTasks>
|
<afterSyncTasks>
|
||||||
<task>generateAliDebugSources</task>
|
<task>generateDebugSources</task>
|
||||||
</afterSyncTasks>
|
</afterSyncTasks>
|
||||||
<option name="ALLOW_USER_CONFIGURATION" value="false" />
|
<option name="ALLOW_USER_CONFIGURATION" value="false" />
|
||||||
<option name="MANIFEST_FILE_RELATIVE_PATH" value="/src/main/AndroidManifest.xml" />
|
<option name="MANIFEST_FILE_RELATIVE_PATH" value="/src/main/AndroidManifest.xml" />
|
||||||
<option name="RES_FOLDER_RELATIVE_PATH" value="/src/main/res" />
|
<option name="RES_FOLDER_RELATIVE_PATH" value="/src/main/res" />
|
||||||
<option name="RES_FOLDERS_RELATIVE_PATH" value="file://$MODULE_DIR$/src/main/res;file://$MODULE_DIR$/src/ali/res" />
|
<option name="RES_FOLDERS_RELATIVE_PATH" value="file://$MODULE_DIR$/src/main/res" />
|
||||||
<option name="ASSETS_FOLDER_RELATIVE_PATH" value="/src/main/assets" />
|
<option name="ASSETS_FOLDER_RELATIVE_PATH" value="/src/main/assets" />
|
||||||
</configuration>
|
</configuration>
|
||||||
</facet>
|
</facet>
|
||||||
</component>
|
</component>
|
||||||
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
|
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
|
||||||
<output url="file://$MODULE_DIR$/build/intermediates/javac/aliDebug/compileAliDebugJavaWithJavac/classes" />
|
<output url="file://$MODULE_DIR$/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes" />
|
||||||
<output-test url="file://$MODULE_DIR$/build/intermediates/javac/aliDebugUnitTest/compileAliDebugUnitTestJavaWithJavac/classes" />
|
<output-test url="file://$MODULE_DIR$/build/intermediates/javac/debugUnitTest/compileDebugUnitTestJavaWithJavac/classes" />
|
||||||
<exclude-output />
|
<exclude-output />
|
||||||
<content url="file://$MODULE_DIR$">
|
<content url="file://$MODULE_DIR$">
|
||||||
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/apt/ali/debug" isTestSource="false" generated="true" />
|
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/apt/debug" isTestSource="false" generated="true" />
|
||||||
<sourceFolder url="file://$MODULE_DIR$/build/generated/aidl_source_output_dir/aliDebug/compileAliDebugAidl/out" isTestSource="false" generated="true" />
|
<sourceFolder url="file://$MODULE_DIR$/build/generated/aidl_source_output_dir/debug/compileDebugAidl/out" isTestSource="false" generated="true" />
|
||||||
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/ali/debug" isTestSource="false" generated="true" />
|
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/debug" isTestSource="false" generated="true" />
|
||||||
<sourceFolder url="file://$MODULE_DIR$/build/generated/renderscript_source_output_dir/aliDebug/compileAliDebugRenderscript/out" isTestSource="false" generated="true" />
|
<sourceFolder url="file://$MODULE_DIR$/build/generated/renderscript_source_output_dir/debug/compileDebugRenderscript/out" isTestSource="false" generated="true" />
|
||||||
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/ali/debug" type="java-resource" />
|
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/debug" type="java-resource" />
|
||||||
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/resValues/ali/debug" type="java-resource" />
|
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/resValues/debug" type="java-resource" />
|
||||||
<sourceFolder url="file://$MODULE_DIR$/src/aliDebug/res" type="java-resource" />
|
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/apt/androidTest/debug" isTestSource="true" generated="true" />
|
||||||
<sourceFolder url="file://$MODULE_DIR$/src/aliDebug/resources" type="java-resource" />
|
<sourceFolder url="file://$MODULE_DIR$/build/generated/aidl_source_output_dir/debugAndroidTest/compileDebugAndroidTestAidl/out" isTestSource="true" generated="true" />
|
||||||
<sourceFolder url="file://$MODULE_DIR$/src/aliDebug/assets" type="java-resource" />
|
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/androidTest/debug" isTestSource="true" generated="true" />
|
||||||
<sourceFolder url="file://$MODULE_DIR$/src/aliDebug/aidl" isTestSource="false" />
|
<sourceFolder url="file://$MODULE_DIR$/build/generated/renderscript_source_output_dir/debugAndroidTest/compileDebugAndroidTestRenderscript/out" isTestSource="true" generated="true" />
|
||||||
<sourceFolder url="file://$MODULE_DIR$/src/aliDebug/java" isTestSource="false" />
|
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/androidTest/debug" type="java-test-resource" />
|
||||||
<sourceFolder url="file://$MODULE_DIR$/src/aliDebug/rs" isTestSource="false" />
|
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/resValues/androidTest/debug" type="java-test-resource" />
|
||||||
<sourceFolder url="file://$MODULE_DIR$/src/aliDebug/shaders" isTestSource="false" />
|
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/apt/test/debug" isTestSource="true" generated="true" />
|
||||||
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/apt/androidTest/ali/debug" isTestSource="true" generated="true" />
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/build/generated/aidl_source_output_dir/aliDebugAndroidTest/compileAliDebugAndroidTestAidl/out" isTestSource="true" generated="true" />
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/buildConfig/androidTest/ali/debug" isTestSource="true" generated="true" />
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/build/generated/renderscript_source_output_dir/aliDebugAndroidTest/compileAliDebugAndroidTestRenderscript/out" isTestSource="true" generated="true" />
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/androidTest/ali/debug" type="java-test-resource" />
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/resValues/androidTest/ali/debug" type="java-test-resource" />
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/src/androidTestAliDebug/res" type="java-test-resource" />
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/src/androidTestAliDebug/resources" type="java-test-resource" />
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/src/androidTestAliDebug/assets" type="java-test-resource" />
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/src/androidTestAliDebug/aidl" isTestSource="true" />
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/src/androidTestAliDebug/java" isTestSource="true" />
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/src/androidTestAliDebug/rs" isTestSource="true" />
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/src/androidTestAliDebug/shaders" isTestSource="true" />
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/apt/test/ali/debug" isTestSource="true" generated="true" />
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/src/testAliDebug/res" type="java-test-resource" />
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/src/testAliDebug/resources" type="java-test-resource" />
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/src/testAliDebug/assets" type="java-test-resource" />
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/src/testAliDebug/aidl" isTestSource="true" />
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/src/testAliDebug/java" isTestSource="true" />
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/src/testAliDebug/rs" isTestSource="true" />
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/src/testAliDebug/shaders" isTestSource="true" />
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/src/ali/res" type="java-resource" />
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/src/ali/resources" type="java-resource" />
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/src/ali/assets" type="java-resource" />
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/src/ali/aidl" isTestSource="false" />
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/src/ali/java" isTestSource="false" />
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/src/ali/rs" isTestSource="false" />
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/src/ali/shaders" isTestSource="false" />
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/src/androidTestAli/res" type="java-test-resource" />
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/src/androidTestAli/resources" type="java-test-resource" />
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/src/androidTestAli/assets" type="java-test-resource" />
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/src/androidTestAli/aidl" isTestSource="true" />
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/src/androidTestAli/java" isTestSource="true" />
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/src/androidTestAli/rs" isTestSource="true" />
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/src/androidTestAli/shaders" isTestSource="true" />
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/src/testAli/res" type="java-test-resource" />
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/src/testAli/resources" type="java-test-resource" />
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/src/testAli/assets" type="java-test-resource" />
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/src/testAli/aidl" isTestSource="true" />
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/src/testAli/java" isTestSource="true" />
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/src/testAli/rs" isTestSource="true" />
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/src/testAli/shaders" isTestSource="true" />
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/src/debug/res" type="java-resource" />
|
<sourceFolder url="file://$MODULE_DIR$/src/debug/res" type="java-resource" />
|
||||||
<sourceFolder url="file://$MODULE_DIR$/src/debug/resources" type="java-resource" />
|
<sourceFolder url="file://$MODULE_DIR$/src/debug/resources" type="java-resource" />
|
||||||
<sourceFolder url="file://$MODULE_DIR$/src/debug/assets" type="java-resource" />
|
<sourceFolder url="file://$MODULE_DIR$/src/debug/assets" type="java-resource" />
|
||||||
|
@ -129,33 +87,42 @@
|
||||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/annotation_processor_list" />
|
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/annotation_processor_list" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/apk_list" />
|
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/apk_list" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/blame" />
|
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/blame" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/build-info" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/builds" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/bundle_manifest" />
|
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/bundle_manifest" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/check_manifest_result" />
|
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/check_manifest_result" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/compatible_screen_manifest" />
|
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/compatible_screen_manifest" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental" />
|
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental-runtime-classes" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental-verifier" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/instant-run-apk" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/instant_app_manifest" />
|
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/instant_app_manifest" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/instant_run_app_info_output_file" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/instant_run_main_apk_resources" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/instant_run_merged_manifests" />
|
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/instant_run_merged_manifests" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/instant_run_split_apk_resources" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/javac" />
|
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/javac" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/jniLibs" />
|
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/jniLibs" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/legacy_multidex_aapt_derived_proguard_rules" />
|
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/legacy_multidex_aapt_derived_proguard_rules" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/legacy_multidex_main_dex_list" />
|
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/legacy_multidex_main_dex_list" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/merged-not-compiled-resources" />
|
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/lint_jar" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/manifest-checker" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/merged_assets" />
|
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/merged_assets" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/merged_manifests" />
|
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/merged_manifests" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/metadata_feature_manifest" />
|
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/metadata_feature_manifest" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/prebuild" />
|
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/prebuild" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/processed_res" />
|
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/processed_res" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/proguard-files" />
|
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/reload-dex" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/proguard-rules" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/res" />
|
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/res" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/resources" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/rs" />
|
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/rs" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/shader_assets" />
|
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/shader_assets" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/shaders" />
|
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/shaders" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/signing_config" />
|
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/signing_config" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/split-apk" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/symbols" />
|
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/symbols" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/transforms" />
|
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/transforms" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/build/outputs" />
|
<excludeFolder url="file://$MODULE_DIR$/build/outputs" />
|
||||||
<excludeFolder url="file://$MODULE_DIR$/build/reports" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/build/tmp" />
|
<excludeFolder url="file://$MODULE_DIR$/build/tmp" />
|
||||||
</content>
|
</content>
|
||||||
<orderEntry type="jdk" jdkName="Android API 28 Platform" jdkType="Android SDK" />
|
<orderEntry type="jdk" jdkName="Android API 28 Platform" jdkType="Android SDK" />
|
||||||
|
|
Loading…
Reference in New Issue