Android Open Source - task4java Android Service Client From Project Back to project page task4java .
License The source code is released under:
Apache License
If you think the Android project task4java listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
Java Source Code /*
* Copyright (c) 2014 Andree Hagelstein, Maik Schulze, Deutsche Telekom AG. All Rights Reserved.
* / * w w w . j a v a 2 s . c o m * /
* Filename: AndroidServiceClient.java
*/
package com.task4java.android.examples.backend;
import java.lang.annotation.Annotation;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List;
import java.util.concurrent.Callable;
import com.task4java.Tuple;
import com.task4java.android.examples.App;
import com.task4java.data.backend.IServiceClient;
import com.task4java.data.backend.model.MainMenuAnnotation;
import com.task4java.util.concurrent.Task;
import com.task4java.util.concurrent.TaskFactory;
import dalvik.system.DexFile;
import dalvik.system.PathClassLoader;
public class AndroidServiceClient implements IServiceClient {
@Override
public Task<List<Tuple<MainMenuAnnotation, Class<?>>>> getMainMenu() {
return TaskFactory.startNew(new Callable<List<Tuple<MainMenuAnnotation, Class<?>>>>() {
@Override
public List<Tuple<MainMenuAnnotation, Class<?>>> call() throws Exception {
String packageName = App.getAppContext().getPackageName();
String apkName = App.getAppContext().getPackageManager().getApplicationInfo(packageName, 0).sourceDir;
DexFile dexFile = new DexFile(apkName);
PathClassLoader classLoader = new PathClassLoader(apkName, Thread.currentThread().getContextClassLoader());
List<Tuple<MainMenuAnnotation, Class<?>>> classes = new ArrayList<Tuple<MainMenuAnnotation, Class<?>>>();
Enumeration<String> entries = dexFile.entries();
while (entries.hasMoreElements()) {
String entry = entries.nextElement();
if (entry.startsWith(packageName)) {
Class<?> entryClass = classLoader.loadClass(entry);
if (entryClass != null) {
Annotation[] annotations = entryClass.getAnnotations();
for (Annotation annotation : annotations) {
if (annotation instanceof MainMenuAnnotation) {
classes.add(new Tuple<MainMenuAnnotation, Class<?>>((MainMenuAnnotation) annotation, entryClass));
}
}
}
}
}
return classes;
}
});
}
}
Java Source Code List com.task4java.IndexedList.java com.task4java.KeyValuePair.java com.task4java.Stopwatch.java com.task4java.StringUtils.java com.task4java.Tuple.java com.task4java.android.activity.ActivityUtils.java com.task4java.android.activity.BaseActivity.java com.task4java.android.annotation.Annotations.java com.task4java.android.examples.App.java com.task4java.android.examples.activity.AboutActivity.java com.task4java.android.examples.activity.ExpandableListAdapter.java com.task4java.android.examples.activity.MainActivity.java com.task4java.android.examples.activity.WelcomeActivity.java com.task4java.android.examples.backend.AndroidServiceClient.java com.task4java.android.util.concurrent.ActivityExecutor.java com.task4java.android.util.concurrent.HandlerExecutor.java com.task4java.data.backend.IServiceClient.java com.task4java.data.backend.ServiceClient.java com.task4java.data.backend.model.MainMenuAnnotation.java com.task4java.data.frontend.ApplicationClient.java com.task4java.data.frontend.model.MainMenuItemGroupList.java com.task4java.data.frontend.model.MainMenuItemGroup.java com.task4java.data.frontend.model.MainMenuItem.java com.task4java.http.HttpHeaders.java com.task4java.http.HttpMimeTypes.java com.task4java.http.HttpRequestMethods.java com.task4java.http.HttpStatusCodes.java com.task4java.http.client.HttpContent.java com.task4java.http.client.HttpStringContent.java com.task4java.http.client.IImageClient.java com.task4java.http.client.IRestClient.java com.task4java.http.client.ImageClientGingerbread.java com.task4java.http.client.ImageClient.java com.task4java.http.client.ImageResponse.java com.task4java.http.client.RestClientGingerbread.java com.task4java.http.client.RestClient.java com.task4java.http.client.RestResponse.java com.task4java.lang.reflect.ReflectionCache.java com.task4java.net.URLBuilder.java com.task4java.util.concurrent.CallableTask.java com.task4java.util.concurrent.CallableValue2.java com.task4java.util.concurrent.CallableValue.java com.task4java.util.concurrent.ITaskStart.java com.task4java.util.concurrent.ITask.java com.task4java.util.concurrent.TaskCompletionSource.java com.task4java.util.concurrent.TaskContinuationOptions.java com.task4java.util.concurrent.TaskException.java com.task4java.util.concurrent.TaskFactory.java com.task4java.util.concurrent.TaskResultException.java com.task4java.util.concurrent.TaskStartException.java com.task4java.util.concurrent.Task.java com.task4java.util.log.ConsoleLogger.java com.task4java.util.log.ILog.java com.task4java.util.log.Logger.java