package com.swisscom.safeconnect.widget; import android.app.PendingIntent; import android.appwidget.AppWidgetManager; import android.content.Context; import android.content.Intent; import android.graphics.Bitmap; import com.swisscom.safeconnect.R; import com.swisscom.safeconnect.backend.BackendConnector; import com.swisscom.safeconnect.model.PlumberIncidentCountResponse; import com.swisscom.safeconnect.utils.Config; /** * Created by cianci on 1/13/15. */ public class MalwareStatsWidget extends PipeWidgetProvider { { mLayoutId = R.layout.widget_layout_malware_stats; } protected void updateWidget(final Context context, final AppWidgetManager appWidgetManager, final int widgetId, final boolean refreshData) { getWidgetData(context, appWidgetManager, widgetId); //click somewhere in the right part final PendingIntent piStartApp = PendingIntent.getBroadcast(context, 0, new Intent(context, TrafficWidget.class).setAction(ACTION_START_APP), 0); mRemoteViews.setOnClickPendingIntent(R.id.ll_middle_part, piStartApp); mRemoteViews.setOnClickPendingIntent(R.id.ll_right_part, piStartApp); if (refreshData) getIncidentCount(context); updateCommonPart(context); appWidgetManager.updateAppWidget(widgetId, mRemoteViews); } private void getIncidentCount(final Context context) { new BackendConnector(context).getIncidentsCntASync(Config.getInstance().getPhoneNumber(), Config.getInstance().getDeviceId(), Config.getInstance().getStatPeriod(), new BackendConnector.ResponseCallback<PlumberIncidentCountResponse>() { @Override public void onRequestComplete(int statusCode, PlumberIncidentCountResponse result) { if (statusCode == 200) { updateViews(context, result); } } }); } private void updateViews(Context ctx, PlumberIncidentCountResponse result) { String blockedUrls = ctx.getResources(). getQuantityString(R.plurals.pl_blocked_urls_widget, result.getBlockedUrlCnt(), result.getBlockedUrlCnt()); String blockedVirus = ctx.getResources(). getQuantityString(R.plurals.pl_viruses_found_widget, result.getMalwareCnt(), result.getMalwareCnt()); int maxWidth = findMaxWidth(ctx, blockedUrls+"\n"+blockedVirus, "\n", 22); final Bitmap bmBlockedUrl = createTextBitmap(ctx, blockedUrls, 22, maxWidth); final Bitmap bmVirus = createTextBitmap(ctx, blockedVirus, 22, maxWidth); mRemoteViews.setImageViewBitmap(R.id.iv_url, bmBlockedUrl); mRemoteViews.setImageViewBitmap(R.id.iv_virus, bmVirus); mAppWidgetManager.updateAppWidget(mWidgetId, mRemoteViews); } }