Skip to content

Commit 1a3ea5c

Browse files
committed
feat: added suggestted playlist items to be added on eve notification
1 parent 8e12885 commit 1a3ea5c

File tree

6 files changed

+187
-18
lines changed

6 files changed

+187
-18
lines changed

app/src/main/java/any/audio/Activity/EveWisherThemedActivity.java

Lines changed: 69 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,43 @@
11
package any.audio.Activity;
22

3+
import android.content.Intent;
34
import android.os.Bundle;
45
import android.support.v7.app.AppCompatActivity;
6+
import android.support.v7.widget.GridLayout;
7+
import android.util.Log;
58
import android.view.View;
69
import android.view.Window;
10+
import android.widget.GridView;
711
import android.widget.ImageView;
812
import android.widget.TextView;
13+
import android.widget.Toast;
914

1015
import com.squareup.picasso.Picasso;
1116

17+
import java.util.ArrayList;
18+
19+
import any.audio.Adapters.EveRecommendationGridAdapter;
1220
import any.audio.Managers.FontManager;
21+
import any.audio.Models.PlaylistItem;
1322
import any.audio.R;
23+
import any.audio.SharedPreferences.SharedPrefrenceUtils;
24+
import any.audio.helpers.QueueManager;
25+
import any.audio.helpers.Segmentor;
1426

1527
public class EveWisherThemedActivity extends AppCompatActivity {
1628

29+
String mTitleBuffer;
30+
String mArtistBuffer;
31+
String mVideoIdBuffer;
32+
String mYoutubeIdBuffer;
33+
1734
TextView eveTitle;
1835
TextView eveMessage;
19-
ImageView evePic;
36+
TextView eveSuggestionAddToQueueBtn;
37+
GridView gridLayout;
2038
TextView cancelEveDialog;
39+
private EveRecommendationGridAdapter gridLayoutAdapter;
40+
private ArrayList<PlaylistItem> items;
2141

2242

2343
@Override
@@ -30,21 +50,67 @@ protected void onCreate(Bundle savedInstanceState) {
3050
Bundle bundle = getIntent().getExtras();
3151
String eve_msg = bundle.getString("message");
3252
String title = bundle.getString("title");
33-
53+
collectSuggestions(bundle);
3454
eveTitle = (TextView) findViewById(R.id.eveCaption);
3555
eveMessage = (TextView) findViewById(R.id.eveMessage);
56+
eveSuggestionAddToQueueBtn = (TextView) findViewById(R.id.eveAddToQueue);
3657
cancelEveDialog = (TextView) findViewById(R.id.cancelEveDialog);
37-
58+
gridLayout = (GridView) findViewById(R.id.eveSuggestionsGrid);
59+
gridLayout.setNumColumns(SharedPrefrenceUtils.getInstance(this).getCols());
3860
eveMessage.setText(eve_msg);
3961
eveTitle.setText(title);
4062
cancelEveDialog.setTypeface(FontManager.getInstance(this).getTypeFace(FontManager.FONT_MATERIAL));
63+
4164
cancelEveDialog.setOnClickListener(new View.OnClickListener() {
4265
@Override
4366
public void onClick(View view) {
4467
finish();
4568
}
4669
});
4770

71+
eveSuggestionAddToQueueBtn.setOnClickListener(new View.OnClickListener() {
72+
@Override
73+
public void onClick(View view) {
74+
appendQueueItems();
75+
Toast.makeText(EveWisherThemedActivity.this,"Added Items To Your Queue",Toast.LENGTH_SHORT).show();
76+
startActivity(new Intent(EveWisherThemedActivity.this,AnyAudioActivity.class));
77+
78+
finish();
79+
}
80+
});
81+
82+
gridLayoutAdapter = EveRecommendationGridAdapter.getInstance(this);
83+
gridLayoutAdapter.setSuggestionsList(items);
84+
gridLayout.setAdapter(gridLayoutAdapter);
85+
86+
}
87+
88+
private void appendQueueItems() {
89+
90+
for(PlaylistItem i:items){
91+
QueueManager.getInstance(this).pushQueueItem(i,false);
92+
}
93+
94+
}
95+
96+
private void collectSuggestions(Bundle bundle) {
97+
98+
items = new ArrayList<>();
99+
100+
try {
101+
102+
ArrayList<String> videoTitlesBuffer = new Segmentor().getParts(mTitleBuffer = bundle.getString("vtlts"), '#');
103+
ArrayList<String> videoIds = new Segmentor().getParts(mVideoIdBuffer = bundle.getString("vids"), '#');
104+
ArrayList<String> yids = new Segmentor().getParts(mYoutubeIdBuffer = bundle.getString("yids"), '#');
105+
ArrayList<String> uploaders = new Segmentor().getParts(mArtistBuffer = bundle.getString("uploaders"), '#');
106+
107+
for (int i = 0; i < videoIds.size(); i++) {
108+
items.add(new PlaylistItem(videoIds.get(i), yids.get(i), videoTitlesBuffer.get(i), uploaders.get(i)));
109+
}
110+
111+
}catch (Exception e){
112+
Log.d(EveWisherThemedActivity.class.getSimpleName(),"Data Error");
113+
}
48114

49115
}
50116
}

app/src/main/java/any/audio/Adapters/EveRecommendationGridAdapter.java

Lines changed: 76 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,23 @@
11
package any.audio.Adapters;
22

33
import android.content.Context;
4+
import android.view.LayoutInflater;
45
import android.view.View;
56
import android.view.ViewGroup;
67
import android.widget.BaseAdapter;
8+
import android.widget.LinearLayout;
9+
import android.widget.RelativeLayout;
10+
import android.widget.TextView;
11+
12+
import com.facebook.drawee.view.SimpleDraweeView;
713

814
import java.util.ArrayList;
915

16+
import any.audio.Models.EveSuggestionsItemModel;
17+
import any.audio.Models.PlaylistItem;
18+
import any.audio.R;
19+
import any.audio.SharedPreferences.SharedPrefrenceUtils;
20+
1021
/**
1122
* Created by Ankit on 2/16/2017.
1223
*/
@@ -16,21 +27,23 @@ public class EveRecommendationGridAdapter extends BaseAdapter {
1627
private static Context context;
1728

1829
private static EveRecommendationGridAdapter mInstance;
19-
30+
private ArrayList<EveSuggestionsItemModel> suggestionsItemModels;
2031
public EveRecommendationGridAdapter(Context context) {
2132
this.context = context;
33+
suggestionsItemModels = new ArrayList<>();
2234
}
2335

2436
public static EveRecommendationGridAdapter getInstance(Context context) {
2537
if (mInstance == null) {
2638
mInstance = new EveRecommendationGridAdapter(context);
39+
2740
}
2841
return mInstance;
2942
}
3043

3144
@Override
3245
public int getCount() {
33-
return 0;
46+
return suggestionsItemModels.size();
3447
}
3548

3649
@Override
@@ -44,8 +57,67 @@ public long getItemId(int i) {
4457
}
4558

4659
@Override
47-
public View getView(int i, View view, ViewGroup viewGroup) {
48-
return null;
60+
public View getView(int position, View convertView, ViewGroup container) {
61+
62+
EveSuggestionsViewHolder viewHolder=null;
63+
64+
if(convertView==null){
65+
66+
viewHolder = new EveSuggestionsViewHolder();
67+
convertView = LayoutInflater.from(context).inflate(R.layout.eve_recommendation_item_layout,container,false);
68+
viewHolder.thumbnail = (SimpleDraweeView) convertView.findViewById(R.id.eveItemThumbnail);
69+
viewHolder.title = (TextView) convertView.findViewById(R.id.eve_suggestion_item_title);
70+
viewHolder.artist = (TextView) convertView.findViewById(R.id.eve_suggestion_item_artist);
71+
viewHolder.wrapper = (RelativeLayout) convertView.findViewById(R.id.eve_card_top_wrapper);
72+
// size fixations
73+
74+
int widthPx = (int) SharedPrefrenceUtils.getInstance(context).getScreenWidthPx();
75+
int thumbnailHeight = (int) (0.56*widthPx);
76+
LinearLayout.LayoutParams thumbnailParams = new LinearLayout.LayoutParams(widthPx,thumbnailHeight);
77+
viewHolder.wrapper.setLayoutParams(thumbnailParams);
78+
79+
convertView.setTag(viewHolder);
80+
81+
}else{
82+
viewHolder = (EveSuggestionsViewHolder) convertView.getTag();
83+
}
84+
85+
bindViewData(viewHolder,suggestionsItemModels.get(position));
86+
87+
return convertView;
88+
}
89+
90+
private void bindViewData(EveSuggestionsViewHolder viewHolder,EveSuggestionsItemModel data) {
91+
92+
viewHolder.title.setText(data.title);
93+
viewHolder.artist.setText(data.artist);
94+
viewHolder.thumbnail.setImageURI(data.thumbnailUrl);
95+
96+
}
97+
98+
public void setSuggestionsList(ArrayList<PlaylistItem> items) {
99+
100+
for(PlaylistItem item:items){
101+
suggestionsItemModels.add(new EveSuggestionsItemModel(item.getTitle(),item.getUploader(),getImageUrl(item.getYoutubeId())));
102+
}
103+
104+
notifyDataSetChanged();
105+
106+
}
107+
108+
109+
private String getImageUrl(String vid) {
110+
//return "https://i.ytimg.com/vi/kVgKfScL5yk/hqdefault.jpg";
111+
return "https://i.ytimg.com/vi/" + vid + "/hqdefault.jpg"; // additional query params => ?custom=true&w=240&h=256
112+
}
113+
114+
115+
public static class EveSuggestionsViewHolder{
116+
public TextView title;
117+
public TextView artist;
118+
public SimpleDraweeView thumbnail;
119+
public RelativeLayout wrapper;
120+
49121
}
50122

51123
}

app/src/main/java/any/audio/helpers/AnyAudioPushHandler.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,9 +100,19 @@ private void handleEveWisher(Map<String, String> data) {
100100

101101
String eveMessage = data.get("message");
102102
String title = data.get("title");
103+
104+
String sgTitles = data.get("vtlts");
105+
String sgVids = data.get("vids");
106+
String sgYids = data.get("yids");
107+
String sgUploaders = data.get("uploaders");
108+
103109
Intent eveWishIntent = new Intent(context, EveWisherThemedActivity.class);
104110
eveWishIntent.putExtra("message", eveMessage);
105111
eveWishIntent.putExtra("title", title);
112+
eveWishIntent.putExtra("vtlts",sgTitles);
113+
eveWishIntent.putExtra("vids",sgVids);
114+
eveWishIntent.putExtra("yids",sgYids);
115+
eveWishIntent.putExtra("uploaders",sgUploaders);
106116
eveWishIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
107117
showNotification("AnyAudio", "Wishes For You", eveWishIntent);
108118

app/src/main/res/layout/eve_recommendation_item_layout.xml

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
<RelativeLayout android:layout_width="240dp"
2+
<RelativeLayout android:layout_width="wrap_content"
33
android:layout_height="wrap_content"
44
xmlns:fresco="http://schemas.android.com/apk/res-auto"
55
android:visibility="visible"
@@ -13,12 +13,12 @@
1313
android:orientation="vertical">
1414

1515
<RelativeLayout
16-
android:id="@+id/explore_card_top_wrapper"
16+
android:id="@+id/eve_card_top_wrapper"
1717
android:layout_width="match_parent"
1818
android:layout_height="135dp">
1919

2020
<com.facebook.drawee.view.SimpleDraweeView
21-
android:id="@+id/explore_item_thumbnail"
21+
android:id="@+id/eveItemThumbnail"
2222
android:layout_width="match_parent"
2323
android:layout_height="match_parent"
2424
fresco:placeholderImage="@drawable/ok_btn_bg"
@@ -34,28 +34,32 @@
3434
android:layout_below="@+id/explore_card_top_wrapper">
3535

3636
<TextView
37-
android:id="@+id/explore_item_title"
37+
android:id="@+id/eve_suggestion_item_title"
3838
android:layout_width="match_parent"
3939
android:layout_height="wrap_content"
4040
android:layout_toLeftOf="@+id/explore_item_popup_btn"
4141
android:maxLines="1"
4242
android:paddingLeft="14dp"
43-
android:paddingTop="14dp"
43+
android:paddingRight="14dp"
44+
android:paddingTop="10dp"
45+
android:ellipsize="end"
4446
android:text="The Weekend - Party"
4547
android:textColor="@color/AnyAudioGrey224"
4648
android:textSize="14sp"
4749
android:textStyle="bold" />
4850

4951
<TextView
50-
android:id="@+id/explore_item_uploader"
52+
android:id="@+id/eve_suggestion_item_artist"
5153
android:layout_width="match_parent"
5254
android:layout_height="wrap_content"
53-
android:layout_below="@+id/explore_item_title"
55+
android:layout_below="@+id/eve_suggestion_item_title"
5456
android:layout_toLeftOf="@+id/explore_item_download_btn"
5557
android:maxLines="1"
5658
android:paddingLeft="14dp"
59+
android:paddingRight="14dp"
60+
android:ellipsize="end"
5761
android:paddingTop="2dp"
58-
android:text="The Weekend - Party test"
62+
android:text="Artist"
5963
android:textColor="@color/AnyAudioGrey189"
6064
android:textSize="12sp" />
6165

app/src/main/res/layout/eve_wishing_dialog.xml

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,12 @@
3636
android:layout_below="@+id/eveCaption"
3737
android:layout_width="36dp"
3838
android:layout_height="3dp"
39-
android:layout_marginBottom="8dp"
39+
android:layout_marginBottom="4dp"
4040
android:layout_gravity="center_horizontal"
4141
android:background="@drawable/explore_text_under_tip"/>
4242

4343
</RelativeLayout>
44+
4445
<TextView
4546
android:layout_centerHorizontal="true"
4647
android:gravity="center_horizontal"
@@ -50,17 +51,23 @@
5051
android:id="@+id/eveMessage"
5152
android:paddingRight="48dp"
5253
android:paddingLeft="48dp"
53-
android:layout_marginTop="16dp"
54+
android:layout_marginTop="8dp"
55+
android:layout_marginBottom="4dp"
5456
android:layout_width="wrap_content"
5557
android:layout_height="wrap_content" />
5658

5759

58-
<android.support.v7.widget.GridLayout
60+
<GridView
5961
android:id="@+id/eveSuggestionsGrid"
62+
android:layout_margin="8dp"
6063
android:layout_below="@+id/eveMessage"
6164
android:layout_above="@+id/eveAddToQueue"
6265
android:layout_width="match_parent"
6366
android:layout_height="wrap_content"
67+
android:stretchMode="columnWidth"
68+
android:verticalSpacing="20dp"
69+
android:gravity="center"
70+
android:horizontalSpacing="20dp"
6471
/>
6572

6673
<TextView

eveTest.txt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
#???? ???? ????? ??? ???????? ???? Lasar Fasar Holi Me Kallu Ji Bhojpuri Hot Holi Songs 2016 new#? ????? ?? ???? Ae Saloni Ke Papa Ghare Ayili Mayariya Kallu Ji Bhojpuri Devi Geet 2016 new#kallu bhojpuri song sa man ke#Lalten Phir Jari BHOJPURI HOT SONG KALLU BALMA BIHARWALA 2
2+
3+
4+
#fSRuZ3BpdmokPCIkODw1OyQuIiRrZiQ8IiR1b0NZe21OaTgvdSQuIiR2a3ZuZyQ8IiTgpK_gpY7gpJ7gpYIi4KSY4KWN4KSe4KSmIuCkruClgOCko-CkvuClgiLgpLTgpYDgpLAi4KSs4KWB4KSc4KSX4KSy4KWB4KSx4KWAIuCkqOClgOCkqOClgCIvIk5jdWN0IkhjdWN0IkpxbmsiT2ciLyJNY25udyJMayIvIkRqcWxyd3RrIkpxdiJKcW5rIlVxcGl1IjQyMzgicGd5JH8=#fSRuZ3BpdmokPCIkNzw1OSQuIiRrZiQ8IiRwd1N1R2ZzVFFwMiQuIiR2a3ZuZyQ8IiTgpJIi4KS64KS04KWN4KSq4KWCIuCkl-CliSLgpKzgpYDgpKzgpYAiLyJDZyJVY25xcGsiTWciUmNyYyIvIklqY3RnIkN7a25rIk9je2N0a3tjIi8iTWNubnciTGsiLyJEanFscnd0ayJGZ3hrIklnZ3YiNDIzOCJwZ3kkfw==#fSRuZ3BpdmokPCIkNDw0MiQuIiRrZiQ8IiRGTlEzW0NTNXFYVyQuIiR2a3ZuZyQ8IiRtY25udyJkanFscnd0ayJ1cXBpInVjIm9jcCJtZyR_#fSRuZ3BpdmokPCIkNDw0OyQuIiRrZiQ8IiRcVXRDanFHXG5ZTyQuIiR2a3ZuZyQ8IiROY252Z3AiUmprdCJMY3RrIi8iREpRTFJXVEsiSlFWIlVRUEkifiJNQ05OVyJ-IkRDTk9DIkRLSkNUWUNOQyI0JH8=
5+
6+
7+
8+
#smAWykLg6-s#nuQsEdqROn0#DLO1YAQ3oVU#ZSrAhoEZlWM
9+
10+
#Wave Music#Wave Music#Saurav Mishra#Worldwide Records Bhojpuri

0 commit comments

Comments
 (0)