Glide Image loading fix and placeholder size fixed.
Project: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/commit/d6dd0904 Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/tree/d6dd0904 Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/diff/d6dd0904 Branch: refs/heads/master Commit: d6dd0904d36581063597939634d02f2e43bc6fac Parents: 08342b6 Author: Rajan Maurya <[email protected]> Authored: Tue Nov 1 16:03:36 2016 +0530 Committer: Rajan Maurya <[email protected]> Committed: Tue Nov 1 16:03:36 2016 +0530 ---------------------------------------------------------------------- .../mobile/ui/adapter/WorkflowAdapter.java | 17 +++- .../mobile/ui/workflow/WorkflowFragment.java | 22 +++-- .../mobile/ui/workflow/WorkflowMvpView.java | 4 +- .../mobile/ui/workflow/WorkflowPresenter.java | 6 +- .../workflowdetail/WorkflowDetailFragment.java | 11 ++- .../res/layout/item_recyclerview_dashboard.xml | 95 -------------------- .../main/res/layout/item_workflow_dashboard.xml | 95 ++++++++++++++++++++ app/src/main/res/menu/drawer_view.xml | 2 +- app/src/main/res/values/strings.xml | 1 + 9 files changed, 141 insertions(+), 112 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/d6dd0904/app/src/main/java/org/apache/taverna/mobile/ui/adapter/WorkflowAdapter.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/adapter/WorkflowAdapter.java b/app/src/main/java/org/apache/taverna/mobile/ui/adapter/WorkflowAdapter.java index cb06667..0384761 100644 --- a/app/src/main/java/org/apache/taverna/mobile/ui/adapter/WorkflowAdapter.java +++ b/app/src/main/java/org/apache/taverna/mobile/ui/adapter/WorkflowAdapter.java @@ -37,6 +37,9 @@ import android.widget.TextView; import com.bumptech.glide.Glide; import com.bumptech.glide.load.engine.DiskCacheStrategy; +import com.bumptech.glide.load.resource.drawable.GlideDrawable; +import com.bumptech.glide.request.animation.GlideAnimation; +import com.bumptech.glide.request.target.SimpleTarget; import org.apache.taverna.mobile.R; import org.apache.taverna.mobile.data.model.Workflow; @@ -74,7 +77,7 @@ public class WorkflowAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolde if (viewType == VIEW_ITEM) { View v = LayoutInflater.from(parent.getContext()).inflate( - R.layout.item_recyclerview_dashboard, parent, false); + R.layout.item_workflow_dashboard, parent, false); vh = new ViewHolder(v); } else { View v = LayoutInflater.from(parent.getContext()).inflate( @@ -85,7 +88,7 @@ public class WorkflowAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolde } @Override - public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { + public void onBindViewHolder(final RecyclerView.ViewHolder holder, int position) { if (holder instanceof ViewHolder) { Workflow workflow = mWorkflowList.get(position); @@ -104,7 +107,15 @@ public class WorkflowAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolde .diskCacheStrategy(DiskCacheStrategy.SOURCE) .placeholder(R.drawable.placeholder) .error(R.drawable.placeholder) - .into(((ViewHolder) holder).ivWorkflowImage); + .into(new SimpleTarget<GlideDrawable>() { + @Override + public void onResourceReady(GlideDrawable resource, + GlideAnimation<? super GlideDrawable> glideAnimation) { + ((ViewHolder) holder).ivWorkflowImage.setImageDrawable(resource); + ((ViewHolder) holder).ivWorkflowImage + .setScaleType(ImageView.ScaleType.FIT_XY); + } + }); } } http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/d6dd0904/app/src/main/java/org/apache/taverna/mobile/ui/workflow/WorkflowFragment.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/workflow/WorkflowFragment.java b/app/src/main/java/org/apache/taverna/mobile/ui/workflow/WorkflowFragment.java index d04b15d..397a43c 100644 --- a/app/src/main/java/org/apache/taverna/mobile/ui/workflow/WorkflowFragment.java +++ b/app/src/main/java/org/apache/taverna/mobile/ui/workflow/WorkflowFragment.java @@ -99,12 +99,11 @@ public class WorkflowFragment extends Fragment implements WorkflowMvpView, public void onLoadMore(int current_page) { if (ConnectionInfo.isConnectingToInternet(getContext()) && mWorkflowList.size() % 10 == 0) { - mWorkflowList.add(null); - mWorkflowAdapter.notifyItemInserted(mWorkflowList.size()); + addLoadMoreProgressbar(); ++mPageNumber; mWorkflowPresenter.loadAllWorkflow(mPageNumber); } else if (!ConnectionInfo.isConnectingToInternet(getContext())) { - showSnackBar(getActivity().getString(R.string.no_internet_connection)); + showSnackBar(R.string.no_internet_connection); } } }); @@ -124,7 +123,7 @@ public class WorkflowFragment extends Fragment implements WorkflowMvpView, mWorkflowPresenter.loadAllWorkflow(mPageNumber); mSwipeRefresh.setRefreshing(true); } else { - showSnackBar(getActivity().getString(R.string.no_internet_connection)); + showSnackBar(R.string.no_internet_connection); if (mSwipeRefresh.isRefreshing()) { mSwipeRefresh.setRefreshing(false); } @@ -133,19 +132,17 @@ public class WorkflowFragment extends Fragment implements WorkflowMvpView, @Override public void showProgressbar(boolean show) { - mSwipeRefresh.setRefreshing(show); if (show && mWorkflowAdapter.getItemCount() == 0) { mProgressBar.setVisibility(View.VISIBLE); - mSwipeRefresh.setRefreshing(false); } else { mProgressBar.setVisibility(View.GONE); } - } @Override - public void showSnackBar(String message) { - final Snackbar snackbar = Snackbar.make(mRecyclerView, message, Snackbar.LENGTH_INDEFINITE); + public void showSnackBar(int message) { + final Snackbar snackbar = Snackbar.make(mRecyclerView, getActivity().getString(message), + Snackbar.LENGTH_INDEFINITE); snackbar.setAction(getActivity().getString(R.string.ok), new View.OnClickListener() { @Override public void onClick(View view) { @@ -158,6 +155,7 @@ public class WorkflowFragment extends Fragment implements WorkflowMvpView, @Override public void showWorkflows(Workflows workflows) { if (mPageNumber == 1) { + mSwipeRefresh.setRefreshing(false); mWorkflowList.clear(); } mWorkflowList.addAll(workflows.getWorkflowList()); @@ -173,6 +171,12 @@ public class WorkflowFragment extends Fragment implements WorkflowMvpView, } @Override + public void addLoadMoreProgressbar() { + mWorkflowList.add(null); + mWorkflowAdapter.notifyItemInserted(mWorkflowList.size()); + } + + @Override public void onDestroyView() { super.onDestroyView(); mWorkflowPresenter.detachView(); http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/d6dd0904/app/src/main/java/org/apache/taverna/mobile/ui/workflow/WorkflowMvpView.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/workflow/WorkflowMvpView.java b/app/src/main/java/org/apache/taverna/mobile/ui/workflow/WorkflowMvpView.java index 2d09336..1faa937 100644 --- a/app/src/main/java/org/apache/taverna/mobile/ui/workflow/WorkflowMvpView.java +++ b/app/src/main/java/org/apache/taverna/mobile/ui/workflow/WorkflowMvpView.java @@ -26,9 +26,11 @@ public interface WorkflowMvpView extends MvpView { void showProgressbar(boolean b); - void showSnackBar(String message); + void showSnackBar(int message); void showWorkflows(Workflows workflows); void removeLoadMoreProgressbar(); + + void addLoadMoreProgressbar(); } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/d6dd0904/app/src/main/java/org/apache/taverna/mobile/ui/workflow/WorkflowPresenter.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/workflow/WorkflowPresenter.java b/app/src/main/java/org/apache/taverna/mobile/ui/workflow/WorkflowPresenter.java index 22192f7..51ac057 100644 --- a/app/src/main/java/org/apache/taverna/mobile/ui/workflow/WorkflowPresenter.java +++ b/app/src/main/java/org/apache/taverna/mobile/ui/workflow/WorkflowPresenter.java @@ -18,6 +18,7 @@ */ package org.apache.taverna.mobile.ui.workflow; +import org.apache.taverna.mobile.R; import org.apache.taverna.mobile.data.DataManager; import org.apache.taverna.mobile.data.model.Workflows; import org.apache.taverna.mobile.ui.base.BasePresenter; @@ -67,14 +68,15 @@ public class WorkflowPresenter extends BasePresenter<WorkflowMvpView> { @Override public void onError(Throwable e) { getMvpView().showProgressbar(false); - getMvpView().showSnackBar("Failed to load workflow"); + getMvpView().showSnackBar(R.string.error_failed_to_fetch_workflow); + getMvpView().removeLoadMoreProgressbar(); } @Override public void onNext(Workflows workflows) { + getMvpView().showProgressbar(false); getMvpView().removeLoadMoreProgressbar(); getMvpView().showWorkflows(workflows); - getMvpView().showProgressbar(false); } }); http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/d6dd0904/app/src/main/java/org/apache/taverna/mobile/ui/workflowdetail/WorkflowDetailFragment.java ---------------------------------------------------------------------- diff --git a/app/src/main/java/org/apache/taverna/mobile/ui/workflowdetail/WorkflowDetailFragment.java b/app/src/main/java/org/apache/taverna/mobile/ui/workflowdetail/WorkflowDetailFragment.java index f2e6a63..791c45a 100644 --- a/app/src/main/java/org/apache/taverna/mobile/ui/workflowdetail/WorkflowDetailFragment.java +++ b/app/src/main/java/org/apache/taverna/mobile/ui/workflowdetail/WorkflowDetailFragment.java @@ -43,6 +43,9 @@ import android.widget.TextView; import com.bumptech.glide.Glide; import com.bumptech.glide.load.engine.DiskCacheStrategy; +import com.bumptech.glide.load.resource.drawable.GlideDrawable; +import com.bumptech.glide.request.animation.GlideAnimation; +import com.bumptech.glide.request.target.SimpleTarget; import org.apache.taverna.mobile.R; import org.apache.taverna.mobile.data.DataManager; @@ -245,7 +248,13 @@ public class WorkflowDetailFragment extends Fragment implements WorkflowDetailMv .diskCacheStrategy(DiskCacheStrategy.SOURCE) .placeholder(R.drawable.placeholder) .error(R.drawable.placeholder) - .into(workflowImage); + .into(new SimpleTarget<GlideDrawable>() { + @Override + public void onResourceReady(GlideDrawable resource, + GlideAnimation<? super GlideDrawable> glideAnimation) { + workflowImage.setImageDrawable(resource); + } + }); if (workflow.getLicenseType().getId() == null) { licenceId = ""; http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/d6dd0904/app/src/main/res/layout/item_recyclerview_dashboard.xml ---------------------------------------------------------------------- diff --git a/app/src/main/res/layout/item_recyclerview_dashboard.xml b/app/src/main/res/layout/item_recyclerview_dashboard.xml deleted file mode 100644 index 0785e1b..0000000 --- a/app/src/main/res/layout/item_recyclerview_dashboard.xml +++ /dev/null @@ -1,95 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - Licensed to the Apache Software Foundation (ASF) under one or more - contributor license agreements. See the NOTICE file distributed with - this work for additional information regarding copyright ownership. - The ASF licenses this file to You under the Apache License, Version 2.0 - (the "License"); you may not use this file except in compliance with - the License. You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. ---> -<android.support.v7.widget.CardView - xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto" - android:orientation="vertical" - android:layout_width="match_parent" - android:layout_margin="5dp" - android:layout_height="250dp" - app:cardCornerRadius="5dp" - app:cardElevation="1dp"> - <RelativeLayout - android:layout_width="match_parent" - android:layout_height="wrap_content"> - <ImageView - android:id="@+id/ivWorkflowImage" - android:layout_width="match_parent" - android:layout_height="300dp" - android:scaleType="fitXY" - android:src="@drawable/sliding_header"/> - <TextView - android:background="@color/black_background" - android:id="@+id/tvUploader" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_alignBottom="@id/ivWorkflowImage" - android:text="Uploader" - android:paddingLeft="10dp" - android:paddingStart="10dp" - android:paddingRight="0dp" - android:paddingEnd="0dp" - android:paddingBottom="5dp" - android:textSize="14sp" - android:textColor="@android:color/white"/> - <TextView - android:background="@color/black_background" - android:id="@+id/tvDate" - android:layout_above="@id/tvUploader" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:text="date" - android:paddingLeft="10dp" - android:paddingStart="10dp" - android:paddingRight="0dp" - android:paddingEnd="0dp" - android:paddingBottom="5dp" - android:textSize="14sp" - android:textColor="@android:color/white"/> - <TextView - android:background="@color/black_background" - android:id="@+id/tvType" - android:layout_above="@id/tvDate" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:text="type" - android:paddingLeft="10dp" - android:paddingStart="10dp" - android:paddingRight="0dp" - android:paddingEnd="0dp" - android:paddingBottom="5dp" - android:textSize="16sp" - android:textColor="@android:color/white"/> - <TextView - android:background="@color/black_background" - android:id="@+id/tvTitle" - android:layout_above="@id/tvType" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:text="type" - android:paddingLeft="10dp" - android:paddingStart="10dp" - android:paddingRight="0dp" - android:paddingEnd="0dp" - android:paddingBottom="5dp" - android:singleLine="true" - android:ellipsize="end" - android:textSize="18sp" - android:textColor="@android:color/white"/> - </RelativeLayout> -</android.support.v7.widget.CardView> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/d6dd0904/app/src/main/res/layout/item_workflow_dashboard.xml ---------------------------------------------------------------------- diff --git a/app/src/main/res/layout/item_workflow_dashboard.xml b/app/src/main/res/layout/item_workflow_dashboard.xml new file mode 100644 index 0000000..ba9f46b --- /dev/null +++ b/app/src/main/res/layout/item_workflow_dashboard.xml @@ -0,0 +1,95 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<android.support.v7.widget.CardView + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + android:orientation="vertical" + android:layout_width="match_parent" + android:layout_margin="5dp" + android:layout_height="250dp" + app:cardCornerRadius="5dp" + app:cardElevation="1dp"> + <RelativeLayout + android:layout_width="match_parent" + android:layout_height="wrap_content"> + <ImageView + android:id="@+id/ivWorkflowImage" + android:layout_width="match_parent" + android:layout_height="300dp" + android:scaleType="center" + android:src="@drawable/placeholder"/> + <TextView + android:background="@color/black_background" + android:id="@+id/tvUploader" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_alignBottom="@id/ivWorkflowImage" + android:text="Uploader" + android:paddingLeft="10dp" + android:paddingStart="10dp" + android:paddingRight="0dp" + android:paddingEnd="0dp" + android:paddingBottom="5dp" + android:textSize="14sp" + android:textColor="@android:color/white"/> + <TextView + android:background="@color/black_background" + android:id="@+id/tvDate" + android:layout_above="@id/tvUploader" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:text="date" + android:paddingLeft="10dp" + android:paddingStart="10dp" + android:paddingRight="0dp" + android:paddingEnd="0dp" + android:paddingBottom="5dp" + android:textSize="14sp" + android:textColor="@android:color/white"/> + <TextView + android:background="@color/black_background" + android:id="@+id/tvType" + android:layout_above="@id/tvDate" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:text="type" + android:paddingLeft="10dp" + android:paddingStart="10dp" + android:paddingRight="0dp" + android:paddingEnd="0dp" + android:paddingBottom="5dp" + android:textSize="16sp" + android:textColor="@android:color/white"/> + <TextView + android:background="@color/black_background" + android:id="@+id/tvTitle" + android:layout_above="@id/tvType" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:text="type" + android:paddingLeft="10dp" + android:paddingStart="10dp" + android:paddingRight="0dp" + android:paddingEnd="0dp" + android:paddingBottom="5dp" + android:singleLine="true" + android:ellipsize="end" + android:textSize="18sp" + android:textColor="@android:color/white"/> + </RelativeLayout> +</android.support.v7.widget.CardView> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/d6dd0904/app/src/main/res/menu/drawer_view.xml ---------------------------------------------------------------------- diff --git a/app/src/main/res/menu/drawer_view.xml b/app/src/main/res/menu/drawer_view.xml index cc87881..1fcc2b7 100644 --- a/app/src/main/res/menu/drawer_view.xml +++ b/app/src/main/res/menu/drawer_view.xml @@ -34,7 +34,7 @@ <item android:id="@+id/nav_announcement" android:icon="@drawable/ic_announcement_black_24dp" - android:title="@string/title_nav_all_workflows"/> + android:title="@string/title_nav_announcement"/> </group> <item android:id="@+id/nav_usage" http://git-wip-us.apache.org/repos/asf/incubator-taverna-mobile/blob/d6dd0904/app/src/main/res/values/strings.xml ---------------------------------------------------------------------- diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 36fb07d..d063b3f 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -162,6 +162,7 @@ limitations under the License. <string name="login_button_description">Login Button</string> <string name="err_login_email">Enter valid email</string> <string name="err_login_password">Enter valid password</string> + <string name="error_failed_to_fetch_workflow">Failed to fetch Workflow</string> <string name="no_my_workflow">You have not created any workflow yet !!!!!</string> <string name="error_vaild_credential">Please enter valid credential</string>
