100 lines
4.2 KiB
Java
100 lines
4.2 KiB
Java
package com.blogspot.developersu.nowol.nowol.com.blogspot.developersu.nowol.nowol.widget;
|
|
|
|
import android.app.PendingIntent;
|
|
import android.appwidget.AppWidgetManager;
|
|
import android.appwidget.AppWidgetProvider;
|
|
import android.content.ComponentName;
|
|
import android.content.Context;
|
|
import android.content.Intent;
|
|
import android.content.SharedPreferences;
|
|
import android.graphics.Color;
|
|
import android.widget.RemoteViews;
|
|
|
|
import com.blogspot.developersu.nowol.nowol.R;
|
|
import com.blogspot.developersu.nowol.nowol.SendRequestService;
|
|
|
|
|
|
public class NoWolWidget extends AppWidgetProvider {
|
|
|
|
private SharedPreferences sharedSettings;
|
|
String hostIP;
|
|
int bgColor;
|
|
|
|
|
|
private void setRequests(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIDs){
|
|
|
|
sharedSettings = context.getSharedPreferences("NoWolPreferences", Context.MODE_PRIVATE);
|
|
hostIP = sharedSettings.getString("Host", context.getResources().getString(R.string.hostNameDefault));
|
|
bgColor = sharedSettings.getInt("WidgetBgColor", Color.BLACK);
|
|
|
|
RemoteViews rv = new RemoteViews(context.getPackageName(), R.layout.no_wol_widget);
|
|
|
|
rv.setInt(R.id.widgetBasicLayout, "setBackgroundColor", bgColor);
|
|
|
|
for (int appWidgetId : appWidgetIDs) {
|
|
//refresh
|
|
Intent refreshIntent = new Intent(context, SendRequestService.class);
|
|
refreshIntent.putExtra("url", hostIP);
|
|
refreshIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
|
|
PendingIntent refreshPendingIntent = PendingIntent.getService(context, appWidgetId+1, refreshIntent, PendingIntent.FLAG_UPDATE_CURRENT);
|
|
rv.setOnClickPendingIntent(R.id.widgetBntRefresh, refreshPendingIntent);
|
|
//reset
|
|
Intent resetIntent = new Intent(context, SendRequestService.class);
|
|
resetIntent.putExtra("url", hostIP + "/?RESET=on");
|
|
resetIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
|
|
PendingIntent resetPendingIntent = PendingIntent.getService(context, appWidgetId+2, resetIntent, PendingIntent.FLAG_UPDATE_CURRENT);
|
|
rv.setOnClickPendingIntent(R.id.widgetBtnReset, resetPendingIntent);
|
|
//power
|
|
Intent powerIntent = new Intent(context, SendRequestService.class);
|
|
powerIntent.putExtra("url", hostIP + "/?POWER0=on");
|
|
powerIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
|
|
PendingIntent powerPendingIntent = PendingIntent.getService(context, appWidgetId+3, powerIntent, PendingIntent.FLAG_UPDATE_CURRENT);
|
|
rv.setOnClickPendingIntent(R.id.widgetBtnPwr, powerPendingIntent);
|
|
//power5
|
|
Intent power5Intent = new Intent(context, SendRequestService.class);
|
|
power5Intent.putExtra("url", hostIP + "/?POWER1=on");
|
|
power5Intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
|
|
PendingIntent power5PendingIntent = PendingIntent.getService(context, appWidgetId+4, power5Intent, PendingIntent.FLAG_UPDATE_CURRENT);
|
|
rv.setOnClickPendingIntent(R.id.widgetBtnPwr5, power5PendingIntent);
|
|
|
|
appWidgetManager.updateAppWidget(appWidgetId, rv);
|
|
|
|
context.startService(refreshIntent);
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
|
|
super.onUpdate(context, appWidgetManager, appWidgetIds);
|
|
|
|
setRequests(context, appWidgetManager, appWidgetIds);
|
|
}
|
|
|
|
@Override
|
|
public void onEnabled(Context context) {
|
|
super.onEnabled(context);
|
|
|
|
AppWidgetManager appWidgetManager = AppWidgetManager.getInstance(context);
|
|
int[] appWidgetIds = appWidgetManager.getAppWidgetIds(new ComponentName(context, NoWolWidget.class));
|
|
|
|
setRequests(context, appWidgetManager, appWidgetIds);
|
|
}
|
|
|
|
@Override
|
|
public void onReceive(Context context, Intent intent) {
|
|
super.onReceive(context, intent);
|
|
|
|
onEnabled(context);
|
|
}
|
|
|
|
@Override
|
|
public void onDeleted(Context context, int[] appWidgetIds) {
|
|
super.onDeleted(context, appWidgetIds);
|
|
}
|
|
|
|
@Override
|
|
public void onDisabled(Context context) {
|
|
super.onDisabled(context);
|
|
}
|
|
}
|