You've already forked android_translation_layer
mirror of
https://gitlab.com/android_translation_layer/android_translation_layer.git
synced 2025-10-27 11:48:10 -07:00
create ContentProvider from AndroidManifest.xml
This is required for androidx startup library. Only onCreate method is called for now.
This commit is contained in:
31
src/api-impl/android/content/ContentProvider.java
Normal file
31
src/api-impl/android/content/ContentProvider.java
Normal file
@@ -0,0 +1,31 @@
|
||||
package android.content;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.reandroid.arsc.chunk.xml.AndroidManifestBlock;
|
||||
import com.reandroid.arsc.chunk.xml.ResXmlElement;
|
||||
|
||||
public class ContentProvider {
|
||||
|
||||
static void createContentProviders() throws ReflectiveOperationException {
|
||||
List<ResXmlElement> providers = Context.manifest.getApplicationElement().listElements(AndroidManifestBlock.TAG_provider);
|
||||
System.out.println(providers);
|
||||
for (ResXmlElement providerElement : providers) {
|
||||
String providerName = providerElement.searchAttributeByResourceId(AndroidManifestBlock.ID_name).getValueAsString();
|
||||
if (providerName.startsWith(".")) {
|
||||
providerName = Context.manifest.getPackageName() + providerName;
|
||||
}
|
||||
System.out.println("creating " + providerName);
|
||||
Class<? extends ContentProvider> providerCls = Class.forName(providerName).asSubclass(ContentProvider.class);
|
||||
ContentProvider provider = providerCls.getConstructor().newInstance();
|
||||
provider.onCreate();
|
||||
}
|
||||
}
|
||||
|
||||
public boolean onCreate() {return false;}
|
||||
|
||||
public Context getContext() {
|
||||
return Context.this_application;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user