version:2.0

fix:
update:通知变化时更新
This commit is contained in:
2022-06-08 09:29:55 +08:00
parent 190810bdc0
commit f954fc036d
13 changed files with 630 additions and 218 deletions

View File

@@ -17,6 +17,7 @@ import com.uiui.aios.R;
import com.uiui.aios.adapter.APPListAdapter; import com.uiui.aios.adapter.APPListAdapter;
import com.uiui.aios.base.BaseActivity; import com.uiui.aios.base.BaseActivity;
import com.uiui.aios.bean.AppListInfo; import com.uiui.aios.bean.AppListInfo;
import com.uiui.aios.service.NotificationService;
import com.uiui.aios.utils.ApkUtils; import com.uiui.aios.utils.ApkUtils;
import com.uiui.aios.utils.BitmapUtils; import com.uiui.aios.utils.BitmapUtils;
import com.uiui.aios.view.RecyclerViewSpacesItemDecoration; import com.uiui.aios.view.RecyclerViewSpacesItemDecoration;
@@ -87,6 +88,12 @@ public class APPListActivity extends BaseActivity {
mRecyclerView.addItemDecoration(new RecyclerViewSpacesItemDecoration(stringIntegerHashMap)); mRecyclerView.addItemDecoration(new RecyclerViewSpacesItemDecoration(stringIntegerHashMap));
mRecyclerView.setAdapter(adapter); mRecyclerView.setAdapter(adapter);
adapter.setAppListInfos(appinfoList); adapter.setAppListInfos(appinfoList);
NotificationService.setListener(new NotificationService.NotificationListener() {
@Override
public void onListenerUpdate() {
adapter.notifyDataSetChanged();
}
});
} }
} }

View File

