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

Commit 20de5d75 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 am: e1c3cdf6

Change-Id: I76fa0d2087a9f540d2f9fcfe3c4f2b3e2ec7f45f
parents baa53722 e1c3cdf6
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