opt'
This commit is contained in:
@@ -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" );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user