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

Commit 2d2b7250 authored by Lucas Dupin's avatar Lucas Dupin Committed by Android (Google) Code Review
Browse files

Merge "Add media icon to status bar" into rvc-dev

parents 4946555a 5d042234
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