package com.XiaoLian;
import android.app.Activity;
import android.os.Build;
import android.os.Handler;
import android.os.RemoteException;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowManager;
import com.XiaoLian.IPCCond.IPCService;
/* loaded from: classes.dex */
public class StartGame {
private static WindowManager.LayoutParams Touch_Params;
private static View Touch_View;
private static WindowManager manager;
public static void showFloatWindow(Activity activity) {
manager = (WindowManager) activity.getSystemService("window");
WindowManager.LayoutParams layoutParams = new WindowManager.LayoutParams();
layoutParams.systemUiVisibility = 5894;
layoutParams.type = Build.VERSION.SDK_INT >= 26 ? 2038 : 2003;
layoutParams.gravity = 51;
layoutParams.format = -2;
((ViewGroup.LayoutParams) layoutParams).width = -1;
((ViewGroup.LayoutParams) layoutParams).height = -1;
layoutParams.flags = 1098909496;
if (Build.VERSION.SDK_INT >= 28) {
layoutParams.layoutInDisplayCutoutMode = 1;
}
Touch_View = new View(activity);
Touch_Params = new WindowManager.LayoutParams();
Touch_Params.type = Build.VERSION.SDK_INT >= 26 ? 2038 : 2003;
Touch_Params.gravity = 51;
Touch_Params.format = -2;
((ViewGroup.LayoutParams) Touch_Params).width = 770;
((ViewGroup.LayoutParams) Touch_Params).height = 780;
Touch_Params.x = 60;
Touch_Params.y = 60;
if (Build.VERSION.SDK_INT >= 28) {
Touch_Params.layoutInDisplayCutoutMode = 1;
}
Touch_Params.flags = 1098909480;
Touch_View.setOnTouchListener(new View.OnTouchListener() { // from class: com.XiaoLian.StartGame.100000000
@Override // android.view.View.OnTouchListener
public boolean onTouch(View view, MotionEvent motionEvent) {
try {
if (MainActivity.app_Operation_mode_root) {
IPCService.GetIPC().MotionEventClick(motionEvent.getAction(), motionEvent.getRawX(), motionEvent.getRawY());
} else {
SuperJNI.MotionEventClick(motionEvent.getAction(), motionEvent.getRawX(), motionEvent.getRawY());
}
} catch (RemoteException e) {
e.printStackTrace();
}
return true;
}
});
TV tv = new TV(activity);
layoutParams.token = tv.getApplicationWindowToken();
Touch_Params.token = Touch_View.getApplicationWindowToken();
manager.addView(tv, layoutParams);
manager.addView(Touch_View, Touch_Params);
if (MainActivity.app_Operation_mode_root) {
updateTouchWinSize();
} else {
updateTouchWinSize_not_root();
}
}
public static void updateTouchWinSize() {
Handler handler = new Handler();
handler.postDelayed(new Runnable(handler) { // from class: com.XiaoLian.StartGame.100000001
private final Handler val$handler;
{
this.val$handler = r6;
}
@Override // java.lang.Runnable
public void run() {
try {
float[] GetImGuiwinsize = IPCService.GetIPC().GetImGuiwinsize();
StartGame.Touch_Params.x = (int) GetImGuiwinsize[0];
StartGame.Touch_Params.y = (int) GetImGuiwinsize[1];
((ViewGroup.LayoutParams) StartGame.Touch_Params).width = (int) GetImGuiwinsize[2];
((ViewGroup.LayoutParams) StartGame.Touch_Params).height = (int) GetImGuiwinsize[3];
StartGame.manager.updateViewLayout(StartGame.Touch_View, StartGame.Touch_Params);
} catch (RemoteException e) {
e.printStackTrace();
}
this.val$handler.postDelayed(this, (long) 17);
}
}, (long) 17);
}
public static void updateTouchWinSize_not_root() {
Handler handler = new Handler();
handler.postDelayed(new Runnable(handler) { // from class: com.XiaoLian.StartGame.100000002
private final Handler val$handler;
{
this.val$handler = r6;
}
@Override // java.lang.Runnable
public void run() {
float[] GetImGuiwinsize = SuperJNI.GetImGuiwinsize();
StartGame.Touch_Params.x = (int) GetImGuiwinsize[0];
StartGame.Touch_Params.y = (int) GetImGuiwinsize[1];
((ViewGroup.LayoutParams) StartGame.Touch_Params).width = (int) GetImGuiwinsize[2];
((ViewGroup.LayoutParams) StartGame.Touch_Params).height = (int) GetImGuiwinsize[3];
StartGame.manager.updateViewLayout(StartGame.Touch_View, StartGame.Touch_Params);
this.val$handler.postDelayed(this, (long) 17);
}
}, (long) 17);
}
}
package com.XiaoLian;
import android.view.Surface;
/* loaded from: classes.dex */
public class SuperJNI {
public static native float[] GetImGuiwinsize();
public static native void MotionEventClick(int i, float f, float f2);
public static native void setKey(String str);
public static native void setPid(int i);
public static native void setSurface(Surface surface);
public static native void setUUid(String str);
public static native String start(int i, int i2);
}
package com.XiaoLian;
import android.content.Context;
import android.os.RemoteException;
import android.util.Log;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import com.XiaoLian.IPCCond.IPCService;
/* loaded from: classes.dex */
public class SV extends SurfaceView implements SurfaceHolder.Callback {
@Override // android.view.SurfaceHolder.Callback
public void surfaceDestroyed(SurfaceHolder surfaceHolder) {
}
public SV(Context context) {
super(context);
setZOrderOnTop(true);
getHolder().setFormat(-2);
getHolder().addCallback(this);
}
@Override // android.view.SurfaceHolder.Callback
public void surfaceCreated(SurfaceHolder surfaceHolder) {
Log.e("DrawView", "surfaceCreated");
surfaceHolder.setType(2);
try {
IPCService.GetIPC().setSurface(surfaceHolder.getSurface());
} catch (RemoteException e) {
e.printStackTrace();
}
}
@Override // android.view.SurfaceHolder.Callback
public void surfaceChanged(SurfaceHolder surfaceHolder, int i, int i2, int i3) {
try {
IPCService.GetIPC().start(i2, i3);
} catch (RemoteException e) {
e.printStackTrace();
}
}
}
package com.XiaoLian;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.provider.Settings;
import android.util.Log;
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.security.MessageDigest;
/* loaded from: classes.dex */
public class Tools {
/* renamed from: 申请ROOT reason: contains not printable characters */
public static void m9ROOT() {
try {
Runtime.getRuntime().exec("su");
} catch (IOException e) {
}
}
/* renamed from: 检测ROOT reason: contains not printable characters */
public static boolean m8ROOT() {
String[] strArr = {"/system/bin/", "/system/xbin/"};
try {
if (0 < strArr.length) {
File file = new File(new StringBuffer().append(strArr[0]).append("su").toString());
if (file.exists()) {
if (file.canExecute()) {
return true;
}
}
return false;
}
} catch (Exception e) {
e.printStackTrace();
}
return false;
}
/* renamed from: 创建文件 reason: contains not printable characters */
public static void m4(String str) {
File file = new File(str);
if (file.exists()) {
file.delete();
}
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
/* renamed from: 创建文件夹 reason: contains not printable characters */
public static void m5(String str) {
File file = new File(str);
if (!file.exists()) {
file.mkdirs();
}
}
/* renamed from: 写入文件 reason: contains not printable characters */
public static void m2(String str, String str2) {
try {
FileWriter fileWriter = new FileWriter(str);
fileWriter.write(str2);
fileWriter.close();
} catch (IOException e) {
}
}
public static boolean deleteFile(String str) {
return new File(str).delete();
}
/* renamed from: 删除文件 reason: contains not printable characters */
public static boolean m6(String str) {
if (str == null || str.length() == 0 || str.trim().length() == 0) {
return true;
}
File file = new File(str);
if (!file.exists()) {
return true;
}
if (file.isFile()) {
return file.delete();
}
if (!file.isDirectory()) {
return false;
}
File[] listFiles = file.listFiles();
for (File file2 : listFiles) {
if (file2.isFile()) {
file2.delete();
} else if (file2.isDirectory()) {
deleteFile(file2.getAbsolutePath());
}
}
return file.delete();
}
/* renamed from: 读取文件 reason: contains not printable characters */
public static String m11(String str) {
String str2 = "";
try {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(new File(str)), "UTF-8"));
String str3 = null;
while (true) {
String readLine = bufferedReader.readLine();
if (readLine == null) {
break;
}
str2 = new StringBuffer().append(str2).append(readLine).toString();
}
} catch (Exception e) {
e.printStackTrace();
}
return str2;
}
public static void RunShell(String str) {
try {
Runtime.getRuntime().exec(str, (String[]) null, (File) null);
} catch (Exception e) {
e.printStackTrace();
}
}
public static void Sshell(String str) {
Log.d("Alice-", str);
new Thread(new Runnable(str) { // from class: com.XiaoLian.Tools.100000000
private final String val$shell;
{
this.val$shell = r6;
}
@Override // java.lang.Runnable
public void run() {
try {
DataOutputStream dataOutputStream = new DataOutputStream(Runtime.getRuntime().exec("sh").getOutputStream());
dataOutputStream.write(this.val$shell.getBytes());
dataOutputStream.writeBytes("\n");
dataOutputStream.flush();
dataOutputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}).start();
}
/* renamed from: 写出资源文件 reason: contains not printable characters */
public static boolean m3(Context context, String str, String str2) {
File file = new File(str);
if (!file.exists() && !file.mkdirs()) {
return false;
}
try {
InputStream open = context.getAssets().open(str2);
FileOutputStream fileOutputStream = new FileOutputStream(new File(file, str2));
byte[] bArr = new byte[1024];
while (true) {
int read = open.read(bArr);
if (-1 == read) {
open.close();
fileOutputStream.flush();
fileOutputStream.close();
return true;
}
fileOutputStream.write(bArr, 0, read);
}
} catch (IOException e) {
e.printStackTrace();
return false;
}
}
/* renamed from: 打开软件 reason: contains not printable characters */
public static boolean m7(Context context, String str) {
PackageManager packageManager = context.getPackageManager();
new Intent();
context.startActivity(packageManager.getLaunchIntentForPackage(str));
return true;
}
/* renamed from: 获取机器码 reason: contains not printable characters */
public static String m10(Context context) {
return Settings.Secure.getString(context.getContentResolver(), "android_id");
}
public static String UrlPost(String str, String str2) {
String str3 = "";
try {
HttpURLConnection httpURLConnection = (HttpURLConnection) new URL(str).openConnection();
httpURLConnection.setReadTimeout(9000);
httpURLConnection.setRequestMethod("POST");
httpURLConnection.getOutputStream().write(str2.getBytes());
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(httpURLConnection.getInputStream()));
StringBuffer stringBuffer = new StringBuffer();
while (true) {
String readLine = bufferedReader.readLine();
if (readLine == null) {
break;
}
stringBuffer.append(readLine);
}
str3 = stringBuffer.toString();
} catch (IOException e) {
}
return str3;
}
public static String encodeMD5(String str) {
try {
MessageDigest instance = MessageDigest.getInstance("MD5");
instance.update(str.getBytes("UTF-8"));
byte[] digest = instance.digest();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < digest.length; i++) {
sb.append(String.format("%02X", new Byte(digest[i])));
}
return sb.toString().toLowerCase();
} catch (Exception e) {
e.printStackTrace();
return "";
}
}
}
package com.XiaoLian;
import android.content.Context;
import android.graphics.SurfaceTexture;
import android.os.RemoteException;
import android.util.Log;
import android.view.Surface;
import android.view.TextureView;
import com.XiaoLian.IPCCond.IPCService;
/* loaded from: classes.dex */
public class TV extends TextureView implements TextureView.SurfaceTextureListener {
@Override // android.view.TextureView.SurfaceTextureListener
public void onSurfaceTextureSizeChanged(SurfaceTexture surfaceTexture, int i, int i2) {
}
@Override // android.view.TextureView.SurfaceTextureListener
public void onSurfaceTextureUpdated(SurfaceTexture surfaceTexture) {
}
public TV(Context context) {
super(context);
setOpaque(true);
setSurfaceTextureListener(this);
}
@Override // android.view.TextureView.SurfaceTextureListener
public void onSurfaceTextureAvailable(SurfaceTexture surfaceTexture, int i, int i2) {
try {
if (MainActivity.app_Operation_mode_root) {
IPCService.GetIPC().start(i, i2);
IPCService.GetIPC().setSurface(new Surface(surfaceTexture));
} else {
SuperJNI.start(i, i2);
SuperJNI.setSurface(new Surface(surfaceTexture));
}
} catch (RemoteException e) {
e.printStackTrace();
}
Log.e("TV", "surfaceCreated_");
}
@Override // android.view.TextureView.SurfaceTextureListener
public boolean onSurfaceTextureDestroyed(SurfaceTexture surfaceTexture) {
Log.e("NDK-java", "onSurfaceTextureDestroyed");
return false;
}
}
package com.XiaoLian;
import android.content.ClipboardManager;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.icu.text.SimpleDateFormat;
import android.media.MediaPlayer;
import android.provider.Settings;
import android.text.TextUtils;
import android.util.Log;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.math.BigInteger;
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.sql.Timestamp;
import java.util.Date;
import java.util.Random;
/* loaded from: classes.dex */
public class Util {
private static MediaPlayer mMediaPlayer;
public static Context getContext() {
return MainActivity.getContext;
}
/* renamed from: 获取卡密 reason: contains not printable characters */
public static String m12() {
ClipboardManager clipboardManager = (ClipboardManager) getContext().getSystemService("clipboard");
if (clipboardManager != null && clipboardManager.hasPrimaryClip() && clipboardManager.getPrimaryClip().getItemCount() > 0) {
String valueOf = String.valueOf(clipboardManager.getPrimaryClip().getItemAt(0).getText());
if (!TextUtils.isEmpty(valueOf)) {
return valueOf;
}
}
return "获取卡密失败";
}
public static String imei() {
return Settings.System.getString(getContext().getContentResolver(), "android_id");
}
public static String getTimeStateNew(String str) {
String str2 = str;
if (Long.valueOf(str2).longValue() / Long.valueOf("1000000000000").longValue() < ((long) 1) && Long.valueOf(str2).longValue() / Long.valueOf("1000000000").longValue() >= ((long) 1)) {
str2 = new StringBuffer().append(str2).append("000").toString();
}
Timestamp timestamp = new Timestamp(Long.valueOf(str2).longValue());
Timestamp timestamp2 = new Timestamp(System.currentTimeMillis());
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
long j = (long) 86400000;
long j2 = (long) 3600000;
long j3 = (long) 60000;
long time = timestamp2.getTime() - timestamp.getTime();
if (time / j >= ((long) 3)) {
return simpleDateFormat.format((Date) timestamp);
}
long j4 = time / j;
if (j4 <= ((long) 2) && j4 >= ((long) 1)) {
return new StringBuffer().append(j4).append("天前").toString();
}
long j5 = time / j2;
if (j5 >= ((long) 1)) {
return new StringBuffer().append(j5).append("小時前").toString();
}
long j6 = time / j3;
if (j6 >= ((long) 1)) {
return new StringBuffer().append(j6).append("分鐘前").toString();
}
return "剛剛";
}
public static boolean isRoot() {
try {
Process exec = Runtime.getRuntime().exec("su");
OutputStream outputStream = exec.getOutputStream();
outputStream.write("\n".getBytes());
outputStream.flush();
outputStream.write("exit".getBytes());
outputStream.flush();
outputStream.write("\n".getBytes());
outputStream.flush();
int waitFor = exec.waitFor();
outputStream.close();
return waitFor == 0;
} catch (Exception e) {
return false;
}
}
private static void load(Context context, File file, int i, String str) {
for (int i2 = 1; i2 < i; i2++) {
File file2 = new File(new StringBuffer().append(new StringBuffer().append(new StringBuffer().append(new StringBuffer().append(file.getPath()).append("/").toString()).append(str).toString()).append(i2).toString()).append(".png").toString());
if (!file2.exists()) {
try {
InputStream open = context.getAssets().open(new StringBuffer().append(new StringBuffer().append(new StringBuffer().append("image/").append(str).toString()).append(i2).toString()).append(".png").toString());
FileOutputStream fileOutputStream = new FileOutputStream(file2);
byte[] bArr = new byte[1048576];
while (true) {
int read = open.read(bArr);
if (read == -1) {
break;
}
fileOutputStream.write(bArr, 0, read);
}
fileOutputStream.flush();
open.close();
fileOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
public static void loadImage(Context context, String str, String str2) {
try {
String[] list = context.getAssets().list(str);
if (list.length > 0) {
File file = new File(str2);
if (!file.exists()) {
file.mkdirs();
}
for (String str3 : list) {
loadImage(context, new StringBuffer().append(new StringBuffer().append(str).append("/").toString()).append(str3).toString(), new StringBuffer().append(new StringBuffer().append(str2).append("/").toString()).append(str3).toString());
}
return;
}
InputStream open = context.getAssets().open(str);
FileOutputStream fileOutputStream = new FileOutputStream(new File(str2));
byte[] bArr = new byte[1024];
while (true) {
int read = open.read(bArr);
if (read == -1) {
fileOutputStream.flush();
open.close();
fileOutputStream.close();
return;
}
fileOutputStream.write(bArr, 0, read);
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static String getFileMd5(File file) {
byte[] bArr = new byte[1024];
try {
if (!file.isFile()) {
return "";
}
MessageDigest instance = MessageDigest.getInstance("MD5");
FileInputStream fileInputStream = new FileInputStream(file);
while (true) {
int read = fileInputStream.read(bArr, 0, 1024);
if (read == -1) {
fileInputStream.close();
return String.format("%1$032x", new BigInteger(1, instance.digest()));
}
instance.update(bArr, 0, read);
}
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
public static String getBinData() {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 1024; i++) {
String hexString = Integer.toHexString(new Random().nextInt(255) & 255);
sb.append("\\x");
if (hexString.length() == 1) {
sb.append("0");
}
sb.append(hexString);
}
return sb.toString();
}
private static String getMd5(String str) throws NoSuchAlgorithmException, UnsupportedEncodingException {
byte[] digest = MessageDigest.getInstance("MD5").digest(str.getBytes(StandardCharsets.UTF_8));
StringBuilder sb = new StringBuilder();
for (byte b : digest) {
sb.append(Integer.toHexString((255 & b) | -256).substring(6));
}
return sb.toString();
}
public static String getAndroidID() {
String[] strArr = {"/data/local/tmp/.system.r350.x29", "/data/app/install_check", "/data/data/android/code_cache/pmx32.dat"};
StringBuilder sb = new StringBuilder();
for (String str : strArr) {
File file = new File(str);
if (!file.exists()) {
runShell(new StringBuffer().append(new StringBuffer().append(new StringBuffer().append(new StringBuffer().append(new StringBuffer().append(new StringBuffer().append("echo -e -n \"").append(getBinData()).toString()).append("\" > ").toString()).append(str).toString()).append("\n").toString()).append("chmod 644 ").toString()).append(str).toString(), true);
}
sb.append(getFileMd5(file)).append("&");
}
try {
return getMd5(sb.toString());
} catch (UnsupportedEncodingException | NoSuchAlgorithmException e) {
e.printStackTrace();
return null;
}
}
public static byte[] runShell(String str, boolean z) {
try {
Process exec = Runtime.getRuntime().exec(z ? "su" : "sh");
InputStream inputStream = exec.getInputStream();
InputStream errorStream = exec.getErrorStream();
OutputStream outputStream = exec.getOutputStream();
outputStream.write("\n".getBytes());
outputStream.flush();
outputStream.write(str.getBytes());
outputStream.flush();
outputStream.write("\n".getBytes());
outputStream.flush();
outputStream.write("exit".getBytes());
outputStream.flush();
outputStream.write("\n".getBytes());
outputStream.flush();
byte[] readInputStream = readInputStream(inputStream, false);
byte[] readInputStream2 = readInputStream(errorStream, false);
exec.waitFor();
inputStream.close();
errorStream.close();
outputStream.close();
if (new String(readInputStream2).trim().isEmpty()) {
return readInputStream;
}
return new StringBuffer().append(new StringBuffer().append(new StringBuffer().append(new StringBuffer().append(new StringBuffer().append("Shell Result : \n").append(new String(readInputStream)).toString()).append("\n").toString()).append("Shell Error : \n").toString()).append(new String(readInputStream2)).toString()).append("\n").toString().getBytes();
} catch (Throwable th) {
return new StringBuffer().append("Application Error : \n").append(Log.getStackTraceString(th)).toString().getBytes();
}
}
public static byte[] readInputStream(InputStream inputStream, boolean z) {
try {
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
byte[] bArr = new byte[1024];
while (true) {
int read = inputStream.read(bArr);
if (read == -1) {
break;
}
byteArrayOutputStream.write(bArr, 0, read);
}
if (z) {
inputStream.close();
byteArrayOutputStream.close();
}
return byteArrayOutputStream.toByteArray();
} catch (Throwable th) {
return Log.getStackTraceString(th).getBytes();
}
}
public static void doPlay(File file) {
mMediaPlayer = new MediaPlayer();
try {
mMediaPlayer.setDataSource(file.getAbsolutePath());
mMediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { // from class: com.XiaoLian.Util.100000000
@Override // android.media.MediaPlayer.OnCompletionListener
public void onCompletion(MediaPlayer mediaPlayer) {
Util.stopPlay();
}
});
mMediaPlayer.setOnErrorListener(new MediaPlayer.OnErrorListener() { // from class: com.XiaoLian.Util.100000001
@Override // android.media.MediaPlayer.OnErrorListener
public boolean onError(MediaPlayer mediaPlayer, int i, int i2) {
Util.stopPlay();
return true;
}
});
mMediaPlayer.setVolume((float) 1, (float) 1);
mMediaPlayer.setLooping(false);
mMediaPlayer.prepare();
mMediaPlayer.start();
} catch (IOException | RuntimeException e) {
e.printStackTrace();
stopPlay();
}
}
public static void stopPlay() {
if (mMediaPlayer != null) {
mMediaPlayer.setOnCompletionListener(null);
mMediaPlayer.setOnErrorListener(null);
mMediaPlayer.stop();
mMediaPlayer.reset();
mMediaPlayer.release();
mMediaPlayer = null;
}
}
public static void copyFileUsingFileStreams(File file, File file2) throws IOException {
InputStream inputStream = null;
OutputStream outputStream = null;
try {
inputStream = new FileInputStream(file);
outputStream = new FileOutputStream(file2);
byte[] bArr = new byte[1024];
while (true) {
int read = inputStream.read(bArr);
if (read != -1) {
outputStream.write(bArr, 0, read);
} else {
return;
}
}
} finally {
inputStream.close();
outputStream.close();
}
}
public static Bitmap compressImage(Bitmap bitmap, int i, int i2) {
int i3 = i2;
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 80, byteArrayOutputStream);
while (byteArrayOutputStream.toByteArray().length / 1024 > i) {
i3 -= 10;
byteArrayOutputStream.reset();
bitmap.compress(Bitmap.CompressFormat.JPEG, i3, byteArrayOutputStream);
}
return BitmapFactory.decodeStream(new ByteArrayInputStream(byteArrayOutputStream.toByteArray()), null, null);
}
}
这些里面有RC4Util类代码么?哪一段是?
最新发布