Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
218 changes: 218 additions & 0 deletions serranovexx-common/patch/fm-radio-i9195i.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,218 @@
From 61ece9f43824151e222cbfca139c5e6f4b3c740d Mon Sep 17 00:00:00 2001
Message-Id: <61ece9f43824151e222cbfca139c5e6f4b3c740d.1514811827.git.gzwalter79@gmail.com>
From: walter79 <gzwalter79@gmail.com>
Date: Mon, 1 Jan 2018 14:03:41 +0100
Subject: [PATCH] fm-radio-i9195i

hardware-qcom-fm

Change-Id: Ic9e07a240e3a343459d1f22872fb2501740381c2
---
fmapp2/src/com/caf/fmradio/FMRadio.java | 17 +++++++
fmapp2/src/com/caf/fmradio/FMRadioService.java | 67 ++++++++++++++++++++++++++
2 files changed, 84 insertions(+)

diff --git a/fmapp2/src/com/caf/fmradio/FMRadio.java b/fmapp2/src/com/caf/fmradio/FMRadio.java
index fe63f55..fddec26 100644
--- a/fmapp2/src/com/caf/fmradio/FMRadio.java
+++ b/fmapp2/src/com/caf/fmradio/FMRadio.java
@@ -2688,6 +2688,23 @@ public class FMRadio extends Activity
}//handleMessage
};

