summaryrefslogtreecommitdiffstats
path: root/src/com
diff options
context:
space:
mode:
authorSunny Goyal <sunnygoyal@google.com>2018-07-09 16:47:01 -0700
committerSunny Goyal <sunnygoyal@google.com>2018-07-09 17:01:28 -0700
commit83fd25e3af387325eb99ddd05b4601af9ad3de03 (patch)
treec49fc7c93a2e2636eb2f159adee53b1708c81ff3 /src/com
parentce368154cebf4ab5da9976aa4897317abc55ab1d (diff)
downloadandroid_packages_apps_Trebuchet-83fd25e3af387325eb99ddd05b4601af9ad3de03.tar.gz
android_packages_apps_Trebuchet-83fd25e3af387325eb99ddd05b4601af9ad3de03.tar.bz2
android_packages_apps_Trebuchet-83fd25e3af387325eb99ddd05b4601af9ad3de03.zip
Moving some abstract classes to interfaces, to better use java-8 features
Change-Id: I862af4931c95cbde052130d8b7d4ac3375db782f
Diffstat (limited to 'src/com')
-rw-r--r--src/com/android/launcher3/IconCache.java19
-rw-r--r--src/com/android/launcher3/InstallShortcutReceiver.java12
-rw-r--r--src/com/android/launcher3/Launcher.java8
-rw-r--r--src/com/android/launcher3/LauncherModel.java15
-rw-r--r--src/com/android/launcher3/OverviewButtonClickListener.java51
-rw-r--r--src/com/android/launcher3/Workspace.java10
-rw-r--r--src/com/android/launcher3/graphics/BitmapRenderer.java54
-rw-r--r--src/com/android/launcher3/model/LoaderTask.java14
-rw-r--r--src/com/android/launcher3/util/FloatRange.java39
-rw-r--r--src/com/android/launcher3/util/ItemInfoMatcher.java84
-rw-r--r--src/com/android/launcher3/util/Provider.java13
11 files changed, 67 insertions, 252 deletions
diff --git a/src/com/android/launcher3/IconCache.java b/src/com/android/launcher3/IconCache.java
index c5ca183f7..f496600c7 100644
--- a/src/com/android/launcher3/IconCache.java
+++ b/src/com/android/launcher3/IconCache.java
@@ -478,7 +478,8 @@ public class IconCache {
info.contentDescription = "";
info.usingLowResIcon = false;
} else {
- getTitleAndIcon(info, new ActivityInfoProvider(info.getIntent(), info.user),
+ Intent intent = info.getIntent();
+ getTitleAndIcon(info, () -> mLauncherApps.resolveActivity(intent, info.user),
true, useLowResIcon);
}
}
@@ -869,22 +870,6 @@ public class IconCache {
}
}
- private class ActivityInfoProvider extends Provider<LauncherActivityInfo> {
-
- private final Intent mIntent;
- private final UserHandle mUser;
-
- public ActivityInfoProvider(Intent intent, UserHandle user) {
- mIntent = intent;
- mUser = user;
- }
-
- @Override
- public LauncherActivityInfo get() {
- return mLauncherApps.resolveActivity(mIntent, mUser);
- }
- }
-
/**
* Interface for receiving itemInfo with high-res icon.
*/
diff --git a/src/com/android/launcher3/InstallShortcutReceiver.java b/src/com/android/launcher3/InstallShortcutReceiver.java
index fe8a841be..b9d45fb02 100644
--- a/src/com/android/launcher3/InstallShortcutReceiver.java
+++ b/src/com/android/launcher3/InstallShortcutReceiver.java
@@ -47,7 +47,6 @@ import com.android.launcher3.shortcuts.ShortcutInfoCompat;
import com.android.launcher3.shortcuts.ShortcutKey;
import com.android.launcher3.util.PackageManagerHelper;
import com.android.launcher3.util.Preconditions;
-import com.android.launcher3.util.Provider;
import com.android.launcher3.util.Thunk;
import org.json.JSONException;
@@ -486,13 +485,10 @@ public class InstallShortcutReceiver extends BroadcastReceiver {
if (Looper.myLooper() == LauncherModel.getWorkerLooper()) {
app.getIconCache().getTitleAndIcon(si, activityInfo, false /* useLowResIcon */);
} else {
- app.getModel().updateAndBindShortcutInfo(new Provider<ShortcutInfo>() {
- @Override
- public ShortcutInfo get() {
- app.getIconCache().getTitleAndIcon(
- si, activityInfo, false /* useLowResIcon */);
- return si;
- }
+ app.getModel().updateAndBindShortcutInfo(() -> {
+ app.getIconCache().getTitleAndIcon(
+ si, activityInfo, false /* useLowResIcon */);
+ return si;
});
}
return Pair.create((ItemInfo) si, (Object) activityInfo);
diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java
index c3c4f5e5e..9f16857b6 100644
--- a/src/com/android/launcher3/Launcher.java
+++ b/src/com/android/launcher3/Launcher.java
@@ -74,7 +74,6 @@ import android.view.animation.OvershootInterpolator;
import android.widget.Toast;
import com.android.launcher3.DropTarget.DragObject;
-import com.android.launcher3.Workspace.ItemOperator;
import com.android.launcher3.accessibility.LauncherAccessibilityDelegate;
import com.android.launcher3.allapps.AllAppsContainerView;
import com.android.launcher3.allapps.AllAppsTransitionController;
@@ -1052,12 +1051,7 @@ public class Launcher extends BaseDraggingActivity implements LauncherExterns,
}
public FolderIcon findFolderIcon(final long folderIconId) {
- return (FolderIcon) mWorkspace.getFirstMatch(new ItemOperator() {
- @Override
- public boolean evaluate(ItemInfo info, View view) {
- return info != null && info.id == folderIconId;
- }
- });
+ return (FolderIcon) mWorkspace.getHomescreenIconByItemId(folderIconId);
}
/**
diff --git a/src/com/android/launcher3/LauncherModel.java b/src/com/android/launcher3/LauncherModel.java
index 37538ae0d..19aa795fe 100644
--- a/src/com/android/launcher3/LauncherModel.java
+++ b/src/com/android/launcher3/LauncherModel.java
@@ -620,15 +620,12 @@ public class LauncherModel extends BroadcastReceiver
}
public void updateAndBindShortcutInfo(final ShortcutInfo si, final ShortcutInfoCompat info) {
- updateAndBindShortcutInfo(new Provider<ShortcutInfo>() {
- @Override
- public ShortcutInfo get() {
- si.updateFromDeepShortcutInfo(info, mApp.getContext());
- LauncherIcons li = LauncherIcons.obtain(mApp.getContext());
- li.createShortcutIcon(info).applyTo(si);
- li.recycle();
- return si;
- }
+ updateAndBindShortcutInfo(() -> {
+ si.updateFromDeepShortcutInfo(info, mApp.getContext());
+ LauncherIcons li = LauncherIcons.obtain(mApp.getContext());
+ li.createShortcutIcon(info).applyTo(si);
+ li.recycle();
+ return si;
});
}
diff --git a/src/com/android/launcher3/OverviewButtonClickListener.java b/src/com/android/launcher3/OverviewButtonClickListener.java
deleted file mode 100644
index dd670d2a7..000000000
--- a/src/com/android/launcher3/OverviewButtonClickListener.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package com.android.launcher3;
-
-import android.view.View;
-
-import com.android.launcher3.userevent.nano.LauncherLogProto.Action;
-
-/**
- * A specialized listener for Overview buttons where both clicks and long clicks are logged
- * handled the same via {@link #handleViewClick(View)}.
- */
-public abstract class OverviewButtonClickListener implements View.OnClickListener,
- View.OnLongClickListener {
-
- private int mControlType; /** ControlType enum as defined in {@link Action.Touch} */
-
- public OverviewButtonClickListener(int controlType) {
- mControlType = controlType;
- }
-
- public void attachTo(View v) {
- v.setOnClickListener(this);
- v.setOnLongClickListener(this);
- }
-
- @Override
- public void onClick(View view) {
- if (shouldPerformClick(view)) {
- handleViewClick(view, Action.Touch.TAP);
- }
- }
-
- @Override
- public boolean onLongClick(View view) {
- if (shouldPerformClick(view)) {
- handleViewClick(view, Action.Touch.LONGPRESS);
- }
- return true;
- }
-
- private boolean shouldPerformClick(View view) {
- return !Launcher.getLauncher(view.getContext()).getWorkspace().isSwitchingState();
- }
-
- private void handleViewClick(View view, int action) {
- handleViewClick(view);
- Launcher.getLauncher(view.getContext()).getUserEventDispatcher()
- .logActionOnControl(action, mControlType);
- }
-
- public abstract void handleViewClick(View view);
-} \ No newline at end of file
diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java
index abba9c490..67bdd3bdd 100644
--- a/src/com/android/launcher3/Workspace.java
+++ b/src/com/android/launcher3/Workspace.java
@@ -3034,16 +3034,6 @@ public class Workspace extends PagedView<WorkspacePageIndicator>
});
}
- public View getViewForTag(final Object tag) {
- return getFirstMatch(new ItemOperator() {
-
- @Override
- public boolean evaluate(ItemInfo info, View v) {
- return info == tag;
- }
- });
- }
-
public LauncherAppWidgetHostView getWidgetForAppWidgetId(final int appWidgetId) {
return (LauncherAppWidgetHostView) getFirstMatch(new ItemOperator() {
diff --git a/src/com/android/launcher3/graphics/BitmapRenderer.java b/src/com/android/launcher3/graphics/BitmapRenderer.java
index 3d11c448a..2a7f20ea3 100644
--- a/src/com/android/launcher3/graphics/BitmapRenderer.java
+++ b/src/com/android/launcher3/graphics/BitmapRenderer.java
@@ -23,32 +23,30 @@ import android.os.Build;
import com.android.launcher3.Utilities;
-public class BitmapRenderer {
-
- public static final boolean USE_HARDWARE_BITMAP = Utilities.ATLEAST_P;
-
- public static Bitmap createSoftwareBitmap(int width, int height, Renderer renderer) {
- Bitmap result = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
- renderer.draw(new Canvas(result));
- return result;
- }
-
- @TargetApi(Build.VERSION_CODES.P)
- public static Bitmap createHardwareBitmap(int width, int height, Renderer renderer) {
- if (!USE_HARDWARE_BITMAP) {
- return createSoftwareBitmap(width, height, renderer);
- }
-
- Picture picture = new Picture();
- renderer.draw(picture.beginRecording(width, height));
- picture.endRecording();
- return Bitmap.createBitmap(picture);
- }
-
- /**
- * Interface representing a bitmap draw operation.
- */
- public interface Renderer {
- void draw(Canvas out);
- }
+/**
+ * Interface representing a bitmap draw operation.
+ */
+public interface BitmapRenderer {
+
+ boolean USE_HARDWARE_BITMAP = Utilities.ATLEAST_P;
+
+ static Bitmap createSoftwareBitmap(int width, int height, BitmapRenderer renderer) {
+ Bitmap result = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
+ renderer.draw(new Canvas(result));
+ return result;
+ }
+
+ @TargetApi(Build.VERSION_CODES.P)
+ static Bitmap createHardwareBitmap(int width, int height, BitmapRenderer renderer) {
+ if (!USE_HARDWARE_BITMAP) {
+ return createSoftwareBitmap(width, height, renderer);
+ }
+
+ Picture picture = new Picture();
+ renderer.draw(picture.beginRecording(width, height));
+ picture.endRecording();
+ return Bitmap.createBitmap(picture);
+ }
+
+ void draw(Canvas out);
}
diff --git a/src/com/android/launcher3/model/LoaderTask.java b/src/com/android/launcher3/model/LoaderTask.java
index 06da843f7..e82c8f100 100644
--- a/src/com/android/launcher3/model/LoaderTask.java
+++ b/src/com/android/launcher3/model/LoaderTask.java
@@ -478,15 +478,11 @@ public class LoaderTask implements Runnable {
}
info = new ShortcutInfo(pinnedShortcut, context);
final ShortcutInfo finalInfo = info;
- Provider<Bitmap> fallbackIconProvider = new Provider<Bitmap>() {
- @Override
- public Bitmap get() {
- // If the pinned deep shortcut is no longer published,
- // use the last saved icon instead of the default.
- return c.loadIcon(finalInfo)
- ? finalInfo.iconBitmap : null;
- }
- };
+ // If the pinned deep shortcut is no longer published,
+ // use the last saved icon instead of the default.
+ Provider<Bitmap> fallbackIconProvider = () ->
+ c.loadIcon(finalInfo) ? finalInfo.iconBitmap : null;
+
LauncherIcons li = LauncherIcons.obtain(context);
li.createShortcutIcon(pinnedShortcut,
true /* badged */, fallbackIconProvider).applyTo(info);
diff --git a/src/com/android/launcher3/util/FloatRange.java b/src/com/android/launcher3/util/FloatRange.java
deleted file mode 100644
index 12772f365..000000000
--- a/src/com/android/launcher3/util/FloatRange.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.android.launcher3.util;
-
-/**
- * A mutable class for describing the range of two int values.
- */
-public class FloatRange {
-
- public float start, end;
-
- public FloatRange() { }
-
- public FloatRange(float s, float e) {
- set(s, e);
- }
-
- public void set(float s, float e) {
- start = s;
- end = e;
- }
-
- public boolean contains(float value) {
- return value >= start && value <= end;
- }
-}
diff --git a/src/com/android/launcher3/util/ItemInfoMatcher.java b/src/com/android/launcher3/util/ItemInfoMatcher.java
index daedaef91..19cf6c1e5 100644
--- a/src/com/android/launcher3/util/ItemInfoMatcher.java
+++ b/src/com/android/launcher3/util/ItemInfoMatcher.java
@@ -18,7 +18,6 @@ package com.android.launcher3.util;
import android.content.ComponentName;
import android.os.UserHandle;
-import android.util.SparseLongArray;
import com.android.launcher3.FolderInfo;
import com.android.launcher3.ItemInfo;
@@ -32,14 +31,14 @@ import java.util.HashSet;
/**
* A utility class to check for {@link ItemInfo}
*/
-public abstract class ItemInfoMatcher {
+public interface ItemInfoMatcher {
- public abstract boolean matches(ItemInfo info, ComponentName cn);
+ boolean matches(ItemInfo info, ComponentName cn);
/**
* Filters {@param infos} to those satisfying the {@link #matches(ItemInfo, ComponentName)}.
*/
- public final HashSet<ItemInfo> filterItemInfos(Iterable<ItemInfo> infos) {
+ default HashSet<ItemInfo> filterItemInfos(Iterable<ItemInfo> infos) {
HashSet<ItemInfo> filtered = new HashSet<>();
for (ItemInfo i : infos) {
if (i instanceof ShortcutInfo) {
@@ -70,88 +69,43 @@ public abstract class ItemInfoMatcher {
/**
* Returns a new matcher with returns true if either this or {@param matcher} returns true.
*/
- public ItemInfoMatcher or(final ItemInfoMatcher matcher) {
- final ItemInfoMatcher that = this;
- return new ItemInfoMatcher() {
- @Override
- public boolean matches(ItemInfo info, ComponentName cn) {
- return that.matches(info, cn) || matcher.matches(info, cn);
- }
- };
+ default ItemInfoMatcher or(ItemInfoMatcher matcher) {
+ return (info, cn) -> matches(info, cn) || matcher.matches(info, cn);
}
/**
* Returns a new matcher with returns true if both this and {@param matcher} returns true.
*/
- public ItemInfoMatcher and(final ItemInfoMatcher matcher) {
- final ItemInfoMatcher that = this;
- return new ItemInfoMatcher() {
- @Override
- public boolean matches(ItemInfo info, ComponentName cn) {
- return that.matches(info, cn) && matcher.matches(info, cn);
- }
- };
+ default ItemInfoMatcher and(ItemInfoMatcher matcher) {
+ return (info, cn) -> matches(info, cn) && matcher.matches(info, cn);
}
/**
* Returns a new matcher which returns the opposite boolean value of the provided
* {@param matcher}.
*/
- public static ItemInfoMatcher not(final ItemInfoMatcher matcher) {
- return new ItemInfoMatcher() {
- @Override
- public boolean matches(ItemInfo info, ComponentName cn) {
- return !matcher.matches(info, cn);
- }
- };
+ static ItemInfoMatcher not(ItemInfoMatcher matcher) {
+ return (info, cn) -> !matcher.matches(info, cn);
}
- public static ItemInfoMatcher ofUser(final UserHandle user) {
- return new ItemInfoMatcher() {
- @Override
- public boolean matches(ItemInfo info, ComponentName cn) {
- return info.user.equals(user);
- }
- };
+ static ItemInfoMatcher ofUser(UserHandle user) {
+ return (info, cn) -> info.user.equals(user);
}
- public static ItemInfoMatcher ofComponents(
- final HashSet<ComponentName> components, final UserHandle user) {
- return new ItemInfoMatcher() {
- @Override
- public boolean matches(ItemInfo info, ComponentName cn) {
- return components.contains(cn) && info.user.equals(user);
- }
- };
+ static ItemInfoMatcher ofComponents(HashSet<ComponentName> components, UserHandle user) {
+ return (info, cn) -> components.contains(cn) && info.user.equals(user);
}
- public static ItemInfoMatcher ofPackages(
- final HashSet<String> packageNames, final UserHandle user) {
- return new ItemInfoMatcher() {
- @Override
- public boolean matches(ItemInfo info, ComponentName cn) {
- return packageNames.contains(cn.getPackageName()) && info.user.equals(user);
- }
- };
+ static ItemInfoMatcher ofPackages(HashSet<String> packageNames, UserHandle user) {
+ return (info, cn) -> packageNames.contains(cn.getPackageName()) && info.user.equals(user);
}
- public static ItemInfoMatcher ofShortcutKeys(final HashSet<ShortcutKey> keys) {
- return new ItemInfoMatcher() {
- @Override
- public boolean matches(ItemInfo info, ComponentName cn) {
- return info.itemType == Favorites.ITEM_TYPE_DEEP_SHORTCUT &&
+ static ItemInfoMatcher ofShortcutKeys(HashSet<ShortcutKey> keys) {
+ return (info, cn) -> info.itemType == Favorites.ITEM_TYPE_DEEP_SHORTCUT &&
keys.contains(ShortcutKey.fromItemInfo(info));
- }
- };
}
- public static ItemInfoMatcher ofItemIds(
- final LongArrayMap<Boolean> ids, final Boolean matchDefault) {
- return new ItemInfoMatcher() {
- @Override
- public boolean matches(ItemInfo info, ComponentName cn) {
- return ids.get(info.id, matchDefault);
- }
- };
+ static ItemInfoMatcher ofItemIds(LongArrayMap<Boolean> ids, Boolean matchDefault) {
+ return (info, cn) -> ids.get(info.id, matchDefault);
}
}
diff --git a/src/com/android/launcher3/util/Provider.java b/src/com/android/launcher3/util/Provider.java
index 1cdd8d6aa..4a54c0f05 100644
--- a/src/com/android/launcher3/util/Provider.java
+++ b/src/com/android/launcher3/util/Provider.java
@@ -19,20 +19,15 @@ package com.android.launcher3.util;
/**
* Utility class to allow lazy initialization of objects.
*/
-public abstract class Provider<T> {
+public interface Provider<T> {
/**
* Initializes and returns the object. This may contain expensive operations not suitable
* to UI thread.
*/
- public abstract T get();
+ T get();
- public static <T> Provider<T> of (final T value) {
- return new Provider<T>() {
- @Override
- public T get() {
- return value;
- }
- };
+ static <T> Provider<T> of (T value) {
+ return() -> value;
}
}