Skip to content

Commit 908e251

Browse files
committed
Added LogInterface usage into Sample application as an example
1 parent 9164374 commit 908e251

File tree

3 files changed

+55
-9
lines changed

3 files changed

+55
-9
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
- Sample application now can be built with LeakCanary, use i.e. `gradle :sample:installWithLeakCanaryDebug` to use it
1212
- Updated RequestParams documentation on handling arrays, sets and maps, along with new RequestParamsDebug sample
1313
- Added BlackholeHttpResponseHandler implementation, which discards all response contents and silents all various log messages (see #416)
14+
- Added LogInterface, it's default implementation and interface option to disable/enable logging library-wide and set logging verbosity
1415

1516
## 1.4.7 (released 9. 5. 2015)
1617

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

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -33,23 +33,27 @@ public class Redirect302Sample extends GetSample {
3333
private boolean enableRelativeRedirects = true;
3434
private boolean enableCircularRedirects = true;
3535

36+
private static final int MENU_ENABLE_REDIRECTS = 10;
37+
private static final int MENU_ENABLE_CIRCULAR_REDIRECTS = 11;
38+
private static final int MENU_ENABLE_RELATIVE_REDIRECTs = 12;
39+
3640
@Override
3741
public boolean onCreateOptionsMenu(Menu menu) {
38-
menu.add(Menu.NONE, 0, Menu.NONE, "Enable redirects").setCheckable(true);
39-
menu.add(Menu.NONE, 1, Menu.NONE, "Enable relative redirects").setCheckable(true);
40-
menu.add(Menu.NONE, 2, Menu.NONE, "Enable circular redirects").setCheckable(true);
42+
menu.add(Menu.NONE, MENU_ENABLE_REDIRECTS, Menu.NONE, "Enable redirects").setCheckable(true);
43+
menu.add(Menu.NONE, MENU_ENABLE_RELATIVE_REDIRECTs, Menu.NONE, "Enable relative redirects").setCheckable(true);
44+
menu.add(Menu.NONE, MENU_ENABLE_CIRCULAR_REDIRECTS, Menu.NONE, "Enable circular redirects").setCheckable(true);
4145
return super.onCreateOptionsMenu(menu);
4246
}
4347

4448
@Override
4549
public boolean onPrepareOptionsMenu(Menu menu) {
46-
MenuItem menuItemEnableRedirects = menu.findItem(0);
50+
MenuItem menuItemEnableRedirects = menu.findItem(MENU_ENABLE_REDIRECTS);
4751
if (menuItemEnableRedirects != null)
4852
menuItemEnableRedirects.setChecked(enableRedirects);
49-
MenuItem menuItemEnableRelativeRedirects = menu.findItem(1);
53+
MenuItem menuItemEnableRelativeRedirects = menu.findItem(MENU_ENABLE_RELATIVE_REDIRECTs);
5054
if (menuItemEnableRelativeRedirects != null)
5155
menuItemEnableRelativeRedirects.setChecked(enableRelativeRedirects);
52-
MenuItem menuItemEnableCircularRedirects = menu.findItem(2);
56+
MenuItem menuItemEnableCircularRedirects = menu.findItem(MENU_ENABLE_CIRCULAR_REDIRECTS);
5357
if (menuItemEnableCircularRedirects != null)
5458
menuItemEnableCircularRedirects.setChecked(enableCircularRedirects);
5559
return super.onPrepareOptionsMenu(menu);
@@ -59,11 +63,11 @@ public boolean onPrepareOptionsMenu(Menu menu) {
5963
public boolean onOptionsItemSelected(MenuItem item) {
6064
if (item.isCheckable()) {
6165
item.setChecked(!item.isChecked());
62-
if (item.getItemId() == 0) {
66+
if (item.getItemId() == MENU_ENABLE_REDIRECTS) {
6367
enableRedirects = item.isChecked();
64-
} else if (item.getItemId() == 1) {
68+
} else if (item.getItemId() == MENU_ENABLE_RELATIVE_REDIRECTs) {
6569
enableRelativeRedirects = item.isChecked();
66-
} else if (item.getItemId() == 2) {
70+
} else if (item.getItemId() == MENU_ENABLE_CIRCULAR_REDIRECTS) {
6771
enableCircularRedirects = item.isChecked();
6872
}
6973
}

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

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,9 @@
2020

2121
import android.annotation.TargetApi;
2222
import android.app.Activity;
23+
import android.app.AlertDialog;
2324
import android.content.Context;
25+
import android.content.DialogInterface;
2426
import android.graphics.Color;
2527
import android.os.Build;
2628
import android.os.Bundle;
@@ -75,8 +77,11 @@ protected AsyncHttpRequest newAsyncHttpRequest(DefaultHttpClient client, HttpCon
7577

7678
private static final int MENU_USE_HTTPS = 0;
7779
private static final int MENU_CLEAR_VIEW = 1;
80+
private static final int MENU_LOGGING_VERBOSITY = 2;
81+
private static final int MENU_ENABLE_LOGGING = 3;
7882

7983
private boolean useHttps = true;
84+
private boolean enableLogging = true;
8085

8186
protected static final String PROTOCOL_HTTP = "http://";
8287
protected static final String PROTOCOL_HTTPS = "https://";
@@ -128,13 +133,19 @@ public boolean onPrepareOptionsMenu(Menu menu) {
128133
if (useHttpsMenuItem != null) {
129134
useHttpsMenuItem.setChecked(useHttps);
130135
}
136+
MenuItem enableLoggingMenuItem = menu.findItem(MENU_ENABLE_LOGGING);
137+
if (enableLoggingMenuItem != null) {
138+
enableLoggingMenuItem.setChecked(enableLogging);
139+
}
131140
return super.onPrepareOptionsMenu(menu);
132141
}
133142

134143
@Override
135144
public boolean onCreateOptionsMenu(Menu menu) {
136145
menu.add(Menu.NONE, MENU_USE_HTTPS, Menu.NONE, R.string.menu_use_https).setCheckable(true);
137146
menu.add(Menu.NONE, MENU_CLEAR_VIEW, Menu.NONE, R.string.menu_clear_view);
147+
menu.add(Menu.NONE, MENU_ENABLE_LOGGING, Menu.NONE, "Enable Logging").setCheckable(true);
148+
menu.add(Menu.NONE, MENU_LOGGING_VERBOSITY, Menu.NONE, "Set Logging Verbosity");
138149
return super.onCreateOptionsMenu(menu);
139150
}
140151

@@ -146,6 +157,13 @@ public boolean onOptionsItemSelected(MenuItem item) {
146157
PROTOCOL = useHttps ? PROTOCOL_HTTPS : PROTOCOL_HTTP;
147158
urlEditText.setText(getDefaultURL());
148159
return true;
160+
case MENU_ENABLE_LOGGING:
161+
enableLogging = !enableLogging;
162+
getAsyncHttpClient().setLoggingEnabled(enableLogging);
163+
return true;
164+
case MENU_LOGGING_VERBOSITY:
165+
showLoggingVerbosityDialog();
166+
return true;
149167
case MENU_CLEAR_VIEW:
150168
clearOutputs();
151169
return true;
@@ -172,6 +190,29 @@ public void addRequestHandle(RequestHandle handle) {
172190
}
173191
}
174192

193+
private void showLoggingVerbosityDialog() {
194+
AlertDialog ad = new AlertDialog.Builder(this)
195+
.setTitle("Set Logging Verbosity")
196+
.setSingleChoiceItems(new String[]{
197+
"VERBOSE",
198+
"DEBUG",
199+
"INFO",
200+
"WARN",
201+
"ERROR",
202+
"WTF"
203+
}, getAsyncHttpClient().getLoggingLevel() - 2, new DialogInterface.OnClickListener() {
204+
@Override
205+
public void onClick(DialogInterface dialog, int which) {
206+
getAsyncHttpClient().setLoggingLevel(which + 2);
207+
dialog.dismiss();
208+
}
209+
})
210+
.setCancelable(true)
211+
.setNeutralButton("Cancel", null)
212+
.create();
213+
ad.show();
214+
}
215+
175216
public void onRunButtonPressed() {
176217
addRequestHandle(executeSample(getAsyncHttpClient(),
177218
getUrlText(getDefaultURL()),

0 commit comments

Comments
 (0)