diff --git a/app/src/main/java/net/headlezz/notificationlogger/widget/ListWidgetProvider.java b/app/src/main/java/net/headlezz/notificationlogger/widget/ListWidgetProvider.java
index d14f89f..20f6042 100644
--- a/app/src/main/java/net/headlezz/notificationlogger/widget/ListWidgetProvider.java
+++ b/app/src/main/java/net/headlezz/notificationlogger/widget/ListWidgetProvider.java
@@ -1,5 +1,6 @@
package net.headlezz.notificationlogger.widget;
+import android.app.PendingIntent;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.Context;
@@ -7,10 +8,13 @@ import android.content.Intent;
import android.net.Uri;
import android.widget.RemoteViews;
+import net.headlezz.notificationlogger.MainActivity;
import net.headlezz.notificationlogger.R;
public class ListWidgetProvider extends AppWidgetProvider {
+ public static final String SHOW_NOTIFICATION_ACTION = "net.headlezz.notificationlogger.listwidget.SHOW_NOTIFICATION_ACTION";
+
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
for(int widgetId : appWidgetIds) {
@@ -27,11 +31,25 @@ public class ListWidgetProvider extends AppWidgetProvider {
serviceIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
serviceIntent.setData(Uri.parse(serviceIntent.toUri(Intent.URI_INTENT_SCHEME)));
+ Intent showNotificationIntent = new Intent(context, ListWidgetProvider.class);
+ showNotificationIntent.setAction(ListWidgetProvider.SHOW_NOTIFICATION_ACTION);
+ PendingIntent pi = PendingIntent.getBroadcast(context, 0, showNotificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
+ rvs.setPendingIntentTemplate(R.id.list_widget_listView, pi);
+
rvs.setRemoteAdapter(R.id.list_widget_listView, serviceIntent);
rvs.setEmptyView(R.id.list_widget_listView, R.id.list_widget_empty_view);
-
-
return rvs;
}
+
+ // receives the intent broadcast from list items
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ if (intent.getAction().equals(SHOW_NOTIFICATION_ACTION)) {
+ Intent mainActivityIntent = new Intent(context, MainActivity.class);
+ mainActivityIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ context.startActivity(mainActivityIntent);
+ }
+ super.onReceive(context, intent);
+ }
}
diff --git a/app/src/main/java/net/headlezz/notificationlogger/widget/ListWidgetViewFactory.java b/app/src/main/java/net/headlezz/notificationlogger/widget/ListWidgetViewFactory.java
index 9297177..eee7da8 100644
--- a/app/src/main/java/net/headlezz/notificationlogger/widget/ListWidgetViewFactory.java
+++ b/app/src/main/java/net/headlezz/notificationlogger/widget/ListWidgetViewFactory.java
@@ -1,8 +1,12 @@
package net.headlezz.notificationlogger.widget;
import android.content.Context;
+import android.content.Intent;
import android.database.Cursor;
+import android.graphics.Typeface;
+import android.text.SpannableString;
import android.text.format.DateUtils;
+import android.text.style.StyleSpan;
import android.widget.RemoteViews;
import android.widget.RemoteViewsService;
@@ -55,13 +59,22 @@ public class ListWidgetViewFactory implements RemoteViewsService.RemoteViewsFact
@Override
public RemoteViews getViewAt(int position) {
RemoteViews rv = new RemoteViews(mContext.getPackageName(), R.layout.widget_list_item);
- mCursor.moveToPosition(position);
+ mCursor.moveToPosition(position);
LoggedNotification notification = Logged_notificationTable.getRow(mCursor, false);
rv.setTextViewText(R.id.widget_list_item_title, notification.appName);
- rv.setTextViewText(R.id.widget_list_item_notification, notification.title + ": " + notification.message);
+
+ String title = notification.title + ":";
+ SpannableString titleSpan = new SpannableString(title + " " + notification.message);
+ titleSpan.setSpan(new StyleSpan(Typeface.BOLD), 0, title.length(), 0);
+
+ rv.setTextViewText(R.id.widget_list_item_notification, titleSpan);
rv.setTextViewText(R.id.widget_list_item_date, DateUtils.formatDateTime(mContext, notification.date, DateUtils.FORMAT_ABBREV_ALL | DateUtils.FORMAT_SHOW_TIME | DateUtils.FORMAT_SHOW_DATE));
+
+ Intent intent = new Intent();
+ intent.putExtra(Logged_notificationTable.FIELD__ID, notification.id);
+ rv.setOnClickFillInIntent(R.id.widget_list_item, intent);
return rv;
}
diff --git a/app/src/main/res/layout/widget_list.xml b/app/src/main/res/layout/widget_list.xml
index 1365f1e..58170e4 100644
--- a/app/src/main/res/layout/widget_list.xml
+++ b/app/src/main/res/layout/widget_list.xml
@@ -2,11 +2,22 @@
+ android:orientation="vertical">
+
+
+ android:text="@string/widget_list_empty"
+ android:textColor="@android:color/black" />
\ No newline at end of file
diff --git a/app/src/main/res/layout/widget_list_item.xml b/app/src/main/res/layout/widget_list_item.xml
index 5278387..f78f971 100644
--- a/app/src/main/res/layout/widget_list_item.xml
+++ b/app/src/main/res/layout/widget_list_item.xml
@@ -4,35 +4,46 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
+ android:id="@+id/widget_list_item"
android:padding="8dp">
+ tools:text="appname asd asdasqweqwe qw q asd asd aweq"
+ android:layout_toStartOf="@+id/widget_list_item_date" />
+ tools:text="notification" />
+
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index ce6f3dd..e9b25b7 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -83,6 +83,8 @@
Show
Open folder
No file browser installed.
+ Latest Notifications
+ No notifications logged.
- Show more info
diff --git a/app/src/main/res/xml/widget_info.xml b/app/src/main/res/xml/widget_info.xml
index 0d319f4..33fe1b7 100644
--- a/app/src/main/res/xml/widget_info.xml
+++ b/app/src/main/res/xml/widget_info.xml
@@ -1,8 +1,7 @@