瀏覽代碼

enhance activity list design

tobiasKaminsky 7 年之前
父節點
當前提交
9a30bae5a8

+ 12 - 11
src/main/java/com/owncloud/android/ui/adapter/ActivityListAdapter.java

@@ -21,11 +21,13 @@ package com.owncloud.android.ui.adapter;
 
 import android.content.Context;
 import android.content.res.Resources;
+import android.graphics.Color;
 import android.graphics.drawable.PictureDrawable;
 import android.net.Uri;
 import android.support.v7.widget.RecyclerView;
 import android.text.Spannable;
 import android.text.SpannableStringBuilder;
+import android.text.TextPaint;
 import android.text.TextUtils;
 import android.text.method.LinkMovementMethod;
 import android.text.style.ClickableSpan;
@@ -58,7 +60,6 @@ import com.owncloud.android.lib.resources.files.FileUtils;
 import com.owncloud.android.ui.interfaces.ActivityListInterface;
 import com.owncloud.android.utils.DisplayUtils;
 import com.owncloud.android.utils.MimeTypeUtil;
-import com.owncloud.android.utils.ThemeUtils;
 import com.owncloud.android.utils.glide.CustomGlideStreamLoader;
 import com.owncloud.android.utils.svg.SvgDecoder;
 import com.owncloud.android.utils.svg.SvgDrawableTranscoder;
@@ -103,19 +104,16 @@ public class ActivityListAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
             Activity activity = (Activity) o;
             String time;
             if (activity.getDatetime() != null) {
-                time = DisplayUtils.getRelativeTimestamp(context,
-                        activity.getDatetime().getTime()).toString();
+                time = DisplayUtils.getRelativeTimestampDayWise(context, activity.getDatetime().getTime()).toString();
             } else if (activity.getDate() != null) {
-                time = DisplayUtils.getRelativeTimestamp(context,
-                        activity.getDate().getTime()).toString();
+                time = DisplayUtils.getRelativeTimestampDayWise(context, activity.getDate().getTime()).toString();
             } else {
-                time = "Unknown";
+                time = context.getString(R.string.date_unknown);
             }
 
             if (sTime.equalsIgnoreCase(time)) {
                 mValues.add(activity);
             } else {
-
                 sTime = time;
                 mValues.add(sTime);
                 mValues.add(activity);
@@ -147,8 +145,7 @@ public class ActivityListAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
                 activityViewHolder.dateTime.setText(DisplayUtils.getRelativeTimestamp(context,
                         activity.getDatetime().getTime()));
             } else {
-                activityViewHolder.dateTime.setText(DisplayUtils.getRelativeTimestamp(context,
-                        new Date().getTime()));
+                activityViewHolder.dateTime.setText(DisplayUtils.getRelativeTimestamp(context, new Date().getTime()));
             }
 
             if (activity.getRichSubjectElement() != null &&
@@ -304,10 +301,14 @@ public class ActivityListAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
                     public void onClick(View widget) {
                         activityListInterface.onActivityClicked(richObject);
                     }
+
+                    @Override
+                    public void updateDrawState(TextPaint ds) {
+                        ds.setUnderlineText(false);
+                    }
                 }, idx1, idx2, 0);
                 ssb.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), idx1, idx2, 0);
-                ssb.setSpan(new ForegroundColorSpan(ThemeUtils.primaryAccentColor()), idx1, idx2,
-                        Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
+                ssb.setSpan(new ForegroundColorSpan(Color.BLACK), idx1, idx2, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
             }
             idx1 = text.indexOf("{", idx2);
         }

+ 17 - 5
src/main/java/com/owncloud/android/utils/DisplayUtils.java

@@ -289,7 +289,7 @@ public class DisplayUtils {
     }
 
     /**
-     * calculates the relative time string based on the given modificaion timestamp.
+     * calculates the relative time string based on the given modification timestamp.
      *
      * @param context the app's context
      * @param modificationTimestamp the UNIX timestamp of the file modification time.
@@ -300,6 +300,18 @@ public class DisplayUtils {
                 DateUtils.WEEK_IN_MILLIS, 0);
     }
 
+    /**
+     * calculates the relative time string based on the given modification timestamp.
+     *
+     * @param context               the app's context
+     * @param modificationTimestamp the UNIX timestamp of the file modification time.
+     * @return a relative time string
+     */
+    public static CharSequence getRelativeTimestampDayWise(Context context, long modificationTimestamp) {
+        return getRelativeDateTimeString(context, modificationTimestamp, DateUtils.DAY_IN_MILLIS,
+                DateUtils.WEEK_IN_MILLIS, 0);
+    }
+
     /**
      * determines the info level color based on certain thresholds
      * {@link #RELATIVE_THRESHOLD_WARNING} and {@link #RELATIVE_THRESHOLD_CRITICAL}.
@@ -323,8 +335,8 @@ public class DisplayUtils {
         }
     }
 
-    public static CharSequence getRelativeDateTimeString(
-            Context c, long time, long minResolution, long transitionResolution, int flags) {
+    public static CharSequence getRelativeDateTimeString(Context c, long time, long minResolution,
+                                                         long transitionResolution, int flags) {
 
         CharSequence dateString = "";
 
@@ -333,7 +345,7 @@ public class DisplayUtils {
             return DisplayUtils.unixTimeToHumanReadable(time);
         }
         // < 60 seconds -> seconds ago
-        else if ((System.currentTimeMillis() - time) < 60 * 1000) {
+        else if ((System.currentTimeMillis() - time) < 60 * 1000 && minResolution == DateUtils.SECOND_IN_MILLIS) {
             return c.getString(R.string.file_list_seconds_ago);
         } else {
             dateString = DateUtils.getRelativeDateTimeString(c, time, minResolution, transitionResolution, flags);
@@ -347,7 +359,7 @@ public class DisplayUtils {
                 return parts[1];
             }
         }
-        //dateString contains unexpected format. fallback: use relative date time string from android api as is.
+        // dateString contains unexpected format. fallback: use relative date time string from android api as is.
         return dateString.toString();
     }
 

+ 1 - 0
src/main/res/layout/activity_list_item.xml

@@ -34,6 +34,7 @@
         android:layout_height="@dimen/file_icon_size"
         android:layout_alignParentTop="true"
         android:layout_marginRight="24dp"
+        android:alpha="0.5"
         android:src="@drawable/ic_activity"/>
 
     <LinearLayout

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

@@ -710,4 +710,5 @@
     <string name="push_notifications_not_implemented">Push notifications disabled due to dependencies on proprietary Google Play services.</string>
     <string name="push_notifications_old_login">No push notifications due to outdated login session. Please consider re-adding your account.</string>
     <string name="push_notifications_temp_error">Push notifications currently not available.</string>
+    <string name="date_unknown">Unknown</string>
 </resources>