@@ -44,7 +44,6 @@ import com.tencent.mmkv.MMKV;
import com.uiui.aios.BuildConfig; import com.uiui.aios.BuildConfig;
import com.uiui.aios.R; import com.uiui.aios.R;
import com.uiui.aios.activity.APPListActivity; import com.uiui.aios.activity.APPListActivity;
import com.uiui.aios.activity.CodeActivity;
import com.uiui.aios.activity.EmergencyActivity; import com.uiui.aios.activity.EmergencyActivity;
import com.uiui.aios.activity.weather.WeatherActivity; import com.uiui.aios.activity.weather.WeatherActivity;
import com.uiui.aios.adapter.NotificationAdapter; import com.uiui.aios.adapter.NotificationAdapter;
@@ -54,6 +53,7 @@ import com.uiui.aios.bean.AlarmItem;
import com.uiui.aios.utils.AmapManager; import com.uiui.aios.utils.AmapManager;
import com.uiui.aios.utils.ApkUtils; import com.uiui.aios.utils.ApkUtils;
import com.uiui.aios.utils.AppUtil; import com.uiui.aios.utils.AppUtil;
import com.uiui.aios.utils.SchemeUtils;
import com.uiui.aios.utils.Utils; import com.uiui.aios.utils.Utils;
import java.lang.reflect.Method; import java.lang.reflect.Method;
@@ -75,38 +75,34 @@ public class CustomFragment extends Fragment implements NetworkUtils.OnNetworkSt
// @BindView(R.id.cl_alarm) // @BindView(R.id.cl_alarm)
// ConstraintLayout cl_alarm; // ConstraintLayout cl_alarm;
@BindView(R.id.cl_wifi) // @BindView(R.id.cl_wifi)
ConstraintLayout cl_wifi; // ConstraintLayout cl_wifi;
@BindView(R.id.qr_code)
ConstraintLayout qr_code;
@BindView(R.id.cl_sos) @BindView(R.id.cl_sos)
ConstraintLayout cl_soso; ConstraintLayout cl_soso;
@BindView(R.id.cl_allapp)
ConstraintLayout cl_allapp;
@BindView(R.id.cl_weather) @BindView(R.id.cl_weather)
ConstraintLayout cl_weather; ConstraintLayout cl_weather;
@BindView(R.id.cl_battery) // @BindView(R.id.cl_battery)
ConstraintLayout cl_battery; // ConstraintLayout cl_battery;
// @BindView(R.id.tv_add) // @BindView(R.id.tv_add)
// TextView tv_add; // TextView tv_add;
@BindView(R.id.tv_battery) // @BindView(R.id.tv_battery)
TextView tv_battery; // TextView tv_battery;
@BindView(R.id.tv_location) @BindView(R.id.tv_location)
TextView tv_location; TextView tv_location;
@BindView(R.id.iv_pic) @BindView(R.id.iv_pic)
ImageView iv_pic; ImageView iv_pic;
@BindView(R.id.tv_temp) @BindView(R.id.tv_temp)
TextView tv_temp; TextView tv_temp;
@BindView(R.id.cpv) // @BindView(R.id.cpv)
CircleProgressView cpv; // CircleProgressView cpv;
@BindView(R.id.iv_charging) // @BindView(R.id.iv_charging)
ImageView iv_charging; // ImageView iv_charging;
@BindView(R.id.rv_noti) @BindView(R.id.rv_noti)
RecyclerView rv_noti; RecyclerView rv_noti;
// @BindView(R.id.rv_clock) // @BindView(R.id.rv_clock)
// RecyclerView rv_clock; // RecyclerView rv_clock;
@BindView(R.id.wifi_ssid) // @BindView(R.id.wifi_ssid)
TextView wifi_ssid; // TextView wifi_ssid;
@BindView(R.id.iv_sos) @BindView(R.id.iv_sos)
ImageView iv_sos; ImageView iv_sos;
@BindView(R.id.rv_sos) @BindView(R.id.rv_sos)
@@ -114,6 +110,14 @@ public class CustomFragment extends Fragment implements NetworkUtils.OnNetworkSt
@BindView(R.id.iv_note_nodata) @BindView(R.id.iv_note_nodata)
ImageView iv_note_nodata; ImageView iv_note_nodata;
@BindView(R.id.cl_health)
ConstraintLayout mClHealth;
@BindView(R.id.cl_tongue)
ConstraintLayout mClTongue;
@BindView(R.id.cl_face)
ConstraintLayout mClFace;
@BindView(R.id.cl_hand)
ConstraintLayout mClHand;
private String TAG = CustomFragment.class.getSimpleName(); private String TAG = CustomFragment.class.getSimpleName();
// private int[] mShaderColors = new int[]{0xFFfa3db5, 0xFFF8867E, 0xFFF79F6B, 0xFFF79F6B, 0xFFF79F6B, 0xFFF8867E, 0xFFfa3db5}; // private int[] mShaderColors = new int[]{0xFFfa3db5, 0xFFF8867E, 0xFFF79F6B, 0xFFF79F6B, 0xFFF79F6B, 0xFFF8867E, 0xFFfa3db5};
@@ -121,7 +125,7 @@ public class CustomFragment extends Fragment implements NetworkUtils.OnNetworkSt
private View rootView; private View rootView;
private List<AlarmItem> alarmItemList; private List<AlarmItem> alarmItemList;
private NotificationAdapter notificationAdapter; private NotificationAdapter notificationAdapter;
// private AlarmClockAdapter alarmClockAdapter; // private AlarmClockAdapter alarmClockAdapter;
private SOSNnmberAdapter sosNnmberAdapter; private SOSNnmberAdapter sosNnmberAdapter;
private MMKV mmkv; private MMKV mmkv;
private Context mContext; private Context mContext;
@@ -177,18 +181,17 @@ public class CustomFragment extends Fragment implements NetworkUtils.OnNetworkSt
} }
@Override @Override
public void onDisconnected() { public void onDisconnected() {
wifi_ssid.setText("WiFi未连接"); // wifi_ssid.setText("WiFi未连接");
} }
@Override @Override
public void onConnected(NetworkUtils.NetworkType networkType) { public void onConnected(NetworkUtils.NetworkType networkType) {
if (networkType == NetworkUtils.NetworkType.NETWORK_WIFI) { if (networkType == NetworkUtils.NetworkType.NETWORK_WIFI) {
wifi_ssid.setText(getConnectWifiSsid()); // wifi_ssid.setText(getConnectWifiSsid());
} else { } else {
wifi_ssid.setText("WiFi未连接"); // wifi_ssid.setText("WiFi未连接");
} }
} }
@@ -239,7 +242,7 @@ public class CustomFragment extends Fragment implements NetworkUtils.OnNetworkSt
int scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, 0); int scale = intent.getIntExtra(BatteryManager.EXTRA_SCALE, 0);
int elec = (level * 100) / scale; int elec = (level * 100) / scale;
Log.i(TAG, "electricity:=" + elec + "%"); Log.i(TAG, "electricity:=" + elec + "%");
tv_battery.setText(elec + "%"); // tv_battery.setText(elec + "%");
} else if (Intent.ACTION_POWER_CONNECTED.equals(action) } else if (Intent.ACTION_POWER_CONNECTED.equals(action)
|| Intent.ACTION_POWER_DISCONNECTED.equals(action) || Intent.ACTION_POWER_DISCONNECTED.equals(action)
|| Intent.ACTION_BATTERY_LOW.equals(action) || Intent.ACTION_BATTERY_LOW.equals(action)
@@ -285,13 +288,13 @@ public class CustomFragment extends Fragment implements NetworkUtils.OnNetworkSt
private void initView() { private void initView() {
Log.e(TAG, "initView: " + Utils.getBatteryLevel(getActivity())); Log.e(TAG, "initView: " + Utils.getBatteryLevel(getActivity()));
tv_battery.setText(Utils.getBatteryLevel(getActivity()) + "%"); // tv_battery.setText(Utils.getBatteryLevel(getActivity()) + "%");
cpv.setOnClickListener(new View.OnClickListener() { // cpv.setOnClickListener(new View.OnClickListener() {
@Override // @Override
public void onClick(View v) { // public void onClick(View v) {
killBackgroundApp(); // killBackgroundApp();
} // }
}); // });
// cl_alarm.setOnClickListener(new View.OnClickListener() { // cl_alarm.setOnClickListener(new View.OnClickListener() {
// @Override // @Override
// public void onClick(View v) { // public void onClick(View v) {
@@ -302,16 +305,10 @@ public class CustomFragment extends Fragment implements NetworkUtils.OnNetworkSt
rv_noti.setLayoutManager(new LinearLayoutManager(getActivity())); rv_noti.setLayoutManager(new LinearLayoutManager(getActivity()));
rv_noti.setAdapter(notificationAdapter); rv_noti.setAdapter(notificationAdapter);
if (isWifiConnect()) { if (isWifiConnect()) {
wifi_ssid.setText(getConnectWifiSsid()); // wifi_ssid.setText(getConnectWifiSsid());
} else { } else {
wifi_ssid.setText("WiFi未连接"); // wifi_ssid.setText("WiFi未连接");
} }
cl_wifi.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS)); //直接进入手机中的wifi网络设置界面
}
});
// alarmClockAdapter = new AlarmClockAdapter(); // alarmClockAdapter = new AlarmClockAdapter();
// rv_clock.setLayoutManager(new LinearLayoutManager(getActivity())); // rv_clock.setLayoutManager(new LinearLayoutManager(getActivity()));
// rv_clock.setAdapter(alarmClockAdapter); // rv_clock.setAdapter(alarmClockAdapter);
@@ -327,35 +324,54 @@ public class CustomFragment extends Fragment implements NetworkUtils.OnNetworkSt
getActivity().startActivity(intent); getActivity().startActivity(intent);
} }
}); });
cl_allapp.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
getActivity().startActivity(new Intent(getActivity(), APPListActivity.class));
}
});
cl_weather.setOnClickListener(new View.OnClickListener() { cl_weather.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View view) { public void onClick(View view) {
startActivity(new Intent(getActivity(), WeatherActivity.class)); startActivity(new Intent(getActivity(), WeatherActivity.class));
} }
}); });
cl_battery.setOnClickListener(new View.OnClickListener() { // cl_battery.setOnClickListener(new View.OnClickListener() {
@Override // @Override
public void onClick(View view) { // public void onClick(View view) {
Intent powerUsageIntent = new Intent(Intent.ACTION_POWER_USAGE_SUMMARY); // Intent powerUsageIntent = new Intent(Intent.ACTION_POWER_USAGE_SUMMARY);
ResolveInfo resolveInfo = mContext.getPackageManager().resolveActivity(powerUsageIntent, 0); // ResolveInfo resolveInfo = mContext.getPackageManager().resolveActivity(powerUsageIntent, 0);
// check that the Battery app exists on this device //// check that the Battery app exists on this device
if (resolveInfo != null) { // if (resolveInfo != null) {
startActivity(powerUsageIntent); // startActivity(powerUsageIntent);
} // }
} // }
}); // });
qr_code.setOnClickListener(new View.OnClickListener() { mClHealth.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
startActivity(new Intent(getActivity(), CodeActivity.class)); // startActivity(new Intent(getActivity(), CodeActivity.class));
// SchemeUtils.openScheme(getActivity(), SchemeUtils.SCHEME_TONGUE);
} }
}); });
mClTongue.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// startActivity(new Intent(getActivity(), CodeActivity.class));
// startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS)); //直接进入手机中的wifi网络设置界面
SchemeUtils.openScheme(getActivity(), SchemeUtils.SCHEME_TONGUE);
}
});
mClFace.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// startActivity(new Intent(getActivity(), CodeActivity.class));
SchemeUtils.openScheme(getActivity(), SchemeUtils.SCHEME_FACE);
}
});
mClHand.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// startActivity(new Intent(getActivity(), CodeActivity.class));
// getActivity().startActivity(new Intent(getActivity(), APPListActivity.class));
SchemeUtils.openScheme(getActivity(), SchemeUtils.SCHEME_HAND);
}
});
// setAlarm(); // setAlarm();
refreshMemory(); refreshMemory();
} }
@@ -479,7 +495,7 @@ public class CustomFragment extends Fragment implements NetworkUtils.OnNetworkSt
WeatherHourlyBean.HourlyBean now = hourly.get(0); WeatherHourlyBean.HourlyBean now = hourly.get(0);
String imageName = "he" + now.getIcon(); String imageName = "he" + now.getIcon();
Log.e(TAG, "onSuccess: " + imageName); Log.e(TAG, "onSuccess: " + imageName);
if (isAdded()){ if (isAdded()) {
int resId = getResources().getIdentifier(imageName, "drawable", getActivity().getPackageName()); int resId = getResources().getIdentifier(imageName, "drawable", getActivity().getPackageName());
Log.e(TAG, "onSuccess: " + resId); Log.e(TAG, "onSuccess: " + resId);
if (resId == 0) { if (resId == 0) {
@@ -530,8 +546,8 @@ public class CustomFragment extends Fragment implements NetworkUtils.OnNetworkSt
long avail = AppUtil.getAvailMemory(mContext); long avail = AppUtil.getAvailMemory(mContext);
long total = AppUtil.getTotalMemory(mContext); long total = AppUtil.getTotalMemory(mContext);
int x = (int) (((total - avail) / (double) total) * 100); int x = (int) (((total - avail) / (double) total) * 100);
cpv.setProgressColor(mShaderColors); // cpv.setProgressColor(mShaderColors);
cpv.showAnimation(0, x, 1000); // cpv.showAnimation(0, x, 1000);
float x2 = (((total - avail) / (float) total)); float x2 = (((total - avail) / (float) total));
} }

View File

@@ -6,7 +6,9 @@ import android.util.Log;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Set;
/** /**
* @author TT * @author TT
@@ -15,14 +17,14 @@ public class NotificationService extends NotificationListenerService {
private static final String TAG = NotificationService.class.getSimpleName(); private static final String TAG = NotificationService.class.getSimpleName();
private static HashMap<String, List<StatusBarNotification>> notificationMap = new HashMap<String, List<StatusBarNotification>>(); private static HashMap<String, List<StatusBarNotification>> notificationMap = new HashMap<String, List<StatusBarNotification>>();
private static NotificationListener mListener; private static Set<NotificationListener> mListener = new HashSet<NotificationListener>();
private void updateNotification() { private void updateNotification() {
notificationMap.clear(); notificationMap.clear();
StatusBarNotification[] statusBarNotifications = getActiveNotifications(); StatusBarNotification[] statusBarNotifications = getActiveNotifications();
for (StatusBarNotification sbn : statusBarNotifications) { for (StatusBarNotification sbn : statusBarNotifications) {
String pkg = sbn.getPackageName(); String pkg = sbn.getPackageName();
Log.e(TAG, "onListenerConnected: " + pkg); Log.e(TAG, "onListenerUpdate: " + pkg);
if (notificationMap.get(pkg) == null) { if (notificationMap.get(pkg) == null) {
notificationMap.put(pkg, new ArrayList<>()); notificationMap.put(pkg, new ArrayList<>());
notificationMap.get(pkg).add(sbn); notificationMap.get(pkg).add(sbn);
@@ -30,7 +32,7 @@ public class NotificationService extends NotificationListenerService {
notificationMap.get(pkg).add(sbn); notificationMap.get(pkg).add(sbn);
} }
} }
Log.e(TAG, "onListenerConnected: " + notificationMap); Log.e(TAG, "onListenerUpdate: " + notificationMap);
} }
public static int getNotificationLength(String pkg) { public static int getNotificationLength(String pkg) {
@@ -42,15 +44,11 @@ public class NotificationService extends NotificationListenerService {
} }
public static void setListener(NotificationListener listener) { public static void setListener(NotificationListener listener) {
mListener = listener; mListener.add(listener);
} }
public interface NotificationListener { public interface NotificationListener {
void onListenerConnected(); void onListenerUpdate();
void onNotificationPosted(StatusBarNotification sbn);
void onNotificationRemoved(StatusBarNotification sbn);
} }
@Override @Override
@@ -61,10 +59,11 @@ public class NotificationService extends NotificationListenerService {
@Override @Override
public void onListenerConnected() { public void onListenerConnected() {
super.onListenerConnected(); super.onListenerConnected();
Log.e(TAG, "onListenerConnected: " + getActiveNotifications().length); Log.e(TAG, "onListenerUpdate: " + getActiveNotifications().length);
updateNotification(); updateNotification();
if (mListener != null) for (NotificationListener listener : mListener) {
mListener.onListenerConnected(); listener.onListenerUpdate();
}
} }
@Override @Override
@@ -72,8 +71,9 @@ public class NotificationService extends NotificationListenerService {
super.onNotificationPosted(sbn); super.onNotificationPosted(sbn);
Log.e(TAG, "onNotificationPosted: " + getActiveNotifications().length); Log.e(TAG, "onNotificationPosted: " + getActiveNotifications().length);
updateNotification(); updateNotification();
if (mListener != null) for (NotificationListener listener : mListener) {
mListener.onNotificationPosted(sbn); listener.onListenerUpdate();
}
} }
@Override @Override
@@ -81,8 +81,9 @@ public class NotificationService extends NotificationListenerService {
super.onNotificationRemoved(sbn); super.onNotificationRemoved(sbn);
Log.e(TAG, "onNotificationRemoved: " + getActiveNotifications().length); Log.e(TAG, "onNotificationRemoved: " + getActiveNotifications().length);
updateNotification(); updateNotification();
if (mListener != null) for (NotificationListener listener : mListener) {
mListener.onNotificationRemoved(sbn); listener.onListenerUpdate();
}
} }

View File

@@ -24,7 +24,6 @@ import java.io.BufferedReader;
import java.io.FileReader; import java.io.FileReader;
public class AppUtil { public class AppUtil {
private static String TAG = AppUtil.class.getSimpleName(); private static String TAG = AppUtil.class.getSimpleName();
/** /**
@@ -88,4 +87,5 @@ public class AppUtil {
// Byte转位KB或MB // Byte转位KB或MB
return memory * 1024; return memory * 1024;
} }
} }

View File

@@ -0,0 +1,30 @@
package com.uiui.aios.utils;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.text.TextUtils;
import android.util.Log;
public class SchemeUtils {
private static String TAG = SchemeUtils.class.getSimpleName();
public static final String SCHEME_TONGUE = "uiuihealth://tongue";
public static final String SCHEME_FACE = "uiuihealth://face";
public static final String SCHEME_HAND = "uiuihealth://hand";
public static void openScheme(Activity context, String uri) {
if (TextUtils.isEmpty(uri)) {
return;
}
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));
try {
context.startActivity(intent);
} catch (Exception e) {
Log.e(TAG, "openScheme: " + e.getMessage());
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 4.5 KiB

View File

@@ -220,7 +220,7 @@
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/qr_code" android:id="@+id/cl_health"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_margin="8dp" android:layout_margin="8dp"
@@ -234,7 +234,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="8dp" android:layout_marginStart="8dp"
android:layout_marginTop="8dp" android:layout_marginTop="8dp"
android:text="健康" android:text="健康档案"
android:textColor="@color/black" android:textColor="@color/black"
android:textSize="20sp" android:textSize="20sp"
android:textStyle="bold" android:textStyle="bold"
@@ -246,7 +246,7 @@
android:layout_height="100dp" android:layout_height="100dp"
android:adjustViewBounds="true" android:adjustViewBounds="true"
android:scaleType="fitCenter" android:scaleType="fitCenter"
android:src="@drawable/health_code" android:src="@drawable/home_clinical_detection"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
@@ -255,6 +255,7 @@
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_tongue"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_margin="8dp" android:layout_margin="8dp"
@@ -267,125 +268,61 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="8dp" android:layout_marginStart="8dp"
android:layout_marginTop="8dp" android:layout_marginTop="8dp"
android:text="设备状态" android:text="AI舌诊"
android:textColor="@color/black" android:textColor="@color/black"
android:textSize="20sp" android:textSize="20sp"
android:textStyle="bold" android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_battery"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView <ImageView
android:id="@+id/iv_charging" android:layout_width="100dp"
android:layout_width="32dp" android:layout_height="100dp"
android:layout_height="23dp"
android:layout_marginStart="32dp"
android:adjustViewBounds="true" android:adjustViewBounds="true"
android:scaleType="centerInside" android:scaleType="fitCenter"
android:src="@drawable/charging_icon" android:src="@drawable/home_clinical_tongue"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tv_battery"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="32dp"
android:gravity="center"
android:maxLines="1"
android:singleLine="true"
android:textColor="@color/black"
android:textSize="20sp"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@+id/iv_charging"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_wifi"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="24dp">
<ImageView
android:id="@+id/iv_wifi"
android:layout_width="32dp"
android:layout_height="32dp"
android:layout_marginStart="32dp"
android:adjustViewBounds="true"
android:scaleType="centerInside"
android:src="@drawable/wifi_icon"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/wifi_ssid"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="32dp"
android:textColor="@color/black"
android:textSize="20sp"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@+id/iv_wifi"
app:layout_constraintTop_toTopOf="@+id/iv_wifi" />
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_face"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_margin="8dp" android:layout_margin="8dp"
android:layout_weight="1" android:layout_weight="1"
android:background="@drawable/custom_background"> android:background="@drawable/custom_background">
<com.king.view.circleprogressview.CircleProgressView
android:id="@+id/cpv"
android:layout_width="144dp"
android:layout_height="144dp"
app:cpvDuration="1000"
app:cpvLabelTextSize="26sp"
app:cpvNormalColor="#D8D6D7"
app:cpvShowTick="false"
app:cpvStrokeWidth="20dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView <TextView
android:id="@+id/textView2" android:id="@+id/textView2"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="8dp" android:layout_marginStart="8dp"
android:layout_marginTop="8dp" android:layout_marginTop="8dp"
android:text="一键加速" android:text="AI面诊"
android:textColor="@color/black" android:textColor="@color/black"
android:textSize="20sp" android:textSize="20sp"
android:textStyle="bold" android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:layout_width="100dp"
android:layout_height="100dp"
android:adjustViewBounds="true"
android:scaleType="fitCenter"
android:src="@drawable/home_clinical_face"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_allapp" android:id="@+id/cl_hand"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_margin="8dp" android:layout_margin="8dp"
@@ -397,7 +334,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="8dp" android:layout_marginStart="8dp"
android:layout_marginTop="8dp" android:layout_marginTop="8dp"
android:text="系统应用" android:text="AI手诊"
android:textColor="@color/black" android:textColor="@color/black"
android:textSize="20sp" android:textSize="20sp"
android:textStyle="bold" android:textStyle="bold"
@@ -405,12 +342,11 @@
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<ImageView <ImageView
android:id="@+id/iv_allapp"
android:layout_width="100dp" android:layout_width="100dp"
android:layout_height="100dp" android:layout_height="100dp"
android:adjustViewBounds="true" android:adjustViewBounds="true"
android:scaleType="centerInside" android:scaleType="fitCenter"
android:src="@drawable/systemapp_icon" android:src="@drawable/home_clinical_hand"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"

View File

@@ -0,0 +1,422 @@
<?xml version="1.0" encoding="utf-8"?>
<com.uiui.aios.view.CustomContent xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="20dp"
android:layout_marginBottom="30dp"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="horizontal">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_weather"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_margin="8dp"
android:layout_weight="3"
android:background="@drawable/custom_background">
<ImageView
android:id="@+id/iv_pic"
android:layout_width="180dp"
android:layout_height="180dp"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
android:src="@drawable/he100"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView3" />
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:text="天气预报"
android:textColor="@color/black"
android:textSize="20sp"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tv_temp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:gravity="center_vertical"
android:text="10℃"
android:textColor="@color/black"
android:textSize="40sp"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="@+id/iv_pic"
app:layout_constraintStart_toEndOf="@+id/iv_pic"
app:layout_constraintTop_toTopOf="@+id/iv_pic"
app:layout_constraintVertical_bias="0.296" />
<TextView
android:id="@+id/tv_location"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:text="位置"
android:textColor="@color/black"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="@+id/tv_temp"
app:layout_constraintTop_toBottomOf="@+id/tv_temp" />
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_note"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_margin="8dp"
android:layout_weight="3"
android:background="@drawable/custom_background">
<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:text="爱心守护"
android:textColor="@color/black"
android:textSize="20sp"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/iv_note_nodata"
android:layout_width="150dp"
android:layout_height="150dp"
android:adjustViewBounds="true"
android:scaleType="centerInside"
android:src="@drawable/note_nodata"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_noti"
android:layout_width="match_parent"
android:layout_height="0dp"
android:overScrollMode="never"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView4" />
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_sos"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_margin="8dp"
android:layout_weight="2"
android:background="@drawable/custom_background">
<TextView
android:id="@+id/textView7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:text="紧急呼叫"
android:textColor="@color/black"
android:textSize="20sp"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/iv_sos"
android:layout_width="100dp"
android:layout_height="100dp"
android:adjustViewBounds="true"
android:scaleType="centerInside"
android:src="@drawable/sos_icon"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_sos"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView7" />
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="horizontal">
<!-- <androidx.constraintlayout.widget.ConstraintLayout-->
<!-- android:id="@+id/cl_alarm"-->
<!-- android:layout_width="0dp"-->
<!-- android:layout_height="match_parent"-->
<!-- android:layout_margin="8dp"-->
<!-- android:layout_weight="1"-->
<!-- android:background="@drawable/custom_background"-->
<!-- tools:ignore="NestedWeights">-->
<!-- <TextView-->
<!-- android:id="@+id/textView5"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_marginStart="8dp"-->
<!-- android:layout_marginTop="8dp"-->
<!-- android:text="我的闹钟"-->
<!-- android:textColor="@color/black"-->
<!-- android:textSize="20sp"-->
<!-- android:textStyle="bold"-->
<!-- app:layout_constraintStart_toStartOf="parent"-->
<!-- app:layout_constraintTop_toTopOf="parent" />-->
<!-- <TextView-->
<!-- android:id="@+id/tv_add"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:background="@drawable/tv_background"-->
<!-- android:gravity="center_horizontal"-->
<!-- android:text="添加闹钟"-->
<!-- android:textColor="@color/white"-->
<!-- android:textSize="15sp"-->
<!-- app:layout_constraintBottom_toBottomOf="parent"-->
<!-- app:layout_constraintEnd_toEndOf="parent"-->
<!-- app:layout_constraintStart_toStartOf="parent"-->
<!-- app:layout_constraintTop_toTopOf="parent" />-->
<!-- <androidx.recyclerview.widget.RecyclerView-->
<!-- android:id="@+id/rv_clock"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:overScrollMode="never"-->
<!-- app:layout_constraintBottom_toBottomOf="parent"-->
<!-- app:layout_constraintEnd_toEndOf="parent"-->
<!-- app:layout_constraintStart_toStartOf="parent"-->
<!-- app:layout_constraintTop_toBottomOf="@+id/textView5" />-->
<!-- </androidx.constraintlayout.widget.ConstraintLayout>-->
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_health"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_margin="8dp"
android:layout_weight="1"
android:background="@drawable/custom_background"
tools:ignore="NestedWeights">
<TextView
android:id="@+id/textView5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:text="健康码"
android:textColor="@color/black"
android:textSize="20sp"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:layout_width="100dp"
android:layout_height="100dp"
android:adjustViewBounds="true"
android:scaleType="fitCenter"
android:src="@drawable/health_code"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_margin="8dp"
android:layout_weight="1"
android:background="@drawable/custom_background">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:text="设备状态"
android:textColor="@color/black"
android:textSize="20sp"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_battery"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/iv_charging"
android:layout_width="32dp"
android:layout_height="23dp"
android:layout_marginStart="32dp"
android:adjustViewBounds="true"
android:scaleType="centerInside"
android:src="@drawable/charging_icon"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tv_battery"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="32dp"
android:gravity="center"
android:maxLines="1"
android:singleLine="true"
android:textColor="@color/black"
android:textSize="20sp"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@+id/iv_charging"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_wifi"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="24dp">
<ImageView
android:id="@+id/iv_wifi"
android:layout_width="32dp"
android:layout_height="32dp"
android:layout_marginStart="32dp"
android:adjustViewBounds="true"
android:scaleType="centerInside"
android:src="@drawable/wifi_icon"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/wifi_ssid"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="32dp"
android:textColor="@color/black"
android:textSize="20sp"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@+id/iv_wifi"
app:layout_constraintTop_toTopOf="@+id/iv_wifi" />
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_margin="8dp"
android:layout_weight="1"
android:background="@drawable/custom_background">
<com.king.view.circleprogressview.CircleProgressView
android:id="@+id/cpv"
android:layout_width="144dp"
android:layout_height="144dp"
app:cpvDuration="1000"
app:cpvLabelTextSize="26sp"
app:cpvNormalColor="#D8D6D7"
app:cpvShowTick="false"
app:cpvStrokeWidth="20dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:text="一键加速"
android:textColor="@color/black"
android:textSize="20sp"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_hand"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_margin="8dp"
android:layout_weight="1"
android:background="@drawable/custom_background">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:text="系统应用"
android:textColor="@color/black"
android:textSize="20sp"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/iv_allapp"
android:layout_width="100dp"
android:layout_height="100dp"
android:adjustViewBounds="true"
android:scaleType="centerInside"
android:src="@drawable/systemapp_icon"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>
</LinearLayout>
</com.uiui.aios.view.CustomContent>

View File

@@ -217,7 +217,7 @@
<!-- </androidx.constraintlayout.widget.ConstraintLayout>--> <!-- </androidx.constraintlayout.widget.ConstraintLayout>-->
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/qr_code" android:id="@+id/cl_health"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_margin="8dp" android:layout_margin="8dp"
@@ -395,7 +395,7 @@
android:orientation="horizontal"> android:orientation="horizontal">
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_allapp" android:id="@+id/cl_hand"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_margin="8dp" android:layout_margin="8dp"