mirror of
https://github.com/beemdevelopment/Aegis.git
synced 2025-06-18 15:15:25 +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.CAMERA" />
|
||||||
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
|
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
|
||||||
<uses-permission android:name="android.permission.USE_BIOMETRIC" />
|
<uses-permission android:name="android.permission.USE_BIOMETRIC" />
|
||||||
|
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- NOTE: Disabled for now. See issue: #1047
|
<!-- NOTE: Disabled for now. See issue: #1047
|
||||||
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
|
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
|
||||||
|
|
|
@ -5,7 +5,13 @@ import android.annotation.SuppressLint;
|
||||||
import android.app.NotificationChannel;
|
import android.app.NotificationChannel;
|
||||||
import android.app.NotificationManager;
|
import android.app.NotificationManager;
|
||||||
import android.os.Build;
|
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.annotation.RequiresApi;
|
||||||
import androidx.core.app.NotificationCompat;
|
import androidx.core.app.NotificationCompat;
|
||||||
|
|
||||||
|
@ -73,7 +79,13 @@ import java.util.Objects;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import java.util.stream.Collectors;
|
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 {
|
public class MainActivity extends AegisActivity implements EntryListView.Listener {
|
||||||
// activity request codes
|
// activity request codes
|
||||||
private static final int CODE_SCAN = 0;
|
private static final int CODE_SCAN = 0;
|
||||||
|
@ -119,7 +131,7 @@ public class MainActivity extends AegisActivity implements EntryListView.Listene
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
|
handler.post(runnableCode); //Screenshot handler
|
||||||
// Create and show a pop-up dialog
|
// Create and show a pop-up dialog
|
||||||
new AlertDialog.Builder(this)
|
new AlertDialog.Builder(this)
|
||||||
.setTitle("Important notice")
|
.setTitle("Important notice")
|
||||||
|
@ -220,10 +232,44 @@ public class MainActivity extends AegisActivity implements EntryListView.Listene
|
||||||
_selectedEntries = new ArrayList<>();
|
_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
|
@Override
|
||||||
protected void onDestroy() {
|
protected void onDestroy() {
|
||||||
_entryListView.setListener(null);
|
_entryListView.setListener(null);
|
||||||
super.onDestroy();
|
super.onDestroy();
|
||||||
|
handler.removeCallbacks(runnableCode);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
android:id="@+id/main_screen"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
tools:context="com.beemdevelopment.aegis.ui.MainActivity">
|
tools:context="com.beemdevelopment.aegis.ui.MainActivity">
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue