From efb22befbd3fd4474c802013ec176c505d48c96a Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Tue, 30 May 2017 10:27:56 +0300 Subject: [PATCH] widget: some more debugging, try delaying network request on update --- .../java/org/fox/ttrss/CommonActivity.java | 5 +++-- .../fox/ttrss/widget/SmallWidgetProvider.java | 2 ++ .../fox/ttrss/widget/WidgetUpdateService.java | 19 +++++++++++++++---- 3 files changed, 20 insertions(+), 6 deletions(-) diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/CommonActivity.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/CommonActivity.java index 11032388..07379523 100755 --- a/org.fox.ttrss/src/main/java/org/fox/ttrss/CommonActivity.java +++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/CommonActivity.java @@ -18,6 +18,7 @@ import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.net.Uri; import android.os.Bundle; +import android.os.SystemClock; import android.preference.PreferenceManager; import android.support.customtabs.CustomTabsCallback; import android.support.customtabs.CustomTabsClient; @@ -435,8 +436,8 @@ public class CommonActivity extends ActionBarActivity implements SharedPreferenc alarmManager.cancel(pendingIntentAlarm); - alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, - System.currentTimeMillis() + updateInterval, + alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME, + SystemClock.elapsedRealtime() + updateInterval, updateInterval, pendingIntentAlarm); diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/widget/SmallWidgetProvider.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/widget/SmallWidgetProvider.java index dab655a2..8e2277d1 100755 --- a/org.fox.ttrss/src/main/java/org/fox/ttrss/widget/SmallWidgetProvider.java +++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/widget/SmallWidgetProvider.java @@ -8,6 +8,7 @@ import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.graphics.Color; +import android.os.Handler; import android.preference.PreferenceManager; import android.util.Log; import android.view.View; @@ -52,6 +53,7 @@ public class SmallWidgetProvider extends AppWidgetProvider { Intent serviceIntent = new Intent(context.getApplicationContext(), WidgetUpdateService.class); context.startService(serviceIntent); + } diff --git a/org.fox.ttrss/src/main/java/org/fox/ttrss/widget/WidgetUpdateService.java b/org.fox.ttrss/src/main/java/org/fox/ttrss/widget/WidgetUpdateService.java index 08ef8f6b..de459b5e 100755 --- a/org.fox.ttrss/src/main/java/org/fox/ttrss/widget/WidgetUpdateService.java +++ b/org.fox.ttrss/src/main/java/org/fox/ttrss/widget/WidgetUpdateService.java @@ -3,6 +3,7 @@ package org.fox.ttrss.widget; import android.app.Service; import android.content.Intent; import android.content.SharedPreferences; +import android.os.Handler; import android.os.IBinder; import android.preference.PreferenceManager; import android.util.Log; @@ -52,7 +53,7 @@ public class WidgetUpdateService extends Service { final int feedId = m_prefs.getBoolean("widget_show_fresh", true) ? -3 : 0; - SimpleLoginManager loginManager = new SimpleLoginManager() { + final SimpleLoginManager loginManager = new SimpleLoginManager() { @Override protected void onLoginSuccess(int requestId, String sessionId, int apiLevel) { @@ -75,6 +76,8 @@ public class WidgetUpdateService extends Service { } catch (Exception e) { e.printStackTrace(); } + } else { + Log.d(TAG, "request failed: " + getErrorMessage()); } ++m_updateFailures; @@ -97,6 +100,8 @@ public class WidgetUpdateService extends Service { @Override protected void onLoginFailed(int requestId, ApiRequest ar) { + Log.d(TAG, "login failed: " + ar.getErrorMessage()); + ++m_updateFailures; sendResultIntent(-1, UPDATE_RESULT_ERROR_LOGIN); } @@ -108,10 +113,16 @@ public class WidgetUpdateService extends Service { } }; - String login = m_prefs.getString("login", "").trim(); - String password = m_prefs.getString("password", "").trim(); + new Handler().postDelayed(new Runnable() { + @Override + public void run() { + String login = m_prefs.getString("login", "").trim(); + String password = m_prefs.getString("password", "").trim(); + + loginManager.logIn(getApplicationContext(), 1, login, password); + } + }, 2 * 1000); - loginManager.logIn(getApplicationContext(), 1, login, password); } } catch (Exception e) { e.printStackTrace();