9 Commits

Author SHA1 Message Date
Katana
9eb797d28d App: Upgrade app dependency 2024-02-04 01:11:01 +08:00
Katana
6b61dfba35 App: Upgrade app dependency 2024-01-12 02:00:16 +08:00
Katana
43a56ad249 App: Update READMI 2023-12-20 19:20:51 +08:00
Katana
597f3a6a39 App: Transfer to Mundo 2023-12-20 19:18:09 +08:00
Katana
1ba31c1e56 App: Fix bugs above Android 14 2023-11-16 05:59:26 +08:00
Katana
de43f59a8e App: initial add process callback 2023-11-09 22:43:16 +08:00
Katana
06ccb152d3 Upgrade dependency 2023-11-09 22:31:30 +08:00
Katana
a33d9bfd3f Add credits 2023-10-27 01:46:42 +08:00
Katana
b5458feb22 Add credits 2023-10-27 01:43:42 +08:00
13 changed files with 78 additions and 102 deletions

View File

@@ -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>

View File

@@ -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
View File

@@ -1,5 +1,5 @@
/build
/release
*.apk
/libs/foza-release.aar
/libs/*.aar
/debug/

View File

@@ -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'
}

View File

@@ -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());
}
}

View File

@@ -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

View File

@@ -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)) {

View File

@@ -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;

View File

@@ -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.
*/

View 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 */
)
}

View File

@@ -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();
}
}
}

View File

@@ -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);
}
}

View File

@@ -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()
}
}