Skip to content

Commit 63234d6

Browse files
authored
Fixed crashing of storage app (#1431)
1 parent ac0d664 commit 63234d6

File tree

5 files changed

+32
-19
lines changed

5 files changed

+32
-19
lines changed

storage/app/src/main/java/com/google/firebase/quickstart/firebasestorage/java/MainActivity.java

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,8 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe
6464

6565
private ActivityMainBinding binding;
6666

67+
private ActivityResultLauncher<String[]> intentLauncher;
68+
6769
@Override
6870
protected void onCreate(Bundle savedInstanceState) {
6971
super.onCreate(savedInstanceState);
@@ -85,6 +87,15 @@ protected void onCreate(Bundle savedInstanceState) {
8587
}
8688
onNewIntent(getIntent());
8789

90+
intentLauncher = registerForActivityResult(
91+
new ActivityResultContracts.OpenDocument(), fileUri -> {
92+
if (fileUri != null) {
93+
uploadFromUri(fileUri);
94+
} else {
95+
Log.w(TAG, "File URI is null");
96+
}
97+
});
98+
8899
// Local broadcast receiver
89100
mBroadcastReceiver = new BroadcastReceiver() {
90101
@Override
@@ -193,14 +204,6 @@ private void launchCamera() {
193204
Log.d(TAG, "launchCamera");
194205

195206
// Pick an image from storage
196-
ActivityResultLauncher<String[]> intentLauncher = registerForActivityResult(
197-
new ActivityResultContracts.OpenDocument(), fileUri -> {
198-
if (fileUri != null) {
199-
uploadFromUri(fileUri);
200-
} else {
201-
Log.w(TAG, "File URI is null");
202-
}
203-
});
204207
intentLauncher.launch(new String[]{ "image/*" });
205208
}
206209

storage/app/src/main/java/com/google/firebase/quickstart/firebasestorage/java/MyBaseTaskService.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,8 +86,9 @@ protected void showProgressNotification(String caption, long completedUnits, lon
8686
*/
8787
protected void showFinishedNotification(String caption, Intent intent, boolean success) {
8888
// Make PendingIntent for notification
89+
int flag = Build.VERSION.SDK_INT >= Build.VERSION_CODES.M ? PendingIntent.FLAG_IMMUTABLE : PendingIntent.FLAG_UPDATE_CURRENT;
8990
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0 /* requestCode */, intent,
90-
PendingIntent.FLAG_UPDATE_CURRENT);
91+
flag);
9192

9293
int icon = success ? R.drawable.ic_check_white_24 : R.drawable.ic_error_white_24dp;
9394

storage/app/src/main/java/com/google/firebase/quickstart/firebasestorage/kotlin/MainActivity.kt

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import android.util.Log
99
import android.view.Menu
1010
import android.view.MenuItem
1111
import android.view.View
12+
import androidx.activity.result.ActivityResultLauncher
1213
import androidx.activity.result.contract.ActivityResultContracts
1314
import androidx.appcompat.app.AlertDialog
1415
import androidx.appcompat.app.AppCompatActivity
@@ -37,6 +38,8 @@ class MainActivity : AppCompatActivity(), View.OnClickListener {
3738

3839
private lateinit var binding: ActivityMainBinding
3940

41+
private lateinit var cameraIntent: ActivityResultLauncher<Array<String>>;
42+
4043
override fun onCreate(savedInstanceState: Bundle?) {
4144
super.onCreate(savedInstanceState)
4245
binding = ActivityMainBinding.inflate(layoutInflater)
@@ -52,6 +55,14 @@ class MainActivity : AppCompatActivity(), View.OnClickListener {
5255
buttonDownload.setOnClickListener(this@MainActivity)
5356
}
5457

58+
cameraIntent = registerForActivityResult(ActivityResultContracts.OpenDocument()) { fileUri ->
59+
if (fileUri != null) {
60+
uploadFromUri(fileUri)
61+
} else {
62+
Log.w(TAG, "File URI is null")
63+
}
64+
}
65+
5566
// Local broadcast receiver
5667
broadcastReceiver = object : BroadcastReceiver() {
5768
override fun onReceive(context: Context, intent: Intent) {
@@ -159,14 +170,7 @@ class MainActivity : AppCompatActivity(), View.OnClickListener {
159170
Log.d(TAG, "launchCamera")
160171

161172
// Pick an image from storage
162-
val intentLauncher = registerForActivityResult(ActivityResultContracts.OpenDocument()) { fileUri ->
163-
if (fileUri != null) {
164-
uploadFromUri(fileUri)
165-
} else {
166-
Log.w(TAG, "File URI is null")
167-
}
168-
}
169-
intentLauncher.launch(arrayOf("image/*"))
173+
cameraIntent.launch(arrayOf("image/*"))
170174
}
171175

172176
private fun signInAnonymously() {

storage/app/src/main/java/com/google/firebase/quickstart/firebasestorage/kotlin/MyBaseTaskService.kt

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ import android.app.Service
77
import android.content.Context
88
import android.content.Intent
99
import android.os.Build
10-
import androidx.core.app.NotificationCompat
1110
import android.util.Log
11+
import androidx.core.app.NotificationCompat
1212
import com.google.firebase.quickstart.firebasestorage.R
1313

1414
/**
@@ -79,8 +79,12 @@ abstract class MyBaseTaskService : Service() {
7979
*/
8080
protected fun showFinishedNotification(caption: String, intent: Intent, success: Boolean) {
8181
// Make PendingIntent for notification
82+
83+
// Make PendingIntent for notification
84+
val flag = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
85+
PendingIntent.FLAG_IMMUTABLE else PendingIntent.FLAG_UPDATE_CURRENT
8286
val pendingIntent = PendingIntent.getActivity(this, 0 /* requestCode */, intent,
83-
PendingIntent.FLAG_UPDATE_CURRENT)
87+
flag)
8488

8589
val icon = if (success) R.drawable.ic_check_white_24 else R.drawable.ic_error_white_24dp
8690

storage/gradle.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
# Specifies the JVM arguments used for the daemon process.
1111
# The setting is particularly useful for tweaking memory settings.
1212
org.gradle.jvmargs=-Xmx1536m
13+
android.useAndroidX=true
1314

1415
# When configured, Gradle will run in incubating parallel mode.
1516
# This option should only be used with decoupled projects. More details, visit

0 commit comments

Comments
 (0)