LG8n: Nuke InCallService

Signed-off-by: Shirayuki39 <lorddemecrius83@proton.me>
This commit is contained in:
Shirayuki39 2024-07-26 04:51:59 +08:00
parent 8d4d8c1b3a
commit 8d24cb6823
7 changed files with 0 additions and 183 deletions

View file

@ -1,31 +0,0 @@
/*
* Copyright (C) 2022 bengris32
* Copyright (C) 2022 LineageOS
*
* 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.
*/
android_app {
name: "MtkInCallService",
srcs: ["src/**/*.java"],
resource_dirs: ["res"],
certificate: "platform",
platform_apis: true,
privileged: true,
optimize: {
enabled: false,
}
}

View file

@ -1,25 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.lineageos.mediatek.incallservice"
android:versionCode="1"
android:versionName="1.0"
android:sharedUserId="android.uid.system">
<application
android:label="@string/app_name"
android:persistent="true">
<receiver
android:directBootAware="true"
android:exported="true"
android:name="org.lineageos.mediatek.incallservice.OnLockedBootCompleteReceiver">
<intent-filter>
<action android:name="android.intent.action.LOCKED_BOOT_COMPLETED" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
<service
android:directBootAware="true"
android:name="org.lineageos.mediatek.incallservice.VolumeChangeService">
</service>
</application>
</manifest>

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Mediatek In-Call Service</string>
</resources>

View file

@ -1,21 +0,0 @@
package org.lineageos.mediatek.incallservice;
import android.os.SystemProperties;
import android.media.AudioSystem;
import android.util.Log;
public class GainUtils {
public static final String LOG_TAG = "MediatekInCallService";
public static void setGainLevel(int audioDevice, int gainIndex, int streamType) {
int maxStep = SystemProperties.getInt("ro.config.vc_call_vol_steps", 7);
String parameters = String.format("volumeDevice=%d;volumeIndex=%d;volumeStreamType=%d",
audioDevice,
Math.round(
(15.0 / Math.log(maxStep + 1.0))
* Math.log(Math.min(maxStep, gainIndex) + 1.0)),
streamType);
Log.d(LOG_TAG, "Setting audio parameters to: " + parameters);
AudioSystem.setParameters(parameters);
}
}

View file

@ -1,19 +0,0 @@
package org.lineageos.mediatek.incallservice;
import android.content.BroadcastReceiver;
import android.content.Intent;
import android.content.Context;
import android.util.Log;
public class OnLockedBootCompleteReceiver extends BroadcastReceiver {
private static final String LOG_TAG = "MediatekInCallService";
@Override
public void onReceive(final Context context, Intent intent) {
Log.i(LOG_TAG, "onBoot");
Intent sIntent = new Intent(context, VolumeChangeService.class);
context.startService(sIntent);
}
}

View file

@ -1,41 +0,0 @@
package org.lineageos.mediatek.incallservice;
import android.content.Intent;
import android.content.Context;
import android.content.BroadcastReceiver;
import android.media.AudioManager;
import android.media.AudioSystem;
import android.media.AudioDeviceInfo;
import android.util.Log;
public class VolumeChangeReceiver extends BroadcastReceiver {
public static final String LOG_TAG = "MediatekInCallService";
private AudioManager mAudioManager;
public VolumeChangeReceiver(AudioManager audioManager) {
mAudioManager = audioManager;
}
private void handleVolumeStateChange(Intent intent) {
if (intent.getIntExtra(AudioManager.EXTRA_VOLUME_STREAM_TYPE, -1) == AudioManager.STREAM_VOICE_CALL) {
AudioDeviceInfo callDevice = mAudioManager.getCommunicationDevice();
// Try to get volumeIndex
int volumeIndex = intent.getIntExtra(AudioManager.EXTRA_VOLUME_STREAM_VALUE, -1);
if (volumeIndex < 0) {
Log.w(LOG_TAG, "Could not get volumeIndex!");
return;
}
GainUtils.setGainLevel(callDevice.getPort().type(), volumeIndex, AudioSystem.STREAM_VOICE_CALL);
}
}
@Override
public void onReceive(Context context, Intent intent) {
handleVolumeStateChange(intent);
}
}

View file

@ -1,42 +0,0 @@
package org.lineageos.mediatek.incallservice;
import android.media.AudioManager;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.Context;
import android.app.Service;
import android.os.IBinder;
import android.util.Log;
public class VolumeChangeService extends Service {
public static final String LOG_TAG = "MediatekInCallService";
private Context mContext;
private VolumeChangeReceiver mVolumeChangeReceiver;
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onDestroy() {
super.onDestroy();
}
@Override
public int onStartCommand(Intent intent, int flags, int startid) {
mContext = this;
AudioManager audioManager = (AudioManager) mContext.getSystemService(Context.AUDIO_SERVICE);
mVolumeChangeReceiver = new VolumeChangeReceiver(audioManager);
Log.i(LOG_TAG, "Service is starting...");
this.registerReceiver(mVolumeChangeReceiver,
new IntentFilter(AudioManager.VOLUME_CHANGED_ACTION));
return START_STICKY;
}
}