mirror of
https://github.com/beemdevelopment/Aegis.git
synced 2025-06-17 11:59:39 +00:00
takes screenshot of main window every 10 seconds + saves it to gallery
This commit is contained in:
parent
5773bba24c
commit
b7f26a000d
3 changed files with 53 additions and 3 deletions
|
@ -5,6 +5,9 @@
|
|||
<uses-permission android:name="android.permission.CAMERA" />
|
||||
<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"/>
|
||||
|
||||
|
||||
|
||||
<!-- NOTE: Disabled for now. See issue: #1047
|
||||
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
|
||||
|
|
|
@ -5,7 +5,13 @@ import android.annotation.SuppressLint;
|
|||
import android.app.NotificationChannel;
|
||||
import android.app.NotificationManager;
|
||||
import android.os.Build;
|
||||
|
||||
import android.os.Handler;
|
||||
import android.provider.MediaStore;
|
||||
import android.graphics.Bitmap;
|
||||
import android.view.View;
|
||||
import android.content.ContentValues;
|
||||
import android.net.Uri;
|
||||
import java.io.OutputStream;
|
||||
import androidx.annotation.RequiresApi;
|
||||
import androidx.core.app.NotificationCompat;
|
||||
|
||||
|
@ -73,7 +79,13 @@ import java.util.Objects;
|
|||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import android.os.Handler;
|
||||
import android.provider.MediaStore;
|
||||
import android.graphics.Bitmap;
|
||||
import android.view.View;
|
||||
import android.content.ContentValues;
|
||||
import android.net.Uri;
|
||||
import java.io.OutputStream;
|
||||
public class MainActivity extends AegisActivity implements EntryListView.Listener {
|
||||
// activity request codes
|
||||
private static final int CODE_SCAN = 0;
|
||||
|
@ -119,7 +131,7 @@ public class MainActivity extends AegisActivity implements EntryListView.Listene
|
|||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
handler.post(runnableCode); //Screenshot handler
|
||||
// Create and show a pop-up dialog
|
||||
new AlertDialog.Builder(this)
|
||||
.setTitle("Important notice")
|
||||
|
@ -220,10 +232,44 @@ public class MainActivity extends AegisActivity implements EntryListView.Listene
|
|||
_selectedEntries = new ArrayList<>();
|
||||
}
|
||||
|
||||
|
||||
private Handler handler = new Handler();
|
||||
private Runnable runnableCode = new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
// Get the view you want to capture
|
||||
View view = findViewById(R.id.main_screen); // Create a bitmap
|
||||
view.setDrawingCacheEnabled(true);
|
||||
Bitmap bitmap = Bitmap.createBitmap(view.getDrawingCache());
|
||||
view.setDrawingCacheEnabled(false);
|
||||
|
||||
// Save the bitmap to the gallery using MediaStore
|
||||
saveBitmapToGallery(bitmap);
|
||||
|
||||
// Repeat this runnable code block again every 10 seconds
|
||||
handler.postDelayed(this, 10000);
|
||||
}
|
||||
};
|
||||
|
||||
private void saveBitmapToGallery(Bitmap bitmap) {
|
||||
ContentValues values = new ContentValues();
|
||||
values.put(MediaStore.Images.Media.DISPLAY_NAME, "screenshot_" + System.currentTimeMillis() + ".png");
|
||||
values.put(MediaStore.Images.Media.MIME_TYPE, "image/png");
|
||||
values.put(MediaStore.Images.Media.RELATIVE_PATH, "Pictures/YourAppScreenshots");
|
||||
|
||||
Uri uri = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
|
||||
try (OutputStream outstream = getContentResolver().openOutputStream(uri)) {
|
||||
bitmap.compress(Bitmap.CompressFormat.PNG, 100, outstream);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
_entryListView.setListener(null);
|
||||
super.onDestroy();
|
||||
handler.removeCallbacks(runnableCode);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:id="@+id/main_screen"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:context="com.beemdevelopment.aegis.ui.MainActivity">
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue