Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c840e31d authored by Marco Nelissen's avatar Marco Nelissen Committed by Android Git Automerger
Browse files

am fa436298: Merge "Broadcast an intent to mediascanner after executing screencap"

* commit 'fa436298':
  Broadcast an intent to mediascanner after executing screencap
parents 4cbee7d2 fa436298
Loading
Loading
Loading
Loading
+20 −1
Original line number Diff line number Diff line
@@ -18,6 +18,8 @@
#include <unistd.h>
#include <stdio.h>
#include <fcntl.h>
#include <stdlib.h>
#include <string.h>

#include <linux/fb.h>
#include <sys/ioctl.h>
@@ -86,6 +88,21 @@ static status_t vinfoToPixelFormat(const fb_var_screeninfo& vinfo,
    return NO_ERROR;
}

static status_t notifyMediaScanner(const char* fileName) {
    String8 cmd("am broadcast -a android.intent.action.MEDIA_SCANNER_SCAN_FILE -d file://");
    String8 fileUrl("\"");
    fileUrl.append(fileName);
    fileUrl.append("\"");
    cmd.append(fileName);
    cmd.append(" > /dev/null");
    int result = system(cmd.string());
    if (result < 0) {
        fprintf(stderr, "Unable to broadcast intent for media scanner.\n");
        return UNKNOWN_ERROR;
    }
    return NO_ERROR;
}

int main(int argc, char** argv)
{
    ProcessState::self()->startThreadPool();
@@ -112,10 +129,11 @@ int main(int argc, char** argv)
    argv += optind;

    int fd = -1;
    const char* fn;
    if (argc == 0) {
        fd = dup(STDOUT_FILENO);
    } else if (argc == 1) {
        const char* fn = argv[0];
        fn = argv[0];
        fd = open(fn, O_WRONLY | O_CREAT | O_TRUNC, 0664);
        if (fd == -1) {
            fprintf(stderr, "Error opening file: %s (%s)\n", fn, strerror(errno));
@@ -183,6 +201,7 @@ int main(int argc, char** argv)
            SkData* streamData = stream.copyToData();
            write(fd, streamData->data(), streamData->size());
            streamData->unref();
            notifyMediaScanner(fn);
        } else {
            write(fd, &w, 4);
            write(fd, &h, 4);