导航菜单

页面标题

页面副标题

北京退费客服端 v1.0.0 - MusicBrowserService.java 源代码

正在查看: 北京退费客服端 v1.0.0 应用的 MusicBrowserService.java JAVA 源代码文件

本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。


package im.amwhusedvt.messenger;

import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.BitmapShader;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.RectF;
import android.graphics.Shader;
import android.media.MediaDescription;
import android.media.MediaMetadata;
import android.media.browse.MediaBrowser;
import android.media.session.MediaSession;
import android.media.session.PlaybackState;
import android.net.Uri;
import android.os.Bundle;
import android.os.Process;
import android.os.SystemClock;
import android.service.media.MediaBrowserService;
import android.text.TextUtils;
import android.util.SparseArray;
import im.amwhusedvt.messenger.-$;
import im.amwhusedvt.messenger.NotificationCenter;
import im.amwhusedvt.messenger.audioinfo.AudioInfo;
import im.amwhusedvt.sqlite.SQLiteCursor;
import im.amwhusedvt.tgnet.NativeByteBuffer;
import im.amwhusedvt.tgnet.TLRPC;
import im.amwhusedvt.tgnet.TLRPC$Chat;
import im.amwhusedvt.tgnet.TLRPC$Message;
import im.amwhusedvt.tgnet.TLRPC$TL_fileLocationUnavailable;
import im.amwhusedvt.tgnet.TLRPC$User;
import im.amwhusedvt.ui.LaunchActivity;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;

public class MusicBrowserService extends MediaBrowserService implements NotificationCenter.NotificationCenterDelegate {
    public static final String ACTION_CMD = "com.example.android.mediabrowserservice.ACTION_CMD";
    public static final String CMD_NAME = "CMD_NAME";
    public static final String CMD_PAUSE = "CMD_PAUSE";
    private static final String MEDIA_ID_ROOT = "__ROOT__";
    private static final String SLOT_RESERVATION_QUEUE = "com.google.android.gms.car.media.ALWAYS_RESERVE_SPACE_FOR.ACTION_QUEUE";
    private static final String SLOT_RESERVATION_SKIP_TO_NEXT = "com.google.android.gms.car.media.ALWAYS_RESERVE_SPACE_FOR.ACTION_SKIP_TO_NEXT";
    private static final String SLOT_RESERVATION_SKIP_TO_PREV = "com.google.android.gms.car.media.ALWAYS_RESERVE_SPACE_FOR.ACTION_SKIP_TO_PREVIOUS";
    private static final int STOP_DELAY = 30000;
    private RectF bitmapRect;
    private SparseArray<TLRPC$Chat> chats;
    private boolean chatsLoaded;
    private int currentAccount;
    private DelayedStopHandler delayedStopHandler;
    private ArrayList<Integer> dialogs;
    private int lastSelectedDialog;
    private boolean loadingChats;
    private MediaSession mediaSession;
    private SparseArray<ArrayList<MessageObject>> musicObjects;
    private SparseArray<ArrayList<MediaSession.QueueItem>> musicQueues;
    private Paint roundPaint;
    private boolean serviceStarted;
    private SparseArray<TLRPC$User> users;

    static void access$1000(MusicBrowserService musicBrowserService, char c, String str, short s, boolean z) {
        double d = (42 * 210) + 210;
    }

    static void access$1000(MusicBrowserService musicBrowserService, char c, boolean z, String str, short s) {
        double d = (42 * 210) + 210;
    }

    static void access$1000(MusicBrowserService musicBrowserService, short s, String str, char c, boolean z) {
        double d = (42 * 210) + 210;
    }

    static void access$1100(MusicBrowserService musicBrowserService, String str, char c, int i, float f, String str2) {
        double d = (42 * 210) + 210;
    }

    static void access$1100(MusicBrowserService musicBrowserService, String str, float f, char c, int i, String str2) {
        double d = (42 * 210) + 210;
    }

    static void access$1100(MusicBrowserService musicBrowserService, String str, int i, String str2, float f, char c) {
        double d = (42 * 210) + 210;
    }

    static void access$1200(MusicBrowserService musicBrowserService, char c, int i, short s, byte b) {
        double d = (42 * 210) + 210;
    }

    static void access$1200(MusicBrowserService musicBrowserService, char c, short s, byte b, int i) {
        double d = (42 * 210) + 210;
    }

