Skip to content
Snippets Groups Projects
TshareExam.java 3.2 KiB
Newer Older
/***************************************************************************
 *   Copyright (C) 2016-2021 by Tomasz Bojczuk                             *
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation; either version 3 of the License, or     *
 *   (at your option) any later version.                                   *
 *                                                                         *
 *   This program is distributed in the hope that it will be useful,       *
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
 *   GNU General Public License for more details.                          *
 *                                                                         *
 *  You should have received a copy of the GNU General Public License      *
 *  along with this program.  If not, see <http://www.gnu.org/licenses/>.  *
 ***************************************************************************/

package net.sf.nootka;

import org.qtproject.qt.android.QtNative;
import java.lang.String;
import android.content.Intent;
import java.io.File;
import android.net.Uri;
import android.util.Log;
import android.app.Activity;
import android.os.Build;
import android.os.Build.VERSION_CODES;
/**
 * Following module requires Android Support Repository from Android extras installed (through SDK manager)
 * There is appropriate information to use it during buid process in
 * src/android/build.gradle
 */
// import android.support.v4.content.FileProvider;
import androidx.core.content.FileProvider;

public class TshareExam extends Activity
      * @fn send(String title, String message, String filePath)
      * Displays chooser dialog to send/share exam file
      * @p title - is head text of that dialog
      * @p message - is message content when send by email was chosen.
  public static void send(String title, String message, String filePath) {
    if (QtNative.activity() == null)
        return;
    Intent shareIntent = new Intent(Intent.ACTION_SEND);
    shareIntent.setType("*/*");
    shareIntent.putExtra(Intent.EXTRA_SUBJECT, "Nootka");
    shareIntent.putExtra(Intent.EXTRA_TEXT, message);
  // We can be sure that file exists - Nootka checked it before
    Uri uri;
    if (Build.VERSION.SDK_INT < 24) {
        File attachment = new File(filePath);
        uri = Uri.fromFile(attachment);
    } else {
        shareIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
        File attachment = new File(filePath);
        uri = FileProvider.getUriForFile(QtNative.activity(), "net.sf.nootka.provider", attachment);
    shareIntent.putExtra(Intent.EXTRA_STREAM, uri);

    try {
        QtNative.activity().startActivity(Intent.createChooser(shareIntent, title));
    } catch (Exception e) {
        String msgTag = "Send_exam_file_error";
        Log.e(msgTag, e.toString());
        e.printStackTrace();
    }