Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.micezipper.musicrecov;
- import java.io.File;
- import java.lang.reflect.Array;
- import java.nio.charset.Charset;
- import java.util.ArrayList;
- import java.util.Arrays;
- import org.jaudiotagger.audio.AudioFile;
- import org.jaudiotagger.audio.AudioFileIO;
- import org.jaudiotagger.audio.exceptions.CannotReadException;
- import org.jaudiotagger.audio.exceptions.InvalidAudioFrameException;
- import org.jaudiotagger.tag.FieldKey;
- import org.jaudiotagger.tag.Tag;
- import android.app.Activity;
- import android.os.Bundle;
- import android.os.Environment;
- import android.util.Log;
- import android.view.Menu;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.ArrayAdapter;
- import android.widget.Button;
- import android.widget.EditText;
- import android.widget.ListView;
- public class MainActivity extends Activity implements OnClickListener{
- ListView lstData;
- EditText txtDest;
- ArrayList<String> lstDataValues;
- ArrayAdapter<String> aa;
- private boolean started = true;
- private File[] files = (File[]) Array.newInstance(File.class, 10);
- private String strAddress = "";
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- final ListView lstData = (ListView)findViewById(R.id.lstData);
- final EditText txtDest = (EditText)findViewById(R.id.txtDestination);
- final Button btnScan = (Button)findViewById(R.id.btnScan);
- final Button btnConvert = (Button)findViewById(R.id.btnConvert);
- final ArrayList<String> lstDataValues = new ArrayList<String>();
- final ArrayAdapter<String> aa = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, lstDataValues);
- this.lstData = lstData;
- this.txtDest = txtDest;
- this.lstDataValues = lstDataValues;
- this.aa = aa;
- if (!Environment.getExternalStorageState().equals(
- Environment.MEDIA_MOUNTED)) {
- Log.d("myLogs", "SD-карта не доступна: " + Environment.getExternalStorageState());
- return;
- }
- btnScan.setOnClickListener(this);
- btnConvert.setOnClickListener(this);
- setContentView(R.layout.activity_main);
- }
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- // Inflate the menu; this adds items to the action bar if it is present.
- getMenuInflater().inflate(R.menu.activity_main, menu);
- return true;
- }
- @Override
- public void onClick(View v) {
- switch(v.getId()){
- case R.id.btnScan:
- btnScanAction(txtDest, lstData, lstDataValues, aa);
- break;
- case R.id.btnConvert:
- btnConvertAction(txtDest, lstData, lstDataValues, aa);
- break;
- }
- }
- public void btnScanAction(EditText txtAddress, ListView lstData, ArrayList<String> lstDataValues, ArrayAdapter<String> aa){
- strAddress = txtAddress.getText().toString();
- analize(txtAddress, lstData, lstDataValues, aa);
- }
- private void btnConvertAction(EditText txtAddress, ListView lstData, ArrayList<String> lstDataValues, ArrayAdapter<String> aa){
- strAddress = txtAddress.getText().toString();
- convert();
- }
- private void convert(){
- }
- private void updateFilesArray(int offset) {
- File[] temp = Arrays.copyOf(files, files.length - offset);
- files = null;
- files = Arrays.copyOf(temp, temp.length);
- }
- private void analize(EditText txtAddress, ListView lstData, ArrayList<String> lstDataValues, ArrayAdapter<String> aa) {
- files = new File(strAddress).listFiles();
- int offset = 0;
- for (int i = 0; i < files.length; i++) {
- try {
- if (offset > 0) {
- files[i - offset] = files[i];
- files[i] = null;
- }
- AudioFile music = AudioFileIO.read(files[i - offset]);
- Tag tag = music.getTag();
- if (tag != null) {
- String artist = tag.getFirst(FieldKey.ARTIST);
- String title = new String(tag.getFirst(FieldKey.TITLE).getBytes(Charset.forName("cp1252")), Charset.forName("UTF-8"));
- //title = title.substring(0, title.length() - 1);
- lstDataValues.add(0, artist + " - " + title);
- aa.notifyDataSetChanged();
- //progress = i / files.length;
- } else {
- offset++;
- }
- } catch (Exception ex) {
- if ((ex instanceof CannotReadException) | (ex instanceof InvalidAudioFrameException)) {
- offset++;
- } else {
- }
- }
- }
- updateFilesArray(offset);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment