فهرست منبع

Improvement RichObject

alejandro 8 سال پیش
والد
کامیت
40b4d3de55

+ 20 - 2
src/main/java/com/owncloud/android/ui/activity/ActivitiesListActivity.java

@@ -43,6 +43,7 @@ import android.widget.TextView;
 import com.owncloud.android.MainApp;
 import com.owncloud.android.R;
 import com.owncloud.android.authentication.AccountUtils;
+import com.owncloud.android.datamodel.OCFile;
 import com.owncloud.android.lib.common.OwnCloudAccount;
 import com.owncloud.android.lib.common.OwnCloudClient;
 import com.owncloud.android.lib.common.OwnCloudClientManagerFactory;
@@ -51,6 +52,9 @@ import com.owncloud.android.lib.common.operations.RemoteOperationResult;
 import com.owncloud.android.lib.common.utils.Log_OC;
 import com.owncloud.android.lib.resources.activities.GetRemoteActivitiesOperation;
 import com.owncloud.android.ui.adapter.ActivityListAdapter;
+import com.owncloud.android.ui.interfaces.ActivityListInterface;
+import com.owncloud.android.ui.preview.PreviewImageActivity;
+import com.owncloud.android.ui.preview.PreviewImageFragment;
 import com.owncloud.android.utils.AnalyticsUtils;
 import com.owncloud.android.utils.DisplayUtils;
 
@@ -66,7 +70,7 @@ import butterknife.Unbinder;
 /**
  * Activity displaying all server side stored activity items.
  */
