package com.thekirankumar.youtubeauto.bookmarks; import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.Canvas; import android.util.TypedValue; import com.thekirankumar.youtubeauto.webview.VideoWebView; import java.io.ByteArrayOutputStream; import io.realm.Realm; /** * Created by kiran.kumar on 24/01/18. */ public class BookmarkUtils { public static void addBookmark(final VideoWebView webView) { webView.scrollTo(0,0); webView.post(new Runnable() { @Override public void run() { final Bookmark bookmark = new Bookmark(); bookmark.setTitle(webView.getTitle()); bookmark.setUrl(webView.getUrl()); Realm realm = Realm.getDefaultInstance(); Bitmap bitmap = Bitmap.createBitmap(webView.getMeasuredWidth(), webView.getMeasuredHeight(), Bitmap.Config.ARGB_8888); float aspectRatio = (float) webView.getMeasuredWidth() / (float) webView.getMeasuredHeight(); Canvas c = new Canvas(bitmap); webView.draw(c); Resources r = webView.getResources(); float px = 3 * TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, BookmarksFragment.BOOKMARK_VIEW_SIZE_IN_DP, r.getDisplayMetrics()); bitmap = Bitmap.createScaledBitmap(bitmap, (int) px, (int) (px / aspectRatio), false); ByteArrayOutputStream stream = new ByteArrayOutputStream(); bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream); byte[] byteArray = stream.toByteArray(); bookmark.setThumbnail(byteArray); Bitmap favicon = webView.getFavicon(); if(favicon!=null) { ByteArrayOutputStream faviconStream = new ByteArrayOutputStream(); favicon.compress(Bitmap.CompressFormat.PNG, 80, faviconStream); byte[] faviconBytes = faviconStream.toByteArray(); bookmark.setFavicon(faviconBytes); } bookmark.setCreatedAt(System.currentTimeMillis()); realm.executeTransaction(new Realm.Transaction() { @Override public void execute(Realm realm1) { realm1.insert(bookmark); } }); } }); } public static void deleteBookmark(final Bookmark bookmark) { Realm realm = Realm.getDefaultInstance(); realm.executeTransaction(new Realm.Transaction() { @Override public void execute(Realm realm1) { bookmark.deleteFromRealm(); } }); } }