diff --git a/dl-invites/app/build.gradle.kts b/dl-invites/app/build.gradle.kts deleted file mode 100644 index d7a7363bb..000000000 --- a/dl-invites/app/build.gradle.kts +++ /dev/null @@ -1,44 +0,0 @@ -plugins { - id("com.android.application") - id("kotlin-android") -} - -android { - namespace = "com.google.firebase.dynamicinvites" - compileSdk = 36 - - defaultConfig { - applicationId = "com.google.firebase.dynamicinvites" - minSdk = 23 - targetSdk = 36 - versionCode = 1 - versionName = "1.0" - testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" - multiDexEnabled = true - } - buildTypes { - getByName("release") { - isMinifyEnabled = false - proguardFiles(getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro") - } - } - compileOptions { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 - } - kotlinOptions { - jvmTarget = "17" - } -} - -dependencies { - implementation("androidx.legacy:legacy-support-v4:1.0.0") - implementation("androidx.appcompat:appcompat:1.7.1") - implementation("androidx.cardview:cardview:1.0.0") - implementation("androidx.recyclerview:recyclerview:1.4.0") - implementation("com.google.android.material:material:1.12.0") - implementation("androidx.constraintlayout:constraintlayout:2.2.1") - - // Add the dependency for the Dynamic Links library - implementation("com.google.firebase:firebase-dynamic-links:22.1.0") -} diff --git a/dl-invites/app/proguard-rules.pro b/dl-invites/app/proguard-rules.pro deleted file mode 100644 index 2f9dc5a47..000000000 --- a/dl-invites/app/proguard-rules.pro +++ /dev/null @@ -1,21 +0,0 @@ -# Add project specific ProGuard rules here. -# You can control the set of applied configuration files using the -# proguardFiles setting in build.gradle.kts. -# -# 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 diff --git a/dl-invites/app/src/main/AndroidManifest.xml b/dl-invites/app/src/main/AndroidManifest.xml deleted file mode 100644 index 181f109a7..000000000 --- a/dl-invites/app/src/main/AndroidManifest.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/dl-invites/app/src/main/java/com/google/firebase/dynamicinvites/kotlin/model/InviteContent.kt b/dl-invites/app/src/main/java/com/google/firebase/dynamicinvites/kotlin/model/InviteContent.kt deleted file mode 100644 index 73a5d9f69..000000000 --- a/dl-invites/app/src/main/java/com/google/firebase/dynamicinvites/kotlin/model/InviteContent.kt +++ /dev/null @@ -1,18 +0,0 @@ -package com.google.firebase.dynamicinvites.kotlin.model - -import android.net.Uri - -// [START ddl_invite_content] -/** - * The content of an invitation, with optional fields to accommodate all presenters. - * This type could be modified to also include an image, for sending invites over email. - */ -data class InviteContent( - /** The subject of the message. Not used for invites without subjects, like SMS. */ - val subject: String?, - /** The body of the message. Indispensable content should go here. */ - val body: String?, - /** The URL containing the link to invite. In link-copy cases, only this field will be used. */ - val link: Uri, -) -// [END ddl_invite_content] diff --git a/dl-invites/app/src/main/java/com/google/firebase/dynamicinvites/kotlin/presenter/CopyPresenter.kt b/dl-invites/app/src/main/java/com/google/firebase/dynamicinvites/kotlin/presenter/CopyPresenter.kt deleted file mode 100644 index 9012c0649..000000000 --- a/dl-invites/app/src/main/java/com/google/firebase/dynamicinvites/kotlin/presenter/CopyPresenter.kt +++ /dev/null @@ -1,15 +0,0 @@ -package com.google.firebase.dynamicinvites.kotlin.presenter - -import android.content.Context -import android.widget.Toast -import com.google.firebase.dynamicinvites.R -import com.google.firebase.dynamicinvites.kotlin.model.InviteContent - -class CopyPresenter(isAvailable: Boolean, content: InviteContent) : - InvitePresenter("Copy Link", R.drawable.ic_content_copy, isAvailable, content) { - - override fun sendInvite(context: Context) { - super.sendInvite(context) - Toast.makeText(context, "TODO: Implement link copying", Toast.LENGTH_SHORT).show() - } -} diff --git a/dl-invites/app/src/main/java/com/google/firebase/dynamicinvites/kotlin/presenter/EmailPresenter.kt b/dl-invites/app/src/main/java/com/google/firebase/dynamicinvites/kotlin/presenter/EmailPresenter.kt deleted file mode 100644 index 2f3f40557..000000000 --- a/dl-invites/app/src/main/java/com/google/firebase/dynamicinvites/kotlin/presenter/EmailPresenter.kt +++ /dev/null @@ -1,15 +0,0 @@ -package com.google.firebase.dynamicinvites.kotlin.presenter - -import android.content.Context -import android.widget.Toast -import com.google.firebase.dynamicinvites.R -import com.google.firebase.dynamicinvites.kotlin.model.InviteContent - -class EmailPresenter(isAvailable: Boolean, content: InviteContent) : - InvitePresenter("Email", R.drawable.ic_email, isAvailable, content) { - - override fun sendInvite(context: Context) { - super.sendInvite(context) - Toast.makeText(context, "TODO: Implement email sending", Toast.LENGTH_SHORT).show() - } -} diff --git a/dl-invites/app/src/main/java/com/google/firebase/dynamicinvites/kotlin/presenter/InvitePresenter.kt b/dl-invites/app/src/main/java/com/google/firebase/dynamicinvites/kotlin/presenter/InvitePresenter.kt deleted file mode 100644 index 08bd7d6f3..000000000 --- a/dl-invites/app/src/main/java/com/google/firebase/dynamicinvites/kotlin/presenter/InvitePresenter.kt +++ /dev/null @@ -1,29 +0,0 @@ -package com.google.firebase.dynamicinvites.kotlin.presenter - -import android.content.Context -import androidx.annotation.DrawableRes -import com.google.firebase.dynamicinvites.kotlin.model.InviteContent - -// [START ddl_invite_presenter] -/** - * Presents the invite using a specific method, such as email or social. - */ -open class InvitePresenter( - /** The user-visible name of the invite method, like 'Email' or 'SMS' */ - val name: String, - /** An icon representing the invite method. */ - @param:DrawableRes @field:DrawableRes - val icon: Int, - /** Whether or not the method is available on this device. For example, SMS is phone only. */ - val isAvailable: Boolean, - /** The Content of the invitation */ - val content: InviteContent, -) { - /** - * Send the invitation using the specified method. - */ - open fun sendInvite(context: Context) { - // ... - } -} -// [END ddl_invite_presenter] diff --git a/dl-invites/app/src/main/java/com/google/firebase/dynamicinvites/kotlin/presenter/MessagePresenter.kt b/dl-invites/app/src/main/java/com/google/firebase/dynamicinvites/kotlin/presenter/MessagePresenter.kt deleted file mode 100644 index 5f4745204..000000000 --- a/dl-invites/app/src/main/java/com/google/firebase/dynamicinvites/kotlin/presenter/MessagePresenter.kt +++ /dev/null @@ -1,15 +0,0 @@ -package com.google.firebase.dynamicinvites.kotlin.presenter - -import android.content.Context -import android.widget.Toast -import com.google.firebase.dynamicinvites.R -import com.google.firebase.dynamicinvites.kotlin.model.InviteContent - -class MessagePresenter(isAvailable: Boolean, content: InviteContent) : - InvitePresenter("Message", R.drawable.ic_sms, isAvailable, content) { - - override fun sendInvite(context: Context) { - super.sendInvite(context) - Toast.makeText(context, "TODO: Implement SMS", Toast.LENGTH_SHORT).show() - } -} diff --git a/dl-invites/app/src/main/java/com/google/firebase/dynamicinvites/kotlin/presenter/MorePresenter.kt b/dl-invites/app/src/main/java/com/google/firebase/dynamicinvites/kotlin/presenter/MorePresenter.kt deleted file mode 100644 index 81f5cd080..000000000 --- a/dl-invites/app/src/main/java/com/google/firebase/dynamicinvites/kotlin/presenter/MorePresenter.kt +++ /dev/null @@ -1,22 +0,0 @@ -package com.google.firebase.dynamicinvites.kotlin.presenter - -import android.content.Context -import android.content.Intent -import com.google.firebase.dynamicinvites.R -import com.google.firebase.dynamicinvites.kotlin.model.InviteContent -import com.google.firebase.dynamicinvites.util.DynamicLinksUtil - -class MorePresenter(isAvailable: Boolean, content: InviteContent) : - InvitePresenter("More", R.drawable.ic_more_horiz, isAvailable, content) { - - override fun sendInvite(context: Context) { - super.sendInvite(context) - val link = DynamicLinksUtil.generateContentLink() - - val intent = Intent(Intent.ACTION_SEND) - intent.type = "text/plain" - intent.putExtra(Intent.EXTRA_TEXT, link.toString()) - - context.startActivity(Intent.createChooser(intent, "Share Link")) - } -} diff --git a/dl-invites/app/src/main/java/com/google/firebase/dynamicinvites/kotlin/presenter/SocialPresenter.kt b/dl-invites/app/src/main/java/com/google/firebase/dynamicinvites/kotlin/presenter/SocialPresenter.kt deleted file mode 100644 index cd448cce4..000000000 --- a/dl-invites/app/src/main/java/com/google/firebase/dynamicinvites/kotlin/presenter/SocialPresenter.kt +++ /dev/null @@ -1,15 +0,0 @@ -package com.google.firebase.dynamicinvites.kotlin.presenter - -import android.content.Context -import android.widget.Toast -import com.google.firebase.dynamicinvites.R -import com.google.firebase.dynamicinvites.kotlin.model.InviteContent - -class SocialPresenter(isAvailable: Boolean, content: InviteContent) : - InvitePresenter("Social", R.drawable.ic_people, isAvailable, content) { - - override fun sendInvite(context: Context) { - super.sendInvite(context) - Toast.makeText(context, "TODO: Implement social sending", Toast.LENGTH_SHORT).show() - } -} diff --git a/dl-invites/app/src/main/java/com/google/firebase/dynamicinvites/kotlin/util/DynamicLinksUtil.kt b/dl-invites/app/src/main/java/com/google/firebase/dynamicinvites/kotlin/util/DynamicLinksUtil.kt deleted file mode 100644 index 8b9c8334a..000000000 --- a/dl-invites/app/src/main/java/com/google/firebase/dynamicinvites/kotlin/util/DynamicLinksUtil.kt +++ /dev/null @@ -1,34 +0,0 @@ -package com.google.firebase.dynamicinvites.kotlin.util - -import android.net.Uri -import com.google.firebase.dynamicinvites.kotlin.model.InviteContent -import com.google.firebase.dynamiclinks.DynamicLink -import com.google.firebase.dynamiclinks.FirebaseDynamicLinks - -object DynamicLinksUtil { - - fun generateInviteContent(): InviteContent { - return InviteContent( - "Hey check out my great app!", - "It's like the best app ever.", - generateContentLink(), - ) - } - - // [START ddl_generate_content_link] - fun generateContentLink(): Uri { - val baseUrl = Uri.parse("https://your-custom-name.page.link") - val domain = "https://your-app.page.link" - - val link = FirebaseDynamicLinks.getInstance() - .createDynamicLink() - .setLink(baseUrl) - .setDomainUriPrefix(domain) - .setIosParameters(DynamicLink.IosParameters.Builder("com.your.bundleid").build()) - .setAndroidParameters(DynamicLink.AndroidParameters.Builder("com.your.packageName").build()) - .buildDynamicLink() - - return link.uri - } - // [END ddl_generate_content_link] -} diff --git a/dl-invites/app/src/main/java/com/google/firebase/dynamicinvites/kotlin/view/AdvancedActivity.kt b/dl-invites/app/src/main/java/com/google/firebase/dynamicinvites/kotlin/view/AdvancedActivity.kt deleted file mode 100644 index b7f0cb7d9..000000000 --- a/dl-invites/app/src/main/java/com/google/firebase/dynamicinvites/kotlin/view/AdvancedActivity.kt +++ /dev/null @@ -1,23 +0,0 @@ -package com.google.firebase.dynamicinvites.kotlin.view - -import android.os.Bundle -import android.widget.Button -import androidx.appcompat.app.AppCompatActivity -import com.google.firebase.dynamicinvites.R -import com.google.firebase.dynamicinvites.kotlin.presenter.InvitePresenter - -class AdvancedActivity : AppCompatActivity(), ShareDialogFragment.Listener { - - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - setContentView(R.layout.activity_advanced) - - findViewById