From dfbfd051f4b16bbc146bf03d4939dc75e36f53b0 Mon Sep 17 00:00:00 2001 From: tobiasKaminsky Date: Tue, 4 Apr 2017 16:30:34 +0200 Subject: [PATCH] added webview support --- src/main/AndroidManifest.xml | 3 + .../ui/activity/ExternalSiteWebView.java | 115 ++++++++++++++++++ src/main/res/layout/externalsite_webview.xml | 50 ++++++++ src/main/res/values/strings.xml | 1 + 4 files changed, 169 insertions(+) create mode 100644 src/main/java/com/owncloud/android/ui/activity/ExternalSiteWebView.java create mode 100644 src/main/res/layout/externalsite_webview.xml diff --git a/src/main/AndroidManifest.xml b/src/main/AndroidManifest.xml index 4ee75a4245..3c356b4153 100644 --- a/src/main/AndroidManifest.xml +++ b/src/main/AndroidManifest.xml @@ -80,6 +80,9 @@ + + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * at your option) any later version. + *

+ * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + *

+ * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +package com.owncloud.android.ui.activity; + +import android.app.Activity; +import android.content.Intent; +import android.os.Bundle; +import android.view.MenuItem; +import android.view.Window; +import android.webkit.WebChromeClient; +import android.webkit.WebView; +import android.webkit.WebViewClient; +import android.widget.Toast; + +import com.owncloud.android.R; +import com.owncloud.android.lib.common.utils.Log_OC; + +/** + * This activity shows an URL as a web view + */ + +public class ExternalSiteWebView extends FileActivity { + private static final String TAG = ExternalSiteWebView.class.getSimpleName(); + + @Override + protected void onCreate(Bundle savedInstanceState) { + Log_OC.v(TAG, "onCreate() start"); + + // TODO get name, url, boolean showSidebar + + // show progress + getWindow().requestFeature(Window.FEATURE_PROGRESS); + + super.onCreate(savedInstanceState); + + setContentView(R.layout.externalsite_webview); + + WebView webview = (WebView) findViewById(R.id.webView); + + // setup toolbar + setupToolbar(); + + // setup drawer + setupDrawer(R.id.nav_external); + getSupportActionBar().setTitle("About us"); + + + // enable zoom + webview.getSettings().setBuiltInZoomControls(true); + + // enable javascript + webview.getSettings().setJavaScriptEnabled(true); + + final Activity activity = this; + webview.setWebChromeClient(new WebChromeClient() { + public void onProgressChanged(WebView view, int progress) { + activity.setProgress(progress * 1000); + } + }); + + webview.setWebViewClient(new WebViewClient() { + public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { + Toast.makeText(activity, getString(R.string.webview_error) + ": " + description, Toast.LENGTH_SHORT).show(); + } + }); + + webview.loadUrl("http://nextcloud.com"); + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + boolean retval; + switch (item.getItemId()) { + case android.R.id.home: { + if (isDrawerOpen()) { + closeDrawer(); + } else { + openDrawer(); + } + } + + default: + retval = super.onOptionsItemSelected(item); + } + return retval; + } + + @Override + public void showFiles(boolean onDeviceOnly) { + super.showFiles(onDeviceOnly); + Intent fileDisplayActivity = new Intent(getApplicationContext(), + FileDisplayActivity.class); + fileDisplayActivity.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); + startActivity(fileDisplayActivity); + } +} diff --git a/src/main/res/layout/externalsite_webview.xml b/src/main/res/layout/externalsite_webview.xml new file mode 100644 index 0000000000..2581202464 --- /dev/null +++ b/src/main/res/layout/externalsite_webview.xml @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml index 2c2d649c10..f6818df3e7 100644 --- a/src/main/res/values/strings.xml +++ b/src/main/res/values/strings.xml @@ -619,6 +619,7 @@ No activity yet This stream will show events like\nadditions, changes & shares + Error occurred