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() {
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() {
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();
}
});
}
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);
}
}