blob: c3ddfddf254169551f747500e067c5d2b157b1b1 [file] [log] [blame]
Alexandre Lision6d867b92013-10-25 15:36:28 -04001package org.sflphone.utils;
2
3import org.sflphone.service.SipService;
4
5import android.content.Context;
6import android.database.ContentObserver;
7import android.media.AudioManager;
8import android.os.Handler;
9import android.util.Log;
10
11public class SettingsContentObserver extends ContentObserver {
12 int previousVolume;
13 SipService context;
14 private static final String TAG = "Settings";
15
16 public SettingsContentObserver(SipService c, Handler handler) {
17 super(handler);
18 context=c;
19
20
21
22 AudioManager audio = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
23
24 Log.i(TAG,"audio mode: "+audio.getMode());
25
26 previousVolume = audio.getStreamVolume(AudioManager.STREAM_VOICE_CALL);
27 }
28
29 @Override
30 public boolean deliverSelfNotifications() {
31 return super.deliverSelfNotifications();
32 }
33
34 @Override
35 public void onChange(boolean selfChange) {
36 super.onChange(selfChange);
37
38 AudioManager audio = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);
39 int currentVolume = audio.getStreamVolume(AudioManager.STREAM_VOICE_CALL);
40
41 int delta=previousVolume-currentVolume;
42
43 if(delta>0)
44 {
45 Log.d(TAG,"Decreased");
46 previousVolume=currentVolume;
47 context.changeVolume(currentVolume);
48 }
49 else if(delta<0)
50 {
51 Log.d(TAG,"Increased");
52 previousVolume=currentVolume;
53 context.changeVolume(currentVolume);
54 }
55 }
56}