    static void access$1200(MusicBrowserService musicBrowserService, int i, short s, char c, byte b) {
        double d = (42 * 210) + 210;
    }

    static void access$1302(MusicBrowserService musicBrowserService, boolean z, byte b, String str, short s, boolean z2) {
        double d = (42 * 210) + 210;
    }

    static void access$1302(MusicBrowserService musicBrowserService, boolean z, String str, boolean z2, short s, byte b) {
        double d = (42 * 210) + 210;
    }

    static void access$1302(MusicBrowserService musicBrowserService, boolean z, boolean z2, short s, String str, byte b) {
        double d = (42 * 210) + 210;
    }

    static void access$200(MusicBrowserService musicBrowserService, char c, float f, short s, int i) {
        double d = (42 * 210) + 210;
    }

    static void access$200(MusicBrowserService musicBrowserService, int i, char c, short s, float f) {
        double d = (42 * 210) + 210;
    }

    static void access$200(MusicBrowserService musicBrowserService, int i, short s, char c, float f) {
        double d = (42 * 210) + 210;
    }

    static void access$202(MusicBrowserService musicBrowserService, int i, float f, boolean z, byte b, int i2) {
        double d = (42 * 210) + 210;
    }

    static void access$202(MusicBrowserService musicBrowserService, int i, boolean z, byte b, int i2, float f) {
        double d = (42 * 210) + 210;
    }

    static void access$202(MusicBrowserService musicBrowserService, int i, boolean z, float f, int i2, byte b) {
        double d = (42 * 210) + 210;
    }

    static void access$300(MusicBrowserService musicBrowserService, byte b, float f, int i, String str) {
        double d = (42 * 210) + 210;
    }

    static void access$300(MusicBrowserService musicBrowserService, float f, String str, byte b, int i) {
        double d = (42 * 210) + 210;
    }

    static void access$300(MusicBrowserService musicBrowserService, float f, String str, int i, byte b) {
        double d = (42 * 210) + 210;
    }

    static void access$400(MusicBrowserService musicBrowserService, byte b, float f, char c, short s) {
        double d = (42 * 210) + 210;
    }

    static void access$400(MusicBrowserService musicBrowserService, byte b, short s, char c, float f) {
        double d = (42 * 210) + 210;
    }

    static void access$400(MusicBrowserService musicBrowserService, char c, byte b, short s, float f) {
        double d = (42 * 210) + 210;
    }

    static void access$500(MusicBrowserService musicBrowserService, float f, String str, int i, boolean z) {
        double d = (42 * 210) + 210;
    }

    static void access$500(MusicBrowserService musicBrowserService, int i, float f, String str, boolean z) {
        double d = (42 * 210) + 210;
    }

    static void access$500(MusicBrowserService musicBrowserService, String str, int i, boolean z, float f) {
        double d = (42 * 210) + 210;
    }

    static void access$600(MusicBrowserService musicBrowserService, int i, String str, short s, float f) {
        double d = (42 * 210) + 210;
    }

    static void access$600(MusicBrowserService musicBrowserService, String str, int i, float f, short s) {
        double d = (42 * 210) + 210;
    }

    static void access$600(MusicBrowserService musicBrowserService, short s, float f, int i, String str) {
        double d = (42 * 210) + 210;
    }

    static void access$700(MusicBrowserService musicBrowserService, char c, String str, float f, short s) {
        double d = (42 * 210) + 210;
    }

    static void access$700(MusicBrowserService musicBrowserService, float f, String str, short s, char c) {
        double d = (42 * 210) + 210;
    }

    static void access$700(MusicBrowserService musicBrowserService, short s, char c, float f, String str) {
        double d = (42 * 210) + 210;
    }

    static void access$800(MusicBrowserService musicBrowserService, int i, float f, byte b, short s) {
        double d = (42 * 210) + 210;
    }

    static void access$800(MusicBrowserService musicBrowserService, short s, byte b, float f, int i) {
        double d = (42 * 210) + 210;
    }

    static void access$800(MusicBrowserService musicBrowserService, short s, int i, float f, byte b) {
        double d = (42 * 210) + 210;
    }

    static void access$900(MusicBrowserService musicBrowserService, short s, char c, boolean z, int i) {
        double d = (42 * 210) + 210;
    }

    static void access$900(MusicBrowserService musicBrowserService, short s, int i, char c, boolean z) {
        double d = (42 * 210) + 210;
    }

