gecko/mobile/android/base/sync/setup/activities/WebViewActivity.java

60 lines
1.9 KiB
Java

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
package org.mozilla.gecko.sync.setup.activities;
import org.mozilla.gecko.R;
import org.mozilla.gecko.sync.Logger;
import android.app.Activity;
import android.net.Uri;
import android.os.Bundle;
import android.view.Window;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.webkit.WebViewClient;
/**
* Displays URI in an embedded WebView. Closes if there no URI is passed in.
* @author liuche
*
*/
public class WebViewActivity extends SyncActivity {
private final static String LOG_TAG = "WebViewActivity";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().requestFeature(Window.FEATURE_PROGRESS);
setContentView(R.layout.sync_setup_webview);
// Extract URI to launch from Intent.
Uri uri = this.getIntent().getData();
if (uri == null) {
Logger.debug(LOG_TAG, "No URI passed to display.");
finish();
}
WebView wv = (WebView) findViewById(R.id.web_engine);
// Add a progress bar.
final Activity activity = this;
wv.setWebChromeClient(new WebChromeClient() {
public void onProgressChanged(WebView view, int progress) {
// Activities and WebViews measure progress with different scales.
// The progress meter will automatically disappear when we reach 100%
activity.setProgress(progress * 100);
}
});
wv.setWebViewClient(new WebViewClient() {
// Handle url loading in this WebView, instead of asking the ActivityManager.
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return false;
}
});
wv.loadUrl(uri.toString());
}
}