package com.yotadevices.sdk.template; import com.yotadevices.sdk.R; import android.app.PendingIntent; import android.content.Context; import android.view.View; import android.widget.RemoteViews; public class FooterIconWidgetBuilder extends WidgetBuilder { protected PendingIntent mMoreViewPendingIntent; protected PendingIntent mLeftPendingIntent; private CharSequence mLeftText; private CharSequence mRightText; private CharSequence mMoreViewText; private int mIconResource = 0; private int mMoreIconResource = 0; private RemoteViews mContentView; private boolean mLoadingData = false; public CharSequence getLeftText() { return mLeftText; } public CharSequence getRightText() { return mRightText; } public FooterIconWidgetBuilder setLeftText(CharSequence text) { mLeftText = text; return this; } public FooterIconWidgetBuilder setRightText(CharSequence text) { mRightText = text; return this; } public FooterIconWidgetBuilder setLoadingDataState(boolean val) { mLoadingData = val; return this; } public boolean getLoadingDataState() { return mLoadingData; } public FooterIconWidgetBuilder setMoreViewAction(PendingIntent intent, CharSequence text) { mMoreViewPendingIntent = intent; mMoreViewText = text; mMoreIconResource = 0; return this; } public FooterIconWidgetBuilder setMoreViewAction(PendingIntent intent, int imageResource) { mMoreViewPendingIntent = intent; mMoreIconResource = imageResource; mMoreViewText = null; return this; } public FooterIconWidgetBuilder setLeftAction(PendingIntent intent) { mLeftPendingIntent = intent; return this; } @Override public RemoteViews apply(Context context) { if (!mLoadingData) { RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.template_widget_icon_footer); remoteViews.setTextViewText(R.id.left_text, mLeftText); remoteViews.setImageViewResource(R.id.icon, mIconResource); if (mLeftPendingIntent != null) { remoteViews.setOnClickPendingIntent(R.id.left_text, mLeftPendingIntent); remoteViews.setOnClickPendingIntent(R.id.icon, mLeftPendingIntent); } remoteViews.removeAllViews(R.id.content); remoteViews.addView(R.id.content, mContentView); if (mRightText == null) { remoteViews.setViewVisibility(R.id.right_text, View.GONE); } else { remoteViews.setTextViewText(R.id.right_text, mRightText); remoteViews.setViewVisibility(R.id.right_text, View.VISIBLE); } if (mMoreViewText != null) { remoteViews.setViewVisibility(R.id.more_image, View.GONE); remoteViews.setViewVisibility(R.id.more_layout, View.VISIBLE); remoteViews.setViewVisibility(R.id.more_text, View.VISIBLE); remoteViews.setTextViewText(R.id.more_text, mMoreViewText); if (mMoreViewPendingIntent != null) { remoteViews.setOnClickPendingIntent(R.id.more_layout, mMoreViewPendingIntent); } } if (mMoreIconResource != 0) { remoteViews.setViewVisibility(R.id.more_text, View.GONE); remoteViews.setViewVisibility(R.id.more_image, View.VISIBLE); remoteViews.setViewVisibility(R.id.more_layout, View.VISIBLE); remoteViews.setImageViewResource(R.id.more_image, mMoreIconResource); if (mMoreViewPendingIntent != null) { remoteViews.setOnClickPendingIntent(R.id.more_layout, mMoreViewPendingIntent); } } if (mMoreIconResource == 0 && mMoreViewText == null) { remoteViews.setViewVisibility(R.id.more_text, View.GONE); remoteViews.setViewVisibility(R.id.more_image, View.GONE); remoteViews.setViewVisibility(R.id.more_layout, View.GONE); } return super.apply(context, remoteViews); } else { RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.template_widget_loading_data); return remoteViews; } } public int getIconResource() { return mIconResource; } public FooterIconWidgetBuilder setIconResource(int icon) { mIconResource = icon; return this; } public RemoteViews getContentView() { return mContentView; } public FooterIconWidgetBuilder setContentView(RemoteViews content) { mContentView = content; return this; } }