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);
}
}