Skip to content

Commit 19ca6a5

Browse files
committed
more migration
1 parent 58ebea0 commit 19ca6a5

File tree

6 files changed

+147
-39
lines changed

6 files changed

+147
-39
lines changed

app/src/main/AndroidManifest.xml

+3-7
Original file line numberDiff line numberDiff line change
@@ -19,17 +19,13 @@
1919
tools:ignore="GoogleAppIndexingWarning,UnusedAttribute"
2020
android:usesCleartextTraffic="true">
2121

22-
<activity android:name=".ChooserActivity"
23-
android:exported="true">
22+
<activity android:name=".auth.compose.ChooserComposeActivity"
23+
android:exported="true"
24+
android:label="@string/app_name">
2425
<intent-filter>
2526
<action android:name="android.intent.action.MAIN" />
26-
2727
<category android:name="android.intent.category.LAUNCHER" />
2828
</intent-filter>
29-
30-
<meta-data
31-
android:name="android.app.shortcuts"
32-
android:resource="@xml/shortcuts" />
3329
</activity>
3430

3531
<!-- Auth UI demo -->

app/src/main/java/com/firebase/uidemo/auth/compose/AuthComposeActivity.kt

+1
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ class AuthComposeActivity : ComponentActivity() {
4545
val response = result.idpResponse
4646
if (response == null) {
4747
// User pressed back button
48+
finish()
4849
return
4950
}
5051
// Handle other error cases
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package com.firebase.uidemo.auth.compose
2+
3+
import android.os.Bundle
4+
import androidx.activity.ComponentActivity
5+
import androidx.activity.compose.setContent
6+
import com.firebase.uidemo.ui.theme.FirebaseUIDemoTheme
7+
8+
class ChooserComposeActivity : ComponentActivity() {
9+
override fun onCreate(savedInstanceState: Bundle?) {
10+
super.onCreate(savedInstanceState)
11+
setContent {
12+
FirebaseUIDemoTheme {
13+
ChooserScreen()
14+
}
15+
}
16+
}
17+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
package com.firebase.uidemo.auth.compose
2+
3+
import android.app.Activity
4+
import android.content.Context
5+
import android.content.Intent
6+
import androidx.compose.foundation.clickable
7+
import androidx.compose.foundation.layout.*
8+
import androidx.compose.foundation.lazy.LazyColumn
9+
import androidx.compose.foundation.lazy.items
10+
import androidx.compose.material3.Card
11+
import androidx.compose.material3.CardDefaults
12+
import androidx.compose.material3.MaterialTheme
13+
import androidx.compose.material3.Surface
14+
import androidx.compose.material3.Text
15+
import androidx.compose.runtime.Composable
16+
import androidx.compose.ui.Alignment
17+
import androidx.compose.ui.Modifier
18+
import androidx.compose.ui.platform.LocalContext
19+
import androidx.compose.ui.res.stringResource
20+
import androidx.compose.ui.text.font.FontWeight
21+
import androidx.compose.ui.tooling.preview.Preview
22+
import androidx.compose.ui.unit.dp
23+
import com.firebase.uidemo.R
24+
import com.firebase.uidemo.auth.AnonymousUpgradeActivity
25+
import com.firebase.uidemo.auth.AuthUiActivity
26+
import com.firebase.uidemo.database.firestore.FirestoreChatActivity
27+
import com.firebase.uidemo.database.firestore.FirestorePagingActivity
28+
import com.firebase.uidemo.database.realtime.FirebaseDbPagingActivity
29+
import com.firebase.uidemo.database.realtime.RealtimeDbChatActivity
30+
import com.firebase.uidemo.storage.ImageActivity
31+
import com.firebase.uidemo.ui.theme.FirebaseUIDemoTheme
32+
33+
data class DemoActivityItem(val titleRes: Int, val descRes: Int, val activityClass: Class<out Activity>)
34+
35+
val demoActivities = listOf(
36+
DemoActivityItem(R.string.title_auth_activity, R.string.desc_auth, AuthUiActivity::class.java),
37+
DemoActivityItem(R.string.auth_compose_title, R.string.desc_auth, AuthComposeActivity::class.java),
38+
DemoActivityItem(R.string.title_anonymous_upgrade, R.string.desc_anonymous_upgrade, AnonymousUpgradeActivity::class.java),
39+
DemoActivityItem(R.string.title_firestore_activity, R.string.desc_firestore, FirestoreChatActivity::class.java),
40+
DemoActivityItem(R.string.title_firestore_paging_activity, R.string.desc_firestore_paging, FirestorePagingActivity::class.java),
41+
DemoActivityItem(R.string.title_realtime_database_activity, R.string.desc_realtime_database, RealtimeDbChatActivity::class.java),
42+
DemoActivityItem(R.string.title_realtime_database_paging_activity, R.string.desc_realtime_database_paging, FirebaseDbPagingActivity::class.java),
43+
DemoActivityItem(R.string.title_storage_activity, R.string.desc_storage, ImageActivity::class.java),
44+
)
45+
46+
@Composable
47+
fun ChooserScreen(modifier: Modifier = Modifier) {
48+
val context = LocalContext.current
49+
Surface(
50+
modifier = modifier
51+
.fillMaxSize()
52+
.padding(top = 40.dp, start = 16.dp, end = 16.dp, bottom = 16.dp)
53+
) {
54+
LazyColumn(
55+
verticalArrangement = Arrangement.spacedBy(12.dp),
56+
) {
57+
items(demoActivities) { item ->
58+
DemoActivityCard(item) {
59+
context.startActivity(Intent(context, item.activityClass))
60+
}
61+
}
62+
}
63+
}
64+
}
65+
66+
@Composable
67+
fun DemoActivityCard(item: DemoActivityItem, onClick: () -> Unit) {
68+
Card(
69+
modifier = Modifier
70+
.fillMaxWidth()
71+
.clickable { onClick() },
72+
elevation = CardDefaults.cardElevation(defaultElevation = 4.dp),
73+
shape = MaterialTheme.shapes.medium
74+
) {
75+
Column(
76+
modifier = Modifier
77+
.padding(horizontal = 16.dp, vertical = 12.dp)
78+
) {
79+
Text(
80+
text = stringResource(id = item.titleRes),
81+
style = MaterialTheme.typography.titleMedium.copy(fontWeight = FontWeight.Bold)
82+
)
83+
Spacer(modifier = Modifier.height(4.dp))
84+
Text(
85+
text = stringResource(id = item.descRes),
86+
style = MaterialTheme.typography.bodyMedium
87+
)
88+
}
89+
}
90+
}
91+
92+
@Preview(showBackground = true)
93+
@Composable
94+
fun ChooserScreenPreview() {
95+
FirebaseUIDemoTheme {
96+
ChooserScreen()
97+
}
98+
}

app/src/main/res/layout/activity_chooser.xml

-17
This file was deleted.

auth/src/main/res/values/styles.xml

+28-15
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<resources xmlns:tools="http://schemas.android.com/tools" tools:ignore="ResourceName">
33

4-
<style name="FirebaseUI" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
4+
<style name="FirebaseUI" parent="Theme.MaterialComponents.DayNight.NoActionBar">
55
<item name="android:buttonStyle">@style/FirebaseUI.Button</item>
66
<item name="android:textColorLink">?attr/colorPrimary</item>
77
</style>
@@ -132,7 +132,8 @@
132132
<item name="android:inputType">textPassword</item>
133133
</style>
134134

135-
<style name="FirebaseUI.TextInputLayout" parent="Widget.MaterialComponents.TextInputLayout.OutlinedBox" />
135+
<style name="FirebaseUI.TextInputLayout"
136+
parent="Widget.MaterialComponents.TextInputLayout.OutlinedBox" />
136137

137138
<style name="FirebaseUI.TextInputLayout.EmailField">
138139
<item name="android:hint">@string/fui_email_hint</item>
@@ -142,7 +143,8 @@
142143
<item name="android:hint">@string/fui_phone_hint</item>
143144
</style>
144145

145-
<style name="FirebaseUI.TextInputLayout.CountryField" parent="Widget.MaterialComponents.TextInputLayout.OutlinedBox">
146+
<style name="FirebaseUI.TextInputLayout.CountryField"
147+
parent="Widget.MaterialComponents.TextInputLayout.OutlinedBox">
146148
<item name="android:hint">@string/fui_country_hint</item>
147149
</style>
148150

@@ -223,67 +225,78 @@
223225
<item name="android:insetRight">@dimen/fui_button_inset_right</item>
224226
</style>
225227

226-
<style name="FirebaseUI.Button.AccountChooser.GoogleButton" parent="FirebaseUI.Button.AccountChooser.BaseButton">
228+
<style name="FirebaseUI.Button.AccountChooser.GoogleButton"
229+
parent="FirebaseUI.Button.AccountChooser.BaseButton">
227230
<item name="icon">@drawable/fui_ic_googleg_color_24dp</item>
228231
<item name="backgroundTint">@color/fui_bgGoogle</item>
229232
<item name="android:textColor">#757575</item>
230233
</style>
231234

232-
<style name="FirebaseUI.Button.AccountChooser.FacebookButton" parent="FirebaseUI.Button.AccountChooser.BaseButton">
235+
<style name="FirebaseUI.Button.AccountChooser.FacebookButton"
236+
parent="FirebaseUI.Button.AccountChooser.BaseButton">
233237
<item name="icon">@drawable/fui_ic_facebook_white_22dp</item>
234238
<item name="backgroundTint">@color/fui_bgFacebook</item>
235239
<item name="android:textColor">#FFFFFFFF</item>
236240
</style>
237241

238-
<style name="FirebaseUI.Button.AccountChooser.TwitterButton" parent="FirebaseUI.Button.AccountChooser.BaseButton">
242+
<style name="FirebaseUI.Button.AccountChooser.TwitterButton"
243+
parent="FirebaseUI.Button.AccountChooser.BaseButton">
239244
<item name="icon">@drawable/fui_ic_twitter_bird_white_24dp</item>
240245
<item name="backgroundTint">@color/fui_bgTwitter</item>
241246
<item name="android:textColor">#FFFFFFFF</item>
242247
</style>
243248

244-
<style name="FirebaseUI.Button.AccountChooser.GitHubButton" parent="FirebaseUI.Button.AccountChooser.BaseButton">
249+
<style name="FirebaseUI.Button.AccountChooser.GitHubButton"
250+
parent="FirebaseUI.Button.AccountChooser.BaseButton">
245251
<item name="icon">@drawable/fui_ic_github_white_24dp</item>
246252
<item name="backgroundTint">@color/fui_bgGitHub</item>
247253
<item name="android:textColor">#FFFFFFFF</item>
248254
</style>
249255

250-
<style name="FirebaseUI.Button.AccountChooser.EmailButton" parent="FirebaseUI.Button.AccountChooser.BaseButton">
256+
<style name="FirebaseUI.Button.AccountChooser.EmailButton"
257+
parent="FirebaseUI.Button.AccountChooser.BaseButton">
251258
<item name="icon">@drawable/fui_ic_mail_white_24dp</item>
252259
<item name="backgroundTint">@color/fui_bgEmail</item>
253260
<item name="android:textColor">#FFFFFFFF</item>
254261
</style>
255262

256-
<style name="FirebaseUI.Button.AccountChooser.PhoneButton" parent="FirebaseUI.Button.AccountChooser.BaseButton">
263+
<style name="FirebaseUI.Button.AccountChooser.PhoneButton"
264+
parent="FirebaseUI.Button.AccountChooser.BaseButton">
257265
<item name="icon">@drawable/fui_ic_phone_white_24dp</item>
258266
<item name="backgroundTint">@color/fui_bgPhone</item>
259267
<item name="android:textColor">#FFFFFFFF</item>
260268
</style>
261269

262-
<style name="FirebaseUI.Button.AccountChooser.AnonymousButton" parent="FirebaseUI.Button.AccountChooser.BaseButton">
270+
<style name="FirebaseUI.Button.AccountChooser.AnonymousButton"
271+
parent="FirebaseUI.Button.AccountChooser.BaseButton">
263272
<item name="icon">@drawable/fui_ic_anonymous_white_24dp</item>
264273
<item name="backgroundTint">@color/fui_bgAnonymous</item>
265274
<item name="android:textColor">#FFFFFFFF</item>
266275
</style>
267276

268-
<style name="FirebaseUI.Button.AccountChooser.MicrosoftButton" parent="FirebaseUI.Button.AccountChooser.BaseButton">
277+
<style name="FirebaseUI.Button.AccountChooser.MicrosoftButton"
278+
parent="FirebaseUI.Button.AccountChooser.BaseButton">
269279
<item name="icon">@drawable/fui_ic_microsoft_24dp</item>
270280
<item name="backgroundTint">@color/fui_bgMicrosoft</item>
271281
<item name="android:textColor">#FFFFFFFF</item>
272282
</style>
273283

274-
<style name="FirebaseUI.Button.AccountChooser.YahooButton" parent="FirebaseUI.Button.AccountChooser.BaseButton">
284+
<style name="FirebaseUI.Button.AccountChooser.YahooButton"
285+
parent="FirebaseUI.Button.AccountChooser.BaseButton">
275286
<item name="icon">@drawable/fui_ic_yahoo_24dp</item>
276287
<item name="backgroundTint">@color/fui_bgYahoo</item>
277288
<item name="android:textColor">#FFFFFFFF</item>
278289
</style>
279290

280-
<style name="FirebaseUI.Button.AccountChooser.AppleButton" parent="FirebaseUI.Button.AccountChooser.BaseButton">
291+
<style name="FirebaseUI.Button.AccountChooser.AppleButton"
292+
parent="FirebaseUI.Button.AccountChooser.BaseButton">
281293
<item name="icon">@drawable/fui_ic_apple_white_24dp</item>
282294
<item name="backgroundTint">@color/fui_bgApple</item>
283295
<item name="android:textColor">#FFFFFFFF</item>
284296
</style>
285297

286-
<style name="FirebaseUI.TopProgressBar" parent="Widget.MaterialComponents.LinearProgressIndicator">
298+
<style name="FirebaseUI.TopProgressBar"
299+
parent="Widget.MaterialComponents.LinearProgressIndicator">
287300
<item name="android:layout_width">match_parent</item>
288301
<item name="android:layout_height">4dp</item>
289302
<item name="android:indeterminate">true</item>
@@ -300,4 +313,4 @@
300313
<item name="android:textIsSelectable">false</item>
301314
</style>
302315

303-
</resources>
316+
</resources>

0 commit comments

Comments
 (0)