mirror of https://github.com/tasks/tasks
Move filters to multiplatform library
parent
4c1121869d
commit
bbaaf27386
@ -1,8 +1,13 @@
|
|||||||
package com.todoroo.astrid.api
|
package com.todoroo.astrid.api
|
||||||
|
|
||||||
import kotlinx.parcelize.Parcelize
|
import kotlinx.parcelize.Parcelize
|
||||||
|
import org.tasks.filters.Filter
|
||||||
|
import org.tasks.filters.FilterListItem
|
||||||
|
|
||||||
@Parcelize
|
@Parcelize
|
||||||
class EmptyFilter(override val sql: String? = "WHERE 0", override val title: String? = null) : Filter {
|
class EmptyFilter(
|
||||||
|
override val sql: String? = "WHERE 0",
|
||||||
|
override val title: String? = null
|
||||||
|
) : Filter {
|
||||||
override fun areItemsTheSame(other: FilterListItem): Boolean = false
|
override fun areItemsTheSame(other: FilterListItem): Boolean = false
|
||||||
}
|
}
|
||||||
@ -1,15 +0,0 @@
|
|||||||
package com.todoroo.astrid.api
|
|
||||||
|
|
||||||
import androidx.annotation.LayoutRes
|
|
||||||
import org.tasks.R
|
|
||||||
|
|
||||||
interface FilterListItem {
|
|
||||||
val itemType: Type
|
|
||||||
|
|
||||||
fun areItemsTheSame(other: FilterListItem): Boolean
|
|
||||||
|
|
||||||
enum class Type(@param:LayoutRes val layout: Int) {
|
|
||||||
ITEM(R.layout.filter_adapter_row),
|
|
||||||
SUBHEADER(R.layout.filter_adapter_subheader),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,55 +0,0 @@
|
|||||||
package org.tasks.intents;
|
|
||||||
|
|
||||||
import android.content.ComponentName;
|
|
||||||
import android.content.Context;
|
|
||||||
import android.content.Intent;
|
|
||||||
import androidx.annotation.Nullable;
|
|
||||||
import com.todoroo.astrid.activity.MainActivity;
|
|
||||||
import com.todoroo.astrid.api.Filter;
|
|
||||||
import org.tasks.data.entity.Task;
|
|
||||||
|
|
||||||
public class TaskIntents {
|
|
||||||
|
|
||||||
public static final int FLAGS = Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP;
|
|
||||||
|
|
||||||
public static Intent getNewTaskIntent(
|
|
||||||
Context context,
|
|
||||||
@Nullable Filter filter,
|
|
||||||
String createSource
|
|
||||||
) {
|
|
||||||
Intent intent = new Intent(context, MainActivity.class);
|
|
||||||
if (filter != null) {
|
|
||||||
intent.putExtra(MainActivity.OPEN_FILTER, filter);
|
|
||||||
}
|
|
||||||
intent.putExtra(MainActivity.CREATE_TASK, 0L);
|
|
||||||
intent.putExtra(MainActivity.CREATE_SOURCE, createSource);
|
|
||||||
intent.putExtra(MainActivity.REMOVE_TASK, true);
|
|
||||||
return intent;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Intent getEditTaskIntent(Context context, @Nullable Filter filter, Task task) {
|
|
||||||
Intent intent = new Intent(context, MainActivity.class);
|
|
||||||
if (filter != null) {
|
|
||||||
intent.putExtra(MainActivity.OPEN_FILTER, filter);
|
|
||||||
}
|
|
||||||
intent.putExtra(MainActivity.OPEN_TASK, task);
|
|
||||||
intent.putExtra(MainActivity.REMOVE_TASK, true);
|
|
||||||
return intent;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Intent getTaskListIntent(Context context, @Nullable Filter filter) {
|
|
||||||
Intent intent = new Intent(context, MainActivity.class);
|
|
||||||
intent.setFlags(FLAGS);
|
|
||||||
if (filter != null) {
|
|
||||||
intent.putExtra(MainActivity.OPEN_FILTER, filter);
|
|
||||||
}
|
|
||||||
return intent;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static Intent getTaskListByIdIntent(Context context, @Nullable String filterId) {
|
|
||||||
Intent intent = new Intent(Intent.ACTION_MAIN);
|
|
||||||
intent.setComponent(new ComponentName(context, MainActivity.class));
|
|
||||||
intent.putExtra(MainActivity.LOAD_FILTER, filterId);
|
|
||||||
return intent;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -0,0 +1,53 @@
|
|||||||
|
package org.tasks.intents
|
||||||
|
|
||||||
|
import android.content.ComponentName
|
||||||
|
import android.content.Context
|
||||||
|
import android.content.Intent
|
||||||
|
import com.todoroo.astrid.activity.MainActivity
|
||||||
|
import org.tasks.data.entity.Task
|
||||||
|
import org.tasks.filters.Filter
|
||||||
|
|
||||||
|
object TaskIntents {
|
||||||
|
const val FLAGS: Int = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TOP
|
||||||
|
|
||||||
|
fun getNewTaskIntent(
|
||||||
|
context: Context,
|
||||||
|
filter: Filter?,
|
||||||
|
createSource: String
|
||||||
|
): Intent {
|
||||||
|
val intent = Intent(context, MainActivity::class.java)
|
||||||
|
if (filter != null) {
|
||||||
|
intent.putExtra(MainActivity.OPEN_FILTER, filter)
|
||||||
|
}
|
||||||
|
intent.putExtra(MainActivity.CREATE_TASK, 0L)
|
||||||
|
intent.putExtra(MainActivity.CREATE_SOURCE, createSource)
|
||||||
|
intent.putExtra(MainActivity.REMOVE_TASK, true)
|
||||||
|
return intent
|
||||||
|
}
|
||||||
|
|
||||||
|
fun getEditTaskIntent(context: Context, filter: Filter?, task: Task?): Intent {
|
||||||
|
val intent = Intent(context, MainActivity::class.java)
|
||||||
|
if (filter != null) {
|
||||||
|
intent.putExtra(MainActivity.OPEN_FILTER, filter)
|
||||||
|
}
|
||||||
|
intent.putExtra(MainActivity.OPEN_TASK, task)
|
||||||
|
intent.putExtra(MainActivity.REMOVE_TASK, true)
|
||||||
|
return intent
|
||||||
|
}
|
||||||
|
|
||||||
|
fun getTaskListIntent(context: Context, filter: Filter?): Intent {
|
||||||
|
val intent = Intent(context, MainActivity::class.java)
|
||||||
|
intent.setFlags(FLAGS)
|
||||||
|
if (filter != null) {
|
||||||
|
intent.putExtra(MainActivity.OPEN_FILTER, filter)
|
||||||
|
}
|
||||||
|
return intent
|
||||||
|
}
|
||||||
|
|
||||||
|
fun getTaskListByIdIntent(context: Context, filterId: String?): Intent {
|
||||||
|
val intent = Intent(Intent.ACTION_MAIN)
|
||||||
|
intent.setComponent(ComponentName(context, MainActivity::class.java))
|
||||||
|
intent.putExtra(MainActivity.LOAD_FILTER, filterId)
|
||||||
|
return intent
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1 @@
|
|||||||
|
/build
|
||||||
@ -0,0 +1,46 @@
|
|||||||
|
@file:OptIn(ExperimentalKotlinGradlePluginApi::class)
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
|
||||||
|
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
|
||||||
|
|
||||||
|
plugins {
|
||||||
|
alias(libs.plugins.kotlin.multiplatform)
|
||||||
|
alias(libs.plugins.android.library)
|
||||||
|
alias(libs.plugins.jetbrains.compose)
|
||||||
|
alias(libs.plugins.kotlin.compose.compiler)
|
||||||
|
alias(libs.plugins.kotlin.parcelize)
|
||||||
|
}
|
||||||
|
|
||||||
|
kotlin {
|
||||||
|
applyDefaultHierarchyTemplate()
|
||||||
|
androidTarget {
|
||||||
|
compilerOptions {
|
||||||
|
jvmTarget.set(JvmTarget.JVM_17)
|
||||||
|
freeCompilerArgs.addAll("-P", "plugin:org.jetbrains.kotlin.parcelize:additionalAnnotation=org.tasks.CommonParcelize")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sourceSets {
|
||||||
|
commonMain.dependencies {
|
||||||
|
implementation(projects.data)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
android {
|
||||||
|
namespace = "org.tasks.kmp"
|
||||||
|
compileSdk = libs.versions.android.compileSdk.get().toInt()
|
||||||
|
|
||||||
|
defaultConfig {
|
||||||
|
minSdk = libs.versions.android.minSdk.get().toInt()
|
||||||
|
targetSdk = libs.versions.android.targetSdk.get().toInt()
|
||||||
|
}
|
||||||
|
|
||||||
|
compileOptions {
|
||||||
|
sourceCompatibility = JavaVersion.VERSION_17
|
||||||
|
targetCompatibility = JavaVersion.VERSION_17
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
debugImplementation(compose.uiTooling)
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,12 @@
|
|||||||
|
package org.tasks.filters
|
||||||
|
|
||||||
|
interface FilterListItem {
|
||||||
|
val itemType: Type
|
||||||
|
|
||||||
|
fun areItemsTheSame(other: FilterListItem): Boolean
|
||||||
|
|
||||||
|
enum class Type {
|
||||||
|
ITEM,
|
||||||
|
SUBHEADER,
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue