package com.enrico.launcher3.board; import android.app.Activity; import android.content.Context; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Paint; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import com.enrico.launcher3.R; import com.enrico.launcher3.Utilities; import com.enrico.launcher3.icons.IconColorExtractor; import java.util.List; /** * Created by Enrico on 25/09/2017. */ public class BoardUtils { public static final String KEY_CUSTOM_APPS_SET = "custom-apps"; public static final String BOARD_TITLE_KEY = "pref_boardTitle"; static final String CUSTOM_APP_KEY = "custom-apps"; static final String CUSTOM_APP_PREF_KEY = "pref_customApp"; private static final String FREQUENT_CONTACTS_KEY = "contacts"; private static final String NOTES_KEY = "notes"; public static boolean isCustomApps(Context context) { return Utilities.getPrefs(context).getBoolean(CUSTOM_APP_KEY, false); } public static boolean isFrequentContacts(Context context) { return Utilities.getPrefs(context).getBoolean(FREQUENT_CONTACTS_KEY, true); } public static boolean isNotes(Context context) { return Utilities.getPrefs(context).getBoolean(NOTES_KEY, true); } static void setupApps(final Activity activity, List<String> apps, RecyclerView customAppsRecyclerView) { customAppsRecyclerView.setHasFixedSize(true); LinearLayoutManager linearLayoutManager = new LinearLayoutManager(activity, LinearLayoutManager.HORIZONTAL, false); customAppsRecyclerView.setLayoutManager(linearLayoutManager); CustomAppRecyclerViewAdapter recyclerViewAdapter = new CustomAppRecyclerViewAdapter(activity, apps); customAppsRecyclerView.setAdapter(recyclerViewAdapter); } //create round icon enrico's style public static Bitmap createRoundIcon(Context context, Bitmap defaultIcon) { //calculate dimensions //-1 to take into account the shadow layer int w = defaultIcon.getWidth(); int h = defaultIcon.getHeight(); int r = w / 2 - 1; //create bitmap Bitmap b = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888); //draw a circle of the same dimensions Canvas canvas = new Canvas(b); Paint paint = new Paint(); paint.setColor(IconColorExtractor.get(context, defaultIcon)); final int SHADOW_COLOR = 0x80000000; paint.setShadowLayer(0.5f, 1, 1, SHADOW_COLOR); paint.setAntiAlias(true); canvas.drawCircle(r, r, r, paint); //scale default icon and center inside the canvas Bitmap scaledBitmap = Bitmap.createScaledBitmap(defaultIcon, r, r, true); canvas.drawBitmap(scaledBitmap, (r * 2 - scaledBitmap.getWidth()) / 2, (r * 2 - scaledBitmap.getHeight()) / 2, paint); return b; } //retrieve board title public static String getBoardTitle(final Context context) { return Utilities.getPrefs(context).getString(BOARD_TITLE_KEY, context.getString(R.string.board)); } }