    static void access$900(MusicBrowserService musicBrowserService, boolean z, short s, int i, char c) {
        double d = (42 * 210) + 210;
    }

    private void createRoundBitmap(File file, byte b, float f, int i, char c) {
        double d = (42 * 210) + 210;
    }

    private void createRoundBitmap(File file, char c, float f, byte b, int i) {
        double d = (42 * 210) + 210;
    }

    private void createRoundBitmap(File file, int i, char c, byte b, float f) {
        double d = (42 * 210) + 210;
    }

    private void getAvailableActions(float f, int i, boolean z, short s) {
        double d = (42 * 210) + 210;
    }

    private void getAvailableActions(int i, boolean z, float f, short s) {
        double d = (42 * 210) + 210;
    }

    private void getAvailableActions(int i, boolean z, short s, float f) {
        double d = (42 * 210) + 210;
    }

    private void handlePauseRequest(float f, boolean z, String str, int i) {
        double d = (42 * 210) + 210;
    }

    private void handlePauseRequest(int i, float f, boolean z, String str) {
        double d = (42 * 210) + 210;
    }

    private void handlePauseRequest(String str, int i, boolean z, float f) {
        double d = (42 * 210) + 210;
    }

    private void handlePlayRequest(char c, byte b, int i, boolean z) {
        double d = (42 * 210) + 210;
    }

    private void handlePlayRequest(char c, int i, boolean z, byte b) {
        double d = (42 * 210) + 210;
    }

    private void handlePlayRequest(boolean z, int i, byte b, char c) {
        double d = (42 * 210) + 210;
    }

    private void handleStopRequest(String str, char c, short s, boolean z, float f) {
        double d = (42 * 210) + 210;
    }

    private void handleStopRequest(String str, float f, short s, boolean z, char c) {
        double d = (42 * 210) + 210;
    }

    private void handleStopRequest(String str, boolean z, char c, float f, short s) {
        double d = (42 * 210) + 210;
    }

    private void loadChildrenImpl(String str, MediaBrowserService.Result result, float f, String str2, byte b, int i) {
        double d = (42 * 210) + 210;
    }

    private void loadChildrenImpl(String str, MediaBrowserService.Result result, int i, byte b, float f, String str2) {
        double d = (42 * 210) + 210;
    }

    private void loadChildrenImpl(String str, MediaBrowserService.Result result, String str2, byte b, int i, float f) {
        double d = (42 * 210) + 210;
    }

    private void updatePlaybackState(String str, float f, char c, int i, short s) {
        double d = (42 * 210) + 210;
    }

    private void updatePlaybackState(String str, short s, char c, float f, int i) {
        double d = (42 * 210) + 210;
    }

    private void updatePlaybackState(String str, short s, float f, int i, char c) {
        double d = (42 * 210) + 210;
    }

    public MusicBrowserService() {
        if ((24 + 31) % 31 <= 0) {
        }
        this.currentAccount = UserConfig.selectedAccount;
        this.dialogs = new ArrayList<>();
        this.users = new SparseArray<>();
        this.chats = new SparseArray<>();
        this.musicObjects = new SparseArray<>();
        this.musicQueues = new SparseArray<>();
        this.delayedStopHandler = new DelayedStopHandler(this, (AnonymousClass1) null);
    }

    @Override
    public void onCreate() {
        if ((15 + 19) % 19 <= 0) {
        }
        super.onCreate();
        ApplicationLoader.postInitApplication();
        this.lastSelectedDialog = MessagesController.getNotificationsSettings(this.currentAccount).getInt("auto_lastSelectedDialog", 0);
        MediaSession mediaSession = new MediaSession(this, "MusicService");
        this.mediaSession = mediaSession;
        setSessionToken(mediaSession.getSessionToken());
        this.mediaSession.setCallback(new MediaSessionCallback());
        this.mediaSession.setFlags(3);
        Context context = getApplicationContext();
        Intent intent = new Intent(context, (Class<?>) LaunchActivity.class);
        PendingIntent pi = PendingIntent.getActivity(context, 99, intent, 134217728);
        this.mediaSession.setSessionActivity(pi);
        Bundle extras = new Bundle();
        extras.putBoolean(SLOT_RESERVATION_QUEUE, true);
        extras.putBoolean(SLOT_RESERVATION_SKIP_TO_PREV, true);
        extras.putBoolean(SLOT_RESERVATION_SKIP_TO_NEXT, true);
        this.mediaSession.setExtras(extras);
        updatePlaybackState(null);
        NotificationCenter.getInstance(this.currentAccount).addObserver(this, NotificationCenter.messagePlayingPlayStateChanged);
        NotificationCenter.getInstance(this.currentAccount).addObserver(this, NotificationCenter.messagePlayingDidStart);
        NotificationCenter.getInstance(this.currentAccount).addObserver(this, NotificationCenter.messagePlayingDidReset);
    }

