diff --git a/app/build.gradle b/app/build.gradle index 12cd175eb..9ace88524 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -453,6 +453,7 @@ dependencies { implementation project(':core-util') implementation project(':video') implementation project(':device-transfer') + implementation project(':image-editor') implementation 'org.signal:zkgroup-android:0.7.0' implementation "org.whispersystems:signal-client-android:${LIBSIGNAL_CLIENT_VERSION}" diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediasend/AvatarSelectionActivity.java b/app/src/main/java/org/thoughtcrime/securesms/mediasend/AvatarSelectionActivity.java index 8cf66f813..bfd4b0e91 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediasend/AvatarSelectionActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/mediasend/AvatarSelectionActivity.java @@ -16,7 +16,7 @@ import androidx.fragment.app.FragmentTransaction; import androidx.lifecycle.LiveData; import org.thoughtcrime.securesms.R; -import org.thoughtcrime.securesms.imageeditor.model.EditorModel; +import org.signal.imageeditor.core.model.EditorModel; import org.thoughtcrime.securesms.mediasend.v2.gallery.MediaGalleryFragment; import org.thoughtcrime.securesms.mms.MediaConstraints; import org.thoughtcrime.securesms.profiles.AvatarHelper; diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediasend/ImageEditorModelRenderMediaTransform.java b/app/src/main/java/org/thoughtcrime/securesms/mediasend/ImageEditorModelRenderMediaTransform.java index ec8a80684..f2a738ec0 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediasend/ImageEditorModelRenderMediaTransform.java +++ b/app/src/main/java/org/thoughtcrime/securesms/mediasend/ImageEditorModelRenderMediaTransform.java @@ -11,7 +11,7 @@ import androidx.annotation.WorkerThread; import org.signal.core.util.StreamUtil; import org.signal.core.util.logging.Log; -import org.thoughtcrime.securesms.imageeditor.model.EditorModel; +import org.signal.imageeditor.core.model.EditorModel; import org.thoughtcrime.securesms.providers.BlobProvider; import org.thoughtcrime.securesms.util.MediaUtil; import org.whispersystems.libsignal.util.guava.Optional; diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/MediaSelectionRepository.kt b/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/MediaSelectionRepository.kt index 69db057c2..3b3c8d268 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/MediaSelectionRepository.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/mediasend/v2/MediaSelectionRepository.kt @@ -9,11 +9,11 @@ import io.reactivex.rxjava3.core.Single import io.reactivex.rxjava3.schedulers.Schedulers import org.signal.core.util.ThreadUtil import org.signal.core.util.logging.Log +import org.signal.imageeditor.core.model.EditorModel import org.thoughtcrime.securesms.TransportOption import org.thoughtcrime.securesms.database.AttachmentDatabase.TransformProperties import org.thoughtcrime.securesms.database.ThreadDatabase import org.thoughtcrime.securesms.database.model.Mention -import org.thoughtcrime.securesms.imageeditor.model.EditorModel import org.thoughtcrime.securesms.mediasend.CompositeMediaTransform import org.thoughtcrime.securesms.mediasend.ImageEditorModelRenderMediaTransform import org.thoughtcrime.securesms.mediasend.Media diff --git a/app/src/main/java/org/thoughtcrime/securesms/scribbles/BrushWidthPreviewView.kt b/app/src/main/java/org/thoughtcrime/securesms/scribbles/BrushWidthPreviewView.kt index 0f3f3538a..bc9218a26 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/scribbles/BrushWidthPreviewView.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/scribbles/BrushWidthPreviewView.kt @@ -11,7 +11,7 @@ import android.util.AttributeSet import android.view.View import androidx.annotation.ColorInt import androidx.core.animation.doOnEnd -import org.thoughtcrime.securesms.imageeditor.Bounds +import org.signal.imageeditor.core.Bounds import org.thoughtcrime.securesms.mediasend.v2.MediaAnimations import org.thoughtcrime.securesms.util.ViewUtil import org.thoughtcrime.securesms.util.visible diff --git a/app/src/main/java/org/thoughtcrime/securesms/scribbles/ImageEditorFragment.java b/app/src/main/java/org/thoughtcrime/securesms/scribbles/ImageEditorFragment.java index 0fc64d94c..00c5884e9 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/scribbles/ImageEditorFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/scribbles/ImageEditorFragment.java @@ -34,16 +34,16 @@ import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.animation.ResizeAnimation; import org.thoughtcrime.securesms.dependencies.ApplicationDependencies; -import org.thoughtcrime.securesms.imageeditor.Bounds; -import org.thoughtcrime.securesms.imageeditor.ColorableRenderer; -import org.thoughtcrime.securesms.imageeditor.ImageEditorView; -import org.thoughtcrime.securesms.imageeditor.Renderer; -import org.thoughtcrime.securesms.imageeditor.SelectableRenderer; -import org.thoughtcrime.securesms.imageeditor.model.EditorElement; -import org.thoughtcrime.securesms.imageeditor.model.EditorModel; -import org.thoughtcrime.securesms.imageeditor.renderers.BezierDrawingRenderer; -import org.thoughtcrime.securesms.imageeditor.renderers.FaceBlurRenderer; -import org.thoughtcrime.securesms.imageeditor.renderers.MultiLineTextRenderer; +import org.signal.imageeditor.core.Bounds; +import org.signal.imageeditor.core.ColorableRenderer; +import org.signal.imageeditor.core.ImageEditorView; +import org.signal.imageeditor.core.Renderer; +import org.signal.imageeditor.core.SelectableRenderer; +import org.signal.imageeditor.core.model.EditorElement; +import org.signal.imageeditor.core.model.EditorModel; +import org.signal.imageeditor.core.renderers.BezierDrawingRenderer; +import org.signal.imageeditor.core.renderers.FaceBlurRenderer; +import org.signal.imageeditor.core.renderers.MultiLineTextRenderer; import org.thoughtcrime.securesms.keyvalue.SignalStore; import org.thoughtcrime.securesms.mediasend.MediaSendPageFragment; import org.thoughtcrime.securesms.mediasend.v2.MediaAnimations; diff --git a/app/src/main/java/org/thoughtcrime/securesms/scribbles/TextEntryDialogFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/scribbles/TextEntryDialogFragment.kt index f1a3e8a87..e6748ccb7 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/scribbles/TextEntryDialogFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/scribbles/TextEntryDialogFragment.kt @@ -11,11 +11,11 @@ import android.widget.ImageView import androidx.appcompat.widget.AppCompatSeekBar import androidx.fragment.app.FragmentManager import com.airbnb.lottie.SimpleColorFilter +import org.signal.imageeditor.core.HiddenEditText +import org.signal.imageeditor.core.model.EditorElement +import org.signal.imageeditor.core.renderers.MultiLineTextRenderer import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.components.KeyboardEntryDialogFragment -import org.thoughtcrime.securesms.imageeditor.HiddenEditText -import org.thoughtcrime.securesms.imageeditor.model.EditorElement -import org.thoughtcrime.securesms.imageeditor.renderers.MultiLineTextRenderer import org.thoughtcrime.securesms.keyboard.findListener import org.thoughtcrime.securesms.scribbles.HSVColorSlider.getColor import org.thoughtcrime.securesms.scribbles.HSVColorSlider.setUpForColor diff --git a/app/src/main/java/org/thoughtcrime/securesms/scribbles/UriGlideRenderer.java b/app/src/main/java/org/thoughtcrime/securesms/scribbles/UriGlideRenderer.java index f733e1893..5bece0f86 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/scribbles/UriGlideRenderer.java +++ b/app/src/main/java/org/thoughtcrime/securesms/scribbles/UriGlideRenderer.java @@ -24,13 +24,13 @@ import com.bumptech.glide.request.target.CustomTarget; import com.bumptech.glide.request.transition.Transition; import org.signal.core.util.logging.Log; -import org.thoughtcrime.securesms.imageeditor.Bounds; -import org.thoughtcrime.securesms.imageeditor.Renderer; -import org.thoughtcrime.securesms.imageeditor.RendererContext; -import org.thoughtcrime.securesms.imageeditor.SelectableRenderer; -import org.thoughtcrime.securesms.imageeditor.model.EditorElement; -import org.thoughtcrime.securesms.imageeditor.model.EditorModel; -import org.thoughtcrime.securesms.imageeditor.renderers.SelectedElementGuideRenderer; +import org.signal.imageeditor.core.Bounds; +import org.signal.imageeditor.core.Renderer; +import org.signal.imageeditor.core.RendererContext; +import org.signal.imageeditor.core.SelectableRenderer; +import org.signal.imageeditor.core.model.EditorElement; +import org.signal.imageeditor.core.model.EditorModel; +import org.signal.imageeditor.core.renderers.SelectedElementGuideRenderer; import org.thoughtcrime.securesms.mms.DecryptableStreamUriLoader; import org.thoughtcrime.securesms.mms.GlideApp; import org.thoughtcrime.securesms.mms.GlideRequest; diff --git a/app/src/main/java/org/thoughtcrime/securesms/wallpaper/crop/WallpaperCropActivity.java b/app/src/main/java/org/thoughtcrime/securesms/wallpaper/crop/WallpaperCropActivity.java index a4cfaee46..2e5e13ff2 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/wallpaper/crop/WallpaperCropActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/wallpaper/crop/WallpaperCropActivity.java @@ -3,7 +3,6 @@ package org.thoughtcrime.securesms.wallpaper.crop; import android.content.Context; import android.content.Intent; import android.graphics.Point; -import android.graphics.PorterDuff; import android.net.Uri; import android.os.Bundle; import android.util.DisplayMetrics; @@ -27,10 +26,10 @@ import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.BaseActivity; import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.conversation.colors.ColorizerView; -import org.thoughtcrime.securesms.imageeditor.ImageEditorView; -import org.thoughtcrime.securesms.imageeditor.model.EditorElement; -import org.thoughtcrime.securesms.imageeditor.model.EditorModel; -import org.thoughtcrime.securesms.imageeditor.renderers.FaceBlurRenderer; +import org.signal.imageeditor.core.ImageEditorView; +import org.signal.imageeditor.core.model.EditorElement; +import org.signal.imageeditor.core.model.EditorModel; +import org.signal.imageeditor.core.renderers.FaceBlurRenderer; import org.thoughtcrime.securesms.recipients.RecipientId; import org.thoughtcrime.securesms.scribbles.UriGlideRenderer; import org.thoughtcrime.securesms.util.AsynchronousCallback; diff --git a/app/src/main/java/org/thoughtcrime/securesms/wallpaper/crop/WallpaperCropViewModel.java b/app/src/main/java/org/thoughtcrime/securesms/wallpaper/crop/WallpaperCropViewModel.java index 656b514ad..785dd2fcb 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/wallpaper/crop/WallpaperCropViewModel.java +++ b/app/src/main/java/org/thoughtcrime/securesms/wallpaper/crop/WallpaperCropViewModel.java @@ -15,7 +15,7 @@ import androidx.lifecycle.ViewModelProvider; import org.signal.core.util.concurrent.SignalExecutors; import org.signal.core.util.logging.Log; -import org.thoughtcrime.securesms.imageeditor.model.EditorModel; +import org.signal.imageeditor.core.model.EditorModel; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.recipients.RecipientId; import org.thoughtcrime.securesms.util.AsynchronousCallback; diff --git a/app/src/main/res/layout/chat_wallpaper_crop_activity.xml b/app/src/main/res/layout/chat_wallpaper_crop_activity.xml index 0ce47c4a2..1fa7824a1 100644 --- a/app/src/main/res/layout/chat_wallpaper_crop_activity.xml +++ b/app/src/main/res/layout/chat_wallpaper_crop_activity.xml @@ -24,7 +24,7 @@ android:orientation="horizontal" tools:layout_constraintGuide_end="48dp" /> - - diff --git a/image-editor/lib/.gitignore b/image-editor/lib/.gitignore new file mode 100644 index 000000000..42afabfd2 --- /dev/null +++ b/image-editor/lib/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/image-editor/lib/build.gradle b/image-editor/lib/build.gradle new file mode 100644 index 000000000..0f1dfe740 --- /dev/null +++ b/image-editor/lib/build.gradle @@ -0,0 +1,47 @@ +plugins { + id 'com.android.library' + id 'witness' + id 'kotlin-android' + id 'kotlin-kapt' +} + +apply from: 'witness-verifications.gradle' + +android { + buildToolsVersion BUILD_TOOL_VERSION + compileSdkVersion COMPILE_SDK + + defaultConfig { + minSdkVersion MINIMUM_SDK + targetSdkVersion TARGET_SDK + multiDexEnabled true + } + + compileOptions { + coreLibraryDesugaringEnabled true + sourceCompatibility JAVA_VERSION + targetCompatibility JAVA_VERSION + } + + kotlinOptions { + jvmTarget = '1.8' + } +} + +dependencyVerification { + configuration = '(debug|release)RuntimeClasspath' +} + +dependencies { + lintChecks project(':lintchecks') + + implementation project(':core-util') + + coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.5' + + implementation 'androidx.core:core-ktx:1.5.0' + implementation 'androidx.annotation:annotation:1.2.0' + implementation 'androidx.appcompat:appcompat:1.2.0' + + kapt 'androidx.annotation:annotation:1.2.0' +} \ No newline at end of file diff --git a/image-editor/lib/consumer-rules.pro b/image-editor/lib/consumer-rules.pro new file mode 100644 index 000000000..e69de29bb diff --git a/image-editor/lib/proguard-rules.pro b/image-editor/lib/proguard-rules.pro new file mode 100644 index 000000000..481bb4348 --- /dev/null +++ b/image-editor/lib/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/image-editor/lib/src/main/AndroidManifest.xml b/image-editor/lib/src/main/AndroidManifest.xml new file mode 100644 index 000000000..cd18e60ee --- /dev/null +++ b/image-editor/lib/src/main/AndroidManifest.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/Bounds.java b/image-editor/lib/src/main/java/org/signal/imageeditor/core/Bounds.java similarity index 89% rename from app/src/main/java/org/thoughtcrime/securesms/imageeditor/Bounds.java rename to image-editor/lib/src/main/java/org/signal/imageeditor/core/Bounds.java index ea3cc38b0..792363e18 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/Bounds.java +++ b/image-editor/lib/src/main/java/org/signal/imageeditor/core/Bounds.java @@ -1,4 +1,4 @@ -package org.thoughtcrime.securesms.imageeditor; +package org.signal.imageeditor.core; import android.graphics.Matrix; import android.graphics.RectF; @@ -6,9 +6,11 @@ import android.graphics.RectF; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import org.signal.imageeditor.core.model.EditorElement; + /** - * The local extent of a {@link org.thoughtcrime.securesms.imageeditor.model.EditorElement}. - * i.e. all {@link org.thoughtcrime.securesms.imageeditor.model.EditorElement}s have a bounding rectangle from: + * The local extent of a {@link EditorElement}. + * i.e. all {@link EditorElement}s have a bounding rectangle from: *

* {@link #LEFT} to {@link #RIGHT} and from {@link #TOP} to {@link #BOTTOM}. */ diff --git a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/CanvasMatrix.java b/image-editor/lib/src/main/java/org/signal/imageeditor/core/CanvasMatrix.java similarity index 97% rename from app/src/main/java/org/thoughtcrime/securesms/imageeditor/CanvasMatrix.java rename to image-editor/lib/src/main/java/org/signal/imageeditor/core/CanvasMatrix.java index 7b12689d6..5902370f9 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/CanvasMatrix.java +++ b/image-editor/lib/src/main/java/org/signal/imageeditor/core/CanvasMatrix.java @@ -1,4 +1,4 @@ -package org.thoughtcrime.securesms.imageeditor; +package org.signal.imageeditor.core; import android.graphics.Canvas; import android.graphics.Matrix; diff --git a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/ColorableRenderer.java b/image-editor/lib/src/main/java/org/signal/imageeditor/core/ColorableRenderer.java similarity index 85% rename from app/src/main/java/org/thoughtcrime/securesms/imageeditor/ColorableRenderer.java rename to image-editor/lib/src/main/java/org/signal/imageeditor/core/ColorableRenderer.java index 11706dfc0..af3633af3 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/ColorableRenderer.java +++ b/image-editor/lib/src/main/java/org/signal/imageeditor/core/ColorableRenderer.java @@ -1,4 +1,4 @@ -package org.thoughtcrime.securesms.imageeditor; +package org.signal.imageeditor.core; import androidx.annotation.ColorInt; diff --git a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/DrawingSession.java b/image-editor/lib/src/main/java/org/signal/imageeditor/core/DrawingSession.java similarity index 86% rename from app/src/main/java/org/thoughtcrime/securesms/imageeditor/DrawingSession.java rename to image-editor/lib/src/main/java/org/signal/imageeditor/core/DrawingSession.java index 7fe7c0dd6..e35658e5f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/DrawingSession.java +++ b/image-editor/lib/src/main/java/org/signal/imageeditor/core/DrawingSession.java @@ -1,12 +1,12 @@ -package org.thoughtcrime.securesms.imageeditor; +package org.signal.imageeditor.core; import android.graphics.Matrix; import android.graphics.PointF; import androidx.annotation.NonNull; -import org.thoughtcrime.securesms.imageeditor.model.EditorElement; -import org.thoughtcrime.securesms.imageeditor.renderers.BezierDrawingRenderer; +import org.signal.imageeditor.core.model.EditorElement; +import org.signal.imageeditor.core.renderers.BezierDrawingRenderer; /** * Passes touch events into a {@link BezierDrawingRenderer}. diff --git a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/EditSession.java b/image-editor/lib/src/main/java/org/signal/imageeditor/core/EditSession.java similarity index 87% rename from app/src/main/java/org/thoughtcrime/securesms/imageeditor/EditSession.java rename to image-editor/lib/src/main/java/org/signal/imageeditor/core/EditSession.java index 3ea2148c7..39d492abc 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/EditSession.java +++ b/image-editor/lib/src/main/java/org/signal/imageeditor/core/EditSession.java @@ -1,11 +1,11 @@ -package org.thoughtcrime.securesms.imageeditor; +package org.signal.imageeditor.core; import android.graphics.Matrix; import android.graphics.PointF; import androidx.annotation.NonNull; -import org.thoughtcrime.securesms.imageeditor.model.EditorElement; +import org.signal.imageeditor.core.model.EditorElement; /** * Represents an underway edit of the image. diff --git a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/ElementDragEditSession.java b/image-editor/lib/src/main/java/org/signal/imageeditor/core/ElementDragEditSession.java similarity index 91% rename from app/src/main/java/org/thoughtcrime/securesms/imageeditor/ElementDragEditSession.java rename to image-editor/lib/src/main/java/org/signal/imageeditor/core/ElementDragEditSession.java index 23bd5e961..f1700ab8d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/ElementDragEditSession.java +++ b/image-editor/lib/src/main/java/org/signal/imageeditor/core/ElementDragEditSession.java @@ -1,11 +1,11 @@ -package org.thoughtcrime.securesms.imageeditor; +package org.signal.imageeditor.core; import android.graphics.Matrix; import android.graphics.PointF; import androidx.annotation.NonNull; -import org.thoughtcrime.securesms.imageeditor.model.EditorElement; +import org.signal.imageeditor.core.model.EditorElement; final class ElementDragEditSession extends ElementEditSession { diff --git a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/ElementEditSession.java b/image-editor/lib/src/main/java/org/signal/imageeditor/core/ElementEditSession.java similarity index 93% rename from app/src/main/java/org/thoughtcrime/securesms/imageeditor/ElementEditSession.java rename to image-editor/lib/src/main/java/org/signal/imageeditor/core/ElementEditSession.java index 6bf0e229d..8f384233e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/ElementEditSession.java +++ b/image-editor/lib/src/main/java/org/signal/imageeditor/core/ElementEditSession.java @@ -1,11 +1,11 @@ -package org.thoughtcrime.securesms.imageeditor; +package org.signal.imageeditor.core; import android.graphics.Matrix; import android.graphics.PointF; import androidx.annotation.NonNull; -import org.thoughtcrime.securesms.imageeditor.model.EditorElement; +import org.signal.imageeditor.core.model.EditorElement; abstract class ElementEditSession implements EditSession { diff --git a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/ElementScaleEditSession.java b/image-editor/lib/src/main/java/org/signal/imageeditor/core/ElementScaleEditSession.java similarity index 96% rename from app/src/main/java/org/thoughtcrime/securesms/imageeditor/ElementScaleEditSession.java rename to image-editor/lib/src/main/java/org/signal/imageeditor/core/ElementScaleEditSession.java index d18934b3d..ec8d8421d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/ElementScaleEditSession.java +++ b/image-editor/lib/src/main/java/org/signal/imageeditor/core/ElementScaleEditSession.java @@ -1,11 +1,11 @@ -package org.thoughtcrime.securesms.imageeditor; +package org.signal.imageeditor.core; import android.graphics.Matrix; import android.graphics.PointF; import androidx.annotation.NonNull; -import org.thoughtcrime.securesms.imageeditor.model.EditorElement; +import org.signal.imageeditor.core.model.EditorElement; final class ElementScaleEditSession extends ElementEditSession { diff --git a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/HiddenEditText.java b/image-editor/lib/src/main/java/org/signal/imageeditor/core/HiddenEditText.java similarity index 96% rename from app/src/main/java/org/thoughtcrime/securesms/imageeditor/HiddenEditText.java rename to image-editor/lib/src/main/java/org/signal/imageeditor/core/HiddenEditText.java index 03271a70e..d7f88d9c1 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/HiddenEditText.java +++ b/image-editor/lib/src/main/java/org/signal/imageeditor/core/HiddenEditText.java @@ -1,4 +1,4 @@ -package org.thoughtcrime.securesms.imageeditor; +package org.signal.imageeditor.core; import android.annotation.SuppressLint; import android.content.Context; @@ -14,8 +14,8 @@ import android.widget.FrameLayout; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import org.thoughtcrime.securesms.imageeditor.model.EditorElement; -import org.thoughtcrime.securesms.imageeditor.renderers.MultiLineTextRenderer; +import org.signal.imageeditor.core.model.EditorElement; +import org.signal.imageeditor.core.renderers.MultiLineTextRenderer; /** * Invisible {@link android.widget.EditText} that is used during in-image text editing. diff --git a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/ImageEditorView.java b/image-editor/lib/src/main/java/org/signal/imageeditor/core/ImageEditorView.java similarity index 97% rename from app/src/main/java/org/thoughtcrime/securesms/imageeditor/ImageEditorView.java rename to image-editor/lib/src/main/java/org/signal/imageeditor/core/ImageEditorView.java index cf1f38400..f03fd9bb6 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/ImageEditorView.java +++ b/image-editor/lib/src/main/java/org/signal/imageeditor/core/ImageEditorView.java @@ -1,4 +1,4 @@ -package org.thoughtcrime.securesms.imageeditor; +package org.signal.imageeditor.core; import android.content.Context; import android.graphics.Canvas; @@ -17,12 +17,12 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.core.view.GestureDetectorCompat; -import org.thoughtcrime.securesms.imageeditor.model.EditorElement; -import org.thoughtcrime.securesms.imageeditor.model.EditorModel; -import org.thoughtcrime.securesms.imageeditor.model.ThumbRenderer; -import org.thoughtcrime.securesms.imageeditor.renderers.BezierDrawingRenderer; -import org.thoughtcrime.securesms.imageeditor.renderers.MultiLineTextRenderer; -import org.thoughtcrime.securesms.imageeditor.renderers.TrashRenderer; +import org.signal.imageeditor.core.model.EditorElement; +import org.signal.imageeditor.core.model.EditorModel; +import org.signal.imageeditor.core.model.ThumbRenderer; +import org.signal.imageeditor.core.renderers.BezierDrawingRenderer; +import org.signal.imageeditor.core.renderers.MultiLineTextRenderer; +import org.signal.imageeditor.core.renderers.TrashRenderer; /** * ImageEditorView diff --git a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/Renderer.java b/image-editor/lib/src/main/java/org/signal/imageeditor/core/Renderer.java similarity index 76% rename from app/src/main/java/org/thoughtcrime/securesms/imageeditor/Renderer.java rename to image-editor/lib/src/main/java/org/signal/imageeditor/core/Renderer.java index 9b431e45f..74ca12682 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/Renderer.java +++ b/image-editor/lib/src/main/java/org/signal/imageeditor/core/Renderer.java @@ -1,11 +1,13 @@ -package org.thoughtcrime.securesms.imageeditor; +package org.signal.imageeditor.core; import android.os.Parcelable; import androidx.annotation.NonNull; +import org.signal.imageeditor.core.model.EditorElement; + /** - * Responsible for rendering a single {@link org.thoughtcrime.securesms.imageeditor.model.EditorElement} to the canvas. + * Responsible for rendering a single {@link EditorElement} to the canvas. *

* Because it knows the most about the whereabouts of the image it is also responsible for hit detection. */ diff --git a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/RendererContext.java b/image-editor/lib/src/main/java/org/signal/imageeditor/core/RendererContext.java similarity index 96% rename from app/src/main/java/org/thoughtcrime/securesms/imageeditor/RendererContext.java rename to image-editor/lib/src/main/java/org/signal/imageeditor/core/RendererContext.java index f814699f1..c7430f7b9 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/RendererContext.java +++ b/image-editor/lib/src/main/java/org/signal/imageeditor/core/RendererContext.java @@ -1,4 +1,4 @@ -package org.thoughtcrime.securesms.imageeditor; +package org.signal.imageeditor.core; import android.content.Context; import android.graphics.Canvas; @@ -10,7 +10,7 @@ import android.graphics.RectF; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import org.thoughtcrime.securesms.imageeditor.model.EditorElement; +import org.signal.imageeditor.core.model.EditorElement; import java.util.Collections; import java.util.List; diff --git a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/SelectableRenderer.kt b/image-editor/lib/src/main/java/org/signal/imageeditor/core/SelectableRenderer.kt similarity index 74% rename from app/src/main/java/org/thoughtcrime/securesms/imageeditor/SelectableRenderer.kt rename to image-editor/lib/src/main/java/org/signal/imageeditor/core/SelectableRenderer.kt index c12047cf4..3d16cb215 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/SelectableRenderer.kt +++ b/image-editor/lib/src/main/java/org/signal/imageeditor/core/SelectableRenderer.kt @@ -1,4 +1,4 @@ -package org.thoughtcrime.securesms.imageeditor +package org.signal.imageeditor.core /** * Renderer that can maintain a "selected" state diff --git a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/ThumbDragEditSession.java b/image-editor/lib/src/main/java/org/signal/imageeditor/core/ThumbDragEditSession.java similarity index 93% rename from app/src/main/java/org/thoughtcrime/securesms/imageeditor/ThumbDragEditSession.java rename to image-editor/lib/src/main/java/org/signal/imageeditor/core/ThumbDragEditSession.java index 860883e56..1a2f76a8e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/ThumbDragEditSession.java +++ b/image-editor/lib/src/main/java/org/signal/imageeditor/core/ThumbDragEditSession.java @@ -1,12 +1,12 @@ -package org.thoughtcrime.securesms.imageeditor; +package org.signal.imageeditor.core; import android.graphics.Matrix; import android.graphics.PointF; import androidx.annotation.NonNull; -import org.thoughtcrime.securesms.imageeditor.model.EditorElement; -import org.thoughtcrime.securesms.imageeditor.model.ThumbRenderer; +import org.signal.imageeditor.core.model.EditorElement; +import org.signal.imageeditor.core.model.ThumbRenderer; class ThumbDragEditSession extends ElementEditSession { diff --git a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/UndoRedoStackListener.java b/image-editor/lib/src/main/java/org/signal/imageeditor/core/UndoRedoStackListener.java similarity index 71% rename from app/src/main/java/org/thoughtcrime/securesms/imageeditor/UndoRedoStackListener.java rename to image-editor/lib/src/main/java/org/signal/imageeditor/core/UndoRedoStackListener.java index 6f7b5f11c..54355b58d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/UndoRedoStackListener.java +++ b/image-editor/lib/src/main/java/org/signal/imageeditor/core/UndoRedoStackListener.java @@ -1,4 +1,4 @@ -package org.thoughtcrime.securesms.imageeditor; +package org.signal.imageeditor.core; public interface UndoRedoStackListener { diff --git a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/model/AlphaAnimation.java b/image-editor/lib/src/main/java/org/signal/imageeditor/core/model/AlphaAnimation.java similarity index 96% rename from app/src/main/java/org/thoughtcrime/securesms/imageeditor/model/AlphaAnimation.java rename to image-editor/lib/src/main/java/org/signal/imageeditor/core/model/AlphaAnimation.java index dda8c3fe3..fb27bf53e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/model/AlphaAnimation.java +++ b/image-editor/lib/src/main/java/org/signal/imageeditor/core/model/AlphaAnimation.java @@ -1,4 +1,4 @@ -package org.thoughtcrime.securesms.imageeditor.model; +package org.signal.imageeditor.core.model; import android.animation.ValueAnimator; import android.view.animation.Interpolator; diff --git a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/model/AnimationMatrix.java b/image-editor/lib/src/main/java/org/signal/imageeditor/core/model/AnimationMatrix.java similarity index 96% rename from app/src/main/java/org/thoughtcrime/securesms/imageeditor/model/AnimationMatrix.java rename to image-editor/lib/src/main/java/org/signal/imageeditor/core/model/AnimationMatrix.java index e9a52f965..1bd4ad529 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/model/AnimationMatrix.java +++ b/image-editor/lib/src/main/java/org/signal/imageeditor/core/model/AnimationMatrix.java @@ -1,4 +1,4 @@ -package org.thoughtcrime.securesms.imageeditor.model; +package org.signal.imageeditor.core.model; import android.animation.ValueAnimator; import android.graphics.Matrix; @@ -9,7 +9,7 @@ import android.view.animation.Interpolator; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import org.thoughtcrime.securesms.imageeditor.CanvasMatrix; +import org.signal.imageeditor.core.CanvasMatrix; /** * Animation Matrix provides a matrix that animates over time down to the identity matrix. diff --git a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/model/Bisect.java b/image-editor/lib/src/main/java/org/signal/imageeditor/core/model/Bisect.java similarity index 98% rename from app/src/main/java/org/thoughtcrime/securesms/imageeditor/model/Bisect.java rename to image-editor/lib/src/main/java/org/signal/imageeditor/core/model/Bisect.java index 024c02544..4c9d808f0 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/model/Bisect.java +++ b/image-editor/lib/src/main/java/org/signal/imageeditor/core/model/Bisect.java @@ -1,4 +1,4 @@ -package org.thoughtcrime.securesms.imageeditor.model; +package org.signal.imageeditor.core.model; import android.graphics.Matrix; diff --git a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/model/CropThumbRenderer.java b/image-editor/lib/src/main/java/org/signal/imageeditor/core/model/CropThumbRenderer.java similarity index 89% rename from app/src/main/java/org/thoughtcrime/securesms/imageeditor/model/CropThumbRenderer.java rename to image-editor/lib/src/main/java/org/signal/imageeditor/core/model/CropThumbRenderer.java index 30af10063..20736f072 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/model/CropThumbRenderer.java +++ b/image-editor/lib/src/main/java/org/signal/imageeditor/core/model/CropThumbRenderer.java @@ -1,14 +1,14 @@ -package org.thoughtcrime.securesms.imageeditor.model; +package org.signal.imageeditor.core.model; import android.graphics.Matrix; import android.os.Parcel; import androidx.annotation.NonNull; -import org.thoughtcrime.securesms.R; -import org.thoughtcrime.securesms.imageeditor.Bounds; -import org.thoughtcrime.securesms.imageeditor.Renderer; -import org.thoughtcrime.securesms.imageeditor.RendererContext; +import org.signal.imageeditor.core.Bounds; +import org.signal.imageeditor.R; +import org.signal.imageeditor.core.Renderer; +import org.signal.imageeditor.core.RendererContext; import java.util.UUID; diff --git a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/model/EditorElement.java b/image-editor/lib/src/main/java/org/signal/imageeditor/core/model/EditorElement.java similarity index 98% rename from app/src/main/java/org/thoughtcrime/securesms/imageeditor/model/EditorElement.java rename to image-editor/lib/src/main/java/org/signal/imageeditor/core/model/EditorElement.java index 49f0069dd..978ff371f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/model/EditorElement.java +++ b/image-editor/lib/src/main/java/org/signal/imageeditor/core/model/EditorElement.java @@ -1,4 +1,4 @@ -package org.thoughtcrime.securesms.imageeditor.model; +package org.signal.imageeditor.core.model; import android.graphics.Matrix; import android.os.Parcel; @@ -7,8 +7,8 @@ import android.os.Parcelable; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import org.thoughtcrime.securesms.imageeditor.Renderer; -import org.thoughtcrime.securesms.imageeditor.RendererContext; +import org.signal.imageeditor.core.Renderer; +import org.signal.imageeditor.core.RendererContext; import java.util.Collections; import java.util.Comparator; diff --git a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/model/EditorElementHierarchy.java b/image-editor/lib/src/main/java/org/signal/imageeditor/core/model/EditorElementHierarchy.java similarity index 96% rename from app/src/main/java/org/thoughtcrime/securesms/imageeditor/model/EditorElementHierarchy.java rename to image-editor/lib/src/main/java/org/signal/imageeditor/core/model/EditorElementHierarchy.java index bac2ebff3..b8c9a43eb 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/model/EditorElementHierarchy.java +++ b/image-editor/lib/src/main/java/org/signal/imageeditor/core/model/EditorElementHierarchy.java @@ -1,4 +1,4 @@ -package org.thoughtcrime.securesms.imageeditor.model; +package org.signal.imageeditor.core.model; import android.graphics.Matrix; import android.graphics.Point; @@ -8,13 +8,13 @@ import android.graphics.RectF; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import org.thoughtcrime.securesms.R; -import org.thoughtcrime.securesms.imageeditor.Bounds; -import org.thoughtcrime.securesms.imageeditor.renderers.CropAreaRenderer; -import org.thoughtcrime.securesms.imageeditor.renderers.FillRenderer; -import org.thoughtcrime.securesms.imageeditor.renderers.InverseFillRenderer; -import org.thoughtcrime.securesms.imageeditor.renderers.OvalGuideRenderer; -import org.thoughtcrime.securesms.imageeditor.renderers.TrashRenderer; +import org.signal.imageeditor.core.Bounds; +import org.signal.imageeditor.R; +import org.signal.imageeditor.core.renderers.CropAreaRenderer; +import org.signal.imageeditor.core.renderers.FillRenderer; +import org.signal.imageeditor.core.renderers.InverseFillRenderer; +import org.signal.imageeditor.core.renderers.OvalGuideRenderer; +import org.signal.imageeditor.core.renderers.TrashRenderer; /** * Creates and handles a strict EditorElement Hierarchy. diff --git a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/model/EditorFlags.java b/image-editor/lib/src/main/java/org/signal/imageeditor/core/model/EditorFlags.java similarity index 98% rename from app/src/main/java/org/thoughtcrime/securesms/imageeditor/model/EditorFlags.java rename to image-editor/lib/src/main/java/org/signal/imageeditor/core/model/EditorFlags.java index 77e4dfedf..933cab7d5 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/model/EditorFlags.java +++ b/image-editor/lib/src/main/java/org/signal/imageeditor/core/model/EditorFlags.java @@ -1,4 +1,4 @@ -package org.thoughtcrime.securesms.imageeditor.model; +package org.signal.imageeditor.core.model; import androidx.annotation.NonNull; diff --git a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/model/EditorModel.java b/image-editor/lib/src/main/java/org/signal/imageeditor/core/model/EditorModel.java similarity index 98% rename from app/src/main/java/org/thoughtcrime/securesms/imageeditor/model/EditorModel.java rename to image-editor/lib/src/main/java/org/signal/imageeditor/core/model/EditorModel.java index 031eebde4..cf7862c45 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/model/EditorModel.java +++ b/image-editor/lib/src/main/java/org/signal/imageeditor/core/model/EditorModel.java @@ -1,4 +1,4 @@ -package org.thoughtcrime.securesms.imageeditor.model; +package org.signal.imageeditor.core.model; import android.content.Context; import android.graphics.Bitmap; @@ -14,13 +14,13 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.WorkerThread; -import org.thoughtcrime.securesms.imageeditor.Bounds; -import org.thoughtcrime.securesms.imageeditor.ColorableRenderer; -import org.thoughtcrime.securesms.imageeditor.Renderer; -import org.thoughtcrime.securesms.imageeditor.RendererContext; -import org.thoughtcrime.securesms.imageeditor.UndoRedoStackListener; -import org.thoughtcrime.securesms.imageeditor.renderers.FaceBlurRenderer; -import org.thoughtcrime.securesms.imageeditor.renderers.MultiLineTextRenderer; +import org.signal.imageeditor.core.Bounds; +import org.signal.imageeditor.core.ColorableRenderer; +import org.signal.imageeditor.core.Renderer; +import org.signal.imageeditor.core.RendererContext; +import org.signal.imageeditor.core.UndoRedoStackListener; +import org.signal.imageeditor.core.renderers.FaceBlurRenderer; +import org.signal.imageeditor.core.renderers.MultiLineTextRenderer; import java.util.HashMap; import java.util.LinkedHashSet; diff --git a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/model/ElementStack.java b/image-editor/lib/src/main/java/org/signal/imageeditor/core/model/ElementStack.java similarity index 98% rename from app/src/main/java/org/thoughtcrime/securesms/imageeditor/model/ElementStack.java rename to image-editor/lib/src/main/java/org/signal/imageeditor/core/model/ElementStack.java index c0dd0587a..ab8c0974d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/model/ElementStack.java +++ b/image-editor/lib/src/main/java/org/signal/imageeditor/core/model/ElementStack.java @@ -1,4 +1,4 @@ -package org.thoughtcrime.securesms.imageeditor.model; +package org.signal.imageeditor.core.model; import android.os.Parcel; import android.os.Parcelable; diff --git a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/model/InBoundsMemory.java b/image-editor/lib/src/main/java/org/signal/imageeditor/core/model/InBoundsMemory.java similarity index 94% rename from app/src/main/java/org/thoughtcrime/securesms/imageeditor/model/InBoundsMemory.java rename to image-editor/lib/src/main/java/org/signal/imageeditor/core/model/InBoundsMemory.java index 3b03375d6..303999a09 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/model/InBoundsMemory.java +++ b/image-editor/lib/src/main/java/org/signal/imageeditor/core/model/InBoundsMemory.java @@ -1,4 +1,4 @@ -package org.thoughtcrime.securesms.imageeditor.model; +package org.signal.imageeditor.core.model; import android.graphics.Matrix; diff --git a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/model/ParcelUtils.java b/image-editor/lib/src/main/java/org/signal/imageeditor/core/model/ParcelUtils.java similarity index 96% rename from app/src/main/java/org/thoughtcrime/securesms/imageeditor/model/ParcelUtils.java rename to image-editor/lib/src/main/java/org/signal/imageeditor/core/model/ParcelUtils.java index e5b8e3a26..e402451a0 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/model/ParcelUtils.java +++ b/image-editor/lib/src/main/java/org/signal/imageeditor/core/model/ParcelUtils.java @@ -1,4 +1,4 @@ -package org.thoughtcrime.securesms.imageeditor.model; +package org.signal.imageeditor.core.model; import android.graphics.Matrix; import android.graphics.RectF; diff --git a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/model/ThumbRenderer.java b/image-editor/lib/src/main/java/org/signal/imageeditor/core/model/ThumbRenderer.java similarity index 92% rename from app/src/main/java/org/thoughtcrime/securesms/imageeditor/model/ThumbRenderer.java rename to image-editor/lib/src/main/java/org/signal/imageeditor/core/model/ThumbRenderer.java index 144766449..382657f26 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/model/ThumbRenderer.java +++ b/image-editor/lib/src/main/java/org/signal/imageeditor/core/model/ThumbRenderer.java @@ -1,7 +1,7 @@ -package org.thoughtcrime.securesms.imageeditor.model; +package org.signal.imageeditor.core.model; -import org.thoughtcrime.securesms.imageeditor.Bounds; -import org.thoughtcrime.securesms.imageeditor.Renderer; +import org.signal.imageeditor.core.Bounds; +import org.signal.imageeditor.core.Renderer; import java.util.UUID; diff --git a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/model/UndoRedoStacks.java b/image-editor/lib/src/main/java/org/signal/imageeditor/core/model/UndoRedoStacks.java similarity index 97% rename from app/src/main/java/org/thoughtcrime/securesms/imageeditor/model/UndoRedoStacks.java rename to image-editor/lib/src/main/java/org/signal/imageeditor/core/model/UndoRedoStacks.java index 7ad7f1266..f6e02447b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/model/UndoRedoStacks.java +++ b/image-editor/lib/src/main/java/org/signal/imageeditor/core/model/UndoRedoStacks.java @@ -1,4 +1,4 @@ -package org.thoughtcrime.securesms.imageeditor.model; +package org.signal.imageeditor.core.model; import android.os.Parcel; import android.os.Parcelable; diff --git a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/renderers/AutomaticControlPointBezierLine.java b/image-editor/lib/src/main/java/org/signal/imageeditor/core/renderers/AutomaticControlPointBezierLine.java similarity index 98% rename from app/src/main/java/org/thoughtcrime/securesms/imageeditor/renderers/AutomaticControlPointBezierLine.java rename to image-editor/lib/src/main/java/org/signal/imageeditor/core/renderers/AutomaticControlPointBezierLine.java index dedbbc3ef..28a5dd0dd 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/renderers/AutomaticControlPointBezierLine.java +++ b/image-editor/lib/src/main/java/org/signal/imageeditor/core/renderers/AutomaticControlPointBezierLine.java @@ -1,4 +1,4 @@ -package org.thoughtcrime.securesms.imageeditor.renderers; +package org.signal.imageeditor.core.renderers; import android.graphics.Canvas; import android.graphics.Paint; diff --git a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/renderers/BezierDrawingRenderer.java b/image-editor/lib/src/main/java/org/signal/imageeditor/core/renderers/BezierDrawingRenderer.java similarity index 95% rename from app/src/main/java/org/thoughtcrime/securesms/imageeditor/renderers/BezierDrawingRenderer.java rename to image-editor/lib/src/main/java/org/signal/imageeditor/core/renderers/BezierDrawingRenderer.java index 30423b9c4..4ece6ef9a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/renderers/BezierDrawingRenderer.java +++ b/image-editor/lib/src/main/java/org/signal/imageeditor/core/renderers/BezierDrawingRenderer.java @@ -1,4 +1,4 @@ -package org.thoughtcrime.securesms.imageeditor.renderers; +package org.signal.imageeditor.core.renderers; import android.graphics.Canvas; import android.graphics.Paint; @@ -9,8 +9,8 @@ import android.os.Parcel; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import org.thoughtcrime.securesms.imageeditor.ColorableRenderer; -import org.thoughtcrime.securesms.imageeditor.RendererContext; +import org.signal.imageeditor.core.ColorableRenderer; +import org.signal.imageeditor.core.RendererContext; /** * Renders a {@link AutomaticControlPointBezierLine} with {@link #thickness}, {@link #color} and {@link #cap} end type. diff --git a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/renderers/CropAreaRenderer.java b/image-editor/lib/src/main/java/org/signal/imageeditor/core/renderers/CropAreaRenderer.java similarity index 94% rename from app/src/main/java/org/thoughtcrime/securesms/imageeditor/renderers/CropAreaRenderer.java rename to image-editor/lib/src/main/java/org/signal/imageeditor/core/renderers/CropAreaRenderer.java index a397e06e4..2f4de608f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/renderers/CropAreaRenderer.java +++ b/image-editor/lib/src/main/java/org/signal/imageeditor/core/renderers/CropAreaRenderer.java @@ -1,4 +1,4 @@ -package org.thoughtcrime.securesms.imageeditor.renderers; +package org.signal.imageeditor.core.renderers; import android.content.res.Resources; import android.graphics.Canvas; @@ -11,10 +11,10 @@ import androidx.annotation.ColorRes; import androidx.annotation.NonNull; import androidx.core.content.res.ResourcesCompat; -import org.thoughtcrime.securesms.R; -import org.thoughtcrime.securesms.imageeditor.Bounds; -import org.thoughtcrime.securesms.imageeditor.Renderer; -import org.thoughtcrime.securesms.imageeditor.RendererContext; +import org.signal.imageeditor.R; +import org.signal.imageeditor.core.Bounds; +import org.signal.imageeditor.core.Renderer; +import org.signal.imageeditor.core.RendererContext; /** * Renders a box outside of the current crop area using {@link R.color#crop_area_renderer_outer_color} diff --git a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/renderers/FaceBlurRenderer.java b/image-editor/lib/src/main/java/org/signal/imageeditor/core/renderers/FaceBlurRenderer.java similarity index 80% rename from app/src/main/java/org/thoughtcrime/securesms/imageeditor/renderers/FaceBlurRenderer.java rename to image-editor/lib/src/main/java/org/signal/imageeditor/core/renderers/FaceBlurRenderer.java index db5a39a22..49a1f0114 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/renderers/FaceBlurRenderer.java +++ b/image-editor/lib/src/main/java/org/signal/imageeditor/core/renderers/FaceBlurRenderer.java @@ -1,12 +1,12 @@ -package org.thoughtcrime.securesms.imageeditor.renderers; +package org.signal.imageeditor.core.renderers; import android.os.Parcel; import androidx.annotation.NonNull; -import org.thoughtcrime.securesms.imageeditor.Bounds; -import org.thoughtcrime.securesms.imageeditor.Renderer; -import org.thoughtcrime.securesms.imageeditor.RendererContext; +import org.signal.imageeditor.core.Bounds; +import org.signal.imageeditor.core.Renderer; +import org.signal.imageeditor.core.RendererContext; /** * A rectangle that will be rendered on the blur mask layer. Intended for blurring faces. diff --git a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/renderers/FillRenderer.java b/image-editor/lib/src/main/java/org/signal/imageeditor/core/renderers/FillRenderer.java similarity index 80% rename from app/src/main/java/org/thoughtcrime/securesms/imageeditor/renderers/FillRenderer.java rename to image-editor/lib/src/main/java/org/signal/imageeditor/core/renderers/FillRenderer.java index 47f058025..3bb8d74ac 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/renderers/FillRenderer.java +++ b/image-editor/lib/src/main/java/org/signal/imageeditor/core/renderers/FillRenderer.java @@ -1,4 +1,4 @@ -package org.thoughtcrime.securesms.imageeditor.renderers; +package org.signal.imageeditor.core.renderers; import android.graphics.Path; import android.graphics.RectF; @@ -7,10 +7,10 @@ import android.os.Parcel; import androidx.annotation.ColorInt; import androidx.annotation.NonNull; -import org.thoughtcrime.securesms.imageeditor.Bounds; -import org.thoughtcrime.securesms.imageeditor.Renderer; -import org.thoughtcrime.securesms.imageeditor.RendererContext; -import org.thoughtcrime.securesms.util.ViewUtil; +import org.signal.core.util.DimensionUnit; +import org.signal.imageeditor.core.Bounds; +import org.signal.imageeditor.core.Renderer; +import org.signal.imageeditor.core.RendererContext; /** * Renders the {@link color} outside of the {@link Bounds}. @@ -32,7 +32,7 @@ public final class FillRenderer implements Renderer { rendererContext.canvasMatrix.setToIdentity(); path.reset(); - path.addRoundRect(dst, ViewUtil.dpToPx(18), ViewUtil.dpToPx(18), Path.Direction.CW); + path.addRoundRect(dst, DimensionUnit.DP.toPixels(18), DimensionUnit.DP.toPixels(18), Path.Direction.CW); rendererContext.canvas.clipPath(path); rendererContext.canvas.drawColor(color); diff --git a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/renderers/InvalidateableRenderer.java b/image-editor/lib/src/main/java/org/signal/imageeditor/core/renderers/InvalidateableRenderer.java similarity index 82% rename from app/src/main/java/org/thoughtcrime/securesms/imageeditor/renderers/InvalidateableRenderer.java rename to image-editor/lib/src/main/java/org/signal/imageeditor/core/renderers/InvalidateableRenderer.java index fd255e4d2..72b9a7ca1 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/renderers/InvalidateableRenderer.java +++ b/image-editor/lib/src/main/java/org/signal/imageeditor/core/renderers/InvalidateableRenderer.java @@ -1,9 +1,9 @@ -package org.thoughtcrime.securesms.imageeditor.renderers; +package org.signal.imageeditor.core.renderers; import androidx.annotation.NonNull; -import org.thoughtcrime.securesms.imageeditor.Renderer; -import org.thoughtcrime.securesms.imageeditor.RendererContext; +import org.signal.imageeditor.core.Renderer; +import org.signal.imageeditor.core.RendererContext; import java.lang.ref.WeakReference; diff --git a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/renderers/InverseFillRenderer.java b/image-editor/lib/src/main/java/org/signal/imageeditor/core/renderers/InverseFillRenderer.java similarity index 81% rename from app/src/main/java/org/thoughtcrime/securesms/imageeditor/renderers/InverseFillRenderer.java rename to image-editor/lib/src/main/java/org/signal/imageeditor/core/renderers/InverseFillRenderer.java index b8b913bcc..51c7c3cdd 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/renderers/InverseFillRenderer.java +++ b/image-editor/lib/src/main/java/org/signal/imageeditor/core/renderers/InverseFillRenderer.java @@ -1,4 +1,4 @@ -package org.thoughtcrime.securesms.imageeditor.renderers; +package org.signal.imageeditor.core.renderers; import android.graphics.Path; import android.graphics.RectF; @@ -7,10 +7,10 @@ import android.os.Parcel; import androidx.annotation.ColorInt; import androidx.annotation.NonNull; -import org.thoughtcrime.securesms.imageeditor.Bounds; -import org.thoughtcrime.securesms.imageeditor.Renderer; -import org.thoughtcrime.securesms.imageeditor.RendererContext; -import org.thoughtcrime.securesms.util.ViewUtil; +import org.signal.core.util.DimensionUnit; +import org.signal.imageeditor.core.Bounds; +import org.signal.imageeditor.core.Renderer; +import org.signal.imageeditor.core.RendererContext; /** * Renders the {@link color} outside of the {@link Bounds}. @@ -32,7 +32,7 @@ public final class InverseFillRenderer implements Renderer { rendererContext.canvasMatrix.setToIdentity(); path.reset(); - path.addRoundRect(dst, ViewUtil.dpToPx(18), ViewUtil.dpToPx(18), Path.Direction.CW); + path.addRoundRect(dst, DimensionUnit.DP.toPixels(18), DimensionUnit.DP.toPixels(18), Path.Direction.CW); rendererContext.canvas.clipPath(path); rendererContext.canvas.drawColor(color); diff --git a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/renderers/MultiLineTextRenderer.java b/image-editor/lib/src/main/java/org/signal/imageeditor/core/renderers/MultiLineTextRenderer.java similarity index 93% rename from app/src/main/java/org/thoughtcrime/securesms/imageeditor/renderers/MultiLineTextRenderer.java rename to image-editor/lib/src/main/java/org/signal/imageeditor/core/renderers/MultiLineTextRenderer.java index 3b13f895a..d65d45ae2 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/renderers/MultiLineTextRenderer.java +++ b/image-editor/lib/src/main/java/org/signal/imageeditor/core/renderers/MultiLineTextRenderer.java @@ -1,4 +1,4 @@ -package org.thoughtcrime.securesms.imageeditor.renderers; +package org.signal.imageeditor.core.renderers; import android.animation.ValueAnimator; import android.graphics.Color; @@ -15,11 +15,11 @@ import androidx.annotation.ColorInt; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import org.thoughtcrime.securesms.imageeditor.Bounds; -import org.thoughtcrime.securesms.imageeditor.ColorableRenderer; -import org.thoughtcrime.securesms.imageeditor.RendererContext; -import org.thoughtcrime.securesms.imageeditor.SelectableRenderer; -import org.thoughtcrime.securesms.util.ViewUtil; +import org.signal.core.util.DimensionUnit; +import org.signal.imageeditor.core.Bounds; +import org.signal.imageeditor.core.ColorableRenderer; +import org.signal.imageeditor.core.RendererContext; +import org.signal.imageeditor.core.SelectableRenderer; import java.util.ArrayList; import java.util.List; @@ -33,11 +33,11 @@ import static java.util.Collections.emptyList; */ public final class MultiLineTextRenderer extends InvalidateableRenderer implements ColorableRenderer, SelectableRenderer { - private static final float HIT_PADDING = ViewUtil.dpToPx(30); - private static final float HIGHLIGHT_HORIZONTAL_PADDING = ViewUtil.dpToPx(8); - private static final float HIGHLIGHT_TOP_PADDING = ViewUtil.dpToPx(10); - private static final float HIGHLIGHT_BOTTOM_PADDING = ViewUtil.dpToPx(6); - private static final float HIGHLIGHT_CORNER_RADIUS = ViewUtil.dpToPx(4); + private static final float HIT_PADDING = DimensionUnit.DP.toPixels(30); + private static final float HIGHLIGHT_HORIZONTAL_PADDING = DimensionUnit.DP.toPixels(8); + private static final float HIGHLIGHT_TOP_PADDING = DimensionUnit.DP.toPixels(10); + private static final float HIGHLIGHT_BOTTOM_PADDING = DimensionUnit.DP.toPixels(6); + private static final float HIGHLIGHT_CORNER_RADIUS = DimensionUnit.DP.toPixels(4); @NonNull private String text = ""; @@ -334,12 +334,12 @@ public final class MultiLineTextRenderer extends InvalidateableRenderer implemen modePaint.setAlpha(alpha); } else if (mode == Mode.UNDERLINE) { modeBounds.set(textBounds.left, selectionBounds.top, textBounds.right, selectionBounds.bottom); - modeBounds.inset(-ViewUtil.dpToPx(2), -ViewUtil.dpToPx(2)); + modeBounds.inset(-DimensionUnit.DP.toPixels(2), -DimensionUnit.DP.toPixels(2)); modeBounds.set(modeBounds.left, - Math.max(modeBounds.top, modeBounds.bottom - ViewUtil.dpToPx(6)), + Math.max(modeBounds.top, modeBounds.bottom - DimensionUnit.DP.toPixels(6)), modeBounds.right, - modeBounds.bottom - ViewUtil.dpToPx(2)); + modeBounds.bottom - DimensionUnit.DP.toPixels(2)); int alpha = modePaint.getAlpha(); modePaint.setAlpha(rendererContext.getAlpha(alpha)); @@ -469,7 +469,7 @@ public final class MultiLineTextRenderer extends InvalidateableRenderer implemen } if (mode == Mode.OUTLINE) { - modePaint.setStrokeWidth(ViewUtil.dpToPx(15) / 10f); + modePaint.setStrokeWidth(DimensionUnit.DP.toPixels(15) / 10f); modePaint.setStyle(Paint.Style.STROKE); } else { modePaint.setStyle(Paint.Style.FILL); diff --git a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/renderers/OvalGuideRenderer.java b/image-editor/lib/src/main/java/org/signal/imageeditor/core/renderers/OvalGuideRenderer.java similarity index 88% rename from app/src/main/java/org/thoughtcrime/securesms/imageeditor/renderers/OvalGuideRenderer.java rename to image-editor/lib/src/main/java/org/signal/imageeditor/core/renderers/OvalGuideRenderer.java index 643e83882..918f75fab 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/renderers/OvalGuideRenderer.java +++ b/image-editor/lib/src/main/java/org/signal/imageeditor/core/renderers/OvalGuideRenderer.java @@ -1,4 +1,4 @@ -package org.thoughtcrime.securesms.imageeditor.renderers; +package org.signal.imageeditor.core.renderers; import android.content.Context; import android.graphics.Canvas; @@ -10,10 +10,10 @@ import androidx.annotation.ColorRes; import androidx.annotation.NonNull; import androidx.core.content.ContextCompat; -import org.thoughtcrime.securesms.R; -import org.thoughtcrime.securesms.imageeditor.Bounds; -import org.thoughtcrime.securesms.imageeditor.Renderer; -import org.thoughtcrime.securesms.imageeditor.RendererContext; +import org.signal.imageeditor.R; +import org.signal.imageeditor.core.Bounds; +import org.signal.imageeditor.core.Renderer; +import org.signal.imageeditor.core.RendererContext; /** * Renders an oval inside of the {@link Bounds}. diff --git a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/renderers/SelectedElementGuideRenderer.kt b/image-editor/lib/src/main/java/org/signal/imageeditor/core/renderers/SelectedElementGuideRenderer.kt similarity index 88% rename from app/src/main/java/org/thoughtcrime/securesms/imageeditor/renderers/SelectedElementGuideRenderer.kt rename to image-editor/lib/src/main/java/org/signal/imageeditor/core/renderers/SelectedElementGuideRenderer.kt index 2b021a90e..14746c035 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/renderers/SelectedElementGuideRenderer.kt +++ b/image-editor/lib/src/main/java/org/signal/imageeditor/core/renderers/SelectedElementGuideRenderer.kt @@ -1,13 +1,13 @@ -package org.thoughtcrime.securesms.imageeditor.renderers +package org.signal.imageeditor.core.renderers import android.graphics.Color import android.graphics.DashPathEffect import android.graphics.Paint import android.graphics.Path import android.graphics.RectF -import org.thoughtcrime.securesms.imageeditor.Bounds -import org.thoughtcrime.securesms.imageeditor.RendererContext -import org.thoughtcrime.securesms.util.ViewUtil +import org.signal.core.util.DimensionUnit +import org.signal.imageeditor.core.Bounds +import org.signal.imageeditor.core.RendererContext class SelectedElementGuideRenderer { @@ -23,11 +23,11 @@ class SelectedElementGuideRenderer { Bounds.LEFT, Bounds.BOTTOM ) - private val circleRadius = ViewUtil.dpToPx(5).toFloat() + private val circleRadius = DimensionUnit.DP.toPixels(5f) private val guidePaint = Paint().apply { isAntiAlias = true - strokeWidth = ViewUtil.dpToPx(15).toFloat() / 10f + strokeWidth = DimensionUnit.DP.toPixels(1.5f) color = Color.WHITE style = Paint.Style.STROKE pathEffect = DashPathEffect(floatArrayOf(15f, 15f), 0f) diff --git a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/renderers/TrashRenderer.kt b/image-editor/lib/src/main/java/org/signal/imageeditor/core/renderers/TrashRenderer.kt similarity index 79% rename from app/src/main/java/org/thoughtcrime/securesms/imageeditor/renderers/TrashRenderer.kt rename to image-editor/lib/src/main/java/org/signal/imageeditor/core/renderers/TrashRenderer.kt index d87c4bcec..ff2dd656d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/imageeditor/renderers/TrashRenderer.kt +++ b/image-editor/lib/src/main/java/org/signal/imageeditor/core/renderers/TrashRenderer.kt @@ -1,4 +1,4 @@ -package org.thoughtcrime.securesms.imageeditor.renderers +package org.signal.imageeditor.core.renderers import android.graphics.Color import android.graphics.Paint @@ -6,13 +6,14 @@ import android.graphics.RectF import android.graphics.drawable.Drawable import android.os.Parcel import android.os.Parcelable +import android.view.animation.Interpolator import androidx.appcompat.content.res.AppCompatResources -import org.thoughtcrime.securesms.R -import org.thoughtcrime.securesms.imageeditor.Bounds -import org.thoughtcrime.securesms.imageeditor.Renderer -import org.thoughtcrime.securesms.imageeditor.RendererContext -import org.thoughtcrime.securesms.mediasend.v2.MediaAnimations -import org.thoughtcrime.securesms.util.ViewUtil +import androidx.interpolator.view.animation.FastOutSlowInInterpolator +import org.signal.core.util.DimensionUnit +import org.signal.imageeditor.R +import org.signal.imageeditor.core.Bounds +import org.signal.imageeditor.core.Renderer +import org.signal.imageeditor.core.RendererContext internal class TrashRenderer : InvalidateableRenderer, Renderer, Parcelable { @@ -20,7 +21,7 @@ internal class TrashRenderer : InvalidateableRenderer, Renderer, Parcelable { isAntiAlias = true color = Color.WHITE style = Paint.Style.STROKE - strokeWidth = ViewUtil.dpToPx(15) / 10f + strokeWidth = DimensionUnit.DP.toPixels(1.5f) } private val shadePaint = Paint().apply { @@ -31,10 +32,11 @@ internal class TrashRenderer : InvalidateableRenderer, Renderer, Parcelable { private val bounds = RectF() - private val diameterSmall = ViewUtil.dpToPx(41) - private val diameterLarge = ViewUtil.dpToPx(54) - private val trashSize = ViewUtil.dpToPx(24) - private val padBottom = ViewUtil.dpToPx(16) + private val diameterSmall = DimensionUnit.DP.toPixels(41f) + private val diameterLarge = DimensionUnit.DP.toPixels(54f) + private val trashSize: Int = DimensionUnit.DP.toPixels(24f).toInt() + private val padBottom = DimensionUnit.DP.toPixels(16f) + private val interpolator: Interpolator = FastOutSlowInInterpolator() private var startTime = 0L @@ -77,12 +79,12 @@ internal class TrashRenderer : InvalidateableRenderer, Renderer, Parcelable { private fun getInterpolatedDiameter(timeElapsed: Long): Float { return if (timeElapsed >= DURATION) { if (isExpanding) { - diameterLarge.toFloat() + diameterLarge } else { - diameterSmall.toFloat() + diameterSmall } } else { - val interpolatedFraction = MediaAnimations.interpolator.getInterpolation(timeElapsed / DURATION.toFloat()) + val interpolatedFraction = interpolator.getInterpolation(timeElapsed / DURATION.toFloat()) if (isExpanding) { interpolateFromFraction(interpolatedFraction) } else { diff --git a/app/src/main/res/values/crop_area_renderer.xml b/image-editor/lib/src/main/res/values/crop_area_renderer.xml similarity index 100% rename from app/src/main/res/values/crop_area_renderer.xml rename to image-editor/lib/src/main/res/values/crop_area_renderer.xml diff --git a/image-editor/lib/witness-verifications.gradle b/image-editor/lib/witness-verifications.gradle new file mode 100644 index 000000000..38d891b58 --- /dev/null +++ b/image-editor/lib/witness-verifications.gradle @@ -0,0 +1,93 @@ +// Auto-generated, use ./gradlew calculateChecksums to regenerate + +dependencyVerification { + verify = [ + + ['androidx.activity:activity:1.0.0', + 'd1bc9842455c2e534415d88c44df4d52413b478db9093a1ba36324f705f44c3d'], + + ['androidx.annotation:annotation:1.2.0', + '9029262bddce116e6d02be499e4afdba21f24c239087b76b3b57d7e98b490a36'], + + ['androidx.appcompat:appcompat-resources:1.2.0', + 'c470297c03ff3de1c3d15dacf0be0cae63abc10b52f021dd07ae28daa3100fe5'], + + ['androidx.appcompat:appcompat:1.2.0', + '3d2131a55a61a777322e2126e0018011efa6339e53b44153eb651b16020cca70'], + + ['androidx.arch.core:core-common:2.1.0', + 'fe1237bf029d063e7f29fe39aeaf73ef74c8b0a3658486fc29d3c54326653889'], + + ['androidx.arch.core:core-runtime:2.0.0', + '87e65fc767c712b437649c7cee2431ebb4bed6daef82e501d4125b3ed3f65f8e'], + + ['androidx.collection:collection:1.1.0', + '632a0e5407461de774409352940e292a291037724207a787820c77daf7d33b72'], + + ['androidx.core:core-ktx:1.5.0', + '5964cfe7a4882da2a00fb6ca3d3a072d04139208186f7bc4b3cb66022764fc42'], + + ['androidx.core:core:1.5.0', + '2b279712795689069cfb63e48b3ab63c32a5649bdda44c482eb8f81ca1a72161'], + + ['androidx.cursoradapter:cursoradapter:1.0.0', + 'a81c8fe78815fa47df5b749deb52727ad11f9397da58b16017f4eb2c11e28564'], + + ['androidx.customview:customview:1.0.0', + '20e5b8f6526a34595a604f56718da81167c0b40a7a94a57daa355663f2594df2'], + + ['androidx.drawerlayout:drawerlayout:1.0.0', + '9402442cdc5a43cf62fb14f8cf98c63342d4d9d9b805c8033c6cf7e802749ac1'], + + ['androidx.fragment:fragment:1.1.0', + 'a14c8b8f2153f128e800fbd266a6beab1c283982a29ec570d2cc05d307d81496'], + + ['androidx.interpolator:interpolator:1.0.0', + '33193135a64fe21fa2c35eec6688f1a76e512606c0fc83dc1b689e37add7732a'], + + ['androidx.lifecycle:lifecycle-common:2.1.0', + '76db6be533bd730fb361c2feb12a2c26d9952824746847da82601ef81f082643'], + + ['androidx.lifecycle:lifecycle-livedata-core:2.0.0', + 'fde334ec7e22744c0f5bfe7caf1a84c9d717327044400577bdf9bd921ec4f7bc'], + + ['androidx.lifecycle:lifecycle-livedata:2.0.0', + 'c82609ced8c498f0a701a30fb6771bb7480860daee84d82e0a81ee86edf7ba39'], + + ['androidx.lifecycle:lifecycle-runtime:2.1.0', + 'e5173897b965e870651e83d9d5af1742d3f532d58863223a390ce3a194c8312b'], + + ['androidx.lifecycle:lifecycle-viewmodel:2.1.0', + 'ba55fb7ac1b2828d5327cda8acf7085d990b2b4c43ef336caa67686249b8523d'], + + ['androidx.loader:loader:1.0.0', + '11f735cb3b55c458d470bed9e25254375b518b4b1bad6926783a7026db0f5025'], + + ['androidx.savedstate:savedstate:1.0.0', + '2510a5619c37579c9ce1a04574faaf323cd0ffe2fc4e20fa8f8f01e5bb402e83'], + + ['androidx.vectordrawable:vectordrawable-animated:1.1.0', + '76da2c502371d9c38054df5e2b248d00da87809ed058f3363eae87ce5e2403f8'], + + ['androidx.vectordrawable:vectordrawable:1.1.0', + '46fd633ac01b49b7fcabc263bf098c5a8b9e9a69774d234edcca04fb02df8e26'], + + ['androidx.versionedparcelable:versionedparcelable:1.1.1', + '57e8d93260d18d5b9007c9eed3c64ad159de90c8609ebfc74a347cbd514535a4'], + + ['androidx.viewpager:viewpager:1.0.0', + '147af4e14a1984010d8f155e5e19d781f03c1d70dfed02a8e0d18428b8fc8682'], + + ['com.google.protobuf:protobuf-javalite:3.10.0', + '215a94dbe100130295906b531bb72a26965c7ac8fcd9a75bf8054a8ac2abf4b4'], + + ['org.jetbrains.kotlin:kotlin-stdlib-common:1.4.32', + 'e1ff6f55ee9e7591dcc633f7757bac25a7edb1cc7f738b37ec652f10f66a4145'], + + ['org.jetbrains.kotlin:kotlin-stdlib:1.4.32', + '13e9fd3e69dc7230ce0fc873a92a4e5d521d179bcf1bef75a6705baac3bfecba'], + + ['org.jetbrains:annotations:13.0', + 'ace2a10dc8e2d5fd34925ecac03e4988b2c0f851650c94b8cef49ba1bd111478'], + ] +} diff --git a/settings.gradle b/settings.gradle index f34675477..09d7e2874 100644 --- a/settings.gradle +++ b/settings.gradle @@ -7,6 +7,7 @@ include ':core-util' include ':video' include ':device-transfer' include ':device-transfer-app' +include ':image-editor' project(':app').name = 'Signal-Android' project(':paging').projectDir = file('paging/lib') @@ -17,4 +18,6 @@ project(':device-transfer-app').projectDir = file('device-transfer/app') project(':libsignal-service').projectDir = file('libsignal/service') +project(':image-editor').projectDir = file('image-editor/lib') + rootProject.name='Signal'