package com.aptoide.amethyst.services;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Bitmap;
import android.os.Build;
import android.preference.PreferenceManager;
import android.support.v4.app.NotificationCompat;
import android.util.Log;
import android.widget.RemoteViews;
import com.aptoide.amethyst.Aptoide;
import com.aptoide.amethyst.R;
import com.aptoide.amethyst.webservices.TimelineCheckRequestSync;
import com.aptoide.amethyst.webservices.json.TimelineActivityJson;
import com.nostra13.universalimageloader.core.ImageLoader;
import java.util.ArrayList;
import java.util.List;
import com.aptoide.amethyst.MainActivity;
/**
* Created by fabio on 09-11-2015.
*/
public class TimelinePostsSyncService {
private static final Object wiSyncAdapterLock = new Object();
public void sync(Context context, String packageName) {
try {
Log.d("AptoideTimeline", "Starting timelinePostsService");
SharedPreferences sPref = PreferenceManager.getDefaultSharedPreferences(Aptoide.getContext());
if(sPref.contains("timelineTimestamp") && sPref.getBoolean("socialtimelinenotifications", true)) {
TimelineActivityJson timelineActivityJson = TimelineCheckRequestSync.getRequest("new_installs");
Intent intent = new Intent(context, MainActivity.class);
intent.putExtra("fromTimeline", true);
intent.setClassName(packageName, MainActivity.class.getName());
intent.setFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT | Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setAction(Intent.ACTION_VIEW);
PendingIntent resultPendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
Notification notification = new NotificationCompat.Builder(context)
.setSmallIcon(R.drawable.ic_stat_aptoide_fb_notification)
.setContentIntent(resultPendingIntent)
.setOngoing(false)
.setAutoCancel(true)
.setContentTitle(context.getString(R.string.notification_timeline_posts))
.setContentText(context.getString(R.string.notification_social_timeline)).build();
notification.flags = Notification.DEFAULT_LIGHTS | Notification.FLAG_AUTO_CANCEL;
ArrayList<String> avatarLinks = new ArrayList<String>();
try {
setAvatares(avatarLinks, timelineActivityJson.getNew_installs().getFriends());
if (Build.VERSION.SDK_INT >= 16) {
RemoteViews expandedView = new RemoteViews(context.getPackageName(), R.layout.push_notification_timeline_activity);
expandedView.setTextViewText(R.id.description, context.getString(R.string.notification_timeline_posts));
expandedView.removeAllViews(R.id.linearLayout2);
for (String avatar : avatarLinks) {
Bitmap loadedImage = ImageLoader.getInstance().loadImageSync(avatar);
RemoteViews imageView = new RemoteViews(context.getPackageName(), R.layout.timeline_friend_iv);
imageView.setImageViewBitmap(R.id.friend_avatar, loadedImage);
expandedView.addView(R.id.linearLayout2, imageView);
}
notification.bigContentView = expandedView;
}
if (!avatarLinks.isEmpty()) {
final NotificationManager managerNotification = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
managerNotification.notify(86459, notification);
}
} catch (NullPointerException ignored) {
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
public void setAvatares(List<String> avatares, List<TimelineActivityJson.Friend> friends){
for(TimelineActivityJson.Friend friend : friends){
if(!avatares.contains(friend.getAvatar())){
avatares.add(friend.getAvatar());
}
}
}
}