kopia lustrzana https://github.com/ryukoposting/Signal-Android
Prevent internal shake to report dialog from showing after locking.
rodzic
bd18b731c8
commit
aff0c43b39
|
@ -7,6 +7,8 @@ import android.widget.Toast;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.appcompat.app.AlertDialog;
|
import androidx.appcompat.app.AlertDialog;
|
||||||
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
|
import androidx.lifecycle.Lifecycle;
|
||||||
|
|
||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||||
|
|
||||||
|
@ -36,7 +38,7 @@ public final class ShakeToReport implements ShakeDetector.Listener {
|
||||||
private final Application application;
|
private final Application application;
|
||||||
private final ShakeDetector detector;
|
private final ShakeDetector detector;
|
||||||
|
|
||||||
private WeakReference<Activity> weakActivity;
|
private WeakReference<AppCompatActivity> weakActivity;
|
||||||
|
|
||||||
public ShakeToReport(@NonNull Application application) {
|
public ShakeToReport(@NonNull Application application) {
|
||||||
this.application = application;
|
this.application = application;
|
||||||
|
@ -56,7 +58,7 @@ public final class ShakeToReport implements ShakeDetector.Listener {
|
||||||
detector.stop();
|
detector.stop();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void registerActivity(@NonNull Activity activity) {
|
public void registerActivity(@NonNull AppCompatActivity activity) {
|
||||||
if (!SignalStore.internalValues().shakeToReport()) return;
|
if (!SignalStore.internalValues().shakeToReport()) return;
|
||||||
|
|
||||||
this.weakActivity = new WeakReference<>(activity);
|
this.weakActivity = new WeakReference<>(activity);
|
||||||
|
@ -66,12 +68,13 @@ public final class ShakeToReport implements ShakeDetector.Listener {
|
||||||
public void onShakeDetected() {
|
public void onShakeDetected() {
|
||||||
if (!SignalStore.internalValues().shakeToReport()) return;
|
if (!SignalStore.internalValues().shakeToReport()) return;
|
||||||
|
|
||||||
Activity activity = weakActivity.get();
|
AppCompatActivity activity = weakActivity.get();
|
||||||
if (activity == null) {
|
if (activity == null) {
|
||||||
Log.w(TAG, "No registered activity!");
|
Log.w(TAG, "No registered activity!");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (activity.getLifecycle().getCurrentState().isAtLeast(Lifecycle.State.RESUMED)) {
|
||||||
disable();
|
disable();
|
||||||
|
|
||||||
new MaterialAlertDialogBuilder(activity)
|
new MaterialAlertDialogBuilder(activity)
|
||||||
|
@ -87,6 +90,7 @@ public final class ShakeToReport implements ShakeDetector.Listener {
|
||||||
})
|
})
|
||||||
.show();
|
.show();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void submitLog(@NonNull Activity activity) {
|
private void submitLog(@NonNull Activity activity) {
|
||||||
AlertDialog spinner = SimpleProgressDialog.show(activity);
|
AlertDialog spinner = SimpleProgressDialog.show(activity);
|
||||||
|
|
Ładowanie…
Reference in New Issue