Merge "Fix Settings app crash cause by BadParcelableException" into udc-dev
diff --git a/src/com/android/settings/fuelgauge/batterytip/tips/BatteryDefenderTip.java b/src/com/android/settings/fuelgauge/batterytip/tips/BatteryDefenderTip.java
index 15d8c99..4a8f98b 100644
--- a/src/com/android/settings/fuelgauge/batterytip/tips/BatteryDefenderTip.java
+++ b/src/com/android/settings/fuelgauge/batterytip/tips/BatteryDefenderTip.java
@@ -19,6 +19,7 @@
 import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.content.Intent;
+import android.os.Parcel;
 import android.util.Log;
 
 import androidx.preference.Preference;
@@ -43,6 +44,10 @@
         mIsPluggedIn = isPluggedIn;
     }
 
+    private BatteryDefenderTip(Parcel in) {
+        super(in);
+    }
+
     @Override
     public CharSequence getTitle(Context context) {
         return context.getString(R.string.battery_tip_limited_temporarily_title);
@@ -113,4 +118,14 @@
 
         Log.i(TAG, "send resume charging broadcast intent=" + intent);
     }
+
+    public static final Creator CREATOR = new Creator() {
+        public BatteryTip createFromParcel(Parcel in) {
+            return new BatteryDefenderTip(in);
+        }
+
+        public BatteryTip[] newArray(int size) {
+            return new BatteryDefenderTip[size];
+        }
+    };
 }
diff --git a/src/com/android/settings/fuelgauge/batterytip/tips/DockDefenderTip.java b/src/com/android/settings/fuelgauge/batterytip/tips/DockDefenderTip.java
index 134cfa0..327f974 100644
--- a/src/com/android/settings/fuelgauge/batterytip/tips/DockDefenderTip.java
+++ b/src/com/android/settings/fuelgauge/batterytip/tips/DockDefenderTip.java
@@ -19,6 +19,7 @@
 import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.content.Intent;
+import android.os.Parcel;
 import android.util.Log;
 
 import androidx.preference.Preference;
@@ -43,6 +44,10 @@
         mMode = mode;
     }
 
+    private DockDefenderTip(Parcel in) {
+        super(in);
+    }
+
     public int getMode() {
         return mMode;
     }
@@ -157,4 +162,14 @@
 
         Log.i(TAG, "send resume charging broadcast intent=" + intent);
     }
+
+    public static final Creator CREATOR = new Creator() {
+        public BatteryTip createFromParcel(Parcel in) {
+            return new DockDefenderTip(in);
+        }
+
+        public BatteryTip[] newArray(int size) {
+            return new DockDefenderTip[size];
+        }
+    };
 }
diff --git a/src/com/android/settings/fuelgauge/batterytip/tips/IncompatibleChargerTip.java b/src/com/android/settings/fuelgauge/batterytip/tips/IncompatibleChargerTip.java
index dc9b804..1c5616f 100644
--- a/src/com/android/settings/fuelgauge/batterytip/tips/IncompatibleChargerTip.java
+++ b/src/com/android/settings/fuelgauge/batterytip/tips/IncompatibleChargerTip.java
@@ -18,7 +18,7 @@
 
 import android.app.settings.SettingsEnums;
 import android.content.Context;
-import android.content.Intent;
+import android.os.Parcel;
 import android.util.Log;
 
 import androidx.preference.Preference;
@@ -36,6 +36,10 @@
         super(TipType.INCOMPATIBLE_CHARGER, state, /* showDialog */ false);
     }
 
+    private IncompatibleChargerTip(Parcel in) {
+        super(in);
+    }
+
     @Override
     public CharSequence getTitle(Context context) {
         return context.getString(R.string.battery_tip_incompatible_charging_title);
@@ -84,4 +88,14 @@
         cardPreference.setPrimaryButtonContentDescription(context.getString(
                 R.string.battery_tip_incompatible_charging_content_description));
     }
+
+    public static final Creator CREATOR = new Creator() {
+        public BatteryTip createFromParcel(Parcel in) {
+            return new IncompatibleChargerTip(in);
+        }
+
+        public BatteryTip[] newArray(int size) {
+            return new IncompatibleChargerTip[size];
+        }
+    };
 }