diff --git a/app/build.gradle b/app/build.gradle index c0c0b01..fe45dd0 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -15,8 +15,8 @@ android { applicationId "com.xxpatx.os" minSdkVersion 24 targetSdkVersion 29 - versionCode 1039 - versionName "1.3.8" + versionCode 1040 + versionName "1.4.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 73b984b..238d9cb 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -208,7 +208,7 @@ android:excludeFromRecents="true" android:launchMode="singleTask" android:screenOrientation="portrait" - android:theme="@style/FloatingWindow" /> + android:theme="@style/AppBlackTheme" /> { - private String TAG = "EmergencyActivity"; + private static final String TAG = "EmergencyActivity"; private MMKV mMMKV = MMKV.mmkvWithID(CommonConfig.MMKV_ID, MMKV.MULTI_PROCESS_MODE); - private SosNnmberAdapter mSosNnmberAdapter; + // private SosNnmberAdapter mSosNnmberAdapter; + private EmergencyContactAdapter mEmergencyContactAdapter; - private Disposable subscribe; - private boolean needDial = false; - private boolean isCalling = false; - private List phoneList; + + private Disposable mDisposable; + private boolean mNeedDial = false; + private boolean mCalling = false; + private List mContactList; @Override protected int getLayoutId() { @@ -62,22 +64,23 @@ public class EmergencyActivity extends BaseMvvmActivity { Log.e("TAG", "倒计时:" + aLong); - if (aLong < time && !subscribe.isDisposed()) { + if (aLong < time && !mDisposable.isDisposed()) { mViewDataBinding.tvCountdown.setText("倒计时(" + (time - aLong - 1) + ")秒"); Log.e(TAG, "accept: " + (time - aLong - 1)); } else { @@ -109,22 +112,22 @@ public class EmergencyActivity extends BaseMvvmActivity>() { @Override public void onChanged(List contacts) { - phoneList = contacts; - mSosNnmberAdapter.setPhoneNumberList(phoneList); + mContactList = contacts; + mEmergencyContactAdapter.setContactList(mContactList); } }); mViewModel.getCacheContact(); @@ -167,10 +170,10 @@ public class EmergencyActivity extends BaseMvvmActivity { + + private Context mContext; + private List mContactList; + + public void setContactList(List contactList) { + mContactList = contactList; + notifyDataSetChanged(); + } + + @NonNull + @Override + public EmergencyContactHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + mContext = parent.getContext(); + return new EmergencyContactHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_emergency_contact, parent, false)); + } + + @Override + public void onBindViewHolder(@NonNull EmergencyContactHolder holder, int position) { + Contact contact = mContactList.get(position); + GlideLoadUtils.getInstance().glideLoad(mContext, contact.getAvatar(), holder.iv_avatar, R.drawable.default_avatar); + holder.tv_name.setText(contact.getName()); + holder.tv_phone.setText(contact.getMobile()); + holder.root.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Intent intent = new Intent(Intent.ACTION_CALL); + Uri data = Uri.parse("tel:" + contact.getMobile()); + intent.setData(data); + mContext.startActivity(intent); + } + }); + } + + @Override + public int getItemCount() { + return mContactList == null ? 0 : mContactList.size(); + } + + public class EmergencyContactHolder extends RecyclerView.ViewHolder { + ConstraintLayout root; + NiceImageView iv_avatar; + TextView tv_name, tv_phone; + + public EmergencyContactHolder(@NonNull View itemView) { + super(itemView); + root = itemView.findViewById(R.id.root); + iv_avatar = itemView.findViewById(R.id.iv_avatar); + tv_name = itemView.findViewById(R.id.tv_name); + tv_phone = itemView.findViewById(R.id.tv_phone); + } + } +} diff --git a/app/src/main/res/drawable-hdpi/icon_notice_alarm.png b/app/src/main/res/drawable-hdpi/icon_notice_alarm.png new file mode 100644 index 0000000..2f061cd Binary files /dev/null and b/app/src/main/res/drawable-hdpi/icon_notice_alarm.png differ diff --git a/app/src/main/res/drawable/bt_alarm_bg.xml b/app/src/main/res/drawable/bt_alarm_bg.xml new file mode 100644 index 0000000..57478c4 --- /dev/null +++ b/app/src/main/res/drawable/bt_alarm_bg.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/bt_sos_bg.xml b/app/src/main/res/drawable/bt_sos_bg.xml new file mode 100644 index 0000000..d7618f8 --- /dev/null +++ b/app/src/main/res/drawable/bt_sos_bg.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/tv_sos_bg.xml b/app/src/main/res/drawable/tv_sos_bg.xml new file mode 100644 index 0000000..050a706 --- /dev/null +++ b/app/src/main/res/drawable/tv_sos_bg.xml @@ -0,0 +1,14 @@ + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_emergency.xml b/app/src/main/res/layout/activity_emergency.xml index 238912d..c90e0e2 100644 --- a/app/src/main/res/layout/activity_emergency.xml +++ b/app/src/main/res/layout/activity_emergency.xml @@ -15,17 +15,48 @@ android:layout_width="match_parent" android:layout_height="match_parent"> - + app:layout_constraintTop_toTopOf="parent"> + + + + + + + + + + app:layout_constraintTop_toBottomOf="@+id/constraintLayout12" /> + tools:listitem="@layout/item_emergency_contact" /> + + + + + + + + + + + + + app:layout_constraintTop_toBottomOf="@+id/constraintLayout9" /> + android:src="@drawable/icon_nodata" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" />