summaryrefslogtreecommitdiff
path: root/orgfoxttrss/src/main/java/org/fox/ttrss/DashClock.java
diff options
context:
space:
mode:
Diffstat (limited to 'orgfoxttrss/src/main/java/org/fox/ttrss/DashClock.java')
-rw-r--r--orgfoxttrss/src/main/java/org/fox/ttrss/DashClock.java107
1 files changed, 107 insertions, 0 deletions
diff --git a/orgfoxttrss/src/main/java/org/fox/ttrss/DashClock.java b/orgfoxttrss/src/main/java/org/fox/ttrss/DashClock.java
new file mode 100644
index 00000000..b3491972
--- /dev/null
+++ b/orgfoxttrss/src/main/java/org/fox/ttrss/DashClock.java
@@ -0,0 +1,107 @@
+package org.fox.ttrss;
+
+import java.util.HashMap;
+
+import org.fox.ttrss.util.SimpleLoginManager;
+
+import android.content.Context;
+import android.content.Intent;
+import android.content.SharedPreferences;
+import android.preference.PreferenceManager;
+import android.view.View;
+
+import com.google.android.apps.dashclock.api.DashClockExtension;
+import com.google.android.apps.dashclock.api.ExtensionData;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+
+public class DashClock extends DashClockExtension {
+
+ private final String TAG = this.getClass().getSimpleName();
+
+ protected SharedPreferences m_prefs;
+
+ @Override
+ protected void onInitialize(boolean isReconnect) {
+ super.onInitialize(isReconnect);
+ setUpdateWhenScreenOn(true);
+
+ m_prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
+ }
+
+ @Override
+ protected void onUpdateData(int reason) {
+
+ SimpleLoginManager loginManager = new SimpleLoginManager() {
+
+ @Override
+ protected void onLoginSuccess(int requestId, String sessionId, int apiLevel) {
+
+ ApiRequest aru = new ApiRequest(getApplicationContext()) {
+ @Override
+ protected void onPostExecute(JsonElement result) {
+ if (result != null) {
+ try {
+ JsonObject content = result.getAsJsonObject();
+
+ if (content != null) {
+ int unread = content.get("unread").getAsInt();
+
+ ExtensionData updatedData = null; // when null DashClock hides the widget
+
+ if (unread > 0) {
+ updatedData = new ExtensionData();
+ updatedData.visible(true);
+
+ updatedData.icon(R.drawable.dashclock);
+ updatedData.status(String.valueOf(unread));
+
+ updatedData.expandedTitle(getString(R.string.n_unread_articles, unread));
+ //updatedData.expandedBody(getString(R.string.app_name));
+
+ updatedData.clickIntent(new Intent().setClassName("org.fox.ttrss",
+ "org.fox.ttrss.OnlineActivity"));
+ }
+
+ publishUpdate(updatedData);
+
+ return;
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ }
+ };
+
+ final String fSessionId = sessionId;
+
+ HashMap<String, String> umap = new HashMap<String, String>() {
+ {
+ put("op", "getUnread");
+ put("sid", fSessionId);
+ }
+ };
+
+ aru.execute(umap);
+ }
+
+ @Override
+ protected void onLoginFailed(int requestId, ApiRequest ar) {
+
+ }
+
+ @Override
+ protected void onLoggingIn(int requestId) {
+
+
+ }
+ };
+
+ String login = m_prefs.getString("login", "").trim();
+ String password = m_prefs.getString("password", "").trim();
+
+ loginManager.logIn(getApplicationContext(), 1, login, password);
+ }
+}