save friends contacts.
authorTrillGates <williamtrillgates@gmail.com>
Tue, 13 Apr 2021 03:40:50 +0000 (11:40 +0800)
committerTrillGates <williamtrillgates@gmail.com>
Tue, 13 Apr 2021 03:40:50 +0000 (11:40 +0800)
app/src/main/java/com/enqualcomm/support/CoreService.java
app/src/main/java/com/enqualcomm/support/provider/FZDDatabaseHelper.java
app/src/main/java/com/enqualcomm/support/provider/FZDMembersProvider.java
app/src/main/java/com/ic/protocols/protocol_fzd.java

index a1c563b..fd46a34 100644 (file)
@@ -422,7 +422,7 @@ public class CoreService extends Service {
                 // CoreService.is_wifi_network_ok = true;
                 if (!runtime.isNoTurnOffWifiOnScreenOff()) {
                     //不关闭wifi when ScreenOff
-                    ICLogger.i("turnOffWifiForConnect");
+                    //ICLogger.i("turnOffWifiForConnect");
 //                    if (Util.isWifiIsOpen(runtime.getContextProxy().context,runtime))
 //                        Util.turnOffWifiForSleep(runtime.getContextProxy().context, runtime);
                 }
@@ -1771,10 +1771,11 @@ public class CoreService extends Service {
 
         @Override
         public void makeFriends() {
+            ICLogger.d("make friends...");
             //交朋友的话是根据配置去走蓝牙交友
             //还是位置交友
             //目前先实现位置交友的功能
-            protocol_fzd.makeFriendsByPosition(runtime);
+            protocol_fzd.makeFriendsByPosition(connection,runtime);
         }
 
         @Override
index 9d8cd84..2fc4aec 100644 (file)
@@ -102,7 +102,7 @@ public class FZDDatabaseHelper extends SQLiteOpenHelper {
                 tMembers +
                 " (" +
                 fID +
-                " integer primary key, " +
+                " text primary key, " +
                 fUserName +
                 " text, " +
                 fPhoneNum +
index c8311ae..24c9c87 100644 (file)
@@ -75,6 +75,10 @@ public class FZDMembersProvider extends ContentProvider {
         int match = sUriMatcher.match(uri);
         if (match == MATH_CODE_TABLE) {
             SQLiteDatabase writableDatabase = mDatabase.getWritableDatabase();
+            //判断是否有存在吧,确保唯一,删除再添加吧,否则也是添加不进去的
+            writableDatabase.delete(FZDDatabaseHelper.tMembers, FZDDatabaseHelper.mId + "=?", new String[]{
+                    values.getAsString(FZDDatabaseHelper.mId)
+            });
             long insert = writableDatabase.insert(FZDDatabaseHelper.tMembers, null, values);
             writableDatabase.close();
             getContext().getContentResolver().notifyChange(uri, null);
index f35f94a..5f6d596 100644 (file)
@@ -41,7 +41,6 @@ import com.enqualcomm.support.provider.FZDFollowProvider;
 import com.enqualcomm.support.provider.FZDMembersProvider;
 import com.enqualcomm.support.provider.FZDMessageProvider;
 import com.enqualcomm.support.provider.FZDSettingsProvider;
-import com.enqualcomm.support.service.Deliver;
 import com.enqualcomm.support.service.HeartRateManager;
 import com.enqualcomm.support.utils.AlarmHelper;
 import com.enqualcomm.support.utils.CameraUtil;
@@ -1389,9 +1388,9 @@ public class protocol_fzd {
     /**
      * 根据位置交朋友
      */
-    public static void makeFriendsByPosition(Runtime runtime) {
+    public static void makeFriendsByPosition(Connection connection, Runtime runtime) {
         StringMessage pp = PP(runtime);
-        Deliver.sendLocationMSG(pp);
+        connection.send(pp);
     }
 
     /***
@@ -1750,15 +1749,17 @@ public class protocol_fzd {
      *
      * @param data
      * @param mRuntime
-     * @param mConnection
      */
     private void handlerPPQ(String data, Runtime mRuntime) {
+        ICLogger.d("PPQ data ====> " + data);
         //解析数据,三个为一组
         String[] split = data.split(CMDSPLIT);
         if (split.length % 3 == 0) {
             //1,2,3,4,5,6,7
             for (int i = 0; i < split.length - 2; i += 3) {
                 String id = split[0];
+                //String test = Util.decodeUnicode2Utf8(id);
+                //ICLogger.d("test == > " + test);
                 String friendName = Util.decodeUnicode2Utf8(split[1]);
                 String phoneNum = split[2];
                 ICLogger.d("id == > " + id);
@@ -1773,7 +1774,25 @@ public class protocol_fzd {
                 contentValues.put(FZDDatabaseHelper.fUpdateTime, System.currentTimeMillis());
                 //结果有了,保存到内容提供者里头去.
                 mRuntime.getContextProxy().getResolver()
-                        .insert(Uri.parse(FZDMembersProvider.MEMBERS), contentValues);
+                        .insert(Uri.parse(FZDMembersProvider.MEMBERS),
+                                contentValues);
+            }
+            //通知UI更新
+            RemoteCallbackList<IFZDCallback> fzdCallback = mRuntime.getFZDCallback();
+            if (fzdCallback == null) {
+                return;
+            }
+            try {
+                int i = fzdCallback.beginBroadcast();
+                while (i > 0) {
+                    i--;
+                    IFZDCallback broadcastItem = fzdCallback.getBroadcastItem(i);
+                    broadcastItem.onFriendsListLoaded();
+                }
+            } catch (Exception e) {
+                e.printStackTrace();
+            } finally {
+                fzdCallback.finishBroadcast();
             }
         } else {
             //数据长度不对
@@ -1806,11 +1825,15 @@ public class protocol_fzd {
             result = 0;
             //成功的结果
             String[] split = data.split(CMDSPLIT);
-            String friendName = Util.decodeUnicode2Utf8(split[0]);
-            String friendId = split[1];
+            String friendId = split[0];
+            String friendName = Util.decodeUnicode2Utf8(split[1]);
+            String phoneNum = "";
+            if (split.length == 3) {
+                phoneNum = split[2];
+            }
             ICLogger.d("friend name is == > " + friendName);
             ICLogger.d("friend id is == > " + friendId);
-
+            ICLogger.d("phone number --> " + phoneNum);
         } else {
             //失败,具体拿出值
             try {
@@ -1828,9 +1851,9 @@ public class protocol_fzd {
         try {
             int i = fzdCallback.beginBroadcast();
             while (i > 0) {
+                i--;
                 IFZDCallback broadcastItem = fzdCallback.getBroadcastItem(i);
                 broadcastItem.onFriendsMakeResult(result);
-                i--;
             }
         } catch (Exception e) {
             e.printStackTrace();
@@ -1848,9 +1871,9 @@ public class protocol_fzd {
         try {
             int i = fzdCallback.beginBroadcast();
             while (i > 0) {
+                i--;
                 IFZDCallback broadcastItem = fzdCallback.getBroadcastItem(i);
                 broadcastItem.onFriendsUnbindResult();
-                i--;
             }
         } catch (Exception e) {
             e.printStackTrace();