Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d1039590 authored by Marten Gajda's avatar Marten Gajda
Browse files

initial refactoring of details view

We allow to assign FieldDescriptors to views in the XML Layout now
This is not perfect yet, because it doesn't work directly on TextViews &
co., we still need an additional LinearLayout for each element.
We're going to improve that later on.
parent 700da383
Loading
Loading
Loading
Loading
+6 −0
Original line number Original line Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<org.dmfs.tasks.widget.ListColorView xmlns:android="http://schemas.android.com/apk/res/android"
    style="@style/task_widget"
    android:orientation="vertical" >

</org.dmfs.tasks.widget.ListColorView>
 No newline at end of file
+145 −0
Original line number Original line Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<org.dmfs.tasks.widget.TaskView xmlns:android="http://schemas.android.com/apk/res/android"
<org.dmfs.tasks.widget.TaskView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/content"
    android:id="@+id/content"
    android:layout_width="match_parent"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical" >
    android:orientation="vertical" >


    <org.dmfs.tasks.widget.ListColorView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:clipToPadding="false"
        android:orientation="vertical"
        android:paddingBottom="8dp"
        android:paddingTop="8dp"
        app:fieldDescriptor="@id/task_field_list_color" >

        <org.dmfs.tasks.widget.TextFieldView
            android:id="@+id/task_title"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="8dp"
            android:paddingEnd="48dp"
            android:paddingLeft="48dp"
            android:paddingRight="48dp"
            android:paddingStart="48dp"
            app:fieldDescriptor="@id/task_field_title" >

            <TextView
                android:id="@+id/text"
                style="@style/field_view_text_value"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:autoLink="none"
                android:fontFamily="sans-serif-light"
                android:textColor="#ffffffff"
                android:textSize="28sp" >
            </TextView>
        </org.dmfs.tasks.widget.TextFieldView>

        <org.dmfs.tasks.widget.TimeFieldView
            xmlns:android="http://schemas.android.com/apk/res/android"
            style="@style/task_widget"
            android:paddingEnd="56dp"
            android:paddingLeft="56dp"
            android:paddingStart="56dp"
            app:fieldDescriptor="@id/task_field_due" >

            <TextView
                android:id="@android:id/text1"
                style="@style/field_view_text_value"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:drawableLeft="@drawable/ic_tab_due"
                android:drawablePadding="12dp"
                android:drawableStart="@drawable/ic_tab_due"
                android:textColor="#ffffffff"
                android:textSize="18sp" >
            </TextView>

            <TextView
                android:id="@android:id/text2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="44dp"
                android:textColor="#ffffffff" >
            </TextView>

            <LinearLayout
                android:id="@+id/buttons"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                android:visibility="gone" >

                <TextView
                    android:id="@+id/button_add_one_day"
                    style="@style/time_forward_button"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:text="@string/button_add_one_day"
                    android:textColor="#a0ffffff" />

                <TextView
                    android:id="@+id/button_add_one_hour"
                    style="@style/time_forward_button"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:text="@string/button_add_one_hour"
                    android:textColor="#a0ffffff" />
            </LinearLayout>
        </org.dmfs.tasks.widget.TimeFieldView>
    </org.dmfs.tasks.widget.ListColorView>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_margin="8dp"
        android:orientation="horizontal"
        android:paddingEnd="48dp"
        android:paddingLeft="48dp"
        android:paddingRight="48dp"
        android:paddingStart="48dp" >

        <TextView
            style="@style/field_view_text_value"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:autoLink="none"
            android:text=" in "
            android:textColor="#80000000"
            android:textSize="14sp" >
        </TextView>

        <org.dmfs.tasks.widget.TextFieldView
            android:id="@+id/list_name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            app:fieldDescriptor="@id/task_field_list_name" >

            <TextView
                android:id="@id/text"
                style="@style/field_view_text_value"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:autoLink="none"
                android:textColor="#80000000"
                android:textSize="14sp" >
            </TextView>
        </org.dmfs.tasks.widget.TextFieldView>

        <org.dmfs.tasks.widget.TextFieldView
            android:id="@+id/account_name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            app:fieldDescriptor="@id/task_field_account_name" >

            <TextView
                android:id="@id/text"
                style="@style/field_view_text_value"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:autoLink="none"
                android:textColor="#80000000"
                android:textSize="14sp"
                android:visibility="gone" >
            </TextView>
        </org.dmfs.tasks.widget.TextFieldView>
    </LinearLayout>