-public class ActivitiesListActivity extends FileActivity {
+public class ActivitiesListActivity extends FileActivity implements ActivityListInterface {
 
     private static final String TAG = ActivitiesListActivity.class.getSimpleName();
     private static final String SCREEN_NAME = "Activities";
@@ -159,7 +163,7 @@ public class ActivitiesListActivity extends FileActivity {
         emptyContentIcon.setImageResource(R.drawable.ic_activity_light_grey);
         setLoadingMessage();
 
-        adapter = new ActivityListAdapter(this);
+        adapter = new ActivityListAdapter(this,this);
         recyclerView.setAdapter(adapter);
 
         LinearLayoutManager layoutManager = new LinearLayoutManager(this);
@@ -308,4 +312,18 @@ public class ActivitiesListActivity extends FileActivity {
 
         AnalyticsUtils.setCurrentScreenName(this, SCREEN_NAME, TAG);
     }
+
+
+    @Override
+    public void onActivityClicked() {
+        Intent showDetailsIntent;
+        OCFile ocFile=new OCFile("/alex123.jpg");
+        if(PreviewImageFragment.canBePreviewed(ocFile))
+            showDetailsIntent = new Intent(this, PreviewImageActivity.class);
+        else
+            showDetailsIntent = new Intent(this, FileDisplayActivity.class);
+        showDetailsIntent.putExtra(EXTRA_FILE, ocFile);
+        showDetailsIntent.putExtra(EXTRA_ACCOUNT, getAccount());
+        startActivity(showDetailsIntent);
+    }
 }

+ 7 - 6
src/main/java/com/owncloud/android/ui/adapter/ActivityListAdapter.java

@@ -35,7 +35,6 @@ 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;
@@ -43,9 +42,9 @@ 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.ui.interfaces.ActivityListInterface;
 import com.owncloud.android.utils.DisplayUtils;
 import com.owncloud.android.utils.svg.SvgDecoder;
 import com.owncloud.android.utils.svg.SvgDrawableTranscoder;
@@ -64,13 +63,15 @@ public class ActivityListAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
 
     public static final int HEADER_TYPE=100;
     public static final int ACTIVITY_TYPE=101;
+    private final ActivityListInterface activityListInterface;
 
     private Context context;
     private List<Object> mValues;
 
-    public ActivityListAdapter(Context context) {
+    public ActivityListAdapter(Context context, ActivityListInterface activityListInterface) {
         this.mValues = new ArrayList<>();
         this.context = context;
+        this.activityListInterface=activityListInterface;
     }
 
     public void setActivityItems(List<Object> activityItems) {
@@ -145,9 +146,10 @@ public class ActivityListAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
             richObjects.add("http://static3.businessinsider.com/image/55b675ab2acae7c7018ba34e-1200/milky-way-galaxy.jpg");
             richObjects.add("http://static3.businessinsider.com/image/55b675ab2acae7c7018ba34e-1200/milky-way-galaxy.jpg");
 
-            RichObjectAdapter richObjectAdapter=new RichObjectAdapter(richObjects);
+            RichObjectAdapter richObjectAdapter=new RichObjectAdapter(context,activityListInterface);
             activityViewHolder.list.setLayoutManager(new GridLayoutManager(context,4));
             activityViewHolder.list.setAdapter(richObjectAdapter);
+            richObjectAdapter.setValues(richObjects);
 
         }else{
             ActivityViewHeaderHolder activityViewHeaderHolder=(ActivityViewHeaderHolder)holder;
@@ -193,8 +195,7 @@ public class ActivityListAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
             ssb.setSpan(new ClickableSpan() {
                 @Override
                 public void onClick(View widget) {
-                    Toast.makeText(context, clickString,
-                            Toast.LENGTH_SHORT).show();
+                    activityListInterface.onActivityClicked();
                 }
             }, idx1, idx2, 0);
             ssb.setSpan(new StyleSpan(android.graphics.Typeface.BOLD),idx1,idx2,0);

+ 21 - 3
src/main/java/com/owncloud/android/ui/adapter/RichObjectAdapter.java

@@ -1,5 +1,6 @@
 package com.owncloud.android.ui.adapter;
 
+import android.content.Context;
 import android.support.v7.widget.RecyclerView;
 import android.view.LayoutInflater;
 import android.view.View;
@@ -9,6 +10,7 @@ import android.widget.ImageView;
 import com.bumptech.glide.Glide;
 import com.owncloud.android.MainApp;
 import com.owncloud.android.R;
+import com.owncloud.android.ui.interfaces.ActivityListInterface;
 
 import java.util.ArrayList;
 
@@ -18,10 +20,20 @@ import java.util.ArrayList;
 
 public class RichObjectAdapter extends RecyclerView.Adapter<RichObjectAdapter.RichObjectViewHolder> {
 
-    private final ArrayList<String> mValues;
+    private final Context mContext;
+    private ArrayList<String> mValues;
+    private final ActivityListInterface mActivityListInterface;
 
-    public RichObjectAdapter(ArrayList<String> values){
+    public RichObjectAdapter(Context context, ActivityListInterface activityListInterface){
+        this.mContext=context;
+        this.mValues=new ArrayList<>();
+        this.mActivityListInterface=activityListInterface;
+    }
+
+
+    public void setValues(ArrayList<String> values){
         this.mValues=values;
+        notifyDataSetChanged();
     }
 
     @Override
@@ -38,9 +50,15 @@ public class RichObjectAdapter extends RecyclerView.Adapter<RichObjectAdapter.Ri
     @Override
     public void onBindViewHolder(RichObjectViewHolder holder, int position) {
         String url=mValues.get(position);
-        Glide.with(MainApp.getAppContext())
+        Glide.with(mContext)
                 .load(url)
                 .into(holder.image);
+        holder.image.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                mActivityListInterface.onActivityClicked();
+            }
+        });
     }
 
     static class RichObjectViewHolder extends RecyclerView.ViewHolder{

+ 11 - 0
src/main/java/com/owncloud/android/ui/interfaces/ActivityListInterface.java

@@ -0,0 +1,11 @@
+package com.owncloud.android.ui.interfaces;
+
+/**
+ * Created by alejandro on 12/05/17.
+ */
+
+public interface ActivityListInterface {
+
+    void onActivityClicked();
+
+}