Commit e5192f94 by lihuaikun

launcher3没有提交 重新提交

parents

Too many changes to show.

To preserve performance only 1000 of 1000+ files are displayed.

*.iml
.gradle
/local.properties
/.idea/caches
/.idea/libraries
/.idea/modules.xml
/.idea/workspace.xml
/.idea/navEditor.xml
/.idea/assetWizardSettings.xml
.DS_Store
/build
/captures
.externalNativeBuild
.cxx
<component name="ProjectCodeStyleConfiguration">
<code_scheme name="Project" version="173">
<codeStyleSettings language="XML">
<arrangement>
<rules>
<section>
<rule>
<match>
<AND>
<NAME>xmlns:android</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>xmlns:.*</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
<order>BY_NAME</order>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:id</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*:name</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>name</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>style</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>^$</XML_NAMESPACE>
</AND>
</match>
<order>BY_NAME</order>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>http://schemas.android.com/apk/res/android</XML_NAMESPACE>
</AND>
</match>
<order>ANDROID_ATTRIBUTE_ORDER</order>
</rule>
</section>
<section>
<rule>
<match>
<AND>
<NAME>.*</NAME>
<XML_ATTRIBUTE />
<XML_NAMESPACE>.*</XML_NAMESPACE>
</AND>
</match>
<order>BY_NAME</order>
</rule>
</section>
</rules>
</arrangement>
</codeStyleSettings>
</code_scheme>
</component>
\ No newline at end of file
<component name="ProjectDictionaryState">
<dictionary name="apple" />
</component>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="GradleMigrationSettings" migrationVersion="1" />
<component name="GradleSettings">
<option name="linkedExternalProjectsSettings">
<GradleProjectSettings>
<option name="delegatedBuild" value="false" />
<option name="testRunner" value="PLATFORM" />
<option name="distributionType" value="DEFAULT_WRAPPED" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="modules">
<set>
<option value="$PROJECT_DIR$" />
<option value="$PROJECT_DIR$/Launcher3" />
<option value="$PROJECT_DIR$/app" />
</set>
</option>
<option name="resolveModulePerSourceSet" value="false" />
</GradleProjectSettings>
</option>
</component>
</project>
\ No newline at end of file
<component name="MarkdownNavigator.ProfileManager">
<settings plain-text-search-scope="!predefined.scope.project.files.name!" />
</component>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CMakeSettings">
<configurations>
<configuration PROFILE_NAME="Debug" CONFIG_NAME="Debug" />
</configurations>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" />
</component>
<component name="ProjectType">
<option name="id" value="Android" />
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="RunConfigurationProducerService">
<option name="ignoredProducers">
<set>
<option value="org.jetbrains.plugins.gradle.execution.test.runner.AllInPackageGradleConfigurationProducer" />
<option value="org.jetbrains.plugins.gradle.execution.test.runner.TestClassGradleConfigurationProducer" />
<option value="org.jetbrains.plugins.gradle.execution.test.runner.TestMethodGradleConfigurationProducer" />
</set>
</option>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$/.." vcs="Git" />
<mapping directory="$PROJECT_DIR$" vcs="Git" />
<mapping directory="$PROJECT_DIR$/Launcher3" vcs="Git" />
</component>
</project>
\ No newline at end of file
Launcher3
=========
更改官方的Launcher3使得可以在Android Studio编译
* [官方代码](https://android.googlesource.com/platform/packages/apps/Launcher3/)[Commit Hash 12330be6](https://android.googlesource.com/platform/packages/apps/Launcher3/+/12330be6125075f6529f55fcbd941dfbc710a0e8)
* 最小sdk版本为21
* 可能会出现因为相同权限声明而不能安装的问题
* 现在Google官方的代码已经不需要做太大改动就能用了,有需要定制桌面的可以只从官方仓库拉取最新代码了
---
我写了几篇博客来讲解Launcher3桌面什么的,有兴趣的可以看看这里:
* [概述](https://fookwood.com/launcher-source-analysis)
* [Android的触摸控制流程](https://fookwood.com/android-touch-events)
* [Launcher3界面的布局和结构](https://fookwood.com/launcher-layout-structure)
* [Launcher3中的常用类](https://fookwood.com/launcher-classes)
* [Launcher3的启动流程(一)](https://fookwood.com/launcher-start-process-1)
* [细说ItemInfo](https://fookwood.com/launcher-iteminfo)
* [Launcher3的启动流程(二)](https://fookwood.com/launcher-start-process-2)
* [Launcher3分析之拖动图标的流程——按下](https://fookwood.com/launcher-drag-up)
* [Launcher3分析之拖动图标的流程——移动](https://fookwood.com/launcher-drag-move)
* [Launcher3分析之拖动图标的流程——放下](https://fookwood.com/launcher-drag-down)
* [PagedView的原理 – 滑动](https://fookwood.com/launcher-pagedview)
* [如何给Launcher3添加左屏](https://fookwood.com/launcher-left-screen)
* [IconCache原理](https://fookwood.com/launcher-iconcache)
* [LauncherRootView和DragLayer的布局过程](https://fookwood.com/launcher-rootview-and-draglayer)
apply plugin: 'com.android.library'
apply plugin: 'com.google.protobuf'
android {
compileSdkVersion 28
buildToolsVersion '28.0.3'
defaultConfig {
minSdkVersion 21
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true
}
buildTypes {
debug {
minifyEnabled false
// consumerProguardFiles 'proguard-rules.pro'
}
release {
minifyEnabled false
// consumerProguardFiles 'proguard-rules.pro'
}
}
lintOptions {
checkReleaseBuilds false
// Or, if you prefer, you can continue to check for errors in release builds,
// but continue the build even when errors are found:
abortOnError false
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
sourceSets {
main {
// res.srcDirs = ['res']
// java.srcDirs = ['src', 'src_flags', "src_ui_overrides"]
// manifest.srcFile "AndroidManifest-common.xml"
proto {
srcDir 'protos/'
srcDir 'proto_overrides/'
}
}
}
}
dependencies {
implementation fileTree(dir:'libs',include:['*.jar'])
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'androidx.dynamicanimation:dynamicanimation:1.0.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'androidx.recyclerview:recyclerview:1.0.0'
implementation 'com.google.protobuf.nano:protobuf-javanano:3.0.0-alpha-7'
// quickstepImplementation fileTree(dir: "quickstep/libs", include: 'sysui_shared.jar')
implementation 'com.alibaba:fastjson:1.1.71.android'
// testImplementation 'junit:junit:4.12'
// androidTestImplementation "org.mockito:mockito-core:1.9.5"
// androidTestImplementation 'com.google.dexmaker:dexmaker:1.2'
// androidTestImplementation 'com.google.dexmaker:dexmaker-mockito:1.2'
// androidTestImplementation 'androidx.test.ext:junit:1.1.1'
// androidTestImplementation 'androidx.test:rules:1.1.1'
// androidTestImplementation 'androidx.test.uiautomator:uiautomator:2.2.0'
// androidTestImplementation 'androidx.annotation:annotation:1.0.0'
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'
implementation 'io.reactivex.rxjava2:rxjava:2.2.17'
implementation 'com.elvishew:xlog:1.6.1'
}
protobuf {
// Configure the protoc executable
protoc {
artifact = 'com.google.protobuf:protoc:3.0.0-alpha-3'
generateProtoTasks {
all().each { task ->
task.builtins {
remove java
javanano {
option "java_package=launcher_log_extension.proto|com.android.launcher3.userevent.nano"
option "java_package=launcher_log.proto|com.android.launcher3.userevent.nano"
option "java_package=launcher_dump.proto|com.android.launcher3.model.nano"
option "enum_style=java"
}
}
}
}
}
}
apply plugin: 'maven'
ext {
GITHUB_REPO_PATH = "../../androidlibrary"
PUBLISH_GROUP_ID = 'cn.dankal.android'
PUBLISH_ARTIFACT_ID = 'launcher'
PUBLISH_VERSION = '1.3.6'
}
uploadArchives {
repositories {
mavenDeployer {
//本地maven仓库地址,也可以使用远程maven仓库
def deployPath = file(project.GITHUB_REPO_PATH)
repository(url: "file://${deployPath.absolutePath}")
pom.project {
groupId project.PUBLISH_GROUP_ID
artifactId project.PUBLISH_ARTIFACT_ID
version project.PUBLISH_VERSION
}
}
}
}
// 源代码一起打包
task androidSourcesJar(type: Jar) {
classifier = 'sources'
from android.sourceSets.main.java.sourceFiles
}
artifacts {
archives androidSourcesJar
}
\ No newline at end of file
/*
* 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.
*/
syntax = "proto2";
option java_package = "com.android.launcher3.model";
option java_outer_classname = "LauncherDumpProto";
package model;
message DumpTarget {
enum Type {
NONE = 0;
ITEM = 1;
CONTAINER = 2;
}
optional Type type = 1;
optional int32 page_id = 2;
optional int32 grid_x = 3;
optional int32 grid_y = 4;
// For container types only
optional ContainerType container_type = 5;
// For item types only
optional ItemType item_type = 6;
optional string package_name = 7; // All ItemTypes except UNKNOWN type
optional string component = 8; // All ItemTypes except UNKNOWN type
optional string item_id = 9; // For Pinned Shortcuts and appWidgetId
optional int32 span_x = 10 [default = 1];// Used for ItemType.WIDGET
optional int32 span_y = 11 [default = 1];// Used for ItemType.WIDGET
optional UserType user_type = 12;
}
// Used to define what type of item a Target would represent.
enum ItemType {
UNKNOWN_ITEMTYPE = 0; // Launcher specific items
APP_ICON = 1; // Regular app icons
WIDGET = 2; // Elements from AppWidgetManager
SHORTCUT = 3; // ShortcutManager
}
// Used to define what type of container a Target would represent.
enum ContainerType {
UNKNOWN_CONTAINERTYPE = 0;
WORKSPACE = 1;
HOTSEAT = 2;
FOLDER = 3;
}
// Used to define what type of control a Target would represent.
enum UserType {
DEFAULT = 0;
WORK = 1;
}
// Main message;
message LauncherImpression {
repeated DumpTarget targets = 1;
}
/*
* Copyright (C) 2016 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.
*/
syntax = "proto2";
import "launcher_log_extension.proto";
option java_package = "com.android.launcher3.userevent";
option java_outer_classname = "LauncherLogProto";
package userevent;
message Target {
enum Type {
NONE = 0;
ITEM = 1;
CONTROL = 2;
CONTAINER = 3;
}
optional Type type = 1;
// For container type and item type
// Used mainly for ContainerType.FOLDER, ItemType.*
optional int32 page_index = 2;
optional int32 rank = 3;
optional int32 grid_x = 4;
optional int32 grid_y = 5;
// For container types only
optional ContainerType container_type = 6;
optional int32 cardinality = 7;
// For control types only
optional ControlType control_type = 8;
// For item types only
optional ItemType item_type = 9;
optional int32 package_name_hash = 10;
optional int32 component_hash = 11; // Used for ItemType.WIDGET
optional int32 intent_hash = 12; // Used for ItemType.SHORTCUT
optional int32 span_x = 13 [default = 1];// Used for ItemType.WIDGET
optional int32 span_y = 14 [default = 1];// Used for ItemType.WIDGET
optional int32 predictedRank = 15;
optional TargetExtension extension = 16;
optional TipType tip_type = 17;
}
// Used to define what type of item a Target would represent.
enum ItemType {
DEFAULT_ITEMTYPE = 0;
APP_ICON = 1;
SHORTCUT = 2;
WIDGET = 3;
FOLDER_ICON = 4;
DEEPSHORTCUT = 5;
SEARCHBOX = 6;
EDITTEXT = 7;
NOTIFICATION = 8;
TASK = 9; // Each page of Recents UI (QuickStep)
WEB_APP = 10;
}
// Used to define what type of container a Target would represent.
enum ContainerType {
DEFAULT_CONTAINERTYPE = 0;
WORKSPACE = 1;
HOTSEAT = 2;
FOLDER = 3;
ALLAPPS = 4;
WIDGETS = 5;
OVERVIEW = 6; // Zoomed out workspace (without QuickStep)
PREDICTION = 7;
SEARCHRESULT = 8;
DEEPSHORTCUTS = 9;
PINITEM = 10; // confirmation screen
NAVBAR = 11;
TASKSWITCHER = 12; // Recents UI Container (QuickStep)
APP = 13; // Foreground activity is another app (QuickStep)
TIP = 14; // Onboarding texts (QuickStep)
SIDELOADED_LAUNCHER = 15;
}
// Used to define what type of control a Target would represent.
enum ControlType {
DEFAULT_CONTROLTYPE = 0;
ALL_APPS_BUTTON = 1;
WIDGETS_BUTTON = 2;
WALLPAPER_BUTTON = 3;
SETTINGS_BUTTON = 4;
REMOVE_TARGET = 5;
UNINSTALL_TARGET = 6;
APPINFO_TARGET = 7;
RESIZE_HANDLE = 8;
VERTICAL_SCROLL = 9;
HOME_INTENT = 10; // Deprecated, use enum Command instead
BACK_BUTTON = 11; // Deprecated, use enum Command instead
QUICK_SCRUB_BUTTON = 12;
CLEAR_ALL_BUTTON = 13;
CANCEL_TARGET = 14;
TASK_PREVIEW = 15;
SPLIT_SCREEN_TARGET = 16;
}
enum TipType {
DEFAULT_NONE = 0;
BOUNCE = 1;
SWIPE_UP_TEXT = 2;
QUICK_SCRUB_TEXT = 3;
PREDICTION_TEXT = 4;
}
// Used to define the action component of the LauncherEvent.
message Action {
enum Type {
TOUCH = 0;
AUTOMATED = 1;
COMMAND = 2;
TIP = 3;
// SOFT_KEYBOARD, HARD_KEYBOARD, ASSIST
}
enum Touch {
TAP = 0;
LONGPRESS = 1;
DRAGDROP = 2;
SWIPE = 3;
FLING = 4;
PINCH = 5;
}
enum Direction {
NONE = 0;
UP = 1;
DOWN = 2;
LEFT = 3;
RIGHT = 4;
}
enum Command {
HOME_INTENT = 0;
BACK = 1;
ENTRY = 2; // Indicates entry to one of Launcher container type target
// not using the HOME_INTENT
CANCEL = 3; // Indicates that a confirmation screen was cancelled
CONFIRM = 4; // Indicates thata confirmation screen was accepted
STOP = 5; // Indicates onStop() was called (screen time out, power off)
RECENTS_BUTTON = 6; // Indicates that Recents button was pressed
RESUME = 7; // Indicates onResume() was called
}
optional Type type = 1;
optional Touch touch = 2;
optional Direction dir = 3;
optional Command command = 4;
// Log if the action was performed on outside of the container
optional bool is_outside = 5;
optional bool is_state_change = 6;
}
//
// Context free grammar of typical user interaction:
// Action (Touch) + Target
// Action (Touch) + Target + Target
//
message LauncherEvent {
required Action action = 1;
// List of targets that touch actions can be operated on.
repeated Target src_target = 2;
repeated Target dest_target = 3;
optional int64 action_duration_millis = 4;
optional int64 elapsed_container_millis = 5;
optional int64 elapsed_session_millis = 6;
optional bool is_in_multi_window_mode = 7;
optional bool is_in_landscape_mode = 8;
optional LauncherEventExtension extension = 9;
}
/*
* 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.
*/
syntax = "proto2";
option java_package = "com.android.launcher3.userevent";
option java_outer_classname = "LauncherLogExtensions";
package userevent;
//
// Use this to add any app specific extensions to the proto.
//
message LauncherEventExtension {
}
message TargetExtension {
}
/*
* This file is auto-generated. DO NOT MODIFY.
*/
package com.android.launcher3;
// Declare any non-default types here with import statements
public interface LockScreenInterface extends android.os.IInterface
{
/** Local-side IPC implementation stub class. */
public static abstract class Stub extends android.os.Binder implements com.android.launcher3.LockScreenInterface
{
private static final java.lang.String DESCRIPTOR = "com.android.launcher3.LockScreenInterface";
/** Construct the stub at attach it to the interface. */
public Stub()
{
this.attachInterface(this, DESCRIPTOR);
}
/**
* Cast an IBinder object into an com.android.launcher3.LockScreenInterface interface,
* generating a proxy if needed.
*/
public static com.android.launcher3.LockScreenInterface asInterface(android.os.IBinder obj)
{
if ((obj==null)) {
return null;
}
android.os.IInterface iin = obj.queryLocalInterface(DESCRIPTOR);
if (((iin!=null)&&(iin instanceof com.android.launcher3.LockScreenInterface))) {
return ((com.android.launcher3.LockScreenInterface)iin);
}
return new com.android.launcher3.LockScreenInterface.Stub.Proxy(obj);
}
@Override public android.os.IBinder asBinder()
{
return this;
}
@Override public boolean onTransact(int code, android.os.Parcel data, android.os.Parcel reply, int flags) throws android.os.RemoteException
{
java.lang.String descriptor = DESCRIPTOR;
switch (code)
{
case INTERFACE_TRANSACTION:
{
reply.writeString(descriptor);
return true;
}
case TRANSACTION_basicTypes:
{
data.enforceInterface(descriptor);
int _arg0;
_arg0 = data.readInt();
long _arg1;
_arg1 = data.readLong();
boolean _arg2;
_arg2 = (0!=data.readInt());
float _arg3;
_arg3 = data.readFloat();
double _arg4;
_arg4 = data.readDouble();
java.lang.String _arg5;
_arg5 = data.readString();
this.basicTypes(_arg0, _arg1, _arg2, _arg3, _arg4, _arg5);
reply.writeNoException();
return true;
}
case TRANSACTION_lockScreen:
{
data.enforceInterface(descriptor);
this.lockScreen();
reply.writeNoException();
return true;
}
case TRANSACTION_unlockScreen:
{
data.enforceInterface(descriptor);
this.unlockScreen();
reply.writeNoException();
return true;
}
default:
{
return super.onTransact(code, data, reply, flags);
}
}
}
private static class Proxy implements com.android.launcher3.LockScreenInterface
{
private android.os.IBinder mRemote;
Proxy(android.os.IBinder remote)
{
mRemote = remote;
}
@Override public android.os.IBinder asBinder()
{
return mRemote;
}
public java.lang.String getInterfaceDescriptor()
{
return DESCRIPTOR;
}
/**
* Demonstrates some basic types that you can use as parameters
* and return values in AIDL.
*/
@Override public void basicTypes(int anInt, long aLong, boolean aBoolean, float aFloat, double aDouble, java.lang.String aString) throws android.os.RemoteException
{
android.os.Parcel _data = android.os.Parcel.obtain();
android.os.Parcel _reply = android.os.Parcel.obtain();
try {
_data.writeInterfaceToken(DESCRIPTOR);
_data.writeInt(anInt);
_data.writeLong(aLong);
_data.writeInt(((aBoolean)?(1):(0)));
_data.writeFloat(aFloat);
_data.writeDouble(aDouble);
_data.writeString(aString);
mRemote.transact(Stub.TRANSACTION_basicTypes, _data, _reply, 0);
_reply.readException();
}
finally {
_reply.recycle();
_data.recycle();
}
}
@Override public void lockScreen() throws android.os.RemoteException
{
android.os.Parcel _data = android.os.Parcel.obtain();
android.os.Parcel _reply = android.os.Parcel.obtain();
try {
_data.writeInterfaceToken(DESCRIPTOR);
mRemote.transact(Stub.TRANSACTION_lockScreen, _data, _reply, 0);
_reply.readException();
}
finally {
_reply.recycle();
_data.recycle();
}
}
@Override public void unlockScreen() throws android.os.RemoteException
{
android.os.Parcel _data = android.os.Parcel.obtain();
android.os.Parcel _reply = android.os.Parcel.obtain();
try {
_data.writeInterfaceToken(DESCRIPTOR);
mRemote.transact(Stub.TRANSACTION_unlockScreen, _data, _reply, 0);
_reply.readException();
}
finally {
_reply.recycle();
_data.recycle();
}
}
}
static final int TRANSACTION_basicTypes = (android.os.IBinder.FIRST_CALL_TRANSACTION + 0);
static final int TRANSACTION_lockScreen = (android.os.IBinder.FIRST_CALL_TRANSACTION + 1);
static final int TRANSACTION_unlockScreen = (android.os.IBinder.FIRST_CALL_TRANSACTION + 2);
}
/**
* Demonstrates some basic types that you can use as parameters
* and return values in AIDL.
*/
public void basicTypes(int anInt, long aLong, boolean aBoolean, float aFloat, double aDouble, java.lang.String aString) throws android.os.RemoteException;
public void lockScreen() throws android.os.RemoteException;
public void unlockScreen() throws android.os.RemoteException;
}
/*
* This file is auto-generated. DO NOT MODIFY.
*/
package com.android.launcher3;
// Declare any non-default types here with import statements
public interface LockScreenInterface extends android.os.IInterface
{
/** Local-side IPC implementation stub class. */
public static abstract class Stub extends android.os.Binder implements com.android.launcher3.LockScreenInterface
{
private static final java.lang.String DESCRIPTOR = "com.android.launcher3.LockScreenInterface";
/** Construct the stub at attach it to the interface. */
public Stub()
{
this.attachInterface(this, DESCRIPTOR);
}
/**
* Cast an IBinder object into an com.android.launcher3.LockScreenInterface interface,
* generating a proxy if needed.
*/
public static com.android.launcher3.LockScreenInterface asInterface(android.os.IBinder obj)
{
if ((obj==null)) {
return null;
}
android.os.IInterface iin = obj.queryLocalInterface(DESCRIPTOR);
if (((iin!=null)&&(iin instanceof com.android.launcher3.LockScreenInterface))) {
return ((com.android.launcher3.LockScreenInterface)iin);
}
return new com.android.launcher3.LockScreenInterface.Stub.Proxy(obj);
}
@Override public android.os.IBinder asBinder()
{
return this;
}
@Override public boolean onTransact(int code, android.os.Parcel data, android.os.Parcel reply, int flags) throws android.os.RemoteException
{
java.lang.String descriptor = DESCRIPTOR;
switch (code)
{
case INTERFACE_TRANSACTION:
{
reply.writeString(descriptor);
return true;
}
case TRANSACTION_basicTypes:
{
data.enforceInterface(descriptor);
int _arg0;
_arg0 = data.readInt();
long _arg1;
_arg1 = data.readLong();
boolean _arg2;
_arg2 = (0!=data.readInt());
float _arg3;
_arg3 = data.readFloat();
double _arg4;
_arg4 = data.readDouble();
java.lang.String _arg5;
_arg5 = data.readString();
this.basicTypes(_arg0, _arg1, _arg2, _arg3, _arg4, _arg5);
reply.writeNoException();
return true;
}
case TRANSACTION_lockScreen:
{
data.enforceInterface(descriptor);
this.lockScreen();
reply.writeNoException();
return true;
}
case TRANSACTION_unlockScreen:
{
data.enforceInterface(descriptor);
this.unlockScreen();
reply.writeNoException();
return true;
}
default:
{
return super.onTransact(code, data, reply, flags);
}
}
}
private static class Proxy implements com.android.launcher3.LockScreenInterface
{
private android.os.IBinder mRemote;
Proxy(android.os.IBinder remote)
{
mRemote = remote;
}
@Override public android.os.IBinder asBinder()
{
return mRemote;
}
public java.lang.String getInterfaceDescriptor()
{
return DESCRIPTOR;
}
/**
* Demonstrates some basic types that you can use as parameters
* and return values in AIDL.
*/
@Override public void basicTypes(int anInt, long aLong, boolean aBoolean, float aFloat, double aDouble, java.lang.String aString) throws android.os.RemoteException
{
android.os.Parcel _data = android.os.Parcel.obtain();
android.os.Parcel _reply = android.os.Parcel.obtain();
try {
_data.writeInterfaceToken(DESCRIPTOR);
_data.writeInt(anInt);
_data.writeLong(aLong);
_data.writeInt(((aBoolean)?(1):(0)));
_data.writeFloat(aFloat);
_data.writeDouble(aDouble);
_data.writeString(aString);
mRemote.transact(Stub.TRANSACTION_basicTypes, _data, _reply, 0);
_reply.readException();
}
finally {
_reply.recycle();
_data.recycle();
}
}
@Override public void lockScreen() throws android.os.RemoteException
{
android.os.Parcel _data = android.os.Parcel.obtain();
android.os.Parcel _reply = android.os.Parcel.obtain();
try {
_data.writeInterfaceToken(DESCRIPTOR);
mRemote.transact(Stub.TRANSACTION_lockScreen, _data, _reply, 0);
_reply.readException();
}
finally {
_reply.recycle();
_data.recycle();
}
}
@Override public void unlockScreen() throws android.os.RemoteException
{
android.os.Parcel _data = android.os.Parcel.obtain();
android.os.Parcel _reply = android.os.Parcel.obtain();
try {
_data.writeInterfaceToken(DESCRIPTOR);
mRemote.transact(Stub.TRANSACTION_unlockScreen, _data, _reply, 0);
_reply.readException();
}
finally {
_reply.recycle();
_data.recycle();
}
}
}
static final int TRANSACTION_basicTypes = (android.os.IBinder.FIRST_CALL_TRANSACTION + 0);
static final int TRANSACTION_lockScreen = (android.os.IBinder.FIRST_CALL_TRANSACTION + 1);
static final int TRANSACTION_unlockScreen = (android.os.IBinder.FIRST_CALL_TRANSACTION + 2);
}
/**
* Demonstrates some basic types that you can use as parameters
* and return values in AIDL.
*/
public void basicTypes(int anInt, long aLong, boolean aBoolean, float aFloat, double aDouble, java.lang.String aString) throws android.os.RemoteException;
public void lockScreen() throws android.os.RemoteException;
public void unlockScreen() throws android.os.RemoteException;
}
/**
* Automatically generated file. DO NOT MODIFY
*/
package com.android.launcher3.test;
public final class BuildConfig {
public static final boolean DEBUG = Boolean.parseBoolean("true");
public static final String APPLICATION_ID = "com.android.launcher3.test";
public static final String BUILD_TYPE = "debug";
public static final String FLAVOR = "";
public static final int VERSION_CODE = 1;
public static final String VERSION_NAME = "1.0";
}
/**
* Automatically generated file. DO NOT MODIFY
*/
package com.android.launcher3;
public final class BuildConfig {
public static final boolean DEBUG = Boolean.parseBoolean("true");
public static final String LIBRARY_PACKAGE_NAME = "com.android.launcher3";
/**
* @deprecated APPLICATION_ID is misleading in libraries. For the library package name use LIBRARY_PACKAGE_NAME
*/
@Deprecated
public static final String APPLICATION_ID = "com.android.launcher3";
public static final String BUILD_TYPE = "debug";
public static final String FLAVOR = "";
public static final int VERSION_CODE = 1;
public static final String VERSION_NAME = "1.0";
}
/**
* Automatically generated file. DO NOT MODIFY
*/
package com.android.launcher3;
public final class BuildConfig {
public static final boolean DEBUG = false;
public static final String LIBRARY_PACKAGE_NAME = "com.android.launcher3";
/**
* @deprecated APPLICATION_ID is misleading in libraries. For the library package name use LIBRARY_PACKAGE_NAME
*/
@Deprecated
public static final String APPLICATION_ID = "com.android.launcher3";
public static final String BUILD_TYPE = "release";
public static final String FLAVOR = "";
public static final int VERSION_CODE = 1;
public static final String VERSION_NAME = "1.0";
}
// Generated by the protocol buffer compiler. DO NOT EDIT!
package com.android.launcher3.userevent.nano;
@SuppressWarnings("hiding")
public interface LauncherLogExtensions {
public static final class LauncherEventExtension extends
com.google.protobuf.nano.MessageNano {
private static volatile LauncherEventExtension[] _emptyArray;
public static LauncherEventExtension[] emptyArray() {
// Lazily initializes the empty array
if (_emptyArray == null) {
synchronized (
com.google.protobuf.nano.InternalNano.LAZY_INIT_LOCK) {
if (_emptyArray == null) {
_emptyArray = new LauncherEventExtension[0];
}
}
}
return _emptyArray;
}
public LauncherEventExtension() {
clear();
}
public LauncherEventExtension clear() {
cachedSize = -1;
return this;
}
@Override
public LauncherEventExtension mergeFrom(
com.google.protobuf.nano.CodedInputByteBufferNano input)
throws java.io.IOException {
while (true) {
int tag = input.readTag();
switch (tag) {
case 0:
return this;
default: {
if (!com.google.protobuf.nano.WireFormatNano.parseUnknownField(input, tag)) {
return this;
}
break;
}
}
}
}
public static LauncherEventExtension parseFrom(byte[] data)
throws com.google.protobuf.nano.InvalidProtocolBufferNanoException {
return com.google.protobuf.nano.MessageNano.mergeFrom(new LauncherEventExtension(), data);
}
public static LauncherEventExtension parseFrom(
com.google.protobuf.nano.CodedInputByteBufferNano input)
throws java.io.IOException {
return new LauncherEventExtension().mergeFrom(input);
}
}
public static final class TargetExtension extends
com.google.protobuf.nano.MessageNano {
private static volatile TargetExtension[] _emptyArray;
public static TargetExtension[] emptyArray() {
// Lazily initializes the empty array
if (_emptyArray == null) {
synchronized (
com.google.protobuf.nano.InternalNano.LAZY_INIT_LOCK) {
if (_emptyArray == null) {
_emptyArray = new TargetExtension[0];
}
}
}
return _emptyArray;
}
public TargetExtension() {
clear();
}
public TargetExtension clear() {
cachedSize = -1;
return this;
}
@Override
public TargetExtension mergeFrom(
com.google.protobuf.nano.CodedInputByteBufferNano input)
throws java.io.IOException {
while (true) {
int tag = input.readTag();
switch (tag) {
case 0:
return this;
default: {
if (!com.google.protobuf.nano.WireFormatNano.parseUnknownField(input, tag)) {
return this;
}
break;
}
}
}
}
public static TargetExtension parseFrom(byte[] data)
throws com.google.protobuf.nano.InvalidProtocolBufferNanoException {
return com.google.protobuf.nano.MessageNano.mergeFrom(new TargetExtension(), data);
}
public static TargetExtension parseFrom(
com.google.protobuf.nano.CodedInputByteBufferNano input)
throws java.io.IOException {
return new TargetExtension().mergeFrom(input);
}
}
}
// Generated by the protocol buffer compiler. DO NOT EDIT!
package com.android.launcher3.userevent.nano;
@SuppressWarnings("hiding")
public interface LauncherLogExtensions {
public static final class LauncherEventExtension extends
com.google.protobuf.nano.MessageNano {
private static volatile LauncherEventExtension[] _emptyArray;
public static LauncherEventExtension[] emptyArray() {
// Lazily initializes the empty array
if (_emptyArray == null) {
synchronized (
com.google.protobuf.nano.InternalNano.LAZY_INIT_LOCK) {
if (_emptyArray == null) {
_emptyArray = new LauncherEventExtension[0];
}
}
}
return _emptyArray;
}
public LauncherEventExtension() {
clear();
}
public LauncherEventExtension clear() {
cachedSize = -1;
return this;
}
@Override
public LauncherEventExtension mergeFrom(
com.google.protobuf.nano.CodedInputByteBufferNano input)
throws java.io.IOException {
while (true) {
int tag = input.readTag();
switch (tag) {
case 0:
return this;
default: {
if (!com.google.protobuf.nano.WireFormatNano.parseUnknownField(input, tag)) {
return this;
}
break;
}
}
}
}
public static LauncherEventExtension parseFrom(byte[] data)
throws com.google.protobuf.nano.InvalidProtocolBufferNanoException {
return com.google.protobuf.nano.MessageNano.mergeFrom(new LauncherEventExtension(), data);
}
public static LauncherEventExtension parseFrom(
com.google.protobuf.nano.CodedInputByteBufferNano input)
throws java.io.IOException {
return new LauncherEventExtension().mergeFrom(input);
}
}
public static final class TargetExtension extends
com.google.protobuf.nano.MessageNano {
private static volatile TargetExtension[] _emptyArray;
public static TargetExtension[] emptyArray() {
// Lazily initializes the empty array
if (_emptyArray == null) {
synchronized (
com.google.protobuf.nano.InternalNano.LAZY_INIT_LOCK) {
if (_emptyArray == null) {
_emptyArray = new TargetExtension[0];
}
}
}
return _emptyArray;
}
public TargetExtension() {
clear();
}
public TargetExtension clear() {
cachedSize = -1;
return this;
}
@Override
public TargetExtension mergeFrom(
com.google.protobuf.nano.CodedInputByteBufferNano input)
throws java.io.IOException {
while (true) {
int tag = input.readTag();
switch (tag) {
case 0:
return this;
default: {
if (!com.google.protobuf.nano.WireFormatNano.parseUnknownField(input, tag)) {
return this;
}
break;
}
}
}
}
public static TargetExtension parseFrom(byte[] data)
throws com.google.protobuf.nano.InvalidProtocolBufferNanoException {
return com.google.protobuf.nano.MessageNano.mergeFrom(new TargetExtension(), data);
}
public static TargetExtension parseFrom(
com.google.protobuf.nano.CodedInputByteBufferNano input)
throws java.io.IOException {
return new TargetExtension().mergeFrom(input);
}
}
}
[{"outputType":{"type":"AAPT_FRIENDLY_MERGED_MANIFESTS"},"apkData":{"type":"MAIN","splits":[],"versionCode":1,"versionName":"1.0","enabled":true,"outputFile":"Launcher3-debug.aar","fullName":"debug","baseName":"debug"},"path":"AndroidManifest.xml","properties":{"packageId":"com.android.launcher3","split":""}}]
\ No newline at end of file
[{"outputType":{"type":"AAPT_FRIENDLY_MERGED_MANIFESTS"},"apkData":{"type":"MAIN","splits":[],"versionCode":1,"versionName":"1.0","enabled":true,"outputFile":"Launcher3-release.aar","fullName":"release","baseName":"release"},"path":"AndroidManifest.xml","properties":{"packageId":"com.android.launcher3","split":""}}]
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/apple/AndroidStudioProjects/dankal_launcher/Launcher3/src/main/jniLibs"/></dataSet><dataSet config="debug" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/apple/AndroidStudioProjects/dankal_launcher/Launcher3/src/debug/jniLibs"/></dataSet></merger>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/apple/AndroidStudioProjects/dankal_launcher/Launcher3/src/main/shaders"/></dataSet><dataSet config="debug" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/apple/AndroidStudioProjects/dankal_launcher/Launcher3/src/debug/shaders"/></dataSet></merger>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/apple/AndroidStudioProjects/dankal_launcher/Launcher3/src/main/jniLibs"/></dataSet><dataSet config="release" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/apple/AndroidStudioProjects/dankal_launcher/Launcher3/src/release/jniLibs"/></dataSet></merger>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/apple/AndroidStudioProjects/dankal_launcher/Launcher3/src/main/shaders"/></dataSet><dataSet config="release" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/apple/AndroidStudioProjects/dankal_launcher/Launcher3/src/release/shaders"/></dataSet></merger>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/apple/AndroidStudioProjects/dankal_launcher/Launcher3/src/main/assets"/><source path="/Users/apple/AndroidStudioProjects/dankal_launcher/Launcher3/build/intermediates/shader_assets/debug/compileDebugShaders/out"/></dataSet><dataSet config="debug" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/apple/AndroidStudioProjects/dankal_launcher/Launcher3/src/debug/assets"/></dataSet></merger>
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
<?xml version="1.0" encoding="utf-8"?>
<merger version="3"><dataSet config="main" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/apple/AndroidStudioProjects/dankal_launcher/Launcher3/src/main/assets"/><source path="/Users/apple/AndroidStudioProjects/dankal_launcher/Launcher3/build/intermediates/shader_assets/release/compileReleaseShaders/out"/></dataSet><dataSet config="release" ignore_pattern="!.svn:!.git:!.ds_store:!*.scc:.*:&lt;dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~"><source path="/Users/apple/AndroidStudioProjects/dankal_launcher/Launcher3/src/release/assets"/></dataSet></merger>
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment