liuzhenxing1118 3 anos atrás
pai
commit
f08684ef53

+ 1 - 1
.idea/misc.xml

@@ -56,7 +56,7 @@
         <entry key="app/src/main/res/layout/view_screen_apps.xml" value="0.1" />
         <entry key="app/src/main/res/layout/view_screen_contacts.xml" value="0.16449086161879894" />
         <entry key="app/src/main/res/layout/view_screen_face.xml" value="0.18211752786220872" />
-        <entry key="app/src/main/res/layout/view_screen_face_0.xml" value="0.25" />
+        <entry key="app/src/main/res/layout/view_screen_face_0.xml" value="0.1" />
         <entry key="app/src/main/res/layout/view_screen_face_1.xml" value="0.1" />
         <entry key="app/src/main/res/layout/view_screen_face_2.xml" value="0.1" />
         <entry key="app/src/main/res/layout/view_screen_face_3.xml" value="0.1" />

+ 6 - 2
app/src/main/AndroidManifest.xml

@@ -31,8 +31,12 @@
             </intent-filter>
         </activity>
 
-        <activity android:name=".activity.FaceSelectActivity"/>
-        <activity android:name=".activity.AppListActivity"/>
+        <activity
+            android:name=".activity.FaceSelectActivity"
+            android:launchMode="singleInstance" />
+        <activity
+            android:name=".activity.AppListActivity"
+            android:launchMode="singleInstance" />
     </application>
 
 </manifest>

+ 16 - 4
app/src/main/java/com/xplora/xplauncher/activity/HomePager.java

@@ -25,6 +25,8 @@ import androidx.fragment.app.FragmentTransaction;
 import com.xplora.xplauncher.R;
 import com.xplora.xplauncher.activity.MainActivity;
 import com.xplora.xplauncher.data.DataManager;
+import com.xplora.xplauncher.data.DatabaseHelper;
+import com.xplora.xplauncher.model.WeatherBean;
 import com.xplora.xplauncher.observer.Listener;
 import com.xplora.xplauncher.utils.Constant;
 import com.xplora.xplauncher.utils.ResUtils;
@@ -119,7 +121,6 @@ public class HomePager extends BasePager implements CustomSlidingDrawer.OnDrawer
                 listener.onClickWarningButton();
             }
         });
-
         return button;
     }
 
@@ -170,11 +171,22 @@ public class HomePager extends BasePager implements CustomSlidingDrawer.OnDrawer
         }
     }
 
-    private void refreshWeather() {
+    public void refreshWeather() {
+        WeatherBean bean = DatabaseHelper.queryWeather(mContext);
+        if (bean == null)
+            return;
         if (mWeatherIV != null)
             mWeatherIV.setImageResource(R.drawable.weather_0);
-        if (mTemperatureTV != null)
-            mTemperatureTV.setText("34");
+        if (mTemperatureTV != null) {
+            mTemperatureTV.setText(bean.temperature_current);
+        }
+        if (mGadgetsTemperatureText1 != null) {
+            mGadgetsTemperatureText1.setText(bean.temperature_current);
+        }
+        if (mGadgetsTemperatureText2 != null) {
+            String s = bean.temperature_high + "/" + bean.temperature_low + mContext.getString(R.string.weather_until);
+            mGadgetsTemperatureText2.setText(s);
+        }
     }
 
     public void pauseSecondAnim() {

+ 9 - 0
app/src/main/java/com/xplora/xplauncher/activity/MainActivity.java

@@ -25,6 +25,7 @@ import com.xplora.xplauncher.adapter.RecyclerAdapter;
 import com.xplora.xplauncher.adapter.ViewPagerAdapter;
 import com.xplora.xplauncher.observer.Listener;
 import com.xplora.xplauncher.observer.SettingContentObserver;
+import com.xplora.xplauncher.observer.WeatherContentObserver;
 import com.xplora.xplauncher.utils.MetaData;
 import com.xplora.xplauncher.observer.ContactContentObserver;
 import com.xplora.xplauncher.observer.NetworkChangeReceiver;
@@ -55,6 +56,7 @@ public class MainActivity extends BaseActivity implements Listener.ButtonListene
 
     private RecentContentObserver mRecentObserver = null;
     private ContactContentObserver mContactObserver = null;
+    private WeatherContentObserver mWeatherObserver = null;
     private SettingContentObserver mSettingObserver = null;
 
     private boolean isKeyDown = false;
@@ -474,6 +476,10 @@ public class MainActivity extends BaseActivity implements Listener.ButtonListene
             mContactObserver = new ContactContentObserver(mHandler);
             getContentResolver().registerContentObserver(Uri.parse(MetaData.DB_CONTACTS), true, mContactObserver);
         }
+        if (!Macros.DEBUG_DATABASE_WEAHER) {
+            mWeatherObserver = new WeatherContentObserver(mHandler);
+            getContentResolver().registerContentObserver(Uri.parse(MetaData.DB_WEATHER), true, mWeatherObserver);
+        }
         if (!Macros.DEBUG_SYSTEMPROVIDER) {
             mSettingObserver = new SettingContentObserver(mHandler);
             getContentResolver().registerContentObserver(
@@ -509,6 +515,9 @@ public class MainActivity extends BaseActivity implements Listener.ButtonListene
                     DataManager.queryContacts();
                     contactPager.setContactsList(DataManager.mContactBeanList);
                 }
+            } else if (msg.what == Constant.MSG_DB_OBSERVER_WEATHER) {
+                HomePager homeView = (HomePager) mPagerViews.get(1);
+                homeView.refreshWeather();
             } else if (msg.what == Constant.MSG_DB_OBSERVER_SETTING) {
                 int value = DataManager.getClassDisable();
                 if (value == 1) {

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

@@ -9,6 +9,7 @@ import android.net.Uri;
 
 import com.xplora.xplauncher.model.ContactBean;
 import com.xplora.xplauncher.model.RecentBean;
+import com.xplora.xplauncher.model.WeatherBean;
 import com.xplora.xplauncher.utils.Macros;
 import com.xplora.xplauncher.utils.MetaData;
 import com.xplora.xplauncher.utils.ToolsUtils;
@@ -73,6 +74,30 @@ public class DatabaseHelper {
         }
     }
 
+    @SuppressLint("Range")
+    public static WeatherBean queryWeather(Context context) {
+        if (Macros.DEBUG_DATABASE_WEAHER) {
+            return new WeatherBean();
+        } else {
+            ContentResolver resolver = context.getContentResolver();
+            Uri uri = Uri.parse(MetaData.DB_WEATHER);
+            Cursor cursor = resolver.query(uri, null, null, null, null);
+            if (cursor == null || !cursor.moveToFirst())
+                return null;
+            //第一条为当天天气
+            WeatherBean bean = new WeatherBean();
+            bean._id = cursor.getLong(cursor.getColumnIndex("_id"));
+            bean.city = cursor.getString(cursor.getColumnIndex("city"));
+            bean.update_time = cursor.getString(cursor.getColumnIndex("update_time"));
+            bean.weather_type = cursor.getString(cursor.getColumnIndex("weather_type"));
+            bean.temperature_current = cursor.getString(cursor.getColumnIndex("temperature_current"));
+            bean.temperature_low = cursor.getString(cursor.getColumnIndex("temperature_low"));
+            bean.temperature_high = cursor.getString(cursor.getColumnIndex("temperature_high"));
+            cursor.close();
+            return bean;
+        }
+    }
+
     public static ArrayList<RecentBean> testRecentList() {
         ArrayList<RecentBean> recentList = new ArrayList<>();
         for (int i = 0; i < 4; i++) {

+ 11 - 0
app/src/main/java/com/xplora/xplauncher/model/WeatherBean.java

@@ -0,0 +1,11 @@
+package com.xplora.xplauncher.model;
+
+public class WeatherBean extends BaseBean {
+    public long _id = 0;
+    public String city = "";
+    public String update_time = "";
+    public String weather_type = "";
+    public String temperature_current = "";
+    public String temperature_low = "";
+    public String temperature_high = "";
+}

+ 34 - 0
app/src/main/java/com/xplora/xplauncher/observer/WeatherContentObserver.java

@@ -0,0 +1,34 @@
+package com.xplora.xplauncher.observer;
+
+import android.database.ContentObserver;
+import android.net.Uri;
+import android.os.Handler;
+import android.util.Log;
+
+import com.xplora.xplauncher.utils.Constant;
+
+public class WeatherContentObserver extends ContentObserver {
+    public String TAG = "losion :" + getClass().getSimpleName();
+    private static Handler mHandler = null;
+
+    public WeatherContentObserver(Handler handler) {
+        super(handler);
+        mHandler = handler;
+    }
+
+    @Override
+    public void onChange(boolean selfChange, Uri uri) {
+        Log.d(TAG, "onChange :" + uri);
+        super.onChange(selfChange, uri);
+
+        if (uri == null)
+            return;
+
+        mHandler.postDelayed(new Runnable() {
+            @Override
+            public void run() {
+                mHandler.sendEmptyMessage(Constant.MSG_DB_OBSERVER_WEATHER);
+            }
+        }, 10);
+    }
+}

+ 1 - 0
app/src/main/java/com/xplora/xplauncher/utils/Constant.java

@@ -29,6 +29,7 @@ public class Constant {
 
     public final static int MSG_DB_OBSERVER_CONTACT = 1001;//数据库监控
     public final static int MSG_DB_OBSERVER_RECENT = 1002;//数据库监控
+    public final static int MSG_DB_OBSERVER_WEATHER = 1003;//数据库监控
     public final static int MSG_DB_OBSERVER_SETTING = 3000;//数据库监控
 
     public enum E_PAGER_TYPE {

+ 2 - 0
app/src/main/java/com/xplora/xplauncher/utils/MetaData.java

@@ -1,9 +1,11 @@
 package com.xplora.xplauncher.utils;
 
 public class MetaData {
+    public final static String AUTHORITIES_COMMON = "content://com.xplora.WatchCommonProvider";
     public final static String AUTHORITIES_CONTACTS = "content://com.xplora.WatchContactProvider";
     public final static String DB_RECENT = AUTHORITIES_CONTACTS + "/recent";
     public final static String DB_CONTACTS = AUTHORITIES_CONTACTS + "/contact";
+    public final static String DB_WEATHER = AUTHORITIES_COMMON + "/weather";
 
     public static final String KEY_CONTACT_USERID = "userId";
     public static final String KEY_CONTACT_PHOTO = "photo";

+ 1 - 1
app/src/main/res/layout/view_screen_face_0.xml

@@ -78,7 +78,7 @@
         android:gravity="center_horizontal"
         android:layout_centerHorizontal="true"
         android:layout_alignParentBottom="true"
-        android:layout_marginBottom="17dp"
+        android:layout_marginBottom="30dp"
         >
         <TextView
             android:id="@+id/text_date"

+ 1 - 1
app/src/main/res/layout/view_screen_face_1.xml

@@ -78,7 +78,7 @@
         android:gravity="center_horizontal"
         android:layout_centerHorizontal="true"
         android:layout_alignParentBottom="true"
-        android:layout_marginBottom="17dp"
+        android:layout_marginBottom="30dp"
         >
         <TextView
             android:id="@+id/text_date"