Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(80)

Unified Diff: net/cronet/android/sample/src/org/chromium/cronet_sample_apk/CronetSampleActivity.java

Issue 183333002: Cronet Java wrappers to fallback to HttpUrlConnection if Cronet is not available. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address formatting comments. Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: net/cronet/android/sample/src/org/chromium/cronet_sample_apk/CronetSampleActivity.java
diff --git a/net/cronet/android/sample/src/org/chromium/cronet_sample_apk/CronetSampleActivity.java b/net/cronet/android/sample/src/org/chromium/cronet_sample_apk/CronetSampleActivity.java
index 3adce6749ef8eaaf56eb7a87a8723c98647add27..bfee19541337cbde7bc1fb36cdfb214d9452630d 100644
--- a/net/cronet/android/sample/src/org/chromium/cronet_sample_apk/CronetSampleActivity.java
+++ b/net/cronet/android/sample/src/org/chromium/cronet_sample_apk/CronetSampleActivity.java
@@ -13,6 +13,9 @@ import android.util.Log;
import android.widget.EditText;
import android.widget.Toast;
+import org.chromium.net.HttpUrlRequest;
+import org.chromium.net.HttpUrlRequestFactory;
+import org.chromium.net.HttpUrlRequestListener;
import org.chromium.net.UrlRequest;
import org.chromium.net.UrlRequestContext;
@@ -29,144 +32,185 @@ import java.util.Map;
* Activity for managing the Cronet Sample.
*/
public class CronetSampleActivity extends Activity {
- private static final String TAG = "CronetSampleActivity";
- public static final String COMMAND_LINE_ARGS_KEY = "commandLineArgs";
- public static final String POST_DATA_KEY = "postData";
-
- UrlRequestContext mRequestContext;
- String mUrl;
- boolean mLoading = false;
- int mHttpStatusCode = 0;
-
- class SampleRequestContext extends UrlRequestContext {
- public SampleRequestContext() {
- super(getApplicationContext(),
- "Cronet Sample",
- UrlRequestContext.LOG_VERBOSE);
+ private static final String TAG = "CronetSampleActivity";
+
+ public static final String COMMAND_LINE_ARGS_KEY = "commandLineArgs";
+
+ public static final String POST_DATA_KEY = "postData";
+
+ UrlRequestContext mRequestContext;
+
+ String mUrl;
+
+ boolean mLoading = false;
+
+ int mHttpStatusCode = 0;
+
+ class SampleRequestContext extends UrlRequestContext {
+ public SampleRequestContext() {
+ super(getApplicationContext(), "Cronet Sample",
+ UrlRequestContext.LOG_VERBOSE);
+ }
+ }
+
+ class SampleRequest extends UrlRequest {
+ public SampleRequest(UrlRequestContext requestContext, String url,
+ int priority, Map<String, String> headers,
+ WritableByteChannel sink) {
+ super(requestContext, url, priority, headers, sink);
+ }
+
+ @Override
+ protected void onRequestComplete() {
+ mHttpStatusCode = super.getHttpStatusCode();
+ Log.i(TAG, "****** Request Complete, status code is "
+ + mHttpStatusCode);
+ Intent intent = new Intent(getApplicationContext(),
+ CronetSampleActivity.class);
+ startActivity(intent);
+ final String url = super.getUrl();
+ final CharSequence text = "Completed " + url + " ("
+ + mHttpStatusCode + ")";
+ CronetSampleActivity.this.runOnUiThread(new Runnable() {
+ public void run() {
+ mLoading = false;
+ Toast toast = Toast.makeText(getApplicationContext(), text,
+ Toast.LENGTH_SHORT);
+ toast.show();
+ promptForURL(url);
+ }
+ });
+ }
}
- }
-
- class SampleRequest extends UrlRequest {
- public SampleRequest(UrlRequestContext requestContext,
- String url,
- int priority,
- Map<String, String> headers,
- WritableByteChannel sink) {
- super(requestContext, url, priority, headers, sink);
+
+ class SampleHttpUrlRequestListener implements HttpUrlRequestListener {
+ public SampleHttpUrlRequestListener() {
+ }
+
+ @Override
+ public void onRequestComplete(HttpUrlRequest request) {
+ Log.i(TAG, "****** Request Complete, status code is "
+ + getHttpStatusCode());
+ Intent intent = new Intent(getApplicationContext(),
+ CronetSampleActivity.class);
+ startActivity(intent);
+ final String url = request.getUrl();
+ final CharSequence text = "Completed " + request.getUrl() + " ("
+ + request.getHttpStatusCode() + ")";
+ mHttpStatusCode = request.getHttpStatusCode();
+ CronetSampleActivity.this.runOnUiThread(new Runnable() {
+ public void run() {
+ mLoading = false;
+ Toast toast = Toast.makeText(getApplicationContext(), text,
+ Toast.LENGTH_SHORT);
+ toast.show();
+ promptForURL(url);
+ }
+ });
+ }
}
@Override
- protected void onRequestComplete() {
- mHttpStatusCode = super.getHttpStatusCode();
- Log.i(TAG, "****** Request Complete, status code is " +
- mHttpStatusCode);
- Intent intent = new Intent(getApplicationContext(),
- CronetSampleActivity.class);
- startActivity(intent);
- final String url = super.getUrl();
- final CharSequence text = "Completed " + url + " (" +
- mHttpStatusCode + ")";
- CronetSampleActivity.this.runOnUiThread(new Runnable() {
- public void run() {
- mLoading = false;
- Toast toast = Toast.makeText(getApplicationContext(),
- text,
- Toast.LENGTH_SHORT);
- toast.show();
- promptForURL(url);
+ protected void onCreate(final Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ try {
+ LibraryLoader.ensureInitialized();
+ } catch (UnsatisfiedLinkError e) {
+ Log.e(TAG, "libcronet_sample initialization failed.", e);
+ finish();
+ return;
+ }
+
+ mRequestContext = new SampleRequestContext();
+
+ String appUrl = getUrlFromIntent(getIntent());
+ if (appUrl == null) {
+ promptForURL("https://");
+ } else {
+ startWithURL(appUrl);
}
- });
- }
- };
-
- @Override
- protected void onCreate(final Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
-
- try {
- LibraryLoader.ensureInitialized();
- } catch (UnsatisfiedLinkError e) {
- Log.e(TAG, "libcronet_sample initialization failed.", e);
- finish();
- return;
}
- mRequestContext = new SampleRequestContext();
+ private void promptForURL(String url) {
+ Log.i(TAG, "No URL provided via intent, prompting user...");
+ AlertDialog.Builder alert = new AlertDialog.Builder(this);
+ alert.setTitle("Enter a URL");
+ alert.setMessage("Enter a URL");
+ final EditText input = new EditText(this);
+ input.setText(url);
+ alert.setView(input);
+ alert.setPositiveButton("Load", new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int button) {
+ String url = input.getText().toString();
+ startWithURL(url);
+ }
+ });
+ alert.show();
+ }
- String appUrl = getUrlFromIntent(getIntent());
- if (appUrl == null) {
- promptForURL("https://");
- } else {
- startWithURL(appUrl);
+ private static String getUrlFromIntent(Intent intent) {
+ return intent != null ? intent.getDataString() : null;
}
- }
-
- private void promptForURL(String url) {
- Log.i(TAG, "No URL provided via intent, prompting user...");
- AlertDialog.Builder alert = new AlertDialog.Builder(this);
- alert.setTitle("Enter a URL");
- alert.setMessage("Enter a URL");
- final EditText input = new EditText(this);
- input.setText(url);
- alert.setView(input);
- alert.setPositiveButton("Load", new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int button) {
- String url = input.getText().toString();
- startWithURL(url);
- }
- });
- alert.show();
- }
-
- private static String getUrlFromIntent(Intent intent) {
- return intent != null ? intent.getDataString() : null;
- }
-
- private void applyCommandLineToRequest(UrlRequest request) {
- Intent intent = getIntent();
- Bundle extras = intent.getExtras();
- Log.i(TAG, "Cronet extras: " + extras);
- if (extras != null) {
- String[] commandLineArgs = extras.getStringArray(COMMAND_LINE_ARGS_KEY);
- if (commandLineArgs != null) {
- for (int i = 0; i < commandLineArgs.length; ++i) {
- Log.i(TAG, "Cronet commandLine[" + i + "]=" + commandLineArgs[i]);
- if (commandLineArgs[i].equals(POST_DATA_KEY)) {
- InputStream dataStream = new ByteArrayInputStream(
- commandLineArgs[++i].getBytes());
- ReadableByteChannel dataChannel = Channels.newChannel(dataStream);
- request.setUploadChannel("text/plain", dataChannel);
- }
+
+ private void applyCommandLineToRequest(UrlRequest request) {
+ Intent intent = getIntent();
+ Bundle extras = intent.getExtras();
+ Log.i(TAG, "Cronet extras: " + extras);
+ if (extras != null) {
+ String[] commandLine = extras.getStringArray(COMMAND_LINE_ARGS_KEY);
+ if (commandLine != null) {
+ for (int i = 0; i < commandLine.length; ++i) {
+ Log.i(TAG,
+ "Cronet commandLine[" + i + "]=" + commandLine[i]);
+ if (commandLine[i].equals(POST_DATA_KEY)) {
+ InputStream dataStream = new ByteArrayInputStream(
+ commandLine[++i].getBytes());
+ ReadableByteChannel dataChannel = Channels.newChannel(
+ dataStream);
+ request.setUploadChannel("text/plain", dataChannel);
+ }
+ }
+ }
}
- }
}
- }
-
- private void startWithURL(String url) {
- Log.i(TAG, "Cronet started: " + url);
- mUrl = url;
- mLoading = true;
-
- HashMap<String, String> headers = new HashMap<String, String>();
- WritableByteChannel sink = Channels.newChannel(System.out);
- UrlRequest request = new SampleRequest(mRequestContext,
- url,
- UrlRequest.REQUEST_PRIORITY_MEDIUM,
- headers,
- sink);
- applyCommandLineToRequest(request);
- request.start();
- }
-
- public String getUrl() {
- return mUrl;
- }
-
- public boolean isLoading() {
- return mLoading;
- }
-
- public int getHttpStatusCode() {
- return mHttpStatusCode;
- }
+
+ private void startWithURL(String url) {
+ Log.i(TAG, "Cronet started: " + url);
+ mUrl = url;
+ mLoading = true;
+
+ HashMap<String, String> headers = new HashMap<String, String>();
+ HttpUrlRequestListener listener = new SampleHttpUrlRequestListener();
+
+ HttpUrlRequest request = HttpUrlRequestFactory.newRequest(
+ getApplicationContext(), url,
+ UrlRequest.REQUEST_PRIORITY_MEDIUM, headers, listener);
+ request.start();
+ }
+
+ private void startWithURL_UrlRequest(String url) {
+ Log.i(TAG, "Cronet started: " + url);
+ mUrl = url;
+ mLoading = true;
+
+ HashMap<String, String> headers = new HashMap<String, String>();
+ WritableByteChannel sink = Channels.newChannel(System.out);
+ UrlRequest request = new SampleRequest(mRequestContext, url,
+ UrlRequest.REQUEST_PRIORITY_MEDIUM, headers, sink);
+ applyCommandLineToRequest(request);
+ request.start();
+ }
+
+ public String getUrl() {
+ return mUrl;
+ }
+
+ public boolean isLoading() {
+ return mLoading;
+ }
+
+ public int getHttpStatusCode() {
+ return mHttpStatusCode;
+ }
}

Powered by Google App Engine
This is Rietveld 408576698