liuzhenxing 3 年之前
父节点
当前提交
e120260f68

+ 2 - 2
.idea/deploymentTargetDropDown.xml

@@ -7,11 +7,11 @@
         <deviceKey>
           <Key>
             <type value="VIRTUAL_DEVICE_PATH" />
-            <value value="$USER_HOME$/.android/avd/xp_watch_400_API_33.avd" />
+            <value value="$USER_HOME$/.android/avd/xplora_watch_400.avd" />
           </Key>
         </deviceKey>
       </Target>
     </targetSelectedWithDropDown>
-    <timeTargetWasSelectedWithDropDown value="2022-07-03T06:39:04.663413Z" />
+    <timeTargetWasSelectedWithDropDown value="2022-07-04T02:10:36.326457Z" />
   </component>
 </project>

+ 1 - 0
.idea/gradle.xml

@@ -13,6 +13,7 @@
             <option value="$PROJECT_DIR$/app" />
           </set>
         </option>
+        <option name="resolveModulePerSourceSet" value="false" />
       </GradleProjectSettings>
     </option>
   </component>

+ 14 - 0
app/src/main/java/com/xplora/xplauncher/LauncherApplication.java

@@ -0,0 +1,14 @@
+package com.xplora.xplauncher;
+
+import android.app.Application;
+import android.content.Context;
+
+public class LauncherApplication extends Application {
+    public static Context sContext;
+
+    @Override
+    public void onCreate() {
+        super.onCreate();
+        sContext = getApplicationContext();
+    }
+}

+ 8 - 1
app/src/main/java/com/xplora/xplauncher/adapter/ContactsRecyclerAdapter.java

@@ -55,8 +55,15 @@ public class ContactsRecyclerAdapter extends RecyclerView.Adapter<ContactItemVie
             int callTypeImage = ResUtils.getImageId("call_type_", model.getCallType());
             viewHolder.mContactIcon.setImageResource(callTypeImage);
         }
+        if (viewHolder.mContactHead != null) {
+            if (model.getPhoto().isEmpty()) {
+                viewHolder.mContactHead.setImageResource(R.drawable.contact_head);
+            } else {
+                viewHolder.mContactHead.setImageResource(R.drawable.contact_head);
+            }
+        }
         if (viewHolder.mContactName != null) {
-            viewHolder.mContactName.setText(model.getContactName());
+            viewHolder.mContactName.setText(model.getName());
         }
 
 //        viewHolder.mAppIcon.setOnClickListener(new View.OnClickListener() {

+ 18 - 14
app/src/main/java/com/xplora/xplauncher/data/DataManager.java

