Skip to content

Commit c61a60d

Browse files
committed
Added Sample flavor with LeakCanary
1 parent 4fcc50f commit c61a60d

File tree

5 files changed

+88
-39
lines changed

5 files changed

+88
-39
lines changed

sample/build.gradle

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,15 @@ android {
1616
targetSdkVersion 22
1717
}
1818

19+
productFlavors {
20+
standard {
21+
}
22+
withLeakCanary {
23+
minSdkVersion 8
24+
targetSdkVersion 22
25+
}
26+
}
27+
1928
compileOptions {
2029
sourceCompatibility JavaVersion.VERSION_1_7
2130
targetCompatibility JavaVersion.VERSION_1_7
@@ -39,4 +48,6 @@ android {
3948
dependencies {
4049
compile 'com.fasterxml.jackson.core:jackson-databind:2.5.3'
4150
compile project(':library')
51+
// LeakCanary
52+
withLeakCanaryCompile 'com.squareup.leakcanary:leakcanary-android:1.3.1'
4253
}

sample/src/main/AndroidManifest.xml

Lines changed: 39 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,56 +1,57 @@
11
<?xml version="1.0" encoding="utf-8"?>
22

33
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
4-
package="com.loopj.android.http.sample"
5-
android:versionCode="3"
6-
android:versionName="1.4.7">
4+
package="com.loopj.android.http.sample"
5+
android:versionCode="3"
6+
android:versionName="1.4.7">
77

8-
<uses-permission android:name="android.permission.INTERNET"/>
8+
<uses-permission android:name="android.permission.INTERNET" />
99

1010
<application
11+
android:name=".SampleApplication"
1112
android:icon="@drawable/ic_launcher"
1213
android:label="@string/app_name"
1314
android:theme="@style/AppTheme">
1415

1516
<activity android:name=".WaypointsActivity">
1617
<intent-filter>
17-
<action android:name="android.intent.action.MAIN"/>
18-
<category android:name="android.intent.category.LAUNCHER"/>
18+
<action android:name="android.intent.action.MAIN" />
19+
<category android:name="android.intent.category.LAUNCHER" />
1920
</intent-filter>
2021
</activity>
2122

22-
<activity android:name=".GetSample"/>
23-
<activity android:name=".PostSample"/>
24-
<activity android:name=".DeleteSample"/>
25-
<activity android:name=".PutSample"/>
26-
<activity android:name=".PatchSample"/>
27-
<activity android:name=".JsonSample"/>
28-
<activity android:name=".JsonStreamerSample"/>
29-
<activity android:name=".FileSample"/>
30-
<activity android:name=".BinarySample"/>
31-
<activity android:name=".GzipSample"/>
32-
<activity android:name=".Redirect302Sample"/>
33-
<activity android:name=".ThreadingTimeoutSample"/>
34-
<activity android:name=".CancelAllRequestsSample"/>
35-
<activity android:name=".CancelRequestHandleSample"/>
36-
<activity android:name=".SynchronousClientSample"/>
37-
<activity android:name=".IntentServiceSample"/>
38-
39-
<activity android:name=".SaxSample"/>
40-
<activity android:name=".FilesSample"/>
41-
<activity android:name=".PersistentCookiesSample"/>
42-
<activity android:name=".CustomCASample"/>
43-
<activity android:name=".RetryRequestSample"/>
44-
<activity android:name=".RangeResponseSample"/>
45-
<activity android:name=".Http401AuthSample"/>
46-
<activity android:name=".AsyncBackgroundThreadSample"/>
47-
<activity android:name=".ContentTypeForHttpEntitySample"/>
48-
<activity android:name=".ResumeDownloadSample"/>
49-
<activity android:name=".PrePostProcessingSample"/>
50-
<activity android:name=".DigestAuthSample"/>
51-
<activity android:name=".UsePoolThreadSample"/>
52-
53-
<service android:name=".services.ExampleIntentService"/>
23+
<activity android:name=".GetSample" />
24+
<activity android:name=".PostSample" />
25+
<activity android:name=".DeleteSample" />
26+
<activity android:name=".PutSample" />
27+
<activity android:name=".PatchSample" />
28+
<activity android:name=".JsonSample" />
29+
<activity android:name=".JsonStreamerSample" />
30+
<activity android:name=".FileSample" />
31+
<activity android:name=".BinarySample" />
32+
<activity android:name=".GzipSample" />
33+
<activity android:name=".Redirect302Sample" />
34+
<activity android:name=".ThreadingTimeoutSample" />
35+
<activity android:name=".CancelAllRequestsSample" />
36+
<activity android:name=".CancelRequestHandleSample" />
37+
<activity android:name=".SynchronousClientSample" />
38+
<activity android:name=".IntentServiceSample" />
39+
40+
<activity android:name=".SaxSample" />
41+
<activity android:name=".FilesSample" />
42+
<activity android:name=".PersistentCookiesSample" />
43+
<activity android:name=".CustomCASample" />
44+
<activity android:name=".RetryRequestSample" />
45+
<activity android:name=".RangeResponseSample" />
46+
<activity android:name=".Http401AuthSample" />
47+
<activity android:name=".AsyncBackgroundThreadSample" />
48+
<activity android:name=".ContentTypeForHttpEntitySample" />
49+
<activity android:name=".ResumeDownloadSample" />
50+
<activity android:name=".PrePostProcessingSample" />
51+
<activity android:name=".DigestAuthSample" />
52+
<activity android:name=".UsePoolThreadSample" />
53+
54+
<service android:name=".services.ExampleIntentService" />
5455

5556
</application>
5657

sample/src/main/java/com/loopj/android/http/sample/JsonStreamerSample.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ public boolean isRequestHeadersAllowed() {
8787

8888
protected JSONObject getBodyTextAsJSON() {
8989
String bodyText = getBodyText();
90-
if (bodyText != null) {
90+
if (bodyText != null && !bodyText.isEmpty()) {
9191
try {
9292
return new JSONObject(bodyText);
9393
} catch (JSONException e) {
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package com.loopj.android.http.sample;
2+
3+
import android.annotation.TargetApi;
4+
import android.app.Application;
5+
import android.os.Build;
6+
import android.os.StrictMode;
7+
import android.util.Log;
8+
9+
import com.squareup.leakcanary.LeakCanary;
10+
11+
public class SampleApplication extends Application {
12+
13+
private static final String LOG_TAG = "SampleApplication";
14+
15+
@Override
16+
public void onCreate() {
17+
setStrictMode();
18+
super.onCreate();
19+
LeakCanary.install(this);
20+
}
21+
22+
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
23+
private void setStrictMode() {
24+
if (Integer.valueOf(Build.VERSION.SDK) > 3) {
25+
Log.d(LOG_TAG, "Enabling StrictMode policy over Sample application");
26+
StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
27+
.detectAll()
28+
.penaltyLog()
29+
.penaltyDeath()
30+
.build());
31+
StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
32+
.detectAll()
33+
.penaltyLog()
34+
.build());
35+
}
36+
}
37+
}

0 commit comments

Comments
 (0)