[Android] Check CPU compatibility in background
Geoffrey Métais
git at videolan.org
Wed May 2 11:54:40 CEST 2018
vlc-android | branch: 3.0.x | Geoffrey Métais <geoffrey.metais at gmail.com> | Wed May 2 11:51:38 2018 +0200| [ad9f5731e9f7d9da1b166065f7a131df8a5373f3] | committer: Geoffrey Métais
Check CPU compatibility in background
> https://code.videolan.org/videolan/vlc-android/commit/ad9f5731e9f7d9da1b166065f7a131df8a5373f3
---
vlc-android/src/org/videolan/vlc/PlaybackService.java | 8 ++------
.../src/org/videolan/vlc/gui/MainActivity.java | 6 ++----
.../src/org/videolan/vlc/gui/tv/MainTvActivity.java | 7 ++-----
.../videolan/vlc/gui/video/VideoPlayerActivity.java | 7 ++-----
.../vlc/gui/video/benchmark/BenchActivity.java | 2 +-
vlc-android/src/org/videolan/vlc/util/Util.java | 19 +++++++++++++++++++
6 files changed, 28 insertions(+), 21 deletions(-)
diff --git a/vlc-android/src/org/videolan/vlc/PlaybackService.java b/vlc-android/src/org/videolan/vlc/PlaybackService.java
index ea5893e44..864afb210 100644
--- a/vlc-android/src/org/videolan/vlc/PlaybackService.java
+++ b/vlc-android/src/org/videolan/vlc/PlaybackService.java
@@ -36,9 +36,9 @@ import android.content.ServiceConnection;
import android.content.SharedPreferences;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
-import android.media.audiofx.AudioEffect;
import android.media.AudioManager;
import android.media.AudioManager.OnAudioFocusChangeListener;
+import android.media.audiofx.AudioEffect;
import android.net.Uri;
import android.os.Binder;
import android.os.Build;
@@ -90,7 +90,6 @@ import org.videolan.vlc.util.AndroidDevices;
import org.videolan.vlc.util.Constants;
import org.videolan.vlc.util.Permissions;
import org.videolan.vlc.util.Util;
-import org.videolan.vlc.util.VLCInstance;
import org.videolan.vlc.util.VLCOptions;
import org.videolan.vlc.util.VoiceSearchParams;
import org.videolan.vlc.util.WeakHandler;
@@ -177,10 +176,7 @@ public class PlaybackService extends MediaBrowserServiceCompat{
super.onCreate();
mSettings = PreferenceManager.getDefaultSharedPreferences(this);
playlistManager = new PlaylistManager(this);
- if (!VLCInstance.testCompatibleCPU(this)) {
- stopSelf();
- return;
- }
+ Util.checkCpuCompatibility(this);
mMedialibrary = VLCApplication.getMLInstance();
if (!mMedialibrary.isInitiated()) registerMedialibrary(null);
diff --git a/vlc-android/src/org/videolan/vlc/gui/MainActivity.java b/vlc-android/src/org/videolan/vlc/gui/MainActivity.java
index c84d5518a..1dd72b460 100644
--- a/vlc-android/src/org/videolan/vlc/gui/MainActivity.java
+++ b/vlc-android/src/org/videolan/vlc/gui/MainActivity.java
@@ -76,6 +76,7 @@ import org.videolan.vlc.interfaces.IRefreshable;
import org.videolan.vlc.media.MediaUtils;
import org.videolan.vlc.util.Constants;
import org.videolan.vlc.util.Permissions;
+import org.videolan.vlc.util.Util;
import org.videolan.vlc.util.VLCInstance;
import java.lang.ref.WeakReference;
@@ -109,10 +110,7 @@ public class MainActivity extends ContentActivity implements FilterQueryProvider
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- if (!VLCInstance.testCompatibleCPU(this)) {
- finish();
- return;
- }
+ Util.checkCpuCompatibility(this);
Permissions.checkReadStoragePermission(this, false);
diff --git a/vlc-android/src/org/videolan/vlc/gui/tv/MainTvActivity.java b/vlc-android/src/org/videolan/vlc/gui/tv/MainTvActivity.java
index ca0140faf..c7f9c9a49 100644
--- a/vlc-android/src/org/videolan/vlc/gui/tv/MainTvActivity.java
+++ b/vlc-android/src/org/videolan/vlc/gui/tv/MainTvActivity.java
@@ -82,7 +82,7 @@ import org.videolan.vlc.media.MediaUtils;
import org.videolan.vlc.util.AndroidDevices;
import org.videolan.vlc.util.Constants;
import org.videolan.vlc.util.Permissions;
-import org.videolan.vlc.util.VLCInstance;
+import org.videolan.vlc.util.Util;
import java.util.List;
@@ -125,10 +125,7 @@ public class MainTvActivity extends BaseTvActivity implements OnItemViewSelected
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- if (!VLCInstance.testCompatibleCPU(this)) {
- finish();
- return;
- }
+ Util.checkCpuCompatibility(this);
// Delay access permission dialog prompt to avoid background corruption
if (!Permissions.canReadStorage(this))
diff --git a/vlc-android/src/org/videolan/vlc/gui/video/VideoPlayerActivity.java b/vlc-android/src/org/videolan/vlc/gui/video/VideoPlayerActivity.java
index 680846048..2c6b03225 100644
--- a/vlc-android/src/org/videolan/vlc/gui/video/VideoPlayerActivity.java
+++ b/vlc-android/src/org/videolan/vlc/gui/video/VideoPlayerActivity.java
@@ -351,10 +351,7 @@ public class VideoPlayerActivity extends AppCompatActivity implements IVLCVout.C
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- if (!VLCInstance.testCompatibleCPU(this)) {
- exit(RESULT_CANCELED);
- return;
- }
+ Util.checkCpuCompatibility(this);
mSettings = PreferenceManager.getDefaultSharedPreferences(this);
@@ -1001,7 +998,7 @@ public class VideoPlayerActivity extends AppCompatActivity implements IVLCVout.C
}
};
- protected void exit(int resultCode){
+ public void exit(int resultCode){
if (isFinishing())
return;
Intent resultIntent = new Intent(ACTION_RESULT);
diff --git a/vlc-android/src/org/videolan/vlc/gui/video/benchmark/BenchActivity.java b/vlc-android/src/org/videolan/vlc/gui/video/benchmark/BenchActivity.java
index cd52512bc..f5e8b6727 100644
--- a/vlc-android/src/org/videolan/vlc/gui/video/benchmark/BenchActivity.java
+++ b/vlc-android/src/org/videolan/vlc/gui/video/benchmark/BenchActivity.java
@@ -304,7 +304,7 @@ public class BenchActivity extends ShallowVideoPlayer {
* @param resultCode VideoPlayerActivity's resultCode
*/
@Override
- protected void exit (int resultCode) {
+ public void exit (int resultCode) {
if (resultCode != RESULT_OK) {
mVLCFailed = true;
}
diff --git a/vlc-android/src/org/videolan/vlc/util/Util.java b/vlc-android/src/org/videolan/vlc/util/Util.java
index 12dfb3900..4ede60ff5 100644
--- a/vlc-android/src/org/videolan/vlc/util/Util.java
+++ b/vlc-android/src/org/videolan/vlc/util/Util.java
@@ -20,6 +20,8 @@
package org.videolan.vlc.util;
+import android.app.Activity;
+import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
@@ -35,6 +37,7 @@ import org.videolan.medialibrary.Tools;
import org.videolan.medialibrary.media.MediaLibraryItem;
import org.videolan.vlc.R;
import org.videolan.vlc.VLCApplication;
+import org.videolan.vlc.gui.video.VideoPlayerActivity;
import java.io.BufferedReader;
import java.io.Closeable;
@@ -203,4 +206,20 @@ public class Util {
}
return false;
}
+
+ public static void checkCpuCompatibility(final Context ctx) {
+ VLCApplication.runBackground(new Runnable() {
+ @Override
+ public void run() {
+ if (!VLCInstance.testCompatibleCPU(ctx)) VLCApplication.runOnMainThread(new Runnable() {
+ @Override
+ public void run() {
+ if (ctx instanceof Service) ((Service) ctx).stopSelf();
+ else if (ctx instanceof VideoPlayerActivity) ((VideoPlayerActivity) ctx).exit(Activity.RESULT_CANCELED);
+ else if (ctx instanceof Activity) ((Activity) ctx).finish();
+ }
+ });
+ }
+ });
+ }
}
More information about the Android
mailing list