Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package id.enibbe.client.features.uploadaudio;
- import android.content.Context;
- import android.content.Intent;
- import android.database.Cursor;
- import android.media.AudioManager;
- import android.media.Image;
- import android.media.MediaPlayer;
- import android.net.Uri;
- import android.os.Build;
- import android.os.Bundle;
- import android.provider.DocumentsContract;
- import android.provider.MediaStore;
- import android.support.v7.app.AppCompatActivity;
- import android.support.v7.widget.Toolbar;
- import android.util.Log;
- import android.view.MenuItem;
- import android.view.View;
- import android.widget.Button;
- import android.widget.ImageView;
- import android.widget.MediaController;
- import android.widget.RelativeLayout;
- import android.widget.TextView;
- import android.widget.Toast;
- import android.widget.VideoView;
- import com.victor.loading.rotate.RotateLoading;
- import java.io.File;
- import java.io.FileNotFoundException;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.OutputStream;
- import java.net.URI;
- import java.net.URISyntaxException;
- import java.util.List;
- import butterknife.BindView;
- import butterknife.ButterKnife;
- import id.enibbe.client.R;
- import id.enibbe.client.features._common.model.CommonResponse;
- import id.enibbe.client.ui.CommonDialogs;
- import id.enibbe.client.utils.Utils;
- public class UploadAudioActivity extends AppCompatActivity implements IUploadAudioView {
- @BindView(R.id.submit_button)
- Button mSubmitButton;
- @BindView(R.id.browse_button)
- Button mBrowseButton;
- @BindView(R.id.preview_image)
- ImageView audioPreview;
- @BindView(R.id.filepath_text)
- TextView mPathText;
- // @BindView(R.id.capture_button)
- // Button mCaptureButton;
- @BindView(R.id.loading_indicator)
- RelativeLayout mLoadingIndicator;
- @BindView(R.id.base_layout)
- RelativeLayout mBase;
- @BindView(R.id.toolbar)
- Toolbar mToolbar;
- @BindView(R.id.rotateloading)
- RotateLoading rotateLoading;
- @BindView(R.id.percentage_text)
- TextView percentageText;
- private static final int PICK_AUDIO = 110;
- Uri mUri;
- Context mContext;
- String mFilepath;
- private static final int REQUEST_CODE_SELECT_AUDIO_FILE = 1;
- protected static final int REQ_CODE_PICK_SOUNDFILE = 0;
- private Uri audioFileUri = null;
- private MediaPlayer audioPlayer = null;
- UploadAudioPresenter presenter;
- @Override
- public boolean onOptionsItemSelected(final MenuItem item) {
- int id = item.getItemId();
- if (id == android.R.id.home) {
- finish();
- }
- return super.onOptionsItemSelected(item);
- }
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_upload_audio);
- ButterKnife.bind(this);
- mToolbar.setTitleTextColor(getResources().getColor(R.color.colorAccent));
- setSupportActionBar(mToolbar);
- getSupportActionBar().setDisplayHomeAsUpEnabled(true);
- mContext = this;
- presenter = new UploadAudioPresenter(this);
- this.setupViews();
- }
- @Override
- protected void onActivityResult(int requestCode, int resultCode, Intent data) {
- super.onActivityResult(requestCode, resultCode, data);
- if (requestCode == REQ_CODE_PICK_SOUNDFILE){
- if (resultCode == RESULT_OK) {
- if ((data != null) && (data.getData() != null)){
- mUri = data.getData();
- String id = data.getData().toString();
- try {
- InputStream inputStream = getContentResolver().openInputStream(mUri);
- File file = new File(id);
- writeFile(inputStream, file);
- String filePath = mUri.getPath();
- filePath.replaceAll("(^/root)", "");
- mFilepath =filePath.replaceAll("(^/root)", "");
- Log.d("makans", "onActivityResult: "+data.getData());
- audioPreview.setImageDrawable(getResources().getDrawable(R.drawable.audio_wave));
- mPathText.setText(mFilepath);
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- }
- }
- }
- }
- }
- void writeFile(InputStream in, File file) {
- OutputStream out = null;
- try {
- out = new FileOutputStream(file);
- byte[] buf = new byte[1024];
- int len;
- while((len=in.read(buf))>0){
- out.write(buf,0,len);
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- finally {
- try {
- if ( out != null ) {
- out.close();
- }
- in.close();
- } catch ( IOException e ) {
- e.printStackTrace();
- }
- }
- }
- public String getRealPathFromURI(Context context, Uri contentUri) {
- Cursor cursor = null;
- try {
- String[] proj = { MediaStore.Images.Media.DATA };
- cursor = context.getContentResolver().query(contentUri, proj, null, null, null);
- int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
- cursor.moveToFirst();
- return cursor.getString(column_index);
- } finally {
- if (cursor != null) {
- cursor.close();
- }
- }
- }
- @Override
- public void setupViews() {
- mSubmitButton.setOnClickListener(v -> {
- if (mFilepath != null) {
- presenter.uploadAudio(mFilepath);
- } else {
- Toast.makeText(mContext, "Silahkan pilih Audio", Toast.LENGTH_LONG).show();
- }
- });
- mBrowseButton.setOnClickListener(v -> selectAudioFile());
- //mCaptureButton.setOnClickListener(view -> presenter.recordVideo(this, PICK_AUDIO));
- }
- // private void initAudioPlayer()
- // {
- // try {
- // if(audioPlayer == null)
- // {
- // audioPlayer = new MediaPlayer();
- //
- // String audioFilePath = audioFilePathEditor.getText().toString().trim();
- //
- // Log.d(TAG_PLAY_AUDIO, audioFilePath);
- //
- // if(audioFilePath.toLowerCase().startsWith("http://"))
- // {
- // // Web audio from a url is stream music.
- // audioPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
- // // Play audio from a url.
- // audioPlayer.setDataSource(audioFilePath);
- // }else
- // {
- // if(audioFileUri != null)
- // {
- // // Play audio from selected local file.
- // audioPlayer.setDataSource(getApplicationContext(), audioFileUri);
- // }
- // }
- // audioPlayer.prepare();
- // }
- // }catch(IOException ex)
- // {
- // Log.e(TAG_PLAY_AUDIO, ex.getMessage(), ex);
- // }
- // }
- private void selectAudioFile()
- {
- Intent intent;
- intent = new Intent();
- intent.setAction(Intent.ACTION_GET_CONTENT);
- intent.setType("audio/mpeg");
- startActivityForResult(Intent.createChooser(intent, "Choose Audio"), REQ_CODE_PICK_SOUNDFILE);
- }
- @Override
- public void showLoadingIndicator() {
- percentageText.setVisibility(View.VISIBLE);
- mLoadingIndicator.setVisibility(View.VISIBLE);
- mBase.setVisibility(View.GONE);
- rotateLoading.start();
- }
- @Override
- public void hideLoadingIndicator() {
- percentageText.setText("");
- percentageText.setVisibility(View.GONE);
- mLoadingIndicator.setVisibility(View.GONE);
- mBase.setVisibility(View.VISIBLE);
- rotateLoading.stop();
- }
- @Override
- public void onUploadSuccess(CommonResponse response) {
- CommonDialogs.commonSuccess(this, response.getRm(), new CommonDialogs.Listener() {
- @Override
- public void onClicked() {
- finish();
- }
- @Override
- public void onTokeninvalid() {
- }
- });
- }
- @Override
- public void onUploadFailed(String message) {
- CommonDialogs.commonWarning(this, message, new CommonDialogs.Listener() {
- @Override
- public void onClicked() {
- finish();
- }
- @Override
- public void onTokeninvalid() {
- Utils.logout(UploadAudioActivity.this);
- }
- });
- }
- @Override
- public void onNetworkError(String cause) {
- Log.e("list", cause);
- CommonDialogs.endPointError(this, new CommonDialogs.Listener() {
- @Override
- public void onClicked() {
- finish();
- }
- @Override
- public void onTokeninvalid() {
- }
- });
- }
- @Override
- public void onProgress(int percent) {
- percentageText.setText(""+percent+"%");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment