Messaging: Looply home UI and Gradle app module layout

Restructure the tree for Android Studio/Gradle builds and add the iOS-style home experience with pinned conversations, selection chrome, and scroll-aware search padding.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-09-24 18:19:48 +09:00
co-authored by Cursor
parent 6d131ed8e7
commit 349eeb7025
1142 changed files with 7707 additions and 1018 deletions
+22
View File
@@ -0,0 +1,22 @@
*.iml
.cursor/
.gradle/
/local.properties
/.idea/
.DS_Store
/build/
/captures/
.externalNativeBuild/
.cxx/
app/build/
modules/*/build/
modules/*/.git/
*.apk
*.ap_
*.dex
*.class
bin/
gen/
out/
tools/messaging_*.png
tools/stitch-*.txt
+89
View File
@@ -0,0 +1,89 @@
plugins {
id 'com.android.application'
}
android {
namespace 'com.android.messaging'
compileSdk 35
defaultConfig {
applicationId 'com.android.messaging'
minSdk 33
targetSdk 34
versionCode 10001040
versionName '1.0.001'
vectorDrawables.useSupportLibrary true
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_17
targetCompatibility JavaVersion.VERSION_17
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'),
rootProject.file('proguard-release.flags'),
rootProject.file('proguard.flags')
}
debug {
minifyEnabled false
}
}
lint {
abortOnError false
}
sourceSets {
main {
manifest.srcFile 'src/main/AndroidManifest.xml'
java.srcDirs = ['src/main/java']
res.srcDirs = ['src/main/res']
assets.srcDirs = ['src/main/assets']
}
}
}
dependencies {
implementation project(':modules:colorpicker')
implementation project(':modules:chips')
implementation project(':modules:photoviewer')
implementation project(':modules:vcard')
implementation 'androidx.activity:activity:1.9.3'
implementation 'androidx.annotation:annotation:1.8.2'
implementation 'androidx.appcompat:appcompat:1.7.0'
implementation 'androidx.collection:collection:1.4.4'
implementation 'androidx.core:core:1.15.0'
implementation 'androidx.exifinterface:exifinterface:1.3.7'
implementation 'androidx.fragment:fragment:1.8.5'
implementation 'androidx.media:media:1.7.0'
implementation 'androidx.palette:palette:1.0.0'
implementation 'androidx.preference:preference:1.2.1'
implementation 'androidx.recyclerview:recyclerview:1.3.2'
implementation 'androidx.viewpager:viewpager:1.0.0'
implementation 'com.google.android.material:material:1.12.0'
implementation 'com.google.guava:guava:33.3.1-android'
implementation 'com.googlecode.libphonenumber:libphonenumber:8.13.50'
}
def messagingAvdSerial = rootProject.findProperty('messaging.avd.serial') ?: 'emulator-5556'
def adbExecutable = new File(android.sdkDirectory, 'platform-tools/adb.exe')
tasks.register('installMessaging', Exec) {
group = 'install'
description = "Install debug APK on ${messagingAvdSerial} only"
dependsOn 'assembleDebug'
def apk = layout.buildDirectory.file('outputs/apk/debug/app-debug.apk').get().asFile
commandLine adbExecutable.absolutePath, '-s', messagingAvdSerial, 'install', '-r', apk.absolutePath
}
tasks.register('launchMessaging', Exec) {
group = 'install'
description = "Launch Messaging on ${messagingAvdSerial}"
dependsOn 'installMessaging'
commandLine adbExecutable.absolutePath, '-s', messagingAvdSerial, 'shell', 'am', 'start',
'-n', 'com.android.messaging/.ui.conversationlist.ConversationListActivity'
}
@@ -19,10 +19,6 @@
package="com.android.messaging"
android:installLocation="internalOnly">
<uses-sdk
android:minSdkVersion="33"
android:targetSdkVersion="34" />
<!-- Application holds CPU wakelock while working in background -->
<uses-permission android:name="android.permission.WAKE_LOCK" />
<!-- Application needs SMS/MMS permissions -->

Some files were not shown because too many files have changed in this diff Show More