正在查看: Plus 12 v10.13.1.1 应用的 VideoEncodingService.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
正在查看: Plus 12 v10.13.1.1 应用的 VideoEncodingService.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
package org.telegram.messenger;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import androidx.core.app.NotificationCompat;
import androidx.core.app.NotificationManagerCompat;
import org.telegram.messenger.NotificationCenter;
public class VideoEncodingService extends Service implements NotificationCenter.NotificationCenterDelegate {
private static VideoEncodingService instance;
private NotificationCompat.Builder builder;
public int currentAccount;
private MediaController$VideoConvertMessage currentMessage;
public String currentPath;
@Override
public IBinder onBind(Intent arg2) {
return null;
}
public static void start(boolean cancelled) {
if (instance == null) {
try {
ApplicationLoader.applicationContext.startService(new Intent(ApplicationLoader.applicationContext, (Class<?>) VideoEncodingService.class));
return;
} catch (Exception e) {
FileLog.e(e);
return;
}
}
if (cancelled) {
MediaController$VideoConvertMessage currentForegroundConverMessage = MediaController.getInstance().getCurrentForegroundConverMessage();
VideoEncodingService videoEncodingService = instance;
if (videoEncodingService.currentMessage != currentForegroundConverMessage) {
if (currentForegroundConverMessage != null) {
videoEncodingService.setCurrentMessage(currentForegroundConverMessage);
} else {
videoEncodingService.stopSelf();
}
}
}
}
public static void stop() {
VideoEncodingService videoEncodingService = instance;
if (videoEncodingService != null) {
videoEncodingService.stopSelf();
}
}
@Override
public void onDestroy() {
super.onDestroy();
instance = null;
try {
stopForeground(true);
} catch (Throwable unused) {
}
NotificationManagerCompat.from(ApplicationLoader.applicationContext).cancel(4);
NotificationCenter.getInstance(this.currentAccount).removeObserver(this, NotificationCenter.fileUploadProgressChanged);
NotificationCenter.getInstance(this.currentAccount).removeObserver(this, NotificationCenter.fileUploadFailed);
NotificationCenter.getInstance(this.currentAccount).removeObserver(this, NotificationCenter.fileUploaded);
this.currentMessage = null;
if (BuildVars.LOGS_ENABLED) {
FileLog.d("VideoEncodingService: destroy video service");
}
}
public void didReceivedNotification(int id, int account, Object... args) {
String str;
String str2;
if (id == NotificationCenter.fileUploadProgressChanged) {
String str3 = (String) args[0];
if (account == this.currentAccount && (str2 = this.currentPath) != null && str2.equals(str3)) {
float min = Math.min(1.0f, ((Long) args[1]).longValue() / ((Long) args[2]).longValue());
int i = (int) (min * 100.0f);
this.builder.setProgress(100, i, i == 0);
updateNotification();
return;
}
return;
}
if (id == NotificationCenter.fileUploaded || id == NotificationCenter.fileUploadFailed) {
String str4 = (String) args[0];
if (account == this.currentAccount && (str = this.currentPath) != null && str.equals(str4)) {
AndroidUtilities.runOnUIThread(new Runnable() {
@Override
public final void run() {
VideoEncodingService.this.lambda$didReceivedNotification$0();
}
});
}
}
}
public void lambda$didReceivedNotification$0() {
MediaController$VideoConvertMessage currentForegroundConverMessage = MediaController.getInstance().getCurrentForegroundConverMessage();
if (currentForegroundConverMessage != null) {
setCurrentMessage(currentForegroundConverMessage);
} else {
stopSelf();
}
}
public void updateNotification() {
try {
if (MediaController.getInstance().getCurrentForegroundConverMessage() == null) {
return;
}
NotificationManagerCompat.from(ApplicationLoader.applicationContext).notify(4, this.builder.build());
} catch (Throwable th) {
FileLog.e(th);
}
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
MediaController$VideoConvertMessage currentForegroundConverMessage;
if (isRunning() || (currentForegroundConverMessage = MediaController.getInstance().getCurrentForegroundConverMessage()) == null) {
return 2;
}
instance = this;
if (this.builder == null) {
NotificationsController.checkOtherNotificationsChannel();
NotificationCompat.Builder builder = new NotificationCompat.Builder(ApplicationLoader.applicationContext, NotificationsController.OTHER_NOTIFICATIONS_CHANNEL);
this.builder = builder;
builder.setSmallIcon(android.R.drawable.stat_sys_upload);
this.builder.setWhen(System.currentTimeMillis());
this.builder.setChannelId(NotificationsController.OTHER_NOTIFICATIONS_CHANNEL);
this.builder.setContentTitle(LocaleController.getString("AppName", R.string.AppName));
}
setCurrentMessage(currentForegroundConverMessage);
try {
startForeground(4, this.builder.build());
} catch (Throwable th) {
FileLog.e(th);
}
AndroidUtilities.runOnUIThread(new Runnable() {
@Override
public final void run() {
VideoEncodingService.this.updateNotification();
}
});
return 2;
}
private void updateBuilderForMessage(MediaController$VideoConvertMessage videoConvertMessage) {
if (videoConvertMessage == null) {
return;
}
MessageObject messageObject = videoConvertMessage.messageObject;
if (messageObject != null && MessageObject.isGifMessage(messageObject.messageOwner)) {
NotificationCompat.Builder builder = this.builder;
int i = R.string.SendingGif;
builder.setTicker(LocaleController.getString("SendingGif", i));
this.builder.setContentText(LocaleController.getString("SendingGif", i));
} else {
NotificationCompat.Builder builder2 = this.builder;
int i2 = R.string.SendingVideo;
builder2.setTicker(LocaleController.getString("SendingVideo", i2));
this.builder.setContentText(LocaleController.getString("SendingVideo", i2));
}
this.builder.setProgress(100, 0, true);
}
private void setCurrentMessage(MediaController$VideoConvertMessage message) {
MediaController$VideoConvertMessage mediaController$VideoConvertMessage = this.currentMessage;
if (mediaController$VideoConvertMessage == message) {
return;
}
if (mediaController$VideoConvertMessage != null) {
NotificationCenter.getInstance(this.currentAccount).removeObserver(this, NotificationCenter.fileUploadProgressChanged);
NotificationCenter.getInstance(this.currentAccount).removeObserver(this, NotificationCenter.fileUploadFailed);
NotificationCenter.getInstance(this.currentAccount).removeObserver(this, NotificationCenter.fileUploaded);
}
updateBuilderForMessage(message);
this.currentMessage = message;
int i = message.currentAccount;
this.currentAccount = i;
this.currentPath = message.messageObject.messageOwner.attachPath;
NotificationCenter.getInstance(i).addObserver(this, NotificationCenter.fileUploadProgressChanged);
NotificationCenter.getInstance(this.currentAccount).addObserver(this, NotificationCenter.fileUploadFailed);
NotificationCenter.getInstance(this.currentAccount).addObserver(this, NotificationCenter.fileUploaded);
if (isRunning()) {
updateNotification();
}
}
public static boolean isRunning() {
return instance != null;
}
}