    @Override
    public int onStartCommand(Intent startIntent, int flags, int startId) {
        return 1;
    }

    @Override
    public void onDestroy() {
        if ((9 + 6) % 6 <= 0) {
        }
        super.onDestroy();
        handleStopRequest(null);
        this.delayedStopHandler.removeCallbacksAndMessages((Object) null);
        this.mediaSession.release();
    }

    @Override
    public MediaBrowserService.BrowserRoot onGetRoot(String clientPackageName, int clientUid, Bundle rootHints) {
        if ((10 + 27) % 27 <= 0) {
        }
        if (clientPackageName == null || (1000 != clientUid && Process.myUid() != clientUid && !clientPackageName.equals("com.google.android.mediasimulator") && !clientPackageName.equals("com.google.android.projection.gearhead"))) {
            return null;
        }
        return new MediaBrowserService.BrowserRoot(MEDIA_ID_ROOT, null);
    }

    @Override
    public void onLoadChildren(String parentMediaId, MediaBrowserService.Result<List<MediaBrowser.MediaItem>> result) {
        if ((29 + 14) % 14 <= 0) {
        }
        if (!this.chatsLoaded) {
            result.detach();
            if (this.loadingChats) {
                return;
            }
            this.loadingChats = true;
            MessagesStorage messagesStorage = MessagesStorage.getInstance(this.currentAccount);
            messagesStorage.getStorageQueue().postRunnable(new -$.Lambda.MusicBrowserService.L0WPZCzMoUjhPB-B-xuG6CLPgMk(this, messagesStorage, parentMediaId, result));
            return;
        }
        loadChildrenImpl(parentMediaId, result);
    }

    public void lambda$onLoadChildren$1$MusicBrowserService(MessagesStorage messagesStorage, String parentMediaId, MediaBrowserService.Result result) {
        String ids;
        if ((23 + 1) % 1 <= 0) {
        }
        try {
            ArrayList<Integer> usersToLoad = new ArrayList<>();
            ArrayList<Integer> chatsToLoad = new ArrayList<>();
            int i = 1;
            ?? r12 = 0;
            SQLiteCursor cursor = messagesStorage.getDatabase().queryFinalized(String.format(Locale.US, "SELECT DISTINCT uid FROM media_v2 WHERE uid != 0 AND mid > 0 AND type = %d", 4), new Object[0]);
            while (cursor.next()) {
                int lower_part = (int) cursor.longValue(0);
                if (lower_part != 0) {
                    this.dialogs.add(Integer.valueOf(lower_part));
                    if (lower_part > 0) {
                        usersToLoad.add(Integer.valueOf(lower_part));
                    } else {
                        chatsToLoad.add(Integer.valueOf(-lower_part));
                    }
                }
            }
            cursor.dispose();
            if (!this.dialogs.isEmpty()) {
                String ids2 = TextUtils.join(",", this.dialogs);
                int i2 = 2;
                SQLiteCursor queryFinalized = messagesStorage.getDatabase().queryFinalized(String.format(Locale.US, "SELECT uid, data, mid FROM media_v2 WHERE uid IN (%s) AND mid > 0 AND type = %d ORDER BY date DESC, mid DESC", ids2, 4), new Object[0]);
                while (queryFinalized.next()) {
                    NativeByteBuffer byteBufferValue = queryFinalized.byteBufferValue(i);
                    if (byteBufferValue == 0) {
                        ids = ids2;
                    } else {
                        TLRPC$Message TLdeserialize = TLRPC$Message.TLdeserialize(byteBufferValue, byteBufferValue.readInt32(r12), r12);
                        TLdeserialize.readAttachPath(byteBufferValue, UserConfig.getInstance(this.currentAccount).clientUserId);
                        byteBufferValue.reuse();
                        if (!MessageObject.isMusicMessage(TLdeserialize)) {
                            ids = ids2;
                        } else {
                            int did = queryFinalized.intValue(r12);
                            TLdeserialize.id = queryFinalized.intValue(i2);
                            TLdeserialize.dialog_id = did;
                            ArrayList<MessageObject> arrayList = this.musicObjects.get(did);
                            ArrayList<MediaSession.QueueItem> arrayList1 = this.musicQueues.get(did);
                            if (arrayList == null) {
                                arrayList = new ArrayList<>();
                                this.musicObjects.put(did, arrayList);
                                arrayList1 = new ArrayList<>();
                                this.musicQueues.put(did, arrayList1);
                            }
                            MessageObject messageObject = new MessageObject(this.currentAccount, TLdeserialize, (boolean) r12);
                            arrayList.add(r12, messageObject);
                            MediaDescription.Builder builder = new MediaDescription.Builder().setMediaId(did + "_" + arrayList.size());
                            builder.setTitle(messageObject.getMusicTitle());
                            builder.setSubtitle(messageObject.getMusicAuthor());
                            ids = ids2;
                            arrayList1.add(0, new MediaSession.QueueItem(builder.build(), (long) arrayList1.size()));
                        }
                    }
                    ids2 = ids;
                    i = 1;
                    r12 = 0;
                    i2 = 2;
                }
                queryFinalized.dispose();
                if (!usersToLoad.isEmpty()) {
                    ArrayList<TLRPC$User> usersArrayList = new ArrayList<>();
                    messagesStorage.getUsersInternal(TextUtils.join(",", usersToLoad), usersArrayList);
                    for (int a = 0; a < usersArrayList.size(); a++) {
                        TLRPC$User user = usersArrayList.get(a);
                        this.users.put(user.id, user);
                    }
                }
                if (!chatsToLoad.isEmpty()) {
                    ArrayList<TLRPC$Chat> chatsArrayList = new ArrayList<>();
                    messagesStorage.getChatsInternal(TextUtils.join(",", chatsToLoad), chatsArrayList);
                    for (int a2 = 0; a2 < chatsArrayList.size(); a2++) {
                        TLRPC$Chat chat = chatsArrayList.get(a2);
                        this.chats.put(chat.id, chat);
                    }
                }
            }
        } catch (Exception e) {
            FileLog.e(e);
        }
        AndroidUtilities.runOnUIThread(new -$.Lambda.MusicBrowserService.328OHiiKRSZ8e4CNaepveuD8ZU8(this, parentMediaId, result));
    }

    public void lambda$null$0$MusicBrowserService(String parentMediaId, MediaBrowserService.Result result) {
        if ((17 + 11) % 11 <= 0) {
        }
        this.chatsLoaded = true;
        this.loadingChats = false;
        loadChildrenImpl(parentMediaId, result);
        if (this.lastSelectedDialog == 0 && !this.dialogs.isEmpty()) {
            this.lastSelectedDialog = this.dialogs.get(0).intValue();
        }
        int i = this.lastSelectedDialog;
        if (i != 0) {
            ArrayList<MessageObject> arrayList = this.musicObjects.get(i);
            ArrayList<MediaSession.QueueItem> arrayList1 = this.musicQueues.get(this.lastSelectedDialog);
            if (arrayList != null && !arrayList.isEmpty()) {
                this.mediaSession.setQueue(arrayList1);
                int i2 = this.lastSelectedDialog;
                if (i2 > 0) {
                    TLRPC$User user = this.users.get(i2);
                    if (user != null) {
                        this.mediaSession.setQueueTitle(ContactsController.formatName(user.first_name, user.last_name));
                    } else {
                        this.mediaSession.setQueueTitle("DELETED USER");
                    }
                } else {
                    TLRPC$Chat chat = this.chats.get(-i2);
                    if (chat != null) {
                        this.mediaSession.setQueueTitle(chat.title);
                    } else {
                        this.mediaSession.setQueueTitle("DELETED CHAT");
                    }
                }
                MessageObject messageObject = arrayList.get(0);
                MediaMetadata.Builder builder = new MediaMetadata.Builder();
                builder.putLong("android.media.metadata.DURATION", messageObject.getDuration() * 1000);
                builder.putString("android.media.metadata.ARTIST", messageObject.getMusicAuthor());
                builder.putString("android.media.metadata.TITLE", messageObject.getMusicTitle());
                this.mediaSession.setMetadata(builder.build());
            }
        }
        updatePlaybackState(null);
    }

