Loading app/src/main/java/org/indin/blisslaunchero/model/AppItem.java +8 −1 Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ import java.util.ArrayList; import java.util.List; public class AppItem { private CharSequence label; private String packageName; private Drawable icon; Loading @@ -15,6 +16,7 @@ public class AppItem { private boolean iconFromIconPack; private boolean isSystemApp; private boolean isClock; private boolean isCalendar; // Folder specific private boolean belongsToFolder; Loading @@ -25,7 +27,7 @@ public class AppItem { public AppItem(CharSequence label, String packageName, Drawable icon, Intent intent, String componentName, boolean iconFromIconPack, boolean isSystemApp, boolean isClock) { boolean isClock, boolean isCalendar) { this.label = label; this.packageName = packageName; this.icon = icon; Loading @@ -34,6 +36,7 @@ public class AppItem { this.iconFromIconPack = iconFromIconPack; this.isSystemApp = isSystemApp; this.isClock = isClock; this.isCalendar = isCalendar; } public CharSequence getLabel() { Loading Loading @@ -64,6 +67,10 @@ public class AppItem { return isClock; } public boolean isCalendar() { return isCalendar; } public void setSystemApp(boolean isSystemApp) { this.isSystemApp = isSystemApp; } Loading app/src/main/java/org/indin/blisslaunchero/ui/DesktopActivity.java +71 −3 Original line number Diff line number Diff line Loading @@ -4,6 +4,8 @@ import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.animation.LayoutTransition; import android.app.Activity; import android.app.AlarmManager; import android.app.PendingIntent; import android.app.WallpaperManager; import android.content.BroadcastReceiver; import android.content.Context; Loading @@ -21,6 +23,8 @@ import android.os.Bundle; import android.os.CountDownTimer; import android.support.v7.app.AppCompatActivity; import android.util.DisplayMetrics; import android.util.Log; import android.util.TypedValue; import android.view.Display; import android.view.DragEvent; import android.view.Gravity; Loading @@ -46,9 +50,9 @@ import org.indin.blisslaunchero.R; import org.indin.blisslaunchero.db.Storage; import org.indin.blisslaunchero.model.AppItem; import org.indin.blisslaunchero.utils.AppUtil; import org.indin.blisslaunchero.utils.ConverterUtil; import org.indin.blisslaunchero.utils.GraphicsUtil; import org.indin.blisslaunchero.utils.IconPackUtil; import org.indin.blisslaunchero.utils.ConverterUtil; import org.indin.blisslaunchero.widgets.BlissDragShadowBuilder; import org.indin.blisslaunchero.widgets.BlissInput; import org.indin.blisslaunchero.widgets.CustomAnalogClock; Loading @@ -59,6 +63,7 @@ import org.json.JSONObject; import java.io.IOException; import java.util.ArrayList; import java.util.Calendar; import java.util.List; import java.util.UUID; Loading Loading @@ -126,6 +131,14 @@ public class DesktopActivity extends AppCompatActivity { private CountDownTimer mWobblingCountDownTimer; private long longPressedAt; private AlarmManager alarmMgr; private PendingIntent pendingIntent; private TextView monthTextView; private TextView dateTextView; private static final String TAG = "DesktopActivity"; private BroadcastReceiver alarmReceiver; @Override protected void onCreate(Bundle savedInstanceState) { Loading Loading @@ -199,10 +212,30 @@ public class DesktopActivity extends AppCompatActivity { recreate(); } }; alarmReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { incrementCalendarDate(); } }; registerReceiver(alarmReceiver, new IntentFilter("DAY_CHANGED")); registerReceiver(installReceiver, installFilter); registerReceiver(uninstallReceiver, uninstallFilter); } public void incrementCalendarDate() { Log.d(TAG, "incrementCalendarDate() called"); Calendar cal = Calendar.getInstance(); cal.setTimeInMillis(System.currentTimeMillis()); if (monthTextView != null) { monthTextView.setText(ConverterUtil.convertMonthToString(cal.get(Calendar.MONTH))); } if (dateTextView != null) { dateTextView.setText(String.valueOf(cal.get(Calendar.DAY_OF_MONTH))); } } @Override protected void onStart() { super.onStart(); Loading @@ -224,6 +257,10 @@ public class DesktopActivity extends AppCompatActivity { super.onDestroy(); unregisterReceiver(installReceiver); unregisterReceiver(uninstallReceiver); if (alarmMgr != null) { alarmMgr.cancel(pendingIntent); } unregisterReceiver(alarmReceiver); } private void addNewApp(String packageName) { Loading Loading @@ -740,6 +777,7 @@ public class DesktopActivity extends AppCompatActivity { "FOLDER", false, true, false, false); folderItem.setFolder(true); folderItem.setFolderID(currentItemData.getString("folderID")); Loading Loading @@ -815,6 +853,35 @@ public class DesktopActivity extends AppCompatActivity { analogClock.setVisibility(View.VISIBLE); squareImageView.setVisibility(View.GONE); analogClock.setAutoUpdate(true); } else if (app.isCalendar()) { Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(System.currentTimeMillis()); monthTextView = v.findViewById(R.id.calendar_month_textview); monthTextView.getLayoutParams().height = appIconWidth * 40 / 192; monthTextView.getLayoutParams().width = appIconWidth; int monthPx = appIconWidth * 48 / 192; monthTextView.setTextSize(TypedValue.COMPLEX_UNIT_PX, monthPx / 2); monthTextView.setText(ConverterUtil.convertMonthToString(calendar.get(Calendar.MONTH))); dateTextView = v.findViewById(R.id.calendar_date_textview); int datePx = appIconWidth * 154 / 192; dateTextView.getLayoutParams().height = appIconWidth * 152 / 192; dateTextView.getLayoutParams().width = appIconWidth; dateTextView.setTextSize(TypedValue.COMPLEX_UNIT_PX, datePx / 2); dateTextView.setText(String.valueOf(calendar.get(Calendar.DAY_OF_MONTH))); v.findViewById(R.id.icon_calendar).setVisibility(View.VISIBLE); squareImageView.setVisibility(View.GONE); alarmMgr = (AlarmManager) getSystemService(Context.ALARM_SERVICE); Intent intent = new Intent("DAY_CHANGED"); pendingIntent = PendingIntent.getBroadcast(this, 0, intent, 0); Calendar alarmCal = Calendar.getInstance(); alarmCal.setTimeInMillis(System.currentTimeMillis()); alarmCal.set(Calendar.HOUR_OF_DAY, 00); alarmMgr.setInexactRepeating(AlarmManager.RTC, alarmCal.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pendingIntent); } Loading Loading @@ -1462,6 +1529,7 @@ public class DesktopActivity extends AppCompatActivity { "FOLDER", false, true, false, false); folder.setFolder(true); folder.setFolderID(UUID.randomUUID().toString()); Loading app/src/main/java/org/indin/blisslaunchero/utils/AppUtil.java +12 −9 Original line number Diff line number Diff line Loading @@ -40,15 +40,15 @@ public class AppUtil { boolean iconFromIconPack = true; Drawable appIcon = null; boolean isClock = false; boolean isCalendar = false; // Load icon from icon pack if present if (IconPackUtil.iconPackPresent) { if (!IconPackUtil.isClock(componentName)) { isClock = IconPackUtil.isClock(componentName); isCalendar = IconPackUtil.isCalendar(componentName); appIcon = IconPackUtil.getIconFromIconPack(context, componentName); } else { isClock = true; } } if (appIcon == null && !isClock) { if (appIcon == null) { appIcon = appInfo.loadIcon(packageManager); iconFromIconPack = false; appIcon = GraphicsUtil.scaleImage(context, appIcon, 1f); Loading @@ -69,8 +69,8 @@ public class AppUtil { componentName, iconFromIconPack, isSystemApp, isClock ); isClock, isCalendar); launchableApps.add(launchableApp); } } Loading Loading @@ -140,9 +140,11 @@ public class AppUtil { boolean iconFromIconPack = true; Drawable appIcon = null; boolean isClock = false; boolean isCalendar = false; // Load icon from icon pack if present if (IconPackUtil.iconPackPresent) { isClock = IconPackUtil.isClock(componentName); isCalendar = IconPackUtil.isCalendar(componentName); appIcon = IconPackUtil.getIconFromIconPack(context, componentName); } if (appIcon == null) { Loading @@ -159,7 +161,8 @@ public class AppUtil { componentName, iconFromIconPack, (appInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0, isClock); isClock, isCalendar); } else { return null; } Loading app/src/main/java/org/indin/blisslaunchero/utils/Constants.java +2 −1 Original line number Diff line number Diff line Loading @@ -5,5 +5,6 @@ package org.indin.blisslaunchero.utils; */ public class Constants { public static final int DEFAULT_CLOCK_ID = 971; public static int DEFAULT_CLOCK_ID; public static int DEFAULT_CALENDAR_ID; } app/src/main/java/org/indin/blisslaunchero/utils/ConverterUtil.java +46 −8 Original line number Diff line number Diff line Loading @@ -3,6 +3,8 @@ package org.indin.blisslaunchero.utils; import android.content.Context; import android.util.DisplayMetrics; import java.util.Calendar; public class ConverterUtil { public static float dp2Px(int dp, Context context) { DisplayMetrics metrics = context.getResources().getDisplayMetrics(); Loading @@ -13,4 +15,40 @@ public class ConverterUtil { DisplayMetrics metrics = context.getResources().getDisplayMetrics(); return px / (metrics.densityDpi / 160f); } public static float px2sp(float px, Context context) { DisplayMetrics metrics = context.getResources().getDisplayMetrics(); return px / metrics.scaledDensity; } public static String convertMonthToString(int month) { switch (month) { case Calendar.JANUARY: return "JAN"; case Calendar.FEBRUARY: return "FEB"; case Calendar.MARCH: return "MAR"; case Calendar.APRIL: return "APR"; case Calendar.MAY: return "MAY"; case Calendar.JUNE: return "JUN"; case Calendar.JULY: return "JUL"; case Calendar.AUGUST: return "AUG"; case Calendar.SEPTEMBER: return "SEP"; case Calendar.OCTOBER: return "OCT"; case Calendar.NOVEMBER: return "NOV"; case Calendar.DECEMBER: return "DEC"; default: return ""; } } } Loading
app/src/main/java/org/indin/blisslaunchero/model/AppItem.java +8 −1 Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ import java.util.ArrayList; import java.util.List; public class AppItem { private CharSequence label; private String packageName; private Drawable icon; Loading @@ -15,6 +16,7 @@ public class AppItem { private boolean iconFromIconPack; private boolean isSystemApp; private boolean isClock; private boolean isCalendar; // Folder specific private boolean belongsToFolder; Loading @@ -25,7 +27,7 @@ public class AppItem { public AppItem(CharSequence label, String packageName, Drawable icon, Intent intent, String componentName, boolean iconFromIconPack, boolean isSystemApp, boolean isClock) { boolean isClock, boolean isCalendar) { this.label = label; this.packageName = packageName; this.icon = icon; Loading @@ -34,6 +36,7 @@ public class AppItem { this.iconFromIconPack = iconFromIconPack; this.isSystemApp = isSystemApp; this.isClock = isClock; this.isCalendar = isCalendar; } public CharSequence getLabel() { Loading Loading @@ -64,6 +67,10 @@ public class AppItem { return isClock; } public boolean isCalendar() { return isCalendar; } public void setSystemApp(boolean isSystemApp) { this.isSystemApp = isSystemApp; } Loading
app/src/main/java/org/indin/blisslaunchero/ui/DesktopActivity.java +71 −3 Original line number Diff line number Diff line Loading @@ -4,6 +4,8 @@ import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.animation.LayoutTransition; import android.app.Activity; import android.app.AlarmManager; import android.app.PendingIntent; import android.app.WallpaperManager; import android.content.BroadcastReceiver; import android.content.Context; Loading @@ -21,6 +23,8 @@ import android.os.Bundle; import android.os.CountDownTimer; import android.support.v7.app.AppCompatActivity; import android.util.DisplayMetrics; import android.util.Log; import android.util.TypedValue; import android.view.Display; import android.view.DragEvent; import android.view.Gravity; Loading @@ -46,9 +50,9 @@ import org.indin.blisslaunchero.R; import org.indin.blisslaunchero.db.Storage; import org.indin.blisslaunchero.model.AppItem; import org.indin.blisslaunchero.utils.AppUtil; import org.indin.blisslaunchero.utils.ConverterUtil; import org.indin.blisslaunchero.utils.GraphicsUtil; import org.indin.blisslaunchero.utils.IconPackUtil; import org.indin.blisslaunchero.utils.ConverterUtil; import org.indin.blisslaunchero.widgets.BlissDragShadowBuilder; import org.indin.blisslaunchero.widgets.BlissInput; import org.indin.blisslaunchero.widgets.CustomAnalogClock; Loading @@ -59,6 +63,7 @@ import org.json.JSONObject; import java.io.IOException; import java.util.ArrayList; import java.util.Calendar; import java.util.List; import java.util.UUID; Loading Loading @@ -126,6 +131,14 @@ public class DesktopActivity extends AppCompatActivity { private CountDownTimer mWobblingCountDownTimer; private long longPressedAt; private AlarmManager alarmMgr; private PendingIntent pendingIntent; private TextView monthTextView; private TextView dateTextView; private static final String TAG = "DesktopActivity"; private BroadcastReceiver alarmReceiver; @Override protected void onCreate(Bundle savedInstanceState) { Loading Loading @@ -199,10 +212,30 @@ public class DesktopActivity extends AppCompatActivity { recreate(); } }; alarmReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { incrementCalendarDate(); } }; registerReceiver(alarmReceiver, new IntentFilter("DAY_CHANGED")); registerReceiver(installReceiver, installFilter); registerReceiver(uninstallReceiver, uninstallFilter); } public void incrementCalendarDate() { Log.d(TAG, "incrementCalendarDate() called"); Calendar cal = Calendar.getInstance(); cal.setTimeInMillis(System.currentTimeMillis()); if (monthTextView != null) { monthTextView.setText(ConverterUtil.convertMonthToString(cal.get(Calendar.MONTH))); } if (dateTextView != null) { dateTextView.setText(String.valueOf(cal.get(Calendar.DAY_OF_MONTH))); } } @Override protected void onStart() { super.onStart(); Loading @@ -224,6 +257,10 @@ public class DesktopActivity extends AppCompatActivity { super.onDestroy(); unregisterReceiver(installReceiver); unregisterReceiver(uninstallReceiver); if (alarmMgr != null) { alarmMgr.cancel(pendingIntent); } unregisterReceiver(alarmReceiver); } private void addNewApp(String packageName) { Loading Loading @@ -740,6 +777,7 @@ public class DesktopActivity extends AppCompatActivity { "FOLDER", false, true, false, false); folderItem.setFolder(true); folderItem.setFolderID(currentItemData.getString("folderID")); Loading Loading @@ -815,6 +853,35 @@ public class DesktopActivity extends AppCompatActivity { analogClock.setVisibility(View.VISIBLE); squareImageView.setVisibility(View.GONE); analogClock.setAutoUpdate(true); } else if (app.isCalendar()) { Calendar calendar = Calendar.getInstance(); calendar.setTimeInMillis(System.currentTimeMillis()); monthTextView = v.findViewById(R.id.calendar_month_textview); monthTextView.getLayoutParams().height = appIconWidth * 40 / 192; monthTextView.getLayoutParams().width = appIconWidth; int monthPx = appIconWidth * 48 / 192; monthTextView.setTextSize(TypedValue.COMPLEX_UNIT_PX, monthPx / 2); monthTextView.setText(ConverterUtil.convertMonthToString(calendar.get(Calendar.MONTH))); dateTextView = v.findViewById(R.id.calendar_date_textview); int datePx = appIconWidth * 154 / 192; dateTextView.getLayoutParams().height = appIconWidth * 152 / 192; dateTextView.getLayoutParams().width = appIconWidth; dateTextView.setTextSize(TypedValue.COMPLEX_UNIT_PX, datePx / 2); dateTextView.setText(String.valueOf(calendar.get(Calendar.DAY_OF_MONTH))); v.findViewById(R.id.icon_calendar).setVisibility(View.VISIBLE); squareImageView.setVisibility(View.GONE); alarmMgr = (AlarmManager) getSystemService(Context.ALARM_SERVICE); Intent intent = new Intent("DAY_CHANGED"); pendingIntent = PendingIntent.getBroadcast(this, 0, intent, 0); Calendar alarmCal = Calendar.getInstance(); alarmCal.setTimeInMillis(System.currentTimeMillis()); alarmCal.set(Calendar.HOUR_OF_DAY, 00); alarmMgr.setInexactRepeating(AlarmManager.RTC, alarmCal.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pendingIntent); } Loading Loading @@ -1462,6 +1529,7 @@ public class DesktopActivity extends AppCompatActivity { "FOLDER", false, true, false, false); folder.setFolder(true); folder.setFolderID(UUID.randomUUID().toString()); Loading
app/src/main/java/org/indin/blisslaunchero/utils/AppUtil.java +12 −9 Original line number Diff line number Diff line Loading @@ -40,15 +40,15 @@ public class AppUtil { boolean iconFromIconPack = true; Drawable appIcon = null; boolean isClock = false; boolean isCalendar = false; // Load icon from icon pack if present if (IconPackUtil.iconPackPresent) { if (!IconPackUtil.isClock(componentName)) { isClock = IconPackUtil.isClock(componentName); isCalendar = IconPackUtil.isCalendar(componentName); appIcon = IconPackUtil.getIconFromIconPack(context, componentName); } else { isClock = true; } } if (appIcon == null && !isClock) { if (appIcon == null) { appIcon = appInfo.loadIcon(packageManager); iconFromIconPack = false; appIcon = GraphicsUtil.scaleImage(context, appIcon, 1f); Loading @@ -69,8 +69,8 @@ public class AppUtil { componentName, iconFromIconPack, isSystemApp, isClock ); isClock, isCalendar); launchableApps.add(launchableApp); } } Loading Loading @@ -140,9 +140,11 @@ public class AppUtil { boolean iconFromIconPack = true; Drawable appIcon = null; boolean isClock = false; boolean isCalendar = false; // Load icon from icon pack if present if (IconPackUtil.iconPackPresent) { isClock = IconPackUtil.isClock(componentName); isCalendar = IconPackUtil.isCalendar(componentName); appIcon = IconPackUtil.getIconFromIconPack(context, componentName); } if (appIcon == null) { Loading @@ -159,7 +161,8 @@ public class AppUtil { componentName, iconFromIconPack, (appInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0, isClock); isClock, isCalendar); } else { return null; } Loading
app/src/main/java/org/indin/blisslaunchero/utils/Constants.java +2 −1 Original line number Diff line number Diff line Loading @@ -5,5 +5,6 @@ package org.indin.blisslaunchero.utils; */ public class Constants { public static final int DEFAULT_CLOCK_ID = 971; public static int DEFAULT_CLOCK_ID; public static int DEFAULT_CALENDAR_ID; }
app/src/main/java/org/indin/blisslaunchero/utils/ConverterUtil.java +46 −8 Original line number Diff line number Diff line Loading @@ -3,6 +3,8 @@ package org.indin.blisslaunchero.utils; import android.content.Context; import android.util.DisplayMetrics; import java.util.Calendar; public class ConverterUtil { public static float dp2Px(int dp, Context context) { DisplayMetrics metrics = context.getResources().getDisplayMetrics(); Loading @@ -13,4 +15,40 @@ public class ConverterUtil { DisplayMetrics metrics = context.getResources().getDisplayMetrics(); return px / (metrics.densityDpi / 160f); } public static float px2sp(float px, Context context) { DisplayMetrics metrics = context.getResources().getDisplayMetrics(); return px / metrics.scaledDensity; } public static String convertMonthToString(int month) { switch (month) { case Calendar.JANUARY: return "JAN"; case Calendar.FEBRUARY: return "FEB"; case Calendar.MARCH: return "MAR"; case Calendar.APRIL: return "APR"; case Calendar.MAY: return "MAY"; case Calendar.JUNE: return "JUN"; case Calendar.JULY: return "JUL"; case Calendar.AUGUST: return "AUG"; case Calendar.SEPTEMBER: return "SEP"; case Calendar.OCTOBER: return "OCT"; case Calendar.NOVEMBER: return "NOV"; case Calendar.DECEMBER: return "DEC"; default: return ""; } } }