市场分发准备
This commit is contained in:
		
							parent
							
								
									8204477341
								
							
						
					
					
						commit
						e423d8432e
					
				|  | @ -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 6 |         versionCode 1 | ||||||
|         versionName "6.0" |         versionName "v1.0" | ||||||
| 
 | 
 | ||||||
|         //  testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" |         //  testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" | ||||||
| 
 | 
 | ||||||
|  | @ -38,9 +38,11 @@ android { | ||||||
|         debug { |         debug { | ||||||
|             // 显示Log |             // 显示Log | ||||||
|             buildConfigField "boolean", "LOG_DEBUG", "true" |             buildConfigField "boolean", "LOG_DEBUG", "true" | ||||||
|             buildConfigField "String", "MAIN_HOST", '"http://xiaoshuofenxiang.com/api/"' |             buildConfigField "String", "MAIN_HOST", '"http://dg.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:\\\\/\\\\/dg.xiaoshuofenxiang.com\\"],\\"page\\":[\\"http:\\\\/\\\\/d.p.xiaoshuofenxiang.com\\"],\\"report\\":[\\"http:\\\\/\\\\//d.r.xiaoshuofenxiang.com\\"],\\"search\\":[\\"http:\\\\/\\\\//d.s.xiaoshuofenxiang.com\\"],\\"novel\\":[\\"http:\\\\/\\\\//d.n.xiaoshuofenxiang.com\\"],\\"novelsbydot\\":[\\"http:\\\\/\\\\//d.nbd.xiaoshuofenxiang.com\\"],\\"user\\":[\\"http:\\\\/\\\\//d.u.xiaoshuofenxiang.com\\"]}"' | ||||||
|            // buildConfigField "String", "CHANNEL",'"DEBUG"' |            buildConfigField "String", "API_HOST", '""' | ||||||
|  | 
 | ||||||
|  |             // buildConfigField "String", "CHANNEL",'"DEBUG"' | ||||||
|             versionNameSuffix "-debug" |             versionNameSuffix "-debug" | ||||||
|             minifyEnabled false |             minifyEnabled false | ||||||
|             zipAlignEnabled false |             zipAlignEnabled false | ||||||
|  | @ -58,7 +60,7 @@ android { | ||||||
|             shrinkResources true |             shrinkResources true | ||||||
|             proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' |             proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' | ||||||
| 
 | 
 | ||||||
|     /*      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")) { | ||||||
|  | @ -68,17 +70,17 @@ android { | ||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
| 
 | 
 | ||||||
|             }*/ |             } | ||||||
|             signingConfig signingConfigs.releaseConfig |             signingConfig signingConfigs.releaseConfig | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|     //渠道 |     //渠道 | ||||||
|   /*  productFlavors { |     productFlavors { | ||||||
|         // googleplay {} |         // googleplay {} | ||||||
|         ali { |         ali { | ||||||
|             applicationId "com.zhushou.wangshu" |             applicationId "com.zhushou.wangshu" | ||||||
|             versionName "v1.0" |             versionName "v1.0" | ||||||
|             buildConfigField "String", "MAIN_HOST", '"http://xiaoshuofenxiang.com/api/"' |             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\\"]}"' |             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\\"]}"' | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | @ -86,63 +88,62 @@ android { | ||||||
|         qq { |         qq { | ||||||
|             applicationId "com.zhushou.wangshu" |             applicationId "com.zhushou.wangshu" | ||||||
|             versionName "v1.0" |             versionName "v1.0" | ||||||
|             buildConfigField "String", "MAIN_HOST", '"http://xiaoshuofenxiang.com/api/"' |             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\\"]}"' |             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", '""' | ||||||
| 
 | 
 | ||||||
|         } |         } | ||||||
|         *//*kuan { | 
 | ||||||
|             applicationId "com.novelbook.android" |  | ||||||
|             versionName "v-kuan-1.0" |  | ||||||
|             buildConfigField "String", "MAIN_HOST", '"http://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", '""' |  | ||||||
|             buildConfigField "String", "CHANNEL",'"kuan"' |  | ||||||
|         } |  | ||||||
|         xiaomi { |         xiaomi { | ||||||
|             applicationId "com.novelbook.android" |             applicationId "com.zhushou.wangshu" | ||||||
|             versionName "v-xiaomi-1.0" |             versionName "v1.0" | ||||||
|             buildConfigField "String", "MAIN_HOST", '"http://xiaoshuofenxiang.com/api/"' |             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\\"]}"' |             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", "CHANNEL",'"xiaomi"' |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         qxs { |  | ||||||
|             applicationId "com.novelbook.android.qxs" |  | ||||||
|             versionName "v-qxs-5.0" |  | ||||||
|             buildConfigField "String", "MAIN_HOST", '"http://chqxs.xiaoshuofenxiang.com/api/"' |  | ||||||
|             buildConfigField "String", "API_HOST", '"{\\"master\\":[\\"http:\\\\/\\\\/qxs.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", '""' |  | ||||||
| 
 | 
 | ||||||
|         } |         } | ||||||
|         wzzw { |         huawei { | ||||||
|             applicationId "com.novelbook.android.wzzw" |             applicationId "com.zhushou.yueshu" | ||||||
|             versionName "v-wzzw-5.0" |             versionName "v1.0" | ||||||
|             buildConfigField "String", "MAIN_HOST", '"http://chwzzw.xiaoshuofenxiang.com/api/"' |             buildConfigField "String", "MAIN_HOST", '"http://g.xiaoshuofenxiang.com/api/"' | ||||||
|             buildConfigField "String", "API_HOST", '"{\\"master\\":[\\"http:\\\\/\\\\/wzzw.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", '""' |  | ||||||
|         } |  | ||||||
|         bo { |  | ||||||
|             applicationId "com.novelbook.android.bo" |  | ||||||
|             versionName "v-bo-5.0" |  | ||||||
|             buildConfigField "String", "MAIN_HOST", '"http://chbo.xiaoshuofenxiang.com/api/"' |  | ||||||
|             buildConfigField "String", "API_HOST", '"{\\"master\\":[\\"http:\\\\/\\\\/bo.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", '""' |  | ||||||
|         } |  | ||||||
|         g { |  | ||||||
|             applicationId "com.novelbook.android.g" |  | ||||||
|             versionName "v-g-5.0" |  | ||||||
|             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", '""' | 
 | ||||||
|         }*//* |         } | ||||||
|  | 
 | ||||||
|  |              kuan { | ||||||
|  |             applicationId "com.zhushou.wangshu" | ||||||
|  |             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\\"]}"' | ||||||
|  | 
 | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         /*  wzzw { | ||||||
|  |               applicationId "com.novelbook.android.wzzw" | ||||||
|  |               versionName "v-wzzw-5.0" | ||||||
|  |               buildConfigField "String", "MAIN_HOST", '"http://chwzzw.xiaoshuofenxiang.com/api/"' | ||||||
|  |               buildConfigField "String", "API_HOST", '"{\\"master\\":[\\"http:\\\\/\\\\/wzzw.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", '""' | ||||||
|  |           } | ||||||
|  |           bo { | ||||||
|  |               applicationId "com.novelbook.android.bo" | ||||||
|  |               versionName "v-bo-5.0" | ||||||
|  |               buildConfigField "String", "MAIN_HOST", '"http://chbo.xiaoshuofenxiang.com/api/"' | ||||||
|  |               buildConfigField "String", "API_HOST", '"{\\"master\\":[\\"http:\\\\/\\\\/bo.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", '""' | ||||||
|  |           } | ||||||
|  |           g { | ||||||
|  |               applicationId "com.novelbook.android.g" | ||||||
|  |               versionName "v-g-5.0" | ||||||
|  |               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", '""' | ||||||
|  |           }*/ | ||||||
|         //批量配置 |         //批量配置 | ||||||
|         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 | ||||||
|  |  | ||||||
|  | @ -197,8 +197,8 @@ | ||||||
|         <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}" /> | ||||||
|     </application> |     </application> | ||||||
| 
 | 
 | ||||||
| </manifest> | </manifest> | ||||||
|  | @ -2,9 +2,17 @@ package com.novelbook.android; | ||||||
| 
 | 
 | ||||||
| import android.support.v7.app.AppCompatActivity; | import android.support.v7.app.AppCompatActivity; | ||||||
| import android.os.Bundle; | import android.os.Bundle; | ||||||
|  | import android.text.TextUtils; | ||||||
|  | import android.widget.TextView; | ||||||
|  | 
 | ||||||
|  | import com.novelbook.android.utils.Constants; | ||||||
|  | 
 | ||||||
|  | import butterknife.BindView; | ||||||
| 
 | 
 | ||||||
| public class ActivityAnounce extends   Activity_base { | public class ActivityAnounce extends   Activity_base { | ||||||
| 
 | 
 | ||||||
|  |     @BindView(R.id.tvAnnounce) | ||||||
|  |     TextView tvAnnounce; | ||||||
|     @Override |     @Override | ||||||
|     public int getLayoutRes() { |     public int getLayoutRes() { | ||||||
|         return R.layout.activity_anounce; |         return R.layout.activity_anounce; | ||||||
|  | @ -24,7 +32,10 @@ public class ActivityAnounce extends   Activity_base { | ||||||
| 
 | 
 | ||||||
|     @Override |     @Override | ||||||
|     protected void initData() { |     protected void initData() { | ||||||
| 
 |         if(TextUtils.isEmpty(Constants.DECLARE.trim())){ | ||||||
|  |             return; | ||||||
|  |         } | ||||||
|  |         tvAnnounce.setText(Constants.DECLARE); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     @Override |     @Override | ||||||
|  |  | ||||||
|  | @ -196,17 +196,7 @@ public abstract  class Activity_base extends AppCompatActivity implements Native | ||||||
|     protected abstract void setTitle(); |     protected abstract void setTitle(); | ||||||
| 
 | 
 | ||||||
|    protected abstract  void initData() ; |    protected abstract  void initData() ; | ||||||
|     @Override | 
 | ||||||
|     protected void onResume() { |  | ||||||
|         super.onResume(); |  | ||||||
|       //  MobclickAgent.onResume(this); |  | ||||||
|     } |  | ||||||
|     @Override |  | ||||||
|     protected void onPause(){ |  | ||||||
|         super.onPause(); |  | ||||||
|         hideProgress(); |  | ||||||
|      //   MobclickAgent.onPause(this); |  | ||||||
|     } |  | ||||||
|     protected void closeCurrentActitivty(){ |     protected void closeCurrentActitivty(){ | ||||||
|         if( this instanceof BookActivity ) { |         if( this instanceof BookActivity ) { | ||||||
|          // return; |          // return; | ||||||
|  | @ -931,7 +921,7 @@ public abstract  class Activity_base extends AppCompatActivity implements Native | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     public TTAdNative getAdNative(){ |     public TTAdNative getAdNative(){ | ||||||
|         return mTTAdNative; |         return getTTAdNative();//mTTAdNative; | ||||||
|     } |     } | ||||||
|      void loadInteractionAd(String codeId) { |      void loadInteractionAd(String codeId) { | ||||||
|         //step4:创建插屏广告请求参数AdSlot,具体参数含义参考文档 |         //step4:创建插屏广告请求参数AdSlot,具体参数含义参考文档 | ||||||
|  | @ -1324,4 +1314,20 @@ public abstract  class Activity_base extends AppCompatActivity implements Native | ||||||
|             Log.i(TAG, "onVideoPageClose"); |             Log.i(TAG, "onVideoPageClose"); | ||||||
|         } |         } | ||||||
|     }; |     }; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     protected void onResume() { | ||||||
|  |         super.onResume(); | ||||||
|  |         //  MobclickAgent.onResume(this); | ||||||
|  |     } | ||||||
|  |     @Override | ||||||
|  |     protected void onPause(){ | ||||||
|  |         super.onPause(); | ||||||
|  |         hideProgress(); | ||||||
|  |         //   MobclickAgent.onPause(this); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -45,7 +45,7 @@ import com.google.gson.JsonObject; | ||||||
| import com.google.gson.JsonParser; | import com.google.gson.JsonParser; | ||||||
| import com.novelbook.android.AD.toutiao.TToast; | import com.novelbook.android.AD.toutiao.TToast; | ||||||
| import com.novelbook.android.Activity_base; | import com.novelbook.android.Activity_base; | ||||||
| import com.novelbook.android.Activity_base_ViewBinding; | 
 | ||||||
| import com.novelbook.android.Activity_paihangbang; | import com.novelbook.android.Activity_paihangbang; | ||||||
| import com.novelbook.android.Activity_shudan; | import com.novelbook.android.Activity_shudan; | ||||||
| import com.novelbook.android.BookActivity; | import com.novelbook.android.BookActivity; | ||||||
|  | @ -610,6 +610,9 @@ void initTabs(){ | ||||||
|      * 加载 toutiao feed广告 |      * 加载 toutiao feed广告 | ||||||
|      */ |      */ | ||||||
|      void loadListAd( BookListAdapter adapter, int adCnt, boolean addFooter) { |      void loadListAd( BookListAdapter adapter, int adCnt, boolean addFooter) { | ||||||
|  |          if(!Constants.AD_SETTING.isShowAdsense()){ | ||||||
|  |              return; | ||||||
|  |          } | ||||||
|          if(Constants.AD_SETTING.getInformationFlow().getSource()==Constants.AD_TENCENT_QQ) { |          if(Constants.AD_SETTING.getInformationFlow().getSource()==Constants.AD_TENCENT_QQ) { | ||||||
|             loadListAd_qq(adapter, adCnt, addFooter); |             loadListAd_qq(adapter, adCnt, addFooter); | ||||||
|          }else if(Constants.AD_SETTING.getInformationFlow().getSource()==Constants.AD_TOUTIAO){ |          }else if(Constants.AD_SETTING.getInformationFlow().getSource()==Constants.AD_TOUTIAO){ | ||||||
|  |  | ||||||
|  | @ -270,7 +270,7 @@ public class Fragment_Shelf extends BasicFragment { | ||||||
|                 //swipeRefreshLayout.setRefreshing(true); |                 //swipeRefreshLayout.setRefreshing(true); | ||||||
|                 pageNo = 1; |                 pageNo = 1; | ||||||
|                 getUpdatedData(); |                 getUpdatedData(); | ||||||
|                 // TODO 获取数据 | 
 | ||||||
| 
 | 
 | ||||||
|             } |             } | ||||||
|         }); |         }); | ||||||
|  | @ -293,9 +293,13 @@ public class Fragment_Shelf extends BasicFragment { | ||||||
| 
 | 
 | ||||||
|     @Override |     @Override | ||||||
|     protected void fillData() { |     protected void fillData() { | ||||||
|  |        /* for(Novel nv :bookLists){ | ||||||
|  |             nv.testUpdate(); | ||||||
|  |         }*/ | ||||||
| 
 | 
 | ||||||
|         mAdapter.setData(bookLists); |         mAdapter.setData(bookLists); | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     public void initReceyleView() { |     public void initReceyleView() { | ||||||
|  | @ -761,7 +765,7 @@ public class Fragment_Shelf extends BasicFragment { | ||||||
|     @Override |     @Override | ||||||
|     public void onResume() { |     public void onResume() { | ||||||
|         super.onResume(); |         super.onResume(); | ||||||
|         getUpdatedData(); //TODO: 更新书的状态,是不有更新 |         getUpdatedData(); | ||||||
|         if (bottomSheetDialog != null) { |         if (bottomSheetDialog != null) { | ||||||
|             bottomSheetDialog.hide(); |             bottomSheetDialog.hide(); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|  | @ -56,20 +56,8 @@ public class MyApp extends Application { | ||||||
|         if(Constants.AD_SETTING==null){ |         if(Constants.AD_SETTING==null){ | ||||||
|             Constants.AD_SETTING = new AdSetting(); |             Constants.AD_SETTING = new AdSetting(); | ||||||
|         } |         } | ||||||
| 
 |         Constants.SHOW_NOVEL_CHAPTER_URL =config.isShowChatpUrl(); | ||||||
|    /*     Constants.SHOWAD =config.isShowAd(); |         Constants.DECLARE = config.getDeclare(); | ||||||
|         Constants.AD_CHAPT_TOP_BANNER_PER_PAGE_COUNT = config.getAdTopBannerRate(); |  | ||||||
|         Constants.AD_CHAPT_NATIVE_BANNER_PER_PAGE_COUNT= config.getAdNativeBannerInLinesRate() ; |  | ||||||
|         Constants.AD_SPLASH_SOURCE=config.getAdSplashSource(); |  | ||||||
|         Constants.AD_UNIFIED_RECYCLE_SOURCE=config.getAdUnifiedRecycleSource(); |  | ||||||
|         Constants.AD_NATIVE_BANNER_SOURCE=config.getAdNativeBannerSource(); |  | ||||||
|         Constants.AD_BANNER_SOURCE=2;//config.getAdBannerSource();*/ |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| 
 | 
 | ||||||
|         Constants.ONE_DP_SIZE = (int)applicationContext.getResources().getDimension(R.dimen.one_dp); |         Constants.ONE_DP_SIZE = (int)applicationContext.getResources().getDimension(R.dimen.one_dp); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  | @ -546,6 +546,7 @@ public class ReadActivity extends  Activity_base implements   AdInterface { | ||||||
| 
 | 
 | ||||||
|         hideReadSetting(); |         hideReadSetting(); | ||||||
|         pageFactory.updateTime(); |         pageFactory.updateTime(); | ||||||
|  |         pageFactory.showAd(); | ||||||
| 
 | 
 | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  | @ -886,11 +887,14 @@ public class ReadActivity extends  Activity_base implements   AdInterface { | ||||||
|           /*  tvUrl.setVisibility(View.VISIBLE); |           /*  tvUrl.setVisibility(View.VISIBLE); | ||||||
|             tvUrl.setText("abcd+" + pageFactory.getChapter().getChapterUrl());*/ |             tvUrl.setText("abcd+" + pageFactory.getChapter().getChapterUrl());*/ | ||||||
| 
 | 
 | ||||||
|             if(pageFactory.getChapter()!=null && !TextUtils.isEmpty(pageFactory.getChapter().getChapterUrl())) { |             if(Constants.SHOW_NOVEL_CHAPTER_URL) { | ||||||
|                 tvUrl.setVisibility(View.VISIBLE); |                 if(pageFactory.getChapter()!=null && !TextUtils.isEmpty(pageFactory.getChapter().getChapterUrl())) { | ||||||
|                 tvUrl.setText(pageFactory.getChapter().getChapterUrl()); |                     tvUrl.setVisibility(View.VISIBLE); | ||||||
|  |                     tvUrl.setText(pageFactory.getChapter().getChapterUrl()); | ||||||
|  |                 } | ||||||
|             } |             } | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|     /** |     /** | ||||||
|  | @ -1134,23 +1138,26 @@ public class ReadActivity extends  Activity_base implements   AdInterface { | ||||||
|         // mBannerContainer.removeAllViews(); |         // mBannerContainer.removeAllViews(); | ||||||
|      //   mBannerContainer.removeAllViews(); |      //   mBannerContainer.removeAllViews(); | ||||||
|       //  mBannerContainer.setBackgroundResource(R.color.transparent); |       //  mBannerContainer.setBackgroundResource(R.color.transparent); | ||||||
|  | 
 | ||||||
|  |        Log.d(TAG, String.format("loadBannerAd:showNativeBannerInLines height %s, adY %s ",height, adY/Constants.ONE_DP_SIZE )); | ||||||
|  | 
 | ||||||
|         hideAdSlot(mBannerContainer); |         hideAdSlot(mBannerContainer); | ||||||
|         hideAdSlot(mNative_status_banner_container); |         hideAdSlot(mNative_status_banner_container); | ||||||
|         if(height<=0){ |         if(height<=0){ | ||||||
|             return; |             return; | ||||||
|         } |         } | ||||||
|         Log.d(TAG, String.format("loadBannerAd:showNativeBannerInLines width %s, adY %s ",Constants.SCREEN_WIDTH_PIX-50, adY/Constants.ONE_DP_SIZE )); | 
 | ||||||
|         if(  adY >390*Constants.ONE_DP_SIZE){ |         if(  adY >390*Constants.ONE_DP_SIZE){ | ||||||
|             return; |             return; | ||||||
|         } |         } | ||||||
|         hideAdSlot(mTopBannerContainer); | 
 | ||||||
|  |        // hideAdSlot(mTopBannerContainer); | ||||||
|         if(mBannerContainer.getChildCount()>0) { |         if(mBannerContainer.getChildCount()>0) { | ||||||
|             mBannerContainer.removeAllViews(); |             mBannerContainer.removeAllViews(); | ||||||
|             Log.d(TAG, "loadBannerAd: hideAdSlot()"); |  | ||||||
|         } |         } | ||||||
|         tmpFrame =mBannerContainer; |         tmpFrame =mBannerContainer; | ||||||
|         mLastBannerTime=0; |         mLastBannerTime=0; | ||||||
|         Log.d(TAG, String.format("loadBannerAd:showNativeBannerInLines width %s, height %s ,adY %s ",Constants.SCREEN_WIDTH_PIX-50,height,adY)); |         Log.d(TAG, String.format("loadBannerAd:showNativeBannerInLines to get ad, width %s, height %s ,adY %s ",Constants.SCREEN_WIDTH_PIX-50,height,adY)); | ||||||
|         loadNativeBannerAd(mBannerContainer); |         loadNativeBannerAd(mBannerContainer); | ||||||
|         FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) mBannerContainer.getLayoutParams(); |         FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) mBannerContainer.getLayoutParams(); | ||||||
|         params.setMargins(10*Constants.ONE_DP_SIZE, adY+5*Constants.ONE_DP_SIZE,  10*Constants.ONE_DP_SIZE, 0*Constants.ONE_DP_SIZE); |         params.setMargins(10*Constants.ONE_DP_SIZE, adY+5*Constants.ONE_DP_SIZE,  10*Constants.ONE_DP_SIZE, 0*Constants.ONE_DP_SIZE); | ||||||
|  | @ -1170,8 +1177,8 @@ public class ReadActivity extends  Activity_base implements   AdInterface { | ||||||
|       //  Log.d(TAG, String.format("loadBannerAd:showTopBanner width %s, height %s ,adY %s ",Constants.SCREEN_WIDTH_PIX-50,adHeight,adY)); |       //  Log.d(TAG, String.format("loadBannerAd:showTopBanner width %s, height %s ,adY %s ",Constants.SCREEN_WIDTH_PIX-50,adHeight,adY)); | ||||||
|         tmpFrame =mTopBannerContainer; |         tmpFrame =mTopBannerContainer; | ||||||
|        // hideAdSlot(mBannerContainer); |        // hideAdSlot(mBannerContainer); | ||||||
| 
 |         Log.d(TAG, String.format("loadBannerAd:showTopBanner width %s, height %s ,adY %s ",Constants.SCREEN_WIDTH_PIX-50,adHeight,adY)); | ||||||
|         hideAdSlot(mBannerContainer); |         //hideAdSlot(mBannerContainer); | ||||||
|         hideAdSlot(mNative_status_banner_container); |         hideAdSlot(mNative_status_banner_container); | ||||||
|         if(adHeight<=0){ |         if(adHeight<=0){ | ||||||
|             hideAdSlot(mTopBannerContainer); |             hideAdSlot(mTopBannerContainer); | ||||||
|  | @ -1179,7 +1186,7 @@ public class ReadActivity extends  Activity_base implements   AdInterface { | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         int topMargin = adY >200*Constants.ONE_DP_SIZE ? adY -15*Constants.ONE_DP_SIZE :adY -5*Constants.ONE_DP_SIZE; |         int topMargin = adY >200*Constants.ONE_DP_SIZE ? adY -15*Constants.ONE_DP_SIZE :adY -5*Constants.ONE_DP_SIZE; | ||||||
|         Log.d(TAG, String.format("loadBannerAd:showTopBanner width %s, height %s ,adY %s ",Constants.SCREEN_WIDTH_PIX-50,adHeight,adY)); | 
 | ||||||
|         FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) mTopBannerContainer.getLayoutParams(); |         FrameLayout.LayoutParams params = (FrameLayout.LayoutParams) mTopBannerContainer.getLayoutParams(); | ||||||
|         loadBanner(mTopBannerContainer, Constants.SCREEN_WIDTH_PIX-50,adHeight); |         loadBanner(mTopBannerContainer, Constants.SCREEN_WIDTH_PIX-50,adHeight); | ||||||
|       //  loadNativeBannerAd(mTopBannerContainer,BuildConfig.AD_SLOT_TOUTIAO_BANNER_NATIVE_ID,   304,200); |       //  loadNativeBannerAd(mTopBannerContainer,BuildConfig.AD_SLOT_TOUTIAO_BANNER_NATIVE_ID,   304,200); | ||||||
|  |  | ||||||
|  | @ -166,7 +166,7 @@ public  class BookListAdapter extends RecyclerView.Adapter< RecyclerView.ViewHol | ||||||
|             }else if(mDatas.get(position) instanceof NativeExpressADView  ){ |             }else if(mDatas.get(position) instanceof NativeExpressADView  ){ | ||||||
|                 return ITEM_VIEW_TYPE_QQ_NATIVE_EXPRESS; |                 return ITEM_VIEW_TYPE_QQ_NATIVE_EXPRESS; | ||||||
|             } |             } | ||||||
| 
 |             Log.d(TAG, String.format("getItemViewType exception 1: position %s, mDatas.get(position) %s ,mDatas.size %s",position, mDatas.get(position),mDatas.size() )); | ||||||
|         } |         } | ||||||
|         else   if (  position  == mDatas.size()) { |         else   if (  position  == mDatas.size()) { | ||||||
|             //最后一个item设置为footerView |             //最后一个item设置为footerView | ||||||
|  | @ -177,7 +177,7 @@ public  class BookListAdapter extends RecyclerView.Adapter< RecyclerView.ViewHol | ||||||
|         } else { |         } else { | ||||||
|             return TYPE_ITEM; |             return TYPE_ITEM; | ||||||
|         } |         } | ||||||
| 
 |         Log.d(TAG, String.format("getItemViewType exception 2: position %s, mDatas.get(position) %s ,mDatas.size %s",position, mDatas.get(position),mDatas.size() )); | ||||||
|         return EMPTY_VIEW; |         return EMPTY_VIEW; | ||||||
| 
 | 
 | ||||||
|            // return super.getItemViewType(position); |            // return super.getItemViewType(position); | ||||||
|  | @ -259,9 +259,12 @@ public  class BookListAdapter extends RecyclerView.Adapter< RecyclerView.ViewHol | ||||||
| 
 | 
 | ||||||
|             } |             } | ||||||
|         }else if   (hd instanceof EmptyViewHolder) { |         }else if   (hd instanceof EmptyViewHolder) { | ||||||
|             EmptyViewHolder   holder = (EmptyViewHolder)hd; |             EmptyViewHolder holder = (EmptyViewHolder) hd; | ||||||
|             holder.tvEmpty.setVisibility(View.VISIBLE); |             holder.tvEmpty.setVisibility(View.GONE); | ||||||
|             holder.tvEmpty.setText(norecord); |             if (mDatas == null || mDatas != null && mDatas.size() == 0) { | ||||||
|  |                 holder.tvEmpty.setVisibility(View.VISIBLE); | ||||||
|  |                 holder.tvEmpty.setText(norecord); | ||||||
|  |             } | ||||||
|         }else if   (hd instanceof QQ_ExpressViewHolder) { |         }else if   (hd instanceof QQ_ExpressViewHolder) { | ||||||
|             QQ_ExpressViewHolder   holder = (QQ_ExpressViewHolder)hd; |             QQ_ExpressViewHolder   holder = (QQ_ExpressViewHolder)hd; | ||||||
|          //   holder.title.setVisibility(View.VISIBLE); |          //   holder.title.setVisibility(View.VISIBLE); | ||||||
|  |  | ||||||
|  | @ -2,6 +2,8 @@ package com.novelbook.android.netapi; | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | import android.util.Log; | ||||||
|  | 
 | ||||||
| import org.json.JSONArray; | import org.json.JSONArray; | ||||||
| import org.json.JSONException; | import org.json.JSONException; | ||||||
| import org.json.JSONObject; | import org.json.JSONObject; | ||||||
|  | @ -33,16 +35,18 @@ public class UrlFactory { | ||||||
| 		if (host != null) { | 		if (host != null) { | ||||||
| 			us = host.getJSONArray(key); | 			us = host.getJSONArray(key); | ||||||
| 			if (us != null &&  us.length() > index) { | 			if (us != null &&  us.length() > index) { | ||||||
| 				 return us.getString(index) ;//+ uri; | 			 	 return us.getString(index) ;//+ uri; | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| 		return ""; | 	//	return ""; | ||||||
| 		/*int value = (us == null ||  us.length()==0) ? index : index - us.length(); | 		 int value = (us == null ||  us.length()==0) ? index : index - us.length(); | ||||||
| 		 | 		 | ||||||
| 		int second = 90 + 7; | 		int second = 90 + 7; | ||||||
| 		int a1 = value / 2 +1; | 		int a1 = value / 2 +1; | ||||||
| 		int a2 = value % 2; | 		int a2 = value % 2; | ||||||
| 		return String.format("http://%s%s%s.%s%s%s%s.com", key.charAt(0), (char)(second + a2), a1, "xiao", "shuo", "fen", "xiang");*/ | 		String url = String.format("http://%s%s%s.%s%s%s%s.com", key.charAt(0), (char)(second + a2), a1, "xiao", "shuo", "fen", "xiang"); | ||||||
|  | 		Log.d("randomurl", "getUrl: " + url); | ||||||
|  | 		return url; | ||||||
| 	} | 	} | ||||||
| 	 | 	 | ||||||
| 	public static void main(String[] args) { | 	public static void main(String[] args) { | ||||||
|  |  | ||||||
|  | @ -72,7 +72,7 @@ public class NetUtil { | ||||||
|             return false; |             return false; | ||||||
|         } |         } | ||||||
|         long t =Constants.MAXAGE_G*1000 - (new Date().getTime() - Constants.LAST_G )  ; |         long t =Constants.MAXAGE_G*1000 - (new Date().getTime() - Constants.LAST_G )  ; | ||||||
|         Log.d(TAG, "isHostExpires: time left is " +CommonUtil.getTimeCnt4Read(t,true)); |         Log.d(TAG, "HttpMethods intercept isHostExpires: time left is " +CommonUtil.getTimeCnt4Read(t,true)); | ||||||
| 
 | 
 | ||||||
|       //  t=0; |       //  t=0; | ||||||
|        return  t < 0; |        return  t < 0; | ||||||
|  | @ -81,12 +81,13 @@ public class NetUtil { | ||||||
|     public static JSONObject getHost(boolean isMainApi)  { |     public static JSONObject getHost(boolean isMainApi)  { | ||||||
|         JSONObject jsonObject=null; |         JSONObject jsonObject=null; | ||||||
|         if(!isMainApi && isHostExpires()){ |         if(!isMainApi && isHostExpires()){ | ||||||
|             Log.d(TAG, String.format("isHostExpires prepare book:  main API maxAge %s, is expired, loading main API again ",CommonUtil.getTimeCnt4Read(Constants.MAXAGE_G*1000,true))); |             Log.d(TAG, String.format("HttpMethods intercept isHostExpires prepare book:  main API maxAge %s, is expired, loading main API again ",CommonUtil.getTimeCnt4Read(Constants.MAXAGE_G*1000,true))); | ||||||
|             getHostPolicy(); |             getHostPolicy(); | ||||||
|         } |         } | ||||||
|       if (TextUtils.isEmpty(hosts)) { |       if (TextUtils.isEmpty(hosts)) { | ||||||
|           Config config = Config.getInstance(); |           Config config = Config.getInstance(); | ||||||
|           hosts = config.getBaseUrl(); |           hosts = config.getBaseUrl(); | ||||||
|  |           Log.d(TAG, " hostconfig gethosts  " +hosts); | ||||||
|           if(TextUtils.isEmpty(hosts)){ |           if(TextUtils.isEmpty(hosts)){ | ||||||
|               return null; |               return null; | ||||||
|           } |           } | ||||||
|  | @ -327,6 +328,7 @@ public class NetUtil { | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|     public static void getHostPolicy(){ |     public static void getHostPolicy(){ | ||||||
|  |         Log.d(TAG, " hostconfig is in ... isRequestHosts? "+isRequestHosts ); | ||||||
|         if(isRequestHosts){ |         if(isRequestHosts){ | ||||||
|             return; |             return; | ||||||
|         } |         } | ||||||
|  | @ -341,6 +343,7 @@ public class NetUtil { | ||||||
|                     String resultstr = jsonObject.getString("hosts"); |                     String resultstr = jsonObject.getString("hosts"); | ||||||
|                     Config config =Config.createConfig(MyApp.applicationContext); |                     Config config =Config.createConfig(MyApp.applicationContext); | ||||||
|                     config.setBaseUrl(resultstr); |                     config.setBaseUrl(resultstr); | ||||||
|  |                     Log.d(TAG, " hostconfig sethosts  " +resultstr); | ||||||
|                     //config.setBaseUrl(resultstr); |                     //config.setBaseUrl(resultstr); | ||||||
|                     hosts=""; |                     hosts=""; | ||||||
|                     Constants.LAST_G = new Date().getTime(); |                     Constants.LAST_G = new Date().getTime(); | ||||||
|  | @ -358,6 +361,11 @@ public class NetUtil { | ||||||
|                    // Constants.minVersion = |                    // Constants.minVersion = | ||||||
|                     // config.setRootUrl( jsonObject.getString("masterDomains")); |                     // config.setRootUrl( jsonObject.getString("masterDomains")); | ||||||
|                     isRequestHosts =false; |                     isRequestHosts =false; | ||||||
|  | 
 | ||||||
|  |                     Constants.SHOW_NOVEL_CHAPTER_URL = jsonObject.getBoolean("showTargetSiteChatperUrl"); | ||||||
|  |                     Constants.DECLARE =jsonObject.getString("disclaimer"); | ||||||
|  |                     config.setShowChaptUrl( Constants.SHOW_NOVEL_CHAPTER_URL); | ||||||
|  |                     config.setDeclare( Constants.DECLARE ); | ||||||
|                 } catch (Exception e) { |                 } catch (Exception e) { | ||||||
|                     e.printStackTrace(); |                     e.printStackTrace(); | ||||||
|                 } |                 } | ||||||
|  | @ -381,7 +389,9 @@ public class NetUtil { | ||||||
|        String tmp = jsonObject.getString("upgradeUrl"); |        String tmp = jsonObject.getString("upgradeUrl"); | ||||||
|        Constants.updateUrl = TextUtils.isEmpty(tmp) ? Constants.updateUrl : tmp; |        Constants.updateUrl = TextUtils.isEmpty(tmp) ? Constants.updateUrl : tmp; | ||||||
|        Constants.minVersion = jsonObject.getInt("minVersion"); |        Constants.minVersion = jsonObject.getInt("minVersion"); | ||||||
|  |        //if(jsonObject.has("showTargetSiteChatperUrl")) { | ||||||
| 
 | 
 | ||||||
|  |        //} | ||||||
|        Constants.version = CommonUtil.getVersionCode(MyApp.applicationContext); |        Constants.version = CommonUtil.getVersionCode(MyApp.applicationContext); | ||||||
|        if (lastUpgradCheck == 0 || Constants.version < Constants.minVersion) { |        if (lastUpgradCheck == 0 || Constants.version < Constants.minVersion) { | ||||||
|            lastUpgradCheck = new Date().getTime(); |            lastUpgradCheck = new Date().getTime(); | ||||||
|  |  | ||||||
|  | @ -162,12 +162,16 @@ public class RetryInterceptor implements Interceptor { | ||||||
| 
 | 
 | ||||||
|             if (response != null && response.isSuccessful()) { |             if (response != null && response.isSuccessful()) { | ||||||
|               //  rh = null; |               //  rh = null; | ||||||
|                 Log.d(TAG, String.format("HttpMethods intercept: set rh null,return response")); |                 Log.d(TAG, String.format("HttpMethods intercept isHostExpires  get path %s" ,path)); | ||||||
|                 if (path.equals("/api/g")) { |                 if (path.equals("/api/g/") || path.equals("/api/g")) { | ||||||
|  |                     Log.d(TAG, String.format("HttpMethods intercept isHostExpires  get main api %s" ,path)); | ||||||
|                     String cacheControl = response.header("Cache-Control"); |                     String cacheControl = response.header("Cache-Control"); | ||||||
|  |                     Log.d(TAG, String.format("HttpMethods intercept isHostExpires, cacheControl %s" ,cacheControl)); | ||||||
|                     if(!TextUtils.isEmpty(cacheControl)) { |                     if(!TextUtils.isEmpty(cacheControl)) { | ||||||
|                         try { |                         try { | ||||||
|  | 
 | ||||||
|                             Constants.MAXAGE_G = Integer.parseInt(cacheControl.substring("max-age=".length())); |                             Constants.MAXAGE_G = Integer.parseInt(cacheControl.substring("max-age=".length())); | ||||||
|  |                             Log.d(TAG, String.format("HttpMethods intercept isHostExpires  Constants.MAXAGE_G: %s" ,Constants.MAXAGE_G)); | ||||||
|                         }catch (Exception e) |                         }catch (Exception e) | ||||||
|                         { |                         { | ||||||
|                             Log.e(TAG, "intercept: parse max age error", e); |                             Log.e(TAG, "intercept: parse max age error", e); | ||||||
|  |  | ||||||
|  | @ -1699,7 +1699,7 @@ private void loadChaptContent(final int chapterIndex) throws JSONException, Inte | ||||||
| 
 | 
 | ||||||
|     } |     } | ||||||
|     Chapter chapter = mChapters.get(index -1); |     Chapter chapter = mChapters.get(index -1); | ||||||
|     String refUrl=REUtil.getDomain(mSite.getMuluUrl()); |     String refUrl=mSite.getMuluUrl(); | ||||||
|     if(index>1){ |     if(index>1){ | ||||||
|         refUrl = mChapters.get(index -2).getChapterUrl(); |         refUrl = mChapters.get(index -2).getChapterUrl(); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  | @ -41,10 +41,9 @@ public class Config { | ||||||
|     public final static int PAGE_MODE_SLIDE = 2; |     public final static int PAGE_MODE_SLIDE = 2; | ||||||
|     public final static int PAGE_MODE_NONE = 3; |     public final static int PAGE_MODE_NONE = 3; | ||||||
|     public final static boolean SHOW_AD = false; |     public final static boolean SHOW_AD = false; | ||||||
|     private final static String SHOW_AD_KEY = "showAd"; |     private final static String DECLARE_KEY = "declarekey"; | ||||||
|  |     private final static String SHOW_CHAPT_URL_KEY = "chapturlkey"; | ||||||
|     private static final String PRE_LOAD_CHAPT_KEY ="preloadchapt" ; |     private static final String PRE_LOAD_CHAPT_KEY ="preloadchapt" ; | ||||||
|     private static final String AD_TOP_BANNER_SEEDS_KEY ="topbannerseeds" ; |  | ||||||
|     private static final String AD_NATVIE_BANNER_IN_LINES_SEEDS_KEY ="nativebannerinlinesseeds" ; |  | ||||||
| 
 | 
 | ||||||
|     private final static String  AD_KEY = "adkey"; |     private final static String  AD_KEY = "adkey"; | ||||||
| 
 | 
 | ||||||
|  | @ -286,17 +285,22 @@ public Boolean isShowAd(){ | ||||||
|     public void setAdSplashSource(int source){ |     public void setAdSplashSource(int source){ | ||||||
|         sp.edit().putInt(AD_SPLASH_SOURCE_KEY,source).commit(); |         sp.edit().putInt(AD_SPLASH_SOURCE_KEY,source).commit(); | ||||||
|     } |     } | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
|     public int getAdNativeBannerInLinesRate(){ |  | ||||||
|         return sp.getInt(AD_NATVIE_BANNER_IN_LINES_SEEDS_KEY,0); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     public void setAdNativeBannerInLinesRate(int pageCnt){ |  | ||||||
|         sp.edit().putInt(AD_NATVIE_BANNER_IN_LINES_SEEDS_KEY,pageCnt).commit(); |  | ||||||
|     } |  | ||||||
| */ | */ | ||||||
| 
 | 
 | ||||||
|  |     public String getDeclare(){ | ||||||
|  |         return sp.getString(DECLARE_KEY,"" ); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public void setDeclare(String declare){ | ||||||
|  |         sp.edit().putString(DECLARE_KEY,declare).commit(); | ||||||
|  |     } | ||||||
|  |     public Boolean isShowChatpUrl(){ | ||||||
|  |         return sp.getBoolean(SHOW_CHAPT_URL_KEY,false); | ||||||
|  |     } | ||||||
|  |     public void setShowChaptUrl(boolean isShowChatpUrl){ | ||||||
|  |         sp.edit().putBoolean(SHOW_CHAPT_URL_KEY,isShowChatpUrl).commit(); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -27,6 +27,8 @@ public class Constants { | ||||||
|     public static  int SCREEN_HEIGHT_PIX =1920 ; |     public static  int SCREEN_HEIGHT_PIX =1920 ; | ||||||
|     public static int SCREEN_WIDTH_PIX = 1080; |     public static int SCREEN_WIDTH_PIX = 1080; | ||||||
| 
 | 
 | ||||||
|  |     public static String DECLARE =""; | ||||||
|  |     public static boolean SHOW_NOVEL_CHAPTER_URL =false; | ||||||
| /*    public static boolean SHOWAD =false ; | /*    public static boolean SHOWAD =false ; | ||||||
|     public static   int AD_NATIVE_BANNER_SOURCE = 1 ; //1:tencent,2:toutiao |     public static   int AD_NATIVE_BANNER_SOURCE = 1 ; //1:tencent,2:toutiao | ||||||
|     public static   int AD_BANNER_SOURCE = 2 ; //1:tencent,2:toutiao |     public static   int AD_BANNER_SOURCE = 2 ; //1:tencent,2:toutiao | ||||||
|  |  | ||||||
|  | @ -186,7 +186,10 @@ public class GsonUtil { | ||||||
|         while (it.hasNext()) { |         while (it.hasNext()) { | ||||||
|             JsonElement e = (JsonElement) it.next(); |             JsonElement e = (JsonElement) it.next(); | ||||||
|             //JsonElement转换为JavaBean对象 |             //JsonElement转换为JavaBean对象 | ||||||
|             list.add((Novel) gson.fromJson(e, Novel.class)); |             Novel nv = (Novel) gson.fromJson(e, Novel.class); | ||||||
|  |             if(nv!=null) { | ||||||
|  |                 list.add((Novel) gson.fromJson(e, Novel.class)); | ||||||
|  |             } | ||||||
|         } |         } | ||||||
|         return list; |         return list; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  | @ -952,8 +952,9 @@ private void hideSysUI(){ | ||||||
|                 waitPaint.setTextAlign(Paint.Align.CENTER); |                 waitPaint.setTextAlign(Paint.Align.CENTER); | ||||||
|                 c.drawText("正加载第三方网站 " +site, targetRect.centerX(), baseline, waitPaint); |                 c.drawText("正加载第三方网站 " +site, targetRect.centerX(), baseline, waitPaint); | ||||||
|                 baseline+=40; |                 baseline+=40; | ||||||
|                 c.drawText(url , targetRect.centerX(), baseline, waitPaint); |                 if(Constants.SHOW_NOVEL_CHAPTER_URL) { | ||||||
| 
 |                     c.drawText(url, targetRect.centerX(), baseline, waitPaint); | ||||||
|  |                 } | ||||||
|                 String chaptName=  mBookUtil.getChapter(currentChapter).getChapterName(); |                 String chaptName=  mBookUtil.getChapter(currentChapter).getChapterName(); | ||||||
|                 if(!TextUtils.isEmpty(chaptName)) { |                 if(!TextUtils.isEmpty(chaptName)) { | ||||||
|                     if(chaptName.length()>100) |                     if(chaptName.length()>100) | ||||||
|  | @ -1091,9 +1092,10 @@ private void hideSysUI(){ | ||||||
|             mAdType =AdTpye.BANNER; |             mAdType =AdTpye.BANNER; | ||||||
| 
 | 
 | ||||||
|            if(trPage.getBannerHeight()==0) { |            if(trPage.getBannerHeight()==0) { | ||||||
|                mAd.showNativeBannerInLines(0,0);//hide ad container |                mAd.showTopBanner(0,0);//hide banner container | ||||||
|            } |            } | ||||||
|           //  mAd.showNativeBannerInLines(0,0); | 
 | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
|      //   } |      //   } | ||||||
| 
 | 
 | ||||||
|  | @ -1105,7 +1107,7 @@ private void hideSysUI(){ | ||||||
| 
 | 
 | ||||||
|             } |             } | ||||||
|         }*/ |         }*/ | ||||||
|         if (m_lines.size() > 0) { | 
 | ||||||
| 
 | 
 | ||||||
|             float y = marginHeight +mAdHeight; |             float y = marginHeight +mAdHeight; | ||||||
|             String lastLine =""; |             String lastLine =""; | ||||||
|  | @ -1174,17 +1176,22 @@ private void hideSysUI(){ | ||||||
|                     mAdHeight = (int) adHeight; |                     mAdHeight = (int) adHeight; | ||||||
|                     mAdType = AdTpye.CHAPTEREND; |                     mAdType = AdTpye.CHAPTEREND; | ||||||
| 
 | 
 | ||||||
|  |                 }else{ | ||||||
|  |                     mAd.showNativeBannerInLines(0, 0);//清除内容广告 | ||||||
|                 } |                 } | ||||||
| 
 | 
 | ||||||
|                 if(trPage.getBannerHeight()==0 ||  mAdType !=AdTpye.BANNER){ |  | ||||||
|                     mAd.showTopBanner(0, 0);//清除所有广告 |  | ||||||
|                 } |  | ||||||
| 
 | 
 | ||||||
|               //  showAd((int) adHeight, (int) adY); |               //  showAd((int) adHeight, (int) adY); | ||||||
|                 Log.d(TAG, String.format("loadBannerAd: AD is requested, adtype %s, adHeight %s, ady %s",mAdType,adHeight,adY)); |                 Log.d(TAG, String.format("loadBannerAd: AD is requested, adtype %s, adHeight %s, ady %s",mAdType,adHeight,adY)); | ||||||
|             } |             } | ||||||
|          //   Log.d(TAG,String.format("ad + statusMarginBottom %s ",200+ statusMarginBottom)); |          //   Log.d(TAG,String.format("ad + statusMarginBottom %s ",200+ statusMarginBottom)); | ||||||
|         //    Log.d(TAG,String.format("adHeight %s, adY %s",adHeight,adY)); |         //    Log.d(TAG,String.format("adHeight %s, adY %s",adHeight,adY)); | ||||||
|  | 
 | ||||||
|  |         if(trPage.getBannerHeight()==0 ){ | ||||||
|  |             mAd.showTopBanner(0, 0);//清除 banner广告 | ||||||
|  |         } | ||||||
|  |         if(trPage.getNativeBannerHeight()==0 && mAdType != AdTpye.CHAPTEREND){ | ||||||
|  |             mAd.showNativeBannerInLines(0,0);//hide content banner container | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         //画进度及时间 |         //画进度及时间 | ||||||
|  | @ -1271,10 +1278,11 @@ private void hideSysUI(){ | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     public void showAd(){ |     public void showAd(){ | ||||||
|         if(mStatus == Status.LASTPAGE || mAd==null){ |         Log.d(TAG, String.format("loadBannerAd showAd: mAdType %s ",mAdType )); | ||||||
|  |         if(mStatus == Status.LASTPAGE || mAd==null ||currentPage==null){ | ||||||
|             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())); | ||||||
|         if(mAdType ==AdTpye.BANNER){ |         if(mAdType ==AdTpye.BANNER){ | ||||||
|             mAd.showTopBanner(mAdHeight,mAdY); |             mAd.showTopBanner(mAdHeight,mAdY); | ||||||
|         }else if(mAdType == AdTpye.NATIVEINLINES){ |         }else if(mAdType == AdTpye.NATIVEINLINES){ | ||||||
|  |  | ||||||
|  | @ -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,25 +129,16 @@ | ||||||
|       <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-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" /> | ||||||
|  | @ -114,15 +147,12 @@ | ||||||
|       <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/proguard-files" /> | ||||||
|       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/proguard-rules" /> |       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/proguard-rules" /> | ||||||
|       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/reload-dex" /> |  | ||||||
|       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/res" /> |       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/res" /> | ||||||
|       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/res_stripped" /> |       <excludeFolder url="file://$MODULE_DIR$/build/intermediates/res_stripped" /> | ||||||
|       <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" /> | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue