This commit is contained in:
wangcongtao
2020-02-27 19:20:18 +08:00
parent 61424b3012
commit 522c12ada5
152 changed files with 113 additions and 5021 deletions

View File

@@ -20,6 +20,9 @@ import com.mogo.module.extensions.weather.WeatherModel;
import com.mogo.service.MogoServicePaths;
import com.mogo.service.statusmanager.IMogoMsgCenter;
import com.mogo.service.statusmanager.IMogoMsgCenterListener;
import com.mogo.service.statusmanager.IMogoStatusChangedListener;
import com.mogo.service.statusmanager.IMogoStatusManager;
import com.mogo.service.statusmanager.StatusDescriptor;
import com.mogo.utils.logger.Logger;
import java.util.ArrayDeque;
@@ -40,7 +43,9 @@ import java.util.Set;
* <p>
* 描述
*/
public class ExtensionsPresenter extends Presenter< ExtensionsView > implements WeatherCallback, IMogoMsgCenterListener {
public class ExtensionsPresenter extends Presenter< ExtensionsView > implements WeatherCallback,
IMogoMsgCenterListener,
IMogoStatusChangedListener {
private static final String TAG = "ExtensionsPresenter";
@@ -89,6 +94,8 @@ public class ExtensionsPresenter extends Presenter< ExtensionsView > implements
private IMogoMsgCenter mMsgCenter;
private IMogoStatusManager mStatusManager;
private boolean generateTipWordsSequence() {
if ( mAITipWords != null && mAITipWords.length > 0 ) {
Random random = new Random( System.currentTimeMillis() );
@@ -126,6 +133,10 @@ public class ExtensionsPresenter extends Presenter< ExtensionsView > implements
mMsgCenter = ( IMogoMsgCenter ) ARouter.getInstance().build( MogoServicePaths.PATH_MSG_CENTER ).navigation();
mMsgCenter.registerMsgCenterListener( this );
mHasTipWords = generateTipWordsSequence();
mStatusManager = ( IMogoStatusManager ) ARouter.getInstance().build( MogoServicePaths.PATH_STATUS_MANAGER ).navigation();
mStatusManager.registerStatusChangedListener( TAG, StatusDescriptor.APP_LIST_UI, this );
mStatusManager.registerStatusChangedListener( TAG, StatusDescriptor.SEARCH_UI, this );
}
/**
@@ -173,19 +184,38 @@ public class ExtensionsPresenter extends Presenter< ExtensionsView > implements
}
}
@Override
public void onStatusChanged( StatusDescriptor descriptor, boolean isTrue ) {
switch ( descriptor ) {
case APP_LIST_UI:
case SEARCH_UI:
changeAutoSwitchVoiceTipsWordsStatus( !isTrue );
break;
}
}
@Override
public void onResume( @NonNull LifecycleOwner owner ) {
super.onResume( owner );
if ( mHasTipWords ) {
mHandler.sendEmptyMessageDelayed( MSG_SWITCH_AI_TIP_WORDS, INTERVAL_TIME );
}
changeAutoSwitchVoiceTipsWordsStatus( true );
}
@Override
public void onPause( @NonNull LifecycleOwner owner ) {
super.onPause( owner );
if ( mHasTipWords ) {
changeAutoSwitchVoiceTipsWordsStatus( true );
}
private void changeAutoSwitchVoiceTipsWordsStatus(boolean autoChange){
if ( !mHasTipWords ) {
return;
}
if ( autoChange ) {
mHandler.sendEmptyMessageDelayed( MSG_SWITCH_AI_TIP_WORDS, INTERVAL_TIME );
Logger.d( TAG, "auto switch" );
} else {
mHandler.removeMessages( MSG_SWITCH_AI_TIP_WORDS );
Logger.d( TAG, "stop auto switch" );
}
}