Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.app.youtubers.realm;
- import android.content.Context;
- import com.app.youtubers.model.Info;
- import com.app.youtubers.model.Video;
- import com.app.youtubers.realm.table.RealmFavorite;
- import com.app.youtubers.realm.table.RealmInfo;
- import com.app.youtubers.utils.OnSaveListener;
- import java.util.ArrayList;
- import java.util.List;
- import io.realm.Realm;
- import io.realm.RealmResults;
- import io.realm.Sort;
- public class RealmController {
- private Realm realm;
- private RealmResults<RealmFavorite> realmResult;
- public Context context;
- public RealmController(Context context) {
- realm = Realm.getInstance(context);
- this.context = context;
- }
- public int getNextKey() {
- try {
- Number number = realm.where(RealmFavorite.class).max("favId");
- if (number != null) {
- return number.intValue() + 1;
- } else {
- return 0;
- }
- } catch (ArrayIndexOutOfBoundsException e) {
- return 0;
- }
- }
- public void addFavorite(String title, String description, String videoId, String thumbnail, OnSaveListener listener) {
- RealmFavorite fav = new RealmFavorite();
- fav.setId(getNextKey());
- fav.setVideoId(videoId);
- fav.setTitle(title);
- fav.setDescription(description);
- fav.setThumbnail(thumbnail);
- realm.beginTransaction();
- realm.copyToRealm(fav);
- realm.commitTransaction();
- if (listener != null) listener.action();
- }
- public void addFavorite(Video video, OnSaveListener listener) {
- String thumb = video.snippet.thumbnails != null ? video.snippet.thumbnails.high.url : "";
- addFavorite(video.snippet.title, video.snippet.description, video.contentDetails.videoId, thumb, listener);
- }
- public RealmInfo addInfo(Info info) {
- RealmInfo rInfo = new RealmInfo();
- rInfo.setTitle(info.snippet.title);
- rInfo.setDescription(info.snippet.description);
- rInfo.setThumbUrl(info.snippet.thumbnails.medium.url);
- if(info.brandingSettings != null && info.brandingSettings.image != null && info.brandingSettings.image.bannerMobileImageUrl != null){
- rInfo.setBannerUrl(info.brandingSettings.image.bannerMobileImageUrl);
- } else {
- rInfo.setBannerUrl(null);
- }
- rInfo.setVideoCount(info.statistics.videoCount);
- realm.beginTransaction();
- realm.copyToRealmOrUpdate(rInfo);
- realm.commitTransaction();
- return rInfo;
- }
- public List<RealmFavorite> showAllFav() {
- List<RealmFavorite> data = new ArrayList<>();
- realmResult = realm.where(RealmFavorite.class).findAll();
- realmResult.sort("favId", Sort.DESCENDING);
- if (realmResult.size() > 0) {
- for (int i = 0; i < realmResult.size(); i++) {
- int id;
- String title, description, videoId, thumbnail;
- id = realmResult.get(i).getId();
- title = realmResult.get(i).getTitle();
- description = realmResult.get(i).getDescription();
- videoId = realmResult.get(i).getVideoId();
- thumbnail = realmResult.get(i).getThumbnail();
- data.add(new RealmFavorite(videoId, id, title, description, thumbnail));
- }
- }
- return data;
- }
- public RealmInfo getInfo() {
- RealmInfo rInfo = realm.where(RealmInfo.class).findFirst();
- return rInfo;
- }
- public void deleteData(String videoId, OnSaveListener listener) {
- RealmResults<RealmFavorite> dataDesults = realm.where(RealmFavorite.class).equalTo("videoId", videoId).findAll();
- realm.beginTransaction();
- dataDesults.remove(0);
- dataDesults.removeLast();
- dataDesults.clear();
- realm.commitTransaction();
- listener.action();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement