ainActivity() {
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mButtonUpload.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mUploadTask != null && mUploadTask.isInProgress()) {
Toast.makeText(MainActivity.this, "Upload in progress", Toast.LENGTH_SHORT).show();
} else {
uploadVideoFile();
uploadImageFile();
Upload upload = new Upload(mEditTextFileName.getText().toString().trim(), DownloadVideoUri.toString(), DownloadImageUri.toString());
mDatabaseRef.push().setValue(upload);
}
});
mTextViewShowUploads.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
openImagesActivity();
}
});
}
private void uploadImageFile() {
//Imgae upload
if (mImageUri != null) {
Log.d(TAG, "2");
mImageStorageRef = mStorageRef.child("Image/" + mEditTextFileName.getText().toString().trim());
mImageStorageRef.putFile(mImageUri).continueWithTask(new Continuation<UploadTask.TaskSnapshot, Task<Uri>>() {
@Override
public Task<Uri> then(@NonNull Task<UploadTask.TaskSnapshot> task) throws Exception {
Log.d(TAG, "then: 1");
if (!task.isSuccessful()) {
throw task.getException();
}
return mImageStorageRef.getDownloadUrl();
}
}).addOnCompleteListener(new OnCompleteListener<Uri>() {
@Override
public void onComplete(@NonNull Task<Uri> task) {
if (task.isSuccessful()) {
Uri downloadUri = task.getResult();
Log.e(TAG, "then: " + downloadUri.toString());
DownloadImageUri = Uri.parse(getFileExtension(mImageUri));
} else {
Toast.makeText(MainActivity.this, "upload failed: " + task.getException().getMessage(), Toast.LENGTH_SHORT).show();
Log.d(TAG, "faile ");
}
}
});
}
}
private void uploadVideoFile() {
//Video upload
if (mVideoUri != null) {
Log.d(TAG, "uploadVideoFile: " + mVideoUri);
mVideoStorageRef = mStorageRef.child("Video/" + mEditTextFileName.getText().toString().trim());
mVideoStorageRef.putFile(mVideoUri).continueWithTask(new Continuation<UploadTask.TaskSnapshot, Task<Uri>>() {
@Override
public Task<Uri> then(@NonNull Task<UploadTask.TaskSnapshot> task) throws Exception {
if (!task.isSuccessful()) {
throw task.getException();
}
return mVideoStorageRef.getDownloadUrl();
}
}).addOnCompleteListener(new OnCompleteListener<Uri>() {
@Override
public void onComplete(@NonNull Task<Uri> task) {
if (task.isSuccessful()) {
Uri downloadVideoUri = task.getResult();
Log.e("TAG", "then: " + downloadVideoUri.toString());
Toast.makeText(MainActivity.this, "upload Video success", Toast.LENGTH_SHORT).show();
DownloadVideoUri = downloadVideoUri.toString();
} else {
Toast.makeText(MainActivity.this, "upload failed: " + task.getException().getMessage(), Toast.LENGTH_SHORT).show();
}
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Toast.makeText(MainActivity.this, e.getMessage(), Toast.LENGTH_SHORT).show();
}
});
// .addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() {
// @Override
// public void onProgress(UploadTask.TaskSnapshot taskSnapshot) {
// double progress = (100.0 * taskSnapshot.getBytesTransferred() / taskSnapshot.getTotalByteCount());
// mProgressBar.setProgress((int) progress);
// }
// });
} else {
Toast.makeText(this, "No file selected", Toast.LENGTH_SHORT).show();
Log.d(TAG, "faile ");
}
}
private void openFileChooser() {
Intent intent = new Intent();
intent.setType("video/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(intent, PICK_VIDEO_REQUEST);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (resultCode) {
case Activity.RESULT_OK:
switch (requestCode) {
case PICK_VIDEO_REQUEST:
if (data.getData() != null) {
mVideoUri = data.getData();
mVideoView.setVideoURI(mVideoUri);
videoname = getFileName(mVideoUri);
mVideoView.start();
}
break;
case PICK_IMAGE_REQUEST:
if (data.getData() != null) {
mImageUri = data.getData();
Log.d(TAG, "mImageUri: " + mImageUri);
Picasso.with(this).load(mImageUri).into(mImageView);
}
}
}
}
public String getFileName(Uri uri) {
String result = null;
if (uri.getScheme().equals("content")) {
Cursor cursor = getContentResolver().query(uri, null, null, null, null);
try {
if (cursor != null && cursor.moveToFirst()) {
result = cursor.getString(cursor.getColumnIndex(OpenableColumns.DISPLAY_NAME));
}
} finally {
cursor.close();
}
}
if (result == null) {
result = uri.getPath();
int cut = result.lastIndexOf('/');
if (cut != -1) {
result = result.substring(cut + 1);
}
}
return result;
}
private void openImagesActivity() {
Intent intent = new Intent(this, VideosActivity.class);
startActivity(intent);
}
}
지금 코드를 이런식으로 짜서 파이어베이스 스토리지랑 데이터베이스에 저장을 하려고 하는데 자꾸
DownloadVideoUri, DownloadImageUri 에서 null이 발생하는데 어떻게 수정해야 할까요?? ㅠㅠ