Loading app/src/main/java/foundation/e/blisslauncher/core/customviews/RoundedWidgetView.java +16 −0 Original line number Original line Diff line number Diff line Loading @@ -4,6 +4,7 @@ import android.appwidget.AppWidgetHostView; import android.content.Context; import android.content.Context; import android.graphics.Canvas; import android.graphics.Canvas; import android.graphics.Path; import android.graphics.Path; import android.view.MotionEvent; import foundation.e.blisslauncher.R; import foundation.e.blisslauncher.R; Loading @@ -12,6 +13,8 @@ public class RoundedWidgetView extends AppWidgetHostView { private final Path stencilPath = new Path(); private final Path stencilPath = new Path(); private float cornerRadius = 0; private float cornerRadius = 0; private static final String TAG = "RoundedWidgetView"; public RoundedWidgetView(Context context) { public RoundedWidgetView(Context context) { super(context); super(context); this.cornerRadius = context.getResources().getDimensionPixelSize(R.dimen.corner_radius); this.cornerRadius = context.getResources().getDimensionPixelSize(R.dimen.corner_radius); Loading @@ -35,4 +38,17 @@ public class RoundedWidgetView extends AppWidgetHostView { super.dispatchDraw(canvas); super.dispatchDraw(canvas); canvas.restoreToCount(save); canvas.restoreToCount(save); } } @Override public boolean onInterceptTouchEvent(MotionEvent ev) { /*getParent().requestDisallowInterceptTouchEvent(true); int action = ev.getAction(); switch (action) { case MotionEvent.ACTION_UP: getParent().requestDisallowInterceptTouchEvent(false); break; }*/ return super.onInterceptTouchEvent(ev); } } } app/src/main/java/foundation/e/blisslauncher/features/launcher/LauncherActivity.java +35 −6 Original line number Original line Diff line number Diff line Loading @@ -6,6 +6,7 @@ import static android.view.View.VISIBLE; import android.Manifest; import android.Manifest; import android.animation.Animator; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.animation.AnimatorListenerAdapter; import android.animation.ArgbEvaluator; import android.animation.LayoutTransition; import android.animation.LayoutTransition; import android.annotation.SuppressLint; import android.annotation.SuppressLint; import android.app.Activity; import android.app.Activity; Loading @@ -22,6 +23,7 @@ import android.content.Context; import android.content.Intent; import android.content.Intent; import android.content.IntentFilter; import android.content.IntentFilter; import android.content.pm.PackageManager; import android.content.pm.PackageManager; import android.graphics.Color; import android.graphics.Rect; import android.graphics.Rect; import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable; import android.location.LocationManager; import android.location.LocationManager; Loading @@ -35,6 +37,7 @@ import android.os.StrictMode; import android.os.UserManager; import android.os.UserManager; import android.provider.Settings; import android.provider.Settings; import android.support.annotation.NonNull; import android.support.annotation.NonNull; import android.support.v4.content.ContextCompat; import android.support.v4.content.LocalBroadcastManager; import android.support.v4.content.LocalBroadcastManager; import android.support.v4.view.PagerAdapter; import android.support.v4.view.PagerAdapter; import android.support.v4.view.ViewPager; import android.support.v4.view.ViewPager; Loading Loading @@ -208,6 +211,9 @@ public class LauncherActivity extends AppCompatActivity implements private WidgetHost mAppWidgetHost; private WidgetHost mAppWidgetHost; private LinearLayout widgetContainer; private LinearLayout widgetContainer; ArgbEvaluator argbEvaluator = new ArgbEvaluator(); @SuppressLint("InflateParams") @SuppressLint("InflateParams") @Override @Override protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) { Loading Loading @@ -412,10 +418,6 @@ public class LauncherActivity extends AppCompatActivity implements widgetView.setLayoutParams(layoutParams); widgetView.setLayoutParams(layoutParams); widgetView.setPadding(0, 0, 0, 0); widgetView.setPadding(0, 0, 0, 0); widgetHolderLinearLayout.addView(widgetView); widgetHolderLinearLayout.addView(widgetView); widgetView.setOnTouchListener((v, event) -> { v.getParent().getParent().getParent().requestDisallowInterceptTouchEvent(true); return false; }); } } @Override @Override Loading Loading @@ -993,11 +995,19 @@ public class LauncherActivity extends AppCompatActivity implements * updated * updated */ */ private void createPageChangeListener() { private void createPageChangeListener() { Integer color1 = Color.TRANSPARENT; Integer color2 = ContextCompat.getColor(this, R.color.dark_grey_44); mHorizontalPager.addOnScrollListener(new HorizontalPager.OnScrollListener() { mHorizontalPager.addOnScrollListener(new HorizontalPager.OnScrollListener() { boolean isViewScrolling = true; boolean isViewScrolling = true; @Override @Override public void onScroll(int scrollX) { public void onScroll(int scrollX) { if (scrollX >= 0 && scrollX < mDeviceProfile.availableWidthPx) { float fraction = (float) (mDeviceProfile.availableWidthPx - scrollX) / mDeviceProfile.availableWidthPx; mHorizontalPager.setBackgroundColor( (Integer) argbEvaluator.evaluate(fraction, color1, color2)); } if (isViewScrolling) { if (isViewScrolling) { dragDropEnabled = false; dragDropEnabled = false; } } Loading @@ -1005,6 +1015,7 @@ public class LauncherActivity extends AppCompatActivity implements @Override @Override public void onViewScrollFinished(int page) { public void onViewScrollFinished(int page) { mHorizontalPager.setBackgroundColor(page == 0 ? color2 : color1); isViewScrolling = false; isViewScrolling = false; if (currentPageNumber != page) { if (currentPageNumber != page) { Loading Loading @@ -1334,13 +1345,31 @@ public class LauncherActivity extends AppCompatActivity implements hostView.setAppWidget(id, appWidgetInfo); hostView.setAppWidget(id, appWidgetInfo); hostView.post(() -> updateWidgetOption(id, appWidgetInfo)); hostView.post(() -> updateWidgetOption(id, appWidgetInfo)); addWidgetToContainer(widgetContainer, hostView); addWidgetToContainer(widgetContainer, hostView); /*hostView.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { Log.i(TAG, "onTouch: "+hostView); Log.d(TAG, "onTouch() called with: v = [" + v + "], event = [" + event + "]"); layout.requestDisallowInterceptTouchEvent(true); int action = event.getAction(); switch (action) { case MotionEvent.ACTION_UP: layout.getParent().requestDisallowInterceptTouchEvent(false); break; } return true; } });*/ } } } } } } private void updateWidgetOption(int appWidgetId, AppWidgetProviderInfo info) { private void updateWidgetOption(int appWidgetId, AppWidgetProviderInfo info) { Bundle newOps = new Bundle(); Bundle newOps = new Bundle(); newOps.putInt(AppWidgetManager.OPTION_APPWIDGET_MIN_WIDTH, info.minWidth); newOps.putInt(AppWidgetManager.OPTION_APPWIDGET_MIN_WIDTH, BlissLauncher.getApplication( this).getDeviceProfile().getMaxWidgetWidth()); newOps.putInt(AppWidgetManager.OPTION_APPWIDGET_MAX_WIDTH, BlissLauncher.getApplication( newOps.putInt(AppWidgetManager.OPTION_APPWIDGET_MAX_WIDTH, BlissLauncher.getApplication( this).getDeviceProfile().getMaxWidgetWidth()); this).getDeviceProfile().getMaxWidgetWidth()); newOps.putInt(AppWidgetManager.OPTION_APPWIDGET_MIN_HEIGHT, info.minHeight); newOps.putInt(AppWidgetManager.OPTION_APPWIDGET_MIN_HEIGHT, info.minHeight); Loading Loading @@ -1561,7 +1590,7 @@ public class LauncherActivity extends AppCompatActivity implements iconLayoutParams.setGravity(Gravity.CENTER); iconLayoutParams.setGravity(Gravity.CENTER); view.setLayoutParams(iconLayoutParams); view.setLayoutParams(iconLayoutParams); view.setWithText(false); view.setWithText(false); if (index == LauncherItem.INVALID_CELL) { if (index == LauncherItem.INVALID_CELL || index > mDock.getChildCount()) { mDock.addView(view); mDock.addView(view); } else { } else { mDock.addView(view, index); mDock.addView(view, index); Loading app/src/main/res/layout/widgets_page.xml +1 −1 Original line number Original line Diff line number Diff line Loading @@ -5,7 +5,6 @@ android:layout_width="match_parent" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_height="match_parent" android:animateLayoutChanges="true" android:animateLayoutChanges="true" android:background="@color/dark_grey_44" android:orientation="vertical" android:orientation="vertical" android:scrollbars="none" android:scrollbars="none" tools:ignore="ContentDescription"> tools:ignore="ContentDescription"> Loading Loading @@ -74,6 +73,7 @@ android:layout_height="wrap_content" android:layout_height="wrap_content" android:background="@drawable/btn_rounded_corner" android:background="@drawable/btn_rounded_corner" android:fontFamily="sans-serif-medium" android:fontFamily="sans-serif-medium" android:layout_marginTop="8dp" android:text="Edit"/> android:text="Edit"/> </LinearLayout> </LinearLayout> Loading app/src/main/res/values/dimens.xml +1 −0 Original line number Original line Diff line number Diff line Loading @@ -7,4 +7,5 @@ <dimen name="forecast_item_padding_side">16dp</dimen> <dimen name="forecast_item_padding_side">16dp</dimen> <dimen name="corner_radius">12dp</dimen> <dimen name="corner_radius">12dp</dimen> <dimen name="widget_margin">8dp</dimen> <dimen name="widget_margin">8dp</dimen> <dimen name="min_widget_height">200dp</dimen> </resources> </resources> No newline at end of file Loading
app/src/main/java/foundation/e/blisslauncher/core/customviews/RoundedWidgetView.java +16 −0 Original line number Original line Diff line number Diff line Loading @@ -4,6 +4,7 @@ import android.appwidget.AppWidgetHostView; import android.content.Context; import android.content.Context; import android.graphics.Canvas; import android.graphics.Canvas; import android.graphics.Path; import android.graphics.Path; import android.view.MotionEvent; import foundation.e.blisslauncher.R; import foundation.e.blisslauncher.R; Loading @@ -12,6 +13,8 @@ public class RoundedWidgetView extends AppWidgetHostView { private final Path stencilPath = new Path(); private final Path stencilPath = new Path(); private float cornerRadius = 0; private float cornerRadius = 0; private static final String TAG = "RoundedWidgetView"; public RoundedWidgetView(Context context) { public RoundedWidgetView(Context context) { super(context); super(context); this.cornerRadius = context.getResources().getDimensionPixelSize(R.dimen.corner_radius); this.cornerRadius = context.getResources().getDimensionPixelSize(R.dimen.corner_radius); Loading @@ -35,4 +38,17 @@ public class RoundedWidgetView extends AppWidgetHostView { super.dispatchDraw(canvas); super.dispatchDraw(canvas); canvas.restoreToCount(save); canvas.restoreToCount(save); } } @Override public boolean onInterceptTouchEvent(MotionEvent ev) { /*getParent().requestDisallowInterceptTouchEvent(true); int action = ev.getAction(); switch (action) { case MotionEvent.ACTION_UP: getParent().requestDisallowInterceptTouchEvent(false); break; }*/ return super.onInterceptTouchEvent(ev); } } }
app/src/main/java/foundation/e/blisslauncher/features/launcher/LauncherActivity.java +35 −6 Original line number Original line Diff line number Diff line Loading @@ -6,6 +6,7 @@ import static android.view.View.VISIBLE; import android.Manifest; import android.Manifest; import android.animation.Animator; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.animation.AnimatorListenerAdapter; import android.animation.ArgbEvaluator; import android.animation.LayoutTransition; import android.animation.LayoutTransition; import android.annotation.SuppressLint; import android.annotation.SuppressLint; import android.app.Activity; import android.app.Activity; Loading @@ -22,6 +23,7 @@ import android.content.Context; import android.content.Intent; import android.content.Intent; import android.content.IntentFilter; import android.content.IntentFilter; import android.content.pm.PackageManager; import android.content.pm.PackageManager; import android.graphics.Color; import android.graphics.Rect; import android.graphics.Rect; import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable; import android.location.LocationManager; import android.location.LocationManager; Loading @@ -35,6 +37,7 @@ import android.os.StrictMode; import android.os.UserManager; import android.os.UserManager; import android.provider.Settings; import android.provider.Settings; import android.support.annotation.NonNull; import android.support.annotation.NonNull; import android.support.v4.content.ContextCompat; import android.support.v4.content.LocalBroadcastManager; import android.support.v4.content.LocalBroadcastManager; import android.support.v4.view.PagerAdapter; import android.support.v4.view.PagerAdapter; import android.support.v4.view.ViewPager; import android.support.v4.view.ViewPager; Loading Loading @@ -208,6 +211,9 @@ public class LauncherActivity extends AppCompatActivity implements private WidgetHost mAppWidgetHost; private WidgetHost mAppWidgetHost; private LinearLayout widgetContainer; private LinearLayout widgetContainer; ArgbEvaluator argbEvaluator = new ArgbEvaluator(); @SuppressLint("InflateParams") @SuppressLint("InflateParams") @Override @Override protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) { Loading Loading @@ -412,10 +418,6 @@ public class LauncherActivity extends AppCompatActivity implements widgetView.setLayoutParams(layoutParams); widgetView.setLayoutParams(layoutParams); widgetView.setPadding(0, 0, 0, 0); widgetView.setPadding(0, 0, 0, 0); widgetHolderLinearLayout.addView(widgetView); widgetHolderLinearLayout.addView(widgetView); widgetView.setOnTouchListener((v, event) -> { v.getParent().getParent().getParent().requestDisallowInterceptTouchEvent(true); return false; }); } } @Override @Override Loading Loading @@ -993,11 +995,19 @@ public class LauncherActivity extends AppCompatActivity implements * updated * updated */ */ private void createPageChangeListener() { private void createPageChangeListener() { Integer color1 = Color.TRANSPARENT; Integer color2 = ContextCompat.getColor(this, R.color.dark_grey_44); mHorizontalPager.addOnScrollListener(new HorizontalPager.OnScrollListener() { mHorizontalPager.addOnScrollListener(new HorizontalPager.OnScrollListener() { boolean isViewScrolling = true; boolean isViewScrolling = true; @Override @Override public void onScroll(int scrollX) { public void onScroll(int scrollX) { if (scrollX >= 0 && scrollX < mDeviceProfile.availableWidthPx) { float fraction = (float) (mDeviceProfile.availableWidthPx - scrollX) / mDeviceProfile.availableWidthPx; mHorizontalPager.setBackgroundColor( (Integer) argbEvaluator.evaluate(fraction, color1, color2)); } if (isViewScrolling) { if (isViewScrolling) { dragDropEnabled = false; dragDropEnabled = false; } } Loading @@ -1005,6 +1015,7 @@ public class LauncherActivity extends AppCompatActivity implements @Override @Override public void onViewScrollFinished(int page) { public void onViewScrollFinished(int page) { mHorizontalPager.setBackgroundColor(page == 0 ? color2 : color1); isViewScrolling = false; isViewScrolling = false; if (currentPageNumber != page) { if (currentPageNumber != page) { Loading Loading @@ -1334,13 +1345,31 @@ public class LauncherActivity extends AppCompatActivity implements hostView.setAppWidget(id, appWidgetInfo); hostView.setAppWidget(id, appWidgetInfo); hostView.post(() -> updateWidgetOption(id, appWidgetInfo)); hostView.post(() -> updateWidgetOption(id, appWidgetInfo)); addWidgetToContainer(widgetContainer, hostView); addWidgetToContainer(widgetContainer, hostView); /*hostView.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { Log.i(TAG, "onTouch: "+hostView); Log.d(TAG, "onTouch() called with: v = [" + v + "], event = [" + event + "]"); layout.requestDisallowInterceptTouchEvent(true); int action = event.getAction(); switch (action) { case MotionEvent.ACTION_UP: layout.getParent().requestDisallowInterceptTouchEvent(false); break; } return true; } });*/ } } } } } } private void updateWidgetOption(int appWidgetId, AppWidgetProviderInfo info) { private void updateWidgetOption(int appWidgetId, AppWidgetProviderInfo info) { Bundle newOps = new Bundle(); Bundle newOps = new Bundle(); newOps.putInt(AppWidgetManager.OPTION_APPWIDGET_MIN_WIDTH, info.minWidth); newOps.putInt(AppWidgetManager.OPTION_APPWIDGET_MIN_WIDTH, BlissLauncher.getApplication( this).getDeviceProfile().getMaxWidgetWidth()); newOps.putInt(AppWidgetManager.OPTION_APPWIDGET_MAX_WIDTH, BlissLauncher.getApplication( newOps.putInt(AppWidgetManager.OPTION_APPWIDGET_MAX_WIDTH, BlissLauncher.getApplication( this).getDeviceProfile().getMaxWidgetWidth()); this).getDeviceProfile().getMaxWidgetWidth()); newOps.putInt(AppWidgetManager.OPTION_APPWIDGET_MIN_HEIGHT, info.minHeight); newOps.putInt(AppWidgetManager.OPTION_APPWIDGET_MIN_HEIGHT, info.minHeight); Loading Loading @@ -1561,7 +1590,7 @@ public class LauncherActivity extends AppCompatActivity implements iconLayoutParams.setGravity(Gravity.CENTER); iconLayoutParams.setGravity(Gravity.CENTER); view.setLayoutParams(iconLayoutParams); view.setLayoutParams(iconLayoutParams); view.setWithText(false); view.setWithText(false); if (index == LauncherItem.INVALID_CELL) { if (index == LauncherItem.INVALID_CELL || index > mDock.getChildCount()) { mDock.addView(view); mDock.addView(view); } else { } else { mDock.addView(view, index); mDock.addView(view, index); Loading
app/src/main/res/layout/widgets_page.xml +1 −1 Original line number Original line Diff line number Diff line Loading @@ -5,7 +5,6 @@ android:layout_width="match_parent" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_height="match_parent" android:animateLayoutChanges="true" android:animateLayoutChanges="true" android:background="@color/dark_grey_44" android:orientation="vertical" android:orientation="vertical" android:scrollbars="none" android:scrollbars="none" tools:ignore="ContentDescription"> tools:ignore="ContentDescription"> Loading Loading @@ -74,6 +73,7 @@ android:layout_height="wrap_content" android:layout_height="wrap_content" android:background="@drawable/btn_rounded_corner" android:background="@drawable/btn_rounded_corner" android:fontFamily="sans-serif-medium" android:fontFamily="sans-serif-medium" android:layout_marginTop="8dp" android:text="Edit"/> android:text="Edit"/> </LinearLayout> </LinearLayout> Loading
app/src/main/res/values/dimens.xml +1 −0 Original line number Original line Diff line number Diff line Loading @@ -7,4 +7,5 @@ <dimen name="forecast_item_padding_side">16dp</dimen> <dimen name="forecast_item_padding_side">16dp</dimen> <dimen name="corner_radius">12dp</dimen> <dimen name="corner_radius">12dp</dimen> <dimen name="widget_margin">8dp</dimen> <dimen name="widget_margin">8dp</dimen> <dimen name="min_widget_height">200dp</dimen> </resources> </resources> No newline at end of file