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

Commit c3ed62e3 authored by Jason Chiu's avatar Jason Chiu Committed by Android (Google) Code Review
Browse files

Merge "Fix the ANR in panel when changing volume continuously" into rvc-qpr-dev

parents a78af692 f447cbbc
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -3258,6 +3258,11 @@
            android:permission="android.permission.MANAGE_SLICE_PERMISSIONS"
            android:exported="true" />

        <receiver
            android:name=".slices.VolumeSliceRelayReceiver"
            android:permission="android.permission.MANAGE_SLICE_PERMISSIONS"
            android:exported="true" />

        <!-- Couldn't be triggered from outside of settings. Statsd can trigger it because we send
             PendingIntent to it-->
        <receiver android:name=".fuelgauge.batterytip.AnomalyDetectionReceiver"
+1 −0
Original line number Diff line number Diff line
@@ -64,6 +64,7 @@ public abstract class AdjustVolumeRestrictedPreferenceController extends
        filter.addAction(AudioManager.VOLUME_CHANGED_ACTION);
        filter.addAction(AudioManager.STREAM_MUTE_CHANGED_ACTION);
        filter.addAction(AudioManager.MASTER_MUTE_CHANGED_ACTION);
        filter.addAction(AudioManager.STREAM_DEVICES_CHANGED_ACTION);
        return filter;
    }
}
+4 −1
Original line number Diff line number Diff line
@@ -107,7 +107,10 @@ public abstract class VolumeSeekBarPreferenceController extends
        return mHelper.getMinVolume(getAudioStream());
    }

    protected abstract int getAudioStream();
    /**
     * @return the audio stream type
     */
    public abstract int getAudioStream();

    protected abstract int getMuteIcon();

+10 −0
Original line number Diff line number Diff line
@@ -216,6 +216,16 @@ public class CustomSliceRegistry {
            .appendPath("ring_volume")
            .build();

    /**
     * Full {@link Uri} for the all volume Slices.
     */
    public static final Uri VOLUME_SLICES_URI = new Uri.Builder()
            .scheme(ContentResolver.SCHEME_CONTENT)
            .authority(SettingsSliceProvider.SLICE_AUTHORITY)
            .appendPath(SettingsSlicesContract.PATH_SETTING_ACTION)
            .appendPath("volume_slices")
            .build();

    /**
     * Full {@link Uri} for the Wifi Calling Slice.
     */
+12 −2
Original line number Diff line number Diff line
@@ -47,6 +47,7 @@ import com.android.settings.R;
import com.android.settings.Utils;
import com.android.settings.bluetooth.BluetoothSliceBuilder;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.notification.VolumeSeekBarPreferenceController;
import com.android.settings.notification.zen.ZenModeSliceBuilder;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.SliceBroadcastRelay;
@@ -184,7 +185,10 @@ public class SettingsSliceProvider extends SliceProvider {

    @Override
    public void onSliceUnpinned(Uri sliceUri) {
        SliceBroadcastRelay.unregisterReceivers(getContext(), sliceUri);
        final Context context = getContext();
        if (!VolumeSliceHelper.unregisterUri(context, sliceUri)) {
            SliceBroadcastRelay.unregisterReceivers(context, sliceUri);
        }
        ThreadUtils.postOnMainThread(() -> stopBackgroundWorker(sliceUri));
    }

@@ -390,8 +394,14 @@ public class SettingsSliceProvider extends SliceProvider {

        final IntentFilter filter = controller.getIntentFilter();
        if (filter != null) {
            if (controller instanceof VolumeSeekBarPreferenceController) {
                // Register volume slices to a broadcast relay to reduce unnecessary UI updates
                VolumeSliceHelper.registerIntentToUri(getContext(), filter, uri,
                        ((VolumeSeekBarPreferenceController) controller).getAudioStream());
            } else {
                registerIntentToUri(filter, uri);
            }
        }

        ThreadUtils.postOnMainThread(() -> startBackgroundWorker(controller, uri));

Loading