This commit is contained in:
wangcongtao
2020-06-09 14:36:09 +08:00
parent 8f20329b33
commit 61738bcf68
19 changed files with 194 additions and 114 deletions

View File

@@ -9,6 +9,7 @@ import androidx.annotation.Nullable;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.mogo.commons.device.Devices;
import com.mogo.commons.mvp.MvpFragment;
import com.mogo.commons.voice.AIAssist;
import com.mogo.module.apps.adapter.AppIndicatorAdapter;
@@ -17,6 +18,7 @@ import com.mogo.module.apps.applaunch.AppLauncher;
import com.mogo.module.apps.applaunch.BaseAppLauncher;
import com.mogo.module.apps.applaunch.InternalFunctionLauncher;
import com.mogo.module.apps.model.NavigatorApps;
import com.mogo.module.apps.view.OnAiAssistClickListener;
import java.util.HashMap;
import java.util.Map;
@@ -63,10 +65,7 @@ public class AppNavigatorFragment extends MvpFragment< AppNavigatorView, AppNavi
mAIAssistContainer = findViewById( R.id.module_apps_id_ai_assist_container );
mAIAssist = findViewById( R.id.module_apps_id_ai_assist );
mAnim.initAnim( mAIAssist );
mAIAssist.setOnClickListener( view -> {
AIAssist.startAssistant( getContext() );
trackNavigatorClickEvent( 5 );
} );
mAIAssist.setOnClickListener( new OnAiAssistClickListener() );
mAIAssistContainer.setOnClickListener( view -> {
mAIAssist.performClick();
} );

View File

@@ -5,18 +5,14 @@ import android.content.Intent;
import androidx.annotation.NonNull;
import androidx.lifecycle.LifecycleOwner;
import com.alibaba.android.arouter.launcher.ARouter;
import com.mogo.commons.debug.DebugConfig;
import com.mogo.commons.mvp.Presenter;
import com.mogo.commons.voice.AIAssist;
import com.mogo.commons.voice.IMogoVoiceCmdCallBack;
import com.mogo.map.navi.IMogoNaviListener2;
import com.mogo.module.apps.model.AppsModel;
import com.mogo.module.apps.utils.LaunchUtils;
import com.mogo.service.MogoServicePaths;
import com.mogo.service.intent.IMogoIntentListener;
import com.mogo.service.intent.IMogoIntentManager;
import com.mogo.service.statusmanager.IMogoStatusManager;
import com.mogo.utils.LaunchUtils;
import com.mogo.utils.TipToast;
import org.json.JSONException;

View File

@@ -10,11 +10,9 @@ import com.alibaba.android.arouter.launcher.ARouter;
import com.mogo.commons.mvp.Presenter;
import com.mogo.commons.voice.AIAssist;
import com.mogo.commons.voice.IMogoVoiceCmdCallBack;
import com.mogo.module.apps.utils.LaunchUtils;
import com.mogo.service.MogoServicePaths;
import com.mogo.service.intent.IMogoIntentListener;
import com.mogo.service.intent.IMogoIntentManager;
import com.mogo.utils.TipToast;
import org.json.JSONException;
import org.json.JSONObject;

View File

@@ -5,7 +5,7 @@ import android.content.Context;
import com.mogo.module.apps.AppServiceHandler;
import com.mogo.module.apps.R;
import com.mogo.module.apps.model.AppInfo;
import com.mogo.module.apps.utils.LaunchUtils;
import com.mogo.utils.LaunchUtils;
import com.mogo.utils.TipToast;
import com.mogo.utils.logger.Logger;

View File

@@ -1,32 +0,0 @@
package com.mogo.module.apps.utils;
import android.content.Context;
import android.content.Intent;
import com.mogo.module.apps.R;
import com.mogo.utils.TipToast;
/**
* @author congtaowang
* @since 2020-02-03
* <p>
* 描述
*/
public class LaunchUtils {
/**
* 通过包名启动app
*
* @param context
* @param pkg 包名
*/
public static void launchByPkg( Context context, String pkg ) throws Exception {
Intent intent = getLaunchIntentForPackage( context, pkg );
intent.addFlags( Intent.FLAG_ACTIVITY_NEW_TASK );
context.startActivity( intent );
}
public static Intent getLaunchIntentForPackage( Context context, String pkg ) {
return context.getPackageManager().getLaunchIntentForPackage( pkg );
}
}

View File

@@ -0,0 +1,68 @@
package com.mogo.module.apps.view;
import android.view.View;
import com.mogo.commons.device.Devices;
import com.mogo.commons.voice.AIAssist;
import com.mogo.module.apps.AppServiceHandler;
import com.mogo.utils.TipToast;
import java.util.HashMap;
import java.util.Map;
public
/**
* @author congtaowang
* @since 2020/6/9
*
* 如果已经激活设备则按照正常流程打开语音否则需要连续点击5下才能打开
*/
class OnAiAssistClickListener implements View.OnClickListener {
public static final int TOTAL_CLICK_AMOUNT = 5;
public static final int INTERVAL = 2_000 / TOTAL_CLICK_AMOUNT;
private int mClickCounter = 0;
private long mLastClickTime = 0L;
private boolean mDebugModeOpen = false;
@Override
public void onClick( View v ) {
if ( Devices.isBind() ) {
AIAssist.startAssistant( v.getContext() );
trackNavigatorClickEvent( 5 );
} else {
if ( mDebugModeOpen ) {
AIAssist.startAssistant( v.getContext(), 2 );
trackNavigatorClickEvent( 5 );
return;
}
if ( mClickCounter == 0 ) {
mLastClickTime = System.currentTimeMillis();
mClickCounter++;
} else {
if ( mClickCounter == TOTAL_CLICK_AMOUNT && !mDebugModeOpen ) {
AIAssist.startAssistant( v.getContext(), 2 );
TipToast.shortTip( "开启语音调试" );
mClickCounter = 0;
mLastClickTime = 0L;
mDebugModeOpen = true;
} else if ( System.currentTimeMillis() - mLastClickTime > INTERVAL ) {
mClickCounter = 0;
TipToast.shortTip( "请在2秒内打开调试模式" );
} else {
mClickCounter++;
}
mLastClickTime = System.currentTimeMillis();
}
}
}
private void trackNavigatorClickEvent( int type ) {
final Map< String, Object > properties = new HashMap<>();
properties.put( "type", type );
AppServiceHandler.getMogoAnalytics().track( "Launcher_APP_Icon", properties );
}
}