diff --git a/app/src/main/java/com/dosse/airpods/pods/PodsStatus.java b/app/src/main/java/com/dosse/airpods/pods/PodsStatus.java
index 3efd95d..3953213 100644
--- a/app/src/main/java/com/dosse/airpods/pods/PodsStatus.java
+++ b/app/src/main/java/com/dosse/airpods/pods/PodsStatus.java
@@ -6,6 +6,7 @@ import com.dosse.airpods.pods.models.AirPods3;
import com.dosse.airpods.pods.models.AirPodsMax;
import com.dosse.airpods.pods.models.AirPodsPro;
import com.dosse.airpods.pods.models.AirPodsPro2;
+import com.dosse.airpods.pods.models.AirPodsPro3;
import com.dosse.airpods.pods.models.BeatsFlex;
import com.dosse.airpods.pods.models.BeatsSolo3;
import com.dosse.airpods.pods.models.BeatsStudio3;
@@ -82,6 +83,8 @@ public class PodsStatus {
mPods = new AirPodsPro(leftPod, rightPod, casePod); // Airpods Pro
} else if ("1420".equals(idFull) || "2420".equals(idFull)) {
mPods = new AirPodsPro2(leftPod, rightPod, casePod); // Airpods Pro 2
+ } else if ("2720".equals(idFull)) {
+ mPods = new AirPodsPro3(leftPod, rightPod, casePod); // Airpods Pro 3
} else if ('A' == idSingle) {
mPods = new AirPodsMax(singlePod); // Airpods Max
} else if ('B' == idSingle) {
diff --git a/app/src/main/java/com/dosse/airpods/pods/models/AirPodsPro3.java b/app/src/main/java/com/dosse/airpods/pods/models/AirPodsPro3.java
new file mode 100644
index 0000000..93ddedc
--- /dev/null
+++ b/app/src/main/java/com/dosse/airpods/pods/models/AirPodsPro3.java
@@ -0,0 +1,30 @@
+package com.dosse.airpods.pods.models;
+
+import com.dosse.airpods.R;
+import com.dosse.airpods.pods.Pod;
+
+public class AirPodsPro3 extends RegularPods {
+ public AirPodsPro3(Pod leftPod, Pod rightPod, Pod casePod) {
+ super(leftPod, rightPod, casePod);
+ }
+
+ @Override
+ public int getLeftDrawable() {
+ return getPod(LEFT).isConnected() ? R.drawable.podpro3 : R.drawable.podpro_disconnected;
+ }
+
+ @Override
+ public int getRightDrawable() {
+ return getPod(RIGHT).isConnected() ? R.drawable.podpro3 : R.drawable.podpro_disconnected;
+ }
+
+ @Override
+ public int getCaseDrawable() {
+ return getPod(CASE).isConnected() ? R.drawable.podpro_case : R.drawable.podpro_case_disconnected;
+ }
+
+ @Override
+ public String getModel() {
+ return Constants.MODEL_AIRPODS_PRO_3;
+ }
+}
diff --git a/app/src/main/java/com/dosse/airpods/pods/models/Constants.java b/app/src/main/java/com/dosse/airpods/pods/models/Constants.java
index b5e133d..c7439c4 100644
--- a/app/src/main/java/com/dosse/airpods/pods/models/Constants.java
+++ b/app/src/main/java/com/dosse/airpods/pods/models/Constants.java
@@ -6,6 +6,7 @@ public final class Constants {
static final String MODEL_AIRPODS_GEN3 = "airpods3";
static final String MODEL_AIRPODS_PRO = "airpodspro";
static final String MODEL_AIRPODS_PRO_2 = "airpodspro2";
+ public static final String MODEL_AIRPODS_PRO_3 = "airpodspro3";
static final String MODEL_AIRPODS_MAX = "airpodsmax";
static final String MODEL_BEATS_X = "beatsx";
static final String MODEL_BEATS_FLEX = "beatsflex";
diff --git a/app/src/main/res/drawable/podpro3.png b/app/src/main/res/drawable/podpro3.png
new file mode 100644
index 0000000..edde7b5
Binary files /dev/null and b/app/src/main/res/drawable/podpro3.png differ
diff --git a/app/src/main/res/layout-land/activity_main.xml b/app/src/main/res/layout-land/activity_main.xml
index 0bef2ad..8be5a67 100644
--- a/app/src/main/res/layout-land/activity_main.xml
+++ b/app/src/main/res/layout-land/activity_main.xml
@@ -62,6 +62,16 @@
android:layout_height="wrap_content"
android:text="@string/airpodspro" />
+
+
+
+
-
-
+
+
• Apple AirPods 3rd gen
• Apple AirPods Pro
• Apple AirPods Pro 2
+ • Apple AirPods Pro 3
• Apple AirPods Max
• Beats X
• Beats Flex