/*************************************************************************** * Copyright (C) 2016-2021 by Tomasz Bojczuk * * seelook@gmail.com * * * * 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(); } } }