├── .gitignore └── ex ├── BarrierTaskGang ├── .classpath ├── .gitignore ├── .project └── src │ ├── BarrierTaskGangTest.java │ ├── CyclicSearchWithCyclicBarrier.java │ ├── CyclicSearchWithPhaser.java │ ├── OneShotSearchWithCountDownLatch.java │ ├── SearchResults.java │ ├── SearchTaskGangCommon.java │ ├── SearchTaskGangCommonCyclic.java │ └── TaskGang.java ├── BuggyQueue ├── .classpath ├── .project └── src │ ├── BuggyQueueTest.java │ └── SimpleQueue.java ├── DeadlockQueue ├── .classpath ├── .project └── src │ ├── DeadlockTest.java │ └── SimpleQueue.java ├── DownloadApplication ├── .classpath ├── .project ├── AndroidManifest.xml ├── gen │ └── edu │ │ └── vuum │ │ └── mocca │ │ ├── BuildConfig.java │ │ └── R.java ├── project.properties ├── res │ ├── drawable-hdpi │ │ ├── default_image.png │ │ ├── ic_action_search.png │ │ └── ic_launcher.png │ ├── drawable-ldpi │ │ ├── ic_icon.png │ │ └── ic_launcher.png │ ├── drawable-mdpi │ │ ├── default_image.png │ │ ├── ic_action_search.png │ │ └── ic_launcher.png │ ├── drawable-xhdpi │ │ ├── default_image.png │ │ ├── ic_action_search.png │ │ └── ic_launcher.png │ ├── layout │ │ ├── main.xml │ │ └── main.xml.~1~ │ ├── menu │ │ └── options.xml │ ├── values-v11 │ │ └── styles.xml │ ├── values-v14 │ │ └── styles.xml │ └── values │ │ ├── strings.xml │ │ └── styles.xml └── src │ └── edu │ └── vuum │ └── mocca │ ├── DownloadActivity.java │ └── DownloadService.java ├── ImageStream ├── .classpath ├── .project ├── DownloadImages │ ├── GrayScaleFilter │ │ ├── douglass.jpg │ │ ├── ironbound.jpg │ │ ├── ka.png │ │ ├── lil-doug.jpg │ │ ├── uci.png │ │ └── wm.jpg │ └── NullFilter │ │ ├── douglass.jpg │ │ ├── ironbound.jpg │ │ ├── ka.png │ │ ├── lil-doug.jpg │ │ ├── uci.png │ │ └── wm.jpg └── src │ └── example │ └── imagestream │ ├── BufferedImage.java │ ├── Filter.java │ ├── FilterDecorator.java │ ├── GrayScaleFilter.java │ ├── Image.java │ ├── ImageEntity.java │ ├── ImageStream.java │ ├── ImageStreamCompletableFuture.java │ ├── ImageStreamParallel.java │ ├── ImageStreamSequential.java │ ├── MainConsole.java │ ├── NullFilter.java │ ├── Options.java │ ├── OutputFilterDecorator.java │ ├── PlatformStrategy.java │ ├── PlatformStrategyConsole.java │ ├── PlatformStrategyFactory.java │ └── StreamGang.java ├── ImageStreamWeb ├── .classpath ├── .project ├── WebContent │ ├── META-INF │ │ └── MANIFEST.MF │ └── WEB-INF │ │ ├── lib │ │ └── gson-2.3.1.jar │ │ └── web.xml └── src │ ├── example │ ├── BufferedImage.java │ ├── Image.java │ ├── ImageEntity.java │ ├── ImageStream.java │ ├── ImageStreamCompletableFuture.java │ ├── ImageStreamParallel.java │ ├── ImageStreamSequential.java │ ├── ImageStreamServlet.java │ ├── MainConsole.java │ ├── Options.java │ ├── PlatformStrategy.java │ ├── PlatformStrategyConsole.java │ ├── PlatformStrategyFactory.java │ ├── PlatformStrategyProxy.java │ └── StreamGang.java │ └── filters │ ├── Filter.java │ ├── FilterDecorator.java │ ├── GrayScaleFilter.java │ ├── NullFilter.java │ └── OutputFilterDecorator.java ├── ImageTaskGang ├── .classpath ├── .project ├── AndroidManifest.xml ├── libs │ ├── META-INF │ │ ├── MANIFEST.MF │ │ └── maven │ │ │ └── com.squareup.retrofit │ │ │ └── retrofit │ │ │ ├── pom.properties │ │ │ └── pom.xml │ ├── android-support-v4.jar │ ├── gson-2.3.1.jar │ └── retrofit-1.9.0.jar ├── proguard-project.txt ├── project.properties ├── res │ ├── drawable-hdpi │ │ └── ic_launcher.png │ ├── drawable-mdpi │ │ └── ic_launcher.png │ ├── drawable-xhdpi │ │ └── ic_launcher.png │ ├── layout │ │ ├── activity_main.xml │ │ ├── activity_result.xml │ │ ├── list_item.xml │ │ ├── result_button.xml │ │ └── suggestion_item.xml │ ├── values-v11 │ │ └── styles.xml │ ├── values-v14 │ │ └── styles.xml │ └── values │ │ ├── strings.xml │ │ └── styles.xml └── src │ └── example │ └── imagetaskgang │ ├── BitmapImage.java │ ├── BufferedImage.java │ ├── Image.java │ ├── ImageEntity.java │ ├── ImageTaskGang.java │ ├── MainActivity.java │ ├── MainConsole.java │ ├── Options.java │ ├── PlatformStrategy.java │ ├── PlatformStrategyAndroid.java │ ├── PlatformStrategyConsole.java │ ├── PlatformStrategyFactory.java │ ├── ResultsActivity.java │ ├── TaskGang.java │ ├── filters │ ├── Filter.java │ ├── FilterDecorator.java │ ├── GrayScaleFilter.java │ ├── NullFilter.java │ └── OutputFilterDecorator.java │ └── servermodel │ ├── FilterData.java │ ├── ImageData.java │ ├── ImageStreamService.java │ └── ServerResponse.java ├── ImageTaskGangConsole ├── .classpath ├── .project ├── DownloadImages │ ├── GrayScaleFilter │ │ ├── douglass.jpg │ │ ├── ironbound.jpg │ │ ├── ka.png │ │ ├── lil-doug.jpg │ │ ├── uci.png │ │ └── wm.jpg │ └── NullFilter │ │ ├── douglass.jpg │ │ ├── ironbound.jpg │ │ ├── ka.png │ │ ├── lil-doug.jpg │ │ ├── uci.png │ │ └── wm.jpg └── src │ └── example │ └── imagetaskgang │ ├── BufferedImage.java │ ├── Filter.java │ ├── FilterDecorator.java │ ├── GrayScaleFilter.java │ ├── Image.java │ ├── ImageEntity.java │ ├── ImageTaskGang.java │ ├── MainConsole.java │ ├── NullFilter.java │ ├── Options.java │ ├── OutputFilterDecorator.java │ ├── PlatformStrategy.java │ ├── PlatformStrategyConsole.java │ ├── PlatformStrategyFactory.java │ └── TaskGang.java ├── PingPongWrong ├── .classpath ├── .project └── src │ └── PingPongWrong.java ├── SearchTaskGang ├── .classpath ├── .project └── src │ ├── OneShotExecutorCompletionService.java │ ├── OneShotExecutorService.java │ ├── OneShotExecutorServiceFuture.java │ ├── OneShotThreadPerTask.java │ ├── SearchResults.java │ ├── SearchTaskGangCommon.java │ ├── TaskGang.java │ └── TaskGangTest.java ├── SimpleBlockingQueue ├── .classpath ├── .project └── src │ ├── SimpleBlockingQueue.java │ └── SimpleBlockingQueueTest.java ├── TaskGang ├── .classpath ├── .project └── src │ ├── CyclicExecutorService.java │ ├── OneShotExecutorCompletionService.java │ ├── OneShotExecutorService.java │ ├── OneShotExecutorServiceFuture.java │ ├── OneShotThreadPerTask.java │ ├── SearchResults.java │ ├── SearchTaskGangCommon.java │ ├── TaskGang.java │ └── TaskGangTest.java ├── ThreadGang ├── .classpath ├── .project └── src │ ├── ThreadGang.java │ ├── ThreadGangTest.java │ └── ThreadJoinTest.java ├── ThreadedDownloads ├── .classpath ├── .project ├── .settings │ └── org.eclipse.jdt.core.prefs ├── AndroidManifest.xml ├── gen │ └── edu │ │ └── vuum │ │ └── mocca │ │ ├── BuildConfig.java │ │ └── R.java ├── project.properties ├── res │ ├── drawable-hdpi │ │ ├── default_image.png │ │ ├── ic_action_search.png │ │ └── ic_launcher.png │ ├── drawable-ldpi │ │ ├── ic_icon.png │ │ └── ic_launcher.png │ ├── drawable-mdpi │ │ ├── default_image.png │ │ ├── ic_action_search.png │ │ └── ic_launcher.png │ ├── drawable-xhdpi │ │ ├── default_image.png │ │ ├── ic_action_search.png │ │ └── ic_launcher.png │ ├── layout │ │ └── main.xml │ ├── menu │ │ └── options.xml │ ├── values-v11 │ │ └── styles.xml │ ├── values-v14 │ │ └── styles.xml │ └── values │ │ ├── strings.xml │ │ └── styles.xml └── src │ └── edu │ └── vuum │ └── mocca │ ├── ButtonStrategy.java │ ├── ButtonStrategyMapper.java │ ├── DownloadContext.java │ ├── DownloadWithAsyncTask.java │ ├── DownloadWithMessages.java │ ├── DownloadWithRunnable.java │ ├── ResetImage.java │ └── ThreadedDownloadsActivity.java ├── UserOrDaemonExecutor ├── .classpath ├── .project └── src │ ├── GCDRunnable.java │ └── TestExecutor.java ├── UserOrDaemonRunnable ├── .classpath ├── .project └── src │ ├── GCDRunnable.java │ └── TestRunnable.java ├── UserOrDaemonThread ├── .classpath ├── .project └── src │ ├── TestThread.java │ └── UserOrDaemonThread.java ├── UserThreadInterrupted ├── .classpath ├── .project └── src │ ├── CompletionStage.java │ ├── GCDRunnable.java │ ├── RunnableFuture.java │ ├── TestInterrupted.java │ └── foo.ucls └── WeekendPlanner ├── .gitignore ├── Android ├── .classpath ├── .project ├── AndroidManifest.xml ├── ic_launcher-web.png ├── libs │ ├── android-support-v4.jar │ ├── gson-2.3.1.jar │ ├── okhttp-2.4.0.jar │ ├── okio-1.4.0.jar │ └── retrofit-1.9.0.jar ├── proguard-project.txt ├── project.properties ├── res │ ├── drawable-hdpi │ │ └── ic_launcher.png │ ├── drawable-mdpi │ │ └── ic_launcher.png │ ├── drawable-xhdpi │ │ └── ic_launcher.png │ ├── drawable-xxhdpi │ │ └── ic_launcher.png │ ├── layout │ │ ├── activity_main.xml │ │ ├── fragment_main.xml │ │ ├── fragment_results.xml │ │ ├── fragment_tripdetail.xml │ │ ├── row_basicstring.xml │ │ ├── row_day.xml │ │ └── row_tripvariant.xml │ ├── menu │ │ └── main.xml │ ├── values-v11 │ │ └── styles.xml │ ├── values-v14 │ │ └── styles.xml │ ├── values-w820dp │ │ └── dimens.xml │ └── values │ │ ├── dimens.xml │ │ ├── strings.xml │ │ └── styles.xml └── src │ └── example │ ├── fragments │ ├── PromptFragment.java │ ├── ResultsFragment.java │ └── TripDetailFragment.java │ ├── web │ ├── model │ │ ├── City.java │ │ ├── Event.java │ │ ├── Flight.java │ │ ├── Geocode.java │ │ ├── Place.java │ │ ├── TripVariant.java │ │ └── Weather.java │ ├── requests │ │ └── WeekendPlannerRequest.java │ ├── responses │ │ ├── CityResponse.java │ │ └── WeekendPlannerResponse.java │ ├── services │ │ └── WeekendPlannerService.java │ └── utils │ │ └── RetrofitAdapterUtils.java │ └── weekendizer │ └── MainActivity.java └── Server ├── .classpath ├── .project ├── WebContent ├── META-INF │ └── MANIFEST.MF └── WEB-INF │ └── lib │ ├── gson-2.3.1.jar │ └── retrofit-1.9.0.jar └── src └── example ├── web ├── model │ ├── City.java │ ├── Event.java │ ├── Flight.java │ ├── Geocode.java │ ├── Place.java │ ├── TripVariant.java │ └── Weather.java ├── ops │ ├── BaseOps.java │ ├── FlightOps.java │ ├── PlacesOps.java │ ├── TicketOps.java │ └── WeatherOps.java ├── requests │ └── WeekendPlannerRequest.java ├── responses │ ├── CityResponse.java │ ├── FlightResponse.java │ ├── GeoCodeResponse.java │ ├── OAuth2TokenResponse.java │ ├── PlacesResponse.java │ ├── TicketResponse.java │ └── WeatherResponse.java ├── services │ ├── FlightService.java │ ├── PlacesService.java │ ├── TicketService.java │ └── WeatherService.java └── utils │ ├── BaseOAuth2Utils.java │ ├── DateUtils.java │ ├── FlightAuthUtils.java │ ├── NoAuthUtils.java │ ├── PlacesAuthUtils.java │ └── TicketAuthUtils.java └── weekendplanner ├── WeekendPlannerOps.java ├── WeekendPlannerResponse.java └── WeekendPlannerServlet.java /.gitignore: -------------------------------------------------------------------------------- 1 | ############################################################################# 2 | # 3 | # .gitignore declares what files should be ignored by git 4 | # 5 | # This particular file is a composite of github's Android and Eclipse 6 | # files, along with some custom additions. 7 | # 8 | ############################################################################# 9 | 10 | ############################################################################# 11 | # Eclipse related files 12 | ############################################################################# 13 | 14 | *.pydevproject 15 | .metadata 16 | .gradle 17 | bin/ 18 | tmp/ 19 | *.tmp 20 | *.bak 21 | *.swp 22 | *~.nib 23 | local.properties 24 | .settings/ 25 | .loadpath 26 | 27 | # External tool builders 28 | .externalToolBuilders/ 29 | 30 | # Locally stored "Eclipse launch configurations" 31 | *.launch 32 | 33 | # CDT-specific 34 | .cproject 35 | 36 | # PDT-specific 37 | .buildpath 38 | 39 | # sbteclipse plugin 40 | .target 41 | 42 | # TeXlipse plugin 43 | .texlipse 44 | 45 | ############################################################################# 46 | # Android related files 47 | ############################################################################# 48 | 49 | # Built application files 50 | #*.apk 51 | #*.ap_ 52 | 53 | # Files for the Dalvik VM 54 | *.dex 55 | 56 | # Java class files 57 | *.class 58 | 59 | # Generated files 60 | bin/ 61 | gen/ 62 | 63 | # Gradle files 64 | .gradle/ 65 | build/ 66 | 67 | # Local configuration file (sdk path, etc) 68 | local.properties 69 | 70 | # Proguard folder generated by Eclipse 71 | proguard/ 72 | 73 | #Log Files 74 | *.log 75 | 76 | ############################################################################# 77 | # Other Misc. files 78 | ############################################################################# 79 | 80 | # Temp files for KDE and other Editor's 81 | *~ 82 | 83 | -------------------------------------------------------------------------------- /ex/BarrierTaskGang/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /ex/BarrierTaskGang/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /ex/BarrierTaskGang/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | BarrierTaskGang 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | 15 | org.eclipse.jdt.core.javanature 16 | 17 | 18 | -------------------------------------------------------------------------------- /ex/BarrierTaskGang/src/OneShotSearchWithCountDownLatch.java: -------------------------------------------------------------------------------- 1 | import java.util.concurrent.CountDownLatch; 2 | 3 | /** 4 | * @class OneShotSearchWithCountDownLatch 5 | * 6 | * @brief Customizes the SearchTaskGangCommon framework to spawn a 7 | * Thread for each element in the List of input Strings and 8 | * use a CountDownLatch to wait for all the Threads to 9 | * finish concurrently searching the input for an array of 10 | * words to find. It only runs for a single iteration cycle. 11 | */ 12 | public class OneShotSearchWithCountDownLatch 13 | extends SearchTaskGangCommon { 14 | /** 15 | * Constructor initializes the super class. 16 | */ 17 | OneShotSearchWithCountDownLatch(String[] wordsToFind, 18 | String[][] stringsToSearch) { 19 | // Pass input to superclass constructor. 20 | super(wordsToFind, 21 | stringsToSearch); 22 | } 23 | 24 | /** 25 | * Hook method invoked by initiateTaskGang() to perform custom 26 | * initializations before the Threads in the gang are spawned. 27 | */ 28 | @Override 29 | protected void initiateHook(int size) { 30 | BarrierTaskGangTest.printDebugging 31 | ("@@@@@ Started cycle 1 with " 32 | + size 33 | + " Thread" 34 | + (size == 1 ? "" : "s") 35 | + " @@@@@"); 36 | 37 | // Create a CountDownLatch whose count corresponds to each 38 | // Thread and element in the input List (which have the same 39 | // value since this model is "Thread-per-input-element"). 40 | mExitBarrier = new CountDownLatch(size); 41 | } 42 | 43 | /** 44 | * Hook method called when a worker Thread is done. 45 | */ 46 | @Override 47 | protected void taskDone(int index) throws IndexOutOfBoundsException { 48 | // Decrement the CountDownLatch by one. When the count 49 | // reaches 0 the main Thread is released from its call to 50 | // await(). 51 | mExitBarrier.countDown(); 52 | } 53 | } 54 | 55 | -------------------------------------------------------------------------------- /ex/BarrierTaskGang/src/SearchTaskGangCommonCyclic.java: -------------------------------------------------------------------------------- 1 | import java.util.concurrent.CountDownLatch; 2 | 3 | /** 4 | * @class SearchTaskGangCommonCyclic 5 | * 6 | * @brief This helper class extends SearchTaskGangCommon and factors 7 | * out the common code used by the cyclic TaskGang 8 | * implementations. 9 | */ 10 | public abstract class SearchTaskGangCommonCyclic 11 | extends SearchTaskGangCommon { 12 | /** 13 | * Constructor initializes the data members. 14 | */ 15 | protected SearchTaskGangCommonCyclic(String[] wordsToFind, 16 | String[][] stringsToSearch) { 17 | // Pass input to superclass constructor. 18 | super (wordsToFind, 19 | stringsToSearch); 20 | 21 | // Initialize the exit barrier to 1, which causes 22 | // awaitTasksDone() hook method to block until the test is 23 | // finished. 24 | mExitBarrier = new CountDownLatch(1); 25 | } 26 | 27 | /** 28 | * When there's no more input data to process release the exit 29 | * latch and return false so the worker Thread will return. 30 | * Otherwise, return true so the worker Thread will continue 31 | * to run. 32 | */ 33 | @Override 34 | protected boolean advanceTaskToNextCycle() { 35 | if (getInput() == null) { 36 | mExitBarrier.countDown(); 37 | return false; 38 | } else 39 | return true; 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /ex/BuggyQueue/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /ex/BuggyQueue/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | BuggyQueue 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | 15 | org.eclipse.jdt.core.javanature 16 | 17 | 18 | -------------------------------------------------------------------------------- /ex/DeadlockQueue/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /ex/DeadlockQueue/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | DeadlockQueue 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | 15 | org.eclipse.jdt.core.javanature 16 | 17 | 18 | -------------------------------------------------------------------------------- /ex/DownloadApplication/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /ex/DownloadApplication/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | DownloadApplication 4 | 5 | 6 | 7 | 8 | 9 | com.android.ide.eclipse.adt.ResourceManagerBuilder 10 | 11 | 12 | 13 | 14 | com.android.ide.eclipse.adt.PreCompilerBuilder 15 | 16 | 17 | 18 | 19 | org.eclipse.jdt.core.javabuilder 20 | 21 | 22 | 23 | 24 | com.android.ide.eclipse.adt.ApkBuilder 25 | 26 | 27 | 28 | 29 | 30 | com.android.ide.eclipse.adt.AndroidNature 31 | org.eclipse.jdt.core.javanature 32 | 33 | 34 | -------------------------------------------------------------------------------- /ex/DownloadApplication/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 8 | 9 | 12 | 13 | 14 | 19 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /ex/DownloadApplication/gen/edu/vuum/mocca/BuildConfig.java: -------------------------------------------------------------------------------- 1 | /** Automatically generated file. DO NOT MODIFY */ 2 | package edu.vuum.mocca; 3 | 4 | public final class BuildConfig { 5 | public final static boolean DEBUG = true; 6 | } -------------------------------------------------------------------------------- /ex/DownloadApplication/gen/edu/vuum/mocca/R.java: -------------------------------------------------------------------------------- 1 | /* AUTO-GENERATED FILE. DO NOT MODIFY. 2 | * 3 | * This class was automatically generated by the 4 | * aapt tool from the resource data it found. It 5 | * should not be modified by hand. 6 | */ 7 | 8 | package edu.vuum.mocca; 9 | 10 | public final class R { 11 | public static final class attr { 12 | } 13 | public static final class drawable { 14 | public static final int default_image=0x7f020000; 15 | public static final int ic_action_search=0x7f020001; 16 | public static final int ic_icon=0x7f020002; 17 | public static final int ic_launcher=0x7f020003; 18 | } 19 | public static final class id { 20 | public static final int about=0x7f070005; 21 | public static final int button1=0x7f070001; 22 | public static final int button2=0x7f070002; 23 | public static final int help=0x7f070004; 24 | public static final int mImageView=0x7f070003; 25 | public static final int mUrlEditText=0x7f070000; 26 | } 27 | public static final class layout { 28 | public static final int main=0x7f030000; 29 | } 30 | public static final class menu { 31 | public static final int options=0x7f060000; 32 | } 33 | public static final class string { 34 | public static final int about=0x7f040007; 35 | public static final int app_name=0x7f040000; 36 | public static final int defaultURL=0x7f040004; 37 | public static final int download=0x7f040002; 38 | public static final int help=0x7f040006; 39 | public static final int location=0x7f040005; 40 | public static final int resetImage=0x7f040003; 41 | public static final int title_activity_download=0x7f040001; 42 | } 43 | public static final class style { 44 | public static final int AppTheme=0x7f050000; 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /ex/DownloadApplication/project.properties: -------------------------------------------------------------------------------- 1 | # This file is automatically generated by Android Tools. 2 | # Do not modify this file -- YOUR CHANGES WILL BE ERASED! 3 | # 4 | # This file must be checked in Version Control Systems. 5 | # 6 | # To customize properties used by the Ant build system edit 7 | # "ant.properties", and override values to adapt the script to your 8 | # project structure. 9 | # 10 | # To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): 11 | #proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt 12 | 13 | # Project target. 14 | target=android-17 15 | 16 | -------------------------------------------------------------------------------- /ex/DownloadApplication/res/drawable-hdpi/default_image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/CS892/b5a21fd5cd9141c757dc23368fc0ccdaa698c297/ex/DownloadApplication/res/drawable-hdpi/default_image.png -------------------------------------------------------------------------------- /ex/DownloadApplication/res/drawable-hdpi/ic_action_search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/CS892/b5a21fd5cd9141c757dc23368fc0ccdaa698c297/ex/DownloadApplication/res/drawable-hdpi/ic_action_search.png -------------------------------------------------------------------------------- /ex/DownloadApplication/res/drawable-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/CS892/b5a21fd5cd9141c757dc23368fc0ccdaa698c297/ex/DownloadApplication/res/drawable-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /ex/DownloadApplication/res/drawable-ldpi/ic_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/CS892/b5a21fd5cd9141c757dc23368fc0ccdaa698c297/ex/DownloadApplication/res/drawable-ldpi/ic_icon.png -------------------------------------------------------------------------------- /ex/DownloadApplication/res/drawable-ldpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/CS892/b5a21fd5cd9141c757dc23368fc0ccdaa698c297/ex/DownloadApplication/res/drawable-ldpi/ic_launcher.png -------------------------------------------------------------------------------- /ex/DownloadApplication/res/drawable-mdpi/default_image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/CS892/b5a21fd5cd9141c757dc23368fc0ccdaa698c297/ex/DownloadApplication/res/drawable-mdpi/default_image.png -------------------------------------------------------------------------------- /ex/DownloadApplication/res/drawable-mdpi/ic_action_search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/CS892/b5a21fd5cd9141c757dc23368fc0ccdaa698c297/ex/DownloadApplication/res/drawable-mdpi/ic_action_search.png -------------------------------------------------------------------------------- /ex/DownloadApplication/res/drawable-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/CS892/b5a21fd5cd9141c757dc23368fc0ccdaa698c297/ex/DownloadApplication/res/drawable-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /ex/DownloadApplication/res/drawable-xhdpi/default_image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/CS892/b5a21fd5cd9141c757dc23368fc0ccdaa698c297/ex/DownloadApplication/res/drawable-xhdpi/default_image.png -------------------------------------------------------------------------------- /ex/DownloadApplication/res/drawable-xhdpi/ic_action_search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/CS892/b5a21fd5cd9141c757dc23368fc0ccdaa698c297/ex/DownloadApplication/res/drawable-xhdpi/ic_action_search.png -------------------------------------------------------------------------------- /ex/DownloadApplication/res/drawable-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/douglascraigschmidt/CS892/b5a21fd5cd9141c757dc23368fc0ccdaa698c297/ex/DownloadApplication/res/drawable-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /ex/DownloadApplication/res/layout/main.xml: -------------------------------------------------------------------------------- 1 | 6 | 7 | 11 | 12 | 18 | 19 | 25 | 26 | 27 | 32 | 33 |