Intercept touch events for launcher preview root view

This change prevents any accidental touches on any widgets in the
preview.

Test: Tapping on launcher preview in wallpaper app should never activate
a widget.
Bug: 191623924

Change-Id: I98d462eca699cf368dcd5894f15584f280932ccc
This commit is contained in:
Brian Isganitis
2021-06-29 16:03:55 -04:00
parent 689755723b
commit 3b39f3164b
2 changed files with 15 additions and 2 deletions
+2 -2
View File
@@ -13,7 +13,7 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
<com.android.launcher3.InsettableFrameLayout
<view class="com.android.launcher3.graphics.LauncherPreviewRenderer$LauncherPreviewLayout"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:launcher="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
@@ -33,4 +33,4 @@
android:id="@+id/hotseat"
layout="@layout/hotseat" />
</com.android.launcher3.InsettableFrameLayout>
</view>
@@ -46,6 +46,7 @@ import android.util.AttributeSet;
import android.util.SparseIntArray;
import android.view.ContextThemeWrapper;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.view.WindowInsets;
@@ -534,4 +535,16 @@ public class LauncherPreviewRenderer extends ContextWrapper
return false;
}
}
/** Root layout for launcher preview that intercepts all touch events. */
public static class LauncherPreviewLayout extends InsettableFrameLayout {
public LauncherPreviewLayout(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
return true;
}
}
}