diff --git a/Habitica/res/layout/widget_dailies_list_row.xml b/Habitica/res/layout/widget_dailies_list_row.xml index ae723e2e3..41d92b94c 100644 --- a/Habitica/res/layout/widget_dailies_list_row.xml +++ b/Habitica/res/layout/widget_dailies_list_row.xml @@ -1,35 +1,40 @@ - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Habitica/res/xml/task_list_widget_info.xml b/Habitica/res/xml/task_list_widget_info.xml index db0b85187..ce80082d1 100644 --- a/Habitica/res/xml/task_list_widget_info.xml +++ b/Habitica/res/xml/task_list_widget_info.xml @@ -1,6 +1,6 @@ taskList = new ArrayList<>(); private Context context = null; private boolean reloadData; - public TaskListFactory(Context context, Intent intent, String taskType) { + public TaskListFactory(Context context, Intent intent, String taskType, int listItemResId) { this.context = context; this.widgetId = intent.getIntExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, 0); + this.listItemResId = listItemResId; this.reloadData = false; this.taskType = taskType; @@ -85,7 +87,7 @@ public abstract class TaskListFactory implements RemoteViewsService.RemoteViewsF @Override public RemoteViews getViewAt(int position) { final RemoteViews remoteView = new RemoteViews( - context.getPackageName(), R.layout.widget_dailies_list_row); + context.getPackageName(), listItemResId); if (taskList.size() > position) { Task task = taskList.get(position); @@ -98,14 +100,14 @@ public abstract class TaskListFactory implements RemoteViewsService.RemoteViewsF remoteView.setInt(R.id.checkbox_background, "setBackgroundResource", task.getLightTaskColor()); Intent fillInIntent = new Intent(); fillInIntent.putExtra(TaskListWidgetProvider.TASK_ID_ITEM, task.getId()); - remoteView.setOnClickFillInIntent(R.id.dailies_list_row, fillInIntent); + remoteView.setOnClickFillInIntent(R.id.widget_list_row, fillInIntent); } return remoteView; } @Override public RemoteViews getLoadingView() { - return new RemoteViews(context.getPackageName(), R.layout.widget_dailies_list_row); + return new RemoteViews(context.getPackageName(), listItemResId); } @Override diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/widget/TaskListWidgetProvider.java b/Habitica/src/main/java/com/habitrpg/android/habitica/widget/TaskListWidgetProvider.java index c32302cd9..997977bf7 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/widget/TaskListWidgetProvider.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/widget/TaskListWidgetProvider.java @@ -5,7 +5,6 @@ import android.appwidget.AppWidgetManager; import android.content.ComponentName; import android.content.Context; import android.content.Intent; -import android.content.SharedPreferences; import android.net.Uri; import android.os.Build; import android.os.Bundle; @@ -15,6 +14,7 @@ import com.habitrpg.android.habitica.APIHelper; import com.habitrpg.android.habitica.HabiticaApplication; import com.habitrpg.android.habitica.HostConfig; import com.habitrpg.android.habitica.R; +import com.habitrpg.android.habitica.ui.activities.MainActivity; import com.magicmicky.habitrpgwrapper.lib.models.TaskDirection; import com.magicmicky.habitrpgwrapper.lib.models.tasks.Task; import com.raizlabs.android.dbflow.sql.builder.Condition; @@ -40,6 +40,7 @@ public abstract class TaskListWidgetProvider extends BaseWidgetProvider { protected abstract Class getServiceClass(); protected abstract Class getProviderClass(); + protected abstract int getTitleResId(); @Override @@ -86,9 +87,15 @@ public abstract class TaskListWidgetProvider extends BaseWidgetProvider { Intent intent = new Intent(context, getServiceClass()); intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetIds[i]); intent.setData(Uri.parse(intent.toUri(Intent.URI_INTENT_SCHEME))); - RemoteViews rv = new RemoteViews(context.getPackageName(), R.layout.widget_dailies); + RemoteViews rv = new RemoteViews(context.getPackageName(), R.layout.widget_task_list); rv.setRemoteAdapter(appWidgetIds[i], R.id.list_view, intent); rv.setEmptyView(R.id.list, R.id.empty_view); + rv.setTextViewText(R.id.widget_title, context.getString(getTitleResId())); + + // if the user click on the title: open App + Intent openAppIntent = new Intent(context.getApplicationContext(), MainActivity.class); + PendingIntent openApp = PendingIntent.getActivity(context, 0, openAppIntent, PendingIntent.FLAG_UPDATE_CURRENT); + rv.setOnClickPendingIntent(R.id.widget_title, openApp); Intent taskIntent = new Intent(context, getProviderClass()); taskIntent.setAction(DAILY_ACTION); @@ -108,7 +115,7 @@ public abstract class TaskListWidgetProvider extends BaseWidgetProvider { @Override public int layoutResourceId() { - return R.layout.widget_dailies; + return R.layout.widget_task_list; } @Override diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/widget/TodoListFactory.java b/Habitica/src/main/java/com/habitrpg/android/habitica/widget/TodoListFactory.java index 3586d7369..db7198dca 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/widget/TodoListFactory.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/widget/TodoListFactory.java @@ -3,10 +3,11 @@ package com.habitrpg.android.habitica.widget; import android.content.Context; import android.content.Intent; +import com.habitrpg.android.habitica.R; import com.magicmicky.habitrpgwrapper.lib.models.tasks.Task; public class TodoListFactory extends TaskListFactory { public TodoListFactory(Context context, Intent intent) { - super(context, intent, Task.TYPE_TODO); + super(context, intent, Task.TYPE_TODO, R.layout.widget_todo_list_row); } } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/widget/TodoListWidgetProvider.java b/Habitica/src/main/java/com/habitrpg/android/habitica/widget/TodoListWidgetProvider.java index bc4859e5b..4511cd8cd 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/widget/TodoListWidgetProvider.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/widget/TodoListWidgetProvider.java @@ -1,5 +1,7 @@ package com.habitrpg.android.habitica.widget; +import com.habitrpg.android.habitica.R; + public class TodoListWidgetProvider extends TaskListWidgetProvider{ @Override @@ -11,4 +13,9 @@ public class TodoListWidgetProvider extends TaskListWidgetProvider{ protected Class getProviderClass() { return TodoListWidgetProvider.class; } + + @Override + protected int getTitleResId() { + return R.string.todos; + } }