From 04a0f241f23b0f25395b35fc6375a38f3aeffc0d Mon Sep 17 00:00:00 2001 From: Akash Yadav Date: Thu, 23 Dec 2021 16:36:13 +0530 Subject: [PATCH] Create base classes for attribute editors --- .idea/misc.xml | 2 + .../adapters/AttributeListAdapter.java | 7 + .../attreditors/DimensionAttrEditor.java | 61 +++++++ .../attreditors/IAttrEditorFragment.java | 152 ++++++++++++++++++ .../fragments/sheets/AttrEditorSheet.java | 8 +- .../androidide/models/XMLAttribute.java | 38 ++++- .../res/layout/layout_base_attr_editor.xml | 52 ++++++ .../res/layout/layout_dimension_editor.xml | 74 +++++++++ 8 files changed, 392 insertions(+), 2 deletions(-) create mode 100644 app/src/main/java/com/itsaky/androidide/fragments/attreditors/DimensionAttrEditor.java create mode 100644 app/src/main/java/com/itsaky/androidide/fragments/attreditors/IAttrEditorFragment.java create mode 100644 app/src/main/res/layout/layout_base_attr_editor.xml create mode 100644 app/src/main/res/layout/layout_dimension_editor.xml diff --git a/.idea/misc.xml b/.idea/misc.xml index 55add668c..7119b2011 100755 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -31,7 +31,9 @@ + + diff --git a/app/src/main/java/com/itsaky/androidide/adapters/AttributeListAdapter.java b/app/src/main/java/com/itsaky/androidide/adapters/AttributeListAdapter.java index ceff2a057..0daf4c640 100644 --- a/app/src/main/java/com/itsaky/androidide/adapters/AttributeListAdapter.java +++ b/app/src/main/java/com/itsaky/androidide/adapters/AttributeListAdapter.java @@ -20,13 +20,16 @@ package com.itsaky.androidide.adapters; import android.graphics.Typeface; import android.text.SpannableStringBuilder; import android.text.Spanned; +import android.text.style.ForegroundColorSpan; import android.text.style.StyleSpan; import android.view.LayoutInflater; import android.view.ViewGroup; import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; import androidx.recyclerview.widget.RecyclerView; +import com.itsaky.androidide.R; import com.itsaky.androidide.databinding.LayoutAttrEditorSheetItemBinding; import com.itsaky.androidide.models.XMLAttribute; @@ -57,6 +60,10 @@ public class AttributeListAdapter extends RecyclerView.Adapter CREATOR = new Creator () { + @NonNull + @Contract("_ -> new") + @Override + public XMLAttribute createFromParcel (Parcel in) { + return new XMLAttribute (in); + } + + @NonNull + @Contract(value = "_ -> new", pure = true) + @Override + public XMLAttribute[] newArray (int size) { + return new XMLAttribute[size]; + } + }; + /** * Set the given string as a value to this attribute. * This will set {@link #isApplied()} to return {@code true}. @@ -88,4 +111,17 @@ public class XMLAttribute extends UiAttribute { public static XMLAttribute newAndroidAttribute (String name) { return new XMLAttribute ("android", name, "", false); } + + @Override + public int describeContents () { + return 0; + } + + @Override + public void writeToParcel (@NonNull Parcel dest, int flags) { + dest.writeString (getNamespace ()); + dest.writeString (getAttributeName ()); + dest.writeString (getValue ()); + dest.writeByte ((byte) (isApplied ? 1 : 0)); + } } diff --git a/app/src/main/res/layout/layout_base_attr_editor.xml b/app/src/main/res/layout/layout_base_attr_editor.xml new file mode 100644 index 000000000..fbd36ef13 --- /dev/null +++ b/app/src/main/res/layout/layout_base_attr_editor.xml @@ -0,0 +1,52 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/layout_dimension_editor.xml b/app/src/main/res/layout/layout_dimension_editor.xml new file mode 100644 index 000000000..b66c98f14 --- /dev/null +++ b/app/src/main/res/layout/layout_dimension_editor.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file