summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBogDan Vatra <bogdan@kdab.com>2016-09-28 16:41:44 +0300
committerBogDan Vatra <bogdan@kdab.com>2016-09-28 16:02:59 +0000
commitad698f49d1e2aa8984f4569ebf5c598238fa4691 (patch)
tree47da510d49a127513e655c2768e0042d42cad6e7
parent256ee311b936d69561e97f7f8ee832cff93cb509 (diff)
Pass the context to QtAndroidMediaPlayer
This way it can be used in a service Task-number: QTBUG-54506 Change-Id: I2d75b69dfbf7b345322f7625baf544af2af200c5 Reviewed-by: Christian Stromme <christian.stromme@qt.io>
-rw-r--r--src/plugins/android/jar/src/org/qtproject/qt5/android/multimedia/QtAndroidMediaPlayer.java11
-rw-r--r--src/plugins/android/src/wrappers/jni/androidmediaplayer.cpp5
2 files changed, 8 insertions, 8 deletions
diff --git a/src/plugins/android/jar/src/org/qtproject/qt5/android/multimedia/QtAndroidMediaPlayer.java b/src/plugins/android/jar/src/org/qtproject/qt5/android/multimedia/QtAndroidMediaPlayer.java
index d0983d38a..2a66fa2c4 100644
--- a/src/plugins/android/jar/src/org/qtproject/qt5/android/multimedia/QtAndroidMediaPlayer.java
+++ b/src/plugins/android/jar/src/org/qtproject/qt5/android/multimedia/QtAndroidMediaPlayer.java
@@ -44,7 +44,6 @@ import java.lang.String;
import java.io.FileInputStream;
// API is level is < 9 unless marked otherwise.
-import android.app.Activity;
import android.content.Context;
import android.media.MediaPlayer;
import android.net.Uri;
@@ -68,7 +67,7 @@ public class QtAndroidMediaPlayer
private MediaPlayer mMediaPlayer = null;
private Uri mUri = null;
private final long mID;
- private final Activity mActivity;
+ private final Context mContext;
private boolean mMuted = false;
private int mVolume = 100;
private static final String TAG = "Qt MediaPlayer";
@@ -207,10 +206,10 @@ public class QtAndroidMediaPlayer
}
- public QtAndroidMediaPlayer(final Activity activity, final long id)
+ public QtAndroidMediaPlayer(final Context context, final long id)
{
mID = id;
- mActivity = activity;
+ mContext = context;
}
private void setState(int state)
@@ -363,7 +362,7 @@ public class QtAndroidMediaPlayer
final boolean inAssets = (mUri.getScheme().compareTo("assets") == 0);
if (inAssets) {
final String asset = mUri.getPath().substring(1 /* Remove first '/' */);
- final AssetManager am = mActivity.getAssets();
+ final AssetManager am = mContext.getAssets();
afd = am.openFd(asset);
final long offset = afd.getStartOffset();
final long length = afd.getLength();
@@ -374,7 +373,7 @@ public class QtAndroidMediaPlayer
FileDescriptor fd = fis.getFD();
mMediaPlayer.setDataSource(fd);
} else {
- mMediaPlayer.setDataSource(mActivity, mUri);
+ mMediaPlayer.setDataSource(mContext, mUri);
}
setState(State.Initialized);
} catch (final IOException e) {
diff --git a/src/plugins/android/src/wrappers/jni/androidmediaplayer.cpp b/src/plugins/android/src/wrappers/jni/androidmediaplayer.cpp
index f65d6aade..582d8aa9d 100644
--- a/src/plugins/android/src/wrappers/jni/androidmediaplayer.cpp
+++ b/src/plugins/android/src/wrappers/jni/androidmediaplayer.cpp
@@ -57,10 +57,11 @@ AndroidMediaPlayer::AndroidMediaPlayer()
: QObject()
{
QWriteLocker locker(rwLock);
+ auto context = QtAndroidPrivate::activity() ? QtAndroidPrivate::activity() : QtAndroidPrivate::service();
const jlong id = reinterpret_cast<jlong>(this);
mMediaPlayer = QJNIObjectPrivate(QtAndroidMediaPlayerClassName,
- "(Landroid/app/Activity;J)V",
- QtAndroidPrivate::activity(),
+ "(Landroid/content/Context;J)V",
+ context,
id);
mediaPlayers->append(this);
}