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

Commit 9575cbc2 authored by Lucas Dupin's avatar Lucas Dupin Committed by Automerger Merge Worker
Browse files

Merge "Add media icon to status bar" into rvc-dev am: 2d2b7250 am: 6f5a1779

Change-Id: If2a4feaba16b06a38f222ba0ddffb293882713d4
parents f12b0eba 6f5a1779
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -42,6 +42,7 @@
        <item><xliff:g id="id">@string/status_bar_phone_evdo_signal</xliff:g></item>
        <item><xliff:g id="id">@string/status_bar_phone_signal</xliff:g></item>
        <item><xliff:g id="id">@string/status_bar_secure</xliff:g></item>
        <item><xliff:g id="id">@string/status_bar_media</xliff:g></item>
        <item><xliff:g id="id">@string/status_bar_managed_profile</xliff:g></item>
        <item><xliff:g id="id">@string/status_bar_cast</xliff:g></item>
        <item><xliff:g id="id">@string/status_bar_screen_record</xliff:g></item>
@@ -96,6 +97,7 @@
    <string translatable="false" name="status_bar_airplane">airplane</string>
    <string translatable="false" name="status_bar_sensors_off">sensors_off</string>
    <string translatable="false" name="status_bar_screen_record">screen_record</string>
    <string translatable="false" name="status_bar_media">media</string>

    <!-- Flag indicating whether the surface flinger has limited
         alpha compositing functionality in hardware.  If set, the window
+1 −0
Original line number Diff line number Diff line
@@ -2916,6 +2916,7 @@
  <java-symbol type="string" name="status_bar_camera" />
  <java-symbol type="string" name="status_bar_sensors_off" />
  <java-symbol type="string" name="status_bar_screen_record" />
  <java-symbol type="string" name="status_bar_media" />

  <!-- Locale picker -->
  <java-symbol type="id" name="locale_search_menu" />
+31 −0
Original line number Diff line number Diff line
<!--
  ~ Copyright (C) 2020 The Android Open Source Project
  ~
  ~ 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.
  -->

<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:width="24dp"
    android:height="24dp"
    android:viewportWidth="24"
    android:viewportHeight="24">
  <path
      android:pathData="M5,7.81l0,8.38l6,-4.19z"
      android:fillColor="#000000"/>
  <path
      android:pathData="M13,8h2v8h-2z"
      android:fillColor="#000000"/>
  <path
      android:pathData="M17,8h2v8h-2z"
      android:fillColor="#000000"/>
</vector>
+3 −0
Original line number Diff line number Diff line
@@ -790,6 +790,9 @@
    <!-- Accessibility text describing sensors off active. [CHAR LIMIT=NONE] -->
    <string name="accessibility_sensors_off_active">Sensors off active</string>

    <!-- Accessibility text describing that media is playing. [CHAR LIMIT=NONE] -->
    <string name="accessibility_media_active">Media is active</string>

    <!-- Content description of the clear button in the notification panel for accessibility (not shown on the screen). [CHAR LIMIT=NONE] -->
    <string name="accessibility_clear_all">Clear all notifications.</string>

