调整书架更新显示规则

增加google ad test
This commit is contained in:
mwang 2019-06-17 23:58:25 +08:00
parent 5b87b2f167
commit 182135e945
17 changed files with 240 additions and 69 deletions

View File

@ -6,7 +6,7 @@ android {
releaseConfig { releaseConfig {
keyAlias 'key0' keyAlias 'key0'
keyPassword 'hello123' keyPassword 'hello123'
storeFile file('E:/reading/android/asProjects/zhuike/mykeystore.jks') storeFile file('E:/reading/android/asProjects/mykeystore.jks')
storePassword 'hello123' storePassword 'hello123'
} }
} }
@ -17,8 +17,8 @@ android {
applicationId "com.novelbook.android" applicationId "com.novelbook.android"
minSdkVersion 19 //target 19 Android 4.4 4.1% minSdkVersion 19 //target 19 Android 4.4 4.1%
targetSdkVersion 28 targetSdkVersion 28
versionCode 1 versionCode 6
versionName "v1.0" versionName "v6.0"
// testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" // testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
@ -32,7 +32,8 @@ android {
multiDexEnabled true //65535 multiDexEnabled true //65535
manifestPlaceholders = [UMENG_CHANNEL_CALUE: "umeng"] //uMeng manifestPlaceholders = [UMENG_CHANNEL_CALUE: "umeng"] //uMeng
flavorDimensions "default" //debug时注销 manifestPlaceholders = [MOBAPPID: "ca-app-pub-3940256099942544~3347511713"]
flavorDimensions "default" //debug时注销
} }
buildTypes { buildTypes {
debug { debug {
@ -49,7 +50,7 @@ android {
shrinkResources false shrinkResources false
signingConfig signingConfigs.debug signingConfig signingConfigs.debug
} }
/* release { release {
// Log 线 // Log 线
buildConfigField "boolean", "LOG_DEBUG", "true" buildConfigField "boolean", "LOG_DEBUG", "true"
// //
@ -59,8 +60,9 @@ android {
// resource文件 // resource文件
shrinkResources true shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
// versionCode 1
applicationVariants.all { variant -> // versionName "v1.0"
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,11 +74,17 @@ android {
} }
signingConfig signingConfigs.releaseConfig signingConfig signingConfigs.releaseConfig
}*/ }
} }
// //
/* productFlavors { productFlavors {
// googleplay {} // googleplay {}
google {
applicationId "com.zhushou.yueshu"
versionName "v1.0"
buildConfigField "String", "MAIN_HOST", '"http://g.xiaoshuofenxiang.com/api/"'
buildConfigField "String", "API_HOST", '"{\\"master\\":[\\"http:\\\\/\\\\/g.xiaoshuofenxiang.com\\"],\\"page\\":[\\"http:\\\\/\\\\/p.xiaoshuofenxiang.com\\"],\\"report\\":[\\"http:\\\\/\\\\/r.xiaoshuofenxiang.com\\"],\\"search\\":[\\"http:\\\\/\\\\/s.xiaoshuofenxiang.com\\"],\\"novel\\":[\\"http:\\\\/\\\\/n.xiaoshuofenxiang.com\\"],\\"novelsbydot\\":[\\"http:\\\\/\\\\/nbd.xiaoshuofenxiang.com\\"],\\"user\\":[\\"http:\\\\/\\\\/u.xiaoshuofenxiang.com\\"]}"'
}
ali { ali {
applicationId "com.zhushou.wangshu" applicationId "com.zhushou.wangshu"
versionName "v1.0" versionName "v1.0"
@ -144,7 +152,7 @@ android {
buildConfigField "String", "API_HOST", '"{\\"master\\":[\\"http:\\\\/\\\\/g.xiaoshuofenxiang.com\\"],\\"page\\":[\\"http:\\\\/\\\\/p.xiaoshuofenxiang.com\\"],\\"report\\":[\\"http:\\\\/\\\\/r.xiaoshuofenxiang.com\\"],\\"search\\":[\\"http:\\\\/\\\\/s.xiaoshuofenxiang.com\\"],\\"novel\\":[\\"http:\\\\/\\\\/n.xiaoshuofenxiang.com\\"],\\"novelsbydot\\":[\\"http:\\\\/\\\\/nbd.xiaoshuofenxiang.com\\"],\\"user\\":[\\"http:\\\\/\\\\/u.xiaoshuofenxiang.com\\"]}"' buildConfigField "String", "API_HOST", '"{\\"master\\":[\\"http:\\\\/\\\\/g.xiaoshuofenxiang.com\\"],\\"page\\":[\\"http:\\\\/\\\\/p.xiaoshuofenxiang.com\\"],\\"report\\":[\\"http:\\\\/\\\\/r.xiaoshuofenxiang.com\\"],\\"search\\":[\\"http:\\\\/\\\\/s.xiaoshuofenxiang.com\\"],\\"novel\\":[\\"http:\\\\/\\\\/n.xiaoshuofenxiang.com\\"],\\"novelsbydot\\":[\\"http:\\\\/\\\\/nbd.xiaoshuofenxiang.com\\"],\\"user\\":[\\"http:\\\\/\\\\/u.xiaoshuofenxiang.com\\"]}"'
} }
*//* wzzw { wzzw {
applicationId "com.novelbook.android.wzzw" applicationId "com.novelbook.android.wzzw"
versionName "v-wzzw-5.0" versionName "v-wzzw-5.0"
buildConfigField "String", "MAIN_HOST", '"http://chwzzw.xiaoshuofenxiang.com/api/"' buildConfigField "String", "MAIN_HOST", '"http://chwzzw.xiaoshuofenxiang.com/api/"'
@ -164,13 +172,13 @@ android {
buildConfigField "String", "MAIN_HOST", '"http://chg.xiaoshuofenxiang.com/api/"' buildConfigField "String", "MAIN_HOST", '"http://chg.xiaoshuofenxiang.com/api/"'
buildConfigField "String", "API_HOST", '"{\\"master\\":[\\"http:\\\\/\\\\/g.xiaoshuofenxiang.com\\"],\\"page\\":[\\"http:\\\\/\\\\/p.xiaoshuofenxiang.com\\"],\\"report\\":[\\"http:\\\\/\\\\/r.xiaoshuofenxiang.com\\"],\\"search\\":[\\"http:\\\\/\\\\/s.xiaoshuofenxiang.com\\"],\\"novel\\":[\\"http:\\\\/\\\\/n.xiaoshuofenxiang.com\\"],\\"novelsbydot\\":[\\"http:\\\\/\\\\/nbd.xiaoshuofenxiang.com\\"],\\"user\\":[\\"http:\\\\/\\\\/u.xiaoshuofenxiang.com\\"]}"' buildConfigField "String", "API_HOST", '"{\\"master\\":[\\"http:\\\\/\\\\/g.xiaoshuofenxiang.com\\"],\\"page\\":[\\"http:\\\\/\\\\/p.xiaoshuofenxiang.com\\"],\\"report\\":[\\"http:\\\\/\\\\/r.xiaoshuofenxiang.com\\"],\\"search\\":[\\"http:\\\\/\\\\/s.xiaoshuofenxiang.com\\"],\\"novel\\":[\\"http:\\\\/\\\\/n.xiaoshuofenxiang.com\\"],\\"novelsbydot\\":[\\"http:\\\\/\\\\/nbd.xiaoshuofenxiang.com\\"],\\"user\\":[\\"http:\\\\/\\\\/u.xiaoshuofenxiang.com\\"]}"'
// buildConfigField "String", "API_HOST", '""' // buildConfigField "String", "API_HOST", '""'
}*//* }
// //
productFlavors.all { flavor -> productFlavors.all { flavor ->
flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name] flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
} }
}*/ }
android { android {
lintOptions { lintOptions {
abortOnError false abortOnError false
@ -235,11 +243,9 @@ dependencies {
implementation 'com.github.ixiaow:multilayout:1.0.0' implementation 'com.github.ixiaow:multilayout:1.0.0'
implementation 'com.umeng.umsdk:analytics:8.0.2' implementation 'com.umeng.umsdk:analytics:8.0.2'
implementation 'com.umeng.umsdk:common:2.0.2' implementation 'com.umeng.umsdk:common:2.0.2'
implementation 'q.rorbin:VerticalTabLayout:1.2.5' implementation 'q.rorbin:VerticalTabLayout:1.2.5'
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'
} }

View File

@ -279,4 +279,7 @@
-keep class com.bytedance.sdk.openadsdk.** { *; } -keep class com.bytedance.sdk.openadsdk.** { *; }
-keep class com.androidquery.callback.** {*;} -keep class com.androidquery.callback.** {*;}
-keep public interface com.bytedance.sdk.openadsdk.downloadnew.** {*;} -keep public interface com.bytedance.sdk.openadsdk.downloadnew.** {*;}
-keep class com.ss.sys.ces.* {*;} -keep class com.ss.sys.ces.* {*;}
#GOOGLE MOBAD
-keep com.google.android.gms.ads.** { *; }

View File

@ -6,7 +6,7 @@
<uses-permission android:name="android.permission.INTERNET" /> <!-- <uses-permission android:name="android.permission.VIBRATE" /> --> <uses-permission android:name="android.permission.INTERNET" /> <!-- <uses-permission android:name="android.permission.VIBRATE" /> -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> <!--<uses-permission android:name="android.permission.READ_PHONE_STATE" />-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" /> <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
<!-- chanshanjia--> <!-- chanshanjia-->
@ -197,8 +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-->
<!-- Sample AdMob App ID: ca-app-pub-3940256099942544~3347511713 -->
<!-- <meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="${MOBAPPID}"/>-->
</application> </application>
</manifest> </manifest>

View File

@ -46,7 +46,7 @@ import java.util.Map;
import butterknife.BindView; import butterknife.BindView;
import butterknife.ButterKnife; import butterknife.ButterKnife;
import static com.novelbook.android.utils.AdUtil.getAppID; import static com.novelbook.android.bean.AdSetting.getAppID;
/** /**

View File

@ -32,7 +32,7 @@ import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import static com.novelbook.android.utils.AdUtil.getAppID; import static com.novelbook.android.bean.AdSetting.getAppID;
/** /**
* 这是demo工程的入口Activity在这里会首次调用广点通的SDK * 这是demo工程的入口Activity在这里会首次调用广点通的SDK

View File

@ -11,7 +11,7 @@ import com.bytedance.sdk.openadsdk.TTAdSdk;
import com.novelbook.android.BuildConfig; import com.novelbook.android.BuildConfig;
import com.novelbook.android.utils.Constants; import com.novelbook.android.utils.Constants;
import static com.novelbook.android.utils.AdUtil.getAppID; import static com.novelbook.android.bean.AdSetting.getAppID;
/** /**
* 可以用一个单例来保存TTAdManager实例在需要初始化sdk的时候调用 * 可以用一个单例来保存TTAdManager实例在需要初始化sdk的时候调用

View File

@ -41,9 +41,15 @@ import com.bytedance.sdk.openadsdk.TTFeedAd;
import com.bytedance.sdk.openadsdk.TTImage; 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.AdRequest;
import com.google.android.gms.ads.AdSize;
import com.google.android.gms.ads.AdView;
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.db.Novel; import com.novelbook.android.db.Novel;
import com.novelbook.android.netutils.NetUtil; import com.novelbook.android.netutils.NetUtil;
@ -84,7 +90,8 @@ import org.litepal.util.Const;
import butterknife.BindView; import butterknife.BindView;
import butterknife.ButterKnife; import butterknife.ButterKnife;
import static com.novelbook.android.utils.AdUtil.getAppID;
import static com.novelbook.android.utils.Constants.AD_MOB;
import static com.novelbook.android.utils.Constants.AD_TENCENT_QQ; 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;
@ -141,7 +148,7 @@ public abstract class Activity_base extends AppCompatActivity implements Native
setupToolbar(); setupToolbar();
// 初始化View注入 // 初始化View注入
this.mAQuery = new AQuery2(this); this.mAQuery = new AQuery2(this);
initAD_TouTiao(); initializeAd();//initAD_TouTiao();
setTitle(); setTitle();
initData(); initData();
initViews(); initViews();
@ -432,18 +439,26 @@ public abstract class Activity_base extends AppCompatActivity implements Native
return; return;
} }
Log.d(TAG, "loadBanner:mLastBannerTime start new banner request"); Log.d(TAG, "loadBanner:mLastBannerTime start new banner request,mBannerContainer.getChildCount(): "+mBannerContainer.getChildCount());
if(Constants.AD_SETTING.getChapterBanner().getSource()== AD_TENCENT_QQ) { if(Constants.AD_SETTING.getChapterBanner().getSource()== AD_TENCENT_QQ) {
getBanner_qq(); getBanner_qq();
}else if(Constants.AD_SETTING.getChapterBanner().getSource()== AD_TOUTIAO) { }else if(Constants.AD_SETTING.getChapterBanner().getSource()== AD_TOUTIAO) {
loadBanner_toutiao(mBannerContainer, width,height); loadBanner_toutiao(mBannerContainer, width,height);
}else if(Constants.AD_SETTING.getChapterBanner().getSource()== AD_MOB){
//loadBanner_Mob(mBannerContainer, width,height);
} }
} }
void initializeAd(){
if(Constants.AD_SETTING.isShowAdsense()) {
initAD_TouTiao();
initialMobileAd();
}
}
//------ 头条 ad ----- //------ 头条 ad -----
AQuery2 mAQuery; AQuery2 mAQuery;
Button mCreativeButton; Button mCreativeButton;
TTAdNative mTTAdNative; TTAdNative mTTAdNative;
@ -1065,7 +1080,7 @@ public abstract class Activity_base extends AppCompatActivity implements Native
} }
this.bv = new BannerView(this, com.qq.e.ads.banner.ADSize.BANNER, this.bv = new BannerView(this, com.qq.e.ads.banner.ADSize.BANNER,
getAppID(Constants.AD_TENCENT_QQ), AdSetting.getAppID(Constants.AD_TENCENT_QQ),
Constants.AD_SETTING.getChapterBanner().getSlotId(Constants.AD_TENCENT_QQ)); Constants.AD_SETTING.getChapterBanner().getSlotId(Constants.AD_TENCENT_QQ));
// 注意如果开发者的banner不是始终展示在屏幕中的话请关闭自动刷新否则将导致曝光率过低 // 注意如果开发者的banner不是始终展示在屏幕中的话请关闭自动刷新否则将导致曝光率过低
// 并且应该自行处理当banner广告区域出现在屏幕后再手动loadAD // 并且应该自行处理当banner广告区域出现在屏幕后再手动loadAD
@ -1106,7 +1121,7 @@ public abstract class Activity_base extends AppCompatActivity implements Native
nativeExpressAD = new NativeExpressAD(this, getMyADSize(adWidth, adHeight), nativeExpressAD = new NativeExpressAD(this, getMyADSize(adWidth, adHeight),
getAppID(Constants.AD_TENCENT_QQ), AdSetting.getAppID(Constants.AD_TENCENT_QQ),
Constants.AD_SETTING.getChapterContentBanner().getSlotId(Constants.AD_TENCENT_QQ), this); // 这里的Context必须为Activity Constants.AD_SETTING.getChapterContentBanner().getSlotId(Constants.AD_TENCENT_QQ), this); // 这里的Context必须为Activity
/* nativeExpressAD.setVideoOption(new VideoOption.Builder() /* nativeExpressAD.setVideoOption(new VideoOption.Builder()
.setAutoPlayPolicy(VideoOption.AutoPlayPolicy.WIFI) // 设置什么网络环境下可以自动播放视频 .setAutoPlayPolicy(VideoOption.AutoPlayPolicy.WIFI) // 设置什么网络环境下可以自动播放视频
@ -1314,8 +1329,83 @@ public abstract class Activity_base extends AppCompatActivity implements Native
Log.i(TAG, "onVideoPageClose"); Log.i(TAG, "onVideoPageClose");
} }
}; };
//------------------------AD Google MobileAds---------------
// MobileAds.initialize(this, "YOUR_ADMOB_APP_ID");
/* boolean isMobleAdInitialize =false;
AdView mAdView;
void initialMobileAd(){
// Sample AdMob app ID: ca-app-pub-3940256099942544~3347511713
String appID = AdSetting.getAppID(Constants.AD_MOB);
appID ="ca-app-pub-3940256099942544~3347511713";
MobileAds.initialize(this, appID);
isMobleAdInitialize =true;
Log.d(TAG, "onAdLoaded: initialMobileAd ");
}
AdView getAdView(){
if(mAdView ==null){
mAdView = new AdView(this);
mAdView.setAdSize(AdSize.BANNER);
String codeId = "ca-app-pub-3940256099942544/6300978111";//Constants.AD_SETTING.getChapterBanner().getSlotId(Constants.AD_MOB) ;
mAdView.setAdUnitId(codeId);
mAdView.setAdListener(new AdListener() {
@Override
public void onAdLoaded() {
// Code to be executed when an ad finishes loading.
Log.d(TAG, "onAdLoaded: mobAd loaded");
mLastBannerTime =new Date().getTime();
}
@Override
public void onAdFailedToLoad(int errorCode) {
// Code to be executed when an ad request fails.
Log.d(TAG, "onAdLoaded: Code to be executed when an ad request fails.");
}
@Override
public void onAdOpened() {
// Code to be executed when an ad opens an overlay that
// covers the screen.
Log.d(TAG, "onAdLoaded: ad opens an overlay.");
}
@Override
public void onAdClicked() {
// Code to be executed when the user clicks on an ad.
Log.d(TAG, "onAdLoaded: user clicks on an ad.");
}
@Override
public void onAdLeftApplication() {
// Code to be executed when the user has left the app.
Log.d(TAG, "onAdLoaded: Code to be executed when the user has left the app.");
}
@Override
public void onAdClosed() {
// 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;
}
private void loadBanner_Mob(FrameLayout bannerContainer, int width, int height) {
Log.d(TAG, "onAdLoaded: 1 loadBanner_Mob ");
if(!Constants.AD_SETTING.isShowAdsense()){return;}
if(!isMobleAdInitialize){
initialMobileAd();
}
Log.d(TAG, "onAdLoaded: 2 loadBanner_Mob ");
AdRequest adRequest = new AdRequest.Builder().build();
getAdView().loadAd(adRequest);
bannerContainer.removeAllViews();
bannerContainer.addView( getAdView());
}*/
@Override @Override

View File

@ -89,7 +89,7 @@ import java.util.List;
import butterknife.BindView; import butterknife.BindView;
import butterknife.ButterKnife; import butterknife.ButterKnife;
import static com.novelbook.android.utils.AdUtil.getAppID; import static com.novelbook.android.bean.AdSetting.getAppID;
/** /**
@ -266,6 +266,7 @@ void initTabs(){
nv = gson.fromJson(result,Novel.class); nv = gson.fromJson(result,Novel.class);
if(id>0) { if(id>0) {
nv.update(id); nv.update(id);
nv.checkAndUpdate();
nv= LitePal.find(Novel.class,id); nv= LitePal.find(Novel.class,id);
}else { }else {
nv.save(); nv.save();
@ -468,8 +469,8 @@ void initTabs(){
if(bannerContainer==null){ if(bannerContainer==null){
return; return;
} }
// bannerContainer.setVisibility(View.GONE);
if (!Constants.AD_SETTING.isShowAdsense() || !Constants.AD_SETTING.getFixBanner().isShow() || !NetUtil.isNetworkConnected()) { if ( !Constants.AD_SETTING.isShowAdsense() || !Constants.AD_SETTING.getFixBanner().isShow() || !NetUtil.isNetworkConnected()) {
mBannerContainer.setVisibility(View.GONE); mBannerContainer.setVisibility(View.GONE);
return; return;
} }

View File

@ -570,7 +570,7 @@ public class ReadActivity extends Activity_base implements AdInterface {
@Override @Override
protected void onDestroy() { protected void onDestroy() {
super.onDestroy(); super.onDestroy();
// pageFactory.clear(); pageFactory.clear();
bookpage = null; bookpage = null;
unregisterReceiver(myReceiver); unregisterReceiver(myReceiver);
isSpeaking = false; isSpeaking = false;

View File

@ -341,6 +341,7 @@ public class BookListAdapter extends RecyclerView.Adapter< RecyclerView.ViewHol
if (holder.imageUpdate != null) { if (holder.imageUpdate != null) {
if( novel.isUpdated()){ if( novel.isUpdated()){
Log.d(TAG, String.format("checkshelf:novel %s has new update",novel.getName()));
holder.imageUpdate.setVisibility(View.VISIBLE); holder.imageUpdate.setVisibility(View.VISIBLE);
}else{ }else{
holder.imageUpdate.setVisibility(View.GONE); holder.imageUpdate.setVisibility(View.GONE);

View File

@ -1,6 +1,7 @@
package com.novelbook.android.bean; package com.novelbook.android.bean;
import com.novelbook.android.netutils.NetUtil; import com.novelbook.android.netutils.NetUtil;
import com.novelbook.android.utils.Constants;
public class AdSetting { public class AdSetting {
private boolean showAdsense; private boolean showAdsense;
@ -62,6 +63,14 @@ public class AdSetting {
return bigBanner; return bigBanner;
} }
public static String getAppID(int sourceType){
if( Constants.AD_SETTING==null || Constants.AD_SETTING.getAppIds()==null){
return "";
}
return Constants.AD_SETTING.getAppIds().length> sourceType-1 ? Constants.AD_SETTING.getAppIds()[sourceType-1] :"";
}
public class slot{ public class slot{
private boolean show; private boolean show;
private int source; private int source;
@ -72,7 +81,7 @@ public class AdSetting {
private int displayPosition; private int displayPosition;
public int getDisplayPosition() { public int getDisplayPosition() {
//return 2; //return 1;
return displayPosition; return displayPosition;
} }

View File

@ -307,7 +307,15 @@ public class Novel extends LitePalSupport implements Serializable{
} }
@Override @Override
public int update(long id){ public int update(long id){
setValues();try { setValues();
checkAndUpdate();
Log.d("checkshelf", String.format("checkshelf:novel %s going to update,isUpdated %s", getName() ,isUpdated));
/* try {
throw new Exception("check update");
}catch (Exception e){
Log.e("checkshelf", "checkshelf ", e);
}*/
try {
return super.update(id); return super.update(id);
}catch (Exception e){ }catch (Exception e){
Log.e("NOVELDB", "update:error ", e); Log.e("NOVELDB", "update:error ", e);

View File

@ -1,10 +1,10 @@
package com.novelbook.android.utils; package com.novelbook.android.utils;
public class AdUtil { public class AdUtil {
public static String getAppID(int sourceType){ /* public static String getAppID(int sourceType){
if( Constants.AD_SETTING==null || Constants.AD_SETTING.getAppIds()==null){ if( Constants.AD_SETTING==null || Constants.AD_SETTING.getAppIds()==null){
return ""; return "";
} }
return Constants.AD_SETTING.getAppIds().length> sourceType-1 ? Constants.AD_SETTING.getAppIds()[sourceType-1] :""; return Constants.AD_SETTING.getAppIds().length> sourceType-1 ? Constants.AD_SETTING.getAppIds()[sourceType-1] :"";
} }*/
} }

View File

@ -260,6 +260,7 @@ public class BookUtil {
mNovel.setDomain(mSite.getDomain()); mNovel.setDomain(mSite.getDomain());
mNovel.setDomainName(mSite.getName()); mNovel.setDomainName(mSite.getName());
mNovel.setMuluUrl(mSite.getMuluUrl()); mNovel.setMuluUrl(mSite.getMuluUrl());
mNovel.setToDefault("isUpdated");
mNovel.update(mNovel.getId()); mNovel.update(mNovel.getId());
} }

View File

@ -19,9 +19,12 @@ public class Constants {
public static AdSetting AD_SETTING; public static AdSetting AD_SETTING;
public static final int AD_TENCENT_QQ =1; public static final int AD_TENCENT_QQ =1;
public static final int AD_TOUTIAO =2; public static final int AD_TOUTIAO =2;
public static final int AD_MOB =3;
public static final int AD_BANNER_TOP =1; public static final int AD_BANNER_TOP =1;
public static final int AD_BANNER_BOTTOM =2; public static final int AD_BANNER_BOTTOM =2;
public static boolean AD_BACKGROUND_TRANSPARENT =true ; public static boolean AD_BACKGROUND_TRANSPARENT =true ;
public static boolean PRE_LOAD_CHAPT = false; public static boolean PRE_LOAD_CHAPT = false;
public static int SCREEN_HEIGHT_PIX =1920 ; public static int SCREEN_HEIGHT_PIX =1920 ;

View File

@ -2127,6 +2127,8 @@ 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();
mBookUtil=null;
fileRetryCnt.clear(); fileRetryCnt.clear();
lastPageTime=0; lastPageTime=0;
if(chaptMap!=null){ if(chaptMap!=null){

View File

@ -8,38 +8,80 @@
</facet> </facet>
<facet type="android" name="Android"> <facet type="android" name="Android">
<configuration> <configuration>
<option name="SELECTED_BUILD_VARIANT" value="debug" /> <option name="SELECTED_BUILD_VARIANT" value="aliDebug" />
<option name="ASSEMBLE_TASK_NAME" value="assembleDebug" /> <option name="ASSEMBLE_TASK_NAME" value="assembleAliDebug" />
<option name="COMPILE_JAVA_TASK_NAME" value="compileDebugSources" /> <option name="COMPILE_JAVA_TASK_NAME" value="compileAliDebugSources" />
<afterSyncTasks> <afterSyncTasks>
<task>generateDebugSources</task> <task>generateAliDebugSources</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" /> <option name="RES_FOLDERS_RELATIVE_PATH" value="file://$MODULE_DIR$/src/main/res;file://$MODULE_DIR$/src/ali/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/debug/compileDebugJavaWithJavac/classes" /> <output url="file://$MODULE_DIR$/build/intermediates/javac/aliDebug/compileAliDebugJavaWithJavac/classes" />
<output-test url="file://$MODULE_DIR$/build/intermediates/javac/debugUnitTest/compileDebugUnitTestJavaWithJavac/classes" /> <output-test url="file://$MODULE_DIR$/build/intermediates/javac/aliDebugUnitTest/compileAliDebugUnitTestJavaWithJavac/classes" />
<exclude-output /> <exclude-output />
<content url="file://$MODULE_DIR$"> <content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/apt/debug" isTestSource="false" generated="true" /> <sourceFolder url="file://$MODULE_DIR$/build/generated/source/apt/ali/debug" 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/aidl_source_output_dir/aliDebug/compileAliDebugAidl/out" 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/source/buildConfig/ali/debug" 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/renderscript_source_output_dir/aliDebug/compileAliDebugRenderscript/out" isTestSource="false" generated="true" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/debug" type="java-resource" /> <sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/ali/debug" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/resValues/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/source/apt/androidTest/debug" isTestSource="true" generated="true" /> <sourceFolder url="file://$MODULE_DIR$/src/aliDebug/res" 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/resources" 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/assets" type="java-resource" />
<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/aidl" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/rs/androidTest/debug" type="java-test-resource" /> <sourceFolder url="file://$MODULE_DIR$/src/aliDebug/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/res/resValues/androidTest/debug" type="java-test-resource" /> <sourceFolder url="file://$MODULE_DIR$/src/aliDebug/rs" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/build/generated/source/apt/test/debug" isTestSource="true" generated="true" /> <sourceFolder url="file://$MODULE_DIR$/src/aliDebug/shaders" isTestSource="false" />
<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" />
@ -87,56 +129,52 @@
<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/manifest-checker" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/merged-not-compiled-resources" />
<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/reload-dex" /> <excludeFolder url="file://$MODULE_DIR$/build/intermediates/proguard-files" />
<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" />
<orderEntry type="sourceFolder" forTests="false" /> <orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="Gradle: com.google.android.gms:play-services-ads-identifier:16.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: :open_ad_sdk:@aar" level="project" /> <orderEntry type="library" name="Gradle: :open_ad_sdk:@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:localbroadcastmanager:28.0.0@aar" level="project" /> <orderEntry type="library" name="Gradle: com.android.support:localbroadcastmanager:28.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: __local_aars__:E.\reading\android\asProjects\zhuike\libs\juniversalchardet-1.0.3.jar:unspecified@jar" level="project" /> <orderEntry type="library" name="Gradle: __local_aars__:E.\reading\android\asProjects\zhuike\libs\juniversalchardet-1.0.3.jar:unspecified@jar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:loader:28.0.0@aar" level="project" /> <orderEntry type="library" name="Gradle: com.android.support:loader:28.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: android.arch.lifecycle:extensions:1.1.1@aar" level="project" /> <orderEntry type="library" name="Gradle: android.arch.lifecycle:extensions:1.1.1@aar" level="project" />
<orderEntry type="library" name="Gradle: com.google.android.gms:play-services-ads-lite:17.2.1@aar" level="project" />
<orderEntry type="library" name="Gradle: com.google.android.gms:play-services-measurement-sdk-api:16.3.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.github.bumptech.glide:disklrucache:4.9.0@jar" level="project" /> <orderEntry type="library" name="Gradle: com.github.bumptech.glide:disklrucache:4.9.0@jar" level="project" />
<orderEntry type="library" name="Gradle: android.arch.lifecycle:livedata-core:1.1.1@aar" level="project" /> <orderEntry type="library" name="Gradle: android.arch.lifecycle:livedata-core:1.1.1@aar" level="project" />
<orderEntry type="library" name="Gradle: com.packetzoom:pz-android-sdk:3.2.43@aar" level="project" /> <orderEntry type="library" name="Gradle: com.packetzoom:pz-android-sdk:3.2.43@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:cursoradapter:28.0.0@aar" level="project" /> <orderEntry type="library" name="Gradle: com.android.support:cursoradapter:28.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.github.bumptech.glide:gifdecoder:4.9.0@aar" level="project" /> <orderEntry type="library" name="Gradle: com.github.bumptech.glide:gifdecoder:4.9.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.squareup.retrofit2:adapter-rxjava2:2.5.0@jar" level="project" /> <orderEntry type="library" name="Gradle: com.squareup.retrofit2:adapter-rxjava2:2.5.0@jar" level="project" />
<orderEntry type="library" name="Gradle: com.google.android.gms:play-services-ads-base:17.2.1@aar" level="project" />
<orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test.espresso:espresso-core:3.0.2@aar" level="project" /> <orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test.espresso:espresso-core:3.0.2@aar" level="project" />
<orderEntry type="library" name="Gradle: android.arch.lifecycle:runtime:1.1.1@aar" level="project" /> <orderEntry type="library" name="Gradle: android.arch.lifecycle:runtime:1.1.1@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:support-compat:28.0.0@aar" level="project" /> <orderEntry type="library" name="Gradle: com.android.support:support-compat:28.0.0@aar" level="project" />
@ -152,6 +190,7 @@
<orderEntry type="library" scope="TEST" name="Gradle: net.sf.kxml:kxml2:2.3.0@jar" level="project" /> <orderEntry type="library" scope="TEST" name="Gradle: net.sf.kxml:kxml2:2.3.0@jar" level="project" />
<orderEntry type="library" name="Gradle: io.reactivex.rxjava2:rxandroid:2.1.0@aar" level="project" /> <orderEntry type="library" name="Gradle: io.reactivex.rxjava2:rxandroid:2.1.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.google.code.gson:gson:2.8.5@jar" level="project" /> <orderEntry type="library" name="Gradle: com.google.code.gson:gson:2.8.5@jar" level="project" />
<orderEntry type="library" name="Gradle: com.google.android.gms:play-services-measurement-base:16.3.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:multidex:1.0.2@aar" level="project" /> <orderEntry type="library" name="Gradle: com.android.support:multidex:1.0.2@aar" level="project" />
<orderEntry type="library" name="Gradle: org.litepal.android:core:3.0.0@aar" level="project" /> <orderEntry type="library" name="Gradle: org.litepal.android:core:3.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: org.reactivestreams:reactive-streams:1.0.2@jar" level="project" /> <orderEntry type="library" name="Gradle: org.reactivestreams:reactive-streams:1.0.2@jar" level="project" />
@ -192,6 +231,7 @@
<orderEntry type="library" name="Gradle: com.astuetz:pagerslidingtabstrip:1.0.1@aar" level="project" /> <orderEntry type="library" name="Gradle: com.astuetz:pagerslidingtabstrip:1.0.1@aar" level="project" />
<orderEntry type="library" name="Gradle: com.youth.banner:banner:1.4.10@aar" level="project" /> <orderEntry type="library" name="Gradle: com.youth.banner:banner:1.4.10@aar" level="project" />
<orderEntry type="library" name="Gradle: com.github.chengzipi:Searchbox:v1.0.0@aar" level="project" /> <orderEntry type="library" name="Gradle: com.github.chengzipi:Searchbox:v1.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:customtabs:26.1.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:support-vector-drawable:28.0.0@aar" level="project" /> <orderEntry type="library" name="Gradle: com.android.support:support-vector-drawable:28.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:support-core-utils:28.0.0@aar" level="project" /> <orderEntry type="library" name="Gradle: com.android.support:support-core-utils:28.0.0@aar" level="project" />
<orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test:monitor:1.0.2@aar" level="project" /> <orderEntry type="library" scope="TEST" name="Gradle: com.android.support.test:monitor:1.0.2@aar" level="project" />
@ -204,6 +244,7 @@
<orderEntry type="library" name="Gradle: com.jakewharton:butterknife-annotations:9.0.0@jar" level="project" /> <orderEntry type="library" name="Gradle: com.jakewharton:butterknife-annotations:9.0.0@jar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:documentfile:28.0.0@aar" level="project" /> <orderEntry type="library" name="Gradle: com.android.support:documentfile:28.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.jakewharton:butterknife:9.0.0@aar" level="project" /> <orderEntry type="library" name="Gradle: com.jakewharton:butterknife:9.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.google.android.gms:play-services-ads:17.2.1@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:slidingpanelayout:28.0.0@aar" level="project" /> <orderEntry type="library" name="Gradle: com.android.support:slidingpanelayout:28.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:appcompat-v7:28.0.0@aar" level="project" /> <orderEntry type="library" name="Gradle: com.android.support:appcompat-v7:28.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.squareup.okhttp3:okhttp:3.14.0@jar" level="project" /> <orderEntry type="library" name="Gradle: com.squareup.okhttp3:okhttp:3.14.0@jar" level="project" />
@ -220,6 +261,7 @@
<orderEntry type="library" scope="TEST" name="Gradle: org.hamcrest:hamcrest-library:1.3@jar" level="project" /> <orderEntry type="library" scope="TEST" name="Gradle: org.hamcrest:hamcrest-library:1.3@jar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:coordinatorlayout:28.0.0@aar" level="project" /> <orderEntry type="library" name="Gradle: com.android.support:coordinatorlayout:28.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:swiperefreshlayout:28.0.0@aar" level="project" /> <orderEntry type="library" name="Gradle: com.android.support:swiperefreshlayout:28.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.google.android.gms:play-services-gass:17.2.1@aar" level="project" />
<orderEntry type="library" name="Gradle: q.rorbin:VerticalTabLayout:1.2.5@aar" level="project" /> <orderEntry type="library" name="Gradle: q.rorbin:VerticalTabLayout:1.2.5@aar" level="project" />
<orderEntry type="library" name="Gradle: com.android.support:support-media-compat:28.0.0@aar" level="project" /> <orderEntry type="library" name="Gradle: com.android.support:support-media-compat:28.0.0@aar" level="project" />
<orderEntry type="library" name="Gradle: com.google.android.gms:play-services-tasks:16.0.1@aar" level="project" /> <orderEntry type="library" name="Gradle: com.google.android.gms:play-services-tasks:16.0.1@aar" level="project" />