Fix crashes
This commit is contained in:
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user