Skip to content

Instantly share code, notes, and snippets.

@oKcerG
Last active November 16, 2017 10:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save oKcerG/978dee941f400ffe0dbb2a070e5f10e7 to your computer and use it in GitHub Desktop.
Save oKcerG/978dee941f400ffe0dbb2a070e5f10e7 to your computer and use it in GitHub Desktop.
template <typename T>
class LambdaAndroidActivityResultReceiver : public QObject, public QAndroidActivityResultReceiver
{
public:
LambdaAndroidActivityResultReceiver(T callback) : m_callback{callback} {}
void handleActivityResult(int receiverRequestCode, int resultCode, const QAndroidJniObject &data) override {
Q_UNUSED(receiverRequestCode)
m_callback(resultCode, data);
deleteLater();
}
private:
T m_callback;
};
template <typename T>
void startActivityForResult(const QAndroidJniObject &intent, T callback) {
QtAndroid::startActivity(intent, 0, new LambdaAndroidActivityResultReceiver<T>{callback});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment