Browse Source

empty list icon, use latest empty list layout and butterknife

AndyScherzinger 8 years ago
parent
commit
20ac3b4e69

+ 57 - 0
drawable_resources/ic_list_empty_upload_backup.svg

@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.1"
+   width="24"
+   height="24"
+   viewBox="0 0 24 24"
+   id="svg2"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="ic_list_empty_upload.svg"
+   inkscape:export-filename="C:\DEV\src\Android\Nextcloud\designTweaks\res\drawable-xxxhdpi\ic_list_empty_upload.png"
+   inkscape:export-xdpi="1080"
+   inkscape:export-ydpi="1080">
+  <metadata
+     id="metadata10">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs8" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1920"
+     inkscape:window-height="1005"
+     id="namedview6"
+     showgrid="false"
+     inkscape:zoom="9.8333333"
+     inkscape:cx="-15.305085"
+     inkscape:cy="12"
+     inkscape:window-x="-9"
+     inkscape:window-y="-9"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg2" />
+  <path
+     d="M9,16V10H5L12,3L19,10H15V16H9M5,20V18H19V20H5Z"
+     id="path4"
+     style="fill:#99cde9;fill-opacity:1" />
+</svg>

+ 58 - 0
drawable_resources/ic_notification_light_grey.svg

@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   height="16"
+   width="16"
+   version="1.1"
+   viewBox="0 0 16 16"
+   id="svg4"
+   sodipodi:docname="ic_notification_light_grey.svg"
+   inkscape:version="0.92.1 r15371"
+   inkscape:export-filename="C:\DEV\src\Android\Nextcloud\notifications\src\main\res\drawable-mdpi\ic_notification_light_grey.png"
+   inkscape:export-xdpi="432"
+   inkscape:export-ydpi="432">
+  <metadata
+     id="metadata10">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs8" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1920"
+     inkscape:window-height="1005"
+     id="namedview6"
+     showgrid="false"
+     inkscape:zoom="14.75"
+     inkscape:cx="-10.20339"
+     inkscape:cy="8"
+     inkscape:window-x="-9"
+     inkscape:window-y="-9"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg4" />
+  <path
+     d="m8 2c-0.5523 0-1 0.4477-1 1 0 0.0472 0.021 0.0873 0.0273 0.1328-1.7366 0.4362-3.0273 1.9953-3.0273 3.8672v2l-1 1v1h10v-1l-1-1v-2c0-1.8719-1.291-3.431-3.0273-3.8672 0.0063-0.0455 0.0273-0.0856 0.0273-0.1328 0-0.5523-0.4477-1-1-1zm-2 10c0 1.1046 0.8954 2 2 2s2-0.8954 2-2z"
+     fill="#fff"
+     id="path2"
+     style="fill:#000000;fill-opacity:1;opacity:0.5" />
+</svg>

+ 50 - 0
drawable_resources/notification-icon_backup.svg

@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.1"
+   xml:space="preserve"
+   height="62"
+   width="62"
+   enable-background="new 0 0 196.6 72"
+   y="0px"
+   x="0px"
+   viewBox="0 0 62.000002 62"
+   id="svg2"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="notification-icon.svg"
+   inkscape:export-filename="C:\DEV\src\Android\nextcloud_android\res\drawable-xxxhdpi\notification_icon.png"
+   inkscape:export-xdpi="139.35001"
+   inkscape:export-ydpi="139.35001"><metadata
+     id="metadata10"><rdf:RDF><cc:Work
+         rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><defs
+     id="defs8" /><sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1920"
+     inkscape:window-height="1005"
+     id="namedview6"
+     showgrid="false"
+     inkscape:zoom="6.9411765"
+     inkscape:cx="31"
+     inkscape:cy="17"
+     inkscape:window-x="-9"
+     inkscape:window-y="-9"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg2" /><path
+     style="color:#000000;text-indent:0;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;text-transform:none;block-progression:tb;white-space:normal;isolation:auto;mix-blend-mode:normal;solid-color:#000000;fill:#ffffff;color-rendering:auto;image-rendering:auto;shape-rendering:auto;enable-background:accumulate"
+     d="m 31.023729,17.856035 c -5.95,6e-4 -10.947,4.0745 -12.473,9.5549 -1.333,-2.931 -4.266,-5.0088 -7.674,-5.0092 -4.6384002,5e-4 -8.4524002,3.8142 -8.4530002,8.4532 -8.321e-4,4.6397 3.8137,8.4544 8.4534002,8.455 3.4081,-4.09e-4 6.3392,-2.0792 7.6716,-5.011 1.5261,5.4817 6.5242,9.5569 12.475,9.5569 5.918,4.57e-4 10.89,-4.0302 12.448,-9.4649 1.3541,2.8776 4.242,4.9184 7.6106,4.9188 4.6406,8.28e-4 8.4558,-3.8144 8.4551,-8.455 -4.57e-4,-4.6397 -3.8154,-8.454 -8.4551,-8.4533 -3.3687,8.57e-4 -6.2587,2.0412 -7.6123,4.9188 -1.559,-5.4338 -6.528,-9.4644 -12.446,-9.464 z m 0,4.9623 c 4.4687,-2.97e-4 8.0384,3.5683 8.0389,8.0371 2.28e-4,4.4693 -3.5696,8.0391 -8.0389,8.0388 -4.4687,-4.38e-4 -8.0375,-3.5701 -8.0372,-8.0388 4.57e-4,-4.4682 3.5689,-8.0366 8.0372,-8.0371 z m -20.147,4.5456 c 1.9576,2.26e-4 3.4908,1.5334 3.4911,3.491 3.43e-4,1.958 -1.533,3.4925 -3.4911,3.4927 -1.9580002,-2.28e-4 -3.4913002,-1.5347 -3.4911002,-3.4927 2.284e-4,-1.9575 1.5334,-3.4907 3.4911002,-3.491 z m 40.205,0 c 1.9579,-3.43e-4 3.4925,1.533 3.4927,3.491 4.57e-4,1.9584 -1.5343,3.493 -3.4927,3.4927 -1.958,-2.28e-4 -3.4914,-1.5347 -3.4911,-3.4927 2.21e-4,-1.9575 1.5335,-3.4907 3.4911,-3.491 z"
+     id="path4"
+     inkscape:connector-curvature="0" /></svg>

+ 59 - 0
src/main/java/com/owncloud/android/ui/activity/NotificationsActivity.java

@@ -21,11 +21,22 @@
 package com.owncloud.android.ui.activity;
 
 import android.os.Bundle;
+import android.support.v7.widget.RecyclerView;
 import android.view.MenuItem;
+import android.view.View;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.ProgressBar;
+import android.widget.TextView;
 
 import com.owncloud.android.R;
 import com.owncloud.android.lib.common.utils.Log_OC;
 
+import butterknife.BindString;
+import butterknife.BindView;
+import butterknife.ButterKnife;
+import butterknife.Unbinder;
+
 /**
  * Activity displaying all server side stored activity items.
  */
@@ -33,12 +44,39 @@ public class NotificationsActivity extends FileActivity {
 
     private static final String TAG = NotificationsActivity.class.getSimpleName();
 
+    @BindView(R.id.empty_list_view)
+    public LinearLayout emptyContentContainer;
+
+    @BindView(R.id.empty_list_view_text)
+    public TextView emptyContentMessage;
+
+    @BindView(R.id.empty_list_view_headline)
+    public TextView emptyContentHeadline;
+
+    @BindView(R.id.empty_list_icon)
+    public ImageView emptyContentIcon;
+
+    @BindView(R.id.empty_list_progress)
+    public ProgressBar emptyContentProgressBar;
+
+    @BindView(android.R.id.list)
+    public RecyclerView recyclerView;
+
+    @BindString(R.string.notifications_no_results_headline)
+    public String noResultsHeadline;
+
+    @BindString(R.string.notifications_no_results_message)
+    public String noResultsMessage;
+
+    private Unbinder unbinder;
+
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         Log_OC.v(TAG, "onCreate() start");
         super.onCreate(savedInstanceState);
 
         setContentView(R.layout.notifications_layout);
+        unbinder = ButterKnife.bind(this);
 
         // setup toolbar
         setupToolbar();
@@ -54,6 +92,9 @@ public class NotificationsActivity extends FileActivity {
      * sets up the UI elements and loads all activity items.
      */
     private void setupContent() {
+        emptyContentIcon.setImageResource(R.drawable.ic_notification_light_grey);
+        setEmptyContent(noResultsHeadline,noResultsMessage);
+
         // TODO add all (recycler) view relevant code + data loading + adapter etc.
     }
 
@@ -75,4 +116,22 @@ public class NotificationsActivity extends FileActivity {
 
         return retval;
     }
+
+    private void setLoadingMessage() {
+        emptyContentHeadline.setText(R.string.file_list_loading);
+        emptyContentMessage.setText("");
+
+        emptyContentIcon.setVisibility(View.GONE);
+        emptyContentProgressBar.setVisibility(View.VISIBLE);
+    }
+
+    private void setEmptyContent(String headline, String message) {
+        if (emptyContentContainer != null && emptyContentMessage != null) {
+            emptyContentHeadline.setText(headline);
+            emptyContentMessage.setText(message);
+
+            emptyContentProgressBar.setVisibility(View.GONE);
+            emptyContentIcon.setVisibility(View.VISIBLE);
+        }
+    }
 }

BIN
src/main/res/drawable-hdpi/ic_notification_light_grey.png


BIN
src/main/res/drawable-mdpi/ic_notification_light_grey.png


BIN
src/main/res/drawable-xhdpi/ic_notification_light_grey.png


BIN
src/main/res/drawable-xxhdpi/ic_notification_light_grey.png


BIN
src/main/res/drawable-xxxhdpi/ic_notification_light_grey.png


+ 1 - 32
src/main/res/layout/notifications_layout.xml

@@ -49,39 +49,8 @@
                 android:layout_marginLeft="-3dp"
                 android:layout_marginBottom="-3dp"/>
 
-            <LinearLayout
-                android:id="@android:id/progress"
-                android:layout_width="match_parent"
-                android:layout_height="wrap_content"
-                android:layout_gravity="center"
-                android:orientation="vertical"
-                android:visibility="gone">
-
-                <ProgressBar
-                    android:id="@+id/notificationsSyncProgressBar"
-                    android:layout_width="72dp"
-                    android:layout_height="72dp"
-                    android:layout_gravity="center_horizontal"/>
-
-                <TextView
-                    android:id="@+id/progressText"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content"
-                    android:layout_gravity="center_horizontal"
-                    android:layout_margin="@dimen/standard_half_margin"
-                    android:text="@string/notifications_loading_activity"
-                    android:textSize="26sp"/>
-            </LinearLayout>
+            <include layout="@layout/empty_list"/>
 
-            <TextView
-                android:id="@android:id/empty"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_gravity="center"
-                android:layout_margin="@dimen/standard_margin"
-                android:gravity="center"
-                android:text="@string/notifications_no_results"
-                android:visibility="gone" />
         </FrameLayout>
 
     </LinearLayout>

+ 2 - 1
src/main/res/values/strings.xml

@@ -583,7 +583,8 @@
     <string name="activity_list_no_results">No activities found.</string>
 
     <string name="notifications_loading_activity">Loading notifications&#8230;</string>
-    <string name="notifications_no_results">No notifications.</string>
+    <string name="notifications_no_results_headline">No notifications</string>
+    <string name="notifications_no_results_message">Please check back later.</string>
 
     <string name="upload_file_dialog_title">Input upload filename and filetype</string>
     <string name="upload_file_dialog_filename">Filename</string>