From 71d88b7b8c5bd54f134727a1593e09a88754f6a2 Mon Sep 17 00:00:00 2001 From: Jacopo Tediosi Date: Mon, 9 Jan 2023 13:37:56 +0100 Subject: [PATCH] "Silence Recording Alerts" switch now compares file contents --- app/build.gradle | 1 + .../SuggestedModsFragment.java | 39 +++++++++++++------ 2 files changed, 28 insertions(+), 12 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index f33273e..1481982 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -69,6 +69,7 @@ dependencies { implementation 'androidx.legacy:legacy-support-v4:1.0.0' implementation 'com.android.volley:volley:1.2.1' implementation 'com.google.protobuf:protobuf-javalite:3.8.0' + implementation 'commons-io:commons-io:2.11.0' implementation "com.github.topjohnwu.libsu:core:${libsuVersion}" implementation "com.github.topjohnwu.libsu:service:${libsuVersion}" implementation "com.github.topjohnwu.libsu:nio:${libsuVersion}" diff --git a/app/src/main/java/com/jacopomii/googledialermod/SuggestedModsFragment.java b/app/src/main/java/com/jacopomii/googledialermod/SuggestedModsFragment.java index e42581d..f464bc1 100644 --- a/app/src/main/java/com/jacopomii/googledialermod/SuggestedModsFragment.java +++ b/app/src/main/java/com/jacopomii/googledialermod/SuggestedModsFragment.java @@ -27,7 +27,10 @@ import com.topjohnwu.superuser.nio.ExtendedFile; import com.topjohnwu.superuser.nio.FileSystemManager; +import org.apache.commons.io.IOUtils; + import java.io.IOException; +import java.io.InputStream; public class SuggestedModsFragment extends Fragment { private View mView; @@ -163,19 +166,31 @@ public void refreshSwitchesStatus() { mForceEnableCallRecordingSwitch.setOnCheckedChangeListener(mForceEnableCallRecordingSwitchOnCheckedChangeListener); // mSilenceCallRecordingAlertsSwitch - long startingVoiceSize = -1; - long endingVoiceSize = -1; - if (fileSystemManager!=null) { - startingVoiceSize = fileSystemManager.getFile(DIALER_CALLRECORDINGPROMPT, CALLRECORDINGPROMPT_STARTING_VOICE_US).length(); - endingVoiceSize = fileSystemManager.getFile(DIALER_CALLRECORDINGPROMPT, CALLRECORDINGPROMPT_ENDING_VOICE_US).length(); + if (fileSystemManager != null) { + try { + InputStream silentVoiceInputStream; + + InputStream startingVoiceInputStream = fileSystemManager.getFile(DIALER_CALLRECORDINGPROMPT, CALLRECORDINGPROMPT_STARTING_VOICE_US).newInputStream(); + silentVoiceInputStream = getResources().openRawResource(R.raw.silent_wav); + boolean isStartingVoiceSilenced = IOUtils.contentEquals(silentVoiceInputStream, startingVoiceInputStream); + startingVoiceInputStream.close(); + silentVoiceInputStream.close(); + + InputStream endingVoiceInputStream = fileSystemManager.getFile(DIALER_CALLRECORDINGPROMPT, CALLRECORDINGPROMPT_ENDING_VOICE_US).newInputStream(); + silentVoiceInputStream = getResources().openRawResource(R.raw.silent_wav); + boolean isEndingVoiceSilenced = IOUtils.contentEquals(silentVoiceInputStream, endingVoiceInputStream); + endingVoiceInputStream.close(); + silentVoiceInputStream.close(); + + mSilenceCallRecordingAlertsSwitch.setOnCheckedChangeListener(null); + mSilenceCallRecordingAlertsSwitch.setChecked( + mDBFlagsSingleton.areAllStringFlagsEmpty(SILENCE_CALL_RECORDING_ALERTS_FLAGS) && isStartingVoiceSilenced && isEndingVoiceSilenced + ); + mSilenceCallRecordingAlertsSwitch.setOnCheckedChangeListener(mSilenceCallRecordingAlertsSwitchOnCheckedChangeListener); + } catch (IOException e) { + e.printStackTrace(); + } } - mSilenceCallRecordingAlertsSwitch.setOnCheckedChangeListener(null); - mSilenceCallRecordingAlertsSwitch.setChecked( - mDBFlagsSingleton.areAllStringFlagsEmpty(SILENCE_CALL_RECORDING_ALERTS_FLAGS) && - startingVoiceSize > 0 && startingVoiceSize <= 100 && - endingVoiceSize > 0 && endingVoiceSize <= 100 - ); - mSilenceCallRecordingAlertsSwitch.setOnCheckedChangeListener(mSilenceCallRecordingAlertsSwitchOnCheckedChangeListener); // mForceEnableCallScreenSwitch mForceEnableCallScreenSwitch.setOnCheckedChangeListener(null);