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

Commit 10797bcc authored by Abhishek Aggarwal's avatar Abhishek Aggarwal Committed by Mohammed Althaf T
Browse files

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

parent 8e2e8a26
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
@@ -534,6 +534,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
@@ -108,6 +108,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
@@ -772,6 +772,9 @@ public class CellLayout extends ViewGroup {
    }

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

+19 −1
Original line number Diff line number Diff line
@@ -51,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 androidx.annotation.Nullable;
@@ -87,7 +88,9 @@ import com.android.launcher3.widget.WidgetSections;
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.
@@ -163,6 +166,11 @@ public class AddItemActivity extends BaseActivity
                break;
            case PinItemRequest.REQUEST_TYPE_APPWIDGET:
                targetApp = setupWidget();
                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);
                }
                break;
            default:
                targetApp = null;
@@ -185,6 +193,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) {
@@ -369,8 +382,13 @@ public class AddItemActivity extends BaseActivity
            return;
        }

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

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