Prevent crash

pull/212/head
M66B 3 years ago
parent f59aef881e
commit c5aa421d2f

@ -2801,7 +2801,7 @@ public class FragmentCompose extends FragmentBase {
.setGestureInsetBottomIgnored(true).show();
else {
Log.e(ex);
Log.unexpectedError(getParentFragmentManager(), ex);
Log.unexpectedError(FragmentCompose.this, ex);
}
}
}
@ -5877,7 +5877,7 @@ public class FragmentCompose extends FragmentBase {
if (ex instanceof SecurityException)
ex = new Throwable(getString(R.string.title_no_permissions), ex);
Log.unexpectedError(getParentFragmentManager(), ex,
Log.unexpectedError(FragmentCompose.this, ex,
!(ex instanceof IOException || ex.getCause() instanceof IOException));
/*
java.lang.IllegalStateException: java.io.IOException: Failed to redact /storage/emulated/0/Download/97203830-piston-vecteur-icône-simple-symbole-plat-sur-fond-blanc.jpg

@ -304,7 +304,7 @@ public class FragmentDialogForwardRaw extends FragmentDialogBase {
startActivity(send);
} catch (Throwable ex) {
// java.lang.IllegalArgumentException: Failed to resolve canonical path for ...
Log.unexpectedError(getParentFragmentManager(), ex);
Log.unexpectedError(FragmentDialogForwardRaw.this, ex);
}
}

@ -9151,7 +9151,7 @@ public class FragmentMessages extends FragmentBase
}
}.execute(FragmentMessages.this, args, "certificate:store");
} catch (Throwable ex) {
Log.unexpectedError(getParentFragmentManager(), ex);
Log.unexpectedError(FragmentMessages.this, ex);
}
}
});

@ -1475,7 +1475,7 @@ public class FragmentOptionsBackup extends FragmentBase implements SharedPrefere
fragment.setTargetFragment(this, export ? REQUEST_EXPORT_SELECT : REQUEST_IMPORT_SELECT);
fragment.show(getParentFragmentManager(), "password");
} catch (Throwable ex) {
Log.unexpectedError(getParentFragmentManager(), ex);
Log.unexpectedError(FragmentOptionsBackup.this, ex);
}
}
@ -1543,7 +1543,7 @@ public class FragmentOptionsBackup extends FragmentBase implements SharedPrefere
.putExtra(Intent.EXTRA_TEXT, "Activate");
startActivity(intent);
} catch (Throwable ex) {
Log.unexpectedError(getParentFragmentManager(), ex);
Log.unexpectedError(FragmentOptionsBackup.this, ex);
}
}

@ -871,7 +871,7 @@ public class FragmentOptionsNotifications extends FragmentBase implements Shared
try {
getContext().getContentResolver().takePersistableUriPermission(uri, Intent.FLAG_GRANT_READ_URI_PERMISSION);
if (!Helper.isPersisted(getContext(), uri, true, false))
Log.unexpectedError(getParentFragmentManager(),
Log.unexpectedError(FragmentOptionsNotifications.this,
new IllegalStateException("No permission granted to access selected sound " + uri));
} catch (Throwable ex) {
Log.w(ex);

@ -998,10 +998,10 @@ public class FragmentRule extends FragmentBase {
String permission = android.Manifest.permission.READ_CONTACTS;
requestPermissions(new String[]{permission}, REQUEST_PERMISSIONS);
} catch (Throwable ex1) {
Log.unexpectedError(getParentFragmentManager(), ex1);
Log.unexpectedError(FragmentRule.this, ex1);
}
else
Log.unexpectedError(getParentFragmentManager(), ex);
Log.unexpectedError(FragmentRule.this, ex);
}
}

@ -85,6 +85,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.preference.PreferenceManager;
import androidx.webkit.WebViewCompat;
@ -1854,6 +1855,33 @@ public class Log {
return draft;
}
static void unexpectedError(Fragment fragment, Throwable ex) {
unexpectedError(fragment, ex, true);
}
static void unexpectedError(Fragment fragment, Throwable ex, boolean report) {
try {
unexpectedError(fragment.getParentFragmentManager(), ex, report);
} catch (Throwable exex) {
Log.w(exex);
/*
Exception java.lang.IllegalStateException:
at androidx.fragment.app.Fragment.getParentFragmentManager (Fragment.java:1107)
at eu.faircode.email.FragmentDialogForwardRaw.send (FragmentDialogForwardRaw.java:307)
at eu.faircode.email.FragmentDialogForwardRaw.access$200 (FragmentDialogForwardRaw.java:56)
at eu.faircode.email.FragmentDialogForwardRaw$4.onClick (FragmentDialogForwardRaw.java:239)
at androidx.appcompat.app.AlertController$ButtonHandler.handleMessage (AlertController.java:167)
at android.os.Handler.dispatchMessage (Handler.java:106)
at android.os.Looper.loopOnce (Looper.java:210)
at android.os.Looper.loop (Looper.java:299)
at android.app.ActivityThread.main (ActivityThread.java:8168)
at java.lang.reflect.Method.invoke (Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:556)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1037)
*/
}
}
static void unexpectedError(FragmentManager manager, Throwable ex) {
unexpectedError(manager, ex, true);
}

Loading…
Cancel
Save