diff --git a/app/src/main/java/com/mogo/launcher/MogoApplication.java b/app/src/main/java/com/mogo/launcher/MogoApplication.java index bc835850ee..5c6abc3da7 100644 --- a/app/src/main/java/com/mogo/launcher/MogoApplication.java +++ b/app/src/main/java/com/mogo/launcher/MogoApplication.java @@ -304,7 +304,8 @@ public class MogoApplication extends AbsMogoApplication { MogoModulePaths.addBaseModule(new MogoModule(MogoServicePaths.PATH_V2X_FRONT_CRASH_WARNING, "IV2XManagerProvider")); // 全局语音唤醒 MogoModulePaths.addBaseModule(new MogoModule(MogoServicePaths.PATH_GLOBAL_UNWAKE, "GlobalUnwake")); - + // 云公告发布 + MogoModulePaths.addModuleFunction(new MogoModule(MogoServicePaths.PATH_AI_NOTICE, "IMoGoNoticeProvider")); if (!DebugConfig.isLauncher()) { PersistentManager.getInstance().initManager(this); diff --git a/core/function-impl/mogo-core-function-notice/build.gradle b/core/function-impl/mogo-core-function-notice/build.gradle index 9da8588b39..e8c776714b 100644 --- a/core/function-impl/mogo-core-function-notice/build.gradle +++ b/core/function-impl/mogo-core-function-notice/build.gradle @@ -48,17 +48,22 @@ dependencies { implementation rootProject.ext.dependencies.androidxconstraintlayout implementation rootProject.ext.dependencies.arouter implementation rootProject.ext.dependencies.rxandroid + implementation project(path: ':services:mogo-service-api') kapt rootProject.ext.dependencies.aroutercompiler if (Boolean.valueOf(RELEASE)) { - + api rootProject.ext.dependencies.mogocommons + api rootProject.ext.dependencies.mogoserviceapi + implementation rootProject.ext.dependencies.modulecommon } else { - - implementation project(':core:mogo-core-data') + api project(":foudations:mogo-commons") + api project(':services:mogo-service-api') implementation project(':core:mogo-core-utils') - implementation project(':core:mogo-core-function-api') + implementation project(':modules:mogo-module-common') implementation project(':core:mogo-core-function-call') + implementation project(':core:mogo-core-res') + implementation project(':core:mogo-core-data') } } diff --git a/core/function-impl/mogo-core-function-notice/src/main/java/com/mogo/eagle/core/function/notice/MoGoNoticeManager.java b/core/function-impl/mogo-core-function-notice/src/main/java/com/mogo/eagle/core/function/notice/MoGoNoticeManager.java deleted file mode 100644 index d4190d8adc..0000000000 --- a/core/function-impl/mogo-core-function-notice/src/main/java/com/mogo/eagle/core/function/notice/MoGoNoticeManager.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.mogo.eagle.core.function.notice; - -/** - * @author liujing - * @description 云公告注册 - * @since: 10/27/21 - */ -public class MoGoNoticeManager { - -} diff --git a/core/function-impl/mogo-core-function-notice/src/main/java/com/mogo/eagle/core/function/notice/NoticeProvider.java b/core/function-impl/mogo-core-function-notice/src/main/java/com/mogo/eagle/core/function/notice/NoticeProvider.java new file mode 100644 index 0000000000..69af9d10d4 --- /dev/null +++ b/core/function-impl/mogo-core-function-notice/src/main/java/com/mogo/eagle/core/function/notice/NoticeProvider.java @@ -0,0 +1,54 @@ +package com.mogo.eagle.core.function.notice; + +import android.content.Context; +import android.os.Bundle; +import android.util.Log; + +import androidx.fragment.app.Fragment; + +import com.alibaba.android.arouter.facade.annotation.Route; +import com.mogo.eagle.core.data.constants.MogoServicePaths; +import com.mogo.eagle.core.function.api.notice.IMoGoNoticeProvider; +import com.mogo.eagle.core.function.notice.receiver.NoticeMessageListener; +import com.mogo.module.common.MogoApisHandler; +import com.mogo.service.cloud.socket.IMogoLifecycleListener; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + + +/** + * @author Jing + * @description 云公告 + * @since: 10/27/21 + */ +@Route(path = MogoServicePaths.PATH_AI_NOTICE) +public class NoticeProvider implements IMoGoNoticeProvider { + private String TAG = "AINotice"; + private Context mContext; + + @Nullable + @Override + public Fragment createCoverage(@Nullable Context context, @Nullable Bundle data) { + return null; + } + + @NotNull + @Override + public String getFunctionName() { + return null; + } + + @Override + public void onDestroy() { + NoticeSocketManager.getInstance().unRegisterSocketMessage(); + } + + @Override + public void init(Context context) { + Log.d(TAG, "init"); + mContext = context; + NoticeSocketManager.getInstance().registerSocketMessage(context); + } + +} diff --git a/core/function-impl/mogo-core-function-notice/src/main/java/com/mogo/eagle/core/function/notice/NoticeSocketManager.java b/core/function-impl/mogo-core-function-notice/src/main/java/com/mogo/eagle/core/function/notice/NoticeSocketManager.java new file mode 100644 index 0000000000..082c7505b6 --- /dev/null +++ b/core/function-impl/mogo-core-function-notice/src/main/java/com/mogo/eagle/core/function/notice/NoticeSocketManager.java @@ -0,0 +1,53 @@ +package com.mogo.eagle.core.function.notice; + +import android.content.Context; +import android.util.Log; + +import com.alibaba.android.arouter.launcher.ARouter; +import com.mogo.eagle.core.function.notice.receiver.NoticeMessageListener; +import com.mogo.module.common.MogoApisHandler; +import com.mogo.service.IMogoServiceApis; + +/** + * @author Jing + * @description 云公告注册、反注册 + * @since: 10/27/21 + */ +class NoticeSocketManager { + private String TAG = "AINotice"; + private static NoticeSocketManager mNoticeSocketManager; + private NoticeMessageListener mNoticeMessageListener; + private static IMogoServiceApis mMoGoServiceApis; + private Context mContext; + + public static synchronized NoticeSocketManager getInstance() { + synchronized (NoticeSocketManager.class) { + if (mNoticeSocketManager == null) { + mNoticeSocketManager = new NoticeSocketManager(); + } + } + return mNoticeSocketManager; + } + + public void registerSocketMessage(Context context) { + Log.d(TAG, "registerSocketMessage"); + mContext = context; + mNoticeMessageListener = new NoticeMessageListener(); + if (mMoGoServiceApis == null) { + mMoGoServiceApis = (IMogoServiceApis) ARouter.getInstance().build(com.mogo.eagle.core.data.constants. + MogoServicePaths.PATH_SERVICE_APIS).navigation(context); + } + mMoGoServiceApis. + getSocketManagerApi(context). + registerOnMessageListener(100, mNoticeMessageListener); + } + + public void unRegisterSocketMessage() { + if (mNoticeMessageListener != null) { + mMoGoServiceApis + .getSocketManagerApi(mContext). + unregisterOnMessageListener(100, mNoticeMessageListener); + } + } +} + diff --git a/core/function-impl/mogo-core-function-notice/src/main/java/com/mogo/eagle/core/function/notice/receiver/NoticeMessageListener.java b/core/function-impl/mogo-core-function-notice/src/main/java/com/mogo/eagle/core/function/notice/receiver/NoticeMessageListener.java new file mode 100644 index 0000000000..da3bc2570d --- /dev/null +++ b/core/function-impl/mogo-core-function-notice/src/main/java/com/mogo/eagle/core/function/notice/receiver/NoticeMessageListener.java @@ -0,0 +1,28 @@ +package com.mogo.eagle.core.function.notice.receiver; + +import android.content.BroadcastReceiver; +import android.content.Context; +import android.content.Intent; +import android.util.Log; + +import com.mogo.service.cloud.socket.IMogoOnMessageListener; + +/** + * @author Jing + * @description push云公告消息接收 + * @since: 10/27/21 + */ +public class NoticeMessageListener implements IMogoOnMessageListener { + private String TAG = "AINotice"; + private Context mContext; + + @Override + public Class target() { + return null; + } + + @Override + public void onMsgReceived(Object obj) { + Log.d(TAG, obj.toString()); + } +} diff --git a/core/function-impl/mogo-core-function-notice/src/main/java/com/mogo/eagle/core/function/notice/receiver/NoticeReceiver.java b/core/function-impl/mogo-core-function-notice/src/main/java/com/mogo/eagle/core/function/notice/receiver/NoticeReceiver.java deleted file mode 100644 index a008846c2f..0000000000 --- a/core/function-impl/mogo-core-function-notice/src/main/java/com/mogo/eagle/core/function/notice/receiver/NoticeReceiver.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.mogo.eagle.core.function.notice.receiver; - -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; - -/** - * @author Jing - * @description push云公告消息接收 - * @since: 10/27/21 - */ -public class NoticeReceiver extends BroadcastReceiver { - private Context mContext; - - @Override - public void onReceive(Context context, Intent intent) { - mContext = context; - } -} diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/constants/MogoServicePaths.java b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/constants/MogoServicePaths.java index 97c7094d5b..c44ef7d437 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/constants/MogoServicePaths.java +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/constants/MogoServicePaths.java @@ -361,4 +361,11 @@ public class MogoServicePaths { @Keep @Deprecated public static final String PATH_AUTO_PILOT = "/auto_pilot/api"; + + /** + * 云公告 模块 + */ + @Keep + @Deprecated + public static final String PATH_AI_NOTICE = "/ai/notice"; } diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/notice/IMoGoNoticeListener.java b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/notice/IMoGoNoticeListener.java deleted file mode 100644 index 50ca9f3333..0000000000 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/notice/IMoGoNoticeListener.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.mogo.eagle.core.function.api.notice; - -/** - * @author Jing - * @description 云公告监听者 - * @since: 10/27/21 - */ -public interface IMoGoNoticeListener { - -} diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/notice/IMoGoNoticeProvider.java b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/notice/IMoGoNoticeProvider.java new file mode 100644 index 0000000000..59ec7f1081 --- /dev/null +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/notice/IMoGoNoticeProvider.java @@ -0,0 +1,12 @@ +package com.mogo.eagle.core.function.api.notice; + +import com.mogo.eagle.core.function.api.base.IMoGoFunctionProvider; + +/** + * @author Jing + * @description 云公告监听者 + * @since: 10/27/21 + */ +public interface IMoGoNoticeProvider extends IMoGoFunctionProvider { + +} diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/notice/CallerNoticeManager.java b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/notice/CallerNoticeManager.java index 791a87f2a4..03094b70e2 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/notice/CallerNoticeManager.java +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/notice/CallerNoticeManager.java @@ -1,6 +1,6 @@ package com.mogo.eagle.core.function.call.notice; -import com.mogo.eagle.core.function.api.notice.IMoGoNoticeListener; +import com.mogo.eagle.core.function.api.notice.IMoGoNoticeProvider; import com.mogo.eagle.core.function.call.base.CallerBase; import java.util.HashMap; @@ -9,12 +9,12 @@ import java.util.HashMap; * @author xiaoyuzhou */ public class CallerNoticeManager extends CallerBase { - private HashMap mListeners = new HashMap<>(); + private HashMap mListeners = new HashMap<>(); /** * 添加监听者 */ - void addListener(String tag, IMoGoNoticeListener listener) { + void addListener(String tag, IMoGoNoticeProvider listener) { mListeners.put(tag, listener); }