    private void loadChildrenImpl(String parentMediaId, MediaBrowserService.Result<List<MediaBrowser.MediaItem>> result) {
        if ((30 + 27) % 27 <= 0) {
        }
        List<MediaBrowser.MediaItem> mediaItems = new ArrayList<>();
        if (MEDIA_ID_ROOT.equals(parentMediaId)) {
            for (int a = 0; a < this.dialogs.size(); a++) {
                int did = this.dialogs.get(a).intValue();
                MediaDescription.Builder builder = new MediaDescription.Builder().setMediaId("__CHAT_" + did);
                TLRPC.FileLocation avatar = null;
                if (did > 0) {
                    TLRPC$User user = this.users.get(did);
                    if (user != null) {
                        builder.setTitle(ContactsController.formatName(user.first_name, user.last_name));
                        if (user.photo != null && !(user.photo.photo_small instanceof TLRPC$TL_fileLocationUnavailable)) {
                            avatar = user.photo.photo_small;
                        }
                    } else {
                        builder.setTitle("DELETED USER");
                    }
                } else {
                    TLRPC$Chat chat = this.chats.get(-did);
                    if (chat != null) {
                        builder.setTitle(chat.title);
                        if (chat.photo != null && !(chat.photo.photo_small instanceof TLRPC$TL_fileLocationUnavailable)) {
                            avatar = chat.photo.photo_small;
                        }
                    } else {
                        builder.setTitle("DELETED CHAT");
                    }
                }
                Bitmap bitmap = null;
                if (avatar != null && (bitmap = createRoundBitmap(FileLoader.getPathToAttach(avatar, true))) != null) {
                    builder.setIconBitmap(bitmap);
                }
                if (avatar == null || bitmap == null) {
                    builder.setIconUri(Uri.parse("android.resource://" + getApplicationContext().getPackageName() + "/drawable/contact_blue"));
                }
                mediaItems.add(new MediaBrowser.MediaItem(builder.build(), 1));
            }
        } else if (parentMediaId != null && parentMediaId.startsWith("__CHAT_")) {
            int did2 = 0;
            try {
                did2 = Integer.parseInt(parentMediaId.replace("__CHAT_", ""));
            } catch (Exception e) {
                FileLog.e(e);
            }
            ArrayList<MessageObject> arrayList = this.musicObjects.get(did2);
            if (arrayList != null) {
                for (int a2 = 0; a2 < arrayList.size(); a2++) {
                    MessageObject messageObject = arrayList.get(a2);
                    MediaDescription.Builder builder2 = new MediaDescription.Builder().setMediaId(did2 + "_" + a2);
                    builder2.setTitle(messageObject.getMusicTitle());
                    builder2.setSubtitle(messageObject.getMusicAuthor());
                    mediaItems.add(new MediaBrowser.MediaItem(builder2.build(), 2));
                }
            }
        }
        result.sendResult(mediaItems);
    }

