package com.steembo.news;
import android.app.Activity;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.os.Handler;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.DefaultItemAnimator;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.Toast;
import com.github.clans.fab.FloatingActionButton;
import com.github.clans.fab.FloatingActionMenu;
import com.steembo.R;
import com.steembo.customadapter.NewsActivityAdapter;
import com.steembo.helper.Helper;
import com.steembo.model.NewsJsonData;
import com.steembo.quickaction.ActionItem;
import com.steembo.quickaction.QuickActionLayout;
import com.steembo.request_responce.JSONHandler;
import com.steembo.request_responce.ReqResService;
import com.steembo.utils.CircularProgressViewDialog;
import com.steembo.utils.Constants;
import com.steembo.utils.ItemClickSupport;
import java.util.ArrayList;
import java.util.HashMap;
import static android.widget.Toast.LENGTH_SHORT;
public class NewsActivity extends AppCompatActivity {
private static final String TAG = "[NewsActivity] : ";
private Context context = NewsActivity.this;
private LayoutInflater inflater;
private RecyclerView rv_news_list;
private NewsActivityAdapter newsActivityAdapter;
private RecyclerView.LayoutManager mLayoutManager;
private LinearLayout old_toolbar = null, new_toolbar = null;
private ActionItem editItem, deleteItem;
QuickActionLayout quickActionLayout;
private static int position;
private FloatingActionMenu fab_news_menu;
private FloatingActionButton fab_add_news;
private ArrayList<NewsJsonData> newsJsonDataArrayList = new ArrayList<NewsJsonData>();
private Intent intent;
private static View view;
private RelativeLayout relNoDataFound;
private CircularProgressViewDialog circularProgressViewDialog;
private int currentPage = 1;
private boolean areMoreRecordsAvailable = false;
private Handler mHandler = new Handler() {
public void handleMessage(android.os.Message msg) {
Log.i(TAG, "in mHandler class");
switch (msg.what) {
case Constants.ServiceCode.SERVICE_DELETE:
Helper.showToast("News deleted successfully", NewsActivity.this);
if (old_toolbar != null) {
old_toolbar.removeAllViews();
old_toolbar.setVisibility(View.GONE);
old_toolbar = null;
}
break;
default:
break;
}
}
};
@Override protected void onResume() {
super.onResume();
Log.i(TAG, "onResume() called... : ");
try {
Log.i(TAG, "onResume(), Constants.News.refreshNewsList : " + Constants.News.refreshNewsList);
if (Constants.News.refreshNewsList) {
if (old_toolbar != null) {
old_toolbar.removeAllViews();
old_toolbar.setVisibility(View.GONE);
old_toolbar = null;
}
currentPage = 1;
NewsActivity.this.newsJsonDataArrayList.clear();
getJsonDataFromServerGetNewsList(currentPage);
Constants.News.refreshNewsList = false;
}
} catch (Exception e) {
e.printStackTrace();
}
}
@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.news_activity);
Log.i(TAG, "onCreate(), called : ");
try {
inflater = LayoutInflater.from(this);
rv_news_list = (RecyclerView) findViewById(R.id.rv_news_list);
relNoDataFound = (RelativeLayout) findViewById(R.id.relNoDataFound);
mLayoutManager = new LinearLayoutManager(this);
rv_news_list.setLayoutManager(mLayoutManager);
rv_news_list.setItemAnimator(new DefaultItemAnimator());
rv_news_list.addOnScrollListener(onScrollListener);
fab_news_menu = (FloatingActionMenu) findViewById(R.id.fab_news_menu);
fab_add_news = (FloatingActionButton) findViewById(R.id.fab_add_news);
fab_add_news.setOnClickListener(onButtonClick());
fab_news_menu.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View view) {
if (fab_news_menu.isOpened()) {
fab_news_menu.close(true);
}
}
});
fab_news_menu.setClosedOnTouchOutside(true);
rv_news_list.setOnTouchListener(new View.OnTouchListener() {
@Override public boolean onTouch(View v, MotionEvent event) {
if (fab_news_menu.isOpened())
fab_news_menu.close(true);
return false;
}
});
ItemClickSupport.addTo(rv_news_list).setOnItemLongClickListener(new ItemClickSupport.OnItemLongClickListener() {
@Override public boolean onItemLongClicked(RecyclerView recyclerView, int position, View v) {
try {
Log.i(TAG, "onItemLongClicked(), position : " + position);
fab_news_menu.close(true);
} catch (Exception e) {
e.printStackTrace();
}
return true; // true means the event consumed false means it forwards the event. }
});
ItemClickSupport.addTo(rv_news_list).setOnItemClickListener(new ItemClickSupport.OnItemClickListener() {
@Override public void onItemClicked(RecyclerView recyclerView, int position, View view) {
try {
Log.i(TAG, "onItemClicked(), position : " + position);
Log.i(TAG, "onItemClicked(), NewsActivity.position : " + NewsActivity.position);
NewsActivity.view = view;
fab_news_menu.close(true);
new_toolbar = (LinearLayout) view.findViewById(R.id.ll_toolbar);
Log.i(TAG, "onItemClicked(), new_toolbar : " + new_toolbar);
Log.i(TAG, "onItemClicked(), old_toolbar : " + old_toolbar);
if (old_toolbar != null && NewsActivity.position != position) {
old_toolbar.removeAllViews();
old_toolbar.setVisibility(View.GONE);
old_toolbar = null;
}
old_toolbar = new_toolbar;
NewsActivity.position = position;
scrollMyListViewToPosition(position);
if (new_toolbar.getVisibility() == View.GONE) {
quickActionLayout = new QuickActionLayout(view);
//quickActionLayout.addActionItem(editItem); quickActionLayout.addActionItem(deleteItem);
new_toolbar.addView(quickActionLayout.getQuickActionView());
new_toolbar.setVisibility(View.VISIBLE);
} else {
new_toolbar.removeAllViews();
new_toolbar.setVisibility(View.GONE);
}
} catch (Exception e) {
e.printStackTrace();
}
}
});
prepareQuickActions();
if (newsJsonDataArrayList.size() <= 0)
relNoDataFound.setVisibility(relNoDataFound.VISIBLE);
else relNoDataFound.setVisibility(relNoDataFound.GONE);
currentPage = 1;
NewsActivity.this.newsJsonDataArrayList.clear();
getJsonDataFromServerGetNewsList(currentPage);
} catch (Exception e) {
e.printStackTrace();
}
}
private int oldDy = 0;
private RecyclerView.OnScrollListener onScrollListener = new RecyclerView.OnScrollListener() {
@Override public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
Log.i(TAG, "onScrollListener, onScrolled(int, int), dx : " + dx + ", dy : " + dy);
try {
LinearLayoutManager linearLayoutManager = ((LinearLayoutManager) recyclerView.getLayoutManager());
int totalItemCount = linearLayoutManager.getItemCount();
int lastVisibleItemPosition = linearLayoutManager.findLastVisibleItemPosition();
Log.i(TAG, "onScrollListener, onScrolled(), totalItemCount : " + totalItemCount);
Log.i(TAG, "onScrollListener, onScrolled(), lastVisibleItemPosition : " + lastVisibleItemPosition);
int visibleThreshold = 1;
Log.i(TAG, "onScrollListener, onScrolled(), visibleThreshold : " + visibleThreshold);
if (!circularProgressViewDialog.isShowing() && totalItemCount <= (lastVisibleItemPosition + visibleThreshold)) {
oldDy = dy;
Log.i(TAG, "onScrollListener, onScrolled(), areMoreRecordsAvailable : " + areMoreRecordsAvailable);
if (areMoreRecordsAvailable) {
getJsonDataFromServerGetNewsList(++currentPage);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
};
private View.OnClickListener onButtonClick() {
Log.i(TAG, "onButtonClick() called . . .");
return new View.OnClickListener() {
@Override public void onClick(View view) {
if (view == fab_add_news) {
if (old_toolbar != null) {
old_toolbar.removeAllViews();
old_toolbar.setVisibility(View.GONE);
old_toolbar = null;
}
intent = new Intent(NewsActivity.this, AddEditNewsActivity.class);
startActivity(intent);
} else {
Toast.makeText(NewsActivity.this, "", LENGTH_SHORT).show();
}
fab_news_menu.close(true);
}
};
}
private void prepareQuickActions() {
Log.i(TAG, "prepareQuickActions() called . . .");
try {
editItem = new ActionItem();
editItem.setIcon(getResources().getDrawable(R.drawable.edit));
editItem.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
if (old_toolbar != null) {
old_toolbar.removeAllViews();
old_toolbar.setVisibility(View.GONE);
old_toolbar = null;
}
intent = new Intent(getApplicationContext(), AddEditNewsActivity.class);
intent.putExtra("newsId", newsJsonDataArrayList.get(position).getId());
startActivity(intent);
}
});
deleteItem = new ActionItem();
deleteItem.setIcon(getResources().getDrawable(R.drawable.delete));
deleteItem.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
android.app.AlertDialog.Builder alertBuilder = new android.app.AlertDialog.Builder(new android.view.ContextThemeWrapper(NewsActivity.this, android.R.style.Theme_Holo_Light_Dialog));
///alertBuilder.setCustomTitle(LayoutInflater.from(TransactionListActivity.this).inflate(R.layout.daily_rokad_icon_title, null)); alertBuilder.setMessage(context.getResources().getString(R.string.are_you_sure_to_delete_this_news));
alertBuilder.setPositiveButton(context.getResources().getString(R.string.yes),
new DialogInterface.OnClickListener() {
@Override public void onClick(DialogInterface dialog, int which) {
getJsonDataFromServerDeleteNews(newsJsonDataArrayList.get(position).getId());
}
});
alertBuilder.setNegativeButton(context.getResources().getString(R.string.no), null);
alertBuilder.setCancelable(false);
alertBuilder.create().show();
}
});
} catch (Exception e) {
e.printStackTrace();
}
}
private void getJsonDataFromServerDeleteNews(int newsId) {
Log.i(TAG, "getJsonDataFromServerDeleteNews(int) called newsId : " + newsId);
try {
JSONHandler jsonHandler = new JSONHandler(context);
if (circularProgressViewDialog == null) {
circularProgressViewDialog = new CircularProgressViewDialog(context);
}
circularProgressViewDialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
circularProgressViewDialog.showDialog();
jsonHandler.deleteNews(new ReqResService() {
@Override public void onResponce(Object resObj, Object resCode) {
try {
if (Constants.ResponseStatusCodeString.SUCCESS.equals(resCode)) {
Snackbar.make(view, resObj.toString(), Snackbar.LENGTH_LONG).show();
newsJsonDataArrayList.remove(position);
newsActivityAdapter.setNewsList(newsJsonDataArrayList);
mHandler.sendEmptyMessage(Constants.ServiceCode.SERVICE_DELETE);
} else if (Constants.ResponseStatusCodeString.UNAUTHORIZED.equals(resCode)) {
Helper.logoutAutomatically(context, resObj.toString());
} else {
Helper.showOkDialog(Constants.ALERT_TITLE, resObj.toString(), (Activity) context);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
circularProgressViewDialog.hideDialog();
}
}
}, newsId);
} catch (Exception e) {
e.printStackTrace();
}
}
private void getJsonDataFromServerGetNewsList(int page) {
Log.i(TAG, "getJsonDataFromServerGetNewsList(int) called for page : " + page);
try {
JSONHandler jsonHandler = new JSONHandler(context);
if (circularProgressViewDialog == null) {
circularProgressViewDialog = new CircularProgressViewDialog(context);
}
circularProgressViewDialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
circularProgressViewDialog.showDialog();
jsonHandler.getNewsList(new ReqResService() {
@Override public void onResponce(Object resObj, Object resCode) {
try {
if (Constants.ResponseStatusCodeString.SUCCESS.equals(resCode)) {
HashMap hashMap = new HashMap();
hashMap = (HashMap) resObj;
if (hashMap != null && hashMap.size() > 0) {
Log.i(TAG, "getJsonDataFromServerGetNewsList(), hashMap : " + hashMap.toString());
ArrayList<NewsJsonData> newsJsonDataArrayList = (ArrayList<NewsJsonData>) hashMap.get("news");
if (newsJsonDataArrayList != null && newsJsonDataArrayList.size() > 0) {
Log.i(TAG, "getJsonDataFromServerGetNewsList(), newsJsonDataArrayList : " + newsJsonDataArrayList.toString());
relNoDataFound.setVisibility(relNoDataFound.GONE);
NewsActivity.this.newsJsonDataArrayList.addAll(newsJsonDataArrayList);
if (newsActivityAdapter == null) {
newsActivityAdapter = new NewsActivityAdapter(context, inflater, mHandler, NewsActivity.this.newsJsonDataArrayList);
rv_news_list.setAdapter(newsActivityAdapter);
} else {
newsActivityAdapter.setNewsList(NewsActivity.this.newsJsonDataArrayList);
}
int totalRecords = ((Integer) hashMap.get("totalRecords")).intValue();
Log.i(TAG, "getJsonDataFromServerGetNewsList(), totalRecords : " + totalRecords);
int perPageRecords = ((Integer) hashMap.get("perPageRecords")).intValue();
Log.i(TAG, "getJsonDataFromServerGetNewsList(), perPageRecords : " + perPageRecords);
int currentPage = ((Integer) hashMap.get("currentPage")).intValue();
Log.i(TAG, "getJsonDataFromServerGetNewsList(), currentPage : " + currentPage);
int lastPage = ((Integer) hashMap.get("lastPage")).intValue();
Log.i(TAG, "getJsonDataFromServerGetNewsList(), lastPage : " + lastPage);
int fromRecordNo = ((Integer) hashMap.get("fromRecordNo")).intValue();
Log.i(TAG, "getJsonDataFromServerGetNewsList(), fromRecordNo : " + fromRecordNo);
int toRecordNo = ((Integer) hashMap.get("toRecordNo")).intValue();
Log.i(TAG, "getJsonDataFromServerGetNewsList(), toRecordNo : " + toRecordNo);
String path = (String) hashMap.get("path");
Log.i(TAG, "getJsonDataFromServerGetNewsList(), path : " + path);
String prevPageURL = (String) hashMap.get("prevPageURL");
Log.i(TAG, "getJsonDataFromServerGetNewsList(), prevPageURL : " + prevPageURL);
String nextPageURL = (String) hashMap.get("nextPageURL");
Log.i(TAG, "getJsonDataFromServerGetNewsList(), nextPageURL : " + nextPageURL);
if (nextPageURL == null || ("").equals(nextPageURL) || ("null").equals(nextPageURL.toLowerCase())) {
areMoreRecordsAvailable = false;
} else {
areMoreRecordsAvailable = true;
}
Log.i(TAG, "getJsonDataFromServerGetNewsList(), areMoreRecordsAvailable : " + areMoreRecordsAvailable);
} else {
relNoDataFound.setVisibility(relNoDataFound.VISIBLE);
Log.i(TAG, "getJsonDataFromServerGetNewsList(), newsJsonDataArrayList is null or empty");
}
} else {
Log.i(TAG, "getJsonDataFromServerGetNewsList(), hashMap is null or empty");
}
} else if (Constants.ResponseStatusCodeString.UNAUTHORIZED.equals(resCode)) {
Helper.logoutAutomatically(context, resObj.toString());
} else {
Helper.showOkDialog(Constants.ALERT_TITLE, resObj.toString(), (Activity) context);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
circularProgressViewDialog.hideDialog();
}
}
}, page);
} catch (Exception e) {
e.printStackTrace();
}
}
private void scrollMyListViewToPosition(final int position) {
Log.i(TAG, "scrollMyListViewToPosition(), called : ");
rv_news_list.post(new Runnable() {
@Override public void run() {
rv_news_list.getLayoutManager().scrollToPosition(position);
}
});
}
@Override public boolean onKeyDown(int keyCode, KeyEvent event) {
Log.i(TAG, "onKeyDown() called");
return getParent().onKeyDown(keyCode, event);
}
}
******************
package com.steembo.utils;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import com.steembo.R;
/** * Created by Rahul on 23-08-2017. */
public class ItemClickSupport {
private static final String TAG = "[ItemClickSupport] : ";
private final RecyclerView mRecyclerView;
private OnItemClickListener mOnItemClickListener;
private OnItemLongClickListener mOnItemLongClickListener;
private View.OnClickListener mOnClickListener = new View.OnClickListener() {
@Override public void onClick(View v) {
if (mOnItemClickListener != null) {
// ask the RecyclerView for the viewHolder of this view. // then use it to get the position for the adapter RecyclerView.ViewHolder holder = mRecyclerView.getChildViewHolder(v);
mOnItemClickListener.onItemClicked(mRecyclerView, holder.getAdapterPosition(), v);
}
}
};
private View.OnLongClickListener mOnLongClickListener = new View.OnLongClickListener() {
@Override public boolean onLongClick(View v) {
if (mOnItemLongClickListener != null) {
RecyclerView.ViewHolder holder = mRecyclerView.getChildViewHolder(v);
return mOnItemLongClickListener.onItemLongClicked(mRecyclerView, holder.getAdapterPosition(), v);
}
return false;
}
};
private RecyclerView.OnChildAttachStateChangeListener mAttachListener = new RecyclerView.OnChildAttachStateChangeListener() {
@Override public void onChildViewAttachedToWindow(View view) {
// every time a new child view is attached add click listeners to it if (mOnItemClickListener != null) {
view.setOnClickListener(mOnClickListener);
}
if (mOnItemLongClickListener != null) {
view.setOnLongClickListener(mOnLongClickListener);
}
}
@Override public void onChildViewDetachedFromWindow(View view) {
}
};
private ItemClickSupport(RecyclerView recyclerView) {
mRecyclerView = recyclerView;
// the ID must be declared in XML, used to avoid // replacing the ItemClickSupport without removing // the old one from the RecyclerView mRecyclerView.setTag(R.id.item_click_support, this);
mRecyclerView.addOnChildAttachStateChangeListener(mAttachListener);
}
public static ItemClickSupport addTo(RecyclerView view) {
// if there's already an ItemClickSupport attached // to this RecyclerView do not replace it, use it ItemClickSupport support = (ItemClickSupport) view.getTag(R.id.item_click_support);
if (support == null) {
support = new ItemClickSupport(view);
}
return support;
}
public static ItemClickSupport removeFrom(RecyclerView view) {
ItemClickSupport support = (ItemClickSupport) view.getTag(R.id.item_click_support);
if (support != null) {
support.detach(view);
}
return support;
}
public ItemClickSupport setOnItemClickListener(OnItemClickListener listener) {
mOnItemClickListener = listener;
return this;
}
public ItemClickSupport setOnItemLongClickListener(OnItemLongClickListener listener) {
mOnItemLongClickListener = listener;
return this;
}
private void detach(RecyclerView view) {
view.removeOnChildAttachStateChangeListener(mAttachListener);
view.setTag(R.id.item_click_support, null);
}
public interface OnItemClickListener {
void onItemClicked(RecyclerView recyclerView, int position, View v);
}
public interface OnItemLongClickListener {
boolean onItemLongClicked(RecyclerView recyclerView, int position, View v);
}
}
*********************
<?xml version="1.0" encoding="utf-8"?><resources>
<item name="item_click_support" type="id" />
<item name="expandable_text" type="id" />
<item name="expand_collapse" type="id" />
</resources>
****************
package com.steembo.customadapter;
import android.content.Context;
import android.graphics.Bitmap;
import android.os.Handler;
import android.support.v7.widget.CardView;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.nostra13.universalimageloader.core.assist.FailReason;
import com.nostra13.universalimageloader.core.assist.ImageLoadingListener;
import com.nostra13.universalimageloader.core.display.FadeInBitmapDisplayer;
import com.steembo.R;
import com.steembo.helper.Helper;
import com.steembo.model.NewsJsonData;
import com.steembo.utils.Constants;
import com.steembo.utils.ImageLazyLoadingConfig;
import java.util.ArrayList;
public class NewsActivityAdapter extends RecyclerView.Adapter<NewsActivityAdapter.ViewHolder>{
private static final String TAG = "[NewsActivityAdapter] : ";
private LayoutInflater inflater;
private ArrayList<NewsJsonData> newsJsonDataArrayList;
private Context context;
private Handler mHandler;
private int position;
public NewsActivityAdapter(Context context, LayoutInflater inflater, Handler mHandler, ArrayList<NewsJsonData> newsJsonDataArrayList) {
this.context = context;
this.inflater = inflater;
this.mHandler = mHandler;
this.newsJsonDataArrayList = newsJsonDataArrayList;
}
public void setNewsList(ArrayList<NewsJsonData> newsJsonDataArrayList) {
Log.i(TAG, "setNewsList(ArrayList<NewsJsonData>) called for newsJsonDataArrayList : " + newsJsonDataArrayList);
this.newsJsonDataArrayList = newsJsonDataArrayList;
this.notifyDataSetChanged();
}
public class ViewHolder extends RecyclerView.ViewHolder {
TextView tv_news_title, tv_source, tv_published_by, tv_published_on;
ImageView iv_news_logo;
CardView card_view;
public ViewHolder(View view) {
super(view);
tv_news_title = (TextView) view.findViewById(R.id.tv_news_title);
tv_source = (TextView) view.findViewById(R.id.tv_source);
tv_published_by = (TextView) view.findViewById(R.id.tv_published_by);
tv_published_on = (TextView) view.findViewById(R.id.tv_published_on);
iv_news_logo = (ImageView) view.findViewById(R.id.iv_news_logo);
card_view = (CardView) view.findViewById(R.id.card_view);
}
}
@Override public NewsActivityAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater inflater = LayoutInflater.from(parent.getContext());
View view = inflater.inflate(R.layout.news_activity_adapter_layout, parent, false);
NewsActivityAdapter.ViewHolder holder = new NewsActivityAdapter.ViewHolder(view);
return holder;
}
@Override public int getItemCount() {
return newsJsonDataArrayList.size();
}
@Override public int getItemViewType(int position) {
return position;
}
@Override public void onBindViewHolder(final NewsActivityAdapter.ViewHolder holder, int position) {
Log.i(TAG, "onBindViewHolder(), position : " + position);
this.position = position;
NewsJsonData newsJsonData = newsJsonDataArrayList.get(position);
Log.i(TAG, "onBindViewHolder(), newsJsonData : " + newsJsonData.toString());
if (position % 2 == 0) {
holder.card_view.setCardBackgroundColor(context.getResources().getColor(R.color.list_view_color_1));
} else {
holder.card_view.setCardBackgroundColor(context.getResources().getColor(R.color.list_view_color_2));
}
holder.tv_news_title.setText(newsJsonData.getTitle());
holder.tv_source.setText(newsJsonData.getSource());
holder.tv_published_by.setText(newsJsonData.getPublishedBy());
holder.tv_published_on.setText(newsJsonData.getPublishedOn());
final Bitmap textBitmap = Helper.generateCircleBitmap(context,
Constants.VALUE_NOT_PROVIDED,
Helper.convertDpToPixel(60, context),
newsJsonData.getTitle().substring(0, 1).toUpperCase());
if (textBitmap != null) {
holder.iv_news_logo.setImageBitmap(textBitmap);
}
String imageURL = newsJsonData.getNewsImagePath();
if (imageURL != null) {
try {
ImageLoadingListener imageLoadingListener = new ImageLoadingListener() {
@Override public void onLoadingStarted(String imageUri, View view) {
}
@Override public void onLoadingFailed(String imageUri, View view, FailReason failReason) {
}
@Override public void onLoadingComplete(String imageUri, View view, Bitmap bitmap) {
Log.i(TAG, "onLoadingComplete(String, View, Bitmap) called for imageUri : " + imageUri + ", view : " + view + ", bitmap : " + bitmap);
try {
if (bitmap != null) {
ImageView imageView = (ImageView) view;
boolean firstDisplay = !ImageLazyLoadingConfig.displayedImages.contains(imageUri);
if (firstDisplay) {
FadeInBitmapDisplayer.animate(imageView, 500);
ImageLazyLoadingConfig.displayedImages.add(imageUri);
}
} else {
if (textBitmap != null) {
holder.iv_news_logo.setImageBitmap(textBitmap);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
@Override public void onLoadingCancelled(String imageUri, View view) {
}
};
Helper.displayImageUsingImageLoader(context, imageURL, holder.iv_news_logo, R.drawable.ic_launcher, imageLoadingListener);
} catch (Exception e) {
e.printStackTrace();
}
} else {
if (textBitmap != null) {
holder.iv_news_logo.setImageBitmap(textBitmap);
}
}
}
}
Comments
Post a Comment