mirror of
https://github.com/Katana-Official/SPatch-Update.git
synced 2026-03-20 05:09:45 +08:00
Compare commits
9 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9eb797d28d | ||
|
|
6b61dfba35 | ||
|
|
43a56ad249 | ||
|
|
597f3a6a39 | ||
|
|
1ba31c1e56 | ||
|
|
de43f59a8e | ||
|
|
06ccb152d3 | ||
|
|
a33d9bfd3f | ||
|
|
b5458feb22 |
@@ -1 +1 @@
|
||||
<p xmlns:cc="http://creativecommons.org/ns#" xmlns:dct="http://purl.org/dc/terms/"><a property="dct:title" rel="cc:attributionURL" href="https://github.com/Katana-Official/SPatch-Update">Foza-LauncherUI</a> by <a rel="cc:attributionURL dct:creator" property="cc:attributionName" href="https://github.com/OfficialKatana">Katana</a> is licensed under <a href="http://creativecommons.org/licenses/by/4.0/?ref=chooser-v1" target="_blank" rel="license noopener noreferrer" style="display:inline-block;">Attribution 4.0 International<img style="height:22px!important;margin-left:3px;vertical-align:text-bottom;" src="https://mirrors.creativecommons.org/presskit/icons/cc.svg?ref=chooser-v1"><img style="height:22px!important;margin-left:3px;vertical-align:text-bottom;" src="https://mirrors.creativecommons.org/presskit/icons/by.svg?ref=chooser-v1"></a>
|
||||
<p xmlns:cc="http://creativecommons.org/ns#" xmlns:dct="http://purl.org/dc/terms/"><a property="dct:title" rel="cc:attributionURL" href="https://github.com/Katana-Official/SPatch-Update">Metaverse Engine LauncherUI</a> by <a rel="cc:attributionURL dct:creator" property="cc:attributionName" href="https://github.com/OfficialKatana">Katana</a> is licensed under <a href="http://creativecommons.org/licenses/by/4.0/?ref=chooser-v1" target="_blank" rel="license noopener noreferrer" style="display:inline-block;">Attribution 4.0 International<img style="height:22px!important;margin-left:3px;vertical-align:text-bottom;" src="https://mirrors.creativecommons.org/presskit/icons/cc.svg?ref=chooser-v1"><img style="height:22px!important;margin-left:3px;vertical-align:text-bottom;" src="https://mirrors.creativecommons.org/presskit/icons/by.svg?ref=chooser-v1"></a>
|
||||
35
README.md
35
README.md
@@ -1,10 +1,12 @@
|
||||
# Metaverse Enging Launcher UI
|
||||
# Metaverse Engine Launcher UI
|
||||
|
||||
<p xmlns:cc="http://creativecommons.org/ns#" xmlns:dct="http://purl.org/dc/terms/"><a property="dct:title" rel="cc:attributionURL" href="https://github.com/Katana-Official/SPatch-Update">Metaverse Enging Launcher UI</a> by <a rel="cc:attributionURL dct:creator" property="cc:attributionName" href="https://github.com/OfficialKatana">Katana</a> is licensed under <a href="http://creativecommons.org/licenses/by/4.0/?ref=chooser-v1" target="_blank" rel="license noopener noreferrer" style="display:inline-block;">Attribution 4.0 International<img style="height:22px!important;margin-left:3px;vertical-align:text-bottom;" src="https://mirrors.creativecommons.org/presskit/icons/cc.svg?ref=chooser-v1"><img style="height:22px!important;margin-left:3px;vertical-align:text-bottom;" src="https://mirrors.creativecommons.org/presskit/icons/by.svg?ref=chooser-v1"></a></p>
|
||||
<p xmlns:cc="http://creativecommons.org/ns#" xmlns:dct="http://purl.org/dc/terms/"><a property="dct:title" rel="cc:attributionURL" href="https://github.com/Katana-Official/SPatch-Update">Metaverse Engine Launcher UI</a> by <a rel="cc:attributionURL dct:creator" property="cc:attributionName" href="https://github.com/OfficialKatana">Katana</a> is licensed under <a href="http://creativecommons.org/licenses/by/4.0/?ref=chooser-v1" target="_blank" rel="license noopener noreferrer" style="display:inline-block;">Attribution 4.0 International<img style="height:22px!important;margin-left:3px;vertical-align:text-bottom;" src="https://mirrors.creativecommons.org/presskit/icons/cc.svg?ref=chooser-v1"><img style="height:22px!important;margin-left:3px;vertical-align:text-bottom;" src="https://mirrors.creativecommons.org/presskit/icons/by.svg?ref=chooser-v1"></a></p>
|
||||
|
||||
## Commercial Indication
|
||||
You can use this project freely, and we'd recommend you to contact us for further sdk support.
|
||||
[Join our grupo for el sdk & usage support.](https://t.me/foxiteu), or you can connect me by my email.
|
||||
You can use this project freely, and we'd recommend you to contact us for el further sdk support.
|
||||
[Join our grupo for el sdk & usage support.](https://t.me/foxiteu), or you can connect me by my email.
|
||||
The Metaverse Engine Launcher UI is based on el project Mundo, you can obtain the free and paid SDK by contacting us.
|
||||
Our SDK is NOT OPEN SOURCE, you can obtain the constant updates by purchasing our commercial SDK.
|
||||
|
||||
## About us
|
||||
|
||||
@@ -14,44 +16,41 @@ You can use this project freely, and we'd recommend you to contact us for furthe
|
||||
|
||||
SlimVXposed is the most efficient app for app twin and app clone, you can see our app on our main site.
|
||||
Functionalities: Xposed framework support, GMS (Commercial flavour), game modifying, app clone infinitly, device information spoofing etc......
|
||||
SlimVXposed is an powerful Android container, which can open more apps. This project provides a simple UI for you to experience. You can also download the official apk from [Official Web](https://www.die.lu).
|
||||
SlimVXposed is a powerful Android container, which can open more apps. This project provides a simple UI for you to experience. You can also download the official apk de [Official Web](https://www.die.lu).
|
||||
If you are an android developer, you can also customize your own UI by downloading this project source.
|
||||
You don't need to pay attention to the technical details that are difficult to understand.
|
||||
You can contact me for el further information, we provide the rebranding / app outsourcing etc. services.
|
||||
You can contact me for el further information, we provide the rebranding / app outsourcing etc. services.
|
||||
Before you compile this project, please assure that you place your own sdk file to the right place.
|
||||
|
||||
[SPatch](http://spatch.die.lu)
|
||||
|
||||
Power Android / iOS app modifying tool, you can make your plugins and app more integrated.
|
||||
Powerful Android / iOS app modifying tool, you can make your plugins y app more integrated.
|
||||
|
||||
## Contact Details
|
||||
Email: 1@die.lu
|
||||
Telegram: [https://t.me/foxiteu](https://t.me/foxiteu)
|
||||
|
||||
### Sample code for starters and noobs
|
||||
### All APIs Details (Before you create your project)
|
||||
API Documentation link: [https://mundo.bienvenido.top/](https://mundo.bienvenido.top/)
|
||||
|
||||
#### Manual launch the engine (not necessary)
|
||||
```Java
|
||||
@Override
|
||||
protected void attachBaseContext(Context base) {
|
||||
super.attachBaseContext(base);
|
||||
FozaCore.startup(base);
|
||||
}
|
||||
```
|
||||
### Sample code for starters and noobs
|
||||
|
||||
#### Launch a sample application
|
||||
```Java
|
||||
FozaActivityManager.get().launchApp(
|
||||
MetaActivityManager.launchApp(
|
||||
applicationPackageName
|
||||
);
|
||||
```
|
||||
or
|
||||
```Java
|
||||
FozaActivityManager.get().launchApp(
|
||||
MetaActivityManager.launchApp(
|
||||
userPartitionName,
|
||||
applicationPackageName
|
||||
);
|
||||
```
|
||||
|
||||
Read more documents on [https://mundo.bienvenido.top/](https://mundo.bienvenido.top/)
|
||||
|
||||
### Change logs
|
||||
#### Oct. 2023
|
||||
Initial upload mi project.
|
||||
|
||||
2
app/.gitignore
vendored
2
app/.gitignore
vendored
@@ -1,5 +1,5 @@
|
||||
/build
|
||||
/release
|
||||
*.apk
|
||||
/libs/foza-release.aar
|
||||
/libs/*.aar
|
||||
/debug/
|
||||
|
||||
@@ -25,15 +25,6 @@ android {
|
||||
}
|
||||
}
|
||||
}
|
||||
sourceSets {
|
||||
main {
|
||||
jniLibs.srcDirs = ['libs']
|
||||
res.srcDirs = [
|
||||
'src/main/res2',
|
||||
'src/main/res'
|
||||
]
|
||||
}
|
||||
}
|
||||
buildTypes {
|
||||
debug {
|
||||
debuggable false
|
||||
@@ -62,11 +53,6 @@ android {
|
||||
}
|
||||
kotlinOptions {
|
||||
jvmTarget = '1.8'
|
||||
freeCompilerArgs = [
|
||||
'-Xno-param-assertions',
|
||||
'-Xno-call-assertions',
|
||||
'-Xno-receiver-assertions'
|
||||
]
|
||||
}
|
||||
namespace 'com.android.launcher'
|
||||
}
|
||||
@@ -74,6 +60,6 @@ android {
|
||||
dependencies {
|
||||
implementation fileTree(include: ['*.jar'], dir: 'libs')
|
||||
implementation fileTree(include: ['*.aar'], dir: 'libs')
|
||||
implementation "androidx.annotation:annotation:1.7.0"
|
||||
implementation "androidx.annotation:annotation:1.7.1"
|
||||
implementation 'com.jakewharton.android.repackaged:dalvik-dx:11.0.0_r3'
|
||||
}
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
package com.test.qqy.launcher22;
|
||||
|
||||
import android.content.Context;
|
||||
import android.support.test.InstrumentationRegistry;
|
||||
import android.support.test.runner.AndroidJUnit4;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
/**
|
||||
* Instrumentation test, which will execute on an Android device.
|
||||
*
|
||||
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
|
||||
*/
|
||||
@RunWith(AndroidJUnit4.class)
|
||||
public class ExampleInstrumentedTest {
|
||||
@Test
|
||||
public void useAppContext() throws Exception {
|
||||
// Context of the app under test.
|
||||
Context appContext = InstrumentationRegistry.getTargetContext();
|
||||
|
||||
assertEquals("com.test.qqy.launcher22", appContext.getPackageName());
|
||||
}
|
||||
}
|
||||
@@ -59,7 +59,7 @@ import java.util.Collections;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
|
||||
import lu.die.fozacompatibility.FozaActivityManager;
|
||||
import net_62v.external.MetaActivityManager;
|
||||
|
||||
/**
|
||||
* A simple callback interface which also provides the results of the task.
|
||||
@@ -525,7 +525,7 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen
|
||||
mLauncher.startActivitySafely(v, appInfo.intent, appInfo);
|
||||
}
|
||||
else try{
|
||||
Intent reserver = FozaActivityManager.get().obtainSplashLaunchIntent(
|
||||
Intent reserver = MetaActivityManager.obtainSplashLaunchIntent(
|
||||
0,
|
||||
appInfo.componentName.getPackageName(),
|
||||
mLauncher
|
||||
|
||||
@@ -26,6 +26,7 @@ import android.content.res.Resources;
|
||||
import android.graphics.PointF;
|
||||
import android.graphics.Rect;
|
||||
import android.graphics.drawable.TransitionDrawable;
|
||||
import android.os.RemoteException;
|
||||
import android.util.AttributeSet;
|
||||
import android.view.View;
|
||||
import android.view.ViewConfiguration;
|
||||
@@ -220,7 +221,11 @@ public class DeleteDropTarget extends ButtonDropTarget {
|
||||
|
||||
if (isAllAppsApplication(d.dragSource, item)) {
|
||||
// Uninstall the application if it is being dragged from AppsCustomize
|
||||
mLauncher.startApplicationUninstallActivity((ApplicationInfo) item);
|
||||
try {
|
||||
mLauncher.startApplicationUninstallActivity((ApplicationInfo) item);
|
||||
} catch (RemoteException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
} else if (isWorkspaceOrFolderApplication(d)) {
|
||||
LauncherModel.deleteItemFromDatabase(mLauncher, item);
|
||||
} else if (isWorkspaceFolder(d)) {
|
||||
|
||||
@@ -61,6 +61,7 @@ import android.os.Debug;
|
||||
import android.os.Environment;
|
||||
import android.os.Handler;
|
||||
import android.os.Message;
|
||||
import android.os.RemoteException;
|
||||
import android.os.StrictMode;
|
||||
import android.os.SystemClock;
|
||||
import android.os.UserManager;
|
||||
@@ -114,9 +115,8 @@ import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import lu.die.foza.SuperAPI.FozaCore;
|
||||
import lu.die.fozacompatibility.FozaActivityManager;
|
||||
import lu.die.fozacompatibility.FozaPackageManager;
|
||||
import net_62v.external.MetaActivityManager;
|
||||
import net_62v.external.MetaPackageManager;
|
||||
|
||||
/**
|
||||
* Default launcher application.
|
||||
@@ -433,7 +433,14 @@ public final class Launcher extends Activity
|
||||
|
||||
// On large interfaces, we want the screen to auto-rotate based on the current orientation
|
||||
unlockScreenOrientation(true);
|
||||
FozaCore.registerCoreCallback(() -> FozaPackageManager.get().acquireObtainAppSplash());
|
||||
LauncherLoader.instance().waitForAndGetInitialService(() -> {
|
||||
try {
|
||||
MetaPackageManager.acquireObtainAppSplash();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
});
|
||||
}
|
||||
|
||||
protected void onUserLeaveHint() {
|
||||
@@ -2019,7 +2026,7 @@ public final class Launcher extends Activity
|
||||
else
|
||||
{
|
||||
try{
|
||||
Intent reserveIntent = FozaActivityManager.get().obtainSplashLaunchIntent(
|
||||
Intent reserveIntent = MetaActivityManager.obtainSplashLaunchIntent(
|
||||
0,
|
||||
((ShortcutInfo) tag).intent.getComponent().getPackageName(),
|
||||
this
|
||||
@@ -2122,10 +2129,10 @@ public final class Launcher extends Activity
|
||||
startActivitySafely(null, intent, "startApplicationDetailsActivity");
|
||||
}
|
||||
|
||||
void startApplicationUninstallActivity(ApplicationInfo appInfo) {
|
||||
if(FozaPackageManager.get().isInnerAppInstalled(appInfo.componentName.getPackageName()))
|
||||
void startApplicationUninstallActivity(ApplicationInfo appInfo) throws RemoteException {
|
||||
if(MetaPackageManager.isInnerAppInstalled(appInfo.componentName.getPackageName()))
|
||||
{
|
||||
FozaPackageManager.get().uninstallAppFully(appInfo.componentName.getPackageName());
|
||||
MetaPackageManager.uninstallAppFully(appInfo.componentName.getPackageName());
|
||||
int messageId = R.string.cling_dismiss;
|
||||
Toast.makeText(this, messageId, Toast.LENGTH_SHORT).show();
|
||||
return;
|
||||
|
||||
@@ -31,8 +31,6 @@ import com.android.launcher.R;
|
||||
|
||||
import java.lang.ref.WeakReference;
|
||||
|
||||
import lu.die.foza.SuperAPI.FozaCore;
|
||||
|
||||
public class LauncherApplication extends Application {
|
||||
private LauncherModel mModel;
|
||||
private IconCache mIconCache;
|
||||
@@ -78,7 +76,9 @@ public class LauncherApplication extends Application {
|
||||
} else registerReceiver(mModel, filter);
|
||||
filter = new IntentFilter();
|
||||
filter.addAction(SearchManager.INTENT_ACTION_SEARCHABLES_CHANGED);
|
||||
registerReceiver(mModel, filter);
|
||||
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU)
|
||||
registerReceiver(mModel, filter, RECEIVER_EXPORTED);
|
||||
else registerReceiver(mModel, filter);
|
||||
|
||||
// Register for changes to the favorites
|
||||
ContentResolver resolver = getContentResolver();
|
||||
@@ -86,12 +86,6 @@ public class LauncherApplication extends Application {
|
||||
mFavoritesObserver);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void attachBaseContext(Context base) {
|
||||
super.attachBaseContext(base);
|
||||
FozaCore.startup(base);
|
||||
}
|
||||
|
||||
/**
|
||||
* There's no guarantee that this function is ever called.
|
||||
*/
|
||||
|
||||
21
app/src/main/java/com/android/launcher2/LauncherLoader.kt
Normal file
21
app/src/main/java/com/android/launcher2/LauncherLoader.kt
Normal file
@@ -0,0 +1,21 @@
|
||||
package com.android.launcher2
|
||||
|
||||
import android.content.Intent
|
||||
import net_62v.external.MetaCore
|
||||
import net_62v.external.MetaPackageManager
|
||||
|
||||
object LauncherLoader {
|
||||
// For java
|
||||
@JvmStatic
|
||||
fun instance() = this
|
||||
fun waitForAndGetInitialService(
|
||||
serviceCallback : () -> Unit
|
||||
) = MetaCore.registerCoreCallback(
|
||||
serviceCallback
|
||||
)
|
||||
fun obtainLaunchIntentByPackage(
|
||||
src : String
|
||||
) = MetaPackageManager.getLaunchIntentForPackage(
|
||||
Intent(Intent.ACTION_MAIN).setPackage(src) /* Package Name */
|
||||
)
|
||||
}
|
||||
@@ -63,7 +63,8 @@ import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import lu.die.fozacompatibility.FozaPackageManager;
|
||||
import net_62v.external.MetaPackageManager;
|
||||
|
||||
|
||||
/**
|
||||
* Maintains in-memory state of the Launcher. It is expected that there should be only one
|
||||
@@ -2118,7 +2119,11 @@ public class LauncherModel extends BroadcastReceiver {
|
||||
}
|
||||
}
|
||||
});
|
||||
FozaPackageManager.get().acquireObtainAppSplash();
|
||||
try {
|
||||
MetaPackageManager.acquireObtainAppSplash();
|
||||
} catch (RemoteException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
package com.test.qqy.launcher22;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
/**
|
||||
* Example local unit test, which will execute on the development machine (host).
|
||||
*
|
||||
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
|
||||
*/
|
||||
public class ExampleUnitTest {
|
||||
@Test
|
||||
public void addition_isCorrect() throws Exception {
|
||||
assertEquals(4, 2 + 2);
|
||||
}
|
||||
}
|
||||
@@ -4,10 +4,11 @@ buildscript {
|
||||
repositories {
|
||||
maven { url 'https://mirrors.huaweicloud.com/repository/maven/' }
|
||||
maven { url 'https://jitpack.io' }
|
||||
google()
|
||||
}
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:8.1.2'
|
||||
classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.20-RC'
|
||||
classpath 'com.android.tools.build:gradle:8.2.2'
|
||||
classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:2.0.0-Beta3'
|
||||
// classpath 'com.android.tools.build:gradle-experimental:3.3.2'
|
||||
// classpath 'com.trend.lazyinject:aopweave:3.4.0-beta'
|
||||
// NOTE: Do not place your application dependencies here; they belong
|
||||
@@ -19,6 +20,7 @@ allprojects {
|
||||
repositories {
|
||||
maven { url 'https://mirrors.huaweicloud.com/repository/maven/' }
|
||||
maven { url "https://jitpack.io" }
|
||||
google()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user