(t);
19 | }
20 |
21 | @Override
22 | public void handleMessage(Message msg) {
23 | if (weakReference == null || weakReference.get() == null) {
24 | return;
25 | }
26 | handleMessage(weakReference.get(), msg);
27 | super.handleMessage(msg);
28 | }
29 |
30 | protected abstract void handleMessage(T t, Message msg);
31 | }
32 |
--------------------------------------------------------------------------------
/mxlibrary/src/main/java/com/android/mxlibrary/view/ViewUtil.java:
--------------------------------------------------------------------------------
1 | package com.android.mxlibrary.view;
2 |
3 | import android.graphics.Rect;
4 | import android.view.View;
5 |
6 | public final class ViewUtil {
7 |
8 | /**
9 | * add by codemx
10 | * 判断是否滑动(上下滑动)到屏幕中
11 | *
12 | * 在onScrollChanged方法中调用
13 | *
14 | * @param view 视图
15 | *
16 | * @return 是否显示在屏幕中
17 | */
18 | public static boolean isViewVerticalScrollToScreen(View view) {
19 | Rect rect = new Rect();
20 | view.getLocalVisibleRect(rect);
21 | int top = rect.top;
22 | int bottom = rect.bottom;
23 | return top >= 0 && bottom > 0 && top < bottom;
24 | }
25 |
26 | /**
27 | * add by codemx
28 | * 判断是否滑动(上下滑动)到屏幕中
29 | *
30 | * 在onScrollChanged方法中调用
31 | *
32 | * @param view 视图
33 | *
34 | * @return 是否显示在屏幕中
35 | */
36 | public static boolean isViewHorizontalScrollToScreen(View view) {
37 | Rect rect = new Rect();
38 | view.getLocalVisibleRect(rect);
39 | int left = rect.left;
40 | int right = rect.right;
41 | return left >= 0 && right > 0 && left < right;
42 | }
43 |
44 | }
45 |
--------------------------------------------------------------------------------
/mxlibrary/src/main/res/drawable/ic_close_black_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/mxlibrary/src/main/res/drawable/ic_close_black_24dp.png
--------------------------------------------------------------------------------
/mxlibrary/src/main/res/drawable/ic_home_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/mxlibrary/src/main/res/drawable/ic_home_white_24dp.png
--------------------------------------------------------------------------------
/mxlibrary/src/main/res/drawable/ic_menu_black_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/mxlibrary/src/main/res/drawable/ic_menu_black_24dp.png
--------------------------------------------------------------------------------
/mxlibrary/src/main/res/drawable/ic_notifications_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/mxlibrary/src/main/res/drawable/ic_notifications_white_24dp.png
--------------------------------------------------------------------------------
/mxlibrary/src/main/res/drawable/ic_place_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/mxlibrary/src/main/res/drawable/ic_place_white_24dp.png
--------------------------------------------------------------------------------
/mxlibrary/src/main/res/drawable/ic_search_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/mxlibrary/src/main/res/drawable/ic_search_white_24dp.png
--------------------------------------------------------------------------------
/mxlibrary/src/main/res/drawable/ic_settings_white_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/mxlibrary/src/main/res/drawable/ic_settings_white_24dp.png
--------------------------------------------------------------------------------
/mxlibrary/src/main/res/values/array.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | - @drawable/ic_home_white_24dp
5 | - @drawable/ic_search_white_24dp
6 | - @drawable/ic_notifications_white_24dp
7 | - @drawable/ic_settings_white_24dp
8 | - @drawable/ic_place_white_24dp
9 |
10 |
11 | - @android:color/holo_blue_light
12 | - @android:color/holo_green_dark
13 | - @android:color/holo_red_light
14 | - @android:color/holo_purple
15 | - @android:color/holo_orange_light
16 |
17 |
--------------------------------------------------------------------------------
/mxlibrary/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
20 |
21 | #3F51B5
22 | #303F9F
23 | #FF4081
24 |
25 |
--------------------------------------------------------------------------------
/mxlibrary/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | MXLibrary
3 |
4 |
--------------------------------------------------------------------------------
/mxtheme/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.library'
2 |
3 | android {
4 | compileSdkVersion rootProject.compileSdkVersion
5 |
6 | defaultConfig {
7 | minSdkVersion rootProject.minSdkVersion
8 | targetSdkVersion rootProject.targetSdkVersion
9 |
10 | testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
11 |
12 | }
13 |
14 | buildTypes {
15 | release {
16 | minifyEnabled false
17 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
18 | }
19 | }
20 |
21 | }
22 |
23 | dependencies {
24 | implementation fileTree(include: ['*.jar'], dir: 'libs')
25 | implementation 'androidx.appcompat:appcompat:1.2.0'
26 | implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
27 |
28 | testImplementation 'junit:junit:4.13.2'
29 | androidTestImplementation 'androidx.test.ext:junit:1.1.2'
30 | androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
31 |
32 | implementation project(':mxlibrary')
33 | }
34 |
--------------------------------------------------------------------------------
/mxtheme/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
22 |
--------------------------------------------------------------------------------
/mxtheme/src/androidTest/java/com/android/mxtheme/ExampleInstrumentedTest.java:
--------------------------------------------------------------------------------
1 | package com.android.mxtheme;
2 |
3 | import android.content.Context;
4 | import androidx.test.platform.app.InstrumentationRegistry;
5 | import androidx.test.ext.junit.runners.AndroidJUnit4;
6 |
7 | import org.junit.Test;
8 | import org.junit.runner.RunWith;
9 |
10 | import static org.junit.Assert.*;
11 |
12 | /**
13 | * Instrumented test, which will execute on an Android device.
14 | *
15 | * @see Testing documentation
16 | */
17 | @RunWith(AndroidJUnit4.class)
18 | public class ExampleInstrumentedTest {
19 | @Test
20 | public void useAppContext() {
21 | // Context of the app under test.
22 | Context appContext = InstrumentationRegistry.getTargetContext();
23 |
24 | assertEquals("com.android.mxtheme.test", appContext.getPackageName());
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/mxtheme/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/mxtheme/src/main/aidl/com/android/mxtheme/IRemoteCallback.aidl:
--------------------------------------------------------------------------------
1 | // IRemoteCallback.aidl
2 | package com.android.mxtheme;
3 |
4 | import com.android.mxtheme.bean.ThemeBean;
5 | import com.android.mxtheme.bean.WallpaperBean;
6 |
7 | interface IRemoteCallback {
8 |
9 | /**
10 | * 设置主题成功回调
11 | *
12 | * @param bean 设置的主题对象
13 | */
14 | void onThemeSuccess(in ThemeBean bean);
15 |
16 | /**
17 | * 设置主题失败回调
18 | *
19 | * @param errMsg 错误信息
20 | * @param bean 设置失败的主题
21 | */
22 | void onThemeFail(in String errMsg, in ThemeBean bean);
23 |
24 | /**
25 | * 设置壁纸成功回调
26 | *
27 | * @param bean 设置的壁纸对象
28 | */
29 | void onWallpaperSuccess(in WallpaperBean bean);
30 |
31 | /**
32 | * 设置壁纸失败回调
33 | *
34 | * @param errMsg 错误信息
35 | * @param bean 设置失败的壁纸
36 | */
37 | void onWallpaperFail(in String errMsg, in WallpaperBean bean);
38 |
39 | }
40 |
--------------------------------------------------------------------------------
/mxtheme/src/main/aidl/com/android/mxtheme/IThemeService.aidl:
--------------------------------------------------------------------------------
1 | // IThemeLife.aidl
2 | package com.android.mxtheme;
3 |
4 | import com.android.mxtheme.IRemoteCallback;
5 | import com.android.mxtheme.bean.ThemeBean;
6 | import com.android.mxtheme.bean.WallpaperBean;
7 |
8 | interface IThemeService {
9 |
10 | /**
11 | * 注册回调
12 | *
13 | * @param callback 回调
14 | */
15 | void register(IRemoteCallback callback);
16 |
17 | /**
18 | * 取消注册回调
19 | *
20 | * @param callback 回调
21 | */
22 | void unRegister(IRemoteCallback callback);
23 |
24 | /**
25 | * 除了基本数据类型,其他类型的参数都需要标上方向类型:in(输入), out(输出), inout(输入输出)
26 | */
27 | boolean setTheme(in ThemeBean themeBean);
28 |
29 | /**
30 | * 除了基本数据类型,其他类型的参数都需要标上方向类型:in(输入), out(输出), inout(输入输出)
31 | */
32 | boolean setWallpaper(in WallpaperBean wallpaperBean);
33 |
34 | }
35 |
--------------------------------------------------------------------------------
/mxtheme/src/main/aidl/com/android/mxtheme/bean/ThemeBean.aidl:
--------------------------------------------------------------------------------
1 | // ThemeBean.aidl(包名和实体类包名一样)
2 | package com.android.mxtheme.bean;
3 |
4 | // 主题
5 | parcelable ThemeBean;
6 |
--------------------------------------------------------------------------------
/mxtheme/src/main/aidl/com/android/mxtheme/bean/WallpaperBean.aidl:
--------------------------------------------------------------------------------
1 | // WallpaperBean.aidl(包名和实体类包名一样)
2 | package com.android.mxtheme.bean;
3 |
4 | // 壁纸
5 | parcelable WallpaperBean;
6 |
--------------------------------------------------------------------------------
/mxtheme/src/main/java/com/android/mxtheme/IThemeClient.java:
--------------------------------------------------------------------------------
1 | package com.android.mxtheme;
2 |
3 | import android.content.Context;
4 | import android.os.IBinder;
5 |
6 | import com.android.mxtheme.bean.ThemeBean;
7 | import com.android.mxtheme.bean.WallpaperBean;
8 |
9 | public interface IThemeClient {
10 |
11 | void bindService(Context context);
12 |
13 | void unbindService(Context context);
14 |
15 | void changeTheme(ThemeBean themeBean);
16 |
17 | void changeWallpaper(WallpaperBean wallpaperBean);
18 |
19 | void registerRemoteCallback();
20 |
21 | void unRegisterRemoteCallback();
22 |
23 | void linkToDeath(IBinder service);
24 |
25 | void unlinkToDeath();
26 |
27 | }
28 |
--------------------------------------------------------------------------------
/mxtheme/src/main/res/layout/theme_activity.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
12 |
13 |
18 |
19 |
23 |
24 |
--------------------------------------------------------------------------------
/mxtheme/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | MX Theme
3 |
4 |
--------------------------------------------------------------------------------
/mxtheme/src/test/java/com/android/mxtheme/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.android.mxtheme;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * @see Testing documentation
11 | */
12 | public class ExampleUnitTest {
13 | @Test
14 | public void addition_isCorrect() {
15 | assertEquals(4, 2 + 2);
16 | }
17 | }
--------------------------------------------------------------------------------
/proto_overrides/launcher_log_extension.proto:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2017 The Android Open Source Project
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | syntax = "proto2";
17 |
18 | option java_package = "com.android.launcher3.userevent";
19 | option java_outer_classname = "LauncherLogExtensions";
20 |
21 | package userevent;
22 |
23 | //
24 | // Use this to add any app specific extensions to the proto.
25 | //
26 | message LauncherEventExtension {
27 | }
28 |
29 | message TargetExtension {
30 | }
31 |
--------------------------------------------------------------------------------
/quickstep/libs/sysui_shared.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/quickstep/libs/sysui_shared.jar
--------------------------------------------------------------------------------
/quickstep/res/drawable/bg_workspace_card_button.xml:
--------------------------------------------------------------------------------
1 |
2 |
20 |
21 |
23 | -
24 |
25 |
26 |
27 | -
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/quickstep/res/drawable/ic_pin.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
17 |
22 |
23 |
26 |
--------------------------------------------------------------------------------
/quickstep/res/layout/overview_clear_all_button.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/quickstep/res/layout/scrim_view.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
--------------------------------------------------------------------------------
/quickstep/res/values/config.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
17 |
18 |
19 |
20 |
21 | com.android.quickstep.logging.UserEventDispatcherExtension
22 |
23 |
--------------------------------------------------------------------------------
/quickstep/res/values/override.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
17 |
18 | com.android.launcher3.LauncherAppTransitionManagerImpl
19 |
20 | com.android.quickstep.InstantAppResolverImpl
21 |
22 | com.android.quickstep.QuickstepProcessInitializer
23 |
24 |
25 |
--------------------------------------------------------------------------------
/quickstep/src/com/android/quickstep/RemoteRunnable.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2018 The Android Open Source Project
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.android.quickstep;
17 |
18 | import android.os.RemoteException;
19 | import android.util.Log;
20 |
21 | @FunctionalInterface
22 | public interface RemoteRunnable {
23 |
24 | void run() throws RemoteException;
25 |
26 | static void executeSafely(RemoteRunnable r) {
27 | try {
28 | r.run();
29 | } catch (final RemoteException e) {
30 | Log.e("RemoteRunnable", "Error calling remote method", e);
31 | }
32 | }
33 | }
--------------------------------------------------------------------------------
/quickstep/src/com/android/quickstep/fallback/RecentsTaskController.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2018 The Android Open Source Project
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.android.quickstep.fallback;
17 |
18 | import com.android.launcher3.uioverrides.TaskViewTouchController;
19 | import com.android.quickstep.RecentsActivity;
20 |
21 | public class RecentsTaskController extends TaskViewTouchController {
22 |
23 | public RecentsTaskController(RecentsActivity activity) {
24 | super(activity);
25 | }
26 |
27 | @Override
28 | protected boolean isRecentsInteractive() {
29 | return mActivity.hasWindowFocus();
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/quickstep/src/com/android/quickstep/util/TransformedRect.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2018 The Android Open Source Project
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.android.quickstep.util;
17 |
18 | import android.graphics.Rect;
19 |
20 | /**
21 | * A wrapper around {@link Rect} with additional transformation properties
22 | */
23 | public class TransformedRect {
24 |
25 | public final Rect rect = new Rect();
26 | public float scale = 1;
27 |
28 | public void set(TransformedRect transformedRect) {
29 | rect.set(transformedRect.rect);
30 | scale = transformedRect.scale;
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/res/anim/anim_menu_in.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
--------------------------------------------------------------------------------
/res/anim/no_anim.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
17 |
19 |
--------------------------------------------------------------------------------
/res/color-v24/all_apps_bg_hand_fill.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
23 |
24 |
25 |
26 |
27 |
--------------------------------------------------------------------------------
/res/color/all_apps_tab_text.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/res/drawable-hdpi/cross.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/res/drawable-hdpi/cross.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/cube_in.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/res/drawable-hdpi/cube_in.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/cube_out.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/res/drawable-hdpi/cube_out.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/effect_cross.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/res/drawable-hdpi/effect_cross.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/effect_cube_in.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/res/drawable-hdpi/effect_cube_in.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/effect_cube_out.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/res/drawable-hdpi/effect_cube_out.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/effect_normals.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/res/drawable-hdpi/effect_normals.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/effect_page.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/res/drawable-hdpi/effect_page.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/effect_scale.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/res/drawable-hdpi/effect_scale.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/effect_windmill.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/res/drawable-hdpi/effect_windmill.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/ic_allapps.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/res/drawable-hdpi/ic_allapps.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/ic_allapps_pressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/res/drawable-hdpi/ic_allapps_pressed.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/ic_widget_resize_handle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/res/drawable-hdpi/ic_widget_resize_handle.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/in_use.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/res/drawable-hdpi/in_use.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/menu_effect_item.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/res/drawable-hdpi/menu_effect_item.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/menu_effect_item_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/res/drawable-hdpi/menu_effect_item_normal.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/menu_effect_item_press.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/res/drawable-hdpi/menu_effect_item_press.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/menu_effect_item_pressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/res/drawable-hdpi/menu_effect_item_pressed.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/menu_theme_item.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/res/drawable-hdpi/menu_theme_item.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/menu_theme_item_pressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/res/drawable-hdpi/menu_theme_item_pressed.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/menu_widget_item.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/res/drawable-hdpi/menu_widget_item.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/menu_widget_item_press.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/res/drawable-hdpi/menu_widget_item_press.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/widget_resize_frame.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/res/drawable-hdpi/widget_resize_frame.9.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/widget_resize_shadow.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/res/drawable-hdpi/widget_resize_shadow.9.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/work_tab_user_education.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/res/drawable-hdpi/work_tab_user_education.png
--------------------------------------------------------------------------------
/res/drawable-hdpi/workspace_bg.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/res/drawable-hdpi/workspace_bg.9.png
--------------------------------------------------------------------------------
/res/drawable-mdpi/ic_allapps.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/res/drawable-mdpi/ic_allapps.png
--------------------------------------------------------------------------------
/res/drawable-mdpi/ic_allapps_pressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/res/drawable-mdpi/ic_allapps_pressed.png
--------------------------------------------------------------------------------
/res/drawable-mdpi/ic_widget_resize_handle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/res/drawable-mdpi/ic_widget_resize_handle.png
--------------------------------------------------------------------------------
/res/drawable-mdpi/widget_resize_frame.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/res/drawable-mdpi/widget_resize_frame.9.png
--------------------------------------------------------------------------------
/res/drawable-mdpi/widget_resize_shadow.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/res/drawable-mdpi/widget_resize_shadow.9.png
--------------------------------------------------------------------------------
/res/drawable-mdpi/work_tab_user_education.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/res/drawable-mdpi/work_tab_user_education.png
--------------------------------------------------------------------------------
/res/drawable-mdpi/workspace_bg.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/res/drawable-mdpi/workspace_bg.9.png
--------------------------------------------------------------------------------
/res/drawable-v24/ic_remove_shadow.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
20 |
--------------------------------------------------------------------------------
/res/drawable-v24/ic_setup_shadow.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
20 |
--------------------------------------------------------------------------------
/res/drawable-v24/ic_uninstall_shadow.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
20 |
--------------------------------------------------------------------------------
/res/drawable-v26/adaptive_icon_drawable_wrapper.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/res/drawable-v26/ic_launcher_home.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/res/drawable-xhdpi/ic_allapps.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/res/drawable-xhdpi/ic_allapps.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/ic_allapps_pressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/res/drawable-xhdpi/ic_allapps_pressed.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/ic_uninstall.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/res/drawable-xhdpi/ic_uninstall.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/ic_widget_resize_handle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/res/drawable-xhdpi/ic_widget_resize_handle.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/widget_resize_frame.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/res/drawable-xhdpi/widget_resize_frame.9.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/widget_resize_shadow.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/res/drawable-xhdpi/widget_resize_shadow.9.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/work_tab_user_education.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/res/drawable-xhdpi/work_tab_user_education.png
--------------------------------------------------------------------------------
/res/drawable-xhdpi/workspace_bg.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/res/drawable-xhdpi/workspace_bg.9.png
--------------------------------------------------------------------------------
/res/drawable-xxhdpi/effect.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/res/drawable-xxhdpi/effect.png
--------------------------------------------------------------------------------
/res/drawable-xxhdpi/ic_allapps.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/res/drawable-xxhdpi/ic_allapps.png
--------------------------------------------------------------------------------
/res/drawable-xxhdpi/ic_allapps_pressed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/res/drawable-xxhdpi/ic_allapps_pressed.png
--------------------------------------------------------------------------------
/res/drawable-xxhdpi/ic_widget_resize_handle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/res/drawable-xxhdpi/ic_widget_resize_handle.png
--------------------------------------------------------------------------------
/res/drawable-xxhdpi/plus.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/res/drawable-xxhdpi/plus.png
--------------------------------------------------------------------------------
/res/drawable-xxhdpi/setting.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/res/drawable-xxhdpi/setting.png
--------------------------------------------------------------------------------
/res/drawable-xxhdpi/theme.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/res/drawable-xxhdpi/theme.png
--------------------------------------------------------------------------------
/res/drawable-xxhdpi/wallpapaer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/res/drawable-xxhdpi/wallpapaer.png
--------------------------------------------------------------------------------
/res/drawable-xxhdpi/widget.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/res/drawable-xxhdpi/widget.png
--------------------------------------------------------------------------------
/res/drawable-xxhdpi/widget_resize_frame.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/res/drawable-xxhdpi/widget_resize_frame.9.png
--------------------------------------------------------------------------------
/res/drawable-xxhdpi/widget_resize_shadow.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/res/drawable-xxhdpi/widget_resize_shadow.9.png
--------------------------------------------------------------------------------
/res/drawable-xxhdpi/work_tab_user_education.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/res/drawable-xxhdpi/work_tab_user_education.png
--------------------------------------------------------------------------------
/res/drawable-xxhdpi/workspace_bg.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/res/drawable-xxhdpi/workspace_bg.9.png
--------------------------------------------------------------------------------
/res/drawable-xxxhdpi/ic_widget_resize_handle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/res/drawable-xxxhdpi/ic_widget_resize_handle.png
--------------------------------------------------------------------------------
/res/drawable-xxxhdpi/widget_resize_frame.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/res/drawable-xxxhdpi/widget_resize_frame.9.png
--------------------------------------------------------------------------------
/res/drawable-xxxhdpi/widget_resize_shadow.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/res/drawable-xxxhdpi/widget_resize_shadow.9.png
--------------------------------------------------------------------------------
/res/drawable-xxxhdpi/workspace_bg.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/res/drawable-xxxhdpi/workspace_bg.9.png
--------------------------------------------------------------------------------
/res/drawable/all_apps_button_icon.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/res/drawable/all_apps_divider.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/res/drawable/all_apps_search_hint.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/res/drawable/bg_all_apps_searchbox.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/res/drawable/bg_deferred_app_widget.xml:
--------------------------------------------------------------------------------
1 |
2 |
20 |
21 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/res/drawable/gutter_horizontal.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
--------------------------------------------------------------------------------
/res/drawable/ic_close.xml:
--------------------------------------------------------------------------------
1 |
15 |
20 |
23 |
--------------------------------------------------------------------------------
/res/drawable/ic_install_no_shadow.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
21 |
22 |
25 |
27 |
28 |
--------------------------------------------------------------------------------
/res/drawable/ic_launcher_home.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
19 |
--------------------------------------------------------------------------------
/res/drawable/pending_widget_bg.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
20 |
--------------------------------------------------------------------------------
/res/drawable/round_rect_primary.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/res/drawable/selector_effect_cross.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/res/drawable/selector_effect_cube_in.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/res/drawable/selector_effect_cube_out.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/res/drawable/selector_effect_noraml.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/res/drawable/selector_effect_scale.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/res/drawable/selector_effect_windmill.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/res/drawable/selector_menu_effect.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/res/drawable/selector_menu_theme.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/res/drawable/selector_menu_widget.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/res/drawable/shape_menu_item_bg.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/res/drawable/tooltip_frame.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/res/drawable/top_round_rect_primary.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
19 |
20 |
26 |
27 |
--------------------------------------------------------------------------------
/res/drawable/widget_internal_focus_bg.xml:
--------------------------------------------------------------------------------
1 |
2 |
20 |
21 |
22 |
23 | -
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/res/interpolator/decelerate_quart.xml:
--------------------------------------------------------------------------------
1 |
2 |
19 |
20 |
22 |
--------------------------------------------------------------------------------
/res/interpolator/decelerate_quint.xml:
--------------------------------------------------------------------------------
1 |
2 |
19 |
20 |
22 |
--------------------------------------------------------------------------------
/res/interpolator/disco_bounce.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 |
23 |
--------------------------------------------------------------------------------
/res/interpolator/folder_interpolator.xml:
--------------------------------------------------------------------------------
1 |
2 |
19 |
20 |
25 |
--------------------------------------------------------------------------------
/res/interpolator/large_folder_preview_item_close_interpolator.xml:
--------------------------------------------------------------------------------
1 |
2 |
19 |
20 |
25 |
--------------------------------------------------------------------------------
/res/interpolator/large_folder_preview_item_open_interpolator.xml:
--------------------------------------------------------------------------------
1 |
2 |
19 |
20 |
25 |
--------------------------------------------------------------------------------
/res/layout/app_icon.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/res/layout/appwidget_not_ready.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 |
21 |
--------------------------------------------------------------------------------
/res/layout/circle_menu.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
13 |
14 |
21 |
22 |
--------------------------------------------------------------------------------
/res/layout/custom_content.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
21 |
22 |
--------------------------------------------------------------------------------
/res/layout/folder_application.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
17 |
23 |
--------------------------------------------------------------------------------
/res/layout/folder_page.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
17 |
25 |
--------------------------------------------------------------------------------
/res/layout/menu_item_layout.xml:
--------------------------------------------------------------------------------
1 |
2 |
15 |
--------------------------------------------------------------------------------
/res/layout/notification_gutter.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
--------------------------------------------------------------------------------
/res/layout/notification_pref_warning.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
24 |
--------------------------------------------------------------------------------
/res/layout/overview_panel.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
--------------------------------------------------------------------------------
/res/layout/popup_container.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
17 |
--------------------------------------------------------------------------------
/res/layout/popup_widget.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
17 |
--------------------------------------------------------------------------------
/res/layout/system_shortcut_icon_only.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
17 |
26 |
--------------------------------------------------------------------------------
/res/layout/system_shortcut_icons.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
17 |
26 |
--------------------------------------------------------------------------------
/res/layout/widget_cell.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/res/layout/widget_list_divider.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
--------------------------------------------------------------------------------
/res/layout/workspace_screen.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
17 |
24 |
--------------------------------------------------------------------------------
/res/mipmap-hdpi/ic_launcher_home.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/res/mipmap-hdpi/ic_launcher_home.png
--------------------------------------------------------------------------------
/res/mipmap-hdpi/ic_launcher_home_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/res/mipmap-hdpi/ic_launcher_home_foreground.png
--------------------------------------------------------------------------------
/res/mipmap-mdpi/ic_launcher_home.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/res/mipmap-mdpi/ic_launcher_home.png
--------------------------------------------------------------------------------
/res/mipmap-mdpi/ic_launcher_home_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/res/mipmap-mdpi/ic_launcher_home_foreground.png
--------------------------------------------------------------------------------
/res/mipmap-xhdpi/ic_launcher_home.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/res/mipmap-xhdpi/ic_launcher_home.png
--------------------------------------------------------------------------------
/res/mipmap-xhdpi/ic_launcher_home_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/res/mipmap-xhdpi/ic_launcher_home_foreground.png
--------------------------------------------------------------------------------
/res/mipmap-xxhdpi/ic_launcher_home.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/res/mipmap-xxhdpi/ic_launcher_home.png
--------------------------------------------------------------------------------
/res/mipmap-xxhdpi/ic_launcher_home_foreground.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Launcher3-dev/Launcher3-mx/668dc2f0b40a6f8926d2828812d406aa1da037fb/res/mipmap-xxhdpi/ic_launcher_home_foreground.png
--------------------------------------------------------------------------------
/res/raw/downgrade_schema.json:
--------------------------------------------------------------------------------
1 | {
2 | // Note: Comments are not supported in JSON schema, but android parser is lenient.
3 |
4 | // Maximum DB version supported by this schema
5 | "version": 27,
6 | // Downgrade from 27 to 26. Empty array indicates, the DB is compatible
7 | "downgrade_to_26": [],
8 | "downgrade_to_25": [],
9 | "downgrade_to_24": [],
10 | "downgrade_to_23": [],
11 | "downgrade_to_22": [
12 | "ALTER TABLE favorites RENAME TO temp_favorites;",
13 | "CREATE TABLE favorites(_id INTEGER PRIMARY KEY, title TEXT, intent TEXT, container INTEGER, screen INTEGER, cellX INTEGER, cellY INTEGER, spanX INTEGER, spanY INTEGER, itemType INTEGER, appWidgetId INTEGER NOT NULL DEFAULT - 1, iconPackage TEXT, iconResource TEXT, icon BLOB, appWidgetProvider TEXT, modified INTEGER NOT NULL DEFAULT 0, restored INTEGER NOT NULL DEFAULT 0, profileId INTEGER DEFAULT 0, rank INTEGER NOT NULL DEFAULT 0);",
14 | "INSERT INTO favorites SELECT _id, title, intent, container, screen, cellX, cellY, spanX, spanY, itemType, appWidgetId, iconPackage, iconResource, icon, appWidgetProvider, modified, restored, profileId, rank FROM temp_favorites;",
15 | "DROP TABLE temp_favorites;"
16 | ]
17 |
18 | // Missing values indicate the DB is not compatible
19 | }
--------------------------------------------------------------------------------
/res/values-sw340dp/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 |
19 |
20 |
21 | 20dp
22 | 16sp
23 |
24 |
--------------------------------------------------------------------------------
/res/values-sw600dp/config.xml:
--------------------------------------------------------------------------------
1 |
2 | true
3 | true
4 |
5 |
--------------------------------------------------------------------------------
/res/values-sw600dp/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
17 |
18 |
19 | 850dp
20 | 525dp
21 |
22 |
23 | 56dp
24 |
25 |
26 | -1000dp
27 |
28 |
--------------------------------------------------------------------------------
/res/values-sw720dp/config.xml:
--------------------------------------------------------------------------------
1 |
2 | true
3 | true
4 |
5 |
6 |
7 | 90
8 |
9 |
10 | false
11 |
12 |
--------------------------------------------------------------------------------
/res/values-v19/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
19 |
20 |
21 |
25 |
26 |
--------------------------------------------------------------------------------
/res/values-v21/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
19 |
20 |
21 |
28 |
29 |
--------------------------------------------------------------------------------
/res/values-v26/bools.xml:
--------------------------------------------------------------------------------
1 |
2 |
18 |
19 |
20 | true
21 |
22 | false
23 |
--------------------------------------------------------------------------------
/res/values/bools.xml:
--------------------------------------------------------------------------------
1 |
2 |
18 |
19 |
20 | false
21 |
22 | true
23 |
--------------------------------------------------------------------------------
/res/values/drawables.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
17 | @drawable/ic_setting
18 | @drawable/ic_remove_no_shadow
19 | @drawable/ic_uninstall_no_shadow
20 |
--------------------------------------------------------------------------------
/res/values/integers.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 4
4 |
--------------------------------------------------------------------------------
/res/xml/backupscheme.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
7 |
10 |
13 |
14 |
--------------------------------------------------------------------------------
/settings.gradle:
--------------------------------------------------------------------------------
1 | dependencyResolutionManagement {
2 | repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
3 | repositories {
4 | google()
5 | mavenCentral()
6 | jcenter() // Warning: this repository is going to shut down soon
7 | }
8 | }
9 | include ':mxtheme'
10 | include ':mxlibrary'
11 | include ':floatwindow'
12 | include ':effectivecard'
13 | include ':launcherclient'
14 |
--------------------------------------------------------------------------------
/src/com/android/launcher3/AppFilter.java:
--------------------------------------------------------------------------------
1 | package com.android.launcher3;
2 |
3 | import android.content.ComponentName;
4 | import android.content.Context;
5 |
6 | public class AppFilter {
7 |
8 | public static AppFilter newInstance(Context context) {
9 | return Utilities.getOverrideObject(AppFilter.class, context, R.string.app_filter_class);
10 | }
11 |
12 | public boolean shouldShowApp(ComponentName app) {
13 | return true;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/src/com/android/launcher3/FullscreenKeyEventListener.java:
--------------------------------------------------------------------------------
1 | package com.android.launcher3;
2 |
3 | import android.view.KeyEvent;
4 | import android.view.View;
5 |
6 | /**
7 | * A keyboard listener we set on full screen pages (e.g. custom content).
8 | */
9 | public class FullscreenKeyEventListener implements View.OnKeyListener {
10 | @Override
11 | public boolean onKey(View v, int keyCode, KeyEvent event) {
12 | if (keyCode == KeyEvent.KEYCODE_DPAD_LEFT || keyCode == KeyEvent.KEYCODE_DPAD_RIGHT
13 | || keyCode == KeyEvent.KEYCODE_PAGE_DOWN || keyCode == KeyEvent.KEYCODE_PAGE_UP) {
14 | // Handle the key event just like a workspace icon would in these cases. In this case,
15 | // it will basically act as if there is a single icon in the top left (so you could
16 | // think of the fullscreen page as a focusable fullscreen widget).
17 | return FocusHelper.handleIconKeyEvent(v, keyCode, event);
18 | }
19 | return false;
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/com/android/launcher3/Insettable.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2013 The Android Open Source Project
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package com.android.launcher3;
18 |
19 | import android.graphics.Rect;
20 |
21 | /**
22 | * Allows the implementing {@link View} to not draw underneath system bars.
23 | * e.g., notification bar on top and home key area on the bottom.
24 | */
25 | public interface Insettable {
26 |
27 | void setInsets(Rect insets);
28 | }
--------------------------------------------------------------------------------
/src/com/android/launcher3/LauncherBackupAgent.java:
--------------------------------------------------------------------------------
1 | package com.android.launcher3;
2 |
3 | import android.app.backup.BackupAgent;
4 | import android.app.backup.BackupDataInput;
5 | import android.app.backup.BackupDataOutput;
6 | import android.os.ParcelFileDescriptor;
7 |
8 | import com.android.launcher3.logging.FileLog;
9 | import com.android.launcher3.provider.RestoreDbTask;
10 |
11 | public class LauncherBackupAgent extends BackupAgent {
12 |
13 | @Override
14 | public void onCreate() {
15 | super.onCreate();
16 | // Set the log dir as LauncherAppState is not initialized during restore.
17 | FileLog.setDir(getFilesDir());
18 | }
19 |
20 | @Override
21 | public void onRestore(
22 | BackupDataInput data, int appVersionCode, ParcelFileDescriptor newState) {
23 | // Doesn't do incremental backup/restore
24 | }
25 |
26 | @Override
27 | public void onBackup(
28 | ParcelFileDescriptor oldState, BackupDataOutput data, ParcelFileDescriptor newState) {
29 | // Doesn't do incremental backup/restore
30 | }
31 |
32 | @Override
33 | public void onRestoreFinished() {
34 | RestoreDbTask.setPending(this, true);
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/src/com/android/launcher3/LauncherExterns.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2016 The Android Open Source Project
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package com.android.launcher3;
18 |
19 | import android.content.SharedPreferences;
20 |
21 | /**
22 | * This interface defines the set of methods that the Launcher activity exposes. Methods
23 | * here should be safe to call from classes outside of com.android.launcher3.*
24 | */
25 | public interface LauncherExterns {
26 |
27 | boolean setLauncherCallbacks(LauncherCallbacks callbacks);
28 |
29 | SharedPreferences getSharedPrefs();
30 |
31 | void setLauncherOverlay(Launcher.LauncherOverlay overlay);
32 | }
33 |
--------------------------------------------------------------------------------
/src/com/android/launcher3/LauncherOverlayImpl.java:
--------------------------------------------------------------------------------
1 | package com.android.launcher3;
2 |
3 | import com.codemx.effectivecard.launcherclient.LauncherClient;
4 |
5 | /**
6 | * Created by yuchuan
7 | * DATE 2020/4/17
8 | * TIME 16:52
9 | */
10 | public class LauncherOverlayImpl implements Launcher.LauncherOverlay {
11 |
12 | private LauncherClient mClient;
13 |
14 | LauncherOverlayImpl(LauncherClient client) {
15 | mClient = client;
16 | }
17 |
18 | @Override
19 | public void onScrollInteractionBegin() {
20 | mClient.startMove();
21 | }
22 |
23 | @Override
24 | public void onScrollInteractionEnd() {
25 | mClient.endMove();
26 | }
27 |
28 | @Override
29 | public void onScrollChange(float progress, boolean rtl) {
30 | mClient.updateMove(progress, rtl);
31 | }
32 |
33 | @Override
34 | public void setOverlayCallbacks(Launcher.LauncherOverlayCallbacks callbacks) {
35 |
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/src/com/android/launcher3/LauncherProviderChangeListener.java:
--------------------------------------------------------------------------------
1 | package com.android.launcher3;
2 |
3 | /**
4 | * This class is a listener for {@link LauncherProvider} changes. It gets notified in the
5 | * sendNotify method. This listener is needed because by default the Launcher suppresses
6 | * standard data change callbacks.
7 | */
8 | public interface LauncherProviderChangeListener {
9 |
10 | void onLauncherProviderChanged();
11 |
12 | void onAppWidgetHostReset();
13 | }
14 |
--------------------------------------------------------------------------------
/src/com/android/launcher3/LogAccelerateInterpolator.java:
--------------------------------------------------------------------------------
1 | package com.android.launcher3;
2 |
3 | import android.animation.TimeInterpolator;
4 |
5 | public class LogAccelerateInterpolator implements TimeInterpolator {
6 |
7 | int mBase;
8 | int mDrift;
9 | final float mLogScale;
10 |
11 | public LogAccelerateInterpolator(int base, int drift) {
12 | mBase = base;
13 | mDrift = drift;
14 | mLogScale = 1f / computeLog(1, mBase, mDrift);
15 | }
16 |
17 | static float computeLog(float t, int base, int drift) {
18 | return (float) -Math.pow(base, -t) + 1 + (drift * t);
19 | }
20 |
21 | @Override
22 | public float getInterpolation(float t) {
23 | // Due to rounding issues, the interpolation doesn't quite reach 1 even though it should.
24 | // To account for this, we short-circuit to return 1 if the input is 1.
25 | return Float.compare(t, 1f) == 0 ? 1f : 1 - computeLog(1 - t, mBase, mDrift) * mLogScale;
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/src/com/android/launcher3/LogDecelerateInterpolator.java:
--------------------------------------------------------------------------------
1 | package com.android.launcher3;
2 |
3 | import android.animation.TimeInterpolator;
4 |
5 | public class LogDecelerateInterpolator implements TimeInterpolator {
6 |
7 | int mBase;
8 | int mDrift;
9 | final float mLogScale;
10 |
11 | public LogDecelerateInterpolator(int base, int drift) {
12 | mBase = base;
13 | mDrift = drift;
14 |
15 | mLogScale = 1f / computeLog(1, mBase, mDrift);
16 | }
17 |
18 | static float computeLog(float t, int base, int drift) {
19 | return (float) -Math.pow(base, -t) + 1 + (drift * t);
20 | }
21 |
22 | @Override
23 | public float getInterpolation(float t) {
24 | // Due to rounding issues, the interpolation doesn't quite reach 1 even though it should.
25 | // To account for this, we short-circuit to return 1 if the input is 1.
26 | return Float.compare(t, 1f) == 0 ? 1f : computeLog(t, mBase, mDrift) * mLogScale;
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/src/com/android/launcher3/MainThreadExecutor.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2014 The Android Open Source Project
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License
15 | */
16 |
17 | package com.android.launcher3;
18 |
19 | import android.os.Looper;
20 |
21 | import com.android.launcher3.util.LooperExecutor;
22 |
23 | /**
24 | * An executor service that executes its tasks on the main thread.
25 | *
26 | * Shutting down this executor is not supported.
27 | */
28 | public class MainThreadExecutor extends LooperExecutor {
29 |
30 | public MainThreadExecutor() {
31 | super(Looper.getMainLooper());
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/src/com/android/launcher3/OnAlarmListener.java:
--------------------------------------------------------------------------------
1 | package com.android.launcher3;
2 |
3 | public interface OnAlarmListener {
4 | public void onAlarm(Alarm alarm);
5 | }
6 |
--------------------------------------------------------------------------------
/src/com/android/launcher3/SimpleOnStylusPressListener.java:
--------------------------------------------------------------------------------
1 | package com.android.launcher3;
2 |
3 | import android.view.MotionEvent;
4 | import android.view.View;
5 |
6 | import com.android.launcher3.StylusEventHelper.StylusButtonListener;
7 |
8 | /**
9 | * Simple listener that performs a long click on the view after a stylus button press.
10 | */
11 | public class SimpleOnStylusPressListener implements StylusButtonListener {
12 | private View mView;
13 |
14 | public SimpleOnStylusPressListener(View view) {
15 | mView = view;
16 | }
17 |
18 | public boolean onPressed(MotionEvent event) {
19 | return mView.isLongClickable() && mView.performLongClick();
20 | }
21 |
22 | public boolean onReleased(MotionEvent event) {
23 | return false;
24 | }
25 | }
--------------------------------------------------------------------------------
/src/com/android/launcher3/allapps/search/SearchAlgorithm.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2017 The Android Open Source Project
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 | package com.android.launcher3.allapps.search;
17 |
18 | /**
19 | * An interface for handling search.
20 | */
21 | public interface SearchAlgorithm {
22 |
23 | /**
24 | * Performs search and sends the result to the callback.
25 | */
26 | void doSearch(String query, AllAppsSearchBarController.Callbacks callback);
27 |
28 | /**
29 | * Cancels any active request.
30 | */
31 | void cancel(boolean interruptActiveRequests);
32 | }
33 |
--------------------------------------------------------------------------------
/src/com/android/launcher3/compat/UserManagerCompatVM.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2016 The Android Open Source Project
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package com.android.launcher3.compat;
18 |
19 | import android.annotation.TargetApi;
20 | import android.content.Context;
21 | import android.os.Build;
22 |
23 | @TargetApi(Build.VERSION_CODES.M)
24 | public class UserManagerCompatVM extends UserManagerCompatVL {
25 |
26 | UserManagerCompatVM(Context context) {
27 | super(context);
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/src/com/android/launcher3/compat/UserManagerCompatVNMr1.java:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (C) 2016 The Android Open Source Project
3 | *
4 | * Licensed under the Apache License, Version 2.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://www.apache.org/licenses/LICENSE-2.0
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | package com.android.launcher3.compat;
18 |
19 | import android.annotation.TargetApi;
20 | import android.content.Context;
21 | import android.os.Build;
22 |
23 | @TargetApi(Build.VERSION_CODES.N_MR1)
24 | public class UserManagerCompatVNMr1 extends UserManagerCompatVN {
25 |
26 | UserManagerCompatVNMr1(Context context) {
27 | super(context);
28 | }
29 |
30 | @Override
31 | public boolean isDemoUser() {
32 | return mUserManager.isDemoUser();
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/src/com/android/launcher3/customcontent/CustomContentCallbacks.java:
--------------------------------------------------------------------------------
1 | package com.android.launcher3.customcontent;
2 |
3 |
4 | // add by codemx.cn ---- 20190712 ---plus- start
5 | // modify by codemx.cn ---- 20190712 ---plus- start
6 | public interface CustomContentCallbacks {
7 |
8 | // Custom content is completely shown. {@code fromResume} indicates whether this was caused
9 | // by a onResume or by scrolling otherwise.
10 | void onShow(boolean fromResume);
11 |
12 | // Custom content is completely hidden
13 | void onHide();
14 |
15 | // Custom content scroll progress changed. From 0 (not showing) to 1 (fully showing).
16 | void onScrollProgressChanged(float progress);
17 |
18 | // Indicates whether the user is allowed to scroll away from the custom content.
19 | boolean isScrollingAllowed();
20 |
21 | }
22 |
--------------------------------------------------------------------------------
/src/com/android/launcher3/imp/ImpUninstallIconShowListener.java:
--------------------------------------------------------------------------------
1 | package com.android.launcher3.imp;
2 |
3 | import com.android.launcher3.uninstall.UninstallIconAnimUtil;
4 |
5 | /**
6 | * 卸载监听接口
7 | */
8 | public interface ImpUninstallIconShowListener {
9 |
10 | /**
11 | * 动画效果下卸载按钮的显示过度
12 | *
13 | * @param percent 百分比
14 | */
15 | void onUninstallIconChange(float percent);
16 |
17 | /**
18 | * 显示卸载按钮
19 | *
20 | * @param uninstallIconAnimUtil 动画工具
21 | * @param isPerformAnim 是否显示动画效果
22 | */
23 | void showUninstallIcon(UninstallIconAnimUtil uninstallIconAnimUtil, boolean isPerformAnim);
24 |
25 | }
26 |
--------------------------------------------------------------------------------
/src/com/android/launcher3/menu/MenuView.java:
--------------------------------------------------------------------------------
1 | package com.android.launcher3.menu;
2 |
3 | import android.content.Context;
4 | import android.util.AttributeSet;
5 | import android.view.ViewGroup;
6 |
7 | import com.android.launcher3.DeviceProfile;
8 | import com.android.launcher3.LauncherAppState;
9 |
10 | public class MenuView extends ViewGroup {
11 |
12 | public MenuView(Context context) {
13 | super(context);
14 | }
15 |
16 | public MenuView(Context context, AttributeSet attrs) {
17 | super(context, attrs);
18 | }
19 |
20 | public MenuView(Context context, AttributeSet attrs, int defStyleAttr) {
21 | super(context, attrs, defStyleAttr);
22 | }
23 |
24 | @Override
25 | protected void onLayout(boolean changed, int l, int t, int r, int b) {
26 |
27 | }
28 |
29 |
30 | // TODO 后期放到底部菜单中
31 | // 从隐藏到显示需要上移的距离
32 | public float getMenuLayoutShowTranslationY() {
33 | DeviceProfile profile = LauncherAppState.getInstance(getContext()).getInvariantDeviceProfile().portraitProfile;
34 | return profile.menBarBottomMarginPx + profile.hotseatBarBottomMarginPx;
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/src/com/android/launcher3/menu/adapter/BaseMenuAdapter.java:
--------------------------------------------------------------------------------
1 | package com.android.launcher3.menu.adapter;
2 |
3 | import android.content.Context;
4 | import androidx.annotation.LayoutRes;
5 | import androidx.annotation.NonNull;
6 | import android.view.LayoutInflater;
7 | import android.view.View;
8 | import android.view.ViewGroup;
9 | import android.widget.ArrayAdapter;
10 |
11 | import com.android.launcher3.R;
12 | import com.android.mxlibrary.view.CircleImageView;
13 |
14 | /**
15 | * Created by CodeMX
16 | * DATE 2018/1/31
17 | * TIME 16:08
18 | */
19 |
20 | public abstract class BaseMenuAdapter extends ArrayAdapter {
21 |
22 | BaseMenuAdapter(@NonNull Context context, @LayoutRes int resource) {
23 | super(context, resource);
24 | }
25 |
26 | public abstract void setContainer(View view);
27 |
28 | View createShortcut(ViewGroup parent) {
29 | return (CircleImageView) LayoutInflater.from(getContext())
30 | .inflate(R.layout.menu_item_layout, parent, false);
31 | }
32 |
33 | }
34 |
--------------------------------------------------------------------------------
/src/com/android/launcher3/menu/bean/WidgetItem.java:
--------------------------------------------------------------------------------
1 | package com.android.launcher3.menu.bean;
2 |
3 | /**
4 | * Created by CodeMX
5 | * DATE 2018/1/16
6 | * TIME 11:51
7 | */
8 |
9 | public class WidgetItem extends MenuItem {
10 |
11 | public String packageName;
12 |
13 | public String getPackageName() {
14 | return packageName;
15 | }
16 |
17 | public void setPackageName(String packageName) {
18 | this.packageName = packageName;
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/src/com/android/launcher3/menu/imp/IMenuAdapter.java:
--------------------------------------------------------------------------------
1 | package com.android.launcher3.menu.imp;
2 |
3 | import androidx.annotation.NonNull;
4 | import androidx.annotation.Nullable;
5 | import android.view.View;
6 | import android.view.ViewGroup;
7 |
8 | import com.android.launcher3.menu.view.HorizontalPageScrollView;
9 |
10 | import java.util.List;
11 |
12 | /**
13 | * Created by CodeMX
14 | * DATE 2018/2/5
15 | * TIME 18:11
16 | */
17 |
18 | public interface IMenuAdapter {
19 |
20 | void addAllData(List list);
21 |
22 | void setContainer(HorizontalPageScrollView container);
23 |
24 | int getMenuItemCount();
25 |
26 | View getChildView(int position, @Nullable View convertView, @NonNull ViewGroup parent);
27 |
28 | }
29 |
--------------------------------------------------------------------------------
/src/com/android/launcher3/menu/imp/IMenuControllerListener.java:
--------------------------------------------------------------------------------
1 | package com.android.launcher3.menu.imp;
2 |
3 | /**
4 | * Created by CodeMX
5 | * DATE 2018/1/16
6 | * TIME 17:25
7 | */
8 |
9 | public interface IMenuControllerListener {
10 |
11 | void onShowOrHideBegin(boolean isShow);
12 |
13 | void onShowOrHide(int progress);
14 |
15 | void onShowOrHideEnd(boolean isShow);
16 |
17 | }
18 |
--------------------------------------------------------------------------------
/src/com/android/launcher3/menu/imp/IMenuManager.java:
--------------------------------------------------------------------------------
1 | package com.android.launcher3.menu.imp;
2 |
3 | import com.android.launcher3.menu.bean.MenuItem;
4 |
5 | import java.util.List;
6 |
7 | /**
8 | * Created by CodeMX
9 | * DATE 2018/1/15
10 | * TIME 11:03
11 | */
12 |
13 | public interface IMenuManager {
14 |
15 | /**
16 | * 更新数据
17 | *
18 | * @param list 数据列表
19 | */
20 | void updateDataList(List