Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 628dc472 authored by Amit Kumar's avatar Amit Kumar 💻
Browse files

Fix wallpaper offset bugs and slow down the speed of blur effect

parent 9f5b6708
Loading
Loading
Loading
Loading
Loading
+7 −9
Original line number Original line Diff line number Diff line
@@ -175,15 +175,13 @@ public class BlurWallpaperProvider {


        wallpaper = Bitmap.createScaledBitmap(wallpaper, scaledWidth, scaledHeight, false);
        wallpaper = Bitmap.createScaledBitmap(wallpaper, scaledWidth, scaledHeight, false);


        if(wallpaper.getWidth() >= wallpaper.getHeight()){

            return Bitmap.createBitmap(wallpaper, 0, 0, width, height);
        int y;
        } else {
        if (wallpaper.getHeight() > height) {
            int x = (wallpaper.getWidth() - width) / 2;
            y = (wallpaper.getHeight() - height) / 2;
            if (x < 0 || x + width > wallpaper.getWidth()) {
        } else y = 0;
                x = 0;

            }
        return Bitmap.createBitmap(wallpaper, 0, y, width, height);
            return Bitmap.createBitmap(wallpaper, x, 0, width, height);
        }
    }
    }


    public interface Listener {
    public interface Listener {
+30 −7
Original line number Original line Diff line number Diff line
package foundation.e.blisslauncher.core.broadcast;
package foundation.e.blisslauncher.core.broadcast;


import android.app.WallpaperManager;
import android.content.BroadcastReceiver;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Context;
import android.content.Intent;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.IntentFilter;
import android.os.IBinder;
import android.view.View;


import foundation.e.blisslauncher.core.blur.BlurWallpaperProvider;
import foundation.e.blisslauncher.core.blur.BlurWallpaperProvider;


import static android.content.Context.WALLPAPER_SERVICE;

public class WallpaperChangeReceiver extends BroadcastReceiver {
public class WallpaperChangeReceiver extends BroadcastReceiver {
    private final Context mContext;
    private IBinder mWindowToken;
    private boolean mRegistered;
    private View mWorkspace;

    public  WallpaperChangeReceiver(View workspace){
        this.mWorkspace = workspace;
        this.mContext = mWorkspace.getContext();
    }

    @Override
    @Override
    public void onReceive(Context context, Intent intent) {
    public void onReceive(Context context, Intent intent) {
        BlurWallpaperProvider.getInstance(context).clear();
        BlurWallpaperProvider.getInstance(context).clear();
        updateOffset();
    }
    }


    public static WallpaperChangeReceiver register(Context context) {
    public void setWindowToken(IBinder token) {
        IntentFilter timeIntentFilter = new IntentFilter(Intent.ACTION_WALLPAPER_CHANGED);
        mWindowToken = token;
        WallpaperChangeReceiver receiver = new WallpaperChangeReceiver();
        if (mWindowToken == null && mRegistered) {
        context.registerReceiver(receiver, timeIntentFilter);
            mWorkspace.getContext().unregisterReceiver(this);
        return receiver;
            mRegistered = false;
        } else if (mWindowToken != null && !mRegistered) {
            mWorkspace.getContext()
                    .registerReceiver(this, new IntentFilter(Intent.ACTION_WALLPAPER_CHANGED));
            onReceive(mWorkspace.getContext(), null);
            mRegistered = true;
        }
    }
    }


    public static void unregister(Context context, WallpaperChangeReceiver receiver) {
    private void updateOffset() {
        context.unregisterReceiver(receiver);
        WallpaperManager wm = (WallpaperManager) mContext.getSystemService(WALLPAPER_SERVICE);
        wm.setWallpaperOffsets(mWorkspace.getWindowToken(), 0f, 0.5f);
    }
    }
}
}
+28 −9
Original line number Original line Diff line number Diff line
@@ -305,6 +305,18 @@ public class LauncherActivity extends AppCompatActivity implements


    private void setupViews() {
    private void setupViews() {
        workspace = mLauncherView.findViewById(R.id.workspace);
        workspace = mLauncherView.findViewById(R.id.workspace);
        wallpaperChangeReceiver = new WallpaperChangeReceiver(workspace);
        workspace.addOnAttachStateChangeListener(new View.OnAttachStateChangeListener() {
            @Override
            public void onViewAttachedToWindow(View v) {
                wallpaperChangeReceiver.setWindowToken(v.getWindowToken());
            }

            @Override
            public void onViewDetachedFromWindow(View v) {
                wallpaperChangeReceiver.setWindowToken(null);
            }
        });
        mHorizontalPager = mLauncherView.findViewById(R.id.pages_container);
        mHorizontalPager = mLauncherView.findViewById(R.id.pages_container);
        backgroundLayer = mLauncherView.findViewById(R.id.background_layer);
        backgroundLayer = mLauncherView.findViewById(R.id.background_layer);
        frontLayer = mLauncherView.findViewById(R.id.blur_layer);
        frontLayer = mLauncherView.findViewById(R.id.blur_layer);
@@ -369,7 +381,6 @@ public class LauncherActivity extends AppCompatActivity implements
    private void prepareBroadcastReceivers() {
    private void prepareBroadcastReceivers() {
        timeChangedReceiver = TimeChangeBroadcastReceiver.register(this);
        timeChangedReceiver = TimeChangeBroadcastReceiver.register(this);
        managedProfileReceiver = ManagedProfileBroadcastReceiver.register(this);
        managedProfileReceiver = ManagedProfileBroadcastReceiver.register(this);
        wallpaperChangeReceiver = WallpaperChangeReceiver.register(this);
    }
    }


    protected void attachBaseContext(Context context) {
    protected void attachBaseContext(Context context) {
@@ -466,7 +477,6 @@ public class LauncherActivity extends AppCompatActivity implements
        super.onDestroy();
        super.onDestroy();
        TimeChangeBroadcastReceiver.unregister(this, timeChangedReceiver);
        TimeChangeBroadcastReceiver.unregister(this, timeChangedReceiver);
        ManagedProfileBroadcastReceiver.unregister(this, managedProfileReceiver);
        ManagedProfileBroadcastReceiver.unregister(this, managedProfileReceiver);
        WallpaperChangeReceiver.unregister(this, wallpaperChangeReceiver);
        LocalBroadcastManager.getInstance(this).unregisterReceiver(mWeatherReceiver);
        LocalBroadcastManager.getInstance(this).unregisterReceiver(mWeatherReceiver);
        getCompositeDisposable().dispose();
        getCompositeDisposable().dispose();
        events.unsubscribe();
        events.unsubscribe();
@@ -1109,10 +1119,12 @@ public class LauncherActivity extends AppCompatActivity implements
                Log.d(TAG, "onViewScrollFinished() called with: page = [" + page + "]");
                Log.d(TAG, "onViewScrollFinished() called with: page = [" + page + "]");
                isViewScrolling = false;
                isViewScrolling = false;
                if (page != 0) {
                if (page != 0) {
                    BlurWallpaperProvider.getInstance(LauncherActivity.this).clear();
                    backgroundLayer.setBackground(null);
                    backgroundLayer.setBackground(null);
                }
                }


                if (mFolderWindowContainer.getVisibility() != VISIBLE) {
                if (mFolderWindowContainer.getVisibility() != VISIBLE) {
                    BlurWallpaperProvider.getInstance(LauncherActivity.this).clear();
                    frontLayer.setBackground(null);
                    frontLayer.setBackground(null);
                }
                }
                if (currentPageNumber != page) {
                if (currentPageNumber != page) {
@@ -1151,14 +1163,21 @@ public class LauncherActivity extends AppCompatActivity implements
    public void blurBackgroundLayer(Bitmap bitmap) {
    public void blurBackgroundLayer(Bitmap bitmap) {
        Log.d(TAG, "blurBackgroundLayer() called with: bitmap = [" + bitmap + "]");
        Log.d(TAG, "blurBackgroundLayer() called with: bitmap = [" + bitmap + "]");
        BitmapDrawable drawable = new BitmapDrawable(bitmap);
        BitmapDrawable drawable = new BitmapDrawable(bitmap);
        runOnUiThread(() -> backgroundLayer.setBackground(drawable));
        new Handler(Looper.getMainLooper())
    }
                .post(() -> {
                    Log.d(TAG, "removeBlur() called");
                    backgroundLayer.setBackground(drawable);
                });    }


    @Override
    @Override
    public void blurFrontLayer(Bitmap bitmap) {
    public void blurFrontLayer(Bitmap bitmap) {
        Log.d(TAG, "blurFrontLayer() called with: bitmap = [" + bitmap + "]");
        Log.d(TAG, "blurFrontLayer() called with: bitmap = [" + bitmap + "]");
        BitmapDrawable drawable = new BitmapDrawable(bitmap);
        BitmapDrawable drawable = new BitmapDrawable(bitmap);
        runOnUiThread(() -> frontLayer.setBackground(drawable));
        new Handler(Looper.getMainLooper())
                .post(() -> {
                    Log.d(TAG, "removeBlur() called");
                    frontLayer.setBackground(drawable);
                });
    }
    }


    @Override
    @Override
@@ -2803,7 +2822,7 @@ public class LauncherActivity extends AppCompatActivity implements
                .with(ObjectAnimator.ofFloat(mHorizontalPager, View.ALPHA, 1f, 0f))
                .with(ObjectAnimator.ofFloat(mHorizontalPager, View.ALPHA, 1f, 0f))
                .with(ObjectAnimator.ofFloat(mIndicator, View.ALPHA, 1f, 0f))
                .with(ObjectAnimator.ofFloat(mIndicator, View.ALPHA, 1f, 0f))
                .with(ObjectAnimator.ofFloat(mDock, View.ALPHA, 1f, 0f));
                .with(ObjectAnimator.ofFloat(mDock, View.ALPHA, 1f, 0f));
        set.setDuration(300);
        set.setDuration(400);
        set.setInterpolator(new LinearInterpolator());
        set.setInterpolator(new LinearInterpolator());
        set.addListener(new AnimatorListenerAdapter() {
        set.addListener(new AnimatorListenerAdapter() {
            @Override
            @Override
@@ -2900,7 +2919,7 @@ public class LauncherActivity extends AppCompatActivity implements
                .with(ObjectAnimator.ofFloat(mIndicator, View.ALPHA, 0f, 1f))
                .with(ObjectAnimator.ofFloat(mIndicator, View.ALPHA, 0f, 1f))
                .with(ObjectAnimator.ofFloat(mDock, View.ALPHA, 0f, 1f))
                .with(ObjectAnimator.ofFloat(mDock, View.ALPHA, 0f, 1f))
                .with(valueAnimator);
                .with(valueAnimator);
        set.setDuration(300);
        set.setDuration(400);
        set.setInterpolator(new LinearInterpolator());
        set.setInterpolator(new LinearInterpolator());
        set.addListener(new AnimatorListenerAdapter() {
        set.addListener(new AnimatorListenerAdapter() {
            @Override
            @Override
@@ -2984,7 +3003,7 @@ public class LauncherActivity extends AppCompatActivity implements
                .with(ObjectAnimator.ofFloat(mHorizontalPager, View.ALPHA, 0f))
                .with(ObjectAnimator.ofFloat(mHorizontalPager, View.ALPHA, 0f))
                .with(ObjectAnimator.ofFloat(mIndicator, View.ALPHA, 0f))
                .with(ObjectAnimator.ofFloat(mIndicator, View.ALPHA, 0f))
                .with(ObjectAnimator.ofFloat(mDock, View.ALPHA, 0f));
                .with(ObjectAnimator.ofFloat(mDock, View.ALPHA, 0f));
        set.setDuration(200);
        set.setDuration(500);
        set.setInterpolator(new LinearInterpolator());
        set.setInterpolator(new LinearInterpolator());
        set.addListener(new AnimatorListenerAdapter() {
        set.addListener(new AnimatorListenerAdapter() {
                            @Override
                            @Override
@@ -3103,7 +3122,7 @@ public class LauncherActivity extends AppCompatActivity implements
                .with(ObjectAnimator.ofFloat(mHorizontalPager, View.ALPHA, 1f))
                .with(ObjectAnimator.ofFloat(mHorizontalPager, View.ALPHA, 1f))
                .with(ObjectAnimator.ofFloat(mIndicator, View.ALPHA, 1f))
                .with(ObjectAnimator.ofFloat(mIndicator, View.ALPHA, 1f))
                .with(ObjectAnimator.ofFloat(mDock, View.ALPHA, 1f));
                .with(ObjectAnimator.ofFloat(mDock, View.ALPHA, 1f));
        set.setDuration(200);
        set.setDuration(500);
        set.setInterpolator(new LinearInterpolator());
        set.setInterpolator(new LinearInterpolator());
        set.addListener(new AnimatorListenerAdapter() {
        set.addListener(new AnimatorListenerAdapter() {
                            @Override
                            @Override