2023-02-26 05:21:16 +00:00
|
|
|
package com.bg7yoz.ft8cn;
|
2023-03-24 16:43:34 +00:00
|
|
|
/**
|
|
|
|
* 呼号的哈希码列表。
|
|
|
|
* @author BGY70Z
|
|
|
|
* @date 2023-03-20
|
|
|
|
*/
|
2023-02-26 05:21:16 +00:00
|
|
|
|
|
|
|
import android.util.Log;
|
|
|
|
|
|
|
|
import java.util.HashMap;
|
|
|
|
|
|
|
|
public class MessageHashMap extends HashMap<Long,String> {
|
|
|
|
private static final String TAG = "MessageHashMap";
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 添加呼号和哈希码到列表
|
|
|
|
*
|
|
|
|
* @param hashCode 哈希码
|
|
|
|
* @param callsign 呼号
|
2023-03-24 16:43:34 +00:00
|
|
|
* @return false说明已经存在了
|
2023-02-26 05:21:16 +00:00
|
|
|
*/
|
|
|
|
public synchronized void addHash(long hashCode, String callsign) {
|
2023-03-24 16:43:34 +00:00
|
|
|
//if (callsign.length()<2){return;}
|
|
|
|
//if (){return;}
|
2023-02-26 05:21:16 +00:00
|
|
|
if (callsign.equals("CQ")||callsign.equals("QRZ")||callsign.equals("DE")){
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
if (hashCode == 0 || checkHash(hashCode)|| callsign.charAt(0) == '<') {
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
Log.d(TAG, String.format("addHash: callsign:%s ,hash:%x",callsign,hashCode ));
|
|
|
|
put(hashCode,callsign);
|
|
|
|
}
|
|
|
|
|
|
|
|
//检查是否存在这个hash码
|
|
|
|
public boolean checkHash(long hashCode) {
|
|
|
|
return get(hashCode)!=null;
|
2023-03-24 16:43:34 +00:00
|
|
|
// for (HashStruct hash : this) {
|
|
|
|
// if (hash.hashCode == hashCode) {
|
|
|
|
// return true;
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
// return false;
|
2023-02-26 05:21:16 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
//通过哈希码查呼号
|
|
|
|
public synchronized String getCallsign(long[] hashCode) {
|
|
|
|
for (long l : hashCode) {
|
|
|
|
if (checkHash(l)) {
|
|
|
|
return String.format("<%s>", get(l));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return "<...>";
|
|
|
|
}
|
|
|
|
}
|