+35 −8
Original line number Diff line number Diff line
@@ -46,6 +46,8 @@ import com.android.systemui.broadcast.BroadcastDispatcher;
import com.android.systemui.dagger.qualifiers.DisplayId;
import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.dagger.qualifiers.UiBackground;
import com.android.systemui.media.MediaData;
import com.android.systemui.media.MediaDataManager;
import com.android.systemui.qs.tiles.DndTile;
import com.android.systemui.qs.tiles.RotationLockTile;
import com.android.systemui.screenrecord.RecordingController;
@@ -87,7 +89,7 @@ public class PhoneStatusBarPolicy
        DeviceProvisionedListener,
        KeyguardStateController.Callback,
        LocationController.LocationChangeCallback,
                RecordingController.RecordingStateChangeCallback {
        RecordingController.RecordingStateChangeCallback, MediaDataManager.Listener {
    private static final String TAG = "PhoneStatusBarPolicy";
    private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);

@@ -108,6 +110,7 @@ public class PhoneStatusBarPolicy
    private final String mSlotLocation;
    private final String mSlotSensorsOff;
    private final String mSlotScreenRecord;
    private final String mSlotMedia;
    private final int mDisplayId;
    private final SharedPreferences mSharedPreferences;
    private final DateFormatUtil mDateFormatUtil;
@@ -135,6 +138,7 @@ public class PhoneStatusBarPolicy
    private final SensorPrivacyController mSensorPrivacyController;
    private final RecordingController mRecordingController;
    private final RingerModeTracker mRingerModeTracker;
    private final MediaDataManager mMediaDataManager;

    private boolean mZenVisible;
    private boolean mVolumeVisible;
@@ -159,6 +163,7 @@ public class PhoneStatusBarPolicy
            SensorPrivacyController sensorPrivacyController, IActivityManager iActivityManager,
            AlarmManager alarmManager, UserManager userManager,
            RecordingController recordingController,
            MediaDataManager mediaDataManager,
            @Nullable TelecomManager telecomManager, @DisplayId int displayId,
            @Main SharedPreferences sharedPreferences, DateFormatUtil dateFormatUtil,
            RingerModeTracker ringerModeTracker) {
@@ -185,6 +190,7 @@ public class PhoneStatusBarPolicy
        mUiBgExecutor = uiBgExecutor;
        mTelecomManager = telecomManager;
        mRingerModeTracker = ringerModeTracker;
        mMediaDataManager = mediaDataManager;

        mSlotCast = resources.getString(com.android.internal.R.string.status_bar_cast);
        mSlotHotspot = resources.getString(com.android.internal.R.string.status_bar_hotspot);
@@ -202,6 +208,7 @@ public class PhoneStatusBarPolicy
        mSlotSensorsOff = resources.getString(com.android.internal.R.string.status_bar_sensors_off);
        mSlotScreenRecord = resources.getString(
                com.android.internal.R.string.status_bar_screen_record);
        mSlotMedia = resources.getString(com.android.internal.R.string.status_bar_media);

        mDisplayId = displayId;
        mSharedPreferences = sharedPreferences;
@@ -280,6 +287,11 @@ public class PhoneStatusBarPolicy
        mIconController.setIconVisibility(mSlotSensorsOff,
                mSensorPrivacyController.isSensorPrivacyEnabled());

        // play/pause icon when media is active
        mIconController.setIcon(mSlotMedia, R.drawable.stat_sys_media,
                mResources.getString(R.string.accessibility_media_active));
        mIconController.setIconVisibility(mSlotMedia, mMediaDataManager.hasActiveMedia());

        // screen record
        mIconController.setIcon(mSlotScreenRecord, R.drawable.stat_sys_screen_record, null);
        mIconController.setIconVisibility(mSlotScreenRecord, false);
@@ -296,6 +308,7 @@ public class PhoneStatusBarPolicy
        mSensorPrivacyController.addCallback(mSensorPrivacyListener);
        mLocationController.addCallback(this);
        mRecordingController.addCallback(this);
        mMediaDataManager.addListener(this);

        mCommandQueue.addCallback(this);
    }
@@ -700,4 +713,18 @@ public class PhoneStatusBarPolicy
        if (DEBUG) Log.d(TAG, "screenrecord: hiding icon");
        mHandler.post(() -> mIconController.setIconVisibility(mSlotScreenRecord, false));
    }

    @Override
    public void onMediaDataLoaded(String key, MediaData data) {
        updateMediaIcon();
    }

    @Override
    public void onMediaDataRemoved(String key) {
        updateMediaIcon();
    }

    private void updateMediaIcon() {
        mIconController.setIconVisibility(mSlotMedia, mMediaDataManager.hasActiveMedia());
    }
}
Loading