+@Override
+public boolean onKeyDown(int keyCode, KeyEvent event) {
+ AudioManager audio = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
+ switch (keyCode) {
+ case KeyEvent.KEYCODE_VOLUME_UP:
+ audio.adjustStreamVolume(AudioManager.STREAM_MUSIC,
+ AudioManager.ADJUST_RAISE, AudioManager.FLAG_SHOW_UI);
+ return true;
+ case KeyEvent.KEYCODE_VOLUME_DOWN:
+ audio.adjustStreamVolume(AudioManager.STREAM_MUSIC,
+ AudioManager.ADJUST_LOWER, AudioManager.FLAG_SHOW_UI);
+ return true;
+ default:
+ return super.onKeyDown(keyCode, event);
+ }
+}
+
private void resetFMStationInfoUI() {
mTunedStation.setFrequency(FmSharedPreferences.getTunedFrequency());
mTunedStation.setName("");
diff --git a/fmapp2/src/com/caf/fmradio/FMRadioService.java b/fmapp2/src/com/caf/fmradio/FMRadioService.java
index 426071b..4099e02 100644
--- a/fmapp2/src/com/caf/fmradio/FMRadioService.java
+++ b/fmapp2/src/com/caf/fmradio/FMRadioService.java
@@ -99,6 +99,31 @@ import android.bluetooth.BluetoothA2dp;
import android.bluetooth.BluetoothProfile;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
+import android.database.ContentObserver;
+
+class SettingsContentObserver extends ContentObserver {
+ Context context;
+
+ public SettingsContentObserver(Context c, Handler handler) {
+ super(handler);
+ context=c;
+ }
+
+ @Override
+ public boolean deliverSelfNotifications() {
+ return super.deliverSelfNotifications();
+ }
+
+ @Override
+ public void onChange(boolean selfChange) {
+ super.onChange(selfChange);
+ AudioManager mAudioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
+ int currvol = mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
+ float vol = (float) currvol / 100;
+ mAudioManager.setParameters("FMRadioVol=" + vol);
+ Log.d("FMService", "vol: " + String.format("%.10f", vol));
+ }
+}

/**
* Provides "background" FM Radio (that uses the hardware) capabilities,
@@ -228,6 +253,7 @@ public class FMRadioService extends Service
private Notification.Builder mRadioNotification;
private Notification mNotificationInstance;
private NotificationManager mNotificationManager;
+ private SettingsContentObserver mSettingsContentObserver;

public FMRadioService() {
}
@@ -276,6 +302,8 @@ public class FMRadioService extends Service
String valueStr = audioManager.getParameters("isA2dpDeviceSupported");
mA2dpDeviceSupportInHal = valueStr.contains("=true");
Log.d(LOGTAG, " is A2DP device Supported In HAL"+mA2dpDeviceSupportInHal);
+ mSettingsContentObserver = new SettingsContentObserver(this,new Handler());
+ getApplicationContext().getContentResolver().registerContentObserver(android.provider.Settings.System.CONTENT_URI, true, mSettingsContentObserver );

getA2dpStatusAtStart();
}
@@ -346,6 +374,7 @@ public class FMRadioService extends Service

TelephonyManager tmgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
tmgr.listen(mPhoneStateListener, 0);
+ getApplicationContext().getContentResolver().unregisterContentObserver(mSettingsContentObserver);

Log.d(LOGTAG, "onDestroy: unbindFromService completed");

@@ -1076,6 +1105,9 @@ public class FMRadioService extends Service

mStoppedOnFocusLoss = false;

+ int currvol = mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
+ float vol = (float) currvol / 100;
+
if (mStoppedOnFactoryReset) {
mStoppedOnFactoryReset = false;
mSpeakerPhoneOn = false;
@@ -1084,6 +1116,21 @@ public class FMRadioService extends Service
String temp = mA2dpConnected ? "A2DP HS" : "Speaker";
Log.d(LOGTAG, "Route audio to " + temp);
AudioSystem.setForceUse(AudioSystem.FOR_MEDIA, AudioSystem.FORCE_SPEAKER);
+ if (mA2dpConnected) {
+ mAudioManager.setMode(AudioManager.MODE_IN_CALL);
+ mAudioManager.setSpeakerphoneOn(true);
+ mAudioManager.setParameters("fm_mode=on");
+ mAudioManager.setParameters("fm_radio_volume=on");
+ mAudioManager.setParameters("FMRadioVol=" + vol);
+ }
+ } else {
+ mAudioManager.setMode(AudioManager.MODE_IN_CALL);
+ mAudioManager.setSpeakerphoneOn(false);
+ mAudioManager.setParameters("fm_mode=on");
+ mAudioManager.setParameters("fm_radio_volume=on");
+ mAudioManager.setParameters("fm_mute=0");
+ mAudioManager.setParameters("fm_radio_mute=0");
+ mAudioManager.setParameters("FMRadioVol=" + vol);
}

mPlaybackInProgress = true;
@@ -1100,6 +1147,8 @@ public class FMRadioService extends Service
Log.d(LOGTAG, "In stopFM");
configureAudioDataPath(false);
mPlaybackInProgress = false;
+ mAudioManager.setParameters("fm_radio_mute=1");
+ mAudioManager.setParameters("fm_mode=off");
try {
if ((mServiceInUse) && (mCallbacks != null))
mCallbacks.onFmAudioPathStopped();
@@ -1564,6 +1613,9 @@ public class FMRadioService extends Service
public void run() {
Log.v(LOGTAG, "Disabling Speaker");
AudioSystem.setForceUse(AudioSystem.FOR_MEDIA, AudioSystem.FORCE_NONE);
+ mAudioManager.setSpeakerphoneOn(false);
+ mAudioManager.setParameters("fm_mode=on");
+ mAudioManager.setParameters("fm_radio_volume=on");
}
};

@@ -2261,6 +2313,10 @@ public class FMRadioService extends Service
} else {
Log.d(LOGTAG, "A2DP is not connected, force none");
AudioSystem.setForceUse(AudioSystem.FOR_MEDIA, AudioSystem.FORCE_NONE);
+ mAudioManager.setMode(AudioManager.MODE_IN_CALL);
+ mAudioManager.setSpeakerphoneOn(false);
+ mAudioManager.setParameters("fm_mode=on");
+ mAudioManager.setParameters("fm_radio_volume=on");
}
}
}
@@ -2330,6 +2386,9 @@ public class FMRadioService extends Service
if ( mSpeakerPhoneOn) {
mSpeakerPhoneOn = false;
AudioSystem.setForceUse(AudioSystem.FOR_MEDIA, AudioSystem.FORCE_NONE);
+ mAudioManager.setSpeakerphoneOn(false);
+ mAudioManager.setParameters("fm_mode=on");
+ mAudioManager.setParameters("fm_radio_volume=on");
}
}

@@ -2449,6 +2508,8 @@ public class FMRadioService extends Service
return;

mSpeakerPhoneOn = speakerOn;
+ int currvol = mAudioManager.getStreamVolume(AudioManager.STREAM_MUSIC);
+ float vol = (float) currvol / 100;

if (speakerOn == false) {
if (mA2dpConnected == true) {
@@ -2457,10 +2518,14 @@ public class FMRadioService extends Service
} else {
Log.d(LOGTAG, "A2DP is not connected, force none");
AudioSystem.setForceUse(AudioSystem.FOR_MEDIA, AudioSystem.FORCE_NONE);
+ mAudioManager.setSpeakerphoneOn(false);
+ mAudioManager.setParameters("FMRadioVol=" + vol);
}
} else if (speakerOn == true) {
Log.d(LOGTAG, "enabling speaker");
AudioSystem.setForceUse(AudioSystem.FOR_MEDIA, AudioSystem.FORCE_SPEAKER);
+ mAudioManager.setSpeakerphoneOn(true);
+ mAudioManager.setParameters("FMRadioVol=" + vol);
}

Log.d(LOGTAG, "speakerOn completed:" + speakerOn);
@@ -2561,6 +2626,7 @@ public class FMRadioService extends Service
{
mMuted = true;
audioManager.setParameters("fm_mute=1");
+ audioManager.setParameters("fm_radio_mute=1");
if (mAudioTrack != null)
mAudioTrack.setVolume(0.0f);
}
@@ -2583,6 +2649,7 @@ public class FMRadioService extends Service
{
mMuted = false;
audioManager.setParameters("fm_mute=0");
+ audioManager.setParameters("fm_radio_mute=0");
if (mAudioTrack != null)
mAudioTrack.setVolume(1.0f);
if (mResumeAfterCall)
--
1.9.1

Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
From 6bb04a88f143a1ba6400d86670ce828aa95ea5dd Mon Sep 17 00:00:00 2001
Message-Id: <6bb04a88f143a1ba6400d86670ce828aa95ea5dd.1514811134.git.gzwalter79@gmail.com>
From: walter79 <gzwalter79@gmail.com>
Date: Mon, 1 Jan 2018 13:51:49 +0100
Subject: [PATCH] framework-base-displaymanagerservice-i9195i

Change-Id: I61b09e6d24a740b526b22d6b78a1befaad81ee2a
---
.../server/display/DisplayManagerService.java | 31 +++++++++++++++++++++-
1 file changed, 30 insertions(+), 1 deletion(-)

diff --git a/services/core/java/com/android/server/display/DisplayManagerService.java b/services/core/java/com/android/server/display/DisplayManagerService.java
index 9c762cc..2d807d5 100644
--- a/services/core/java/com/android/server/display/DisplayManagerService.java
+++ b/services/core/java/com/android/server/display/DisplayManagerService.java
@@ -62,6 +62,8 @@ import com.android.server.UiThread;

import java.io.FileDescriptor;
import java.io.PrintWriter;
+import java.io.FileOutputStream;
+import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -134,7 +136,8 @@ public final class DisplayManagerService extends SystemService {
private WindowManagerInternal mWindowManagerInternal;
private InputManagerInternal mInputManagerInternal;
private IMediaProjectionManager mProjectionService;
-
+ public static final String TS_PATH = "/sys/class/input/input2/enabled";
+ public static final String KB_PATH = "/sys/class/input/input1/enabled";
// The synchronization root for the display manager.
// This lock guards most of the display manager's state.
// NOTE: This is synchronized on while holding WindowManagerService.mWindowMap so never call
@@ -722,6 +725,30 @@ public final class DisplayManagerService extends SystemService {
}
scheduleTraversalLocked(false);
}
+private boolean write_sysfs(String path, boolean on) {
+ try {
+ FileOutputStream fos = new FileOutputStream(path);
+ byte[] bytes = new byte[2];
+ bytes[0] = (byte)(on ? '1' : '0');
+ bytes[1] = '\n';
+ fos.write(bytes);
+ fos.close();
+ } catch (Exception e) {
+ Slog.i(TAG, "Fail: " + e.getLocalizedMessage());
+ return false;
+ }
+ return true;
+ }
+
+ private void enableDevices(boolean enable) {
+ boolean ret;
+ String ena = enable ? "enable" : "disable";
+ // Turn on touch input
+ ret = write_sysfs(TS_PATH, enable);
+ Slog.i(TAG,ena + " touchscreen, success? " + ret);
+ ret = write_sysfs(KB_PATH, enable);
+ Slog.i(TAG, ena + " keyboard, success? " + ret);
+ }

private void handleDisplayDeviceChanged(DisplayDevice device) {
synchronized (mSyncRoot) {
@@ -735,6 +762,8 @@ public final class DisplayManagerService extends SystemService {
if (diff == DisplayDeviceInfo.DIFF_STATE) {
Slog.i(TAG, "Display device changed state: \"" + info.name
+ "\", " + Display.stateToString(info.state));
+ if (info.state == Display.STATE_ON) enableDevices(true);
+ if (info.state == Display.STATE_OFF) enableDevices(false);
} else if (diff != 0) {
Slog.i(TAG, "Display device changed: " + info);
}
--
1.9.1

70 changes: 70 additions & 0 deletions serranovexx-common/patch/mobil-network-settings-i9195.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
From b8676e406f002a66ef4759e74c2092e1ac8b78ef Mon Sep 17 00:00:00 2001
Message-Id: <b8676e406f002a66ef4759e74c2092e1ac8b78ef.1514812505.git.gzwalter79@gmail.com>
From: walter79 <gzwalter79@gmail.com>
Date: Mon, 1 Jan 2018 14:14:58 +0100
Subject: [PATCH] mobil-network-settings-i9195

packages-services-Telephony

Change-Id: Ie8be9ccfb19397fccb7fae9f9db1c08f6aca21a1
---
src/com/android/phone/MobileNetworkSettings.java | 26 +++++++++++++++++++++++-
1 file changed, 25 insertions(+), 1 deletion(-)

diff --git a/src/com/android/phone/MobileNetworkSettings.java b/src/com/android/phone/MobileNetworkSettings.java
index d5c0992..353fa62 100644
--- a/src/com/android/phone/MobileNetworkSettings.java
+++ b/src/com/android/phone/MobileNetworkSettings.java
@@ -831,6 +831,9 @@ public class MobileNetworkSettings extends PreferenceActivity
if (DBG) log("buttonNetworkMode: " + buttonNetworkMode);
// if new mode is invalid ignore it
switch (buttonNetworkMode) {
+ case Phone.NT_MODE_WCDMA_ONLY:
+ case Phone.NT_MODE_LTE_ONLY:
+ case Phone.NT_MODE_LTE_WCDMA:
case Phone.NT_MODE_WCDMA_PREF:
case Phone.NT_MODE_GSM_ONLY:
case Phone.NT_MODE_LTE_GSM_WCDMA:
@@ -1094,6 +1097,16 @@ public class MobileNetworkSettings extends PreferenceActivity
mButtonEnabledNetworks.setSummary(R.string.network_3G);
break;
case Phone.NT_MODE_WCDMA_ONLY:
+ if (!mIsGlobalCdma) {
+ mButtonEnabledNetworks.setValue(
+ Integer.toString(Phone.NT_MODE_WCDMA_ONLY));
+ mButtonEnabledNetworks.setSummary(R.string.network_3G);
+ } else {
+ mButtonEnabledNetworks.setValue(
+ Integer.toString(Phone.NT_MODE_LTE_CDMA_EVDO_GSM_WCDMA));
+ mButtonEnabledNetworks.setSummary(R.string.network_global);
+ }
+ break;
case Phone.NT_MODE_GSM_UMTS:
case Phone.NT_MODE_WCDMA_PREF:
if (!mIsGlobalCdma) {
@@ -1126,10 +1139,21 @@ public class MobileNetworkSettings extends PreferenceActivity
break;
}
case Phone.NT_MODE_LTE_ONLY:
+ if (!mIsGlobalCdma) {
+ mButtonEnabledNetworks.setValue(
+ Integer.toString(Phone.NT_MODE_LTE_ONLY));
+ mButtonEnabledNetworks.setSummary((mShow4GForLTE == true)
+ ? R.string.network_4G : R.string.network_lte);
+ } else {
+ mButtonEnabledNetworks.setValue(
+ Integer.toString(Phone.NT_MODE_LTE_CDMA_EVDO_GSM_WCDMA));
+ mButtonEnabledNetworks.setSummary(R.string.network_global);
+ }
+ break;
case Phone.NT_MODE_LTE_WCDMA:
if (!mIsGlobalCdma) {
mButtonEnabledNetworks.setValue(
- Integer.toString(Phone.NT_MODE_LTE_GSM_WCDMA));
+ Integer.toString(Phone.NT_MODE_LTE_WCDMA));
mButtonEnabledNetworks.setSummary((mShow4GForLTE == true)
? R.string.network_4G : R.string.network_lte);
} else {
--
1.9.1

Loading