import
android.app.ProgressDialog;
import
android.content.ContentResolver;
import
android.content.Intent;
import
android.net.Uri;
import
android.os.Bundle;
import
android.view.View;
import
android.webkit.MimeTypeMap;
import
android.widget.Button;
import
android.widget.Toast;
import
androidx.annotation.NonNull;
import
androidx.annotation.Nullable;
import
androidx.appcompat.app.AppCompatActivity;
import
com.google.android.gms.tasks.OnFailureListener;
import
com.google.android.gms.tasks.OnSuccessListener;
import
com.google.android.gms.tasks.Task;
import
com.google.firebase.database.DatabaseReference;
import
com.google.firebase.database.FirebaseDatabase;
import
com.google.firebase.storage.FirebaseStorage;
import
com.google.firebase.storage.OnProgressListener;
import
com.google.firebase.storage.StorageReference;
import
com.google.firebase.storage.UploadTask;
import
java.util.HashMap;
public
class
MainActivity
extends
AppCompatActivity {
Button uploadv;
ProgressDialog progressDialog;
@Override
protected
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
uploadv = findViewById(R.id.uploadv);
uploadv.setOnClickListener(
new
View.OnClickListener() {
@Override
public
void
onClick(View v) {
progressDialog =
new
ProgressDialog(MainActivity.
this
);
choosevideo();
}
});
}
private
void
choosevideo() {
Intent intent =
new
Intent();
intent.setType(
"video/*"
);
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(intent,
5
);
}
Uri videouri;
protected
void
onActivityResult(
int
requestCode,
int
resultCode,
@Nullable
Intent data) {
super
.onActivityResult(requestCode, resultCode, data);
if
(requestCode ==
5
&& resultCode == RESULT_OK && data !=
null
&& data.getData() !=
null
) {
videouri = data.getData();
progressDialog.setTitle(
"Uploading..."
);
progressDialog.show();
uploadvideo();
}
}
private
String getfiletype(Uri videouri) {
ContentResolver r = getContentResolver();
MimeTypeMap mimeTypeMap = MimeTypeMap.getSingleton();
return
mimeTypeMap.getExtensionFromMimeType(r.getType(videouri));
}
private
void
uploadvideo() {
if
(videouri !=
null
) {
final
StorageReference reference = FirebaseStorage.getInstance().getReference(
"Files/"
+ System.currentTimeMillis() +
"."
+ getfiletype(videouri));
reference.putFile(videouri).addOnSuccessListener(
new
OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public
void
onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
Task<Uri> uriTask = taskSnapshot.getStorage().getDownloadUrl();
while
(!uriTask.isSuccessful()) ;
String downloadUri = uriTask.getResult().toString();
DatabaseReference reference1 = FirebaseDatabase.getInstance().getReference(
"Video"
);
HashMap<String, String> map =
new
HashMap<>();
map.put(
"videolink"
, downloadUri);
reference1.child(
""
+ System.currentTimeMillis()).setValue(map);
progressDialog.dismiss();
Toast.makeText(MainActivity.
this
,
"Video Uploaded!!"
, Toast.LENGTH_SHORT).show();
}
}).addOnFailureListener(
new
OnFailureListener() {
@Override
public
void
onFailure(
@NonNull
Exception e) {
progressDialog.dismiss();
Toast.makeText(MainActivity.
this
,
"Failed "
+ 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());
progressDialog.setMessage(
"Uploaded "
+ (
int
) progress +
"%"
);
}
});
}
}
}