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

Commit be10daae authored by Mohammed Althaf T's avatar Mohammed Althaf T 😊
Browse files

Merge branch '2194-s-widget_homescreen' into 'v1-s'

launcher: Dont allow 3rd party apps to place widgets on homescreen

See merge request e/os/BlissLauncher3!28
parents a5298eb3 d0e50113
Loading
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -30,4 +30,5 @@
    <string name="widget_remove">Remove</string>
    <string name="remove_widgets">Remove Widgets</string>
    <string name="show_notification_count">Show notification count</string>
    <string name="add_to_widget_Screen">Add to -1 screen</string>
</resources>
+5 −0
Original line number Diff line number Diff line
@@ -524,6 +524,11 @@ class WidgetContainer(context: Context, attrs: AttributeSet?) : FrameLayout(cont
                    defaultWidgets.add(widget.componentName)
                }
            }

            @JvmStatic
            fun onWidgetAdded(componentName: ComponentName) {
                defaultWidgets.add(componentName)
            }
        }
    }
}
+1 −0
Original line number Diff line number Diff line
@@ -107,6 +107,7 @@
                    android:layout_height="wrap_content" />

                <Button
                    android:id="@+id/add_to_workspace"
                    style="@style/Button.FullRounded.Colored"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
+4 −1
Original line number Diff line number Diff line
@@ -738,6 +738,9 @@ public class CellLayout extends ViewGroup {
    }

    public boolean acceptsWidget() {
        if (MultiModeController.isSingleLayerMode()) {
            return false;
        }
            return mContainerType == WORKSPACE;
    }

+20 −1
Original line number Diff line number Diff line
@@ -42,6 +42,7 @@ import android.os.AsyncTask;
import android.os.Build;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.DragShadowBuilder;
@@ -50,6 +51,7 @@ import android.view.View.OnTouchListener;
import android.view.WindowManager;
import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityManager;
import android.widget.Button;
import android.widget.TextView;

import com.android.launcher3.BaseActivity;
@@ -79,7 +81,9 @@ import com.android.launcher3.widget.WidgetManagerHelper;
import java.util.Objects;
import java.util.function.Supplier;

import foundation.e.bliss.multimode.MultiModeController;
import foundation.e.bliss.utils.BlissConstants;
import foundation.e.bliss.widgets.WidgetContainer.WidgetFragment;

/**
 * Activity to show pin widget dialog.
@@ -148,6 +152,11 @@ public class AddItemActivity extends BaseActivity
                return;
            }
        } else {
            if (MultiModeController.isSingleLayerMode()) {
                ((Button) findViewById(R.id.add_to_workspace))
                        .setText(getString(R.string.add_to_widget_Screen));
                ((TextView)findViewById(R.id.widget_drag_instruction)).setVisibility(View.GONE);
            }
            if (!setupWidget()) {
                // TODO: show error toast?
                finish();
@@ -159,6 +168,11 @@ public class AddItemActivity extends BaseActivity
        previewContainer.setOnTouchListener(this);
        previewContainer.setOnLongClickListener(this);

        if (MultiModeController.isSingleLayerMode()) {
            previewContainer.setOnTouchListener(null);
            previewContainer.setOnLongClickListener(null);
        }

        // savedInstanceState is null when the activity is created the first time (i.e., avoids
        // duplicate logging during rotation)
        if (savedInstanceState == null) {
@@ -335,8 +349,13 @@ public class AddItemActivity extends BaseActivity
            return;
        }

        mPendingBindWidgetId = mAppWidgetHost.allocateAppWidgetId();
        AppWidgetProviderInfo widgetProviderInfo = mRequest.getAppWidgetProviderInfo(this);
        if (MultiModeController.isSingleLayerMode() && widgetProviderInfo != null) {
            WidgetFragment.onWidgetAdded(widgetProviderInfo.provider);
            return;
        }

        mPendingBindWidgetId = mAppWidgetHost.allocateAppWidgetId();
        boolean success = mAppWidgetManager.bindAppWidgetIdIfAllowed(
                mPendingBindWidgetId, widgetProviderInfo, mWidgetOptions);
        if (success) {