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

Commit e1c3cdf6 authored by Automerger Merge Worker's avatar Automerger Merge Worker
Browse files

Merge "Output switcher header is not updated with the latest media content"...

Merge "Output switcher header is not updated with the latest media content" into rvc-dev am: 95cd4c94

Change-Id: I7e826cef3b212bcc53cbdc863e6e241fe656429a
parents 0b661e60 95cd4c94
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -148,7 +148,7 @@ public class MediaOutputGroupPanel implements PanelContent, LocalMediaManager.De
    @Override
    public void onDeviceListUpdate(List<MediaDevice> devices) {
        if (mCallback != null) {
            mCallback.onGroupChanged();
            mCallback.onHeaderChanged();
        }
    }

+25 −14
Original line number Diff line number Diff line
@@ -82,20 +82,6 @@ public class MediaOutputPanel implements PanelContent, LocalMediaManager.DeviceC
    private MediaOutputPanel(Context context, String packageName) {
        mContext = context.getApplicationContext();
        mPackageName = TextUtils.isEmpty(packageName) ? "" : packageName;

        if (!TextUtils.isEmpty(mPackageName)) {
            mMediaSessionManager = mContext.getSystemService(MediaSessionManager.class);
            for (MediaController controller : mMediaSessionManager.getActiveSessions(null)) {
                if (TextUtils.equals(controller.getPackageName(), mPackageName)) {
                    mMediaController = controller;
                    break;
                }
            }
        }

        if (mMediaController == null) {
            Log.e(TAG, "Unable to find " + mPackageName + " media controller");
        }
    }

    @Override
@@ -228,6 +214,19 @@ public class MediaOutputPanel implements PanelContent, LocalMediaManager.DeviceC

    @OnLifecycleEvent(ON_START)
    public void onStart() {
        if (!TextUtils.isEmpty(mPackageName)) {
            mMediaSessionManager = mContext.getSystemService(MediaSessionManager.class);
            for (MediaController controller : mMediaSessionManager.getActiveSessions(null)) {
                if (TextUtils.equals(controller.getPackageName(), mPackageName)) {
                    mMediaController = controller;
                    mMediaController.registerCallback(mCb);
                    break;
                }
            }
        }
        if (mMediaController == null) {
            Log.d(TAG, "No media controller for " + mPackageName);
        }
        if (mLocalMediaManager == null) {
            mLocalMediaManager = new LocalMediaManager(mContext, mPackageName, null);
        }
@@ -237,6 +236,9 @@ public class MediaOutputPanel implements PanelContent, LocalMediaManager.DeviceC

    @OnLifecycleEvent(ON_STOP)
    public void onStop() {
        if (mMediaController != null) {
            mMediaController.unregisterCallback(mCb);
        }
        mLocalMediaManager.unregisterCallback(this);
        mLocalMediaManager.stopScan();
    }
@@ -245,4 +247,13 @@ public class MediaOutputPanel implements PanelContent, LocalMediaManager.DeviceC
    public int getViewType() {
        return PanelContent.VIEW_TYPE_SLIDER;
    }

    private final MediaController.Callback mCb = new MediaController.Callback() {
        @Override
        public void onMetadataChanged(MediaMetadata metadata) {
            if (mCallback != null) {
                mCallback.onHeaderChanged();
            }
        }
    };
}
+2 −2
Original line number Diff line number Diff line
@@ -28,8 +28,8 @@ public interface PanelContentCallback {
    void onCustomizedButtonStateChanged();

    /**
     * It will be called when group content is changed. For example, to add/remove a device into
     * It will be called when header content is changed. For example, to add/remove a device into
     * a group
     */
    void onGroupChanged();
    void onHeaderChanged();
}
+3 −1
Original line number Diff line number Diff line
@@ -426,8 +426,10 @@ public class PanelFragment extends Fragment {
        }

        @Override
        public void onGroupChanged() {
        public void onHeaderChanged() {
            ThreadUtils.postOnMainThread(() -> {
                mTitleIcon.setImageIcon(mPanel.getIcon().toIcon(getContext()));
                mHeaderTitle.setText(mPanel.getTitle());
                mHeaderSubtitle.setText(mPanel.getSubTitle());
            });
        }
+10 −5
Original line number Diff line number Diff line
@@ -42,6 +42,7 @@ public class FakePanelContent implements PanelContent {

    public static final Intent INTENT = new Intent();

    private CharSequence mTitle = TITLE;
    private CharSequence mSubTitle;
    private IconCompat mIcon;
    private int mViewType;
@@ -51,22 +52,26 @@ public class FakePanelContent implements PanelContent {
        return mIcon;
    }

    public void setIcon(IconCompat icon) {
        mIcon = icon;
    }

    @Override
    public CharSequence getSubTitle() {
        return mSubTitle;
    }

    public void setIcon(IconCompat icon) {
        mIcon = icon;
    }

    public void setSubTitle(CharSequence subTitle) {
        mSubTitle = subTitle;
    }

    @Override
    public CharSequence getTitle() {
        return TITLE;
        return mTitle;
    }

    public void setTitle(CharSequence title) {
        mTitle = title;
    }

    @Override
Loading