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  ww.ja  va 2 s.  com*/
 *  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