</org.dmfs.tasks.widget.TaskView>
</org.dmfs.tasks.widget.TaskView>
 No newline at end of file
+4 −0
Original line number Original line Diff line number Diff line
@@ -4,4 +4,8 @@
    <attr name="primaryColor" format="color" />
    <attr name="primaryColor" format="color" />
    <attr name="primaryColorShaded" format="color" />
    <attr name="primaryColorShaded" format="color" />


    <declare-styleable name="AbstractFieldView">
        <attr name="fieldDescriptor" format="integer" />
    </declare-styleable>

</resources>
</resources>
 No newline at end of file

res/values/ids.xml

0 → 100644
+23 −0
Original line number Original line Diff line number Diff line
<resources>

    <item name="task_field_account_type" type="id"/>
    <item name="task_field_account_name" type="id"/>
    <item name="task_field_list_color" type="id"/>
    <item name="task_field_list_name" type="id"/>
    <item name="task_field_title" type="id"/>
    <item name="task_field_status" type="id"/>
    <item name="task_field_description" type="id"/>
    <item name="task_field_due" type="id"/>
    <item name="task_field_dtstart" type="id"/>
    <item name="task_field_location" type="id"/>
    <item name="task_field_percent_complete" type="id"/>
    <item name="task_field_completed" type="id"/>
    <item name="task_field_all_day" type="id"/>
    <item name="task_field_timezone" type="id"/>
    <item name="task_field_checklist" type="id"/>
    <item name="task_field_created" type="id"/>
    <item name="task_field_priority" type="id"/>
    <item name="task_field_classification" type="id"/>
    <item name="task_field_url" type="id"/>

</resources>
 No newline at end of file
+26 −2
Original line number Original line Diff line number Diff line
@@ -162,6 +162,18 @@ public class EditTaskFragment extends SupportFragment implements LoaderManager.L
	@Retain(key = PREFERENCE_LAST_ACCOUNT_TYPE, classNS = "", permanent = true)
	@Retain(key = PREFERENCE_LAST_ACCOUNT_TYPE, classNS = "", permanent = true)
	private String mLastAccountType = null;
	private String mLastAccountType = null;


	/**
	 * A Runnable that updates the view.
	 */
	private Runnable mUpdateViewRunnable = new Runnable()
	{
		@Override
		public void run()
		{
			updateView();
		}
	};



	/**
	/**
	 * Mandatory empty constructor for the fragment manager to instantiate the fragment (e.g. upon screen orientation changes).
	 * Mandatory empty constructor for the fragment manager to instantiate the fragment (e.g. upon screen orientation changes).
@@ -378,6 +390,18 @@ public class EditTaskFragment extends SupportFragment implements LoaderManager.L
	}
	}




	/**
	 * Update the view. This doesn't call {@link #updateView()} right away, instead it posts it.
	 */
	private void postUpdateView()
	{
		if (mContent != null)
		{
			mContent.post(mUpdateViewRunnable);
		}
	}


	@Override
	@Override
	public void onModelLoaded(Model model)
	public void onModelLoaded(Model model)
	{
	{
@@ -389,7 +413,7 @@ public class EditTaskFragment extends SupportFragment implements LoaderManager.L
		if (mModel == null || !mModel.equals(model))
		if (mModel == null || !mModel.equals(model))
		{
		{
			mModel = model;
			mModel = model;
			updateView();
			postUpdateView();
		}
		}
	}
	}


@@ -531,7 +555,7 @@ public class EditTaskFragment extends SupportFragment implements LoaderManager.L
		}
		}
		else
		else
		{
		{
			updateView();
			postUpdateView();
		}
		}
	}
	}


Loading