Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1b6b4e0e authored by Danny Baumann's avatar Danny Baumann Committed by Gerrit Code Review
Browse files

Merge "UEventObserver runs its own thread, so make sure to trigger the volume...

Merge "UEventObserver runs its own thread, so make sure to trigger the volume change UI in the main thread." into gingerbread
parents 8bbf0b85 e9621f3c
Loading
Loading
Loading
Loading
+12 −1
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import android.app.ActivityManagerNative;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Handler;
import android.os.UEventObserver;
import android.os.PowerManager;
import android.os.PowerManager.WakeLock;
@@ -56,6 +57,8 @@ class RingerSwitchObserver extends UEventObserver {
    private Context mContext;
    private Context mUiContext;
    private VolumePanel mVolumePanel;
    private Handler mHandler;
    private Runnable mVolumeChangeUiRunnable;

    private final WakeLock mWakeLock;  // held while there is a pending route change

@@ -70,6 +73,14 @@ class RingerSwitchObserver extends UEventObserver {
            }
        });

        mHandler = new Handler();
        mVolumeChangeUiRunnable = new Runnable() {
            @Override
            public void run() {
                getVolumePanel().postVolumeChanged(AudioManager.STREAM_RING,AudioManager.FLAG_SHOW_UI | AudioManager.FLAG_VIBRATE);
            }
        };

        PowerManager pm = (PowerManager)context.getSystemService(Context.POWER_SERVICE);
        mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "RingerSwitchObserver");
        mWakeLock.setReferenceCounted(false);
@@ -153,7 +164,7 @@ class RingerSwitchObserver extends UEventObserver {
                }

                // Raise UI
                getVolumePanel().postVolumeChanged(AudioManager.STREAM_RING,AudioManager.FLAG_SHOW_UI | AudioManager.FLAG_VIBRATE);
                mHandler.post(mVolumeChangeUiRunnable);

            } catch (RemoteException e) {
            }