@@ -125,13 +125,16 @@ public class DataManager {
     }
 
     public void loadRecent() {
-        for (int i = 0; i < 4; i++) {
-            ContactModel model = new ContactModel();
-            model.setHeadImage(R.drawable.contact_head);
-            model.setContactName("recent" + i);
-            model.setCallType(i);
-            model.setCallTime(0);
-            mRecentList.add(model);
+        if (Constant.DEBUG) {
+            for (int i = 0; i < 4; i++) {
+                ContactModel model = new ContactModel();
+                model.setName("recent" + i);
+                model.setCallType(i);
+                model.setCallTime(0);
+                mRecentList.add(model);
+            }
+        } else {
+            mRecentList = DatabaseHelper.queryRecent();
         }
     }
 
@@ -140,13 +143,14 @@ public class DataManager {
     }
 
     public void loadContacts() {
-        for (int i = 0; i < 6; i++) {
-            ContactModel model = new ContactModel();
-            model.setCallType(i);
-            model.setHeadImage(R.drawable.contact_head);
-            model.setContactName("name" + i);
-            model.setCallTime(0);
-            mContactList.add(model);
+        if (Constant.DEBUG) {
+            for (int i = 0; i < 6; i++) {
+                ContactModel model = new ContactModel();
+                model.setName("name" + i);
+                mContactList.add(model);
+            }
+        } else {
+            mContactList = DatabaseHelper.queryContacts();
         }
     }
 

+ 49 - 0
app/src/main/java/com/xplora/xplauncher/data/DatabaseHelper.java

@@ -0,0 +1,49 @@
+package com.xplora.xplauncher.data;
+
+import android.annotation.SuppressLint;
+import android.content.ContentResolver;
+import android.database.Cursor;
+
+import com.xplora.xplauncher.LauncherApplication;
+import com.xplora.xplauncher.model.ContactModel;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class DatabaseHelper {
+    @SuppressLint("Range")
+    public static List<ContactModel> queryContacts() {
+        List<ContactModel> dataList = new ArrayList<>();
+        ContentResolver resolver = LauncherApplication.sContext.getContentResolver();
+        Cursor cursor = resolver.query(MetaData.TABLE_URI_CONTACT, null, null, null, null);
+        while (cursor.moveToNext()) {
+            ContactModel c = new ContactModel();
+            c.setUserId(cursor.getString(cursor.getColumnIndex(MetaData.KEY_CONTACT_USERID)));
+            c.setPhoto(cursor.getString(cursor.getColumnIndex(MetaData.KEY_CONTACT_PHOTO)));
+            c.setName(cursor.getString(cursor.getColumnIndex(MetaData.KEY_CONTACT_USERID)));
+            c.setTel(cursor.getString(cursor.getColumnIndex(MetaData.KEY_CONTACT_TEL)));
+            dataList.add(c);
+        }
+        cursor.close();
+        return dataList;
+    }
+
+    @SuppressLint("Range")
+    public static List<ContactModel> queryRecent() {
+        List<ContactModel> dataList = new ArrayList<>();
+        ContentResolver resolver = LauncherApplication.sContext.getContentResolver();
+        Cursor cursor = resolver.query(MetaData.TABLE_URI_CONTACT, null, null, null, null);
+        while (cursor.moveToNext()) {
+            ContactModel c = new ContactModel();
+            c.setUserId(cursor.getString(cursor.getColumnIndex(MetaData.KEY_CONTACT_USERID)));
+            c.setPhoto(cursor.getString(cursor.getColumnIndex(MetaData.KEY_CONTACT_PHOTO)));
+            c.setName(cursor.getString(cursor.getColumnIndex(MetaData.KEY_CONTACT_USERID)));
+            c.setTel(cursor.getString(cursor.getColumnIndex(MetaData.KEY_CONTACT_TEL)));
+            c.setCallType(cursor.getInt(cursor.getColumnIndex(MetaData.KEY_CONTACT_CALLTYPE)));
+            c.setCallTime(cursor.getInt(cursor.getColumnIndex(MetaData.KEY_CONTACT_CALLTIME)));
+            dataList.add(c);
+        }
+        cursor.close();
+        return dataList;
+    }
+}

+ 21 - 0
app/src/main/java/com/xplora/xplauncher/data/MetaData.java

@@ -0,0 +1,21 @@
+package com.xplora.xplauncher.data;
+
+import android.net.Uri;
+
+public class MetaData {
+    private static final String AUTHORITIES = "com.xplora .WatchCommonProvider";
+    private static final String CONTENT_URI = "content://" + AUTHORITIES + "/";
+
+    private static final String TABLE_NAME_RECENT = "recent";
+    private static final String TABLE_NAME_CONTACT = "contact";
+    public static final Uri TABLE_URI_RECENT = Uri.parse(CONTENT_URI + TABLE_NAME_RECENT);
+    public static final Uri TABLE_URI_CONTACT = Uri.parse(CONTENT_URI + TABLE_NAME_CONTACT);
+
+    //KEY
+    public static final String KEY_CONTACT_USERID = "userId";
+    public static final String KEY_CONTACT_PHOTO = "photo";
+    public static final String KEY_CONTACT_NAME = "name";
+    public static final String KEY_CONTACT_TEL = "tel";
+    public static final String KEY_CONTACT_CALLTYPE = "call_type";
+    public static final String KEY_CONTACT_CALLTIME = "call_time";
+}

+ 31 - 11
app/src/main/java/com/xplora/xplauncher/model/ContactModel.java

@@ -2,26 +2,46 @@ package com.xplora.xplauncher.model;
 
 import android.graphics.drawable.Drawable;
 
-public class ContactModel {
-    private int headImage = 0;
-    private String contactName = "";
+import java.io.Serializable;
+
+public class ContactModel implements Serializable {
+    private String userId = "";
+    private String photo = "";
+    private String name = "";
+    private String tel = "";
     private int callType = 0;
     private int callTime = 0;
 
-    public int getHeadImage() {
-        return headImage;
+    public String getUserId() {
+        return userId;
+    }
+
+    public void setUserId(String userId) {
+        this.userId = userId;
+    }
+
+    public String getPhoto() {
+        return photo;
+    }
+
+    public void setPhoto(String photo) {
+        this.photo = photo;
+    }
+
+    public String getName() {
+        return name;
     }
 
-    public void setHeadImage(int headImage) {
-        this.headImage = headImage;
+    public void setName(String name) {
+        this.name = name;
     }
 
-    public String getContactName() {
-        return contactName;
+    public String getTel() {
+        return tel;
     }
 
-    public void setContactName(String contactName) {
-        this.contactName = contactName;
+    public void setTel(String tel) {
+        this.tel = tel;
     }
 
     public int getCallTime() {