Skip to content

Commit

Permalink
Added Local Music Search 3
Browse files Browse the repository at this point in the history
  • Loading branch information
KaustubhPatange committed Dec 18, 2019
1 parent b236baa commit 4c07d9b
Show file tree
Hide file tree
Showing 65 changed files with 500 additions and 261 deletions.
Binary file modified .gradle/4.6/fileContent/fileContent.lock
Binary file not shown.
Binary file modified .gradle/4.6/fileHashes/fileHashes.bin
Binary file not shown.
Binary file modified .gradle/4.6/fileHashes/fileHashes.lock
Binary file not shown.
Binary file modified .gradle/4.6/javaCompile/classAnalysis.bin
Binary file not shown.
Binary file modified .gradle/4.6/javaCompile/javaCompile.lock
Binary file not shown.
Binary file modified .gradle/4.6/javaCompile/taskHistory.bin
Binary file not shown.
Binary file modified .gradle/4.6/taskHistory/taskHistory.bin
Binary file not shown.
Binary file modified .gradle/4.6/taskHistory/taskHistory.lock
Binary file not shown.
Binary file modified .gradle/buildOutputCleanup/buildOutputCleanup.lock
Binary file not shown.
Binary file modified .idea/caches/build_file_checksums.ser
Binary file not shown.
259 changes: 112 additions & 147 deletions .idea/workspace.xml

Large diffs are not rendered by default.

Empty file modified TODO.txt
100644 → 100755
Empty file.
Empty file modified app/src/main/java/com/kpstv/youtube/AppInterface.java
100644 → 100755
Empty file.
Empty file modified app/src/main/java/com/kpstv/youtube/EditTagActivity.java
100644 → 100755
Empty file.
41 changes: 11 additions & 30 deletions app/src/main/java/com/kpstv/youtube/adapters/LocalAdapter.java
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,11 @@ public LocalHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
return new LocalHolder(v);
}

@Override
public int getItemViewType(int position) {
return position;
}

@SuppressLint("StaticFieldLeak")
@Override
public void onBindViewHolder(@NonNull LocalHolder localHolder, int i) {
Expand All @@ -72,6 +77,7 @@ public void onBindViewHolder(@NonNull LocalHolder localHolder, int i) {
localHolder.aSongText.setText("1 song");
else localHolder.aSongText.setText(model.getSongList().size()+" songs");


localHolder.cardView.setOnClickListener(view -> singleClickListener.onSingleClick(view,model,i));

localHolder.moreButton.setOnClickListener(view -> longClickListener.onLongClick(view,model,i));
Expand All @@ -90,10 +96,11 @@ protected void onPostExecute(Void aVoid) {
MediaMetadataRetriever mmr = new MediaMetadataRetriever();
mmr.setDataSource(context, Uri.fromFile(f));

byte [] data = mmr.getEmbeddedPicture();
byte[] data = mmr.getEmbeddedPicture();

if (data!=null) {
Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);

localHolder.aImage.setImageBitmap(bitmap);
Palette.from(bitmap).generate(palette -> {
int color = palette.getVibrantColor(context.getResources().getColor(R.color.background));
Expand All @@ -105,14 +112,12 @@ protected void onPostExecute(Void aVoid) {
}

}
return;
}

if (imageUri!=null) {
}else if (imageUri!=null) {
Glide.with(context).asBitmap().load(imageUri).into(new CustomTarget<Bitmap>() {
@Override
public void onResourceReady(@NonNull Bitmap resource, @Nullable Transition<? super Bitmap> transition) {
localHolder.aImage.setImageBitmap(resource);

Palette.from(resource).generate(palette -> {
int color = palette.getVibrantColor(context.getResources().getColor(R.color.background));
localHolder.cardView.setBackgroundTintList(ColorStateList.valueOf(color));
Expand All @@ -134,31 +139,7 @@ protected Void doInBackground(Void... voids) {
if (isAlbumAdapter) {
return null;
}
String data = YTutils.readContent(context,"artistImages.csv");
if (data!=null && !data.isEmpty()) {
if (data.contains(model.getTitle().trim()+"$")) {
String[] items = data.split("\n|\r");
for (String item : items) {
if (item.isEmpty()) continue;
if (item.contains(model.getTitle().trim()+"$")) {
imageUri = item.split("\\$")[1];
Log.e(TAG, model.getTitle().trim()+": Loading data locally - "+imageUri);
return null;
}
}
}else {
Log.e(TAG, model.getTitle()+": In first loop" );
ArtistImage artistImage = new ArtistImage(model.getTitle().trim());
imageUri = artistImage.getImageUri();
YTutils.writeContent(context,"artistImages.csv",data+
model.getTitle().trim()+"$"+imageUri);
}
}else {
Log.e(TAG, model.getTitle()+": In second loop" );
ArtistImage artistImage = new ArtistImage(model.getTitle().trim());
imageUri = artistImage.getImageUri();
YTutils.writeContent(context,"artistImages.csv",model.getTitle().trim()+"$"+imageUri);
}
imageUri = YTutils.getLocalArtworkImage(context,model);
return null;
}
}.execute();
Expand Down
Empty file modified app/src/main/java/com/kpstv/youtube/adapters/OFAdapter.java
100644 → 100755
Empty file.
Empty file.
Empty file.
83 changes: 76 additions & 7 deletions app/src/main/java/com/kpstv/youtube/fragments/LocalSearchFragment.java
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,8 @@ public LocalSearchFragment() {}
AsyncTask<Void,Void,Void> searchTask;
OFAdapter ofAdapter; LocalAdapter localAdapter,albumAdapter;

private static final String TAG = "LocalSearchFragment";

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
if (v==null) {
Expand Down Expand Up @@ -134,18 +136,18 @@ void PlayMusic_Offline(int position) {

class SearchTask extends AsyncTask<Void,Void,Void> {
String text;
ArrayList<String> albumCount;
ArrayList<ArrayList<String>> albumValueCountList;
ArrayList<String> artistKey;
ArrayList<String> albumKey;
ArrayList<ArrayList<String>> artistValueList;
ArrayList<ArrayList<String>> albumValueList;
public SearchTask(String text) {
this.text = text;
albumCount = new ArrayList<>();
albumKey = new ArrayList<>();
albumValueList = new ArrayList<>();
artistKey = new ArrayList<>();
artistValueList = new ArrayList<>();
albumValueCountList = new ArrayList<>();
}

@Override
Expand Down Expand Up @@ -218,16 +220,21 @@ protected Void doInBackground(Void... voids) {
String artist = line.split("\\|")[1];
String album = line.split("\\|")[2];
if (artist.toLowerCase().contains(text.toLowerCase())) {
if (!albumCount.contains(album))
albumCount.add(album);
/* if (!albumCount.contains(album))
albumCount.add(album);*/
if (artistKey.contains(artist)) {
int index = artistKey.indexOf(artist);
artistValueList.get(index).add(line);
if (!albumValueCountList.get(index).contains(album))
albumValueCountList.get(index).add(album);
}else {
artistKey.add(artist);
ArrayList<String> strings = new ArrayList<>();
strings.add(line);
artistValueList.add(strings);
ArrayList<String> albums = new ArrayList<>();
albums.add(album);
albumValueCountList.add(albums);
}
}

Expand All @@ -254,7 +261,7 @@ protected Void doInBackground(Void... voids) {
Log.e("LocalSearchFragment", "doInBackground: "+albumModels.size() );
if (artistKey.size()>0) {
for (int i=0;i<artistKey.size();i++) {
artistModels.add(new LocalModel(artistKey.get(i),artistValueList.get(i),albumCount.size()));
artistModels.add(new LocalModel(artistKey.get(i),artistValueList.get(i), albumValueCountList.get(i).size()));
}
}
}
Expand All @@ -268,17 +275,79 @@ void setAdapterClicks2() {


albumAdapter.setLongClickListener((view, model, position) -> {

PopupMenu popupMenu = new PopupMenu(activity,view);
popupMenu.inflate(R.menu.local_popup_menu3);
popupMenu.setOnMenuItemClickListener(menuItem -> {
switch (menuItem.getItemId()){
case R.id.action_play:
albumPlay(model);
break;
case R.id.action_add_queue:
if (MainActivity.yturls.isEmpty()) {
albumPlay(model);
}else {
AddItems(model);
}
break;
}
return true;
});
popupMenu.show();
});
}

void AddItems(LocalModel localModel) {
boolean someThingAdded=false;
for (String line : localModel.getSongList()) {
if (line.isEmpty()) continue;
String filePath = line.split("\\|")[0];
if (!MainActivity.videoID.equals(filePath)) {
if (!MainActivity.yturls.contains(filePath))
{
someThingAdded=true;
MainActivity.yturls.add(filePath);
}
}
}
if (someThingAdded)
Toast.makeText(activity, "Current playlist updated!", Toast.LENGTH_SHORT).show();
else
Toast.makeText(activity, "No new song to add!", Toast.LENGTH_SHORT).show();
}

void albumPlay(LocalModel localModel) {
ArrayList<String> urls = new ArrayList<>();
for (String path : localModel.getSongList()) {
if (path.isEmpty()) continue;
urls.add(path.split("\\|")[0]);
}
MainActivity.PlayVideo_Local(YTutils.convertListToArrayMethod(urls));
}

void setAdapterClicks1() {
localAdapter.setSingleClickListener((view, model,position) -> {
openClick(model);
});

localAdapter.setLongClickListener((view, model, position) -> {

PopupMenu popupMenu = new PopupMenu(activity,view);
popupMenu.inflate(R.menu.local_popup_menu3);
popupMenu.setOnMenuItemClickListener(menuItem -> {
switch (menuItem.getItemId()){
case R.id.action_play:
albumPlay(model);
break;
case R.id.action_add_queue:
if (MainActivity.yturls.isEmpty()) {
albumPlay(model);
}else {
AddItems(model);
}
break;
}
return true;
});
popupMenu.show();
});
}

Expand Down
Loading

0 comments on commit 4c07d9b

Please sign in to comment.