From 2bd09ee96cb39338629aa7ddf5f294f880e5e04d Mon Sep 17 00:00:00 2001 From: anasofiagribeiro Date: Tue, 28 Jul 2020 16:10:05 +0100 Subject: [PATCH 1/8] Refactor4Green - Cache --- src/com/tobykurien/batteryfu/ToggleWidget.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/com/tobykurien/batteryfu/ToggleWidget.java b/src/com/tobykurien/batteryfu/ToggleWidget.java index fa738bd..89fe382 100755 --- a/src/com/tobykurien/batteryfu/ToggleWidget.java +++ b/src/com/tobykurien/batteryfu/ToggleWidget.java @@ -13,6 +13,7 @@ import android.widget.RemoteViews; public class ToggleWidget extends AppWidgetProvider { + private String lastaction = null; public static String ACTION_WIDGET_RECEIVER = "com.tobykurien.batteryFu.WidgetReceiver"; @Override @@ -52,9 +53,13 @@ private void initWidget(Context context, RemoteViews remoteViews) { actionPendingIntent = PendingIntent.getBroadcast(context, 0, active, 0); remoteViews.setOnClickPendingIntent(R.id.widget_text, actionPendingIntent); } - + @Override public void onReceive(Context context, Intent intent) { + if (lastaction.equals(intent.getAction())) { // nothing has changed; we can safely return + return; + } + updateValues(intent); super.onReceive(context, intent); Log.i("BatteryFu", "Got widget receive: " + intent.getAction()); @@ -63,8 +68,7 @@ public void onReceive(Context context, Intent intent) { initWidget(context, remoteViews); // v1.5 fix that doesn't call onDelete Action - final String action = intent.getAction(); - if (AppWidgetManager.ACTION_APPWIDGET_DELETED.equals(action)) { + if (AppWidgetManager.ACTION_APPWIDGET_DELETED.equals(lastaction)) { final int appWidgetId = intent.getExtras().getInt( AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID); @@ -120,4 +124,8 @@ private void setImage(Context context, int imageId) { new ComponentName(context, ToggleWidget.class) , remoteViews); } + + private void updateValues(Intent intent) { + lastaction = intent.getAction(); + } } From d592f7ba8aa801a5ada9cd8f8e00997d2ac50fb1 Mon Sep 17 00:00:00 2001 From: anasofiagribeiro Date: Mon, 12 Oct 2020 10:56:27 +0100 Subject: [PATCH 2/8] EcoAndroid - GZIP Compression Energy Pattern --- src/com/tobykurien/android/Utils.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/com/tobykurien/android/Utils.java b/src/com/tobykurien/android/Utils.java index 3c9a4ed..3be1d58 100755 --- a/src/com/tobykurien/android/Utils.java +++ b/src/com/tobykurien/android/Utils.java @@ -17,6 +17,7 @@ import java.util.List; import java.util.Set; import java.util.UUID; +import java.util.zip.GZIPInputStream; import org.apache.http.client.HttpResponseException; @@ -347,6 +348,7 @@ public static String getData(Context context, String urlString, boolean forceDow try { URL url = new URL(urlString.toString()); HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); + urlConnection.setRequestProperty("Accept-Encoding", "gzip"); urlConnection.setFollowRedirects(true); urlConnection.setIfModifiedSince(f.lastModified()); urlConnection.connect(); @@ -357,8 +359,13 @@ public static String getData(Context context, String urlString, boolean forceDow } else if (urlConnection.getResponseCode() == HttpURLConnection.HTTP_OK) { if (UtilsDebug.NET) Log.d(UtilsConstants.LOG_TAG, "Cache not found or expired, loading data from the internet"); - - InputStream is = urlConnection.getInputStream(); + + InputStream is; + if ("gzip".equals(urlConnection.getContentEncoding())) { + is = new GZIPInputStream(urlConnection.getInputStream()); + } else { + is = urlConnection.getInputStream(); + } ByteArrayOutputStream os = new ByteArrayOutputStream(); FileWriter fr = null; From 51d4cf0f6937cddbb4a12ce9a65acc06104ecf32 Mon Sep 17 00:00:00 2001 From: anasofiagribeiro Date: Wed, 14 Oct 2020 11:07:32 +0100 Subject: [PATCH 3/8] EcoAndroid: Reduce Size --- src/com/tobykurien/batteryfu/ToggleWidget.java | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/src/com/tobykurien/batteryfu/ToggleWidget.java b/src/com/tobykurien/batteryfu/ToggleWidget.java index 89fe382..7fa96fd 100755 --- a/src/com/tobykurien/batteryfu/ToggleWidget.java +++ b/src/com/tobykurien/batteryfu/ToggleWidget.java @@ -13,7 +13,6 @@ import android.widget.RemoteViews; public class ToggleWidget extends AppWidgetProvider { - private String lastaction = null; public static String ACTION_WIDGET_RECEIVER = "com.tobykurien.batteryFu.WidgetReceiver"; @Override @@ -54,12 +53,8 @@ private void initWidget(Context context, RemoteViews remoteViews) { remoteViews.setOnClickPendingIntent(R.id.widget_text, actionPendingIntent); } - @Override + @Override public void onReceive(Context context, Intent intent) { - if (lastaction.equals(intent.getAction())) { // nothing has changed; we can safely return - return; - } - updateValues(intent); super.onReceive(context, intent); Log.i("BatteryFu", "Got widget receive: " + intent.getAction()); @@ -68,7 +63,7 @@ public void onReceive(Context context, Intent intent) { initWidget(context, remoteViews); // v1.5 fix that doesn't call onDelete Action - if (AppWidgetManager.ACTION_APPWIDGET_DELETED.equals(lastaction)) { + if (AppWidgetManager.ACTION_APPWIDGET_DELETED.equals(intent.getAction())) { final int appWidgetId = intent.getExtras().getInt( AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID); @@ -125,7 +120,4 @@ private void setImage(Context context, int imageId) { , remoteViews); } - private void updateValues(Intent intent) { - lastaction = intent.getAction(); - } } From b4da517a3880fe7cc1d8c5d0ede69685ca82bfcd Mon Sep 17 00:00:00 2001 From: anasofiagribeiro Date: Wed, 14 Oct 2020 11:08:53 +0100 Subject: [PATCH 4/8] EcoAndroid: Reduce Size --- src/com/tobykurien/batteryfu/ToggleWidget.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/com/tobykurien/batteryfu/ToggleWidget.java b/src/com/tobykurien/batteryfu/ToggleWidget.java index 7fa96fd..3db90fc 100755 --- a/src/com/tobykurien/batteryfu/ToggleWidget.java +++ b/src/com/tobykurien/batteryfu/ToggleWidget.java @@ -53,7 +53,7 @@ private void initWidget(Context context, RemoteViews remoteViews) { remoteViews.setOnClickPendingIntent(R.id.widget_text, actionPendingIntent); } - @Override + @Override public void onReceive(Context context, Intent intent) { super.onReceive(context, intent); Log.i("BatteryFu", "Got widget receive: " + intent.getAction()); @@ -63,7 +63,9 @@ public void onReceive(Context context, Intent intent) { initWidget(context, remoteViews); // v1.5 fix that doesn't call onDelete Action - if (AppWidgetManager.ACTION_APPWIDGET_DELETED.equals(intent.getAction())) { + final String action = intent.getAction(); + + if (AppWidgetManager.ACTION_APPWIDGET_DELETED.equals(action)) { final int appWidgetId = intent.getExtras().getInt( AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID); From 854d7eacdeaae432f2a2a3138cd1d893243dd1ad Mon Sep 17 00:00:00 2001 From: anasofiagribeiro Date: Wed, 14 Oct 2020 11:10:05 +0100 Subject: [PATCH 5/8] EcoAndroid: Reduce Size --- .../tobykurien/batteryfu/ToggleWidget.java | 34 +++++++++---------- 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/src/com/tobykurien/batteryfu/ToggleWidget.java b/src/com/tobykurien/batteryfu/ToggleWidget.java index 3db90fc..24e08e9 100755 --- a/src/com/tobykurien/batteryfu/ToggleWidget.java +++ b/src/com/tobykurien/batteryfu/ToggleWidget.java @@ -17,10 +17,10 @@ public class ToggleWidget extends AppWidgetProvider { @Override public void onUpdate(Context context, AppWidgetManager appWidgetManager, - int[] appWidgetIds) { + int[] appWidgetIds) { Log.i("BatteryFu", "Got widget update: " + appWidgetManager.toString()); super.onUpdate(context, appWidgetManager, appWidgetIds); - + RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.widget); initWidget(context, remoteViews); appWidgetManager.updateAppWidget(appWidgetIds, remoteViews); @@ -39,17 +39,17 @@ private void initWidget(Context context, RemoteViews remoteViews) { } else { remoteViews.setImageViewResource(R.id.widget_icon, R.drawable.widget_icon_toggle_off); } - + // separate intent for clicking the icon Intent active = new Intent(context, ToggleWidget.class); active.setAction(ACTION_WIDGET_RECEIVER); active.setData(Uri.parse("click://icon")); - PendingIntent actionPendingIntent = PendingIntent.getBroadcast(context, 0, active, 0); + PendingIntent actionPendingIntent = PendingIntent.getBroadcast(context, 0, active, 0); remoteViews.setOnClickPendingIntent(R.id.widget_icon, actionPendingIntent); - + // vs clicking the text active.setData(Uri.parse("click://text")); - actionPendingIntent = PendingIntent.getBroadcast(context, 0, active, 0); + actionPendingIntent = PendingIntent.getBroadcast(context, 0, active, 0); remoteViews.setOnClickPendingIntent(R.id.widget_text, actionPendingIntent); } @@ -60,11 +60,10 @@ public void onReceive(Context context, Intent intent) { // gonna keep re-initializing the widget to avoid it becoming unresponsive RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.widget); - initWidget(context, remoteViews); - + initWidget(context, remoteViews); + // v1.5 fix that doesn't call onDelete Action final String action = intent.getAction(); - if (AppWidgetManager.ACTION_APPWIDGET_DELETED.equals(action)) { final int appWidgetId = intent.getExtras().getInt( AppWidgetManager.EXTRA_APPWIDGET_ID, @@ -78,22 +77,22 @@ public void onReceive(Context context, Intent intent) { if (intent.getDataString().equals("batteryfu://enabled")) { setImage(context, R.drawable.widget_icon_toggle_on); - } + } if (intent.getDataString().equals("batteryfu://disabled")) { setImage(context, R.drawable.widget_icon_toggle_off); - } - + } + if (intent.getDataString().equals("click://icon")) { // change image setImage(context, R.drawable.widget_icon_toggle_middle); - + Intent active = new Intent(context, DataToggler.class); active.setData(Uri.parse("batteryfu://toggle")); - context.sendBroadcast(active); + context.sendBroadcast(active); } - if (intent.getDataString().equals("click://text")) { + if (intent.getDataString().equals("click://text")) { // show the preferences screen Intent active = new Intent(context, ModeSelect.class); active.setAction(Intent.ACTION_VIEW); @@ -106,7 +105,7 @@ public void onReceive(Context context, Intent intent) { new ComponentName(context, ToggleWidget.class) , remoteViews); } - } + } } /** @@ -121,5 +120,4 @@ private void setImage(Context context, int imageId) { new ComponentName(context, ToggleWidget.class) , remoteViews); } - -} +} \ No newline at end of file From 576e9e124fc1528443e1067b06ba1625a0f343bc Mon Sep 17 00:00:00 2001 From: anasofiagribeiro Date: Wed, 14 Oct 2020 11:10:45 +0100 Subject: [PATCH 6/8] EcoAndroid: Reduce Size --- .../tobykurien/batteryfu/ToggleWidget.java | 34 ++++++++++--------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/src/com/tobykurien/batteryfu/ToggleWidget.java b/src/com/tobykurien/batteryfu/ToggleWidget.java index 24e08e9..3db90fc 100755 --- a/src/com/tobykurien/batteryfu/ToggleWidget.java +++ b/src/com/tobykurien/batteryfu/ToggleWidget.java @@ -17,10 +17,10 @@ public class ToggleWidget extends AppWidgetProvider { @Override public void onUpdate(Context context, AppWidgetManager appWidgetManager, - int[] appWidgetIds) { + int[] appWidgetIds) { Log.i("BatteryFu", "Got widget update: " + appWidgetManager.toString()); super.onUpdate(context, appWidgetManager, appWidgetIds); - + RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.widget); initWidget(context, remoteViews); appWidgetManager.updateAppWidget(appWidgetIds, remoteViews); @@ -39,17 +39,17 @@ private void initWidget(Context context, RemoteViews remoteViews) { } else { remoteViews.setImageViewResource(R.id.widget_icon, R.drawable.widget_icon_toggle_off); } - + // separate intent for clicking the icon Intent active = new Intent(context, ToggleWidget.class); active.setAction(ACTION_WIDGET_RECEIVER); active.setData(Uri.parse("click://icon")); - PendingIntent actionPendingIntent = PendingIntent.getBroadcast(context, 0, active, 0); + PendingIntent actionPendingIntent = PendingIntent.getBroadcast(context, 0, active, 0); remoteViews.setOnClickPendingIntent(R.id.widget_icon, actionPendingIntent); - + // vs clicking the text active.setData(Uri.parse("click://text")); - actionPendingIntent = PendingIntent.getBroadcast(context, 0, active, 0); + actionPendingIntent = PendingIntent.getBroadcast(context, 0, active, 0); remoteViews.setOnClickPendingIntent(R.id.widget_text, actionPendingIntent); } @@ -60,10 +60,11 @@ public void onReceive(Context context, Intent intent) { // gonna keep re-initializing the widget to avoid it becoming unresponsive RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.widget); - initWidget(context, remoteViews); - + initWidget(context, remoteViews); + // v1.5 fix that doesn't call onDelete Action final String action = intent.getAction(); + if (AppWidgetManager.ACTION_APPWIDGET_DELETED.equals(action)) { final int appWidgetId = intent.getExtras().getInt( AppWidgetManager.EXTRA_APPWIDGET_ID, @@ -77,22 +78,22 @@ public void onReceive(Context context, Intent intent) { if (intent.getDataString().equals("batteryfu://enabled")) { setImage(context, R.drawable.widget_icon_toggle_on); - } + } if (intent.getDataString().equals("batteryfu://disabled")) { setImage(context, R.drawable.widget_icon_toggle_off); - } - + } + if (intent.getDataString().equals("click://icon")) { // change image setImage(context, R.drawable.widget_icon_toggle_middle); - + Intent active = new Intent(context, DataToggler.class); active.setData(Uri.parse("batteryfu://toggle")); - context.sendBroadcast(active); + context.sendBroadcast(active); } - if (intent.getDataString().equals("click://text")) { + if (intent.getDataString().equals("click://text")) { // show the preferences screen Intent active = new Intent(context, ModeSelect.class); active.setAction(Intent.ACTION_VIEW); @@ -105,7 +106,7 @@ public void onReceive(Context context, Intent intent) { new ComponentName(context, ToggleWidget.class) , remoteViews); } - } + } } /** @@ -120,4 +121,5 @@ private void setImage(Context context, int imageId) { new ComponentName(context, ToggleWidget.class) , remoteViews); } -} \ No newline at end of file + +} From 47140e8b024045d712dbaa04482eb533e0afa67d Mon Sep 17 00:00:00 2001 From: anasofiagribeiro Date: Wed, 14 Oct 2020 11:12:54 +0100 Subject: [PATCH 7/8] EcoAndroid: Reduce Size --- src/com/tobykurien/batteryfu/ToggleWidget.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/com/tobykurien/batteryfu/ToggleWidget.java b/src/com/tobykurien/batteryfu/ToggleWidget.java index 3db90fc..7a692a6 100755 --- a/src/com/tobykurien/batteryfu/ToggleWidget.java +++ b/src/com/tobykurien/batteryfu/ToggleWidget.java @@ -64,7 +64,6 @@ public void onReceive(Context context, Intent intent) { // v1.5 fix that doesn't call onDelete Action final String action = intent.getAction(); - if (AppWidgetManager.ACTION_APPWIDGET_DELETED.equals(action)) { final int appWidgetId = intent.getExtras().getInt( AppWidgetManager.EXTRA_APPWIDGET_ID, @@ -121,5 +120,4 @@ private void setImage(Context context, int imageId) { new ComponentName(context, ToggleWidget.class) , remoteViews); } - } From 3f960198d2e4dc822e7f06cd4c563cd35e647955 Mon Sep 17 00:00:00 2001 From: anasofiagribeiro Date: Wed, 14 Oct 2020 11:14:01 +0100 Subject: [PATCH 8/8] EcoAndroid: Reduce Size --- src/com/tobykurien/batteryfu/ToggleWidget.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/tobykurien/batteryfu/ToggleWidget.java b/src/com/tobykurien/batteryfu/ToggleWidget.java index 7a692a6..fa738bd 100755 --- a/src/com/tobykurien/batteryfu/ToggleWidget.java +++ b/src/com/tobykurien/batteryfu/ToggleWidget.java @@ -52,7 +52,7 @@ private void initWidget(Context context, RemoteViews remoteViews) { actionPendingIntent = PendingIntent.getBroadcast(context, 0, active, 0); remoteViews.setOnClickPendingIntent(R.id.widget_text, actionPendingIntent); } - + @Override public void onReceive(Context context, Intent intent) { super.onReceive(context, intent);