summaryrefslogtreecommitdiff
authorZhiwei Yan <zhiwei.yan@amlogic.com>2017-05-09 06:27:03 (GMT)
committer Zhiwei Yan <zhiwei.yan@amlogic.com>2017-05-12 02:27:34 (GMT)
commit4adc12c4c69f37ec35bf40b6bed31eac27cc9086 (patch)
tree60f0ba5489932eecde4d69070de81d0f17dc0f84
parent304a6e031c4f3354431dad59c3377b86de06b14a (diff)
downloadSubTitle-4adc12c4c69f37ec35bf40b6bed31eac27cc9086.zip
SubTitle-4adc12c4c69f37ec35bf40b6bed31eac27cc9086.tar.gz
SubTitle-4adc12c4c69f37ec35bf40b6bed31eac27cc9086.tar.bz2
pd#143617:avoid to add subtitleservice more than once and open file when has subtitle
Change-Id: I7f9ddfba1d329b636d0344c895b4c01a6a262034
Diffstat
-rw-r--r--jni/subtitle/sub_socket.cpp5
-rw-r--r--src/com/droidlogic/SubTitleService/SubTitleService.java4
-rw-r--r--src/com/droidlogic/SubTitleService/SubTitleServiceBroadcastReceiver.java8
3 files changed, 14 insertions, 3 deletions
diff --git a/jni/subtitle/sub_socket.cpp b/jni/subtitle/sub_socket.cpp
index 3317a47..c482e22 100644
--- a/jni/subtitle/sub_socket.cpp
+++ b/jni/subtitle/sub_socket.cpp
@@ -125,6 +125,11 @@ void* startServerThread(void* arg) {
ALOGE("Failed to unlink old socket '%s': %s\n", addr.sun_path, strerror(errno));
return NULL;
}*/
+ int on = 1;
+ if ((setsockopt(mSockFd, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on))) < 0) {
+ ALOGE("setsockopt failed.\n");
+ exit(1);
+ }
if (bind(mSockFd,(struct sockaddr *)&addr,sizeof(addr)) == -1) {
ALOGE("bind fail. error=%d, err:%s\n", errno, strerror(errno));
return NULL;
diff --git a/src/com/droidlogic/SubTitleService/SubTitleService.java b/src/com/droidlogic/SubTitleService/SubTitleService.java
index bb5f109..4065bd4 100644
--- a/src/com/droidlogic/SubTitleService/SubTitleService.java
+++ b/src/com/droidlogic/SubTitleService/SubTitleService.java
@@ -197,7 +197,9 @@ public class SubTitleService extends ISubTitleService.Stub {
mSetSubId = -1;
}
LOGI("[open] mCurSubId: " + mCurSubId);
- sendOpenMsg(mCurSubId);
+ if (mSubTotal > 0) {
+ sendOpenMsg(mCurSubId);
+ }
//load("http://milleni.ercdn.net/9_test/double_lang_test.xml"); for test
//sendOptionMsg();
diff --git a/src/com/droidlogic/SubTitleService/SubTitleServiceBroadcastReceiver.java b/src/com/droidlogic/SubTitleService/SubTitleServiceBroadcastReceiver.java
index 4b43a16..13291e5 100644
--- a/src/com/droidlogic/SubTitleService/SubTitleServiceBroadcastReceiver.java
+++ b/src/com/droidlogic/SubTitleService/SubTitleServiceBroadcastReceiver.java
@@ -15,8 +15,12 @@ public class SubTitleServiceBroadcastReceiver extends BroadcastReceiver {
String action = intent.getAction();
Log.i (TAG, "[onReceive]action:" + action + ", subtitleService:" + subtitleService);
if (Intent.ACTION_BOOT_COMPLETED.equals (action)) {
- subtitleService = new SubTitleService (context);
- ServiceManager.addService (/*Context.SUBTITLE_SERVICE*/"subtitle_service", subtitleService);
+ if (ServiceManager.getService("subtitle_service") == null) {
+ subtitleService = new SubTitleService (context);
+ ServiceManager.addService (/*Context.SUBTITLE_SERVICE*/"subtitle_service", subtitleService);
+ } else {
+ Log.i (TAG, "subtitle_service is already added.");
+ }
}
}
}