Pārlūkot izejas kodu

Rich Text and clickable text was added

alejandro 8 gadi atpakaļ
vecāks
revīzija
e62b4eae04

+ 35 - 1
src/main/java/com/owncloud/android/ui/adapter/ActivityListAdapter.java

@@ -24,13 +24,18 @@ import android.graphics.drawable.PictureDrawable;
 import android.net.Uri;
 import android.support.v7.widget.GridLayoutManager;
 import android.support.v7.widget.RecyclerView;
+import android.text.SpannableStringBuilder;
 import android.text.TextUtils;
 import android.text.format.DateUtils;
+import android.text.method.LinkMovementMethod;
+import android.text.style.ClickableSpan;
+import android.text.style.StyleSpan;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.ImageView;
 import android.widget.TextView;
+import android.widget.Toast;
 
 import com.bumptech.glide.GenericRequestBuilder;
 import com.bumptech.glide.Glide;
@@ -38,6 +43,7 @@ import com.bumptech.glide.load.engine.DiskCacheStrategy;
 import com.bumptech.glide.load.model.StreamEncoder;
 import com.bumptech.glide.load.resource.file.FileToStreamDecoder;
 import com.caverock.androidsvg.SVG;
+import com.owncloud.android.MainApp;
 import com.owncloud.android.R;
 import com.owncloud.android.lib.resources.activities.models.Activity;
 import com.owncloud.android.utils.DisplayUtils;
@@ -114,7 +120,8 @@ public class ActivityListAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
             }
 
             if (!TextUtils.isEmpty(activity.getSubject())) {
-                activityViewHolder.subject.setText(activity.getSubject());
+                activityViewHolder.subject.setMovementMethod(LinkMovementMethod.getInstance());
+                activityViewHolder.subject.setText(addClickablePart("{user} aceptó la compartición remota de {file}"), TextView.BufferType.SPANNABLE);
                 activityViewHolder.subject.setVisibility(View.VISIBLE);
             } else {
                 activityViewHolder.subject.setVisibility(View.GONE);
@@ -170,6 +177,33 @@ public class ActivityListAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
                 .into(itemViewType);
     }
 
+    private SpannableStringBuilder addClickablePart(String str) {
+        SpannableStringBuilder ssb = new SpannableStringBuilder(str);
+
+        int idx1 = str.indexOf("{");
+        int idx2 = 0;
+        while (idx1 != -1) {
+            idx2 = str.indexOf("}", idx1) + 1;
+
+            String stringFake="alex12345.png";
+            ssb.replace(idx1,idx2,stringFake);
+            str=ssb.toString();
+            idx2=idx1+stringFake.length();
+            final String clickString = str.substring(idx1, idx2);
+            ssb.setSpan(new ClickableSpan() {
+                @Override
+                public void onClick(View widget) {
+                    Toast.makeText(context, clickString,
+                            Toast.LENGTH_SHORT).show();
+                }
+            }, idx1, idx2, 0);
+            ssb.setSpan(new StyleSpan(android.graphics.Typeface.BOLD),idx1,idx2,0);
+            idx1 = str.indexOf("{", idx2);
+        }
+
+        return ssb;
+    }
+
     @Override
     public int getItemViewType(int position) {
         if(mValues.get(position) instanceof Activity)