package com.antfortune.freeline.gradle; import android.app.Application; import android.text.TextUtils; import android.util.Log; import com.antfortune.freeline.resources.MonkeyPatcher; import com.antfortune.freeline.FreelineCore; import com.antfortune.freeline.IDynamic; import com.antfortune.freeline.util.ActivityManager; import java.io.File; import java.util.Arrays; import java.util.HashMap; public class GradleDynamic implements IDynamic { private static final String TAG = "Freeline.GradleDynamic"; private Application app; public GradleDynamic(Application context) { this.app = context; } @Override public boolean applyDynamicRes(HashMap<String, String> dynamicRes) { String dynamicResPath = dynamicRes.get(FreelineCore.DEFAULT_PACKAGE_ID); Log.i(TAG, "dynamicResPath: " + dynamicResPath); if (!TextUtils.isEmpty(dynamicResPath)) { Application realApplication = FreelineCore.getRealApplication(); MonkeyPatcher.monkeyPatchApplication(app, app, realApplication, dynamicResPath); MonkeyPatcher.monkeyPatchExistingResources(app, dynamicResPath, Arrays.asList(ActivityManager.getAllActivities())); Log.i(TAG, "GradleDynamic apply dynamic resource successfully"); } return true; } @Override public String getOriginResPath(String packageId) { File baseResFile = new File(FreelineCore.getDynamicInfoTempDir(), "full-res-pack.so"); return baseResFile.getAbsolutePath(); } @Override public void clearResourcesCache() { } }