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
|
||||
|
||||
import kotlinx.parcelize.Parcelize
|
||||
import org.tasks.filters.Filter
|
||||
import org.tasks.filters.FilterListItem
|
||||
|
||||
@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
|
||||
}
|
@ -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