diff --git a/app_ipc_monitoring/build.gradle b/app_ipc_monitoring/build.gradle index 5b806618c1..ec986aca15 100644 --- a/app_ipc_monitoring/build.gradle +++ b/app_ipc_monitoring/build.gradle @@ -6,7 +6,7 @@ android { compileSdkVersion rootProject.ext.android.compileSdkVersion defaultConfig { applicationId "com.zhidao.adas.client" - minSdkVersion 21 + minSdkVersion rootProject.ext.android.minSdkVersion targetSdkVersion 25 multiDexEnabled true versionCode 1 @@ -87,7 +87,6 @@ dependencies { implementation rootProject.ext.dependencies.gson implementation project(':libraries:mogo-adas') implementation project(':libraries:mogo-adas-data') - implementation project(':libraries:mogo-adas-other') // implementation 'com.zhidao.support.adas:high:2.8.0.0' // implementation 'com.zhjt.mogo.adas.data:adas-data:2.6.6.0' // compileOnly project(':core:mogo-core-data') diff --git a/app_ipc_monitoring/mogo-adas-connect-status/.gitignore b/app_ipc_monitoring/mogo-adas-connect-status/.gitignore deleted file mode 100644 index 796b96d1c4..0000000000 --- a/app_ipc_monitoring/mogo-adas-connect-status/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/build diff --git a/app_ipc_monitoring/mogo-adas-connect-status/README.md b/app_ipc_monitoring/mogo-adas-connect-status/README.md deleted file mode 100644 index 64f679824d..0000000000 --- a/app_ipc_monitoring/mogo-adas-connect-status/README.md +++ /dev/null @@ -1,2 +0,0 @@ -#### 说明 -# ADAS 连接状态 LIB diff --git a/app_ipc_monitoring/mogo-adas-connect-status/build.gradle b/app_ipc_monitoring/mogo-adas-connect-status/build.gradle deleted file mode 100644 index 1090744871..0000000000 --- a/app_ipc_monitoring/mogo-adas-connect-status/build.gradle +++ /dev/null @@ -1,106 +0,0 @@ -plugins { - id 'com.android.library' - id 'maven' -} -//ext { -// //自动驾驶产品版本号 -// AP_VERSION = "2.6.0" -//} -android { - compileSdkVersion rootProject.ext.android.compileSdkVersion - // buildToolsVersion rootProject.ext.android.buildToolsVersion - - defaultConfig { - minSdkVersion rootProject.ext.android.minSdkVersion - targetSdkVersion rootProject.ext.android.targetSdkVersion -// versionCode Integer.valueOf(VERSION_CODE) -// versionName getValueFromRootProperties("${project.name.replace("-", "_").toUpperCase()}_VERSION") -// -// buildConfigField "String", "AP_VERSION", "\"${AP_VERSION}\"" - versionCode rootProject.versionCode as int - versionName rootProject.versionName - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - consumerProguardFiles 'consumer-rules.pro' - } - - buildTypes { - release { - minifyEnabled false - proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' - } - } - - sourceSets { - main { - jniLibs.srcDirs = ['libs'] -// java { -// srcDir 'src/main/java' -// } -// -// proto { -// srcDir 'src/main/proto' -// include '**/*.proto' -// } - } - } -// -// protobuf { -// protoc { -// artifact = 'com.google.protobuf:protoc:3.6.1' -// } -// -// generateProtoTasks { -// all().each { task -> -// task.builtins { -// remove java -// } -// task.builtins { -// java {} -// } -// } -// } -// } - -} - -dependencies { - implementation fileTree(dir: 'libs', include: ['*.jar']) - implementation project(':libraries:mogo-adas') - implementation rootProject.ext.dependencies.androidxrecyclerview -} - -task androidSourcesJar(type: Jar) { - classifier = 'sources' - from android.sourceSets.main.java.srcDirs -} -//配置需要上传到maven仓库的文件 -artifacts { - archives androidSourcesJar -} - -uploadArchives { - repositories.mavenDeployer { - repository(url: RELEASE_REPOSITORY_URL) { - authentication(userName: USERNAME, password: PASSWORD) - } - snapshotRepository(url: SNAPSHOT_REPOSITORY_URL) { - authentication(userName: USERNAME, password: PASSWORD) - } - pom.groupId = ADAS_LIB_GROUP - pom.artifactId = ADAS_LIB_POM_ARTIFACT_ID - pom.version = versionName + ADAS_LIB_CHILD_VERSION - pom.whenConfigured { pom -> - pom.dependencies.forEach { dep -> - if (dep.getVersion() == "unspecified") { - println("--修改pom.xml中的dependies模块--->>" + dep.getArtifactId()) - if (dep.getArtifactId() == ADAS_DATA_LIB_POM_ARTIFACT_ID) { - dep.setGroupId(ADAS_DATA_LIB_GROUP) - dep.setVersion(versionName + ADAS_DATA_LIB_CHILD_VERSION) - } - } - - } - - } - } -} \ No newline at end of file diff --git a/app_ipc_monitoring/mogo-adas-connect-status/consumer-rules.pro b/app_ipc_monitoring/mogo-adas-connect-status/consumer-rules.pro deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/app_ipc_monitoring/mogo-adas-connect-status/gradle.properties b/app_ipc_monitoring/mogo-adas-connect-status/gradle.properties deleted file mode 100644 index 0d60ce4aee..0000000000 --- a/app_ipc_monitoring/mogo-adas-connect-status/gradle.properties +++ /dev/null @@ -1,3 +0,0 @@ -GROUP=com.mogo.adas -POM_ARTIFACT_ID=mogo-adas -VERSION_CODE=1 \ No newline at end of file diff --git a/app_ipc_monitoring/mogo-adas-connect-status/proguard-rules.pro b/app_ipc_monitoring/mogo-adas-connect-status/proguard-rules.pro deleted file mode 100644 index f10712073b..0000000000 --- a/app_ipc_monitoring/mogo-adas-connect-status/proguard-rules.pro +++ /dev/null @@ -1,26 +0,0 @@ -# Add project specific ProGuard rules here. -# You can control the set of applied configuration files using the -# proguardFiles setting in build.gradle. -# -# For more details, see -# http://developer.android.com/guide/developing/tools/proguard.html - -# If your project uses WebView with JS, uncomment the following -# and specify the fully qualified class name to the JavaScript interface -# class: -#-keepclassmembers class fqcn.of.javascript.interface.for.webview { -# public *; -#} - -# Uncomment this to preserve the line number information for -# debugging stack traces. -#-keepattributes SourceFile,LineNumberTable - -# If you keep the line number information, uncomment this to -# hide the original source file name. -#-renamesourcefileattribute SourceFile - -#-----MogoMap----- --keep class com.mogo.map.MogoNavi{ - private (); -} diff --git a/app_ipc_monitoring/mogo-adas-connect-status/src/main/AndroidManifest.xml b/app_ipc_monitoring/mogo-adas-connect-status/src/main/AndroidManifest.xml deleted file mode 100644 index 9c1d6e5204..0000000000 --- a/app_ipc_monitoring/mogo-adas-connect-status/src/main/AndroidManifest.xml +++ /dev/null @@ -1,3 +0,0 @@ - - diff --git a/app_ipc_monitoring/mogo-adas-connect-status/src/main/java/com/zhidao/support/adas/high/AdasConnectStatusManager.java b/app_ipc_monitoring/mogo-adas-connect-status/src/main/java/com/zhidao/support/adas/high/AdasConnectStatusManager.java deleted file mode 100644 index 81f6e1ae55..0000000000 --- a/app_ipc_monitoring/mogo-adas-connect-status/src/main/java/com/zhidao/support/adas/high/AdasConnectStatusManager.java +++ /dev/null @@ -1,66 +0,0 @@ -package com.zhidao.support.adas.high; - -import android.app.Activity; - -import com.zhidao.support.adas.high.common.ConnectStatusTask; -import com.zhidao.support.adas.high.widget.ConnectStatusFloatWindow; - -/** - * @ProjectName: lib-adas-fpga - * @Package: com.zhidao.lib.adas.high - * @ClassName: AdasManager - * @Description: java类作用描述 - * @Author: fenghl - * @CreateDate: 2020/2/7 13:13 - * @UpdateUser: 更新者: - * @UpdateDate: 2020/2/7 13:13 - * @UpdateRemark: 更新说明: - * @Version: 1.0 - */ -public class AdasConnectStatusManager { - private static volatile AdasConnectStatusManager ourInstance; - - private ConnectStatusFloatWindow floatWindow; - - public static AdasConnectStatusManager getInstance() { - if (ourInstance == null) { - synchronized (AdasConnectStatusManager.class) { - if (ourInstance == null) { - ourInstance = new AdasConnectStatusManager(); - } - } - } - return ourInstance; - } - - private AdasConnectStatusManager() { - - } - - - /** - * 展示连接历史 - * - * @param activity - */ - public void showConnectStatusFloatWindow(Activity activity) { - if (floatWindow == null) { - floatWindow = new ConnectStatusFloatWindow(activity, ConnectStatusTask.getInstance().getList(), new ConnectStatusFloatWindow.OnConnectStatusFloatWindowListener() { - @Override - public void onClose() { - closeConnectStatusFloatWindow(); - } - }); - floatWindow.showFloatWindow(); - } else { - closeConnectStatusFloatWindow(); - } - } - - private void closeConnectStatusFloatWindow() { - floatWindow.hideFloatWindow(); - floatWindow = null; - } - - -} diff --git a/app_ipc_monitoring/mogo-adas-connect-status/src/main/java/com/zhidao/support/adas/high/bean/IPCConnectState.java b/app_ipc_monitoring/mogo-adas-connect-status/src/main/java/com/zhidao/support/adas/high/bean/IPCConnectState.java deleted file mode 100644 index b416ec0531..0000000000 --- a/app_ipc_monitoring/mogo-adas-connect-status/src/main/java/com/zhidao/support/adas/high/bean/IPCConnectState.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.zhidao.support.adas.high.bean; - -import androidx.annotation.ColorRes; - -public class IPCConnectState { - public final String status; - @ColorRes - public final int color; - - public IPCConnectState(String status, @ColorRes int color) { - this.status = status; - this.color = color; - } - - -} diff --git a/app_ipc_monitoring/mogo-adas-connect-status/src/main/java/com/zhidao/support/adas/high/common/ConnectStatusTask.java b/app_ipc_monitoring/mogo-adas-connect-status/src/main/java/com/zhidao/support/adas/high/common/ConnectStatusTask.java deleted file mode 100644 index daa5818a8c..0000000000 --- a/app_ipc_monitoring/mogo-adas-connect-status/src/main/java/com/zhidao/support/adas/high/common/ConnectStatusTask.java +++ /dev/null @@ -1,382 +0,0 @@ -package com.zhidao.support.adas.high.common; - -import android.os.Environment; -import android.text.TextUtils; - -import com.zhidao.support.adas.high.bean.IPCConnectState; - -import java.io.BufferedWriter; -import java.io.File; -import java.io.FileReader; -import java.io.FileWriter; -import java.io.IOException; -import java.io.LineNumberReader; -import java.io.RandomAccessFile; -import java.nio.charset.StandardCharsets; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Date; -import java.util.List; -import java.util.Locale; -import java.util.concurrent.Future; -import java.util.concurrent.LinkedBlockingQueue; -import java.util.concurrent.atomic.AtomicBoolean; - -/** - * 连接状态存储任务 - */ -public class ConnectStatusTask { - private static final String TAG = ConnectStatusTask.class.getSimpleName(); - public static final String ROOT_PATH = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "mogo" + File.separator + "adas" + File.separator;//程序外部存储跟目录 - private static final String LOG_FILE_NAME = "ipc_connect_status.log";//文件名称 - private volatile static ConnectStatusTask INSTANCE; - private static final int MAX_LINES = 1000;//最大存储行数 - private static final int DEL_LINES = 500;//超过最大存储行数删除的行数 - private static final int EVERY_TIME_READ_LINES = 200;//每次读取最大行数 - private LinkedBlockingQueue queue; - private BufferedWriter buff = null; - private final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS", Locale.getDefault()); - private File file; - //是否写入本地 - private final AtomicBoolean isSave = new AtomicBoolean(false); - private Future future; - private final AtomicBoolean isInitRead = new AtomicBoolean(false);//是否已经读取过本地文件 - private final List onReadListeners = new ArrayList<>(); - private final List listLog = new ArrayList<>(); - - private ConnectStatusTask() { - queue = new LinkedBlockingQueue<>(); - init(false); - ThreadPoolManager.getsInstance().submit(new ReadThread()); - } - - public static ConnectStatusTask getInstance() { - if (INSTANCE == null) { - synchronized (ConnectStatusTask.class) { - if (INSTANCE == null) { - INSTANCE = new ConnectStatusTask(); - } - } - } - return INSTANCE; - } - - public List getList() { - return listLog; - } - - public void clear() { - init(true); - listLog.clear(); - if (onReadListeners.size() != 0) { - for (int i = 0; i < onReadListeners.size(); i++) { - onReadListeners.get(i).onRefresh(); - } - } - } - - - public void setIsLogSwitch(boolean isLogSwitch) { - this.isLogSwitch = isLogSwitch; - } - - public boolean isLogSwitch() { - return isLogSwitch; - } - - - public boolean isSdcardUse() { - boolean bl = false; - if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) { - bl = true; - } - return bl; - } - - private void init(boolean isClear) { - if (isSdcardUse()) { - try { - file = new File(ROOT_PATH + LOG_FILE_NAME); - if (isClear && file.exists()) { - file.delete(); - } - if (!file.exists()) { - if (!file.getParentFile().exists()) { - file.getParentFile().mkdirs(); - } - file.createNewFile(); - } - FileWriter fw = new FileWriter(file, true); - buff = new BufferedWriter(fw); - } catch (IOException e) { - e.printStackTrace(); - } - } - start(); - } - - public void start() { - if (future == null) { - future = ThreadPoolManager.getsInstance().submit(new WriteThread()); - } - } - - public void stop() { - queue.clear(); - if (future != null && !future.isCancelled()) { - future.cancel(true); - } - future = null; - closeBufferedWriter(); - } - - private void closeBufferedWriter() { - if (buff != null) { - try { - buff.flush(); - buff.close(); - } catch (IOException e) { - e.printStackTrace(); - } - buff = null; - } - - } - - public void save(String status) { - if (isLogSwitch) { - String time = sdf.format(new Date(System.currentTimeMillis())); - queue.add(time + "##" + status); - } - } - - private int getStatusColor(String connectStatus) { - if (connectStatus.contains("已连接")) { - return R.color.connect_status_connected; - } else if (connectStatus.contains("连接中") || connectStatus.contains("重连中")) { - return R.color.connect_status_connecting; - } else if (connectStatus.contains("正在搜索IP")) { - return R.color.connect_status_search_address; - } else if (connectStatus.contains("地址不可用或不合法")) { - return R.color.connect_status_disconnecting; - } else { - return R.color.connect_status_disconnected; - } - } - - - private synchronized void addList(String status) { - listLog.add(0, onParse(status)); - if (onReadListeners.size() != 0) { - for (OnReadListener listener : onReadListeners) { - listener.onRefresh(); - } - } - } - - private IPCConnectState onParse(String status) { - status = status.replace("##", "\n"); - return new IPCConnectState(status, getStatusColor(status)); - } - - //写入 - public class WriteThread implements Runnable { - int lineNum = -1; - - @Override - public void run() { -// L.i(TAG, "是否是主线程=" + Utils.isMainThread()); - if (lineNum == -1) { - lineNum = lineNumber(); - } - CupidLogUtils.i(TAG, "初始化获得的行数=" + lineNum); - synchronized (this) { - while (!Thread.currentThread().isInterrupted()) { - try { - String data = queue.take(); - data = data == null ? "主动断开连接" : data; -// addList(data, true); -// L.i(TAG, "写入Log---" + data); - if (buff != null && !TextUtils.isEmpty(data)) { - buff.write(data); - buff.newLine(); - buff.flush(); - lineNum++; - if (lineNum == MAX_LINES + 1 + DEL_LINES) { - List delLines = readAndRemoveFirstLines(); - for (String str : delLines) { - CupidLogUtils.i(TAG, "被删除的数据=" + str); - } - lineNum = lineNum - DEL_LINES; - } - } - } catch (Exception e) { - e.printStackTrace(); - } - } - } - - } - } - - - private List readAndRemoveFirstLines() { - List strList = new ArrayList<>(); - RandomAccessFile raf = null; - try { - raf = new RandomAccessFile(file, "rw"); - //Initial write position - long writePosition = raf.getFilePointer(); - for (int i = 0; i < DEL_LINES; i++) { - String line = raf.readLine(); - if (line == null) { - break; - } - strList.add(new String(line.getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8)); - } - // Shift the next lines upwards. - long readPosition = raf.getFilePointer(); - - byte[] buff = new byte[1024]; - int n; - while (-1 != (n = raf.read(buff))) { - raf.seek(writePosition); - raf.write(buff, 0, n); - readPosition += n; - writePosition += n; - raf.seek(readPosition); - } - raf.setLength(writePosition); - } catch (IOException e) { - e.printStackTrace(); - } finally { - try { - if (raf != null) { - raf.close(); - } - } catch (IOException e) { - e.printStackTrace(); - } - } - - return strList; - } - - - //获取文件总行数 - private int lineNumber() { - int lineNumber = 0; - if (file != null) - try { - LineNumberReader lineNumberReader = new LineNumberReader(new FileReader(file)); - lineNumberReader.skip(Long.MAX_VALUE); - //注意加1,实际上是读取换行符,所以需要+1 - lineNumber = lineNumberReader.getLineNumber() + 1; - } catch (IOException e) { - e.printStackTrace(); - } - return lineNumber; - } - - - //读取日志 - public void registerReadListener(OnReadListener onReadListener) { - if (onReadListener != null) { - if (!onReadListeners.contains(onReadListener)) { - onReadListeners.add(onReadListener); - } - - } - } - - public void unRegisterReadListener(OnReadListener onReadListener) { - if (onReadListener != null) - onReadListeners.remove(onReadListener); - } - - - public interface OnReadListener { - void onRefresh(); - } - - //读取 - public class ReadThread implements Runnable { - RandomAccessFile rf = null; - long len; - long start; - long nextend; - long readLine = 0; - boolean isRead = true; - int lineNum = -1; - - @Override - public void run() { -// L.i(TAG, "是否是主线程=" + Utils.isMainThread()); - if (lineNum == -1) { - lineNum = lineNumber(); - } - synchronized (this) { - try { - if (rf == null && file != null) { - rf = new RandomAccessFile(file, "r"); - len = rf.length(); - start = rf.getFilePointer(); - nextend = start + len - 1; - rf.seek(nextend); - } -// L.i(TAG, "len=" + len); -// L.i(TAG, "start=" + start); -// L.i(TAG, "nextend=" + nextend); - String line; - int c = -1; - while (isRead && nextend > start) { - c = rf.read(); - if (c == '\n' || c == '\r') { - line = rf.readLine(); - if (!TextUtils.isEmpty(line)) { - String log = new String(line.getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8); - listLog.add(onParse(log)); - } - nextend--; - readLine++; - } - nextend--; - rf.seek(nextend); - if (nextend == 0) {// 当文件指针退至文件开始处,输出第一行 - String log = new String(rf.readLine().getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8); - listLog.add(onParse(log)); - readLine++; - } - if (readLine == EVERY_TIME_READ_LINES + 1) { - isRead = false; - } -// L.i(TAG, "readLine=" + readLine); - } - Collections.reverse(listLog); - if (onReadListeners.size() != 0) { - for (int i = 0; i < onReadListeners.size(); i++) { - onReadListeners.get(i).onRefresh(); - } - - } - } catch (IOException e) { - e.printStackTrace(); - } finally { - try { - if (rf != null) - rf.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } - isInitRead.set(true); - } - - } - - - } - - -} \ No newline at end of file diff --git a/app_ipc_monitoring/mogo-adas-connect-status/src/main/java/com/zhidao/support/adas/high/widget/ConnectStatusAdapter.java b/app_ipc_monitoring/mogo-adas-connect-status/src/main/java/com/zhidao/support/adas/high/widget/ConnectStatusAdapter.java deleted file mode 100644 index 55c5bd4cd4..0000000000 --- a/app_ipc_monitoring/mogo-adas-connect-status/src/main/java/com/zhidao/support/adas/high/widget/ConnectStatusAdapter.java +++ /dev/null @@ -1,86 +0,0 @@ -package com.zhidao.support.adas.high.widget; - -import android.content.Context; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.EditText; -import android.widget.TextView; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.zhidao.support.adas.high.R; -import com.zhidao.support.adas.high.bean.IPCConnectState; - -import java.util.List; -import java.util.Locale; - - -/** - * 连接状态 - */ -public class ConnectStatusAdapter extends RecyclerView.Adapter { - private static final String POS = "%03d. "; - private List mDatas; - private Context mContext; - - public void setData(List mDatas) { - this.mDatas = mDatas; - } - - public void refreshView() { -// notifyItemChanged(mDatas.size()-1,0); - notifyItemRangeChanged(0, getItemCount()); - } - - @Override - public long getItemId(int position) { - return position; - } - - - @NonNull - @Override - public InfoViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int viewType) { - mContext = viewGroup.getContext(); - View remoteView = LayoutInflater.from(mContext).inflate(R.layout.item_status, viewGroup, false); - return new InfoViewHolder(remoteView); - - } - - @Override - public void onBindViewHolder(@NonNull InfoViewHolder viewHolder, int position) { - if (mDatas != null) { - IPCConnectState data = mDatas.get(position); - viewHolder.id.setText(String.format(Locale.getDefault(), POS, getItemCount() - position)); - viewHolder.editText.setText(data.status); - viewHolder.editText.setTextColor(mContext.getResources().getColor(data.color)); - } - - } - - - @Override - public int getItemCount() { - return mDatas == null ? 0 : mDatas.size(); - } - - - class InfoViewHolder extends RecyclerView.ViewHolder { - EditText editText; - TextView id; - - public InfoViewHolder(View itemView) { - super(itemView); - editText = itemView.findViewById(R.id.log); - id = itemView.findViewById(R.id.id); - itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - - } - }); - } - } -} \ No newline at end of file diff --git a/app_ipc_monitoring/mogo-adas-connect-status/src/main/java/com/zhidao/support/adas/high/widget/ConnectStatusFloatWindow.java b/app_ipc_monitoring/mogo-adas-connect-status/src/main/java/com/zhidao/support/adas/high/widget/ConnectStatusFloatWindow.java deleted file mode 100644 index 3e28199f85..0000000000 --- a/app_ipc_monitoring/mogo-adas-connect-status/src/main/java/com/zhidao/support/adas/high/widget/ConnectStatusFloatWindow.java +++ /dev/null @@ -1,195 +0,0 @@ -package com.zhidao.support.adas.high.widget; - -import android.app.Activity; -import android.content.Context; -import android.graphics.PixelFormat; -import android.os.Build; -import android.util.DisplayMetrics; -import android.view.Gravity; -import android.view.LayoutInflater; -import android.view.MotionEvent; -import android.view.View; -import android.view.WindowManager; -import android.widget.ImageView; -import android.widget.Toast; - -import androidx.recyclerview.widget.RecyclerView; - -import com.zhidao.support.adas.high.R; -import com.zhidao.support.adas.high.bean.IPCConnectState; - -import java.lang.reflect.Field; -import java.util.List; - -/** - * @author xuxinchao - * @description - * @since: 2022/4/20 - */ -public class ConnectStatusFloatWindow implements View.OnTouchListener { - - - private final Activity mContext; - private WindowManager.LayoutParams mWindowParams; - private WindowManager mWindowManager; - - private View mFloatLayout; - private ImageView btn_drag; - private float mInViewX; - private float mInViewY; - private float mDownInScreenX; - private float mDownInScreenY; - private float mInScreenX; - private float mInScreenY; - private RecyclerView rv_status; - private ConnectStatusAdapter adapter; - private List list; - private OnConnectStatusFloatWindowListener listener; - - public interface OnConnectStatusFloatWindowListener { - void onClose(); - } - - public ConnectStatusFloatWindow(Activity context, List list, OnConnectStatusFloatWindowListener listener) { - this.mContext = context; - this.list = list; - this.listener = listener; - initFloatWindow(); - } - - public void refreshView() { - if (adapter != null) { - adapter.refreshView(); - } - } - - private void initRV() { - //创建默认的线性LayoutManager 横向的GridLayoutManager - MyLinearLayoutManager linearLayoutManager = new MyLinearLayoutManager(mContext); -// linearLayoutManager.setStackFromEnd(true);//列表再底部开始展示,反转后由上面开始展示 -// linearLayoutManager.setReverseLayout(true);//列表翻转 - rv_status.setLayoutManager(linearLayoutManager); - //如果可以确定每个item的高度是固定的,设置这个选项可以提高性能 - rv_status.setHasFixedSize(false); - rv_status.setNestedScrollingEnabled(false); - adapter = new ConnectStatusAdapter(); - adapter.setHasStableIds(true); - rv_status.setAdapter(adapter); - adapter.setData(list); - } - - private void initFloatWindow() { - LayoutInflater inflater = LayoutInflater.from(mContext); - if (inflater == null) - return; - mFloatLayout = inflater.inflate(R.layout.layout_float, null); - rv_status = mFloatLayout.findViewById(R.id.rv_status); - View btn_close = mFloatLayout.findViewById(R.id.btn_close); - View btn_help = mFloatLayout.findViewById(R.id.btn_help); - View btn_save = mFloatLayout.findViewById(R.id.btn_save); - btn_drag = mFloatLayout.findViewById(R.id.btn_drag); - btn_close.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - if (listener != null) - listener.onClose(); - } - }); - btn_help.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - Toast.makeText(v.getContext(), "功能提示\n1.将数连接状态写入本地;\n2.清空列表以及保存到本地的数据;\n3.拖拽;\n4.帮助;\n5.关闭此窗口;", Toast.LENGTH_LONG).show(); - } - }); - btn_save.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - - } - }); - mFloatLayout.setOnTouchListener(this); - initRV(); - mWindowParams = new WindowManager.LayoutParams(); - mWindowManager = (WindowManager) mContext.getSystemService(Context.WINDOW_SERVICE); - if (Build.VERSION.SDK_INT >= 26) {//8.0新特性 - mWindowParams.type = WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY; - } else { - mWindowParams.type = WindowManager.LayoutParams.TYPE_SYSTEM_ALERT; - } - - mWindowManager = mContext.getWindowManager(); - - mWindowParams.format = PixelFormat.RGBA_8888; - mWindowParams.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE; - mWindowParams.gravity = Gravity.START | Gravity.TOP; - mWindowParams.width = WindowManager.LayoutParams.WRAP_CONTENT; - mWindowParams.height = WindowManager.LayoutParams.WRAP_CONTENT; - mWindowParams.alpha = 0.82F; - } - - @Override - public boolean onTouch(View view, MotionEvent motionEvent) { - return floatLayoutTouch(motionEvent); - } - - private boolean floatLayoutTouch(MotionEvent motionEvent) { - switch (motionEvent.getAction()) { - case MotionEvent.ACTION_DOWN: - // 获取相对View的坐标,即以此View左上角为原点 - mInViewX = motionEvent.getX(); - mInViewY = motionEvent.getY(); - // 获取相对屏幕的坐标,即以屏幕左上角为原点 - mDownInScreenX = motionEvent.getRawX(); - mDownInScreenY = motionEvent.getRawY() - BarUtils.getStatusBarHeight(); - mInScreenX = motionEvent.getRawX(); - mInScreenY = motionEvent.getRawY() - BarUtils.getStatusBarHeight(); - btn_drag.setSelected(true); - break; - case MotionEvent.ACTION_MOVE: - // 更新浮动窗口位置参数 - mInScreenX = motionEvent.getRawX(); - mInScreenY = motionEvent.getRawY() - BarUtils.getStatusBarHeight(); - mWindowParams.x = (int) (mInScreenX - mInViewX); - mWindowParams.y = (int) (mInScreenY - mInViewY); - // 手指移动的时候更新小悬浮窗的位置 - mWindowManager.updateViewLayout(mFloatLayout, mWindowParams); - break; - case MotionEvent.ACTION_UP: - btn_drag.setSelected(false); - // 如果手指离开屏幕时,xDownInScreen和xInScreen相等,且yDownInScreen和yInScreen相等,则视为触发了单击事件。 - if (mDownInScreenX == mInScreenX && mDownInScreenY == mInScreenY) { - - } - break; - } - return true; - } - - - public void showFloatWindow() { - if (mFloatLayout.getParent() == null) { - DisplayMetrics metrics = new DisplayMetrics(); - // 默认固定位置,靠屏幕右边缘的中间 - mWindowManager.getDefaultDisplay().getMetrics(metrics); - mWindowParams.x = metrics.widthPixels; - mWindowParams.y = metrics.heightPixels; - mWindowManager.addView(mFloatLayout, mWindowParams); - } - } - - - public void hideFloatWindow() { - if (mFloatLayout.getParent() != null) - mWindowManager.removeView(mFloatLayout); - } - - public void setFloatLayoutAlpha(boolean alpha) { - if (alpha) - mFloatLayout.setAlpha((float) 0.5); - else - mFloatLayout.setAlpha(1); - } - - private int sbar = -1; - -} diff --git a/app_ipc_monitoring/mogo-adas-connect-status/src/main/java/com/zhidao/support/adas/high/widget/MyLinearLayoutManager.java b/app_ipc_monitoring/mogo-adas-connect-status/src/main/java/com/zhidao/support/adas/high/widget/MyLinearLayoutManager.java deleted file mode 100644 index b6e1846c84..0000000000 --- a/app_ipc_monitoring/mogo-adas-connect-status/src/main/java/com/zhidao/support/adas/high/widget/MyLinearLayoutManager.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.zhidao.support.adas.high.widget; - -import android.content.Context; -import android.util.AttributeSet; - -import androidx.recyclerview.widget.LinearLayoutManager; -import androidx.recyclerview.widget.RecyclerView; - -public class MyLinearLayoutManager extends LinearLayoutManager { - public MyLinearLayoutManager(Context context) { - super(context); - } - - public MyLinearLayoutManager(Context context, int orientation, boolean reverseLayout) { - super(context, orientation, reverseLayout); - } - - public MyLinearLayoutManager(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { - super(context, attrs, defStyleAttr, defStyleRes); - } - - @Override - public boolean supportsPredictiveItemAnimations() { - return false; - } - - @Override - public void onLayoutChildren(RecyclerView.Recycler recycler, RecyclerView.State state) { - //override this method and implement code as below - try { - super.onLayoutChildren(recycler, state); - } catch (Exception e) { - e.printStackTrace(); - } - } -} diff --git a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/ic_clear_false.xml b/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/ic_clear_false.xml deleted file mode 100644 index b4eee2bcdc..0000000000 --- a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/ic_clear_false.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/ic_clear_true.xml b/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/ic_clear_true.xml deleted file mode 100644 index 46f8b43ede..0000000000 --- a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/ic_clear_true.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/ic_close_false.xml b/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/ic_close_false.xml deleted file mode 100644 index 82d38b39b2..0000000000 --- a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/ic_close_false.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/ic_close_true.xml b/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/ic_close_true.xml deleted file mode 100644 index 56376ad184..0000000000 --- a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/ic_close_true.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/ic_drag_false.xml b/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/ic_drag_false.xml deleted file mode 100644 index 74a5841e78..0000000000 --- a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/ic_drag_false.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/ic_drag_true.xml b/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/ic_drag_true.xml deleted file mode 100644 index b57b9765f2..0000000000 --- a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/ic_drag_true.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/ic_help_false.xml b/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/ic_help_false.xml deleted file mode 100644 index 1bec997e8b..0000000000 --- a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/ic_help_false.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - diff --git a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/ic_help_true.xml b/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/ic_help_true.xml deleted file mode 100644 index 4b6ea31cbd..0000000000 --- a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/ic_help_true.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - diff --git a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/ic_save_false.xml b/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/ic_save_false.xml deleted file mode 100644 index cfcde358d0..0000000000 --- a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/ic_save_false.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/ic_save_true.xml b/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/ic_save_true.xml deleted file mode 100644 index 4f5899e1b9..0000000000 --- a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/ic_save_true.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/selector_clear.xml b/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/selector_clear.xml deleted file mode 100644 index 93ce351569..0000000000 --- a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/selector_clear.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/selector_close.xml b/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/selector_close.xml deleted file mode 100644 index c0b211a4be..0000000000 --- a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/selector_close.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/selector_drag.xml b/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/selector_drag.xml deleted file mode 100644 index e5f0d0ed7b..0000000000 --- a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/selector_drag.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/selector_help.xml b/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/selector_help.xml deleted file mode 100644 index f873bd66ce..0000000000 --- a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/selector_help.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/selector_save.xml b/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/selector_save.xml deleted file mode 100644 index f818021ab3..0000000000 --- a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/drawable/selector_save.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/layout/item_status.xml b/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/layout/item_status.xml deleted file mode 100644 index a4cfdf3b81..0000000000 --- a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/layout/item_status.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - diff --git a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/layout/layout_float.xml b/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/layout/layout_float.xml deleted file mode 100644 index 4215ac80e8..0000000000 --- a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/layout/layout_float.xml +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/values/colors.xml b/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/values/colors.xml deleted file mode 100644 index 1f6228713d..0000000000 --- a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/values/colors.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - #32CD32 - #DC143C - #FF00FF - #DAA520 - #1E90FF - diff --git a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/values/strings.xml b/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/values/strings.xml deleted file mode 100644 index 54d97e6cde..0000000000 --- a/app_ipc_monitoring/mogo-adas-connect-status/src/main/res/values/strings.xml +++ /dev/null @@ -1,3 +0,0 @@ - - adas-status - diff --git a/app_ipc_monitoring/other.zip b/app_ipc_monitoring/other.zip new file mode 100644 index 0000000000..9bfec749b2 Binary files /dev/null and b/app_ipc_monitoring/other.zip differ diff --git a/app_ipc_monitoring/src/main/AndroidManifest.xml b/app_ipc_monitoring/src/main/AndroidManifest.xml index 13164a794c..ef2a239c85 100644 --- a/app_ipc_monitoring/src/main/AndroidManifest.xml +++ b/app_ipc_monitoring/src/main/AndroidManifest.xml @@ -2,9 +2,12 @@ + + + + - @@ -20,9 +23,7 @@ - - @@ -63,6 +64,12 @@ android:theme="@style/AppTheme.NoActionBar"> + + + + + + + + +