/* * Copyright 2010-2014 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.springframework.android.facebookclient; import android.app.Activity; import android.app.ProgressDialog; import android.os.Bundle; import android.view.Window; import android.webkit.WebChromeClient; import android.webkit.WebView; /** * @author Roy Clarkson */ public abstract class AbstractWebViewActivity extends Activity implements AsyncActivity { protected static final String TAG = AbstractWebViewActivity.class.getSimpleName(); private Activity activity; private WebView webView; private ProgressDialog progressDialog = null; private boolean destroyed = false; // *************************************** // Activity methods // *************************************** @Override public MainApplication getApplicationContext() { return (MainApplication) super.getApplicationContext(); } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getWindow().requestFeature(Window.FEATURE_PROGRESS); getWindow().setFeatureInt(Window.FEATURE_PROGRESS, Window.PROGRESS_VISIBILITY_ON); this.webView = new WebView(this); setContentView(webView); this.activity = this; webView.setWebChromeClient(new WebChromeClient() { public void onProgressChanged(WebView view, int progress) { activity.setTitle("Loading..."); activity.setProgress(progress * 100); if (progress == 100) { activity.setTitle(R.string.app_name); } } }); } // *************************************** // Protected methods // *************************************** protected WebView getWebView() { return this.webView; } // *************************************** // Public methods // *************************************** public void showLoadingProgressDialog() { showProgressDialog("Loading. Please wait..."); } public void showProgressDialog(CharSequence message) { if (this.progressDialog == null) { this.progressDialog = new ProgressDialog(this); this.progressDialog.setIndeterminate(true); } this.progressDialog.setMessage(message); this.progressDialog.show(); } public void dismissProgressDialog() { if (this.progressDialog != null && !this.destroyed) { this.progressDialog.dismiss(); } } }