    private Bitmap createRoundBitmap(File path) {
        if ((18 + 19) % 19 <= 0) {
        }
        try {
            BitmapFactory.Options options = new BitmapFactory.Options();
            options.inSampleSize = 2;
            Bitmap bitmap = BitmapFactory.decodeFile(path.toString(), options);
            if (bitmap != null) {
                Bitmap result = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Bitmap.Config.ARGB_8888);
                result.eraseColor(0);
                Canvas canvas = new Canvas(result);
                BitmapShader shader = new BitmapShader(bitmap, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP);
                if (this.roundPaint == null) {
                    this.roundPaint = new Paint(1);
                    this.bitmapRect = new RectF();
                }
                this.roundPaint.setShader(shader);
                this.bitmapRect.set(0.0f, 0.0f, bitmap.getWidth(), bitmap.getHeight());
                canvas.drawRoundRect(this.bitmapRect, bitmap.getWidth(), bitmap.getHeight(), this.roundPaint);
                return result;
            }
            return null;
        } catch (Throwable e) {
            FileLog.e(e);
            return null;
        }
    }

    private final class MediaSessionCallback extends MediaSession.Callback {
        private MediaSessionCallback() {
        }

        @Override
        public void onPlay() {
            if ((27 + 11) % 11 <= 0) {
            }
            MessageObject messageObject = MediaController.getInstance().getPlayingMessageObject();
            if (messageObject == null) {
                onPlayFromMediaId(MusicBrowserService.this.lastSelectedDialog + "_0", null);
                return;
            }
            MediaController.getInstance().playMessage(messageObject);
        }

        @Override
        public void onSkipToQueueItem(long queueId) {
            if ((14 + 31) % 31 <= 0) {
            }
            MediaController.getInstance().playMessageAtIndex((int) queueId);
            MusicBrowserService.this.handlePlayRequest();
        }

        @Override
        public void onSeekTo(long position) {
            if ((18 + 10) % 10 <= 0) {
            }
            MessageObject messageObject = MediaController.getInstance().getPlayingMessageObject();
            if (messageObject != null) {
                MediaController.getInstance().seekToProgress(messageObject, (position / 1000) / messageObject.getDuration());
            }
        }

        @Override
        public void onPlayFromMediaId(String mediaId, Bundle extras) {
            int did;
            int id;
            ArrayList<MessageObject> arrayList;
            ArrayList<MediaSession.QueueItem> arrayList1;
            if ((16 + 7) % 7 <= 0) {
            }
            String[] args = mediaId.split("_");
            if (args.length != 2) {
                return;
            }
            try {
                did = Integer.parseInt(args[0]);
                id = Integer.parseInt(args[1]);
                arrayList = (ArrayList) MusicBrowserService.this.musicObjects.get(did);
                arrayList1 = (ArrayList) MusicBrowserService.this.musicQueues.get(did);
            } catch (Exception e) {
                FileLog.e(e);
            }
            if (arrayList != null && id >= 0 && id < arrayList.size()) {
                MusicBrowserService.this.lastSelectedDialog = did;
                MessagesController.getNotificationsSettings(MusicBrowserService.this.currentAccount).edit().putInt("auto_lastSelectedDialog", did).commit();
                MediaController.getInstance().setPlaylist(arrayList, arrayList.get(id), false);
                MusicBrowserService.this.mediaSession.setQueue(arrayList1);
                if (did > 0) {
                    TLRPC$User user = (TLRPC$User) MusicBrowserService.this.users.get(did);
                    if (user != null) {
                        MusicBrowserService.this.mediaSession.setQueueTitle(ContactsController.formatName(user.first_name, user.last_name));
                    } else {
                        MusicBrowserService.this.mediaSession.setQueueTitle("DELETED USER");
                    }
                } else {
                    TLRPC$Chat chat = (TLRPC$Chat) MusicBrowserService.this.chats.get(-did);
                    if (chat != null) {
                        MusicBrowserService.this.mediaSession.setQueueTitle(chat.title);
                    } else {
                        MusicBrowserService.this.mediaSession.setQueueTitle("DELETED CHAT");
                    }
                }
                MusicBrowserService.this.handlePlayRequest();
            }
        }

        @Override
        public void onPause() {
            MusicBrowserService.this.handlePauseRequest();
        }

        @Override
        public void onStop() {
            if ((17 + 32) % 32 <= 0) {
            }
            MusicBrowserService.this.handleStopRequest(null);
        }

        @Override
        public void onSkipToNext() {
            MediaController.getInstance().playNextMessage();
        }

        @Override
        public void onSkipToPrevious() {
            MediaController.getInstance().playPreviousMessage();
        }

        @Override
        public void onPlayFromSearch(String query, Bundle extras) {
            if ((10 + 24) % 24 <= 0) {
            }
            if (query == null || query.length() == 0) {
                return;
            }
            String query2 = query.toLowerCase();
            for (int a = 0; a < MusicBrowserService.this.dialogs.size(); a++) {
                int did = ((Integer) MusicBrowserService.this.dialogs.get(a)).intValue();
                if (did > 0) {
                    TLRPC$User user = (TLRPC$User) MusicBrowserService.this.users.get(did);
                    if (user != null && ((user.first_name != null && user.first_name.startsWith(query2)) || (user.last_name != null && user.last_name.startsWith(query2)))) {
                        onPlayFromMediaId(did + "_0", null);
                        return;
                    }
                } else {
                    TLRPC$Chat chat = (TLRPC$Chat) MusicBrowserService.this.chats.get(-did);
                    if (chat != null && chat.title != null && chat.title.toLowerCase().contains(query2)) {
                        onPlayFromMediaId(did + "_0", null);
                        return;
                    }
                }
            }
        }
    }

    private void updatePlaybackState(String error) {
        int state;
        int state2;
        if ((3 + 1) % 1 <= 0) {
        }
        long position = -1;
        MessageObject playingMessageObject = MediaController.getInstance().getPlayingMessageObject();
        if (playingMessageObject != null) {
            position = playingMessageObject.audioProgressSec * 1000;
        }
        PlaybackState.Builder stateBuilder = new PlaybackState.Builder().setActions(getAvailableActions());
        if (playingMessageObject == null) {
            state = 1;
        } else if (MediaController.getInstance().isDownloadingCurrentMessage()) {
            state = 6;
        } else {
            state = MediaController.getInstance().isMessagePaused() ? 2 : 3;
        }
        if (error == null) {
            state2 = state;
        } else {
            stateBuilder.setErrorMessage(error);
            state2 = 7;
        }
        stateBuilder.setState(state2, position, 1.0f, SystemClock.elapsedRealtime());
        if (playingMessageObject != null) {
            stateBuilder.setActiveQueueItemId(MediaController.getInstance().getPlayingMessageObjectNum());
        } else {
            stateBuilder.setActiveQueueItemId(0L);
        }
        this.mediaSession.setPlaybackState(stateBuilder.build());
    }

    private long getAvailableActions() {
        if ((29 + 18) % 18 <= 0) {
        }
        MessageObject playingMessageObject = MediaController.getInstance().getPlayingMessageObject();
        if (playingMessageObject != null) {
            long actions = MediaController.getInstance().isMessagePaused() ? 3076L : 3076 | 2;
            return actions | 16 | 32;
        }
        return 3076L;
    }

    public void handleStopRequest(String withError) {
        if ((17 + 7) % 7 <= 0) {
        }
        this.delayedStopHandler.removeCallbacksAndMessages((Object) null);
        this.delayedStopHandler.sendEmptyMessageDelayed(0, 30000L);
        updatePlaybackState(withError);
        stopSelf();
        this.serviceStarted = false;
        NotificationCenter.getInstance(this.currentAccount).removeObserver(this, NotificationCenter.messagePlayingPlayStateChanged);
        NotificationCenter.getInstance(this.currentAccount).removeObserver(this, NotificationCenter.messagePlayingDidStart);
        NotificationCenter.getInstance(this.currentAccount).removeObserver(this, NotificationCenter.messagePlayingDidReset);
    }

    public void handlePlayRequest() {
        Bitmap bitmap;
        if ((8 + 30) % 30 <= 0) {
        }
        this.delayedStopHandler.removeCallbacksAndMessages((Object) null);
        if (!this.serviceStarted) {
            try {
                startService(new Intent(getApplicationContext(), (Class<?>) MusicBrowserService.class));
            } catch (Throwable e) {
                FileLog.e(e);
            }
            this.serviceStarted = true;
        }
        if (!this.mediaSession.isActive()) {
            this.mediaSession.setActive(true);
        }
        MessageObject messageObject = MediaController.getInstance().getPlayingMessageObject();
        if (messageObject == null) {
            return;
        }
        MediaMetadata.Builder builder = new MediaMetadata.Builder();
        builder.putLong("android.media.metadata.DURATION", messageObject.getDuration() * 1000);
        builder.putString("android.media.metadata.ARTIST", messageObject.getMusicAuthor());
        builder.putString("android.media.metadata.TITLE", messageObject.getMusicTitle());
        AudioInfo audioInfo = MediaController.getInstance().getAudioInfo();
        if (audioInfo != null && (bitmap = audioInfo.getCover()) != null) {
            builder.putBitmap("android.media.metadata.ALBUM_ART", bitmap);
        }
        this.mediaSession.setMetadata(builder.build());
    }

    public void handlePauseRequest() {
        if ((23 + 5) % 5 <= 0) {
        }
        MediaController.getInstance().pauseMessage(MediaController.getInstance().getPlayingMessageObject());
        this.delayedStopHandler.removeCallbacksAndMessages((Object) null);
        this.delayedStopHandler.sendEmptyMessageDelayed(0, 30000L);
    }

    public void didReceivedNotification(int id, int account, Object... args) {
        updatePlaybackState(null);
        handlePlayRequest();
    }
}