Fix crashes

This commit is contained in:
NekoInverter committed 2021-01-02 20:34:36 +08:00
1 parent a91c257a0b
commit 7856022c4d
4 files changed
+39 -19

No files matched your search

@@ -16,18 +16,16 @@
package com.hippo.ehviewer.preference;
import android.annotation.SuppressLint;
import android.content.Context;
import android.util.AttributeSet;
import androidx.annotation.NonNull;
import com.google.android.material.snackbar.Snackbar;
import com.hippo.ehviewer.EhApplication;
import com.hippo.ehviewer.R;
import com.hippo.ehviewer.Settings;
import com.hippo.ehviewer.download.DownloadManager;
import com.hippo.ehviewer.ui.SettingsActivity;
import com.hippo.ehviewer.ui.scene.BaseScene;
import com.hippo.unifile.UniFile;
import com.hippo.yorozuya.NumberUtils;
@@ -53,13 +51,10 @@ public class CleanRedundancyPreference extends TaskPreference {
private static class ClearTask extends Task {
@SuppressLint("StaticFieldLeak")
private final SettingsActivity mActivity;
private final DownloadManager mManager;
public ClearTask(@NonNull Context context) {
super(context);
mActivity = (SettingsActivity) context;
mManager = EhApplication.getDownloadManager(context.getApplicationContext());
}
@@ -114,9 +109,9 @@ public class CleanRedundancyPreference extends TaskPreference {
count = 0;
}
mActivity.showTip(0 == count ?
mActivity.getString(R.string.settings_download_clean_redundancy_no_redundancy) :
mActivity.getString(R.string.settings_download_clean_redundancy_done, count), BaseScene.LENGTH_SHORT);
showTip(0 == count ?
mApplication.getString(R.string.settings_download_clean_redundancy_no_redundancy) :
mApplication.getString(R.string.settings_download_clean_redundancy_done, count), Snackbar.LENGTH_SHORT);
super.onPostExecute(o);
}
}
@@ -16,9 +16,9 @@
package com.hippo.ehviewer.preference;
import android.annotation.SuppressLint;
import android.content.Context;
import android.util.AttributeSet;
import android.widget.Toast;
import androidx.appcompat.app.AlertDialog;
@@ -26,6 +26,8 @@ import com.hippo.ehviewer.EhApplication;
import com.hippo.ehviewer.R;
import com.hippo.ehviewer.client.EhCookieStore;
import com.hippo.ehviewer.client.EhUrl;
import com.hippo.ehviewer.ui.SettingsActivity;
import com.hippo.ehviewer.ui.scene.BaseScene;
import com.hippo.preference.MessagePreference;
import com.hippo.text.Html;
import com.hippo.util.ClipboardUtil;
@@ -39,19 +41,24 @@ import okhttp3.HttpUrl;
public class IdentityCookiePreference extends MessagePreference {
private String message;
@SuppressLint("StaticFieldLeak")
private final SettingsActivity mActivity;
public IdentityCookiePreference(Context context) {
super(context);
mActivity = (SettingsActivity) context;
init();
}
public IdentityCookiePreference(Context context, AttributeSet attrs) {
super(context, attrs);
mActivity = (SettingsActivity) context;
init();
}
public IdentityCookiePreference(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
mActivity = (SettingsActivity) context;
init();
}
@@ -98,7 +105,7 @@ public class IdentityCookiePreference extends MessagePreference {
if (message != null) {
builder.setPositiveButton(R.string.settings_eh_identity_cookies_copy, (dialog, which) -> {
ClipboardUtil.addTextToClipboard(message);
Toast.makeText(getContext(), R.string.copied_to_clipboard, Toast.LENGTH_SHORT).show();
mActivity.showTip(R.string.copied_to_clipboard, BaseScene.LENGTH_SHORT);
IdentityCookiePreference.this.onClick(dialog, which);
});
@@ -16,7 +16,6 @@
package com.hippo.ehviewer.preference;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Context;
import android.os.Parcel;
@@ -35,7 +34,6 @@ import com.hippo.ehviewer.client.data.GalleryInfo;
import com.hippo.ehviewer.download.DownloadManager;
import com.hippo.ehviewer.spider.SpiderInfo;
import com.hippo.ehviewer.spider.SpiderQueen;
import com.hippo.ehviewer.ui.SettingsActivity;
import com.hippo.ehviewer.ui.scene.BaseScene;
import com.hippo.unifile.UniFile;
import com.hippo.util.ExceptionUtils;
@@ -71,14 +69,11 @@ public class RestoreDownloadPreference extends TaskPreference {
private static class RestoreTask extends Task {
@SuppressLint("StaticFieldLeak")
private final SettingsActivity mActivity;
private final DownloadManager mManager;
private final OkHttpClient mHttpClient;
public RestoreTask(@NonNull Context context) {
super(context);
mActivity = (SettingsActivity) context;
mManager = EhApplication.getDownloadManager(context.getApplicationContext());
mHttpClient = EhApplication.getOkHttpClient(context.getApplicationContext());
}
@@ -142,7 +137,7 @@ public class RestoreDownloadPreference extends TaskPreference {
}
try {
return EhEngine.fillGalleryListByApi(null, mHttpClient, new ArrayList<GalleryInfo>(restoreItemList), EhUrl.getReferer());
return EhEngine.fillGalleryListByApi(null, mHttpClient, new ArrayList<>(restoreItemList), EhUrl.getReferer());
} catch (Throwable e) {
ExceptionUtils.throwIfFatal(e);
e.printStackTrace();
@@ -172,7 +167,7 @@ public class RestoreDownloadPreference extends TaskPreference {
count++;
}
}
mActivity.showTip(
showTip(
mActivity.getString(R.string.settings_download_restore_successfully, count),
BaseScene.LENGTH_SHORT);
@@ -16,21 +16,25 @@
package com.hippo.ehviewer.preference;
import android.annotation.SuppressLint;
import android.app.Dialog;
import android.content.Context;
import android.os.AsyncTask;
import android.os.Parcel;
import android.os.Parcelable;
import android.util.AttributeSet;
import android.widget.Toast;
import androidx.annotation.CallSuper;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.StringRes;
import androidx.appcompat.app.AlertDialog;
import androidx.customview.view.AbsSavedState;
import com.hippo.ehviewer.EhApplication;
import com.hippo.ehviewer.R;
import com.hippo.ehviewer.ui.SettingsActivity;
import com.hippo.preference.DialogPreference;
import com.hippo.util.IoThreadPoolExecutor;
import com.hippo.yorozuya.IntIdGenerator;
@@ -152,11 +156,14 @@ public abstract class TaskPreference extends DialogPreference {
public abstract static class Task extends AsyncTask<Void, Void, Object> {
private final EhApplication mApplication;
protected final EhApplication mApplication;
@SuppressLint("StaticFieldLeak")
protected final SettingsActivity mActivity;
@Nullable
private TaskPreference mPreference;
public Task(@NonNull Context context) {
mActivity = (SettingsActivity) context;
mApplication = (EhApplication) context.getApplicationContext();
}
@@ -181,5 +188,21 @@ public abstract class TaskPreference extends DialogPreference {
mPreference.onTaskEnd();
}
}
protected void showTip(@StringRes int id, int length) {
try {
mActivity.showTip(id, length);
} catch (Exception e) {
Toast.makeText(mApplication, id, length).show();
}
}
protected void showTip(CharSequence message, int length) {
try {
mActivity.showTip(message, length);
} catch (Exception e) {
Toast.makeText(mApplication, message, length).show();
}
}
}
}