aboutsummaryrefslogtreecommitdiff
path: root/parts/src/org/lineageos/settings/speaker/ClearSpeakerFragment.java
diff options
context:
space:
mode:
Diffstat (limited to 'parts/src/org/lineageos/settings/speaker/ClearSpeakerFragment.java')
-rw-r--r--parts/src/org/lineageos/settings/speaker/ClearSpeakerFragment.java118
1 files changed, 0 insertions, 118 deletions
diff --git a/parts/src/org/lineageos/settings/speaker/ClearSpeakerFragment.java b/parts/src/org/lineageos/settings/speaker/ClearSpeakerFragment.java
deleted file mode 100644
index 7f12fd9..0000000
--- a/parts/src/org/lineageos/settings/speaker/ClearSpeakerFragment.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- * Copyright (C) 2020 Paranoid Android
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.lineageos.settings.speaker;
-
-import android.content.Context;
-import android.content.res.AssetFileDescriptor;
-import android.media.AudioManager;
-import android.media.AudioAttributes;
-import android.media.MediaPlayer;
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.Looper;
-import android.os.Message;
-import android.util.Log;
-
-import androidx.preference.Preference;
-import androidx.preference.PreferenceFragment;
-import androidx.preference.SwitchPreference;
-
-import org.lineageos.settings.R;
-
-import java.io.IOException;
-
-public class ClearSpeakerFragment extends PreferenceFragment implements
- Preference.OnPreferenceChangeListener {
-
- private static final String TAG = ClearSpeakerFragment.class.getSimpleName();
-
- private static final String PREF_CLEAR_SPEAKER = "clear_speaker_pref";
-
- private AudioManager mAudioManager;
- private Handler mHandler;
- private MediaPlayer mMediaPlayer;
- private SwitchPreference mClearSpeakerPref;
-
- @Override
- public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
- addPreferencesFromResource(R.xml.clear_speaker_settings);
-
- mClearSpeakerPref = (SwitchPreference) findPreference(PREF_CLEAR_SPEAKER);
- mClearSpeakerPref.setOnPreferenceChangeListener(this);
-
- mHandler = new Handler();
- mAudioManager = (AudioManager) getContext().getSystemService(Context.AUDIO_SERVICE);
- }
-
- @Override
- public boolean onPreferenceChange(Preference preference, Object newValue) {
- if (preference == mClearSpeakerPref) {
- boolean value = (Boolean) newValue;
- if (value) {
- if (startPlaying()) {
- mHandler.removeCallbacksAndMessages(null);
- mHandler.postDelayed(() -> {
- stopPlaying();
- }, 30000);
- return true;
- }
- }
- }
- return false;
- }
-
- @Override
- public void onStop() {
- stopPlaying();
- super.onStop();
- }
-
- public boolean startPlaying() {
- mAudioManager.setParameters("status_earpiece_clean=on");
- mMediaPlayer = new MediaPlayer();
- getActivity().setVolumeControlStream(AudioManager.STREAM_MUSIC);
- mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
- mMediaPlayer.setLooping(true);
- try {
- AssetFileDescriptor file = getResources().openRawResourceFd(R.raw.clear_speaker_sound);
- try {
- mMediaPlayer.setDataSource(file.getFileDescriptor(), file.getStartOffset(), file.getLength());
- } finally {
- file.close();
- }
- mClearSpeakerPref.setEnabled(false);
- mMediaPlayer.setVolume(1.0f, 1.0f);
- mMediaPlayer.prepare();
- mMediaPlayer.start();
- } catch (IOException ioe) {
- Log.e(TAG, "Failed to play speaker clean sound!", ioe);
- return false;
- }
- return true;
- }
-
- public void stopPlaying() {
- if (mMediaPlayer != null) {
- mMediaPlayer.stop();
- mMediaPlayer.reset();
- mMediaPlayer.release();
- }
- mAudioManager.setParameters("status_earpiece_clean=off");
- mClearSpeakerPref.setEnabled(true);
- mClearSpeakerPref.setChecked(false);
- }
-}