summaryrefslogtreecommitdiffstats
path: root/app/src/main/java
diff options
context:
space:
mode:
authorThomas <tschneider.ac@gmail.com>2020-04-25 11:18:42 +0200
committerThomas <tschneider.ac@gmail.com>2020-04-25 11:18:42 +0200
commite848b7e517bc90047caf5d945d63b946cd4a3214 (patch)
treef269b1f8fb8b9c21fe89af5b3afb9f803066652b /app/src/main/java
parent9ebae3581717ee9180f03928d2206bddc7154529 (diff)
Fix issue #427
Diffstat (limited to 'app/src/main/java')
-rw-r--r--app/src/main/java/app/fedilab/android/activities/PeertubeActivity.java4
-rw-r--r--app/src/main/java/app/fedilab/android/activities/PhotoEditorActivity.java8
-rw-r--r--app/src/main/java/app/fedilab/android/activities/WebviewActivity.java4
-rw-r--r--app/src/main/java/app/fedilab/android/activities/WebviewConnectActivity.java3
-rw-r--r--app/src/main/java/app/fedilab/android/drawers/StatusListAdapter.java3
-rw-r--r--app/src/main/java/app/fedilab/android/fragments/MediaSliderFragment.java4
-rw-r--r--app/src/main/java/app/fedilab/android/helper/Helper.java5
-rw-r--r--app/src/main/java/app/fedilab/android/webview/CustomWebview.java55
-rw-r--r--app/src/main/java/app/fedilab/android/webview/MastalabWebChromeClient.java4
-rw-r--r--app/src/main/java/app/fedilab/android/webview/ProxyHelper.java9
10 files changed, 79 insertions, 20 deletions
diff --git a/app/src/main/java/app/fedilab/android/activities/PeertubeActivity.java b/app/src/main/java/app/fedilab/android/activities/PeertubeActivity.java
index ade75a356..c188ecc4e 100644
--- a/app/src/main/java/app/fedilab/android/activities/PeertubeActivity.java
+++ b/app/src/main/java/app/fedilab/android/activities/PeertubeActivity.java
@@ -40,7 +40,6 @@ import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.view.inputmethod.InputMethodManager;
-import android.webkit.WebView;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.FrameLayout;
@@ -106,6 +105,7 @@ import app.fedilab.android.interfaces.OnRetrievePeertubeInterface;
import app.fedilab.android.sqlite.AccountDAO;
import app.fedilab.android.sqlite.PeertubeFavoritesDAO;
import app.fedilab.android.sqlite.Sqlite;
+import app.fedilab.android.webview.CustomWebview;
import app.fedilab.android.webview.MastalabWebChromeClient;
import app.fedilab.android.webview.MastalabWebViewClient;
import es.dmoral.toasty.Toasty;
@@ -183,7 +183,7 @@ public class PeertubeActivity extends BaseActivity implements OnRetrievePeertube
peertube_description = findViewById(R.id.peertube_description);
peertube_title = findViewById(R.id.peertube_title);
peertube_information_container = findViewById(R.id.peertube_information_container);
- WebView webview_video = findViewById(R.id.webview_video);
+ CustomWebview webview_video = findViewById(R.id.webview_video);
playerView = findViewById(R.id.media_video);
write_comment_container = findViewById(R.id.write_comment_container);
ImageView my_pp = findViewById(R.id.my_pp);
diff --git a/app/src/main/java/app/fedilab/android/activities/PhotoEditorActivity.java b/app/src/main/java/app/fedilab/android/activities/PhotoEditorActivity.java
index 1903ae21f..82af35ce3 100644
--- a/app/src/main/java/app/fedilab/android/activities/PhotoEditorActivity.java
+++ b/app/src/main/java/app/fedilab/android/activities/PhotoEditorActivity.java
@@ -56,6 +56,7 @@ import app.fedilab.android.imageeditor.filters.FilterListener;
import app.fedilab.android.imageeditor.filters.FilterViewAdapter;
import app.fedilab.android.imageeditor.tools.EditingToolsAdapter;
import app.fedilab.android.imageeditor.tools.ToolType;
+import es.dmoral.toasty.Toasty;
import ja.burhanrashid52.photoeditor.OnPhotoEditorListener;
import ja.burhanrashid52.photoeditor.PhotoEditor;
import ja.burhanrashid52.photoeditor.PhotoEditorView;
@@ -163,8 +164,11 @@ public class PhotoEditorActivity extends BaseActivity implements OnPhotoEditorLi
mPhotoEditor.setOnPhotoEditorListener(this);
//Set Image Dynamically
- mPhotoEditorView.getSource().setImageURI(uri);
-
+ try {
+ mPhotoEditorView.getSource().setImageURI(uri);
+ }catch (Exception e){
+ Toasty.error(PhotoEditorActivity.this, getString(R.string.error)).show();
+ }
if (uri != null) {
try (InputStream inputStream = getContentResolver().openInputStream(uri)) {
diff --git a/app/src/main/java/app/fedilab/android/activities/WebviewActivity.java b/app/src/main/java/app/fedilab/android/activities/WebviewActivity.java
index 3cceba0e2..181b39523 100644
--- a/app/src/main/java/app/fedilab/android/activities/WebviewActivity.java
+++ b/app/src/main/java/app/fedilab/android/activities/WebviewActivity.java
@@ -34,7 +34,6 @@ import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
-import android.webkit.WebView;
import android.widget.ArrayAdapter;
import android.widget.FrameLayout;
import android.widget.Toast;
@@ -56,6 +55,7 @@ import app.fedilab.android.helper.CountDrawable;
import app.fedilab.android.helper.Helper;
import app.fedilab.android.sqlite.DomainBlockDAO;
import app.fedilab.android.sqlite.Sqlite;
+import app.fedilab.android.webview.CustomWebview;
import app.fedilab.android.webview.MastalabWebChromeClient;
import app.fedilab.android.webview.MastalabWebViewClient;
import es.dmoral.toasty.Toasty;
@@ -72,7 +72,7 @@ public class WebviewActivity extends BaseActivity {
private String url;
private String peertubeLinkToFetch;
private boolean peertubeLink;
- private WebView webView;
+ private CustomWebview webView;
private Menu defaultMenu;
private MastalabWebViewClient mastalabWebViewClient;
diff --git a/app/src/main/java/app/fedilab/android/activities/WebviewConnectActivity.java b/app/src/main/java/app/fedilab/android/activities/WebviewConnectActivity.java
index 3ad019585..c920816e1 100644
--- a/app/src/main/java/app/fedilab/android/activities/WebviewConnectActivity.java
+++ b/app/src/main/java/app/fedilab/android/activities/WebviewConnectActivity.java
@@ -51,6 +51,7 @@ import app.fedilab.android.R;
import app.fedilab.android.asynctasks.UpdateAccountInfoAsyncTask;
import app.fedilab.android.client.HttpsConnection;
import app.fedilab.android.helper.Helper;
+import app.fedilab.android.webview.CustomWebview;
import es.dmoral.toasty.Toasty;
/**
@@ -60,7 +61,7 @@ import es.dmoral.toasty.Toasty;
public class WebviewConnectActivity extends BaseActivity {
- private WebView webView;
+ private CustomWebview webView;
private AlertDialog alert;
private String clientId, clientSecret;
private String instance;
diff --git a/app/src/main/java/app/fedilab/android/drawers/StatusListAdapter.java b/app/src/main/java/app/fedilab/android/drawers/StatusListAdapter.java
index d284b91ef..5b010d902 100644
--- a/app/src/main/java/app/fedilab/android/drawers/StatusListAdapter.java
+++ b/app/src/main/java/app/fedilab/android/drawers/StatusListAdapter.java
@@ -182,6 +182,7 @@ import app.fedilab.android.sqlite.StatusStoredDAO;
import app.fedilab.android.sqlite.TempMuteDAO;
import app.fedilab.android.sqlite.TimelineCacheDAO;
import app.fedilab.android.sqlite.TimelinesDAO;
+import app.fedilab.android.webview.CustomWebview;
import es.dmoral.toasty.Toasty;
import jp.wasabeef.glide.transformations.BlurTransformation;
@@ -4071,7 +4072,7 @@ public class StatusListAdapter extends RecyclerView.Adapter implements OnPostAct
ImageView status_cardview_image;
TextView status_cardview_title, status_cardview_content, status_cardview_url;
FrameLayout status_cardview_video;
- WebView status_cardview_webview;
+ CustomWebview status_cardview_webview;
ImageView hide_preview, hide_preview_h;
TextView status_toot_app;
RelativeLayout webview_preview;
diff --git a/app/src/main/java/app/fedilab/android/fragments/MediaSliderFragment.java b/app/src/main/java/app/fedilab/android/fragments/MediaSliderFragment.java
index cdb7f0461..14d15ca0e 100644
--- a/app/src/main/java/app/fedilab/android/fragments/MediaSliderFragment.java
+++ b/app/src/main/java/app/fedilab/android/fragments/MediaSliderFragment.java
@@ -31,7 +31,6 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
-import android.webkit.WebView;
import android.widget.FrameLayout;
import android.widget.ImageButton;
import android.widget.ImageView;
@@ -74,6 +73,7 @@ import app.fedilab.android.activities.SlideMediaActivity;
import app.fedilab.android.client.Entities.Attachment;
import app.fedilab.android.client.TLSSocketFactory;
import app.fedilab.android.helper.Helper;
+import app.fedilab.android.webview.CustomWebview;
import app.fedilab.android.webview.MastalabWebChromeClient;
import app.fedilab.android.webview.MastalabWebViewClient;
@@ -258,7 +258,7 @@ public class MediaSliderFragment extends Fragment implements MediaPlayer.OnCompl
break;
case "web":
loader.setVisibility(View.GONE);
- WebView webview_video = Helper.initializeWebview((Activity) context, R.id.webview_video, null);
+ CustomWebview webview_video = Helper.initializeWebview((Activity) context, R.id.webview_video, null);
webview_video.setVisibility(View.VISIBLE);
FrameLayout webview_container = rootView.findViewById(R.id.main_media_frame);
final ViewGroup videoLayout = rootView.findViewById(R.id.videoLayout);
diff --git a/app/src/main/java/app/fedilab/android/helper/Helper.java b/app/src/main/java/app/fedilab/android/helper/Helper.java
index ed3db59b2..8d81147ea 100644
--- a/app/src/main/java/app/fedilab/android/helper/Helper.java
+++ b/app/src/main/java/app/fedilab/android/helper/Helper.java
@@ -221,6 +221,7 @@ import app.fedilab.android.sqlite.MainMenuDAO;
import app.fedilab.android.sqlite.Sqlite;
import app.fedilab.android.sqlite.StatusCacheDAO;
import app.fedilab.android.sqlite.TimelineCacheDAO;
+import app.fedilab.android.webview.CustomWebview;
import app.fedilab.android.webview.ProxyHelper;
import es.dmoral.toasty.Toasty;
import info.guardianproject.netcipher.client.StrongBuilder;
@@ -2203,9 +2204,9 @@ public class Helper {
return spannableString;
}
- public static WebView initializeWebview(Activity activity, int webviewId, View rootView) {
+ public static CustomWebview initializeWebview(Activity activity, int webviewId, View rootView) {
- WebView webView;
+ CustomWebview webView;
if (rootView == null) {
webView = activity.findViewById(webviewId);
} else {
diff --git a/app/src/main/java/app/fedilab/android/webview/CustomWebview.java b/app/src/main/java/app/fedilab/android/webview/CustomWebview.java
index 0748a1570..a2d1fd480 100644
--- a/app/src/main/java/app/fedilab/android/webview/CustomWebview.java
+++ b/app/src/main/java/app/fedilab/android/webview/CustomWebview.java
@@ -1,4 +1,57 @@
package app.fedilab.android.webview;
+/* Copyright 2019 Thomas Schneider
+ *
+ * This file is a part of Fedilab
+ *
+ * This program is free software; you can redistribute it and/or modify it under the terms of the
+ * GNU General Public License as published by the Free Software Foundation; either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * Fedilab 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 General
+ * Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along with Fedilab; if not,
+ * see <http://www.gnu.org/licenses>. */
-public class CustomWebview {
+import android.annotation.TargetApi;
+import android.content.Context;
+import android.content.res.Configuration;
+import android.os.Build;
+import android.util.AttributeSet;
+import android.webkit.WebView;
+
+
+/**
+ * Created by Thomas on 14/10/2019.
+ * CustomWebview
+ */
+
+public class CustomWebview extends WebView {
+
+
+ public CustomWebview(Context context) {
+ super(getFixedContext(context));
+ }
+
+ public CustomWebview(Context context, AttributeSet attrs) {
+ super(getFixedContext(context), attrs);
+ }
+
+ public CustomWebview(Context context, AttributeSet attrs, int defStyleAttr) {
+ super(getFixedContext(context), attrs, defStyleAttr);
+ }
+
+ @TargetApi(Build.VERSION_CODES.LOLLIPOP)
+ public CustomWebview(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
+ super(getFixedContext(context), attrs, defStyleAttr, defStyleRes);
+ }
+
+ public CustomWebview(Context context, AttributeSet attrs, int defStyleAttr, boolean privateBrowsing) {
+ super(getFixedContext(context), attrs, defStyleAttr, privateBrowsing);
+ }
+
+ public static Context getFixedContext(Context context) {
+ return context.createConfigurationContext(new Configuration());
+ }
}
diff --git a/app/src/main/java/app/fedilab/android/webview/MastalabWebChromeClient.java b/app/src/main/java/app/fedilab/android/webview/MastalabWebChromeClient.java
index b66395c35..dd30053ff 100644
--- a/app/src/main/java/app/fedilab/android/webview/MastalabWebChromeClient.java
+++ b/app/src/main/java/app/fedilab/android/webview/MastalabWebChromeClient.java
@@ -46,7 +46,7 @@ public class MastalabWebChromeClient extends WebChromeClient implements MediaPla
private ToggledFullscreenCallback toggledFullscreenCallback;
- private WebView webView;
+ private CustomWebview webView;
private View activityNonVideoView;
private ViewGroup activityVideoView;
private ProgressBar pbar;
@@ -54,7 +54,7 @@ public class MastalabWebChromeClient extends WebChromeClient implements MediaPla
private Activity activity;
- public MastalabWebChromeClient(Activity activity, WebView webView, FrameLayout activityNonVideoView, ViewGroup activityVideoView) {
+ public MastalabWebChromeClient(Activity activity, CustomWebview webView, FrameLayout activityNonVideoView, ViewGroup activityVideoView) {
this.activity = activity;
this.isVideoFullscreen = false;
this.webView = webView;
diff --git a/app/src/main/java/app/fedilab/android/webview/ProxyHelper.java b/app/src/main/java/app/fedilab/android/webview/ProxyHelper.java
index 5ebdf9132..cac5ae7dd 100644
--- a/app/src/main/java/app/fedilab/android/webview/ProxyHelper.java
+++ b/app/src/main/java/app/fedilab/android/webview/ProxyHelper.java
@@ -19,7 +19,6 @@ import android.content.Context;
import android.content.Intent;
import android.net.Proxy;
import android.util.ArrayMap;
-import android.webkit.WebView;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
@@ -29,14 +28,14 @@ import java.lang.reflect.Method;
public class ProxyHelper {
- public static void setProxy(Context context, WebView webview, String host, int port, String applicationClassName) {
+ public static void setProxy(Context context, CustomWebview webview, String host, int port, String applicationClassName) {
setProxyKKPlus(context, webview, host, port, applicationClassName);
}
@SuppressWarnings("all")
- private static boolean setProxyICS(WebView webview, String host, int port) {
+ private static boolean setProxyICS(CustomWebview webview, String host, int port) {
try {
Class jwcjb = Class.forName("android.webkit.JWebCoreJavaBridge");
Class params[] = new Class[1];
@@ -73,7 +72,7 @@ public class ProxyHelper {
* Set Proxy for Android 4.1 - 4.3.
*/
@SuppressWarnings("all")
- private static boolean setProxyJB(WebView webview, String host, int port) {
+ private static boolean setProxyJB(CustomWebview webview, String host, int port) {
try {
Class wvcClass = Class.forName("android.webkit.WebViewClassic");
@@ -116,7 +115,7 @@ public class ProxyHelper {
// from https://stackoverflow.com/questions/19979578/android-webview-set-proxy-programatically-kitkat
@SuppressLint("NewApi")
@SuppressWarnings("all")
- private static void setProxyKKPlus(Context appContext, WebView webView, String host, int port, String applicationClassName) {
+ private static void setProxyKKPlus(Context appContext, CustomWebview webView, String host, int port, String applicationClassName) {
System.setProperty("http.proxyHost", host);
System.setProperty("http.proxyPort", port + "");