commit 0c383c088a5a8e90ff1ab0e0b6c6c7d6957bca64 Author: DjBushido Date: Fri Jul 4 21:16:52 2014 -0400 Initial commit for the re-code diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e240c2e --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +local.properties +/.gradle +/MinimalBible/build +/MinimalBible/.gradle +/appcompat_v7/build +/.idea +/build +*.iml diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..613789c --- /dev/null +++ b/.gitmodules @@ -0,0 +1,9 @@ +[submodule "jsword"] + path = jsword + url = https://github.com/crosswire/jsword.git +[submodule "jsword-minimalbible"] + path = jsword-minimalbible + url = https://github.com/MinimalBible/jsword-minimalbible.git +[submodule "ProgressWheel"] + path = ProgressWheel + url = git@github.com:Todd-Davies/ProgressWheel diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..20241a0 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,15 @@ +language: android +env: + matrix: + - ANDROID_SDKS=android-19,sysimg-19 ANDROID_TARGET=android-19 ANDROID_ABI=armeabi-v7a + +android: + components: + - build-tools-20.0.0 + +before_install: + - echo no | android create avd --force -n test -t $ANDROID_TARGET --abi $ANDROID_ABI + - emulator -avd test -no-skin -no-audio -no-window & +before_script: + - ./wait_for_emulator + - adb shell input keyevent 82 & \ No newline at end of file diff --git a/Minimal Bible.svg b/Minimal Bible.svg new file mode 100644 index 0000000..0e35735 --- /dev/null +++ b/Minimal Bible.svg @@ -0,0 +1,73 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/MinimalBible/.classpath b/MinimalBible/.classpath new file mode 100644 index 0000000..7bc01d9 --- /dev/null +++ b/MinimalBible/.classpath @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/MinimalBible/.gitignore b/MinimalBible/.gitignore new file mode 100644 index 0000000..d556ae9 --- /dev/null +++ b/MinimalBible/.gitignore @@ -0,0 +1,3 @@ +/gen +/bin +/libs-src diff --git a/MinimalBible/.project b/MinimalBible/.project new file mode 100644 index 0000000..6e68cb1 --- /dev/null +++ b/MinimalBible/.project @@ -0,0 +1,33 @@ + + + MinimalBible + + + + + + com.android.ide.eclipse.adt.ResourceManagerBuilder + + + + + com.android.ide.eclipse.adt.PreCompilerBuilder + + + + + org.eclipse.jdt.core.javabuilder + + + + + com.android.ide.eclipse.adt.ApkBuilder + + + + + + com.android.ide.eclipse.adt.AndroidNature + org.eclipse.jdt.core.javanature + + diff --git a/MinimalBible/.settings/org.eclipse.jdt.core.prefs b/MinimalBible/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..48ab4c6 --- /dev/null +++ b/MinimalBible/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,4 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 +org.eclipse.jdt.core.compiler.compliance=1.6 +org.eclipse.jdt.core.compiler.source=1.6 diff --git a/MinimalBible/.settings/org.eclipse.ltk.core.refactoring.prefs b/MinimalBible/.settings/org.eclipse.ltk.core.refactoring.prefs new file mode 100644 index 0000000..b196c64 --- /dev/null +++ b/MinimalBible/.settings/org.eclipse.ltk.core.refactoring.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false diff --git a/MinimalBible/README.md b/MinimalBible/README.md new file mode 100644 index 0000000..ebba42c --- /dev/null +++ b/MinimalBible/README.md @@ -0,0 +1,184 @@ +MinimalBible +============ + +A Bible app for android designed to be more focused in both UI and feature set. + +Project Outline +=============== + +This outline is intended to show the tasks needing to be accomplished, and give an idea of when releases will happen. + +Core: +----- +These are the tasks that will need to be accomplished before the 1.0 major release. + +* Project setup + * Add the appcompat project to the Git repository + +**Done as of [d6c7f498e6e1f5bbd7895f979dc25c5537e7cae5](https://github.com/DjBushido/MinimalBible/commit/d6c7f498e6e1f5bbd7895f979dc25c5537e7cae5)** + +* Integration with JSword + * Build JSword + * Distribute an Android binary that contains JSword and 3rd party libraries + +**Done as of [fd6c0630799d360cef83871cc6b3af05e4dc3a0d](https://github.com/DjBushido/MinimalBible/commit/fd6c0630799d360cef83871cc6b3af05e4dc3a0d)** + +* Download Manager + * Bible browser + * Can download Bibles + * Can remove Bibles + * Generate search indexes for Bibles + +* Bible Viewer + * UI design finalized + * Use Immersive mode for 4.4+? + * Panels for footnotes, commentary? + * Navigation drawer for books? + * What gestures should be used? (Swipe left/right for chapter search?) + * How to get to Download Manager / some form of home page? + * Navigation of books working + * Can display Bible text + * Time from launch to viewing text under 5s. Ideally, under 3s. as well. + * Can use navigation drawer to open a book + * Infinite scroll between chapters + * Research how to accomplish infinite scroll + * Implement infinite scroll + * Red letter enabled + +* Cleanup + * Include only necessary libraries for jSword, rather than all dependencies. APK ~20MB is way too big. + +**Release v.1 to Play store** + +* * * + +* Search + * UI design finalized (integration in Bible Viewer, separate activity?) + * Search functionality implemented + * Get Lucene search working (included in JSword) + * Tweak search (fuzzy? Lord -> LORD? Are we actually getting results we want?) + * Search history recorded + * Record when search took place? + +**Release v.2** + +* * * + +* Download Manager + * Download manager can fetch commentaries + +* Footnotes/Commentaries + * UI design finalized + * Frame on bottom of Bible Viewer a la [this](http://blog.neteril.org/blog/2013/10/10/framelayout-your-best-ui-friend/)? + * Switch between footnotes/commentaries by swiping on panel? + * Right-side nav drawer like FB? + * Can we synchronize scroll between commentaries/footnotes? + * Should Bible search also search commentaries? + * Implement/Show commentaries/footnotes + * Synchronize scrolling Bible to footnotes/commentaries + * Is this possible? + * Implement it! + * Clicking on note in text opens commentary + +**Release v.3** + +* * * + +* Settings Manager + * Night mode? + * Automatic night mode? + * Text font/size + * Clear searches? + * Disable red-letter? + * Send feedback + +* Home screen + * Allow access to settings, download manager, and Bible Viewer + +**Release v1.0** +**Party!** + +* * * + +Feature Addition +---------------- + +These are features I want to add, but are not considered part of the "core" product. Many (most) are necessary features of a modern app, but follow after the first major release. + +### Usage statistics +* Include usage statistics? + * Only send statistics on WiFi? + * Disable by default? Prompt user? + +### Sharing +* UI Design finalized + * Click on text to select it, then share? + * Long-click text to share? + * Share currently active text? + * Dialog to select what range of text is included? + * Share commentary/footnotes? +* Intent filter created to share via FB, email, etc. +* Settings + * Share link to app alongside text? Allow disabling? + +* * * + +### Highlighting +* UI Design finalized + * Click on text to select like share? + * Highlight colors / custom colors? + * Multiple highlight colors? + * Remove highlights? + +* Database backing + * First feature to need a database! Success! + * How to store sections of highlighted material? + * Store start/end range, along with highlight color? + * Store when highlight was created? + +* Bible Viewer + * How to show highlights? + * More specifically, how does showing highlights impact performance on start? + * Show text first, then highlights after loaded? + +* * * + +### Notes +* UI Design finalized + * Likely very similar to highlighting + +* Database backing + * Likely very similar to highlighting + * Store note instead of highlight color? + * Store when note was created / updated? + +* Bible Viewer + * Same concerns as highlighting, how does it impact speed? + * How do we display notes? Highlighting changes background color, have a separate link for our notes? + * Do notes get added to a panel on bottom? Can user browse notes? + +* Home Screen + * Notes browser + +* * * + +### Widgets + +* Text to display here? +* Shortcut to specific verse/chapter? + * How to create shortcuts? + +* * * + +### Cloud support + +* Backup notes/highlights to cloud service? +* Just backup entire app database to cloud? +* Google Drive/Dropbox? +* Settings + * Automated backups? + * Backup on WiFi only? + +* * * + +Plenty to get done! diff --git a/MinimalBible/build.gradle b/MinimalBible/build.gradle new file mode 100644 index 0000000..04250e6 --- /dev/null +++ b/MinimalBible/build.gradle @@ -0,0 +1,83 @@ +apply plugin: 'android' +apply plugin: 'android-apt' +//apply plugin: 'retrolambda' + +buildscript { + repositories { + mavenCentral() + } + dependencies { + classpath 'com.neenbedankt.gradle.plugins:android-apt:1.2+' + } +} + +repositories { + mavenCentral() +} + +dependencies { + compile project(path: ':jsword-minimalbible', configuration: 'buildJSword') + compile project(':appcompat_v7') + apt 'com.squareup.dagger:dagger-compiler:1.2.0' + compile 'com.squareup.dagger:dagger:1.2.0' + apt 'com.jakewharton:butterknife:5.0.1' + compile 'com.jakewharton:butterknife:5.0.1' + compile 'de.devland.esperandro:esperandro-api:1.1.2' + apt 'de.devland.esperandro:esperandro:1.1.2' + // compile 'com.f2prateek.dart:dart:1.1.0' + compile 'com.readystatesoftware.systembartint:systembartint:1.0.3' + compile 'com.netflix.rxjava:rxjava-android:0.19.0' + + // Handled by appcompat + // compile 'com.google.android:support-v4:r7' + + // And our unit testing needs some specific stuff (and specific stuff included again) + androidTestCompile 'junit:junit:4.11+' + androidTestCompile 'com.jayway.awaitility:awaitility:1.6.0' + androidTestProvided 'com.squareup.dagger:dagger-compiler:1.2.0' +} + +android { + compileSdkVersion 19 + buildToolsVersion '20' + sourceSets { + main { + manifest.srcFile 'src/main/AndroidManifest.xml' + java.srcDirs = ['src/main/java'] + resources.srcDirs = ['src/main/res'] + aidl.srcDirs = ['src'] + renderscript.srcDirs = ['src'] + res.srcDirs = ['src/main/res'] + assets.srcDirs = ['src/main/assets'] + } + + // Move the tests to tests/java, tests/res, etc... + androidTest { + manifest.srcFile 'src/test/AndroidManifest.xml' + java.srcDirs = ['src/test/java'] + resources.srcDirs = ['src/test/res'] + assets.srcDirs = ['src/test/assets'] + } + + // Move the build types to build-types/ + // For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ... + // This moves them out of them default location under src//... which would + // conflict with src/ being used by the main source set. + // Adding new build types or product flavors should be accompanied + // by a similar customization. + debug.setRoot('build-types/debug') + release.setRoot('build-types/release') + } + packagingOptions { + exclude 'META-INF/LICENSE.txt' + exclude 'LICENSE.txt' + exclude 'META-INF/NOTICE.txt' + exclude 'META-INF/DEPENDENCIES' + exclude 'META-INF/LICENSE' + exclude 'META-INF/NOTICE' + exclude 'META-INF/services/javax.annotation.processing.Processor' + } + lintOptions { + abortOnError false + } +} \ No newline at end of file diff --git a/MinimalBible/ic_launcher-web.png b/MinimalBible/ic_launcher-web.png new file mode 100644 index 0000000..cec484b Binary files /dev/null and b/MinimalBible/ic_launcher-web.png differ diff --git a/MinimalBible/libs/.gitignore b/MinimalBible/libs/.gitignore new file mode 100644 index 0000000..d392f0e --- /dev/null +++ b/MinimalBible/libs/.gitignore @@ -0,0 +1 @@ +*.jar diff --git a/MinimalBible/proguard-project.txt b/MinimalBible/proguard-project.txt new file mode 100644 index 0000000..f2fe155 --- /dev/null +++ b/MinimalBible/proguard-project.txt @@ -0,0 +1,20 @@ +# To enable ProGuard in your project, edit project.properties +# to define the proguard.config property as described in that file. +# +# Add project specific ProGuard rules here. +# By default, the flags in this file are appended to flags specified +# in ${sdk.dir}/tools/proguard/proguard-android.txt +# You can edit the include path and order by changing the ProGuard +# include property in project.properties. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# Add any project specific keep options here: + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} diff --git a/MinimalBible/project.properties b/MinimalBible/project.properties new file mode 100644 index 0000000..13143ab --- /dev/null +++ b/MinimalBible/project.properties @@ -0,0 +1,15 @@ +# This file is automatically generated by Android Tools. +# Do not modify this file -- YOUR CHANGES WILL BE ERASED! +# +# This file must be checked in Version Control Systems. +# +# To customize properties used by the Ant build system edit +# "ant.properties", and override values to adapt the script to your +# project structure. +# +# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): +#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt + +# Project target. +target=android-19 +android.library.reference.1=../appcompat_v7 diff --git a/MinimalBible/src/main/AndroidManifest.xml b/MinimalBible/src/main/AndroidManifest.xml new file mode 100644 index 0000000..caa96c4 --- /dev/null +++ b/MinimalBible/src/main/AndroidManifest.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/MinimalBible/src/main/assets/book.html b/MinimalBible/src/main/assets/book.html new file mode 100644 index 0000000..75f4951 --- /dev/null +++ b/MinimalBible/src/main/assets/book.html @@ -0,0 +1,11 @@ + + +
+ + + + \ No newline at end of file diff --git a/MinimalBible/src/main/java/com/todddavies/components/progressbar/ProgressWheel.java b/MinimalBible/src/main/java/com/todddavies/components/progressbar/ProgressWheel.java new file mode 100644 index 0000000..9d56b95 --- /dev/null +++ b/MinimalBible/src/main/java/com/todddavies/components/progressbar/ProgressWheel.java @@ -0,0 +1,530 @@ +package com.todddavies.components.progressbar; + +import android.content.Context; +import android.content.res.TypedArray; +import android.graphics.Canvas; +import android.graphics.Paint; +import android.graphics.Paint.Style; +import android.graphics.RectF; +import android.graphics.Shader; +import android.os.Handler; +import android.os.Message; +import android.util.AttributeSet; +import android.view.View; + +import org.bspeice.minimalbible.R; + + +/** + * An indicator of progress, similar to Android's ProgressBar. + * Can be used in 'spin mode' or 'increment mode' + * + * @author Todd Davies + *

+ * Licensed under the Creative Commons Attribution 3.0 license see: + * http://creativecommons.org/licenses/by/3.0/ + */ +public class ProgressWheel extends View { + + //Sizes (with defaults) + private int layout_height = 0; + private int layout_width = 0; + private int fullRadius = 100; + private int circleRadius = 80; + private int barLength = 60; + private int barWidth = 20; + private int rimWidth = 20; + private int textSize = 20; + private float contourSize = 0; + + //Padding (with defaults) + private int paddingTop = 5; + private int paddingBottom = 5; + private int paddingLeft = 5; + private int paddingRight = 5; + + //Colors (with defaults) + private int barColor = 0xAA000000; + private int contourColor = 0xAA000000; + private int circleColor = 0x00000000; + private int rimColor = 0xAADDDDDD; + private int textColor = 0xFF000000; + + //Paints + private Paint barPaint = new Paint(); + private Paint circlePaint = new Paint(); + private Paint rimPaint = new Paint(); + private Paint textPaint = new Paint(); + private Paint contourPaint = new Paint(); + + //Rectangles + @SuppressWarnings("unused") + private RectF rectBounds = new RectF(); + private RectF circleBounds = new RectF(); + private RectF circleOuterContour = new RectF(); + private RectF circleInnerContour = new RectF(); + + //Animation + //The amount of pixels to move the bar by on each draw + private int spinSpeed = 2; + //The number of milliseconds to wait inbetween each draw + private int delayMillis = 0; + private Handler spinHandler = new Handler() { + /** + * This is the code that will increment the progress variable + * and so spin the wheel + */ + @Override + public void handleMessage(Message msg) { + invalidate(); + if (isSpinning) { + progress += spinSpeed; + if (progress > 360) { + progress = 0; + } + spinHandler.sendEmptyMessageDelayed(0, delayMillis); + } + //super.handleMessage(msg); + } + }; + int progress = 0; + boolean isSpinning = false; + + //Other + private String text = ""; + private String[] splitText = {}; + + /** + * The constructor for the ProgressWheel + * + * @param context + * @param attrs + */ + public ProgressWheel(Context context, AttributeSet attrs) { + super(context, attrs); + + parseAttributes(context.obtainStyledAttributes(attrs, + R.styleable.ProgressWheel)); + } + + //---------------------------------- + //Setting up stuff + //---------------------------------- + + /* + * When this is called, make the view square. + * From: http://www.jayway.com/2012/12/12/creating-custom-android-views-part-4-measuring-and-how-to-force-a-view-to-be-square/ + * + */ + @Override + protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + // The first thing that happen is that we call the superclass + // implementation of onMeasure. The reason for that is that measuring + // can be quite a complex process and calling the super method is a + // convenient way to get most of this complexity handled. + super.onMeasure(widthMeasureSpec, heightMeasureSpec); + + // We can’t use getWidth() or getHight() here. During the measuring + // pass the view has not gotten its final size yet (this happens first + // at the start of the layout pass) so we have to use getMeasuredWidth() + // and getMeasuredHeight(). + int size = 0; + int width = getMeasuredWidth(); + int height = getMeasuredHeight(); + int widthWithoutPadding = width - getPaddingLeft() - getPaddingRight(); + int heigthWithoutPadding = height - getPaddingTop() - getPaddingBottom(); + + // Finally we have some simple logic that calculates the size of the view + // and calls setMeasuredDimension() to set that size. + // Before we compare the width and height of the view, we remove the padding, + // and when we set the dimension we add it back again. Now the actual content + // of the view will be square, but, depending on the padding, the total dimensions + // of the view might not be. + if (widthWithoutPadding > heigthWithoutPadding) { + size = heigthWithoutPadding; + } else { + size = widthWithoutPadding; + } + + // If you override onMeasure() you have to call setMeasuredDimension(). + // This is how you report back the measured size. If you don’t call + // setMeasuredDimension() the parent will throw an exception and your + // application will crash. + // We are calling the onMeasure() method of the superclass so we don’t + // actually need to call setMeasuredDimension() since that takes care + // of that. However, the purpose with overriding onMeasure() was to + // change the default behaviour and to do that we need to call + // setMeasuredDimension() with our own values. + setMeasuredDimension(size + getPaddingLeft() + getPaddingRight(), size + getPaddingTop() + getPaddingBottom()); + } + + /** + * Use onSizeChanged instead of onAttachedToWindow to get the dimensions of the view, + * because this method is called after measuring the dimensions of MATCH_PARENT & WRAP_CONTENT. + * Use this dimensions to setup the bounds and paints. + */ + @Override + protected void onSizeChanged(int w, int h, int oldw, int oldh) { + super.onSizeChanged(w, h, oldw, oldh); + + // Share the dimensions + layout_width = w; + layout_height = h; + + setupBounds(); + setupPaints(); + invalidate(); + } + + /** + * Set the properties of the paints we're using to + * draw the progress wheel + */ + private void setupPaints() { + barPaint.setColor(barColor); + barPaint.setAntiAlias(true); + barPaint.setStyle(Style.STROKE); + barPaint.setStrokeWidth(barWidth); + + rimPaint.setColor(rimColor); + rimPaint.setAntiAlias(true); + rimPaint.setStyle(Style.STROKE); + rimPaint.setStrokeWidth(rimWidth); + + circlePaint.setColor(circleColor); + circlePaint.setAntiAlias(true); + circlePaint.setStyle(Style.FILL); + + textPaint.setColor(textColor); + textPaint.setStyle(Style.FILL); + textPaint.setAntiAlias(true); + textPaint.setTextSize(textSize); + + contourPaint.setColor(contourColor); + contourPaint.setAntiAlias(true); + contourPaint.setStyle(Style.STROKE); + contourPaint.setStrokeWidth(contourSize); + } + + /** + * Set the bounds of the component + */ + private void setupBounds() { + // Width should equal to Height, find the min value to steup the circle + int minValue = Math.min(layout_width, layout_height); + + // Calc the Offset if needed + int xOffset = layout_width - minValue; + int yOffset = layout_height - minValue; + + // Add the offset + paddingTop = this.getPaddingTop() + (yOffset / 2); + paddingBottom = this.getPaddingBottom() + (yOffset / 2); + paddingLeft = this.getPaddingLeft() + (xOffset / 2); + paddingRight = this.getPaddingRight() + (xOffset / 2); + + int width = getWidth(); //this.getLayoutParams().width; + int height = getHeight(); //this.getLayoutParams().height; + + rectBounds = new RectF(paddingLeft, + paddingTop, + width - paddingRight, + height - paddingBottom); + + circleBounds = new RectF(paddingLeft + barWidth, + paddingTop + barWidth, + width - paddingRight - barWidth, + height - paddingBottom - barWidth); + circleInnerContour = new RectF(circleBounds.left + (rimWidth / 2.0f) + (contourSize / 2.0f), circleBounds.top + (rimWidth / 2.0f) + (contourSize / 2.0f), circleBounds.right - (rimWidth / 2.0f) - (contourSize / 2.0f), circleBounds.bottom - (rimWidth / 2.0f) - (contourSize / 2.0f)); + circleOuterContour = new RectF(circleBounds.left - (rimWidth / 2.0f) - (contourSize / 2.0f), circleBounds.top - (rimWidth / 2.0f) - (contourSize / 2.0f), circleBounds.right + (rimWidth / 2.0f) + (contourSize / 2.0f), circleBounds.bottom + (rimWidth / 2.0f) + (contourSize / 2.0f)); + + fullRadius = (width - paddingRight - barWidth) / 2; + circleRadius = (fullRadius - barWidth) + 1; + } + + /** + * Parse the attributes passed to the view from the XML + * + * @param a the attributes to parse + */ + private void parseAttributes(TypedArray a) { + barWidth = (int) a.getDimension(R.styleable.ProgressWheel_barWidth, + barWidth); + + rimWidth = (int) a.getDimension(R.styleable.ProgressWheel_rimWidth, + rimWidth); + + spinSpeed = (int) a.getDimension(R.styleable.ProgressWheel_spinSpeed, + spinSpeed); + + delayMillis = a.getInteger(R.styleable.ProgressWheel_delayMillis, + delayMillis); + if (delayMillis < 0) { + delayMillis = 0; + } + + barColor = a.getColor(R.styleable.ProgressWheel_barColor, barColor); + + barLength = (int) a.getDimension(R.styleable.ProgressWheel_barLength, + barLength); + + textSize = (int) a.getDimension(R.styleable.ProgressWheel_textSize, + textSize); + + textColor = (int) a.getColor(R.styleable.ProgressWheel_textColor, + textColor); + + //if the text is empty , so ignore it + if (a.hasValue(R.styleable.ProgressWheel_text)) { + setText(a.getString(R.styleable.ProgressWheel_text)); + } + + rimColor = (int) a.getColor(R.styleable.ProgressWheel_rimColor, + rimColor); + + circleColor = (int) a.getColor(R.styleable.ProgressWheel_circleColor, + circleColor); + + contourColor = a.getColor(R.styleable.ProgressWheel_contourColor, contourColor); + contourSize = a.getDimension(R.styleable.ProgressWheel_contourSize, contourSize); + + + // Recycle + a.recycle(); + } + + //---------------------------------- + //Animation stuff + //---------------------------------- + + protected void onDraw(Canvas canvas) { + super.onDraw(canvas); + //Draw the inner circle + canvas.drawArc(circleBounds, 360, 360, false, circlePaint); + //Draw the rim + canvas.drawArc(circleBounds, 360, 360, false, rimPaint); + canvas.drawArc(circleOuterContour, 360, 360, false, contourPaint); + canvas.drawArc(circleInnerContour, 360, 360, false, contourPaint); + //Draw the bar + if (isSpinning) { + canvas.drawArc(circleBounds, progress - 90, barLength, false, + barPaint); + } else { + canvas.drawArc(circleBounds, -90, progress, false, barPaint); + } + //Draw the text (attempts to center it horizontally and vertically) + float textHeight = textPaint.descent() - textPaint.ascent(); + float verticalTextOffset = (textHeight / 2) - textPaint.descent(); + + for (String s : splitText) { + float horizontalTextOffset = textPaint.measureText(s) / 2; + canvas.drawText(s, this.getWidth() / 2 - horizontalTextOffset, + this.getHeight() / 2 + verticalTextOffset, textPaint); + } + } + + /** + * Check if the wheel is currently spinning + */ + + public boolean isSpinning() { + if(isSpinning){ + return true; + } else { + return false; + } + } + + /** + * Reset the count (in increment mode) + */ + public void resetCount() { + progress = 0; + setText("0%"); + invalidate(); + } + + /** + * Turn off spin mode + */ + public void stopSpinning() { + isSpinning = false; + progress = 0; + spinHandler.removeMessages(0); + } + + + /** + * Puts the view on spin mode + */ + public void spin() { + isSpinning = true; + spinHandler.sendEmptyMessage(0); + } + + /** + * Increment the progress by 1 (of 360) + */ + public void incrementProgress() { + isSpinning = false; + progress++; + if (progress > 360) + progress = 0; +// setText(Math.round(((float) progress / 360) * 100) + "%"); + spinHandler.sendEmptyMessage(0); + } + + + /** + * Set the progress to a specific value + */ + public void setProgress(int i) { + isSpinning = false; + progress = i; + spinHandler.sendEmptyMessage(0); + } + + //---------------------------------- + //Getters + setters + //---------------------------------- + + /** + * Set the text in the progress bar + * Doesn't invalidate the view + * + * @param text the text to show ('\n' constitutes a new line) + */ + public void setText(String text) { + this.text = text; + splitText = this.text.split("\n"); + } + + public int getCircleRadius() { + return circleRadius; + } + + public void setCircleRadius(int circleRadius) { + this.circleRadius = circleRadius; + } + + public int getBarLength() { + return barLength; + } + + public void setBarLength(int barLength) { + this.barLength = barLength; + } + + public int getBarWidth() { + return barWidth; + } + + public void setBarWidth(int barWidth) { + this.barWidth = barWidth; + } + + public int getTextSize() { + return textSize; + } + + public void setTextSize(int textSize) { + this.textSize = textSize; + } + + public int getPaddingTop() { + return paddingTop; + } + + public void setPaddingTop(int paddingTop) { + this.paddingTop = paddingTop; + } + + public int getPaddingBottom() { + return paddingBottom; + } + + public void setPaddingBottom(int paddingBottom) { + this.paddingBottom = paddingBottom; + } + + public int getPaddingLeft() { + return paddingLeft; + } + + public void setPaddingLeft(int paddingLeft) { + this.paddingLeft = paddingLeft; + } + + public int getPaddingRight() { + return paddingRight; + } + + public void setPaddingRight(int paddingRight) { + this.paddingRight = paddingRight; + } + + public int getBarColor() { + return barColor; + } + + public void setBarColor(int barColor) { + this.barColor = barColor; + } + + public int getCircleColor() { + return circleColor; + } + + public void setCircleColor(int circleColor) { + this.circleColor = circleColor; + } + + public int getRimColor() { + return rimColor; + } + + public void setRimColor(int rimColor) { + this.rimColor = rimColor; + } + + + public Shader getRimShader() { + return rimPaint.getShader(); + } + + public void setRimShader(Shader shader) { + this.rimPaint.setShader(shader); + } + + public int getTextColor() { + return textColor; + } + + public void setTextColor(int textColor) { + this.textColor = textColor; + } + + public int getSpinSpeed() { + return spinSpeed; + } + + public void setSpinSpeed(int spinSpeed) { + this.spinSpeed = spinSpeed; + } + + public int getRimWidth() { + return rimWidth; + } + + public void setRimWidth(int rimWidth) { + this.rimWidth = rimWidth; + } + + public int getDelayMillis() { + return delayMillis; + } + + public void setDelayMillis(int delayMillis) { + this.delayMillis = delayMillis; + } +} diff --git a/MinimalBible/src/main/java/org/bspeice/minimalbible/MinimalBible.java b/MinimalBible/src/main/java/org/bspeice/minimalbible/MinimalBible.java new file mode 100644 index 0000000..42a5d65 --- /dev/null +++ b/MinimalBible/src/main/java/org/bspeice/minimalbible/MinimalBible.java @@ -0,0 +1,98 @@ +package org.bspeice.minimalbible; + +import android.app.Application; +import android.content.Context; +import android.util.Log; + +import org.crosswire.jsword.book.sword.SwordBookPath; + +import java.io.File; + +import dagger.ObjectGraph; + +public class MinimalBible extends Application { + + /** + * The graph used by Dagger to track dependencies + */ + private ObjectGraph graph; + + /** + * A singleton reference to the Application currently being run. + * Used mostly so we have a fixed point to get the App Context from + */ + private static MinimalBible instance; + + private String TAG = "MinimalBible"; + + /** + * Create the application, and persist the application Context + */ + public MinimalBible() { + instance = this; + } + + /** + * Get the Application Context. Please note, all attempts to get the App Context should come + * through here, and please be sure that the Application won't satisfy what you need. + * @return The Application Context + */ + public static Context getAppContext() { + return instance; + } + + /** + * Get the Application, rather than just the Application Context. You likely should be using + * this, rather than {@link #getAppContext()} + * @return The MinimalBible {@link android.app.Application} object + */ + public static MinimalBible getApplication() { + return (MinimalBible)getAppContext(); + } + + /** + * Create the {@link android.app.Application}. Responsible for building and + * holding on to the master ObjectGraph. + */ + @Override + public void onCreate() { + //TODO: Is this necessary? + inject(this); + setJswordHome(); + } + + /** + * Inject a Dagger object + * @param o The object to be injected + */ + public void inject(Object o) { + getObjGraph().inject(o); + } + + public ObjectGraph getObjGraph() { + if (graph == null) { + graph = ObjectGraph.create(MinimalBibleModules.class); + } + return graph; + } + + public void plusObjGraph(Object... modules) { + graph = graph.plus(modules); + } + + /** + * Notify jSword that it needs to store files in the Android internal directory + * NOTE: Android will uninstall these files if you uninstall MinimalBible. + */ + @SuppressWarnings("null") + private void setJswordHome() { + // We need to set the download directory for jSword to stick with + // Android. + String home = MinimalBible.getAppContext().getFilesDir().toString(); + Log.d(TAG, "Setting jsword.home to: " + home); + System.setProperty("jsword.home", home); + System.setProperty("sword.home", home); + SwordBookPath.setDownloadDir(new File(home)); + Log.d(TAG, "Sword download path: " + SwordBookPath.getSwordDownloadDir()); + } +} diff --git a/MinimalBible/src/main/java/org/bspeice/minimalbible/MinimalBibleModules.java b/MinimalBible/src/main/java/org/bspeice/minimalbible/MinimalBibleModules.java new file mode 100644 index 0000000..346a598 --- /dev/null +++ b/MinimalBible/src/main/java/org/bspeice/minimalbible/MinimalBibleModules.java @@ -0,0 +1,19 @@ +package org.bspeice.minimalbible; + +import org.bspeice.minimalbible.activities.ActivityModules; + +import dagger.Module; + +/** + * Master module for MinimalBible + */ +@Module( + injects = { + MinimalBible.class + }, + includes = { + ActivityModules.class + } +) +public class MinimalBibleModules { +} diff --git a/MinimalBible/src/main/java/org/bspeice/minimalbible/activities/ActivityModules.java b/MinimalBible/src/main/java/org/bspeice/minimalbible/activities/ActivityModules.java new file mode 100644 index 0000000..5cfe1fd --- /dev/null +++ b/MinimalBible/src/main/java/org/bspeice/minimalbible/activities/ActivityModules.java @@ -0,0 +1,18 @@ +package org.bspeice.minimalbible.activities; + +import org.bspeice.minimalbible.activities.downloader.ActivityDownloaderModule; +import org.bspeice.minimalbible.activities.viewer.ActivityViewerModule; + +import dagger.Module; + +/** + * Modules for all activities + */ +@Module( + includes = { + ActivityDownloaderModule.class, + ActivityViewerModule.class + } +) +public class ActivityModules { +} diff --git a/MinimalBible/src/main/java/org/bspeice/minimalbible/activities/BaseActivity.java b/MinimalBible/src/main/java/org/bspeice/minimalbible/activities/BaseActivity.java new file mode 100644 index 0000000..0617e6a --- /dev/null +++ b/MinimalBible/src/main/java/org/bspeice/minimalbible/activities/BaseActivity.java @@ -0,0 +1,30 @@ +package org.bspeice.minimalbible.activities; + +import org.bspeice.minimalbible.R; + +import com.readystatesoftware.systembartint.SystemBarTintManager; + +import android.os.Build; +import android.os.Bundle; +import android.support.v7.app.ActionBarActivity; + +/** + * Wrapper for activities in MinimalBible to make sure we can support + * common functionality between them all. + */ +public class BaseActivity extends ActionBarActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + // Only set the tint if the device is running KitKat or above + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { + SystemBarTintManager tintManager = new SystemBarTintManager(this); + tintManager.setStatusBarTintEnabled(true); + tintManager.setStatusBarTintColor(getResources().getColor( + R.color.statusbar)); + } + } + +} diff --git a/MinimalBible/src/main/java/org/bspeice/minimalbible/activities/BaseFragment.java b/MinimalBible/src/main/java/org/bspeice/minimalbible/activities/BaseFragment.java new file mode 100644 index 0000000..5b39dca --- /dev/null +++ b/MinimalBible/src/main/java/org/bspeice/minimalbible/activities/BaseFragment.java @@ -0,0 +1,26 @@ +package org.bspeice.minimalbible.activities; + +import android.app.Activity; +import android.os.Build; +import android.support.v4.app.Fragment; +import android.view.View; + +import com.readystatesoftware.systembartint.SystemBarTintManager; + +/** + * Base class that defines all behavior common to Fragments in MinimalBible + */ +public class BaseFragment extends Fragment { + + /** + * Calculate the offset we need to display properly if the System bar is translucent + * @param context The {@link android.app.Activity} we are displaying in + * @param view The {@link android.view.View} we need to calculate the offset for. + */ + protected static void setInsets(Activity context, View view) { + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) return; + SystemBarTintManager tintManager = new SystemBarTintManager(context); + SystemBarTintManager.SystemBarConfig config = tintManager.getConfig(); + view.setPadding(0, config.getPixelInsetTop(true), config.getPixelInsetRight(), config.getPixelInsetBottom()); + } +} diff --git a/MinimalBible/src/main/java/org/bspeice/minimalbible/activities/BaseNavigationDrawerFragment.java b/MinimalBible/src/main/java/org/bspeice/minimalbible/activities/BaseNavigationDrawerFragment.java new file mode 100644 index 0000000..e91cdd8 --- /dev/null +++ b/MinimalBible/src/main/java/org/bspeice/minimalbible/activities/BaseNavigationDrawerFragment.java @@ -0,0 +1,302 @@ +package org.bspeice.minimalbible.activities; + +import android.app.Activity; +import android.content.SharedPreferences; +import android.content.res.Configuration; +import android.os.Build; +import android.os.Bundle; +import android.preference.PreferenceManager; +import android.support.v4.app.ActionBarDrawerToggle; +import android.support.v4.app.Fragment; +import android.support.v4.view.GravityCompat; +import android.support.v4.widget.DrawerLayout; +import android.support.v7.app.ActionBar; +import android.support.v7.app.ActionBarActivity; +import android.view.Menu; +import android.view.MenuInflater; +import android.view.MenuItem; +import android.view.View; +import android.widget.ListView; + +import com.readystatesoftware.systembartint.SystemBarTintManager; + +import org.bspeice.minimalbible.R; + +/** + * Fragment used for managing interactions for and presentation of a navigation + * drawer. See the design guidelines for a complete explanation of the behaviors + * implemented here. + */ +public class BaseNavigationDrawerFragment extends Fragment { + + /** + * Remember the position of the selected item. + */ + private static final String STATE_SELECTED_POSITION = "selected_navigation_drawer_position"; + + /** + * Per the design guidelines, you should show the drawer on launch until the + * user manually expands it. This shared preference tracks this. + */ + private static final String PREF_USER_LEARNED_DRAWER = "navigation_drawer_learned"; + + /** + * A pointer to the current callbacks instance (the Activity). + */ + private NavigationDrawerCallbacks mCallbacks; + + /** + * Helper component that ties the action bar to the navigation drawer. + */ + private ActionBarDrawerToggle mDrawerToggle; + + private DrawerLayout mDrawerLayout; + protected ListView mDrawerListView; + private View mFragmentContainerView; + + protected int mCurrentSelectedPosition = 0; + private boolean mFromSavedInstanceState; + private boolean mUserLearnedDrawer; + + public BaseNavigationDrawerFragment() { + } + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + // Read in the flag indicating whether or not the user has demonstrated + // awareness of the + // drawer. See PREF_USER_LEARNED_DRAWER for details. + SharedPreferences sp = PreferenceManager + .getDefaultSharedPreferences(getActivity()); + mUserLearnedDrawer = sp.getBoolean(PREF_USER_LEARNED_DRAWER, false); + + if (savedInstanceState != null) { + mCurrentSelectedPosition = savedInstanceState + .getInt(STATE_SELECTED_POSITION); + mFromSavedInstanceState = true; + } + + // Select either the default item (0) or the last selected item. + selectItem(mCurrentSelectedPosition); + } + + @Override + public void onActivityCreated(Bundle savedInstanceState) { + super.onActivityCreated(savedInstanceState); + // Indicate that this fragment would like to influence the set of + // actions in the action bar. + setHasOptionsMenu(true); + } + + public boolean isDrawerOpen() { + return mDrawerLayout != null + && mDrawerLayout.isDrawerOpen(mFragmentContainerView); + } + + /** + * Users of this fragment must call this method to set up the navigation + * drawer interactions. + * + * @param fragmentId + * The android:id of this fragment in its activity's layout. + * @param drawerLayout + * The DrawerLayout containing this fragment's UI. + */ + public void setUp(int fragmentId, DrawerLayout drawerLayout) { + mFragmentContainerView = getActivity().findViewById(fragmentId); + mDrawerLayout = drawerLayout; + + // set a custom shadow that overlays the main content when the drawer + // opens + mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow, + GravityCompat.START); + // set up the drawer's list view with items and click listener + + ActionBar actionBar = getActionBar(); + actionBar.setDisplayHomeAsUpEnabled(true); + actionBar.setHomeButtonEnabled(true); + + // ActionBarDrawerToggle ties together the the proper interactions + // between the navigation drawer and the action bar app icon. + mDrawerToggle = new ActionBarDrawerToggle(getActivity(), /* host Activity */ + mDrawerLayout, /* DrawerLayout object */ + R.drawable.ic_drawer, /* nav drawer image to replace 'Up' caret */ + R.string.navigation_drawer_open, /* + * "open drawer" description for + * accessibility + */ + R.string.navigation_drawer_close /* + * "close drawer" description for + * accessibility + */ + ) { + @Override + public void onDrawerClosed(View drawerView) { + super.onDrawerClosed(drawerView); + if (!isAdded()) { + return; + } + + getActivity().supportInvalidateOptionsMenu(); // calls + // onPrepareOptionsMenu() + } + + @Override + public void onDrawerOpened(View drawerView) { + super.onDrawerOpened(drawerView); + if (!isAdded()) { + return; + } + + if (!mUserLearnedDrawer) { + // The user manually opened the drawer; store this flag to + // prevent auto-showing + // the navigation drawer automatically in the future. + mUserLearnedDrawer = true; + SharedPreferences sp = PreferenceManager + .getDefaultSharedPreferences(getActivity()); + sp.edit().putBoolean(PREF_USER_LEARNED_DRAWER, true) + .commit(); + } + + getActivity().supportInvalidateOptionsMenu(); // calls + // onPrepareOptionsMenu() + } + }; + + // If the user hasn't 'learned' about the drawer, open it to introduce + // them to the drawer, + // per the navigation drawer design guidelines. + if (!mUserLearnedDrawer && !mFromSavedInstanceState) { + mDrawerLayout.openDrawer(mFragmentContainerView); + } + + // Defer code dependent on restoration of previous instance state. + mDrawerLayout.post(new Runnable() { + @Override + public void run() { + mDrawerToggle.syncState(); + } + }); + + mDrawerLayout.setDrawerListener(mDrawerToggle); + } + + public void selectItem(int position) { + mCurrentSelectedPosition = position; + if (mDrawerListView != null) { + mDrawerListView.setItemChecked(position, true); + } + if (mDrawerLayout != null) { + mDrawerLayout.closeDrawer(mFragmentContainerView); + } + if (mCallbacks != null) { + mCallbacks.onNavigationDrawerItemSelected(position); + } + } + + @Override + public void onAttach(Activity activity) { + super.onAttach(activity); + try { + mCallbacks = (NavigationDrawerCallbacks) activity; + } catch (ClassCastException e) { + throw new ClassCastException( + "Activity must implement NavigationDrawerCallbacks."); + } + } + + @Override + public void onDetach() { + super.onDetach(); + mCallbacks = null; + } + + @Override + public void onSaveInstanceState(Bundle outState) { + super.onSaveInstanceState(outState); + outState.putInt(STATE_SELECTED_POSITION, mCurrentSelectedPosition); + } + + @Override + public void onConfigurationChanged(Configuration newConfig) { + super.onConfigurationChanged(newConfig); + // Forward the new configuration the drawer toggle component. + mDrawerToggle.onConfigurationChanged(newConfig); + } + + @Override + public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { + // If the drawer is open, show the global app actions in the action bar. + // See also + // showGlobalContextActionBar, which controls the top-left area of the + // action bar. + if (mDrawerLayout != null && isDrawerOpen()) { + inflater.inflate(R.menu.global, menu); + showGlobalContextActionBar(); + } + super.onCreateOptionsMenu(menu, inflater); + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + if (mDrawerToggle.onOptionsItemSelected(item)) { + return true; + } + return super.onOptionsItemSelected(item); + } + + /** + * Per the navigation drawer design guidelines, updates the action bar to + * show the global app 'context', rather than just what's in the current + * screen. + */ + private void showGlobalContextActionBar() { + ActionBar actionBar = getActionBar(); + actionBar.setDisplayShowTitleEnabled(true); + actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD); + // actionBar.setTitle(R.string.app_name); + } + + protected ActionBar getActionBar() { + return ((ActionBarActivity) getActivity()).getSupportActionBar(); + } + + public void setInsets(View view) { + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) + return; + SystemBarTintManager tintManager = new SystemBarTintManager(getActivity()); + SystemBarTintManager.SystemBarConfig config = tintManager.getConfig(); + view.setPadding(0, config.getPixelInsetTop(true), + config.getPixelInsetRight(), config.getPixelInsetBottom()); + } + + @Override + public void onViewCreated(View view, Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + + // This could also be a ScrollView + ListView list = (ListView) view.findViewById(R.id.list_nav_drawer); + // This could also be set in your layout, allows the list items to + // scroll through the bottom padded area (navigation bar) + list.setClipToPadding(false); + // Sets the padding to the insets (include action bar and navigation bar + // padding for the current device and orientation) + setInsets(list); + } + + /** + * Callbacks interface that all activities using this fragment must + * implement. + */ + public static interface NavigationDrawerCallbacks { + /** + * Called when an item in the navigation drawer is selected. + */ + void onNavigationDrawerItemSelected(int position); + } +} diff --git a/MinimalBible/src/main/java/org/bspeice/minimalbible/activities/downloader/ActivityDownloaderModule.java b/MinimalBible/src/main/java/org/bspeice/minimalbible/activities/downloader/ActivityDownloaderModule.java new file mode 100644 index 0000000..70ae79e --- /dev/null +++ b/MinimalBible/src/main/java/org/bspeice/minimalbible/activities/downloader/ActivityDownloaderModule.java @@ -0,0 +1,30 @@ +package org.bspeice.minimalbible.activities.downloader; + +import org.bspeice.minimalbible.MinimalBible; +import org.bspeice.minimalbible.activities.downloader.manager.BookDownloadManager; +import org.bspeice.minimalbible.activities.downloader.manager.BookDownloadThread; +import org.bspeice.minimalbible.activities.downloader.manager.RefreshManager; + +import dagger.Module; +import dagger.Provides; +import de.devland.esperandro.Esperandro; + +/** + * Module mappings for the classes under the Download Activity + */ +@Module( + injects = { + BookListFragment.class, + BookItemHolder.class, + BookDownloadManager.class, + BookDownloadThread.class, + RefreshManager.class + } +) +public class ActivityDownloaderModule { + + @Provides //@Singleton + DownloadPrefs provideDownloadPrefs() { + return Esperandro.getPreferences(DownloadPrefs.class, MinimalBible.getAppContext()); + } +} diff --git a/MinimalBible/src/main/java/org/bspeice/minimalbible/activities/downloader/BookItemHolder.java b/MinimalBible/src/main/java/org/bspeice/minimalbible/activities/downloader/BookItemHolder.java new file mode 100644 index 0000000..ff38604 --- /dev/null +++ b/MinimalBible/src/main/java/org/bspeice/minimalbible/activities/downloader/BookItemHolder.java @@ -0,0 +1,149 @@ +package org.bspeice.minimalbible.activities.downloader; + +import android.view.View; +import android.widget.ImageButton; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.todddavies.components.progressbar.ProgressWheel; + +import org.bspeice.minimalbible.MinimalBible; +import org.bspeice.minimalbible.R; +import org.bspeice.minimalbible.activities.downloader.manager.BookDownloadManager; +import org.bspeice.minimalbible.activities.downloader.manager.DLProgressEvent; +import org.bspeice.minimalbible.activities.downloader.manager.InstalledManager; +import org.crosswire.jsword.book.Book; + +import javax.inject.Inject; + +import butterknife.ButterKnife; +import butterknife.InjectView; +import butterknife.OnClick; +import rx.Subscription; +import rx.android.schedulers.AndroidSchedulers; +import rx.functions.Action1; +import rx.functions.Func1; + +/** +* Created by bspeice on 5/20/14. +*/ +public class BookItemHolder { + + // TODO: The holder should register and unregister itself for DownloadProgress events + // so that we can display live updates. + + @InjectView(R.id.download_txt_item_acronym) TextView acronym; + @InjectView(R.id.txt_download_item_name) TextView itemName; + @InjectView(R.id.download_ibtn_download) ImageButton isDownloaded; + @InjectView(R.id.download_prg_download) ProgressWheel downloadProgress; + + @Inject BookDownloadManager bookDownloadManager; + @Inject InstalledManager installedManager; + + private final Book b; + private Subscription subscription; + + public BookItemHolder(View v, Book b) { + ButterKnife.inject(this, v); + MinimalBible.getApplication().inject(this); + this.b = b; + } + + public void bindHolder() { + acronym.setText(b.getInitials()); + itemName.setText(b.getName()); + DLProgressEvent dlProgressEvent = bookDownloadManager.getInProgressDownloadProgress(b); + if (dlProgressEvent != null) { + displayProgress((int) dlProgressEvent.toCircular()); + } else if (installedManager.isInstalled(b)) { + displayInstalled(); + } + //TODO: Refactor + subscription = bookDownloadManager.getDownloadEvents() + .observeOn(AndroidSchedulers.mainThread()) + .filter(new Func1() { + @Override + public Boolean call(DLProgressEvent event) { + return event.getB().getInitials().equals(b.getInitials()); + } + }) + .subscribe(new Action1() { + @Override + public void call(DLProgressEvent event) { + BookItemHolder.this.displayProgress((int) event.toCircular()); + } + }); + } + + private void displayInstalled() { + isDownloaded.setImageResource(R.drawable.ic_action_cancel); + } + + @OnClick(R.id.download_ibtn_download) + public void onDownloadItem(View v) { + if (installedManager.isInstalled(b)) { + // Remove the book + installedManager.removeBook(b); + isDownloaded.setImageResource(R.drawable.ic_action_download); + } else { + bookDownloadManager.installBook(this.b); + } + } + + /** + * Display the current progress of this download + * @param progress The progress out of 360 (degrees of a circle) + */ + private void displayProgress(int progress) { + + + if (progress == DLProgressEvent.PROGRESS_BEGINNING) { + // Download starting + RelativeLayout.LayoutParams acronymParams = + (RelativeLayout.LayoutParams)acronym.getLayoutParams(); + acronymParams.addRule(RelativeLayout.LEFT_OF, downloadProgress.getId()); + + RelativeLayout.LayoutParams nameParams = + (RelativeLayout.LayoutParams)itemName.getLayoutParams(); + nameParams.addRule(RelativeLayout.LEFT_OF, downloadProgress.getId()); + + isDownloaded.setVisibility(View.GONE); + downloadProgress.setVisibility(View.VISIBLE); + + downloadProgress.spin(); + } else if (progress < 360) { + // Download in progress + RelativeLayout.LayoutParams acronymParams = + (RelativeLayout.LayoutParams)acronym.getLayoutParams(); + acronymParams.addRule(RelativeLayout.LEFT_OF, downloadProgress.getId()); + + RelativeLayout.LayoutParams nameParams = + (RelativeLayout.LayoutParams)itemName.getLayoutParams(); + nameParams.addRule(RelativeLayout.LEFT_OF, downloadProgress.getId()); + + isDownloaded.setVisibility(View.GONE); + downloadProgress.setVisibility(View.VISIBLE); + + downloadProgress.stopSpinning(); + downloadProgress.setProgress(progress); + } else { + // Download complete + subscription.unsubscribe(); + RelativeLayout.LayoutParams acronymParams = + (RelativeLayout.LayoutParams)acronym.getLayoutParams(); + acronymParams.addRule(RelativeLayout.LEFT_OF, isDownloaded.getId()); + + RelativeLayout.LayoutParams nameParams = + (RelativeLayout.LayoutParams)itemName.getLayoutParams(); + nameParams.addRule(RelativeLayout.LEFT_OF, isDownloaded.getId()); + + isDownloaded.setVisibility(View.VISIBLE); + downloadProgress.setVisibility(View.GONE); + displayInstalled(); + } + } + + public void onScrollOffscreen() { + subscription.unsubscribe(); + } +} diff --git a/MinimalBible/src/main/java/org/bspeice/minimalbible/activities/downloader/BookListAdapter.java b/MinimalBible/src/main/java/org/bspeice/minimalbible/activities/downloader/BookListAdapter.java new file mode 100644 index 0000000..aac8f73 --- /dev/null +++ b/MinimalBible/src/main/java/org/bspeice/minimalbible/activities/downloader/BookListAdapter.java @@ -0,0 +1,64 @@ +package org.bspeice.minimalbible.activities.downloader; + +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.AbsListView; +import android.widget.BaseAdapter; + +import org.bspeice.minimalbible.R; +import org.crosswire.jsword.book.Book; + +import java.util.List; + +/** + * Adapter to inflate list_download_items.xml + */ +public class BookListAdapter extends BaseAdapter implements AbsListView.RecyclerListener { + private final List bookList; + + private final LayoutInflater inflater; + + public BookListAdapter(LayoutInflater inflater, List bookList) { + this.bookList = bookList; + this.inflater = inflater; + } + + @Override + public int getCount() { + return bookList.size(); + } + + @Override + public Book getItem(int position) { + return bookList.get(position); + } + + @Override + public long getItemId(int i) { + return i; + } + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + BookItemHolder viewHolder; + // Nasty Android issue - if you don't check the getTag(), Android will start recycling, + // and you'll get some really strange issues + if (convertView == null || convertView.getTag() == null) { + convertView = inflater.inflate(R.layout.list_download_items, parent, false); + viewHolder = new BookItemHolder(convertView, getItem(position)); + } else { + viewHolder = (BookItemHolder) convertView.getTag(); + } + + viewHolder.bindHolder(); + return convertView; + } + + @Override + public void onMovedToScrapHeap(View view) { + BookItemHolder holder = (BookItemHolder) view.getTag(); + holder.onScrollOffscreen(); + } + +} diff --git a/MinimalBible/src/main/java/org/bspeice/minimalbible/activities/downloader/BookListFragment.java b/MinimalBible/src/main/java/org/bspeice/minimalbible/activities/downloader/BookListFragment.java new file mode 100644 index 0000000..f980af0 --- /dev/null +++ b/MinimalBible/src/main/java/org/bspeice/minimalbible/activities/downloader/BookListFragment.java @@ -0,0 +1,191 @@ +package org.bspeice.minimalbible.activities.downloader; + +import android.app.Activity; +import android.app.AlertDialog; +import android.app.ProgressDialog; +import android.content.DialogInterface; +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ListView; +import android.widget.Toast; + +import org.bspeice.minimalbible.MinimalBible; +import org.bspeice.minimalbible.R; +import org.bspeice.minimalbible.activities.BaseFragment; +import org.bspeice.minimalbible.activities.downloader.manager.RefreshManager; +import org.crosswire.jsword.book.Book; +import org.crosswire.jsword.book.BookCategory; +import org.crosswire.jsword.book.BookComparators; + +import java.util.List; + +import javax.inject.Inject; + +import butterknife.ButterKnife; +import butterknife.InjectView; +import rx.Observable; +import rx.android.schedulers.AndroidSchedulers; +import rx.functions.Action1; +import rx.functions.Func1; +import rx.functions.Func2; + +/** + * A placeholder fragment containing a simple view. + */ + +public class BookListFragment extends BaseFragment { + /** + * The fragment argument representing the section number for this fragment. + * Not a candidate for Dart (yet) because I would have to write a Parcelable around it. + */ + protected static final String ARG_BOOK_CATEGORY = "book_category"; + + private final String TAG = "BookListFragment"; + + @InjectView(R.id.lst_download_available) + ListView downloadsAvailable; + + @Inject RefreshManager refreshManager; + @Inject protected DownloadPrefs downloadPrefs; + + protected ProgressDialog refreshDialog; + private LayoutInflater inflater; + + /** + * Returns a new instance of this fragment for the given section number. + * TODO: Switch to AutoFactory/@Provides rather than inline creation. + */ + public static BookListFragment newInstance(BookCategory c) { + BookListFragment fragment = new BookListFragment(); + Bundle args = new Bundle(); + args.putString(ARG_BOOK_CATEGORY, c.toString()); + fragment.setArguments(args); + return fragment; + } + + @Override + public void onCreate(Bundle state) { + super.onCreate(state); + MinimalBible.getApplication().inject(this); // Injection for Dagger goes here, not ctor + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + this.inflater = inflater; + View rootView = inflater.inflate(R.layout.fragment_download, container, + false); + ButterKnife.inject(this, rootView); + displayModules(); + return rootView; + } + + @Override + public void onAttach(Activity activity) { + super.onAttach(activity); + ((DownloadActivity) activity).onSectionAttached(getArguments() + .getString(ARG_BOOK_CATEGORY)); + } + + /** + * Trigger the functionality to display a list of modules. Prompts user if downloading + * from the internet is allowable. + */ + protected void displayModules() { + boolean dialogDisplayed = downloadPrefs.hasShownDownloadDialog(); + + if (!dialogDisplayed) { + AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); + DownloadDialogListener dialogListener = new DownloadDialogListener(); + builder.setMessage( + "About to contact servers to download content. Continue?") + .setPositiveButton("Yes", dialogListener) + .setNegativeButton("No", dialogListener) + .setCancelable(false).show(); + } else { + refreshModules(); + } + } + + /** + * Do the work of refreshing modules (download manager handles using cached copy vs. actual + * refresh), and then displaying them when ready. + */ + private void refreshModules() { + // Check if the downloadManager has already refreshed everything + if (!refreshManager.isRefreshComplete()) { + // downloadManager is in progress of refreshing + refreshDialog = new ProgressDialog(getActivity()); + refreshDialog.setMessage("Refreshing available modules..."); + refreshDialog.setCancelable(false); + refreshDialog.show(); + } + + // Listen for the books! + refreshManager.getAvailableModulesFlattened() + .filter(new Func1() { + @Override + public Boolean call(Book book) { + return book.getBookCategory() == + BookCategory.fromString(BookListFragment.this.getArguments() + .getString(ARG_BOOK_CATEGORY)); + } + }) + // Repack all the books + .toSortedList(new Func2() { + @Override + public Integer call(Book book1, Book book2) { + return BookComparators.getInitialComparator().compare(book1, book2); + } + }) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Action1>() { + @Override + public void call(List books) { + downloadsAvailable.setAdapter(new BookListAdapter(inflater, books)); + if (BookListFragment.this.getActivity() != null) { + // On a screen rotate, getActivity() will be null. But, the activity will + // already have been set up correctly, so we don't need to worry about it. + // If not null, we need to set it up now. + setInsets(BookListFragment.this.getActivity(), downloadsAvailable); + } + if (refreshDialog != null) { + refreshDialog.cancel(); + } + } + }); + } + + private class DownloadDialogListener implements + DialogInterface.OnClickListener { + @Override + public void onClick(DialogInterface dialog, int which) { + downloadPrefs.hasShownDownloadDialog(true); + + switch (which) { + case DialogInterface.BUTTON_POSITIVE: + // Clicked ready to continue - allow downloading in the future + downloadPrefs.hasEnabledDownload(true); + + // And warn them that it has been enabled in the future. + Toast.makeText(getActivity(), + "Downloading now enabled. Disable in settings.", + Toast.LENGTH_SHORT).show(); + refreshModules(); + break; + + case DialogInterface.BUTTON_NEGATIVE: + // Clicked to not download - Permanently disable downloading + downloadPrefs.hasEnabledDownload(false); + Toast.makeText(getActivity(), + "Disabling downloading. Re-enable it in settings.", + Toast.LENGTH_SHORT).show(); + refreshModules(); + break; + } + } + } + +} \ No newline at end of file diff --git a/MinimalBible/src/main/java/org/bspeice/minimalbible/activities/downloader/DownloadActivity.java b/MinimalBible/src/main/java/org/bspeice/minimalbible/activities/downloader/DownloadActivity.java new file mode 100644 index 0000000..423199d --- /dev/null +++ b/MinimalBible/src/main/java/org/bspeice/minimalbible/activities/downloader/DownloadActivity.java @@ -0,0 +1,90 @@ +package org.bspeice.minimalbible.activities.downloader; + +import android.os.Bundle; +import android.support.v4.app.FragmentManager; +import android.support.v4.widget.DrawerLayout; +import android.support.v7.app.ActionBar; +import android.view.Menu; +import android.view.MenuItem; + +import org.bspeice.minimalbible.R; +import org.bspeice.minimalbible.activities.BaseActivity; +import org.bspeice.minimalbible.activities.BaseNavigationDrawerFragment; +import org.bspeice.minimalbible.activities.downloader.manager.DownloadManager; + +public class DownloadActivity extends BaseActivity implements + BaseNavigationDrawerFragment.NavigationDrawerCallbacks { + + /** + * Fragment managing the behaviors, interactions and presentation of the + * navigation drawer. + */ + private DownloadNavDrawerFragment mNavigationDrawerFragment; + + /** + * Used to store the last screen title. For use in + * {@link #restoreActionBar()}. + */ + private CharSequence mTitle; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_download); + + mNavigationDrawerFragment = (DownloadNavDrawerFragment) getSupportFragmentManager() + .findFragmentById(R.id.navigation_drawer); + mTitle = getTitle(); + + // Set up the drawer. + mNavigationDrawerFragment.setUp(R.id.navigation_drawer, + (DrawerLayout) findViewById(R.id.drawer_layout)); + } + + @Override + public void onNavigationDrawerItemSelected(int position) { + // update the main content by replacing fragments + //TODO: Switch to AutoFactory pattern, rather than newInstance() + FragmentManager fragmentManager = getSupportFragmentManager(); + fragmentManager + .beginTransaction() + .replace(R.id.container, + BookListFragment.newInstance(DownloadManager.VALID_CATEGORIES[position])).commit(); + } + + public void onSectionAttached(String category) { + mTitle = category; + } + + public void restoreActionBar() { + ActionBar actionBar = getSupportActionBar(); + actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD); + actionBar.setDisplayShowTitleEnabled(true); + actionBar.setTitle(mTitle); + } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + if (!mNavigationDrawerFragment.isDrawerOpen()) { + // Only show items in the action bar relevant to this screen + // if the drawer is not showing. Otherwise, let the drawer + // decide what to show in the action bar. + getMenuInflater().inflate(R.menu.download, menu); + restoreActionBar(); + return true; + } + return super.onCreateOptionsMenu(menu); + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + // Handle action bar item clicks here. The action bar will + // automatically handle clicks on the Home/Up button, so long + // as you specify a parent activity in AndroidManifest.xml. + int id = item.getItemId(); + if (id == R.id.action_settings) { + return true; + } + return super.onOptionsItemSelected(item); + } +} diff --git a/MinimalBible/src/main/java/org/bspeice/minimalbible/activities/downloader/DownloadNavDrawerFragment.java b/MinimalBible/src/main/java/org/bspeice/minimalbible/activities/downloader/DownloadNavDrawerFragment.java new file mode 100644 index 0000000..203afba --- /dev/null +++ b/MinimalBible/src/main/java/org/bspeice/minimalbible/activities/downloader/DownloadNavDrawerFragment.java @@ -0,0 +1,43 @@ +package org.bspeice.minimalbible.activities.downloader; + +import org.bspeice.minimalbible.R; +import org.bspeice.minimalbible.activities.BaseNavigationDrawerFragment; +import org.bspeice.minimalbible.activities.downloader.manager.DownloadManager; + +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.ListView; + +public class DownloadNavDrawerFragment extends BaseNavigationDrawerFragment { + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + mDrawerListView = (ListView) inflater.inflate( + R.layout.fragment_navigation_drawer, container, false); + mDrawerListView + .setOnItemClickListener(new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, + int position, long id) { + selectItem(position); + } + }); + + String[] sCategories = new String[DownloadManager.VALID_CATEGORIES.length]; + for (int i = 0; i < DownloadManager.VALID_CATEGORIES.length; i++) { + sCategories[i] = DownloadManager.VALID_CATEGORIES[i].toString(); + } + + mDrawerListView.setAdapter(new ArrayAdapter(getActionBar() + .getThemedContext(), android.R.layout.simple_list_item_1, + android.R.id.text1, sCategories)); + mDrawerListView.setItemChecked(mCurrentSelectedPosition, true); + return mDrawerListView; + } + +} diff --git a/MinimalBible/src/main/java/org/bspeice/minimalbible/activities/downloader/DownloadPrefs.java b/MinimalBible/src/main/java/org/bspeice/minimalbible/activities/downloader/DownloadPrefs.java new file mode 100644 index 0000000..568ed18 --- /dev/null +++ b/MinimalBible/src/main/java/org/bspeice/minimalbible/activities/downloader/DownloadPrefs.java @@ -0,0 +1,20 @@ +package org.bspeice.minimalbible.activities.downloader; + +import de.devland.esperandro.annotations.SharedPreferences; + +/** + * SharedPreferences interface to be built by Esperandro + */ +@SharedPreferences(name="DownloadPrefs") +public interface DownloadPrefs { + + boolean hasEnabledDownload(); + void hasEnabledDownload(boolean hasEnabledDownload); + + boolean hasShownDownloadDialog(); + void hasShownDownloadDialog(boolean hasShownDownloadDialog); + + long downloadRefreshedOn(); + void downloadRefreshedOn(long downloadRefreshedOn); + +} diff --git a/MinimalBible/src/main/java/org/bspeice/minimalbible/activities/downloader/manager/BookDownloadManager.java b/MinimalBible/src/main/java/org/bspeice/minimalbible/activities/downloader/manager/BookDownloadManager.java new file mode 100644 index 0000000..663b558 --- /dev/null +++ b/MinimalBible/src/main/java/org/bspeice/minimalbible/activities/downloader/manager/BookDownloadManager.java @@ -0,0 +1,129 @@ +package org.bspeice.minimalbible.activities.downloader.manager; + +import android.util.Log; + +import org.bspeice.minimalbible.MinimalBible; +import org.crosswire.common.progress.JobManager; +import org.crosswire.common.progress.Progress; +import org.crosswire.common.progress.WorkEvent; +import org.crosswire.common.progress.WorkListener; +import org.crosswire.jsword.book.Book; +import org.crosswire.jsword.book.Books; +import org.crosswire.jsword.book.BooksEvent; +import org.crosswire.jsword.book.BooksListener; + +import java.util.HashMap; +import java.util.Map; + +import javax.inject.Inject; +import javax.inject.Provider; +import javax.inject.Singleton; + +import rx.subjects.PublishSubject; + +/** + * Wrapper to convert JSword progress events to MinimalBible EventBus-based + */ +//TODO: Make sure that jobs have the correct name +//TODO: Install indexes for Bibles +@Singleton +public class BookDownloadManager implements WorkListener, BooksListener { + + /** + * Mapping of Job ID to the EventBus we should trigger progress on + */ + private final Map bookMappings; + + /** + * Cached copy of downloads in progress so views displaying this info can get it quickly. + */ + private final Map inProgressDownloads; + + private final PublishSubject downloadEvents = PublishSubject.create(); + + @Inject + Provider dlThreadProvider; + + public BookDownloadManager() { + bookMappings = new HashMap(); + inProgressDownloads = new HashMap(); + JobManager.addWorkListener(this); + MinimalBible.getApplication().inject(this); + Books.installed().addBooksListener(this); + } + + public void installBook(Book b) { + BookDownloadThread dlThread = dlThreadProvider.get(); + dlThread.downloadBook(b); + addJob(BookDownloadThread.getJobId(b), b); + downloadEvents.onNext(new DLProgressEvent(DLProgressEvent.PROGRESS_BEGINNING, b)); + } + + public void addJob(String jobId, Book b) { + bookMappings.put(jobId, b); + } + + @Override + public void workProgressed(WorkEvent ev) { + Progress job = ev.getJob(); + Log.d("BookDownloadManager", "Download in progress: " + job.getJobID() + " - " + job.getJobName() + " " + job.getWorkDone() + "/" + job.getTotalWork()); + if (bookMappings.containsKey(job.getJobID())) { + Book b = bookMappings.get(job.getJobID()); + + if (job.getWorkDone() == job.getTotalWork()) { + // Download is complete + inProgressDownloads.remove(bookMappings.get(job.getJobID())); + bookMappings.remove(job.getJobID()); + downloadEvents.onNext(new DLProgressEvent(DLProgressEvent.PROGRESS_COMPLETE, b)); + } else { + // Track the ongoing download + DLProgressEvent event = new DLProgressEvent(job.getWorkDone(), + job.getTotalWork(), b); + inProgressDownloads.put(b, event); + downloadEvents.onNext(event); + } + } + } + + /** + * Check the status of a book download in progress. + * @param b The book to get the current progress of + * @return The most recent DownloadProgressEvent for the book, or null if not downloading + */ + public DLProgressEvent getInProgressDownloadProgress(Book b) { + if (inProgressDownloads.containsKey(b)) { + return inProgressDownloads.get(b); + } else { + return null; + } + } + + public PublishSubject getDownloadEvents() { + return downloadEvents; + } + + @Override + public void workStateChanged(WorkEvent ev) { + Log.d("BookDownloadManager", ev.toString()); + } + + @Override + public void bookAdded(BooksEvent booksEvent) { + // It's possible the install finished before we received a progress event for it, + // we handle that case here. + Book b = booksEvent.getBook(); + Log.d("BookDownloadManager", "Book added: " + b.getName()); + if (inProgressDownloads.containsKey(b)) { + inProgressDownloads.remove(b); + } + // Not sure why, but the inProgressDownloads might not have our book, + // so we always trigger the PROGRESS_COMPLETE event. + // TODO: Make sure all books get to the inProgressDownloads + downloadEvents.onNext(new DLProgressEvent(DLProgressEvent.PROGRESS_COMPLETE, b)); + } + + @Override + public void bookRemoved(BooksEvent booksEvent) { + // Not too worried about this just yet. + } +} diff --git a/MinimalBible/src/main/java/org/bspeice/minimalbible/activities/downloader/manager/BookDownloadThread.java b/MinimalBible/src/main/java/org/bspeice/minimalbible/activities/downloader/manager/BookDownloadThread.java new file mode 100644 index 0000000..477d61f --- /dev/null +++ b/MinimalBible/src/main/java/org/bspeice/minimalbible/activities/downloader/manager/BookDownloadThread.java @@ -0,0 +1,65 @@ +package org.bspeice.minimalbible.activities.downloader.manager; + +import android.util.Log; + +import org.bspeice.minimalbible.MinimalBible; +import org.crosswire.jsword.book.Book; +import org.crosswire.jsword.book.install.InstallException; +import org.crosswire.jsword.book.install.Installer; + +import javax.inject.Inject; + +import rx.functions.Action1; +import rx.schedulers.Schedulers; + +/** + * Thread that handles downloading a book + */ +//TODO: Refactor to BookDownloadManager, downloadBook() creates its own thread +public class BookDownloadThread { + + private final String TAG = "BookDownloadThread"; + + @Inject + BookDownloadManager bookDownloadManager; + @Inject + RefreshManager refreshManager; + + public BookDownloadThread() { + MinimalBible.getApplication().inject(this); + } + + public void downloadBook(final Book b) { + // So, the JobManager can't be injected, but we'll make do + + // First, look up where the Book came from + refreshManager.installerFromBook(b) + .subscribeOn(Schedulers.io()) + .subscribe(new Action1() { + @Override + public void call(Installer installer) { + try { + installer.install(b); + } catch (InstallException e) { + Log.d(TAG, e.getMessage()); + } + + bookDownloadManager.getDownloadEvents() + .onNext(new DLProgressEvent(DLProgressEvent.PROGRESS_BEGINNING, b)); + } + }); + } + + /** + * Build what the installer creates the job name as. + * Likely prone to be brittle. + * TODO: Make sure to test that this is an accurate job name + * + * @param b The book to predict the download job name of + * @return The name of the job that will/is download/ing this book + */ + + public static String getJobId(Book b) { + return "INSTALL_BOOK-" + b.getInitials(); + } +} diff --git a/MinimalBible/src/main/java/org/bspeice/minimalbible/activities/downloader/manager/DLProgressEvent.java b/MinimalBible/src/main/java/org/bspeice/minimalbible/activities/downloader/manager/DLProgressEvent.java new file mode 100644 index 0000000..135998e --- /dev/null +++ b/MinimalBible/src/main/java/org/bspeice/minimalbible/activities/downloader/manager/DLProgressEvent.java @@ -0,0 +1,40 @@ +package org.bspeice.minimalbible.activities.downloader.manager; + +import org.crosswire.jsword.book.Book; + +/** + * Used for notifying that a book's download progress is ongoing + */ +public class DLProgressEvent { + private final int progress; + private final Book b; + + public static final int PROGRESS_COMPLETE = 100; + public static final int PROGRESS_BEGINNING = 0; + + public DLProgressEvent(int workDone, int totalWork, Book b) { + if (totalWork == 0) { + this.progress = 0; + } else { + this.progress = (int)((float) workDone / totalWork * 100); + } + this.b = b; + } + + public DLProgressEvent(int workDone, Book b) { + this.progress = workDone; + this.b = b; + } + + public int getProgress() { + return progress; + } + + public float toCircular() { + return ((float)progress) * 360 / 100; + } + + public Book getB() { + return this.b; + } +} diff --git a/MinimalBible/src/main/java/org/bspeice/minimalbible/activities/downloader/manager/DownloadManager.java b/MinimalBible/src/main/java/org/bspeice/minimalbible/activities/downloader/manager/DownloadManager.java new file mode 100644 index 0000000..5cdb098 --- /dev/null +++ b/MinimalBible/src/main/java/org/bspeice/minimalbible/activities/downloader/manager/DownloadManager.java @@ -0,0 +1,58 @@ +package org.bspeice.minimalbible.activities.downloader.manager; + +import android.util.Log; + +import org.bspeice.minimalbible.MinimalBible; +import org.crosswire.jsword.book.BookCategory; +import org.crosswire.jsword.book.install.InstallManager; +import org.crosswire.jsword.book.install.Installer; +import org.crosswire.jsword.book.sword.SwordBookPath; + +import java.io.File; +import java.util.Map; + +import javax.inject.Inject; +import javax.inject.Singleton; + +// TODO: Listen to BookInstall events? +@Singleton +public class DownloadManager { + + private final String TAG = "DownloadManager"; + + public static final BookCategory[] VALID_CATEGORIES = { BookCategory.BIBLE, + BookCategory.COMMENTARY, BookCategory.DICTIONARY, + BookCategory.MAPS }; + + /** + * Set up the DownloadManager, and notify jSword of where it should store files at + */ + @Inject + public DownloadManager() { + setDownloadDir(); + } + + /** + * Get the installers available to jSword - this is how we get access to the actual modules + * @return All available {@link org.crosswire.jsword.book.install.Installer}s + */ + public Map getInstallers() { + return new InstallManager().getInstallers(); + } + + /** + * Notify jSword that it needs to store files in the Android internal directory + * NOTE: Android will uninstall these files if you uninstall MinimalBible. + */ + @SuppressWarnings("null") + private void setDownloadDir() { + // We need to set the download directory for jSword to stick with + // Android. + String home = MinimalBible.getAppContext().getFilesDir().toString(); + Log.d(TAG, "Setting jsword.home to: " + home); + System.setProperty("jsword.home", home); + System.setProperty("sword.home", home); + SwordBookPath.setDownloadDir(new File(home)); + Log.d(TAG, "Sword download path: " + SwordBookPath.getSwordDownloadDir()); + } +} diff --git a/MinimalBible/src/main/java/org/bspeice/minimalbible/activities/downloader/manager/InstalledManager.java b/MinimalBible/src/main/java/org/bspeice/minimalbible/activities/downloader/manager/InstalledManager.java new file mode 100644 index 0000000..505f00b --- /dev/null +++ b/MinimalBible/src/main/java/org/bspeice/minimalbible/activities/downloader/manager/InstalledManager.java @@ -0,0 +1,81 @@ +package org.bspeice.minimalbible.activities.downloader.manager; + +import android.util.Log; + +import org.crosswire.jsword.book.Book; +import org.crosswire.jsword.book.BookException; +import org.crosswire.jsword.book.Books; +import org.crosswire.jsword.book.BooksEvent; +import org.crosswire.jsword.book.BooksListener; + +import java.util.List; + +import javax.inject.Inject; +import javax.inject.Singleton; + +/** + * Manager to keep track of which books have been installed + */ +@Singleton +public class InstalledManager implements BooksListener { + + private Books installedBooks; + private List installedBooksList; + private String TAG = "InstalledManager"; + + @Inject InstalledManager() {} + + /** + * Register our manager to receive events on Book install + * This is a relatively expensive operation, + * so we don't put it in the constructor. + */ + public void initialize() { + //TODO: Move this to a true async, rather than separate initialize() function + installedBooks = Books.installed(); + installedBooksList = installedBooks.getBooks(); + installedBooks.addBooksListener(this); + } + + public boolean isInstalled(Book b) { + if (installedBooks == null) { + initialize(); + } + return installedBooksList.contains(b); + } + + @Override + public void bookAdded(BooksEvent booksEvent) { + Log.d(TAG, "Book added: " + booksEvent.getBook().toString()); + Book b = booksEvent.getBook(); + if (!installedBooksList.contains(b)) { + installedBooksList.add(b); + } + } + + @Override + public void bookRemoved(BooksEvent booksEvent) { + Log.d(TAG, "Book removed: " + booksEvent.getBook().toString()); + Book b = booksEvent.getBook(); + if (installedBooksList.contains(b)) { + installedBooksList.remove(b); + } + } + + public void removeBook(Book b) { + if (installedBooks == null) { + initialize(); + } + // Not sure why we need to call this multiple times, but... + while (Books.installed().getBooks().contains(b)) { + try { + // This worked in the past, but isn't now... + // installedBooks.remove(b); + Book realBook = installedBooks.getBook(b.getInitials()); + b.getDriver().delete(realBook); + } catch (BookException e) { + Log.e("InstalledManager", "Unable to remove book (already uninstalled?): " + e.getLocalizedMessage()); + } + } + } +} diff --git a/MinimalBible/src/main/java/org/bspeice/minimalbible/activities/downloader/manager/RefreshManager.java b/MinimalBible/src/main/java/org/bspeice/minimalbible/activities/downloader/manager/RefreshManager.java new file mode 100644 index 0000000..bf8c197 --- /dev/null +++ b/MinimalBible/src/main/java/org/bspeice/minimalbible/activities/downloader/manager/RefreshManager.java @@ -0,0 +1,148 @@ +package org.bspeice.minimalbible.activities.downloader.manager; + +import org.bspeice.minimalbible.MinimalBible; +import org.crosswire.jsword.book.Book; +import org.crosswire.jsword.book.install.Installer; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.concurrent.atomic.AtomicBoolean; + +import javax.inject.Inject; +import javax.inject.Singleton; + +import rx.Observable; +import rx.functions.Action0; +import rx.functions.Action1; +import rx.functions.Func1; +import rx.functions.Func2; +import rx.schedulers.Schedulers; + +/** + * Handle refreshing the list of books available as needed + */ +@Singleton +public class RefreshManager { + + @Inject DownloadManager downloadManager; + @Inject InstalledManager installedManager; + + /** + * Cached copy of modules that are available so we don't refresh for everyone who requests it. + */ + private Observable>> availableModules; + private final AtomicBoolean refreshComplete = new AtomicBoolean(); + + public RefreshManager() { + MinimalBible.getApplication().inject(this); + refreshModules(); + } + + /** + * Do the work of kicking off the AsyncTask to refresh books, and make sure we know + * when it's done. + * TODO: Should I have a better way of scheduling than Schedulers.io()? + */ + private void refreshModules() { + if (availableModules == null) { + availableModules = Observable.from(downloadManager.getInstallers().values()) + .map(new Func1>>() { + @Override + public Map> call(Installer installer) { + Map> map = new HashMap>(); + map.put(installer, installer.getBooks()); + return map; + } + }).subscribeOn(Schedulers.io()) + .cache(); + + // Set refresh complete when it is. + availableModules.observeOn(Schedulers.io()) + .subscribe(new Action1>>() { + @Override + public void call(Map> onNext) {} + }, new Action1() { + @Override + public void call(Throwable onError) {} + }, new Action0() { + @Override + public void call() { + refreshComplete.set(true); + } + }); + } + } + + public Observable>> getAvailableModules() { + return availableModules; + } + + public Observable getAvailableModulesFlattened() { + return availableModules + // First flatten the Map to its lists + .flatMap(new Func1>, Observable>>() { + @Override + public Observable> call(Map> books) { + return Observable.from(books.values()); + } + }) + // Then flatten the lists + .flatMap(new Func1, Observable>() { + @Override + public Observable call(List t1) { + return Observable.from(t1); + } + }); + } + + /** + * Get the cached book list + * @return The cached book list, or null + */ + public List getBookList() { + List availableList = new ArrayList(); + availableModules.reduce(availableList, + new Func2, Map>, List>() { + @Override + public List call(List books, Map> installerListMap) { + for (List l : installerListMap.values()) { + books.addAll(l); + } + return books; + } + }); + return availableList; + } + + /** + * Find the installer that a Book comes from. + * @param b The book to search for + * @return The Installer that should be used for this book. + */ + public Observable installerFromBook(final Book b) { + return availableModules.filter(new Func1>, Boolean>() { + @Override + public Boolean call(Map> installerListMap) { + for (List element : installerListMap.values()) { + if (element.contains(b)) { + return true; + } + } + return false; + } + }) + .first() + .map(new Func1>, Installer>() { + @Override + public Installer call(Map> element) { + return element.entrySet().iterator().next().getKey(); + } + }); + } + + public boolean isRefreshComplete() { + return refreshComplete.get(); + } +} diff --git a/MinimalBible/src/main/java/org/bspeice/minimalbible/activities/viewer/ActivityViewerModule.java b/MinimalBible/src/main/java/org/bspeice/minimalbible/activities/viewer/ActivityViewerModule.java new file mode 100644 index 0000000..c6b4fc2 --- /dev/null +++ b/MinimalBible/src/main/java/org/bspeice/minimalbible/activities/viewer/ActivityViewerModule.java @@ -0,0 +1,15 @@ +package org.bspeice.minimalbible.activities.viewer; + +import dagger.Module; + +/** + * Created by bspeice on 6/18/14. + */ +@Module( + injects = { + BibleViewer.class, + BookFragment.class + } +) +public class ActivityViewerModule { +} diff --git a/MinimalBible/src/main/java/org/bspeice/minimalbible/activities/viewer/BibleViewer.java b/MinimalBible/src/main/java/org/bspeice/minimalbible/activities/viewer/BibleViewer.java new file mode 100644 index 0000000..544deee --- /dev/null +++ b/MinimalBible/src/main/java/org/bspeice/minimalbible/activities/viewer/BibleViewer.java @@ -0,0 +1,136 @@ +package org.bspeice.minimalbible.activities.viewer; + +import android.content.Intent; +import android.os.Bundle; +import android.os.Looper; +import android.support.v4.app.Fragment; +import android.support.v4.app.FragmentManager; +import android.support.v4.widget.DrawerLayout; +import android.support.v7.app.ActionBar; +import android.util.Log; +import android.view.Menu; +import android.view.MenuItem; + +import org.bspeice.minimalbible.MinimalBible; +import org.bspeice.minimalbible.R; +import org.bspeice.minimalbible.activities.BaseActivity; +import org.bspeice.minimalbible.activities.BaseNavigationDrawerFragment; +import org.bspeice.minimalbible.activities.downloader.DownloadActivity; +import org.crosswire.jsword.book.Book; + +import javax.inject.Inject; + +import rx.android.schedulers.AndroidSchedulers; +import rx.functions.Action1; + +public class BibleViewer extends BaseActivity implements + BaseNavigationDrawerFragment.NavigationDrawerCallbacks { + + @Inject BookManager bookManager; + + /** + * Fragment managing the behaviors, interactions and presentation of the + * navigation drawer. + */ + private ViewerNavDrawerFragment mNavigationDrawerFragment; + + /** + * Used to store the last screen title. For use in + * {@link #restoreActionBar()}. + */ + private CharSequence mTitle; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + MinimalBible.getApplication().inject(this); + + // If no books are installed, we need to download one first. + int count = bookManager.getInstalledBooks() + .count() + .toBlocking() + .last(); + if (count <= 0) { + Intent i = new Intent(this, DownloadActivity.class); + startActivityForResult(i, 0); + finish(); + } else { + bookManager.getInstalledBooks() + .first() + .subscribeOn(AndroidSchedulers.mainThread()) + .subscribe(new Action1() { + @Override + public void call(Book book) { + Log.d("BibleViewer", "Subscribed to display book: " + book.getName()); + displayMainBook(book); + } + }); + } + + setContentView(R.layout.activity_bible_viewer); + + mNavigationDrawerFragment = (ViewerNavDrawerFragment) getSupportFragmentManager() + .findFragmentById(R.id.navigation_drawer); + mTitle = getTitle(); + + // Set up the drawer. + mNavigationDrawerFragment.setUp(R.id.navigation_drawer, + (DrawerLayout) findViewById(R.id.drawer_layout)); + } + + @Override + public void onNavigationDrawerItemSelected(int position) { + // Handle a navigation movement + } + + public void setActionBarTitle(String title) { + ActionBar actionBar = getSupportActionBar(); + mTitle = title; + actionBar.setTitle(title); + } + + public void restoreActionBar() { + ActionBar actionBar = getSupportActionBar(); + actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD); + actionBar.setDisplayShowTitleEnabled(true); + actionBar.setTitle(mTitle); + } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + if (!mNavigationDrawerFragment.isDrawerOpen()) { + // Only show items in the action bar relevant to this screen + // if the drawer is not showing. Otherwise, let the drawer + // decide what to show in the action bar. + getMenuInflater().inflate(R.menu.main, menu); + restoreActionBar(); + return true; + } + return super.onCreateOptionsMenu(menu); + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + // Handle action bar item clicks here. The action bar will + // automatically handle clicks on the Home/Up button, so long + // as you specify a parent activity in AndroidManifest.xml. + int id = item.getItemId(); + if (id == R.id.action_settings) { + return true; + } else if (id == R.id.action_downloads) { + startActivity(new Intent(this, DownloadActivity.class)); + } + return super.onOptionsItemSelected(item); + } + + private void displayMainBook(Book b) { + Log.d("BibleViewer", "Initializing main book: " + b.getName()); + Log.d("MainThread?", Boolean.toString(Looper.myLooper() == Looper.getMainLooper())); + FragmentManager fragmentManager = getSupportFragmentManager(); + Fragment f = BookFragment.newInstance(b.getName()); + fragmentManager.beginTransaction() + .replace(R.id.container, f) + .commit(); + } +} diff --git a/MinimalBible/src/main/java/org/bspeice/minimalbible/activities/viewer/BookFragment.java b/MinimalBible/src/main/java/org/bspeice/minimalbible/activities/viewer/BookFragment.java new file mode 100644 index 0000000..d5018b1 --- /dev/null +++ b/MinimalBible/src/main/java/org/bspeice/minimalbible/activities/viewer/BookFragment.java @@ -0,0 +1,140 @@ +package org.bspeice.minimalbible.activities.viewer; + +import android.app.Activity; +import android.os.Bundle; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.webkit.WebView; +import android.webkit.WebViewClient; + +import org.bspeice.minimalbible.MinimalBible; +import org.bspeice.minimalbible.R; +import org.bspeice.minimalbible.activities.BaseFragment; +import org.crosswire.jsword.book.Book; + +import java.util.List; + +import javax.inject.Inject; + +import butterknife.ButterKnife; +import butterknife.InjectView; +import rx.android.schedulers.AndroidSchedulers; +import rx.functions.Action1; +import rx.functions.Func1; + +/** + * A placeholder fragment containing a simple view. + */ +public class BookFragment extends BaseFragment { + + @Inject BookManager bookManager; + + @InjectView(R.id.book_content) + WebView mainContent; + + private static final String ARG_BOOK_NAME = "book_name"; + + private Book mBook; + + /** + * Returns a new instance of this fragment for the given section number. + */ + public static BookFragment newInstance(String bookName) { + BookFragment fragment = new BookFragment(); + Bundle args = new Bundle(); + args.putString(ARG_BOOK_NAME, bookName); + fragment.setArguments(args); + return fragment; + } + + public BookFragment() { + } + + @Override + public void onCreate(Bundle state) { + super.onCreate(state); + MinimalBible.getApplication().inject(this); + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + View rootView = inflater.inflate(R.layout.fragment_viewer_main, container, + false); + ButterKnife.inject(this, rootView); + mainContent.getSettings().setJavaScriptEnabled(true); + + // TODO: Load initial text from SharedPreferences + + // And due to Observable async, we can kick off fetching the actual book asynchronously! + bookManager.getInstalledBooks() + .first(new Func1() { + @Override + public Boolean call(Book book) { + String mBookName = getArguments().getString(ARG_BOOK_NAME); + return book.getName().equals(mBookName); + } + }) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Action1() { + @Override + public void call(Book book) { + BookFragment.this.mBook = book; + displayBook(book); + } + }, new Action1() { + @Override + public void call(Throwable throwable) { + Log.d("BookFragment", "No books installed?"); + } + }); + + return rootView; + } + + // TODO: Remove? + @Override + public void onAttach(Activity activity) { + super.onAttach(activity); + } + + private void displayBook(Book b) { + Log.d("BookFragment", b.getName()); + ((BibleViewer)getActivity()).setActionBarTitle(b.getInitials()); + mainContent.loadUrl(getString(R.string.content_page)); + mainContent.setWebViewClient(new WebViewClient(){ + @Override + public void onPageFinished(WebView view, String url) { + super.onPageFinished(view, url); + invokeJavascript("set_content", BookFragment.this.mBook.getName()); + } + }); + + } + + private void invokeJavascript(String function, Object arg) { + mainContent.loadUrl("javascript:" + function + "('" + arg.toString() + "')"); + } + + private void invokeJavascript(String function, List args) { + mainContent.loadUrl("javascript:" + function + "(" + joinString(",", args.toArray()) + ")"); + } + + // Convenience from http://stackoverflow.com/a/17795110/1454178 + public static String joinString(String join, Object... strings) { + if (strings == null || strings.length == 0) { + return ""; + } else if (strings.length == 1) { + return strings[0].toString(); + } else { + StringBuilder sb = new StringBuilder(); + sb.append(strings[0]); + for (int i = 1; i < strings.length; i++) { + sb.append(join).append(strings[i].toString()); + } + return sb.toString(); + } + } +} diff --git a/MinimalBible/src/main/java/org/bspeice/minimalbible/activities/viewer/BookManager.java b/MinimalBible/src/main/java/org/bspeice/minimalbible/activities/viewer/BookManager.java new file mode 100644 index 0000000..ecb9785 --- /dev/null +++ b/MinimalBible/src/main/java/org/bspeice/minimalbible/activities/viewer/BookManager.java @@ -0,0 +1,50 @@ +package org.bspeice.minimalbible.activities.viewer; + +import org.crosswire.jsword.book.Book; +import org.crosswire.jsword.book.Books; + +import javax.inject.Inject; +import javax.inject.Singleton; + +import rx.Observable; +import rx.functions.Action0; +import rx.functions.Action1; +import rx.schedulers.Schedulers; + +/** + * Created by bspeice on 6/18/14. + */ +@Singleton +public class BookManager { + + private Observable installedBooks; + private Boolean refreshComplete; + + @Inject + BookManager() { + installedBooks = Observable.from(Books.installed().getBooks()) + .cache(); + installedBooks.subscribeOn(Schedulers.io()) + .subscribe(new Action1() { + @Override + public void call(Book book) {} + }, new Action1() { + @Override + public void call(Throwable throwable) {} + }, new Action0() { + @Override + public void call() { + BookManager.this.refreshComplete = true; + } + }); + } + + public Observable getInstalledBooks() { + return installedBooks; + } + + public Boolean isRefreshComplete() { + return refreshComplete; + } + +} diff --git a/MinimalBible/src/main/java/org/bspeice/minimalbible/activities/viewer/ViewerNavDrawerFragment.java b/MinimalBible/src/main/java/org/bspeice/minimalbible/activities/viewer/ViewerNavDrawerFragment.java new file mode 100644 index 0000000..46087f4 --- /dev/null +++ b/MinimalBible/src/main/java/org/bspeice/minimalbible/activities/viewer/ViewerNavDrawerFragment.java @@ -0,0 +1,38 @@ +package org.bspeice.minimalbible.activities.viewer; + +import org.bspeice.minimalbible.R; +import org.bspeice.minimalbible.activities.BaseNavigationDrawerFragment; + +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.ListView; + +public class ViewerNavDrawerFragment extends BaseNavigationDrawerFragment { + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + mDrawerListView = (ListView) inflater.inflate( + R.layout.fragment_navigation_drawer, container, false); + mDrawerListView + .setOnItemClickListener(new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, + int position, long id) { + selectItem(position); + } + }); + mDrawerListView.setAdapter(new ArrayAdapter(getActionBar() + .getThemedContext(), android.R.layout.simple_list_item_1, + android.R.id.text1, new String[] { + getString(R.string.title_section1), + getString(R.string.title_section2), + getString(R.string.title_section3)})); + mDrawerListView.setItemChecked(mCurrentSelectedPosition, true); + return mDrawerListView; + } +} diff --git a/MinimalBible/src/main/res/drawable-hdpi/drawer_shadow.9.png b/MinimalBible/src/main/res/drawable-hdpi/drawer_shadow.9.png new file mode 100644 index 0000000..236bff5 Binary files /dev/null and b/MinimalBible/src/main/res/drawable-hdpi/drawer_shadow.9.png differ diff --git a/MinimalBible/src/main/res/drawable-hdpi/ic_action_cancel.png b/MinimalBible/src/main/res/drawable-hdpi/ic_action_cancel.png new file mode 100644 index 0000000..f889617 Binary files /dev/null and b/MinimalBible/src/main/res/drawable-hdpi/ic_action_cancel.png differ diff --git a/MinimalBible/src/main/res/drawable-hdpi/ic_action_download.png b/MinimalBible/src/main/res/drawable-hdpi/ic_action_download.png new file mode 100644 index 0000000..1f3d065 Binary files /dev/null and b/MinimalBible/src/main/res/drawable-hdpi/ic_action_download.png differ diff --git a/MinimalBible/src/main/res/drawable-hdpi/ic_action_search.png b/MinimalBible/src/main/res/drawable-hdpi/ic_action_search.png new file mode 100644 index 0000000..f594b4e Binary files /dev/null and b/MinimalBible/src/main/res/drawable-hdpi/ic_action_search.png differ diff --git a/MinimalBible/src/main/res/drawable-hdpi/ic_drawer.png b/MinimalBible/src/main/res/drawable-hdpi/ic_drawer.png new file mode 100644 index 0000000..c59f601 Binary files /dev/null and b/MinimalBible/src/main/res/drawable-hdpi/ic_drawer.png differ diff --git a/MinimalBible/src/main/res/drawable-hdpi/ic_launcher.png b/MinimalBible/src/main/res/drawable-hdpi/ic_launcher.png new file mode 100644 index 0000000..53aa005 Binary files /dev/null and b/MinimalBible/src/main/res/drawable-hdpi/ic_launcher.png differ diff --git a/MinimalBible/src/main/res/drawable-mdpi/drawer_shadow.9.png b/MinimalBible/src/main/res/drawable-mdpi/drawer_shadow.9.png new file mode 100644 index 0000000..ffe3a28 Binary files /dev/null and b/MinimalBible/src/main/res/drawable-mdpi/drawer_shadow.9.png differ diff --git a/MinimalBible/src/main/res/drawable-mdpi/ic_action_cancel.png b/MinimalBible/src/main/res/drawable-mdpi/ic_action_cancel.png new file mode 100644 index 0000000..e84853e Binary files /dev/null and b/MinimalBible/src/main/res/drawable-mdpi/ic_action_cancel.png differ diff --git a/MinimalBible/src/main/res/drawable-mdpi/ic_action_download.png b/MinimalBible/src/main/res/drawable-mdpi/ic_action_download.png new file mode 100644 index 0000000..c2ead0c Binary files /dev/null and b/MinimalBible/src/main/res/drawable-mdpi/ic_action_download.png differ diff --git a/MinimalBible/src/main/res/drawable-mdpi/ic_action_search.png b/MinimalBible/src/main/res/drawable-mdpi/ic_action_search.png new file mode 100644 index 0000000..2e446ec Binary files /dev/null and b/MinimalBible/src/main/res/drawable-mdpi/ic_action_search.png differ diff --git a/MinimalBible/src/main/res/drawable-mdpi/ic_drawer.png b/MinimalBible/src/main/res/drawable-mdpi/ic_drawer.png new file mode 100644 index 0000000..1ed2c56 Binary files /dev/null and b/MinimalBible/src/main/res/drawable-mdpi/ic_drawer.png differ diff --git a/MinimalBible/src/main/res/drawable-mdpi/ic_launcher.png b/MinimalBible/src/main/res/drawable-mdpi/ic_launcher.png new file mode 100644 index 0000000..33dae9a Binary files /dev/null and b/MinimalBible/src/main/res/drawable-mdpi/ic_launcher.png differ diff --git a/MinimalBible/src/main/res/drawable-xhdpi/drawer_shadow.9.png b/MinimalBible/src/main/res/drawable-xhdpi/drawer_shadow.9.png new file mode 100644 index 0000000..fabe9d9 Binary files /dev/null and b/MinimalBible/src/main/res/drawable-xhdpi/drawer_shadow.9.png differ diff --git a/MinimalBible/src/main/res/drawable-xhdpi/ic_action_cancel.png b/MinimalBible/src/main/res/drawable-xhdpi/ic_action_cancel.png new file mode 100644 index 0000000..58e2e3b Binary files /dev/null and b/MinimalBible/src/main/res/drawable-xhdpi/ic_action_cancel.png differ diff --git a/MinimalBible/src/main/res/drawable-xhdpi/ic_action_download.png b/MinimalBible/src/main/res/drawable-xhdpi/ic_action_download.png new file mode 100644 index 0000000..38a3aee Binary files /dev/null and b/MinimalBible/src/main/res/drawable-xhdpi/ic_action_download.png differ diff --git a/MinimalBible/src/main/res/drawable-xhdpi/ic_action_search.png b/MinimalBible/src/main/res/drawable-xhdpi/ic_action_search.png new file mode 100644 index 0000000..aad535e Binary files /dev/null and b/MinimalBible/src/main/res/drawable-xhdpi/ic_action_search.png differ diff --git a/MinimalBible/src/main/res/drawable-xhdpi/ic_drawer.png b/MinimalBible/src/main/res/drawable-xhdpi/ic_drawer.png new file mode 100644 index 0000000..a5fa74d Binary files /dev/null and b/MinimalBible/src/main/res/drawable-xhdpi/ic_drawer.png differ diff --git a/MinimalBible/src/main/res/drawable-xhdpi/ic_launcher.png b/MinimalBible/src/main/res/drawable-xhdpi/ic_launcher.png new file mode 100644 index 0000000..9b0565f Binary files /dev/null and b/MinimalBible/src/main/res/drawable-xhdpi/ic_launcher.png differ diff --git a/MinimalBible/src/main/res/drawable-xxhdpi/drawer_shadow.9.png b/MinimalBible/src/main/res/drawable-xxhdpi/drawer_shadow.9.png new file mode 100644 index 0000000..b91e9d7 Binary files /dev/null and b/MinimalBible/src/main/res/drawable-xxhdpi/drawer_shadow.9.png differ diff --git a/MinimalBible/src/main/res/drawable-xxhdpi/ic_action_cancel.png b/MinimalBible/src/main/res/drawable-xxhdpi/ic_action_cancel.png new file mode 100644 index 0000000..a9bbcde Binary files /dev/null and b/MinimalBible/src/main/res/drawable-xxhdpi/ic_action_cancel.png differ diff --git a/MinimalBible/src/main/res/drawable-xxhdpi/ic_action_download.png b/MinimalBible/src/main/res/drawable-xxhdpi/ic_action_download.png new file mode 100644 index 0000000..ef7785a Binary files /dev/null and b/MinimalBible/src/main/res/drawable-xxhdpi/ic_action_download.png differ diff --git a/MinimalBible/src/main/res/drawable-xxhdpi/ic_action_search.png b/MinimalBible/src/main/res/drawable-xxhdpi/ic_action_search.png new file mode 100644 index 0000000..9c0ea3c Binary files /dev/null and b/MinimalBible/src/main/res/drawable-xxhdpi/ic_action_search.png differ diff --git a/MinimalBible/src/main/res/drawable-xxhdpi/ic_drawer.png b/MinimalBible/src/main/res/drawable-xxhdpi/ic_drawer.png new file mode 100644 index 0000000..9c4685d Binary files /dev/null and b/MinimalBible/src/main/res/drawable-xxhdpi/ic_drawer.png differ diff --git a/MinimalBible/src/main/res/drawable-xxhdpi/ic_launcher.png b/MinimalBible/src/main/res/drawable-xxhdpi/ic_launcher.png new file mode 100644 index 0000000..9b8def8 Binary files /dev/null and b/MinimalBible/src/main/res/drawable-xxhdpi/ic_launcher.png differ diff --git a/MinimalBible/src/main/res/layout/activity_bible_viewer.xml b/MinimalBible/src/main/res/layout/activity_bible_viewer.xml new file mode 100644 index 0000000..923252a --- /dev/null +++ b/MinimalBible/src/main/res/layout/activity_bible_viewer.xml @@ -0,0 +1,42 @@ + + + + + + + + + + + + + diff --git a/MinimalBible/src/main/res/layout/activity_download.xml b/MinimalBible/src/main/res/layout/activity_download.xml new file mode 100644 index 0000000..fc52f60 --- /dev/null +++ b/MinimalBible/src/main/res/layout/activity_download.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + diff --git a/MinimalBible/src/main/res/layout/fragment_download.xml b/MinimalBible/src/main/res/layout/fragment_download.xml new file mode 100644 index 0000000..5076ad1 --- /dev/null +++ b/MinimalBible/src/main/res/layout/fragment_download.xml @@ -0,0 +1,15 @@ + + + + diff --git a/MinimalBible/src/main/res/layout/fragment_navigation_drawer.xml b/MinimalBible/src/main/res/layout/fragment_navigation_drawer.xml new file mode 100644 index 0000000..78c322f --- /dev/null +++ b/MinimalBible/src/main/res/layout/fragment_navigation_drawer.xml @@ -0,0 +1,11 @@ + + diff --git a/MinimalBible/src/main/res/layout/fragment_viewer_main.xml b/MinimalBible/src/main/res/layout/fragment_viewer_main.xml new file mode 100644 index 0000000..9147032 --- /dev/null +++ b/MinimalBible/src/main/res/layout/fragment_viewer_main.xml @@ -0,0 +1,12 @@ + + + + + diff --git a/MinimalBible/src/main/res/layout/list_download_items.xml b/MinimalBible/src/main/res/layout/list_download_items.xml new file mode 100644 index 0000000..159f480 --- /dev/null +++ b/MinimalBible/src/main/res/layout/list_download_items.xml @@ -0,0 +1,45 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/MinimalBible/src/main/res/menu/download.xml b/MinimalBible/src/main/res/menu/download.xml new file mode 100644 index 0000000..2959a22 --- /dev/null +++ b/MinimalBible/src/main/res/menu/download.xml @@ -0,0 +1,16 @@ + + + + + + diff --git a/MinimalBible/src/main/res/menu/downloader.xml b/MinimalBible/src/main/res/menu/downloader.xml new file mode 100644 index 0000000..d122a4b --- /dev/null +++ b/MinimalBible/src/main/res/menu/downloader.xml @@ -0,0 +1,9 @@ + + + + + diff --git a/MinimalBible/src/main/res/menu/global.xml b/MinimalBible/src/main/res/menu/global.xml new file mode 100644 index 0000000..9e8236e --- /dev/null +++ b/MinimalBible/src/main/res/menu/global.xml @@ -0,0 +1,10 @@ + + + + + diff --git a/MinimalBible/src/main/res/menu/main.xml b/MinimalBible/src/main/res/menu/main.xml new file mode 100644 index 0000000..3f073e2 --- /dev/null +++ b/MinimalBible/src/main/res/menu/main.xml @@ -0,0 +1,17 @@ + + + + + + + diff --git a/MinimalBible/src/main/res/values-sw600dp/dimens.xml b/MinimalBible/src/main/res/values-sw600dp/dimens.xml new file mode 100644 index 0000000..c876987 --- /dev/null +++ b/MinimalBible/src/main/res/values-sw600dp/dimens.xml @@ -0,0 +1,8 @@ + + + + + diff --git a/MinimalBible/src/main/res/values-sw720dp-land/dimens.xml b/MinimalBible/src/main/res/values-sw720dp-land/dimens.xml new file mode 100644 index 0000000..0df3067 --- /dev/null +++ b/MinimalBible/src/main/res/values-sw720dp-land/dimens.xml @@ -0,0 +1,9 @@ + + + + 128dp + + diff --git a/MinimalBible/src/main/res/values-v11/styles.xml b/MinimalBible/src/main/res/values-v11/styles.xml new file mode 100644 index 0000000..8da6055 --- /dev/null +++ b/MinimalBible/src/main/res/values-v11/styles.xml @@ -0,0 +1,17 @@ + + + + + + + + \ No newline at end of file diff --git a/MinimalBible/src/main/res/values-v14/styles.xml b/MinimalBible/src/main/res/values-v14/styles.xml new file mode 100644 index 0000000..77ec9c2 --- /dev/null +++ b/MinimalBible/src/main/res/values-v14/styles.xml @@ -0,0 +1,18 @@ + + + + + + + + \ No newline at end of file diff --git a/MinimalBible/src/main/res/values-v19/styles.xml b/MinimalBible/src/main/res/values-v19/styles.xml new file mode 100644 index 0000000..cc0a9e8 --- /dev/null +++ b/MinimalBible/src/main/res/values-v19/styles.xml @@ -0,0 +1,20 @@ + + + + + + + + \ No newline at end of file diff --git a/MinimalBible/src/main/res/values-w820dp/dimens.xml b/MinimalBible/src/main/res/values-w820dp/dimens.xml new file mode 100644 index 0000000..f3e7020 --- /dev/null +++ b/MinimalBible/src/main/res/values-w820dp/dimens.xml @@ -0,0 +1,10 @@ + + + + 64dp + + diff --git a/MinimalBible/src/main/res/values/attrs.xml b/MinimalBible/src/main/res/values/attrs.xml new file mode 100644 index 0000000..7e9736d --- /dev/null +++ b/MinimalBible/src/main/res/values/attrs.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/MinimalBible/src/main/res/values/colors.xml b/MinimalBible/src/main/res/values/colors.xml new file mode 100644 index 0000000..ab5b77e --- /dev/null +++ b/MinimalBible/src/main/res/values/colors.xml @@ -0,0 +1,5 @@ + + + #dddddd + #dddddd + diff --git a/MinimalBible/src/main/res/values/dimens.xml b/MinimalBible/src/main/res/values/dimens.xml new file mode 100644 index 0000000..6a1d4c2 --- /dev/null +++ b/MinimalBible/src/main/res/values/dimens.xml @@ -0,0 +1,13 @@ + + + + 16dp + 16dp + + + 240dp + + diff --git a/MinimalBible/src/main/res/values/html_strings.xml b/MinimalBible/src/main/res/values/html_strings.xml new file mode 100644 index 0000000..a228ccf --- /dev/null +++ b/MinimalBible/src/main/res/values/html_strings.xml @@ -0,0 +1,4 @@ + + + file:///android_asset/book.html + \ No newline at end of file diff --git a/MinimalBible/src/main/res/values/strings.xml b/MinimalBible/src/main/res/values/strings.xml new file mode 100644 index 0000000..f6b6bac --- /dev/null +++ b/MinimalBible/src/main/res/values/strings.xml @@ -0,0 +1,15 @@ + + + + Minimal Bible + Section 1 + Section 2 + Section 3 + Open navigation drawer + Close navigation drawer + Example action + Settings + Downloads + DownloadActivity + + diff --git a/MinimalBible/src/main/res/values/styles.xml b/MinimalBible/src/main/res/values/styles.xml new file mode 100644 index 0000000..ff4c790 --- /dev/null +++ b/MinimalBible/src/main/res/values/styles.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + diff --git a/MinimalBible/src/test/AndroidManifest.xml b/MinimalBible/src/test/AndroidManifest.xml new file mode 100644 index 0000000..cce9973 --- /dev/null +++ b/MinimalBible/src/test/AndroidManifest.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + diff --git a/MinimalBible/src/test/java/org/bspeice/minimalbible/test/MinimalBibleModulesTest.java b/MinimalBible/src/test/java/org/bspeice/minimalbible/test/MinimalBibleModulesTest.java new file mode 100644 index 0000000..c356ded --- /dev/null +++ b/MinimalBible/src/test/java/org/bspeice/minimalbible/test/MinimalBibleModulesTest.java @@ -0,0 +1,20 @@ +package org.bspeice.minimalbible.test; + +import org.bspeice.minimalbible.MinimalBible; +import org.bspeice.minimalbible.MinimalBibleModules; + +import dagger.Module; + +/** + * Master module for MinimalBible + */ +@Module( + injects = { + MinimalBible.class + }, + includes = { + MinimalBibleModules.class + } +) +public class MinimalBibleModulesTest { +} diff --git a/MinimalBible/src/test/java/org/bspeice/minimalbible/test/MinimalBibleTest.java b/MinimalBible/src/test/java/org/bspeice/minimalbible/test/MinimalBibleTest.java new file mode 100644 index 0000000..0f54763 --- /dev/null +++ b/MinimalBible/src/test/java/org/bspeice/minimalbible/test/MinimalBibleTest.java @@ -0,0 +1,75 @@ +package org.bspeice.minimalbible.test; + +import android.content.Context; + +import org.bspeice.minimalbible.MinimalBible; + +import dagger.ObjectGraph; + +public class MinimalBibleTest extends MinimalBible { + + /** + * The graph used by Dagger to track dependencies + */ + private ObjectGraph graph; + + /** + * A singleton reference to the Application currently being run. + * Used mostly so we have a fixed point to get the App Context from + */ + private static MinimalBibleTest instance; + + private String TAG = "MinimalBibleTest"; + + /** + * Create the application, and persist the application Context + */ + public MinimalBibleTest() { + instance = this; + } + + /** + * Get the Application Context. Please note, all attempts to get the App Context should come + * through here, and please be sure that the Application won't satisfy what you need. + * @return The Application Context + */ + public static Context getAppContext() { + return instance; + } + + /** + * Get the Application, rather than just the Application Context. You likely should be using + * this, rather than {@link #getAppContext()} + * @return The MinimalBible {@link android.app.Application} object + */ + public static MinimalBibleTest getApplication() { + return instance; + } + + /** + * Create the {@link android.app.Application}. Responsible for building and + * holding on to the master ObjectGraph. + */ + @Override + public void onCreate() { + super.onCreate(); + //TODO: Is this necessary? + inject(this); + } + + /** + * Inject a Dagger object + * @param o The object to be injected + */ + @Override + public void inject(Object o) { + getObjGraph().inject(o); + } + + public ObjectGraph getObjGraph() { + if (graph == null) { + graph = ObjectGraph.create(MinimalBibleModulesTest.class); + } + return graph; + } +} diff --git a/MinimalBible/src/test/java/org/bspeice/minimalbible/test/activities/downloader/BookListFragmentTest.java b/MinimalBible/src/test/java/org/bspeice/minimalbible/test/activities/downloader/BookListFragmentTest.java new file mode 100644 index 0000000..25b859c --- /dev/null +++ b/MinimalBible/src/test/java/org/bspeice/minimalbible/test/activities/downloader/BookListFragmentTest.java @@ -0,0 +1,117 @@ +package org.bspeice.minimalbible.test.activities.downloader; + +import android.os.Bundle; +import android.os.Handler; +import android.os.Looper; +import android.support.v4.app.Fragment; +import android.support.v4.app.FragmentManager; +import android.test.ActivityInstrumentationTestCase2; + +import org.bspeice.minimalbible.MinimalBible; +import org.bspeice.minimalbible.activities.downloader.BookListFragment; +import org.bspeice.minimalbible.activities.downloader.DownloadActivity; +import org.bspeice.minimalbible.activities.downloader.DownloadPrefs; +import org.bspeice.minimalbible.test.MinimalBibleModulesTest; +import org.crosswire.jsword.book.BookCategory; + +import java.util.concurrent.CountDownLatch; + +import dagger.Module; +import de.devland.esperandro.Esperandro; + +/** + * Created by bspeice on 6/23/14. + */ +public class BookListFragmentTest extends ActivityInstrumentationTestCase2 { + + @Module(injects = TestDialogDisplayedIfFirstTimeFragment.class, + addsTo = MinimalBibleModulesTest.class + ) + protected static class BookListFragmentTestModule{} + + public BookListFragmentTest() { + super(DownloadActivity.class); + } + + FragmentManager mFragmentManager; + + public void setUp() throws Exception { + super.setUp(); + + mFragmentManager = getActivity().getSupportFragmentManager(); + assertNotNull(mFragmentManager); + } + + + public F startFragment(F fragment) { + try { + mFragmentManager.beginTransaction() + .replace(android.R.id.content, fragment) + .commit(); + } catch (Exception e) { + e.printStackTrace(); + } + final CountDownLatch signal = new CountDownLatch(1); + + new Handler(Looper.getMainLooper()).post(new Runnable() { + @Override + public void run() { + mFragmentManager.executePendingTransactions(); + signal.countDown(); + } + }); + try { + signal.await(); + } catch (InterruptedException e) { + e.printStackTrace(); + } + return (F)(mFragmentManager.findFragmentById(android.R.id.content)); + } + + + protected class TestDialogDisplayedIfFirstTimeFragment extends BookListFragment { + /** + * If the refresh dialog is blank after calling display, it must be showing the warning + * @return Whether the warning dialog is showing + */ + public boolean callDisplayModules(DownloadPrefs prefs) { + // Inject the new preferences... + this.downloadPrefs = prefs; + displayModules(); + return (refreshDialog == null); + } + + public void setArgs(BookCategory c) { + Bundle args = new Bundle(); + args.putString(ARG_BOOK_CATEGORY, c.toString()); + this.setArguments(args); + } + } + + public void testDialogDisplayedIfFirstTime() { + ((MinimalBible)getActivity().getApplication()).plusObjGraph(BookListFragmentTestModule.class); + TestDialogDisplayedIfFirstTimeFragment f = new TestDialogDisplayedIfFirstTimeFragment(); + f.setArgs(BookCategory.BIBLE); + startFragment(f); + + DownloadPrefs prefs = Esperandro.getPreferences(DownloadPrefs.class, getActivity()); + prefs.hasShownDownloadDialog(false); + + assertNotNull(f); + assertTrue(f.callDisplayModules(Esperandro.getPreferences(DownloadPrefs.class, getActivity()))); + } + + public void testRefreshDisplayedAfterFirstTime() { + ((MinimalBible)getActivity().getApplication()).plusObjGraph(BookListFragmentTestModule.class); + + TestDialogDisplayedIfFirstTimeFragment f = new TestDialogDisplayedIfFirstTimeFragment(); + f.setArgs(BookCategory.BIBLE); + startFragment(f); + + DownloadPrefs prefs = Esperandro.getPreferences(DownloadPrefs.class, getActivity()); + prefs.hasShownDownloadDialog(true); + + assertNotNull(f); + assertFalse(f.callDisplayModules(Esperandro.getPreferences(DownloadPrefs.class, getActivity()))); + } +} diff --git a/README.md b/README.md new file mode 100644 index 0000000..a3332c1 --- /dev/null +++ b/README.md @@ -0,0 +1,7 @@ +MinimalBible +============ + +A Bible app for android designed to be more focused in both UI and feature set. If you want to keep +track of the ongoing progress, check out the blog [over here](http://minimalbible.github.io/)! + +![Travis Build Status](https://travis-ci.org/MinimalBible/MinimalBible.svg?branch=master) \ No newline at end of file diff --git a/app/.gitignore b/app/.gitignore new file mode 100644 index 0000000..796b96d --- /dev/null +++ b/app/.gitignore @@ -0,0 +1 @@ +/build diff --git a/app/app.iml b/app/app.iml new file mode 100644 index 0000000..3e84ead --- /dev/null +++ b/app/app.iml @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/build.gradle b/app/build.gradle new file mode 100644 index 0000000..35c56a1 --- /dev/null +++ b/app/build.gradle @@ -0,0 +1,25 @@ +apply plugin: 'com.android.application' + +android { + compileSdkVersion 'android-L' + buildToolsVersion "20.0.0" + + defaultConfig { + applicationId "org.bspeice.minimalbible" + minSdkVersion 8 + targetSdkVersion 'L' + versionCode 1 + versionName "1.0" + } + buildTypes { + release { + runProguard false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + } +} + +dependencies { + compile fileTree(dir: 'libs', include: ['*.jar']) + compile 'com.android.support:appcompat-v7:19.+' +} diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro new file mode 100644 index 0000000..4315e8b --- /dev/null +++ b/app/proguard-rules.pro @@ -0,0 +1,17 @@ +# Add project specific ProGuard rules here. +# By default, the flags in this file are appended to flags specified +# in C:\Users\Bradlee Speice\AppData\Local\Android\android-studio\sdk/tools/proguard/proguard-android.txt +# You can edit the include path and order by changing the proguardFiles +# directive in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# Add any project specific keep options here: + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} diff --git a/app/src/androidTest/java/org/bspeice/minimalbible/ApplicationTest.java b/app/src/androidTest/java/org/bspeice/minimalbible/ApplicationTest.java new file mode 100644 index 0000000..b86e77e --- /dev/null +++ b/app/src/androidTest/java/org/bspeice/minimalbible/ApplicationTest.java @@ -0,0 +1,13 @@ +package org.bspeice.minimalbible; + +import android.app.Application; +import android.test.ApplicationTestCase; + +/** + * Testing Fundamentals + */ +public class ApplicationTest extends ApplicationTestCase { + public ApplicationTest() { + super(Application.class); + } +} \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..ecfdf8b --- /dev/null +++ b/app/src/main/AndroidManifest.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + diff --git a/app/src/main/java/org/bspeice/minimalbible/DownloadActivity.java b/app/src/main/java/org/bspeice/minimalbible/DownloadActivity.java new file mode 100644 index 0000000..7cfaafb --- /dev/null +++ b/app/src/main/java/org/bspeice/minimalbible/DownloadActivity.java @@ -0,0 +1,146 @@ +package org.bspeice.minimalbible; + +import android.app.Activity; +import android.support.v7.app.ActionBarActivity; +import android.support.v7.app.ActionBar; +import android.support.v4.app.Fragment; +import android.support.v4.app.FragmentManager; +import android.content.Context; +import android.os.Build; +import android.os.Bundle; +import android.view.Gravity; +import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuItem; +import android.view.View; +import android.view.ViewGroup; +import android.support.v4.widget.DrawerLayout; +import android.widget.ArrayAdapter; +import android.widget.TextView; + + +public class DownloadActivity extends ActionBarActivity + implements NavigationDrawerFragment.NavigationDrawerCallbacks { + + /** + * Fragment managing the behaviors, interactions and presentation of the navigation drawer. + */ + private NavigationDrawerFragment mNavigationDrawerFragment; + + /** + * Used to store the last screen title. For use in {@link #restoreActionBar()}. + */ + private CharSequence mTitle; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_download); + + mNavigationDrawerFragment = (NavigationDrawerFragment) + getSupportFragmentManager().findFragmentById(R.id.navigation_drawer); + mTitle = getTitle(); + + // Set up the drawer. + mNavigationDrawerFragment.setUp( + R.id.navigation_drawer, + (DrawerLayout) findViewById(R.id.drawer_layout)); + } + + @Override + public void onNavigationDrawerItemSelected(int position) { + // update the main content by replacing fragments + FragmentManager fragmentManager = getSupportFragmentManager(); + fragmentManager.beginTransaction() + .replace(R.id.container, PlaceholderFragment.newInstance(position + 1)) + .commit(); + } + + public void onSectionAttached(int number) { + switch (number) { + case 1: + mTitle = getString(R.string.title_section1); + break; + case 2: + mTitle = getString(R.string.title_section2); + break; + case 3: + mTitle = getString(R.string.title_section3); + break; + } + } + + public void restoreActionBar() { + ActionBar actionBar = getSupportActionBar(); + actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD); + actionBar.setDisplayShowTitleEnabled(true); + actionBar.setTitle(mTitle); + } + + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + if (!mNavigationDrawerFragment.isDrawerOpen()) { + // Only show items in the action bar relevant to this screen + // if the drawer is not showing. Otherwise, let the drawer + // decide what to show in the action bar. + getMenuInflater().inflate(R.menu.download, menu); + restoreActionBar(); + return true; + } + return super.onCreateOptionsMenu(menu); + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + // Handle action bar item clicks here. The action bar will + // automatically handle clicks on the Home/Up button, so long + // as you specify a parent activity in AndroidManifest.xml. + int id = item.getItemId(); + if (id == R.id.action_settings) { + return true; + } + return super.onOptionsItemSelected(item); + } + + /** + * A placeholder fragment containing a simple view. + */ + public static class PlaceholderFragment extends Fragment { + /** + * The fragment argument representing the section number for this + * fragment. + */ + private static final String ARG_SECTION_NUMBER = "section_number"; + + /** + * Returns a new instance of this fragment for the given section + * number. + */ + public static PlaceholderFragment newInstance(int sectionNumber) { + PlaceholderFragment fragment = new PlaceholderFragment(); + Bundle args = new Bundle(); + args.putInt(ARG_SECTION_NUMBER, sectionNumber); + fragment.setArguments(args); + return fragment; + } + + public PlaceholderFragment() { + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + View rootView = inflater.inflate(R.layout.fragment_download, container, false); + return rootView; + } + + @Override + public void onAttach(Activity activity) { + super.onAttach(activity); + ((DownloadActivity) activity).onSectionAttached( + getArguments().getInt(ARG_SECTION_NUMBER)); + } + } + +} diff --git a/app/src/main/java/org/bspeice/minimalbible/NavigationDrawerFragment.java b/app/src/main/java/org/bspeice/minimalbible/NavigationDrawerFragment.java new file mode 100644 index 0000000..94b5dcd --- /dev/null +++ b/app/src/main/java/org/bspeice/minimalbible/NavigationDrawerFragment.java @@ -0,0 +1,282 @@ +package org.bspeice.minimalbible; + +import android.support.v7.app.ActionBarActivity; +import android.app.Activity; +import android.support.v7.app.ActionBar; +import android.support.v4.app.Fragment; +import android.support.v4.app.ActionBarDrawerToggle; +import android.support.v4.view.GravityCompat; +import android.support.v4.widget.DrawerLayout; +import android.content.SharedPreferences; +import android.content.res.Configuration; +import android.os.Bundle; +import android.preference.PreferenceManager; +import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuInflater; +import android.view.MenuItem; +import android.view.View; +import android.view.ViewGroup; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.ListView; +import android.widget.Toast; + +/** + * Fragment used for managing interactions for and presentation of a navigation drawer. + * See the + * design guidelines for a complete explanation of the behaviors implemented here. + */ +public class NavigationDrawerFragment extends Fragment { + + /** + * Remember the position of the selected item. + */ + private static final String STATE_SELECTED_POSITION = "selected_navigation_drawer_position"; + + /** + * Per the design guidelines, you should show the drawer on launch until the user manually + * expands it. This shared preference tracks this. + */ + private static final String PREF_USER_LEARNED_DRAWER = "navigation_drawer_learned"; + + /** + * A pointer to the current callbacks instance (the Activity). + */ + private NavigationDrawerCallbacks mCallbacks; + + /** + * Helper component that ties the action bar to the navigation drawer. + */ + private ActionBarDrawerToggle mDrawerToggle; + + private DrawerLayout mDrawerLayout; + private ListView mDrawerListView; + private View mFragmentContainerView; + + private int mCurrentSelectedPosition = 0; + private boolean mFromSavedInstanceState; + private boolean mUserLearnedDrawer; + + public NavigationDrawerFragment() { + } + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + // Read in the flag indicating whether or not the user has demonstrated awareness of the + // drawer. See PREF_USER_LEARNED_DRAWER for details. + SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(getActivity()); + mUserLearnedDrawer = sp.getBoolean(PREF_USER_LEARNED_DRAWER, false); + + if (savedInstanceState != null) { + mCurrentSelectedPosition = savedInstanceState.getInt(STATE_SELECTED_POSITION); + mFromSavedInstanceState = true; + } + + // Select either the default item (0) or the last selected item. + selectItem(mCurrentSelectedPosition); + } + + @Override + public void onActivityCreated (Bundle savedInstanceState) { + super.onActivityCreated(savedInstanceState); + // Indicate that this fragment would like to influence the set of actions in the action bar. + setHasOptionsMenu(true); + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + mDrawerListView = (ListView) inflater.inflate( + R.layout.fragment_navigation_drawer, container, false); + mDrawerListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + selectItem(position); + } + }); + mDrawerListView.setAdapter(new ArrayAdapter( + getActionBar().getThemedContext(), + android.R.layout.simple_list_item_1, + android.R.id.text1, + new String[]{ + getString(R.string.title_section1), + getString(R.string.title_section2), + getString(R.string.title_section3), + })); + mDrawerListView.setItemChecked(mCurrentSelectedPosition, true); + return mDrawerListView; + } + + public boolean isDrawerOpen() { + return mDrawerLayout != null && mDrawerLayout.isDrawerOpen(mFragmentContainerView); + } + + /** + * Users of this fragment must call this method to set up the navigation drawer interactions. + * + * @param fragmentId The android:id of this fragment in its activity's layout. + * @param drawerLayout The DrawerLayout containing this fragment's UI. + */ + public void setUp(int fragmentId, DrawerLayout drawerLayout) { + mFragmentContainerView = getActivity().findViewById(fragmentId); + mDrawerLayout = drawerLayout; + + // set a custom shadow that overlays the main content when the drawer opens + mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START); + // set up the drawer's list view with items and click listener + + ActionBar actionBar = getActionBar(); + actionBar.setDisplayHomeAsUpEnabled(true); + actionBar.setHomeButtonEnabled(true); + + // ActionBarDrawerToggle ties together the the proper interactions + // between the navigation drawer and the action bar app icon. + mDrawerToggle = new ActionBarDrawerToggle( + getActivity(), /* host Activity */ + mDrawerLayout, /* DrawerLayout object */ + R.drawable.ic_drawer, /* nav drawer image to replace 'Up' caret */ + R.string.navigation_drawer_open, /* "open drawer" description for accessibility */ + R.string.navigation_drawer_close /* "close drawer" description for accessibility */ + ) { + @Override + public void onDrawerClosed(View drawerView) { + super.onDrawerClosed(drawerView); + if (!isAdded()) { + return; + } + + getActivity().supportInvalidateOptionsMenu(); // calls onPrepareOptionsMenu() + } + + @Override + public void onDrawerOpened(View drawerView) { + super.onDrawerOpened(drawerView); + if (!isAdded()) { + return; + } + + if (!mUserLearnedDrawer) { + // The user manually opened the drawer; store this flag to prevent auto-showing + // the navigation drawer automatically in the future. + mUserLearnedDrawer = true; + SharedPreferences sp = PreferenceManager + .getDefaultSharedPreferences(getActivity()); + sp.edit().putBoolean(PREF_USER_LEARNED_DRAWER, true).commit(); + } + + getActivity().supportInvalidateOptionsMenu(); // calls onPrepareOptionsMenu() + } + }; + + // If the user hasn't 'learned' about the drawer, open it to introduce them to the drawer, + // per the navigation drawer design guidelines. + if (!mUserLearnedDrawer && !mFromSavedInstanceState) { + mDrawerLayout.openDrawer(mFragmentContainerView); + } + + // Defer code dependent on restoration of previous instance state. + mDrawerLayout.post(new Runnable() { + @Override + public void run() { + mDrawerToggle.syncState(); + } + }); + + mDrawerLayout.setDrawerListener(mDrawerToggle); + } + + private void selectItem(int position) { + mCurrentSelectedPosition = position; + if (mDrawerListView != null) { + mDrawerListView.setItemChecked(position, true); + } + if (mDrawerLayout != null) { + mDrawerLayout.closeDrawer(mFragmentContainerView); + } + if (mCallbacks != null) { + mCallbacks.onNavigationDrawerItemSelected(position); + } + } + + @Override + public void onAttach(Activity activity) { + super.onAttach(activity); + try { + mCallbacks = (NavigationDrawerCallbacks) activity; + } catch (ClassCastException e) { + throw new ClassCastException("Activity must implement NavigationDrawerCallbacks."); + } + } + + @Override + public void onDetach() { + super.onDetach(); + mCallbacks = null; + } + + @Override + public void onSaveInstanceState(Bundle outState) { + super.onSaveInstanceState(outState); + outState.putInt(STATE_SELECTED_POSITION, mCurrentSelectedPosition); + } + + @Override + public void onConfigurationChanged(Configuration newConfig) { + super.onConfigurationChanged(newConfig); + // Forward the new configuration the drawer toggle component. + mDrawerToggle.onConfigurationChanged(newConfig); + } + + @Override + public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { + // If the drawer is open, show the global app actions in the action bar. See also + // showGlobalContextActionBar, which controls the top-left area of the action bar. + if (mDrawerLayout != null && isDrawerOpen()) { + inflater.inflate(R.menu.global, menu); + showGlobalContextActionBar(); + } + super.onCreateOptionsMenu(menu, inflater); + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + if (mDrawerToggle.onOptionsItemSelected(item)) { + return true; + } + + if (item.getItemId() == R.id.action_example) { + Toast.makeText(getActivity(), "Example action.", Toast.LENGTH_SHORT).show(); + return true; + } + + return super.onOptionsItemSelected(item); + } + + /** + * Per the navigation drawer design guidelines, updates the action bar to show the global app + * 'context', rather than just what's in the current screen. + */ + private void showGlobalContextActionBar() { + ActionBar actionBar = getActionBar(); + actionBar.setDisplayShowTitleEnabled(true); + actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD); + actionBar.setTitle(R.string.app_name); + } + + private ActionBar getActionBar() { + return ((ActionBarActivity) getActivity()).getSupportActionBar(); + } + + /** + * Callbacks interface that all activities using this fragment must implement. + */ + public static interface NavigationDrawerCallbacks { + /** + * Called when an item in the navigation drawer is selected. + */ + void onNavigationDrawerItemSelected(int position); + } +} diff --git a/app/src/main/res/drawable-hdpi/drawer_shadow.9.png b/app/src/main/res/drawable-hdpi/drawer_shadow.9.png new file mode 100644 index 0000000..236bff5 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/drawer_shadow.9.png differ diff --git a/app/src/main/res/drawable-hdpi/ic_drawer.png b/app/src/main/res/drawable-hdpi/ic_drawer.png new file mode 100644 index 0000000..c59f601 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_drawer.png differ diff --git a/app/src/main/res/drawable-hdpi/ic_launcher.png b/app/src/main/res/drawable-hdpi/ic_launcher.png new file mode 100644 index 0000000..96a442e Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_launcher.png differ diff --git a/app/src/main/res/drawable-mdpi/drawer_shadow.9.png b/app/src/main/res/drawable-mdpi/drawer_shadow.9.png new file mode 100644 index 0000000..ffe3a28 Binary files /dev/null and b/app/src/main/res/drawable-mdpi/drawer_shadow.9.png differ diff --git a/app/src/main/res/drawable-mdpi/ic_drawer.png b/app/src/main/res/drawable-mdpi/ic_drawer.png new file mode 100644 index 0000000..1ed2c56 Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_drawer.png differ diff --git a/app/src/main/res/drawable-mdpi/ic_launcher.png b/app/src/main/res/drawable-mdpi/ic_launcher.png new file mode 100644 index 0000000..359047d Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_launcher.png differ diff --git a/app/src/main/res/drawable-xhdpi/drawer_shadow.9.png b/app/src/main/res/drawable-xhdpi/drawer_shadow.9.png new file mode 100644 index 0000000..fabe9d9 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/drawer_shadow.9.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_drawer.png b/app/src/main/res/drawable-xhdpi/ic_drawer.png new file mode 100644 index 0000000..a5fa74d Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_drawer.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_launcher.png b/app/src/main/res/drawable-xhdpi/ic_launcher.png new file mode 100644 index 0000000..71c6d76 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_launcher.png differ diff --git a/app/src/main/res/drawable-xxhdpi/drawer_shadow.9.png b/app/src/main/res/drawable-xxhdpi/drawer_shadow.9.png new file mode 100644 index 0000000..b91e9d7 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/drawer_shadow.9.png differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_drawer.png b/app/src/main/res/drawable-xxhdpi/ic_drawer.png new file mode 100644 index 0000000..9c4685d Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_drawer.png differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_launcher.png b/app/src/main/res/drawable-xxhdpi/ic_launcher.png new file mode 100644 index 0000000..4df1894 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_launcher.png differ diff --git a/app/src/main/res/layout/activity_download.xml b/app/src/main/res/layout/activity_download.xml new file mode 100644 index 0000000..27fabd6 --- /dev/null +++ b/app/src/main/res/layout/activity_download.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + diff --git a/app/src/main/res/layout/fragment_download.xml b/app/src/main/res/layout/fragment_download.xml new file mode 100644 index 0000000..d0d3abd --- /dev/null +++ b/app/src/main/res/layout/fragment_download.xml @@ -0,0 +1,16 @@ + + + + + diff --git a/app/src/main/res/layout/fragment_navigation_drawer.xml b/app/src/main/res/layout/fragment_navigation_drawer.xml new file mode 100644 index 0000000..5250946 --- /dev/null +++ b/app/src/main/res/layout/fragment_navigation_drawer.xml @@ -0,0 +1,9 @@ + diff --git a/app/src/main/res/menu/download.xml b/app/src/main/res/menu/download.xml new file mode 100644 index 0000000..ae20160 --- /dev/null +++ b/app/src/main/res/menu/download.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/menu/global.xml b/app/src/main/res/menu/global.xml new file mode 100644 index 0000000..48a4ed0 --- /dev/null +++ b/app/src/main/res/menu/global.xml @@ -0,0 +1,7 @@ + + + diff --git a/app/src/main/res/values-v21/styles.xml b/app/src/main/res/values-v21/styles.xml new file mode 100644 index 0000000..dba3c41 --- /dev/null +++ b/app/src/main/res/values-v21/styles.xml @@ -0,0 +1,5 @@ + + + + diff --git a/app/src/main/res/values-w820dp/dimens.xml b/app/src/main/res/values-w820dp/dimens.xml new file mode 100644 index 0000000..63fc816 --- /dev/null +++ b/app/src/main/res/values-w820dp/dimens.xml @@ -0,0 +1,6 @@ + + + 64dp + diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml new file mode 100644 index 0000000..074e7a0 --- /dev/null +++ b/app/src/main/res/values/dimens.xml @@ -0,0 +1,9 @@ + + + 16dp + 16dp + + + 240dp + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml new file mode 100644 index 0000000..12187c7 --- /dev/null +++ b/app/src/main/res/values/strings.xml @@ -0,0 +1,13 @@ + + + + MinimalBible + Section 1 + Section 2 + Section 3 + Open navigation drawer + Close navigation drawer + Example action + Settings + + diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml new file mode 100644 index 0000000..766ab99 --- /dev/null +++ b/app/src/main/res/values/styles.xml @@ -0,0 +1,8 @@ + + + + + + diff --git a/appcompat_v7/.classpath b/appcompat_v7/.classpath new file mode 100644 index 0000000..7bc01d9 --- /dev/null +++ b/appcompat_v7/.classpath @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/appcompat_v7/.gitignore b/appcompat_v7/.gitignore new file mode 100644 index 0000000..a02fbbe --- /dev/null +++ b/appcompat_v7/.gitignore @@ -0,0 +1,2 @@ +/gen +/bin diff --git a/appcompat_v7/.project b/appcompat_v7/.project new file mode 100644 index 0000000..957d33d --- /dev/null +++ b/appcompat_v7/.project @@ -0,0 +1,33 @@ + + + android-support-v7-appcompat + + + + + + com.android.ide.eclipse.adt.ResourceManagerBuilder + + + + + com.android.ide.eclipse.adt.PreCompilerBuilder + + + + + org.eclipse.jdt.core.javabuilder + + + + + com.android.ide.eclipse.adt.ApkBuilder + + + + + + com.android.ide.eclipse.adt.AndroidNature + org.eclipse.jdt.core.javanature + + diff --git a/appcompat_v7/.settings/org.eclipse.jdt.core.prefs b/appcompat_v7/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..48ab4c6 --- /dev/null +++ b/appcompat_v7/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,4 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 +org.eclipse.jdt.core.compiler.compliance=1.6 +org.eclipse.jdt.core.compiler.source=1.6 diff --git a/appcompat_v7/AndroidManifest.xml b/appcompat_v7/AndroidManifest.xml new file mode 100644 index 0000000..dac4cb2 --- /dev/null +++ b/appcompat_v7/AndroidManifest.xml @@ -0,0 +1,20 @@ + + + + + + diff --git a/appcompat_v7/README.txt b/appcompat_v7/README.txt new file mode 100644 index 0000000..8e8de05 --- /dev/null +++ b/appcompat_v7/README.txt @@ -0,0 +1,10 @@ +Library Project including compatibility ActionBar. + +This can be used by an Android project to provide +access to ActionBar on applications running on API 7+. + +There is technically no source, but the src folder is necessary +to ensure that the build system works. The content is actually +located in libs/android-support-v7-appcompat.jar. +The accompanying resources must also be included in the application. + diff --git a/appcompat_v7/bin/AndroidManifest.xml b/appcompat_v7/bin/AndroidManifest.xml new file mode 100644 index 0000000..dac4cb2 --- /dev/null +++ b/appcompat_v7/bin/AndroidManifest.xml @@ -0,0 +1,20 @@ + + + + + + diff --git a/appcompat_v7/bin/classes/.readme b/appcompat_v7/bin/classes/.readme new file mode 100644 index 0000000..4bcebad --- /dev/null +++ b/appcompat_v7/bin/classes/.readme @@ -0,0 +1,2 @@ +This hidden file is there to ensure there is an src folder. +Once we support binary library this will go away. \ No newline at end of file diff --git a/appcompat_v7/bin/classes/android/support/v7/appcompat/BuildConfig.class b/appcompat_v7/bin/classes/android/support/v7/appcompat/BuildConfig.class new file mode 100644 index 0000000..6963daa Binary files /dev/null and b/appcompat_v7/bin/classes/android/support/v7/appcompat/BuildConfig.class differ diff --git a/appcompat_v7/bin/classes/android/support/v7/appcompat/R$anim.class b/appcompat_v7/bin/classes/android/support/v7/appcompat/R$anim.class new file mode 100644 index 0000000..c7b3870 Binary files /dev/null and b/appcompat_v7/bin/classes/android/support/v7/appcompat/R$anim.class differ diff --git a/appcompat_v7/bin/classes/android/support/v7/appcompat/R$attr.class b/appcompat_v7/bin/classes/android/support/v7/appcompat/R$attr.class new file mode 100644 index 0000000..9fc2933 Binary files /dev/null and b/appcompat_v7/bin/classes/android/support/v7/appcompat/R$attr.class differ diff --git a/appcompat_v7/bin/classes/android/support/v7/appcompat/R$bool.class b/appcompat_v7/bin/classes/android/support/v7/appcompat/R$bool.class new file mode 100644 index 0000000..b3ae1c9 Binary files /dev/null and b/appcompat_v7/bin/classes/android/support/v7/appcompat/R$bool.class differ diff --git a/appcompat_v7/bin/classes/android/support/v7/appcompat/R$color.class b/appcompat_v7/bin/classes/android/support/v7/appcompat/R$color.class new file mode 100644 index 0000000..be91728 Binary files /dev/null and b/appcompat_v7/bin/classes/android/support/v7/appcompat/R$color.class differ diff --git a/appcompat_v7/bin/classes/android/support/v7/appcompat/R$dimen.class b/appcompat_v7/bin/classes/android/support/v7/appcompat/R$dimen.class new file mode 100644 index 0000000..c796cac Binary files /dev/null and b/appcompat_v7/bin/classes/android/support/v7/appcompat/R$dimen.class differ diff --git a/appcompat_v7/bin/classes/android/support/v7/appcompat/R$drawable.class b/appcompat_v7/bin/classes/android/support/v7/appcompat/R$drawable.class new file mode 100644 index 0000000..57152b5 Binary files /dev/null and b/appcompat_v7/bin/classes/android/support/v7/appcompat/R$drawable.class differ diff --git a/appcompat_v7/bin/classes/android/support/v7/appcompat/R$id.class b/appcompat_v7/bin/classes/android/support/v7/appcompat/R$id.class new file mode 100644 index 0000000..6589738 Binary files /dev/null and b/appcompat_v7/bin/classes/android/support/v7/appcompat/R$id.class differ diff --git a/appcompat_v7/bin/classes/android/support/v7/appcompat/R$integer.class b/appcompat_v7/bin/classes/android/support/v7/appcompat/R$integer.class new file mode 100644 index 0000000..300248a Binary files /dev/null and b/appcompat_v7/bin/classes/android/support/v7/appcompat/R$integer.class differ diff --git a/appcompat_v7/bin/classes/android/support/v7/appcompat/R$layout.class b/appcompat_v7/bin/classes/android/support/v7/appcompat/R$layout.class new file mode 100644 index 0000000..5b0806d Binary files /dev/null and b/appcompat_v7/bin/classes/android/support/v7/appcompat/R$layout.class differ diff --git a/appcompat_v7/bin/classes/android/support/v7/appcompat/R$string.class b/appcompat_v7/bin/classes/android/support/v7/appcompat/R$string.class new file mode 100644 index 0000000..d9ce887 Binary files /dev/null and b/appcompat_v7/bin/classes/android/support/v7/appcompat/R$string.class differ diff --git a/appcompat_v7/bin/classes/android/support/v7/appcompat/R$style.class b/appcompat_v7/bin/classes/android/support/v7/appcompat/R$style.class new file mode 100644 index 0000000..d84a6c8 Binary files /dev/null and b/appcompat_v7/bin/classes/android/support/v7/appcompat/R$style.class differ diff --git a/appcompat_v7/bin/classes/android/support/v7/appcompat/R$styleable.class b/appcompat_v7/bin/classes/android/support/v7/appcompat/R$styleable.class new file mode 100644 index 0000000..b26c416 Binary files /dev/null and b/appcompat_v7/bin/classes/android/support/v7/appcompat/R$styleable.class differ diff --git a/appcompat_v7/bin/classes/android/support/v7/appcompat/R.class b/appcompat_v7/bin/classes/android/support/v7/appcompat/R.class new file mode 100644 index 0000000..297f6a5 Binary files /dev/null and b/appcompat_v7/bin/classes/android/support/v7/appcompat/R.class differ diff --git a/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ab_bottom_solid_dark_holo.9.png b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ab_bottom_solid_dark_holo.9.png new file mode 100644 index 0000000..42bb366 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ab_bottom_solid_dark_holo.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ab_bottom_solid_light_holo.9.png b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ab_bottom_solid_light_holo.9.png new file mode 100644 index 0000000..612889a Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ab_bottom_solid_light_holo.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ab_bottom_transparent_dark_holo.9.png b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ab_bottom_transparent_dark_holo.9.png new file mode 100644 index 0000000..9a80fb7 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ab_bottom_transparent_dark_holo.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ab_bottom_transparent_light_holo.9.png b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ab_bottom_transparent_light_holo.9.png new file mode 100644 index 0000000..2b4a61a Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ab_bottom_transparent_light_holo.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ab_share_pack_holo_dark.9.png b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ab_share_pack_holo_dark.9.png new file mode 100644 index 0000000..75d3269 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ab_share_pack_holo_dark.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ab_share_pack_holo_light.9.png b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ab_share_pack_holo_light.9.png new file mode 100644 index 0000000..ca7df22 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ab_share_pack_holo_light.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ab_solid_dark_holo.9.png b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ab_solid_dark_holo.9.png new file mode 100644 index 0000000..b110188 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ab_solid_dark_holo.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ab_solid_light_holo.9.png b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ab_solid_light_holo.9.png new file mode 100644 index 0000000..95c76e3 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ab_solid_light_holo.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ab_stacked_solid_dark_holo.9.png b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ab_stacked_solid_dark_holo.9.png new file mode 100644 index 0000000..20d7080 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ab_stacked_solid_dark_holo.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ab_stacked_solid_light_holo.9.png b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ab_stacked_solid_light_holo.9.png new file mode 100644 index 0000000..1dc40c9 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ab_stacked_solid_light_holo.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ab_stacked_transparent_dark_holo.9.png b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ab_stacked_transparent_dark_holo.9.png new file mode 100644 index 0000000..48bc536 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ab_stacked_transparent_dark_holo.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ab_stacked_transparent_light_holo.9.png b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ab_stacked_transparent_light_holo.9.png new file mode 100644 index 0000000..46fcf71 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ab_stacked_transparent_light_holo.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ab_transparent_dark_holo.9.png b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ab_transparent_dark_holo.9.png new file mode 100644 index 0000000..2adaa18 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ab_transparent_dark_holo.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ab_transparent_light_holo.9.png b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ab_transparent_light_holo.9.png new file mode 100644 index 0000000..629911f Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ab_transparent_light_holo.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_cab_background_bottom_holo_dark.9.png b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_cab_background_bottom_holo_dark.9.png new file mode 100644 index 0000000..fc2e90a Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_cab_background_bottom_holo_dark.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_cab_background_bottom_holo_light.9.png b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_cab_background_bottom_holo_light.9.png new file mode 100644 index 0000000..2d8352b Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_cab_background_bottom_holo_light.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_cab_background_top_holo_dark.9.png b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_cab_background_top_holo_dark.9.png new file mode 100644 index 0000000..365e83e Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_cab_background_top_holo_dark.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_cab_background_top_holo_light.9.png b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_cab_background_top_holo_light.9.png new file mode 100644 index 0000000..0a42fb2 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_cab_background_top_holo_light.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ic_ab_back_holo_dark.png b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ic_ab_back_holo_dark.png new file mode 100644 index 0000000..9deb8f0 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ic_ab_back_holo_dark.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ic_ab_back_holo_light.png b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ic_ab_back_holo_light.png new file mode 100644 index 0000000..5b29b1c Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ic_ab_back_holo_light.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ic_cab_done_holo_dark.png b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ic_cab_done_holo_dark.png new file mode 100644 index 0000000..bd2d459 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ic_cab_done_holo_dark.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ic_cab_done_holo_light.png b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ic_cab_done_holo_light.png new file mode 100644 index 0000000..c6c30a1 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ic_cab_done_holo_light.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ic_clear_disabled.png b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ic_clear_disabled.png new file mode 100644 index 0000000..69838cc Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ic_clear_disabled.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ic_clear_normal.png b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ic_clear_normal.png new file mode 100644 index 0000000..59304cf Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ic_clear_normal.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ic_clear_search_api_disabled_holo_light.png b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ic_clear_search_api_disabled_holo_light.png new file mode 100644 index 0000000..158e8b2 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ic_clear_search_api_disabled_holo_light.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ic_clear_search_api_holo_light.png b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ic_clear_search_api_holo_light.png new file mode 100644 index 0000000..70644b5 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ic_clear_search_api_holo_light.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ic_commit_search_api_holo_dark.png b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ic_commit_search_api_holo_dark.png new file mode 100644 index 0000000..f3899bd Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ic_commit_search_api_holo_dark.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ic_commit_search_api_holo_light.png b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ic_commit_search_api_holo_light.png new file mode 100644 index 0000000..f215d67 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ic_commit_search_api_holo_light.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ic_go.png b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ic_go.png new file mode 100644 index 0000000..ca50419 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ic_go.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ic_go_search_api_holo_light.png b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ic_go_search_api_holo_light.png new file mode 100644 index 0000000..bd4a594 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ic_go_search_api_holo_light.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ic_menu_moreoverflow_normal_holo_dark.png b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ic_menu_moreoverflow_normal_holo_dark.png new file mode 100644 index 0000000..cb6ebda Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ic_menu_moreoverflow_normal_holo_dark.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ic_menu_moreoverflow_normal_holo_light.png b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ic_menu_moreoverflow_normal_holo_light.png new file mode 100644 index 0000000..48d4728 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ic_menu_moreoverflow_normal_holo_light.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ic_menu_share_holo_dark.png b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ic_menu_share_holo_dark.png new file mode 100644 index 0000000..f5c5130 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ic_menu_share_holo_dark.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ic_menu_share_holo_light.png b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ic_menu_share_holo_light.png new file mode 100644 index 0000000..7c12c57 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ic_menu_share_holo_light.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ic_search.png b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ic_search.png new file mode 100644 index 0000000..febde99 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ic_search.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ic_search_api_holo_light.png b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ic_search_api_holo_light.png new file mode 100644 index 0000000..25921cd Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ic_search_api_holo_light.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ic_voice_search.png b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ic_voice_search.png new file mode 100644 index 0000000..6ddeb38 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ic_voice_search.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ic_voice_search_api_holo_light.png b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ic_voice_search_api_holo_light.png new file mode 100644 index 0000000..649263e Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_ic_voice_search_api_holo_light.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_list_divider_holo_dark.9.png b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_list_divider_holo_dark.9.png new file mode 100644 index 0000000..a57e66a Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_list_divider_holo_dark.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_list_divider_holo_light.9.png b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_list_divider_holo_light.9.png new file mode 100644 index 0000000..75bd2d7 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_list_divider_holo_light.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_list_focused_holo.9.png b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_list_focused_holo.9.png new file mode 100644 index 0000000..5fe1de8 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_list_focused_holo.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_list_longpressed_holo.9.png b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_list_longpressed_holo.9.png new file mode 100644 index 0000000..4da70ac Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_list_longpressed_holo.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_list_pressed_holo_dark.9.png b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_list_pressed_holo_dark.9.png new file mode 100644 index 0000000..d3e7241 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_list_pressed_holo_dark.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_list_pressed_holo_light.9.png b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_list_pressed_holo_light.9.png new file mode 100644 index 0000000..d3e7241 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_list_pressed_holo_light.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_list_selector_disabled_holo_dark.9.png b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_list_selector_disabled_holo_dark.9.png new file mode 100644 index 0000000..cb12896 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_list_selector_disabled_holo_dark.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_list_selector_disabled_holo_light.9.png b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_list_selector_disabled_holo_light.9.png new file mode 100644 index 0000000..233da8e Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_list_selector_disabled_holo_light.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_menu_dropdown_panel_holo_dark.9.png b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_menu_dropdown_panel_holo_dark.9.png new file mode 100644 index 0000000..bbd0b0f Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_menu_dropdown_panel_holo_dark.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_menu_dropdown_panel_holo_light.9.png b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_menu_dropdown_panel_holo_light.9.png new file mode 100644 index 0000000..b973eb1 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_menu_dropdown_panel_holo_light.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_menu_hardkey_panel_holo_dark.9.png b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_menu_hardkey_panel_holo_dark.9.png new file mode 100644 index 0000000..c5bec2e Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_menu_hardkey_panel_holo_dark.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_menu_hardkey_panel_holo_light.9.png b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_menu_hardkey_panel_holo_light.9.png new file mode 100644 index 0000000..e7dcc13 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_menu_hardkey_panel_holo_light.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_spinner_ab_default_holo_dark.9.png b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_spinner_ab_default_holo_dark.9.png new file mode 100644 index 0000000..0ff233c Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_spinner_ab_default_holo_dark.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_spinner_ab_default_holo_light.9.png b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_spinner_ab_default_holo_light.9.png new file mode 100644 index 0000000..3b12c00 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_spinner_ab_default_holo_light.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_spinner_ab_disabled_holo_dark.9.png b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_spinner_ab_disabled_holo_dark.9.png new file mode 100644 index 0000000..1e14a5f Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_spinner_ab_disabled_holo_dark.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_spinner_ab_disabled_holo_light.9.png b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_spinner_ab_disabled_holo_light.9.png new file mode 100644 index 0000000..3f17950 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_spinner_ab_disabled_holo_light.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_spinner_ab_focused_holo_dark.9.png b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_spinner_ab_focused_holo_dark.9.png new file mode 100644 index 0000000..ac10349 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_spinner_ab_focused_holo_dark.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_spinner_ab_focused_holo_light.9.png b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_spinner_ab_focused_holo_light.9.png new file mode 100644 index 0000000..9d3d3a0 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_spinner_ab_focused_holo_light.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_spinner_ab_pressed_holo_dark.9.png b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_spinner_ab_pressed_holo_dark.9.png new file mode 100644 index 0000000..12f08d5 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_spinner_ab_pressed_holo_dark.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_spinner_ab_pressed_holo_light.9.png b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_spinner_ab_pressed_holo_light.9.png new file mode 100644 index 0000000..dd1e344 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_spinner_ab_pressed_holo_light.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_tab_selected_focused_holo.9.png b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_tab_selected_focused_holo.9.png new file mode 100644 index 0000000..1e6ab9a Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_tab_selected_focused_holo.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_tab_selected_holo.9.png b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_tab_selected_holo.9.png new file mode 100644 index 0000000..4dfaac8 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_tab_selected_holo.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_tab_selected_pressed_holo.9.png b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_tab_selected_pressed_holo.9.png new file mode 100644 index 0000000..4060199 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_tab_selected_pressed_holo.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_tab_unselected_pressed_holo.9.png b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_tab_unselected_pressed_holo.9.png new file mode 100644 index 0000000..86304e5 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_tab_unselected_pressed_holo.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_textfield_search_default_holo_dark.9.png b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_textfield_search_default_holo_dark.9.png new file mode 100644 index 0000000..2671d27 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_textfield_search_default_holo_dark.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_textfield_search_default_holo_light.9.png b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_textfield_search_default_holo_light.9.png new file mode 100644 index 0000000..95781dd Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_textfield_search_default_holo_light.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_textfield_search_right_default_holo_dark.9.png b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_textfield_search_right_default_holo_dark.9.png new file mode 100644 index 0000000..2c879af Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_textfield_search_right_default_holo_dark.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_textfield_search_right_default_holo_light.9.png b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_textfield_search_right_default_holo_light.9.png new file mode 100644 index 0000000..a4af865 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_textfield_search_right_default_holo_light.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_textfield_search_right_selected_holo_dark.9.png b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_textfield_search_right_selected_holo_dark.9.png new file mode 100644 index 0000000..acae791 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_textfield_search_right_selected_holo_dark.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_textfield_search_right_selected_holo_light.9.png b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_textfield_search_right_selected_holo_light.9.png new file mode 100644 index 0000000..e22bb17 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_textfield_search_right_selected_holo_light.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_textfield_search_selected_holo_dark.9.png b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_textfield_search_selected_holo_dark.9.png new file mode 100644 index 0000000..984332a Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_textfield_search_selected_holo_dark.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_textfield_search_selected_holo_light.9.png b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_textfield_search_selected_holo_light.9.png new file mode 100644 index 0000000..984332a Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-hdpi/abc_textfield_search_selected_holo_light.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ab_bottom_solid_dark_holo.9.png b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ab_bottom_solid_dark_holo.9.png new file mode 100644 index 0000000..c2fef9a Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ab_bottom_solid_dark_holo.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ab_bottom_solid_light_holo.9.png b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ab_bottom_solid_light_holo.9.png new file mode 100644 index 0000000..baa5298 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ab_bottom_solid_light_holo.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ab_bottom_transparent_dark_holo.9.png b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ab_bottom_transparent_dark_holo.9.png new file mode 100644 index 0000000..fed7fa6 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ab_bottom_transparent_dark_holo.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ab_bottom_transparent_light_holo.9.png b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ab_bottom_transparent_light_holo.9.png new file mode 100644 index 0000000..d582d39 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ab_bottom_transparent_light_holo.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ab_share_pack_holo_dark.9.png b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ab_share_pack_holo_dark.9.png new file mode 100644 index 0000000..735c049 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ab_share_pack_holo_dark.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ab_share_pack_holo_light.9.png b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ab_share_pack_holo_light.9.png new file mode 100644 index 0000000..1071e09 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ab_share_pack_holo_light.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ab_solid_dark_holo.9.png b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ab_solid_dark_holo.9.png new file mode 100644 index 0000000..a9f2be4 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ab_solid_dark_holo.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ab_solid_light_holo.9.png b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ab_solid_light_holo.9.png new file mode 100644 index 0000000..a51dc9b Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ab_solid_light_holo.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ab_stacked_solid_dark_holo.9.png b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ab_stacked_solid_dark_holo.9.png new file mode 100644 index 0000000..fa4ca75 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ab_stacked_solid_dark_holo.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ab_stacked_solid_light_holo.9.png b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ab_stacked_solid_light_holo.9.png new file mode 100644 index 0000000..f2f6fc7 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ab_stacked_solid_light_holo.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ab_stacked_transparent_dark_holo.9.png b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ab_stacked_transparent_dark_holo.9.png new file mode 100644 index 0000000..6584f95 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ab_stacked_transparent_dark_holo.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ab_stacked_transparent_light_holo.9.png b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ab_stacked_transparent_light_holo.9.png new file mode 100644 index 0000000..f3a769b Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ab_stacked_transparent_light_holo.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ab_transparent_dark_holo.9.png b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ab_transparent_dark_holo.9.png new file mode 100644 index 0000000..06010e9 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ab_transparent_dark_holo.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ab_transparent_light_holo.9.png b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ab_transparent_light_holo.9.png new file mode 100644 index 0000000..ff64b45 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ab_transparent_light_holo.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_cab_background_bottom_holo_dark.9.png b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_cab_background_bottom_holo_dark.9.png new file mode 100644 index 0000000..0a71f49 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_cab_background_bottom_holo_dark.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_cab_background_bottom_holo_light.9.png b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_cab_background_bottom_holo_light.9.png new file mode 100644 index 0000000..4e4e516 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_cab_background_bottom_holo_light.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_cab_background_top_holo_dark.9.png b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_cab_background_top_holo_dark.9.png new file mode 100644 index 0000000..a6c5c8f Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_cab_background_top_holo_dark.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_cab_background_top_holo_light.9.png b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_cab_background_top_holo_light.9.png new file mode 100644 index 0000000..9da38a3 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_cab_background_top_holo_light.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ic_ab_back_holo_dark.png b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ic_ab_back_holo_dark.png new file mode 100644 index 0000000..7290c5c Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ic_ab_back_holo_dark.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ic_ab_back_holo_light.png b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ic_ab_back_holo_light.png new file mode 100644 index 0000000..7d944d3 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ic_ab_back_holo_light.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ic_cab_done_holo_dark.png b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ic_cab_done_holo_dark.png new file mode 100644 index 0000000..3382680 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ic_cab_done_holo_dark.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ic_cab_done_holo_light.png b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ic_cab_done_holo_light.png new file mode 100644 index 0000000..f11b21f Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ic_cab_done_holo_light.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ic_clear_disabled.png b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ic_clear_disabled.png new file mode 100644 index 0000000..d2ab340 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ic_clear_disabled.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ic_clear_normal.png b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ic_clear_normal.png new file mode 100644 index 0000000..d87cee0 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ic_clear_normal.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ic_clear_search_api_disabled_holo_light.png b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ic_clear_search_api_disabled_holo_light.png new file mode 100644 index 0000000..37510ea Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ic_clear_search_api_disabled_holo_light.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ic_clear_search_api_holo_light.png b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ic_clear_search_api_holo_light.png new file mode 100644 index 0000000..b5fbd1d Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ic_clear_search_api_holo_light.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ic_commit_search_api_holo_dark.png b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ic_commit_search_api_holo_dark.png new file mode 100644 index 0000000..4f7c3ff Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ic_commit_search_api_holo_dark.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ic_commit_search_api_holo_light.png b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ic_commit_search_api_holo_light.png new file mode 100644 index 0000000..6adeb92 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ic_commit_search_api_holo_light.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ic_go.png b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ic_go.png new file mode 100644 index 0000000..9724d9b Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ic_go.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ic_go_search_api_holo_light.png b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ic_go_search_api_holo_light.png new file mode 100644 index 0000000..7d2cc35 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ic_go_search_api_holo_light.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ic_menu_moreoverflow_normal_holo_dark.png b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ic_menu_moreoverflow_normal_holo_dark.png new file mode 100644 index 0000000..3b4e746 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ic_menu_moreoverflow_normal_holo_dark.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ic_menu_moreoverflow_normal_holo_light.png b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ic_menu_moreoverflow_normal_holo_light.png new file mode 100644 index 0000000..aa5ea4f Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ic_menu_moreoverflow_normal_holo_light.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ic_menu_share_holo_dark.png b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ic_menu_share_holo_dark.png new file mode 100644 index 0000000..00e499c Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ic_menu_share_holo_dark.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ic_menu_share_holo_light.png b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ic_menu_share_holo_light.png new file mode 100644 index 0000000..240d406 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ic_menu_share_holo_light.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ic_search.png b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ic_search.png new file mode 100644 index 0000000..96e393c Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ic_search.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ic_search_api_holo_light.png b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ic_search_api_holo_light.png new file mode 100644 index 0000000..01c540d Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ic_search_api_holo_light.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ic_voice_search.png b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ic_voice_search.png new file mode 100644 index 0000000..2acce22 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ic_voice_search.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ic_voice_search_api_holo_light.png b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ic_voice_search_api_holo_light.png new file mode 100644 index 0000000..b65cd75 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_ic_voice_search_api_holo_light.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_list_divider_holo_dark.9.png b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_list_divider_holo_dark.9.png new file mode 100644 index 0000000..a57e66a Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_list_divider_holo_dark.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_list_divider_holo_light.9.png b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_list_divider_holo_light.9.png new file mode 100644 index 0000000..75bd2d7 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_list_divider_holo_light.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_list_focused_holo.9.png b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_list_focused_holo.9.png new file mode 100644 index 0000000..a77f98d Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_list_focused_holo.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_list_longpressed_holo.9.png b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_list_longpressed_holo.9.png new file mode 100644 index 0000000..92030f2 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_list_longpressed_holo.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_list_pressed_holo_dark.9.png b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_list_pressed_holo_dark.9.png new file mode 100644 index 0000000..d6717c1 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_list_pressed_holo_dark.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_list_pressed_holo_light.9.png b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_list_pressed_holo_light.9.png new file mode 100644 index 0000000..d6717c1 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_list_pressed_holo_light.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_list_selector_disabled_holo_dark.9.png b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_list_selector_disabled_holo_dark.9.png new file mode 100644 index 0000000..9428f21 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_list_selector_disabled_holo_dark.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_list_selector_disabled_holo_light.9.png b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_list_selector_disabled_holo_light.9.png new file mode 100644 index 0000000..80cd8e6 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_list_selector_disabled_holo_light.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_menu_dropdown_panel_holo_dark.9.png b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_menu_dropdown_panel_holo_dark.9.png new file mode 100644 index 0000000..72335fb Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_menu_dropdown_panel_holo_dark.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_menu_dropdown_panel_holo_light.9.png b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_menu_dropdown_panel_holo_light.9.png new file mode 100644 index 0000000..c2ac4a0 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_menu_dropdown_panel_holo_light.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_menu_hardkey_panel_holo_dark.9.png b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_menu_hardkey_panel_holo_dark.9.png new file mode 100644 index 0000000..3e2b87d Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_menu_hardkey_panel_holo_dark.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_menu_hardkey_panel_holo_light.9.png b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_menu_hardkey_panel_holo_light.9.png new file mode 100644 index 0000000..350507e Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_menu_hardkey_panel_holo_light.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_spinner_ab_default_holo_dark.9.png b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_spinner_ab_default_holo_dark.9.png new file mode 100644 index 0000000..222fbb0 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_spinner_ab_default_holo_dark.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_spinner_ab_default_holo_light.9.png b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_spinner_ab_default_holo_light.9.png new file mode 100644 index 0000000..203f4c0 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_spinner_ab_default_holo_light.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_spinner_ab_disabled_holo_dark.9.png b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_spinner_ab_disabled_holo_dark.9.png new file mode 100644 index 0000000..f880cfe Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_spinner_ab_disabled_holo_dark.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_spinner_ab_disabled_holo_light.9.png b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_spinner_ab_disabled_holo_light.9.png new file mode 100644 index 0000000..4cb63c0 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_spinner_ab_disabled_holo_light.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_spinner_ab_focused_holo_dark.9.png b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_spinner_ab_focused_holo_dark.9.png new file mode 100644 index 0000000..4dfbff5 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_spinner_ab_focused_holo_dark.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_spinner_ab_focused_holo_light.9.png b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_spinner_ab_focused_holo_light.9.png new file mode 100644 index 0000000..4c192b4 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_spinner_ab_focused_holo_light.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_spinner_ab_pressed_holo_dark.9.png b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_spinner_ab_pressed_holo_dark.9.png new file mode 100644 index 0000000..07cdab7 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_spinner_ab_pressed_holo_dark.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_spinner_ab_pressed_holo_light.9.png b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_spinner_ab_pressed_holo_light.9.png new file mode 100644 index 0000000..0f2a607 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_spinner_ab_pressed_holo_light.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_tab_selected_focused_holo.9.png b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_tab_selected_focused_holo.9.png new file mode 100644 index 0000000..bce0e08 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_tab_selected_focused_holo.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_tab_selected_holo.9.png b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_tab_selected_holo.9.png new file mode 100644 index 0000000..dd022de Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_tab_selected_holo.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_tab_selected_pressed_holo.9.png b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_tab_selected_pressed_holo.9.png new file mode 100644 index 0000000..2852fb5 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_tab_selected_pressed_holo.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_tab_unselected_pressed_holo.9.png b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_tab_unselected_pressed_holo.9.png new file mode 100644 index 0000000..d2716b3 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_tab_unselected_pressed_holo.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_textfield_search_default_holo_dark.9.png b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_textfield_search_default_holo_dark.9.png new file mode 100644 index 0000000..fb5c801 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_textfield_search_default_holo_dark.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_textfield_search_default_holo_light.9.png b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_textfield_search_default_holo_light.9.png new file mode 100644 index 0000000..9ed25c7 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_textfield_search_default_holo_light.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_textfield_search_right_default_holo_dark.9.png b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_textfield_search_right_default_holo_dark.9.png new file mode 100644 index 0000000..77020e0 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_textfield_search_right_default_holo_dark.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_textfield_search_right_default_holo_light.9.png b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_textfield_search_right_default_holo_light.9.png new file mode 100644 index 0000000..6136c08 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_textfield_search_right_default_holo_light.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_textfield_search_right_selected_holo_dark.9.png b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_textfield_search_right_selected_holo_dark.9.png new file mode 100644 index 0000000..878225d Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_textfield_search_right_selected_holo_dark.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_textfield_search_right_selected_holo_light.9.png b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_textfield_search_right_selected_holo_light.9.png new file mode 100644 index 0000000..878225d Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_textfield_search_right_selected_holo_light.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_textfield_search_selected_holo_dark.9.png b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_textfield_search_selected_holo_dark.9.png new file mode 100644 index 0000000..6223887 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_textfield_search_selected_holo_dark.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_textfield_search_selected_holo_light.9.png b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_textfield_search_selected_holo_light.9.png new file mode 100644 index 0000000..6223887 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-mdpi/abc_textfield_search_selected_holo_light.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ab_bottom_solid_dark_holo.9.png b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ab_bottom_solid_dark_holo.9.png new file mode 100644 index 0000000..d01fae9 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ab_bottom_solid_dark_holo.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ab_bottom_solid_light_holo.9.png b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ab_bottom_solid_light_holo.9.png new file mode 100644 index 0000000..f6cbc62 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ab_bottom_solid_light_holo.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ab_bottom_transparent_dark_holo.9.png b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ab_bottom_transparent_dark_holo.9.png new file mode 100644 index 0000000..f395cbd Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ab_bottom_transparent_dark_holo.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ab_bottom_transparent_light_holo.9.png b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ab_bottom_transparent_light_holo.9.png new file mode 100644 index 0000000..6e6b999 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ab_bottom_transparent_light_holo.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ab_share_pack_holo_dark.9.png b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ab_share_pack_holo_dark.9.png new file mode 100644 index 0000000..ca2e57b Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ab_share_pack_holo_dark.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ab_share_pack_holo_light.9.png b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ab_share_pack_holo_light.9.png new file mode 100644 index 0000000..a57c1b5 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ab_share_pack_holo_light.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ab_solid_dark_holo.9.png b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ab_solid_dark_holo.9.png new file mode 100644 index 0000000..2c4dd4f Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ab_solid_dark_holo.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ab_solid_light_holo.9.png b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ab_solid_light_holo.9.png new file mode 100644 index 0000000..27d6c8b Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ab_solid_light_holo.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ab_stacked_solid_dark_holo.9.png b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ab_stacked_solid_dark_holo.9.png new file mode 100644 index 0000000..3e72223 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ab_stacked_solid_dark_holo.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ab_stacked_solid_light_holo.9.png b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ab_stacked_solid_light_holo.9.png new file mode 100644 index 0000000..d2d7754 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ab_stacked_solid_light_holo.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ab_stacked_transparent_dark_holo.9.png b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ab_stacked_transparent_dark_holo.9.png new file mode 100644 index 0000000..140518f Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ab_stacked_transparent_dark_holo.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ab_stacked_transparent_light_holo.9.png b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ab_stacked_transparent_light_holo.9.png new file mode 100644 index 0000000..97a6bd5 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ab_stacked_transparent_light_holo.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ab_transparent_dark_holo.9.png b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ab_transparent_dark_holo.9.png new file mode 100644 index 0000000..3069943 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ab_transparent_dark_holo.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ab_transparent_light_holo.9.png b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ab_transparent_light_holo.9.png new file mode 100644 index 0000000..920d2b5 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ab_transparent_light_holo.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_cab_background_bottom_holo_dark.9.png b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_cab_background_bottom_holo_dark.9.png new file mode 100644 index 0000000..1bf70ca Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_cab_background_bottom_holo_dark.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_cab_background_bottom_holo_light.9.png b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_cab_background_bottom_holo_light.9.png new file mode 100644 index 0000000..100d316 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_cab_background_bottom_holo_light.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_cab_background_top_holo_dark.9.png b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_cab_background_top_holo_dark.9.png new file mode 100644 index 0000000..58bdedd Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_cab_background_top_holo_dark.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_cab_background_top_holo_light.9.png b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_cab_background_top_holo_light.9.png new file mode 100644 index 0000000..66d9d8d Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_cab_background_top_holo_light.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ic_ab_back_holo_dark.png b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ic_ab_back_holo_dark.png new file mode 100644 index 0000000..bfc1c66 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ic_ab_back_holo_dark.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ic_ab_back_holo_light.png b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ic_ab_back_holo_light.png new file mode 100644 index 0000000..87a5a42 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ic_ab_back_holo_light.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ic_cab_done_holo_dark.png b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ic_cab_done_holo_dark.png new file mode 100644 index 0000000..fd5f416 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ic_cab_done_holo_dark.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ic_cab_done_holo_light.png b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ic_cab_done_holo_light.png new file mode 100644 index 0000000..0ccab80 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ic_cab_done_holo_light.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ic_clear_disabled.png b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ic_clear_disabled.png new file mode 100644 index 0000000..6cc02c5 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ic_clear_disabled.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ic_clear_search_api_disabled_holo_light.png b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ic_clear_search_api_disabled_holo_light.png new file mode 100644 index 0000000..3d2cf50 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ic_clear_search_api_disabled_holo_light.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ic_clear_search_api_holo_light.png b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ic_clear_search_api_holo_light.png new file mode 100644 index 0000000..0efacf7 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ic_clear_search_api_holo_light.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ic_commit_search_api_holo_dark.png b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ic_commit_search_api_holo_dark.png new file mode 100644 index 0000000..65fc078 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ic_commit_search_api_holo_dark.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ic_commit_search_api_holo_light.png b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ic_commit_search_api_holo_light.png new file mode 100644 index 0000000..81aa937 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ic_commit_search_api_holo_light.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ic_go.png b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ic_go.png new file mode 100644 index 0000000..b462079 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ic_go.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ic_go_search_api_holo_light.png b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ic_go_search_api_holo_light.png new file mode 100644 index 0000000..7007b15 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ic_go_search_api_holo_light.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ic_menu_moreoverflow_normal_holo_dark.png b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ic_menu_moreoverflow_normal_holo_dark.png new file mode 100644 index 0000000..ef9792a Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ic_menu_moreoverflow_normal_holo_dark.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ic_menu_moreoverflow_normal_holo_light.png b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ic_menu_moreoverflow_normal_holo_light.png new file mode 100644 index 0000000..3f275ad Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ic_menu_moreoverflow_normal_holo_light.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ic_menu_share_holo_dark.png b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ic_menu_share_holo_dark.png new file mode 100644 index 0000000..4492c49 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ic_menu_share_holo_dark.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ic_menu_share_holo_light.png b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ic_menu_share_holo_light.png new file mode 100644 index 0000000..a61854b Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ic_menu_share_holo_light.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ic_search.png b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ic_search.png new file mode 100644 index 0000000..3d4d4e7 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ic_search.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ic_search_api_holo_light.png b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ic_search_api_holo_light.png new file mode 100644 index 0000000..280ba8f Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ic_search_api_holo_light.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ic_voice_search.png b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ic_voice_search.png new file mode 100644 index 0000000..ab8d0a9 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ic_voice_search.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ic_voice_search_api_holo_light.png b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ic_voice_search_api_holo_light.png new file mode 100644 index 0000000..69f18b9 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_ic_voice_search_api_holo_light.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_list_divider_holo_dark.9.png b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_list_divider_holo_dark.9.png new file mode 100644 index 0000000..c1692f8 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_list_divider_holo_dark.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_list_divider_holo_light.9.png b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_list_divider_holo_light.9.png new file mode 100644 index 0000000..e190cfc Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_list_divider_holo_light.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_list_focused_holo.9.png b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_list_focused_holo.9.png new file mode 100644 index 0000000..3f28408 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_list_focused_holo.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_list_longpressed_holo.9.png b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_list_longpressed_holo.9.png new file mode 100644 index 0000000..c6cbc4d Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_list_longpressed_holo.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_list_pressed_holo_dark.9.png b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_list_pressed_holo_dark.9.png new file mode 100644 index 0000000..8acdbf4 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_list_pressed_holo_dark.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_list_pressed_holo_light.9.png b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_list_pressed_holo_light.9.png new file mode 100644 index 0000000..8acdbf4 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_list_pressed_holo_light.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_list_selector_disabled_holo_dark.9.png b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_list_selector_disabled_holo_dark.9.png new file mode 100644 index 0000000..0117091 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_list_selector_disabled_holo_dark.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_list_selector_disabled_holo_light.9.png b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_list_selector_disabled_holo_light.9.png new file mode 100644 index 0000000..4f12302 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_list_selector_disabled_holo_light.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_menu_dropdown_panel_holo_dark.9.png b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_menu_dropdown_panel_holo_dark.9.png new file mode 100644 index 0000000..549b734 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_menu_dropdown_panel_holo_dark.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_menu_dropdown_panel_holo_light.9.png b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_menu_dropdown_panel_holo_light.9.png new file mode 100644 index 0000000..b0cc1e8 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_menu_dropdown_panel_holo_light.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_menu_hardkey_panel_holo_dark.9.png b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_menu_hardkey_panel_holo_dark.9.png new file mode 100644 index 0000000..063f2bd Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_menu_hardkey_panel_holo_dark.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_menu_hardkey_panel_holo_light.9.png b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_menu_hardkey_panel_holo_light.9.png new file mode 100644 index 0000000..259a4d3 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_menu_hardkey_panel_holo_light.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_spinner_ab_default_holo_dark.9.png b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_spinner_ab_default_holo_dark.9.png new file mode 100644 index 0000000..0bf9128 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_spinner_ab_default_holo_dark.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_spinner_ab_default_holo_light.9.png b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_spinner_ab_default_holo_light.9.png new file mode 100644 index 0000000..12663c7 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_spinner_ab_default_holo_light.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_spinner_ab_disabled_holo_dark.9.png b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_spinner_ab_disabled_holo_dark.9.png new file mode 100644 index 0000000..9051d49 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_spinner_ab_disabled_holo_dark.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_spinner_ab_disabled_holo_light.9.png b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_spinner_ab_disabled_holo_light.9.png new file mode 100644 index 0000000..2ec1595 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_spinner_ab_disabled_holo_light.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_spinner_ab_focused_holo_dark.9.png b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_spinner_ab_focused_holo_dark.9.png new file mode 100644 index 0000000..6ab3c82 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_spinner_ab_focused_holo_dark.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_spinner_ab_focused_holo_light.9.png b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_spinner_ab_focused_holo_light.9.png new file mode 100644 index 0000000..1fa41c9 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_spinner_ab_focused_holo_light.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_spinner_ab_pressed_holo_dark.9.png b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_spinner_ab_pressed_holo_dark.9.png new file mode 100644 index 0000000..741dc21 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_spinner_ab_pressed_holo_dark.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_spinner_ab_pressed_holo_light.9.png b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_spinner_ab_pressed_holo_light.9.png new file mode 100644 index 0000000..03bf407 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_spinner_ab_pressed_holo_light.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_tab_selected_focused_holo.9.png b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_tab_selected_focused_holo.9.png new file mode 100644 index 0000000..140ebfd Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_tab_selected_focused_holo.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_tab_selected_holo.9.png b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_tab_selected_holo.9.png new file mode 100644 index 0000000..a94f098 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_tab_selected_holo.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_tab_selected_pressed_holo.9.png b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_tab_selected_pressed_holo.9.png new file mode 100644 index 0000000..25ec789 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_tab_selected_pressed_holo.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_tab_unselected_pressed_holo.9.png b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_tab_unselected_pressed_holo.9.png new file mode 100644 index 0000000..c5ed3cb Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_tab_unselected_pressed_holo.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_textfield_search_default_holo_dark.9.png b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_textfield_search_default_holo_dark.9.png new file mode 100644 index 0000000..f908c68 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_textfield_search_default_holo_dark.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_textfield_search_default_holo_light.9.png b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_textfield_search_default_holo_light.9.png new file mode 100644 index 0000000..4aa3617 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_textfield_search_default_holo_light.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_textfield_search_right_default_holo_dark.9.png b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_textfield_search_right_default_holo_dark.9.png new file mode 100644 index 0000000..7fe285a Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_textfield_search_right_default_holo_dark.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_textfield_search_right_default_holo_light.9.png b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_textfield_search_right_default_holo_light.9.png new file mode 100644 index 0000000..610170e Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_textfield_search_right_default_holo_light.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_textfield_search_right_selected_holo_dark.9.png b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_textfield_search_right_selected_holo_dark.9.png new file mode 100644 index 0000000..17c70ff Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_textfield_search_right_selected_holo_dark.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_textfield_search_right_selected_holo_light.9.png b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_textfield_search_right_selected_holo_light.9.png new file mode 100644 index 0000000..17c70ff Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_textfield_search_right_selected_holo_light.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_textfield_search_selected_holo_dark.9.png b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_textfield_search_selected_holo_dark.9.png new file mode 100644 index 0000000..31458da Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_textfield_search_selected_holo_dark.9.png differ diff --git a/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_textfield_search_selected_holo_light.9.png b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_textfield_search_selected_holo_light.9.png new file mode 100644 index 0000000..6432711 Binary files /dev/null and b/appcompat_v7/bin/res/crunch/drawable-xhdpi/abc_textfield_search_selected_holo_light.9.png differ diff --git a/appcompat_v7/build.gradle b/appcompat_v7/build.gradle new file mode 100644 index 0000000..f49faaf --- /dev/null +++ b/appcompat_v7/build.gradle @@ -0,0 +1,38 @@ +apply plugin: 'android-library' + +dependencies { + compile fileTree(dir: 'libs', include: '*.jar') +} + +android { + compileSdkVersion 19 + buildToolsVersion "20" + + sourceSets { + main { + manifest.srcFile 'AndroidManifest.xml' + java.srcDirs = ['src'] + resources.srcDirs = ['src'] + aidl.srcDirs = ['src'] + renderscript.srcDirs = ['src'] + res.srcDirs = ['res'] + assets.srcDirs = ['assets'] + } + + // Move the tests to tests/java, tests/res, etc... + instrumentTest.setRoot('tests') + + // Move the build types to build-types/ + // For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ... + // This moves them out of them default location under src//... which would + // conflict with src/ being used by the main source set. + // Adding new build types or product flavors should be accompanied + // by a similar customization. + debug.setRoot('build-types/debug') + release.setRoot('build-types/release') + } + + lintOptions { + abortOnError false + } +} diff --git a/appcompat_v7/gen/android/support/v7/appcompat/BuildConfig.java b/appcompat_v7/gen/android/support/v7/appcompat/BuildConfig.java new file mode 100644 index 0000000..ddc55ec --- /dev/null +++ b/appcompat_v7/gen/android/support/v7/appcompat/BuildConfig.java @@ -0,0 +1,6 @@ +/** Automatically generated file. DO NOT MODIFY */ +package android.support.v7.appcompat; + +public final class BuildConfig { + public final static boolean DEBUG = true; +} \ No newline at end of file diff --git a/appcompat_v7/libs/android-support-v4.jar b/appcompat_v7/libs/android-support-v4.jar new file mode 100644 index 0000000..a7e9919 Binary files /dev/null and b/appcompat_v7/libs/android-support-v4.jar differ diff --git a/appcompat_v7/libs/android-support-v7-appcompat.jar b/appcompat_v7/libs/android-support-v7-appcompat.jar new file mode 100644 index 0000000..a534631 Binary files /dev/null and b/appcompat_v7/libs/android-support-v7-appcompat.jar differ diff --git a/appcompat_v7/project.properties b/appcompat_v7/project.properties new file mode 100644 index 0000000..91d2b02 --- /dev/null +++ b/appcompat_v7/project.properties @@ -0,0 +1,15 @@ +# This file is automatically generated by Android Tools. +# Do not modify this file -- YOUR CHANGES WILL BE ERASED! +# +# This file must be checked in Version Control Systems. +# +# To customize properties used by the Ant build system edit +# "ant.properties", and override values to adapt the script to your +# project structure. +# +# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): +#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt + +# Project target. +target=android-19 +android.library=true diff --git a/appcompat_v7/res/anim/abc_fade_in.xml b/appcompat_v7/res/anim/abc_fade_in.xml new file mode 100644 index 0000000..da7ee29 --- /dev/null +++ b/appcompat_v7/res/anim/abc_fade_in.xml @@ -0,0 +1,20 @@ + + + + \ No newline at end of file diff --git a/appcompat_v7/res/anim/abc_fade_out.xml b/appcompat_v7/res/anim/abc_fade_out.xml new file mode 100644 index 0000000..c81b39a --- /dev/null +++ b/appcompat_v7/res/anim/abc_fade_out.xml @@ -0,0 +1,20 @@ + + + + \ No newline at end of file diff --git a/appcompat_v7/res/anim/abc_slide_in_bottom.xml b/appcompat_v7/res/anim/abc_slide_in_bottom.xml new file mode 100644 index 0000000..1afa8fe --- /dev/null +++ b/appcompat_v7/res/anim/abc_slide_in_bottom.xml @@ -0,0 +1,19 @@ + + + diff --git a/appcompat_v7/res/anim/abc_slide_in_top.xml b/appcompat_v7/res/anim/abc_slide_in_top.xml new file mode 100644 index 0000000..ab824f2 --- /dev/null +++ b/appcompat_v7/res/anim/abc_slide_in_top.xml @@ -0,0 +1,19 @@ + + + \ No newline at end of file diff --git a/appcompat_v7/res/anim/abc_slide_out_bottom.xml b/appcompat_v7/res/anim/abc_slide_out_bottom.xml new file mode 100644 index 0000000..b309fe8 --- /dev/null +++ b/appcompat_v7/res/anim/abc_slide_out_bottom.xml @@ -0,0 +1,19 @@ + + + \ No newline at end of file diff --git a/appcompat_v7/res/anim/abc_slide_out_top.xml b/appcompat_v7/res/anim/abc_slide_out_top.xml new file mode 100644 index 0000000..e84d1c7 --- /dev/null +++ b/appcompat_v7/res/anim/abc_slide_out_top.xml @@ -0,0 +1,19 @@ + + + \ No newline at end of file diff --git a/appcompat_v7/res/color/abc_search_url_text_holo.xml b/appcompat_v7/res/color/abc_search_url_text_holo.xml new file mode 100644 index 0000000..c4579fa --- /dev/null +++ b/appcompat_v7/res/color/abc_search_url_text_holo.xml @@ -0,0 +1,21 @@ + + + + + + + + \ No newline at end of file diff --git a/appcompat_v7/res/drawable-hdpi/abc_ab_bottom_solid_dark_holo.9.png b/appcompat_v7/res/drawable-hdpi/abc_ab_bottom_solid_dark_holo.9.png new file mode 100644 index 0000000..769463b Binary files /dev/null and b/appcompat_v7/res/drawable-hdpi/abc_ab_bottom_solid_dark_holo.9.png differ diff --git a/appcompat_v7/res/drawable-hdpi/abc_ab_bottom_solid_light_holo.9.png b/appcompat_v7/res/drawable-hdpi/abc_ab_bottom_solid_light_holo.9.png new file mode 100644 index 0000000..7305047 Binary files /dev/null and b/appcompat_v7/res/drawable-hdpi/abc_ab_bottom_solid_light_holo.9.png differ diff --git a/appcompat_v7/res/drawable-hdpi/abc_ab_bottom_transparent_dark_holo.9.png b/appcompat_v7/res/drawable-hdpi/abc_ab_bottom_transparent_dark_holo.9.png new file mode 100644 index 0000000..712a551 Binary files /dev/null and b/appcompat_v7/res/drawable-hdpi/abc_ab_bottom_transparent_dark_holo.9.png differ diff --git a/appcompat_v7/res/drawable-hdpi/abc_ab_bottom_transparent_light_holo.9.png b/appcompat_v7/res/drawable-hdpi/abc_ab_bottom_transparent_light_holo.9.png new file mode 100644 index 0000000..bf3b943 Binary files /dev/null and b/appcompat_v7/res/drawable-hdpi/abc_ab_bottom_transparent_light_holo.9.png differ diff --git a/appcompat_v7/res/drawable-hdpi/abc_ab_share_pack_holo_dark.9.png b/appcompat_v7/res/drawable-hdpi/abc_ab_share_pack_holo_dark.9.png new file mode 100644 index 0000000..6c14157 Binary files /dev/null and b/appcompat_v7/res/drawable-hdpi/abc_ab_share_pack_holo_dark.9.png differ diff --git a/appcompat_v7/res/drawable-hdpi/abc_ab_share_pack_holo_light.9.png b/appcompat_v7/res/drawable-hdpi/abc_ab_share_pack_holo_light.9.png new file mode 100644 index 0000000..f4ff16b Binary files /dev/null and b/appcompat_v7/res/drawable-hdpi/abc_ab_share_pack_holo_light.9.png differ diff --git a/appcompat_v7/res/drawable-hdpi/abc_ab_solid_dark_holo.9.png b/appcompat_v7/res/drawable-hdpi/abc_ab_solid_dark_holo.9.png new file mode 100644 index 0000000..cbbaec5 Binary files /dev/null and b/appcompat_v7/res/drawable-hdpi/abc_ab_solid_dark_holo.9.png differ diff --git a/appcompat_v7/res/drawable-hdpi/abc_ab_solid_light_holo.9.png b/appcompat_v7/res/drawable-hdpi/abc_ab_solid_light_holo.9.png new file mode 100644 index 0000000..af917e5 Binary files /dev/null and b/appcompat_v7/res/drawable-hdpi/abc_ab_solid_light_holo.9.png differ diff --git a/appcompat_v7/res/drawable-hdpi/abc_ab_stacked_solid_dark_holo.9.png b/appcompat_v7/res/drawable-hdpi/abc_ab_stacked_solid_dark_holo.9.png new file mode 100644 index 0000000..0520e5a Binary files /dev/null and b/appcompat_v7/res/drawable-hdpi/abc_ab_stacked_solid_dark_holo.9.png differ diff --git a/appcompat_v7/res/drawable-hdpi/abc_ab_stacked_solid_light_holo.9.png b/appcompat_v7/res/drawable-hdpi/abc_ab_stacked_solid_light_holo.9.png new file mode 100644 index 0000000..e3e3f93 Binary files /dev/null and b/appcompat_v7/res/drawable-hdpi/abc_ab_stacked_solid_light_holo.9.png differ diff --git a/appcompat_v7/res/drawable-hdpi/abc_ab_stacked_transparent_dark_holo.9.png b/appcompat_v7/res/drawable-hdpi/abc_ab_stacked_transparent_dark_holo.9.png new file mode 100644 index 0000000..1e39572 Binary files /dev/null and b/appcompat_v7/res/drawable-hdpi/abc_ab_stacked_transparent_dark_holo.9.png differ diff --git a/appcompat_v7/res/drawable-hdpi/abc_ab_stacked_transparent_light_holo.9.png b/appcompat_v7/res/drawable-hdpi/abc_ab_stacked_transparent_light_holo.9.png new file mode 100644 index 0000000..a16db85 Binary files /dev/null and b/appcompat_v7/res/drawable-hdpi/abc_ab_stacked_transparent_light_holo.9.png differ diff --git a/appcompat_v7/res/drawable-hdpi/abc_ab_transparent_dark_holo.9.png b/appcompat_v7/res/drawable-hdpi/abc_ab_transparent_dark_holo.9.png new file mode 100644 index 0000000..0eff695 Binary files /dev/null and b/appcompat_v7/res/drawable-hdpi/abc_ab_transparent_dark_holo.9.png differ diff --git a/appcompat_v7/res/drawable-hdpi/abc_ab_transparent_light_holo.9.png b/appcompat_v7/res/drawable-hdpi/abc_ab_transparent_light_holo.9.png new file mode 100644 index 0000000..219b170 Binary files /dev/null and b/appcompat_v7/res/drawable-hdpi/abc_ab_transparent_light_holo.9.png differ diff --git a/appcompat_v7/res/drawable-hdpi/abc_cab_background_bottom_holo_dark.9.png b/appcompat_v7/res/drawable-hdpi/abc_cab_background_bottom_holo_dark.9.png new file mode 100644 index 0000000..1d836f6 Binary files /dev/null and b/appcompat_v7/res/drawable-hdpi/abc_cab_background_bottom_holo_dark.9.png differ diff --git a/appcompat_v7/res/drawable-hdpi/abc_cab_background_bottom_holo_light.9.png b/appcompat_v7/res/drawable-hdpi/abc_cab_background_bottom_holo_light.9.png new file mode 100644 index 0000000..5818666 Binary files /dev/null and b/appcompat_v7/res/drawable-hdpi/abc_cab_background_bottom_holo_light.9.png differ diff --git a/appcompat_v7/res/drawable-hdpi/abc_cab_background_top_holo_dark.9.png b/appcompat_v7/res/drawable-hdpi/abc_cab_background_top_holo_dark.9.png new file mode 100644 index 0000000..564fb34 Binary files /dev/null and b/appcompat_v7/res/drawable-hdpi/abc_cab_background_top_holo_dark.9.png differ diff --git a/appcompat_v7/res/drawable-hdpi/abc_cab_background_top_holo_light.9.png b/appcompat_v7/res/drawable-hdpi/abc_cab_background_top_holo_light.9.png new file mode 100644 index 0000000..ae21b76 Binary files /dev/null and b/appcompat_v7/res/drawable-hdpi/abc_cab_background_top_holo_light.9.png differ diff --git a/appcompat_v7/res/drawable-hdpi/abc_ic_ab_back_holo_dark.png b/appcompat_v7/res/drawable-hdpi/abc_ic_ab_back_holo_dark.png new file mode 100644 index 0000000..897a1c1 Binary files /dev/null and b/appcompat_v7/res/drawable-hdpi/abc_ic_ab_back_holo_dark.png differ diff --git a/appcompat_v7/res/drawable-hdpi/abc_ic_ab_back_holo_light.png b/appcompat_v7/res/drawable-hdpi/abc_ic_ab_back_holo_light.png new file mode 100644 index 0000000..0c89f71 Binary files /dev/null and b/appcompat_v7/res/drawable-hdpi/abc_ic_ab_back_holo_light.png differ diff --git a/appcompat_v7/res/drawable-hdpi/abc_ic_cab_done_holo_dark.png b/appcompat_v7/res/drawable-hdpi/abc_ic_cab_done_holo_dark.png new file mode 100644 index 0000000..d8662e3 Binary files /dev/null and b/appcompat_v7/res/drawable-hdpi/abc_ic_cab_done_holo_dark.png differ diff --git a/appcompat_v7/res/drawable-hdpi/abc_ic_cab_done_holo_light.png b/appcompat_v7/res/drawable-hdpi/abc_ic_cab_done_holo_light.png new file mode 100644 index 0000000..ed03f62 Binary files /dev/null and b/appcompat_v7/res/drawable-hdpi/abc_ic_cab_done_holo_light.png differ diff --git a/appcompat_v7/res/drawable-hdpi/abc_ic_clear_disabled.png b/appcompat_v7/res/drawable-hdpi/abc_ic_clear_disabled.png new file mode 100644 index 0000000..d97c342 Binary files /dev/null and b/appcompat_v7/res/drawable-hdpi/abc_ic_clear_disabled.png differ diff --git a/appcompat_v7/res/drawable-hdpi/abc_ic_clear_normal.png b/appcompat_v7/res/drawable-hdpi/abc_ic_clear_normal.png new file mode 100644 index 0000000..33ad8d4 Binary files /dev/null and b/appcompat_v7/res/drawable-hdpi/abc_ic_clear_normal.png differ diff --git a/appcompat_v7/res/drawable-hdpi/abc_ic_clear_search_api_disabled_holo_light.png b/appcompat_v7/res/drawable-hdpi/abc_ic_clear_search_api_disabled_holo_light.png new file mode 100644 index 0000000..3edbd74 Binary files /dev/null and b/appcompat_v7/res/drawable-hdpi/abc_ic_clear_search_api_disabled_holo_light.png differ diff --git a/appcompat_v7/res/drawable-hdpi/abc_ic_clear_search_api_holo_light.png b/appcompat_v7/res/drawable-hdpi/abc_ic_clear_search_api_holo_light.png new file mode 100644 index 0000000..90db01b Binary files /dev/null and b/appcompat_v7/res/drawable-hdpi/abc_ic_clear_search_api_holo_light.png differ diff --git a/appcompat_v7/res/drawable-hdpi/abc_ic_commit_search_api_holo_dark.png b/appcompat_v7/res/drawable-hdpi/abc_ic_commit_search_api_holo_dark.png new file mode 100644 index 0000000..83f36a9 Binary files /dev/null and b/appcompat_v7/res/drawable-hdpi/abc_ic_commit_search_api_holo_dark.png differ diff --git a/appcompat_v7/res/drawable-hdpi/abc_ic_commit_search_api_holo_light.png b/appcompat_v7/res/drawable-hdpi/abc_ic_commit_search_api_holo_light.png new file mode 100644 index 0000000..a3cc21e Binary files /dev/null and b/appcompat_v7/res/drawable-hdpi/abc_ic_commit_search_api_holo_light.png differ diff --git a/appcompat_v7/res/drawable-hdpi/abc_ic_go.png b/appcompat_v7/res/drawable-hdpi/abc_ic_go.png new file mode 100644 index 0000000..97b825e Binary files /dev/null and b/appcompat_v7/res/drawable-hdpi/abc_ic_go.png differ diff --git a/appcompat_v7/res/drawable-hdpi/abc_ic_go_search_api_holo_light.png b/appcompat_v7/res/drawable-hdpi/abc_ic_go_search_api_holo_light.png new file mode 100644 index 0000000..7e1ba2a Binary files /dev/null and b/appcompat_v7/res/drawable-hdpi/abc_ic_go_search_api_holo_light.png differ diff --git a/appcompat_v7/res/drawable-hdpi/abc_ic_menu_moreoverflow_normal_holo_dark.png b/appcompat_v7/res/drawable-hdpi/abc_ic_menu_moreoverflow_normal_holo_dark.png new file mode 100644 index 0000000..2abc458 Binary files /dev/null and b/appcompat_v7/res/drawable-hdpi/abc_ic_menu_moreoverflow_normal_holo_dark.png differ diff --git a/appcompat_v7/res/drawable-hdpi/abc_ic_menu_moreoverflow_normal_holo_light.png b/appcompat_v7/res/drawable-hdpi/abc_ic_menu_moreoverflow_normal_holo_light.png new file mode 100644 index 0000000..bb6aef1 Binary files /dev/null and b/appcompat_v7/res/drawable-hdpi/abc_ic_menu_moreoverflow_normal_holo_light.png differ diff --git a/appcompat_v7/res/drawable-hdpi/abc_ic_menu_share_holo_dark.png b/appcompat_v7/res/drawable-hdpi/abc_ic_menu_share_holo_dark.png new file mode 100644 index 0000000..6f747c8 Binary files /dev/null and b/appcompat_v7/res/drawable-hdpi/abc_ic_menu_share_holo_dark.png differ diff --git a/appcompat_v7/res/drawable-hdpi/abc_ic_menu_share_holo_light.png b/appcompat_v7/res/drawable-hdpi/abc_ic_menu_share_holo_light.png new file mode 100644 index 0000000..682b2fd Binary files /dev/null and b/appcompat_v7/res/drawable-hdpi/abc_ic_menu_share_holo_light.png differ diff --git a/appcompat_v7/res/drawable-hdpi/abc_ic_search.png b/appcompat_v7/res/drawable-hdpi/abc_ic_search.png new file mode 100644 index 0000000..bf8bd66 Binary files /dev/null and b/appcompat_v7/res/drawable-hdpi/abc_ic_search.png differ diff --git a/appcompat_v7/res/drawable-hdpi/abc_ic_search_api_holo_light.png b/appcompat_v7/res/drawable-hdpi/abc_ic_search_api_holo_light.png new file mode 100644 index 0000000..72e207b Binary files /dev/null and b/appcompat_v7/res/drawable-hdpi/abc_ic_search_api_holo_light.png differ diff --git a/appcompat_v7/res/drawable-hdpi/abc_ic_voice_search.png b/appcompat_v7/res/drawable-hdpi/abc_ic_voice_search.png new file mode 100644 index 0000000..66d14ae Binary files /dev/null and b/appcompat_v7/res/drawable-hdpi/abc_ic_voice_search.png differ diff --git a/appcompat_v7/res/drawable-hdpi/abc_ic_voice_search_api_holo_light.png b/appcompat_v7/res/drawable-hdpi/abc_ic_voice_search_api_holo_light.png new file mode 100644 index 0000000..3481c98 Binary files /dev/null and b/appcompat_v7/res/drawable-hdpi/abc_ic_voice_search_api_holo_light.png differ diff --git a/appcompat_v7/res/drawable-hdpi/abc_list_divider_holo_dark.9.png b/appcompat_v7/res/drawable-hdpi/abc_list_divider_holo_dark.9.png new file mode 100644 index 0000000..986ab0b Binary files /dev/null and b/appcompat_v7/res/drawable-hdpi/abc_list_divider_holo_dark.9.png differ diff --git a/appcompat_v7/res/drawable-hdpi/abc_list_divider_holo_light.9.png b/appcompat_v7/res/drawable-hdpi/abc_list_divider_holo_light.9.png new file mode 100644 index 0000000..0279e17 Binary files /dev/null and b/appcompat_v7/res/drawable-hdpi/abc_list_divider_holo_light.9.png differ diff --git a/appcompat_v7/res/drawable-hdpi/abc_list_focused_holo.9.png b/appcompat_v7/res/drawable-hdpi/abc_list_focused_holo.9.png new file mode 100644 index 0000000..5552708 Binary files /dev/null and b/appcompat_v7/res/drawable-hdpi/abc_list_focused_holo.9.png differ diff --git a/appcompat_v7/res/drawable-hdpi/abc_list_longpressed_holo.9.png b/appcompat_v7/res/drawable-hdpi/abc_list_longpressed_holo.9.png new file mode 100644 index 0000000..4ea7afa Binary files /dev/null and b/appcompat_v7/res/drawable-hdpi/abc_list_longpressed_holo.9.png differ diff --git a/appcompat_v7/res/drawable-hdpi/abc_list_pressed_holo_dark.9.png b/appcompat_v7/res/drawable-hdpi/abc_list_pressed_holo_dark.9.png new file mode 100644 index 0000000..5654cd6 Binary files /dev/null and b/appcompat_v7/res/drawable-hdpi/abc_list_pressed_holo_dark.9.png differ diff --git a/appcompat_v7/res/drawable-hdpi/abc_list_pressed_holo_light.9.png b/appcompat_v7/res/drawable-hdpi/abc_list_pressed_holo_light.9.png new file mode 100644 index 0000000..5654cd6 Binary files /dev/null and b/appcompat_v7/res/drawable-hdpi/abc_list_pressed_holo_light.9.png differ diff --git a/appcompat_v7/res/drawable-hdpi/abc_list_selector_disabled_holo_dark.9.png b/appcompat_v7/res/drawable-hdpi/abc_list_selector_disabled_holo_dark.9.png new file mode 100644 index 0000000..f6fd30d Binary files /dev/null and b/appcompat_v7/res/drawable-hdpi/abc_list_selector_disabled_holo_dark.9.png differ diff --git a/appcompat_v7/res/drawable-hdpi/abc_list_selector_disabled_holo_light.9.png b/appcompat_v7/res/drawable-hdpi/abc_list_selector_disabled_holo_light.9.png new file mode 100644 index 0000000..ca8e9a2 Binary files /dev/null and b/appcompat_v7/res/drawable-hdpi/abc_list_selector_disabled_holo_light.9.png differ diff --git a/appcompat_v7/res/drawable-hdpi/abc_menu_dropdown_panel_holo_dark.9.png b/appcompat_v7/res/drawable-hdpi/abc_menu_dropdown_panel_holo_dark.9.png new file mode 100644 index 0000000..72ee35f Binary files /dev/null and b/appcompat_v7/res/drawable-hdpi/abc_menu_dropdown_panel_holo_dark.9.png differ diff --git a/appcompat_v7/res/drawable-hdpi/abc_menu_dropdown_panel_holo_light.9.png b/appcompat_v7/res/drawable-hdpi/abc_menu_dropdown_panel_holo_light.9.png new file mode 100644 index 0000000..0d1f9bf Binary files /dev/null and b/appcompat_v7/res/drawable-hdpi/abc_menu_dropdown_panel_holo_light.9.png differ diff --git a/appcompat_v7/res/drawable-hdpi/abc_menu_hardkey_panel_holo_dark.9.png b/appcompat_v7/res/drawable-hdpi/abc_menu_hardkey_panel_holo_dark.9.png new file mode 100644 index 0000000..465ee6d Binary files /dev/null and b/appcompat_v7/res/drawable-hdpi/abc_menu_hardkey_panel_holo_dark.9.png differ diff --git a/appcompat_v7/res/drawable-hdpi/abc_menu_hardkey_panel_holo_light.9.png b/appcompat_v7/res/drawable-hdpi/abc_menu_hardkey_panel_holo_light.9.png new file mode 100644 index 0000000..76a5c53 Binary files /dev/null and b/appcompat_v7/res/drawable-hdpi/abc_menu_hardkey_panel_holo_light.9.png differ diff --git a/appcompat_v7/res/drawable-hdpi/abc_spinner_ab_default_holo_dark.9.png b/appcompat_v7/res/drawable-hdpi/abc_spinner_ab_default_holo_dark.9.png new file mode 100644 index 0000000..88f8765 Binary files /dev/null and b/appcompat_v7/res/drawable-hdpi/abc_spinner_ab_default_holo_dark.9.png differ diff --git a/appcompat_v7/res/drawable-hdpi/abc_spinner_ab_default_holo_light.9.png b/appcompat_v7/res/drawable-hdpi/abc_spinner_ab_default_holo_light.9.png new file mode 100644 index 0000000..fa68a13 Binary files /dev/null and b/appcompat_v7/res/drawable-hdpi/abc_spinner_ab_default_holo_light.9.png differ diff --git a/appcompat_v7/res/drawable-hdpi/abc_spinner_ab_disabled_holo_dark.9.png b/appcompat_v7/res/drawable-hdpi/abc_spinner_ab_disabled_holo_dark.9.png new file mode 100644 index 0000000..78c63cb Binary files /dev/null and b/appcompat_v7/res/drawable-hdpi/abc_spinner_ab_disabled_holo_dark.9.png differ diff --git a/appcompat_v7/res/drawable-hdpi/abc_spinner_ab_disabled_holo_light.9.png b/appcompat_v7/res/drawable-hdpi/abc_spinner_ab_disabled_holo_light.9.png new file mode 100644 index 0000000..e13a9f8 Binary files /dev/null and b/appcompat_v7/res/drawable-hdpi/abc_spinner_ab_disabled_holo_light.9.png differ diff --git a/appcompat_v7/res/drawable-hdpi/abc_spinner_ab_focused_holo_dark.9.png b/appcompat_v7/res/drawable-hdpi/abc_spinner_ab_focused_holo_dark.9.png new file mode 100644 index 0000000..26d2e16 Binary files /dev/null and b/appcompat_v7/res/drawable-hdpi/abc_spinner_ab_focused_holo_dark.9.png differ diff --git a/appcompat_v7/res/drawable-hdpi/abc_spinner_ab_focused_holo_light.9.png b/appcompat_v7/res/drawable-hdpi/abc_spinner_ab_focused_holo_light.9.png new file mode 100644 index 0000000..00ae92a Binary files /dev/null and b/appcompat_v7/res/drawable-hdpi/abc_spinner_ab_focused_holo_light.9.png differ diff --git a/appcompat_v7/res/drawable-hdpi/abc_spinner_ab_pressed_holo_dark.9.png b/appcompat_v7/res/drawable-hdpi/abc_spinner_ab_pressed_holo_dark.9.png new file mode 100644 index 0000000..dc20a8d Binary files /dev/null and b/appcompat_v7/res/drawable-hdpi/abc_spinner_ab_pressed_holo_dark.9.png differ diff --git a/appcompat_v7/res/drawable-hdpi/abc_spinner_ab_pressed_holo_light.9.png b/appcompat_v7/res/drawable-hdpi/abc_spinner_ab_pressed_holo_light.9.png new file mode 100644 index 0000000..272a2a1 Binary files /dev/null and b/appcompat_v7/res/drawable-hdpi/abc_spinner_ab_pressed_holo_light.9.png differ diff --git a/appcompat_v7/res/drawable-hdpi/abc_tab_selected_focused_holo.9.png b/appcompat_v7/res/drawable-hdpi/abc_tab_selected_focused_holo.9.png new file mode 100644 index 0000000..673e3bf Binary files /dev/null and b/appcompat_v7/res/drawable-hdpi/abc_tab_selected_focused_holo.9.png differ diff --git a/appcompat_v7/res/drawable-hdpi/abc_tab_selected_holo.9.png b/appcompat_v7/res/drawable-hdpi/abc_tab_selected_holo.9.png new file mode 100644 index 0000000..d57df98 Binary files /dev/null and b/appcompat_v7/res/drawable-hdpi/abc_tab_selected_holo.9.png differ diff --git a/appcompat_v7/res/drawable-hdpi/abc_tab_selected_pressed_holo.9.png b/appcompat_v7/res/drawable-hdpi/abc_tab_selected_pressed_holo.9.png new file mode 100644 index 0000000..6278eef Binary files /dev/null and b/appcompat_v7/res/drawable-hdpi/abc_tab_selected_pressed_holo.9.png differ diff --git a/appcompat_v7/res/drawable-hdpi/abc_tab_unselected_pressed_holo.9.png b/appcompat_v7/res/drawable-hdpi/abc_tab_unselected_pressed_holo.9.png new file mode 100644 index 0000000..aadc6f8 Binary files /dev/null and b/appcompat_v7/res/drawable-hdpi/abc_tab_unselected_pressed_holo.9.png differ diff --git a/appcompat_v7/res/drawable-hdpi/abc_textfield_search_default_holo_dark.9.png b/appcompat_v7/res/drawable-hdpi/abc_textfield_search_default_holo_dark.9.png new file mode 100644 index 0000000..70c0e73 Binary files /dev/null and b/appcompat_v7/res/drawable-hdpi/abc_textfield_search_default_holo_dark.9.png differ diff --git a/appcompat_v7/res/drawable-hdpi/abc_textfield_search_default_holo_light.9.png b/appcompat_v7/res/drawable-hdpi/abc_textfield_search_default_holo_light.9.png new file mode 100644 index 0000000..36e71d8 Binary files /dev/null and b/appcompat_v7/res/drawable-hdpi/abc_textfield_search_default_holo_light.9.png differ diff --git a/appcompat_v7/res/drawable-hdpi/abc_textfield_search_right_default_holo_dark.9.png b/appcompat_v7/res/drawable-hdpi/abc_textfield_search_right_default_holo_dark.9.png new file mode 100644 index 0000000..4be4af5 Binary files /dev/null and b/appcompat_v7/res/drawable-hdpi/abc_textfield_search_right_default_holo_dark.9.png differ diff --git a/appcompat_v7/res/drawable-hdpi/abc_textfield_search_right_default_holo_light.9.png b/appcompat_v7/res/drawable-hdpi/abc_textfield_search_right_default_holo_light.9.png new file mode 100644 index 0000000..e72193f Binary files /dev/null and b/appcompat_v7/res/drawable-hdpi/abc_textfield_search_right_default_holo_light.9.png differ diff --git a/appcompat_v7/res/drawable-hdpi/abc_textfield_search_right_selected_holo_dark.9.png b/appcompat_v7/res/drawable-hdpi/abc_textfield_search_right_selected_holo_dark.9.png new file mode 100644 index 0000000..8f20b9d Binary files /dev/null and b/appcompat_v7/res/drawable-hdpi/abc_textfield_search_right_selected_holo_dark.9.png differ diff --git a/appcompat_v7/res/drawable-hdpi/abc_textfield_search_right_selected_holo_light.9.png b/appcompat_v7/res/drawable-hdpi/abc_textfield_search_right_selected_holo_light.9.png new file mode 100644 index 0000000..04f657e Binary files /dev/null and b/appcompat_v7/res/drawable-hdpi/abc_textfield_search_right_selected_holo_light.9.png differ diff --git a/appcompat_v7/res/drawable-hdpi/abc_textfield_search_selected_holo_dark.9.png b/appcompat_v7/res/drawable-hdpi/abc_textfield_search_selected_holo_dark.9.png new file mode 100644 index 0000000..99309ef Binary files /dev/null and b/appcompat_v7/res/drawable-hdpi/abc_textfield_search_selected_holo_dark.9.png differ diff --git a/appcompat_v7/res/drawable-hdpi/abc_textfield_search_selected_holo_light.9.png b/appcompat_v7/res/drawable-hdpi/abc_textfield_search_selected_holo_light.9.png new file mode 100644 index 0000000..9bde7fb Binary files /dev/null and b/appcompat_v7/res/drawable-hdpi/abc_textfield_search_selected_holo_light.9.png differ diff --git a/appcompat_v7/res/drawable-mdpi/abc_ab_bottom_solid_dark_holo.9.png b/appcompat_v7/res/drawable-mdpi/abc_ab_bottom_solid_dark_holo.9.png new file mode 100644 index 0000000..b229367 Binary files /dev/null and b/appcompat_v7/res/drawable-mdpi/abc_ab_bottom_solid_dark_holo.9.png differ diff --git a/appcompat_v7/res/drawable-mdpi/abc_ab_bottom_solid_light_holo.9.png b/appcompat_v7/res/drawable-mdpi/abc_ab_bottom_solid_light_holo.9.png new file mode 100644 index 0000000..0706c8a Binary files /dev/null and b/appcompat_v7/res/drawable-mdpi/abc_ab_bottom_solid_light_holo.9.png differ diff --git a/appcompat_v7/res/drawable-mdpi/abc_ab_bottom_transparent_dark_holo.9.png b/appcompat_v7/res/drawable-mdpi/abc_ab_bottom_transparent_dark_holo.9.png new file mode 100644 index 0000000..d814d02 Binary files /dev/null and b/appcompat_v7/res/drawable-mdpi/abc_ab_bottom_transparent_dark_holo.9.png differ diff --git a/appcompat_v7/res/drawable-mdpi/abc_ab_bottom_transparent_light_holo.9.png b/appcompat_v7/res/drawable-mdpi/abc_ab_bottom_transparent_light_holo.9.png new file mode 100644 index 0000000..b139c8e Binary files /dev/null and b/appcompat_v7/res/drawable-mdpi/abc_ab_bottom_transparent_light_holo.9.png differ diff --git a/appcompat_v7/res/drawable-mdpi/abc_ab_share_pack_holo_dark.9.png b/appcompat_v7/res/drawable-mdpi/abc_ab_share_pack_holo_dark.9.png new file mode 100644 index 0000000..ed4ba34 Binary files /dev/null and b/appcompat_v7/res/drawable-mdpi/abc_ab_share_pack_holo_dark.9.png differ diff --git a/appcompat_v7/res/drawable-mdpi/abc_ab_share_pack_holo_light.9.png b/appcompat_v7/res/drawable-mdpi/abc_ab_share_pack_holo_light.9.png new file mode 100644 index 0000000..8f10bd5 Binary files /dev/null and b/appcompat_v7/res/drawable-mdpi/abc_ab_share_pack_holo_light.9.png differ diff --git a/appcompat_v7/res/drawable-mdpi/abc_ab_solid_dark_holo.9.png b/appcompat_v7/res/drawable-mdpi/abc_ab_solid_dark_holo.9.png new file mode 100644 index 0000000..743d00b Binary files /dev/null and b/appcompat_v7/res/drawable-mdpi/abc_ab_solid_dark_holo.9.png differ diff --git a/appcompat_v7/res/drawable-mdpi/abc_ab_solid_light_holo.9.png b/appcompat_v7/res/drawable-mdpi/abc_ab_solid_light_holo.9.png new file mode 100644 index 0000000..17c1fb9 Binary files /dev/null and b/appcompat_v7/res/drawable-mdpi/abc_ab_solid_light_holo.9.png differ diff --git a/appcompat_v7/res/drawable-mdpi/abc_ab_stacked_solid_dark_holo.9.png b/appcompat_v7/res/drawable-mdpi/abc_ab_stacked_solid_dark_holo.9.png new file mode 100644 index 0000000..007a4b2 Binary files /dev/null and b/appcompat_v7/res/drawable-mdpi/abc_ab_stacked_solid_dark_holo.9.png differ diff --git a/appcompat_v7/res/drawable-mdpi/abc_ab_stacked_solid_light_holo.9.png b/appcompat_v7/res/drawable-mdpi/abc_ab_stacked_solid_light_holo.9.png new file mode 100644 index 0000000..ad6e1a4 Binary files /dev/null and b/appcompat_v7/res/drawable-mdpi/abc_ab_stacked_solid_light_holo.9.png differ diff --git a/appcompat_v7/res/drawable-mdpi/abc_ab_stacked_transparent_dark_holo.9.png b/appcompat_v7/res/drawable-mdpi/abc_ab_stacked_transparent_dark_holo.9.png new file mode 100644 index 0000000..0ad6c88 Binary files /dev/null and b/appcompat_v7/res/drawable-mdpi/abc_ab_stacked_transparent_dark_holo.9.png differ diff --git a/appcompat_v7/res/drawable-mdpi/abc_ab_stacked_transparent_light_holo.9.png b/appcompat_v7/res/drawable-mdpi/abc_ab_stacked_transparent_light_holo.9.png new file mode 100644 index 0000000..19b50ab Binary files /dev/null and b/appcompat_v7/res/drawable-mdpi/abc_ab_stacked_transparent_light_holo.9.png differ diff --git a/appcompat_v7/res/drawable-mdpi/abc_ab_transparent_dark_holo.9.png b/appcompat_v7/res/drawable-mdpi/abc_ab_transparent_dark_holo.9.png new file mode 100644 index 0000000..ad980b1 Binary files /dev/null and b/appcompat_v7/res/drawable-mdpi/abc_ab_transparent_dark_holo.9.png differ diff --git a/appcompat_v7/res/drawable-mdpi/abc_ab_transparent_light_holo.9.png b/appcompat_v7/res/drawable-mdpi/abc_ab_transparent_light_holo.9.png new file mode 100644 index 0000000..60e6c52 Binary files /dev/null and b/appcompat_v7/res/drawable-mdpi/abc_ab_transparent_light_holo.9.png differ diff --git a/appcompat_v7/res/drawable-mdpi/abc_cab_background_bottom_holo_dark.9.png b/appcompat_v7/res/drawable-mdpi/abc_cab_background_bottom_holo_dark.9.png new file mode 100644 index 0000000..d8f1c8b Binary files /dev/null and b/appcompat_v7/res/drawable-mdpi/abc_cab_background_bottom_holo_dark.9.png differ diff --git a/appcompat_v7/res/drawable-mdpi/abc_cab_background_bottom_holo_light.9.png b/appcompat_v7/res/drawable-mdpi/abc_cab_background_bottom_holo_light.9.png new file mode 100644 index 0000000..31e4989 Binary files /dev/null and b/appcompat_v7/res/drawable-mdpi/abc_cab_background_bottom_holo_light.9.png differ diff --git a/appcompat_v7/res/drawable-mdpi/abc_cab_background_top_holo_dark.9.png b/appcompat_v7/res/drawable-mdpi/abc_cab_background_top_holo_dark.9.png new file mode 100644 index 0000000..7c2cbe5 Binary files /dev/null and b/appcompat_v7/res/drawable-mdpi/abc_cab_background_top_holo_dark.9.png differ diff --git a/appcompat_v7/res/drawable-mdpi/abc_cab_background_top_holo_light.9.png b/appcompat_v7/res/drawable-mdpi/abc_cab_background_top_holo_light.9.png new file mode 100644 index 0000000..30cbdc1 Binary files /dev/null and b/appcompat_v7/res/drawable-mdpi/abc_cab_background_top_holo_light.9.png differ diff --git a/appcompat_v7/res/drawable-mdpi/abc_ic_ab_back_holo_dark.png b/appcompat_v7/res/drawable-mdpi/abc_ic_ab_back_holo_dark.png new file mode 100644 index 0000000..df2d3d1 Binary files /dev/null and b/appcompat_v7/res/drawable-mdpi/abc_ic_ab_back_holo_dark.png differ diff --git a/appcompat_v7/res/drawable-mdpi/abc_ic_ab_back_holo_light.png b/appcompat_v7/res/drawable-mdpi/abc_ic_ab_back_holo_light.png new file mode 100644 index 0000000..b2aa9c2 Binary files /dev/null and b/appcompat_v7/res/drawable-mdpi/abc_ic_ab_back_holo_light.png differ diff --git a/appcompat_v7/res/drawable-mdpi/abc_ic_cab_done_holo_dark.png b/appcompat_v7/res/drawable-mdpi/abc_ic_cab_done_holo_dark.png new file mode 100644 index 0000000..a17b6a7 Binary files /dev/null and b/appcompat_v7/res/drawable-mdpi/abc_ic_cab_done_holo_dark.png differ diff --git a/appcompat_v7/res/drawable-mdpi/abc_ic_cab_done_holo_light.png b/appcompat_v7/res/drawable-mdpi/abc_ic_cab_done_holo_light.png new file mode 100644 index 0000000..b28b3b5 Binary files /dev/null and b/appcompat_v7/res/drawable-mdpi/abc_ic_cab_done_holo_light.png differ diff --git a/appcompat_v7/res/drawable-mdpi/abc_ic_clear_disabled.png b/appcompat_v7/res/drawable-mdpi/abc_ic_clear_disabled.png new file mode 100644 index 0000000..79228ba Binary files /dev/null and b/appcompat_v7/res/drawable-mdpi/abc_ic_clear_disabled.png differ diff --git a/appcompat_v7/res/drawable-mdpi/abc_ic_clear_normal.png b/appcompat_v7/res/drawable-mdpi/abc_ic_clear_normal.png new file mode 100644 index 0000000..86944a8 Binary files /dev/null and b/appcompat_v7/res/drawable-mdpi/abc_ic_clear_normal.png differ diff --git a/appcompat_v7/res/drawable-mdpi/abc_ic_clear_search_api_disabled_holo_light.png b/appcompat_v7/res/drawable-mdpi/abc_ic_clear_search_api_disabled_holo_light.png new file mode 100644 index 0000000..c0bdf06 Binary files /dev/null and b/appcompat_v7/res/drawable-mdpi/abc_ic_clear_search_api_disabled_holo_light.png differ diff --git a/appcompat_v7/res/drawable-mdpi/abc_ic_clear_search_api_holo_light.png b/appcompat_v7/res/drawable-mdpi/abc_ic_clear_search_api_holo_light.png new file mode 100644 index 0000000..15b86cb Binary files /dev/null and b/appcompat_v7/res/drawable-mdpi/abc_ic_clear_search_api_holo_light.png differ diff --git a/appcompat_v7/res/drawable-mdpi/abc_ic_commit_search_api_holo_dark.png b/appcompat_v7/res/drawable-mdpi/abc_ic_commit_search_api_holo_dark.png new file mode 100644 index 0000000..844c99c Binary files /dev/null and b/appcompat_v7/res/drawable-mdpi/abc_ic_commit_search_api_holo_dark.png differ diff --git a/appcompat_v7/res/drawable-mdpi/abc_ic_commit_search_api_holo_light.png b/appcompat_v7/res/drawable-mdpi/abc_ic_commit_search_api_holo_light.png new file mode 100644 index 0000000..86c170e Binary files /dev/null and b/appcompat_v7/res/drawable-mdpi/abc_ic_commit_search_api_holo_light.png differ diff --git a/appcompat_v7/res/drawable-mdpi/abc_ic_go.png b/appcompat_v7/res/drawable-mdpi/abc_ic_go.png new file mode 100644 index 0000000..bf19833 Binary files /dev/null and b/appcompat_v7/res/drawable-mdpi/abc_ic_go.png differ diff --git a/appcompat_v7/res/drawable-mdpi/abc_ic_go_search_api_holo_light.png b/appcompat_v7/res/drawable-mdpi/abc_ic_go_search_api_holo_light.png new file mode 100644 index 0000000..8518498 Binary files /dev/null and b/appcompat_v7/res/drawable-mdpi/abc_ic_go_search_api_holo_light.png differ diff --git a/appcompat_v7/res/drawable-mdpi/abc_ic_menu_moreoverflow_normal_holo_dark.png b/appcompat_v7/res/drawable-mdpi/abc_ic_menu_moreoverflow_normal_holo_dark.png new file mode 100644 index 0000000..ba704b6 Binary files /dev/null and b/appcompat_v7/res/drawable-mdpi/abc_ic_menu_moreoverflow_normal_holo_dark.png differ diff --git a/appcompat_v7/res/drawable-mdpi/abc_ic_menu_moreoverflow_normal_holo_light.png b/appcompat_v7/res/drawable-mdpi/abc_ic_menu_moreoverflow_normal_holo_light.png new file mode 100644 index 0000000..01d6816 Binary files /dev/null and b/appcompat_v7/res/drawable-mdpi/abc_ic_menu_moreoverflow_normal_holo_light.png differ diff --git a/appcompat_v7/res/drawable-mdpi/abc_ic_menu_share_holo_dark.png b/appcompat_v7/res/drawable-mdpi/abc_ic_menu_share_holo_dark.png new file mode 100644 index 0000000..6bf21e3 Binary files /dev/null and b/appcompat_v7/res/drawable-mdpi/abc_ic_menu_share_holo_dark.png differ diff --git a/appcompat_v7/res/drawable-mdpi/abc_ic_menu_share_holo_light.png b/appcompat_v7/res/drawable-mdpi/abc_ic_menu_share_holo_light.png new file mode 100644 index 0000000..70fe31a Binary files /dev/null and b/appcompat_v7/res/drawable-mdpi/abc_ic_menu_share_holo_light.png differ diff --git a/appcompat_v7/res/drawable-mdpi/abc_ic_search.png b/appcompat_v7/res/drawable-mdpi/abc_ic_search.png new file mode 100644 index 0000000..4be72f1 Binary files /dev/null and b/appcompat_v7/res/drawable-mdpi/abc_ic_search.png differ diff --git a/appcompat_v7/res/drawable-mdpi/abc_ic_search_api_holo_light.png b/appcompat_v7/res/drawable-mdpi/abc_ic_search_api_holo_light.png new file mode 100644 index 0000000..f2e26f8 Binary files /dev/null and b/appcompat_v7/res/drawable-mdpi/abc_ic_search_api_holo_light.png differ diff --git a/appcompat_v7/res/drawable-mdpi/abc_ic_voice_search.png b/appcompat_v7/res/drawable-mdpi/abc_ic_voice_search.png new file mode 100644 index 0000000..73c6be6 Binary files /dev/null and b/appcompat_v7/res/drawable-mdpi/abc_ic_voice_search.png differ diff --git a/appcompat_v7/res/drawable-mdpi/abc_ic_voice_search_api_holo_light.png b/appcompat_v7/res/drawable-mdpi/abc_ic_voice_search_api_holo_light.png new file mode 100644 index 0000000..71d838e Binary files /dev/null and b/appcompat_v7/res/drawable-mdpi/abc_ic_voice_search_api_holo_light.png differ diff --git a/appcompat_v7/res/drawable-mdpi/abc_list_divider_holo_dark.9.png b/appcompat_v7/res/drawable-mdpi/abc_list_divider_holo_dark.9.png new file mode 100644 index 0000000..986ab0b Binary files /dev/null and b/appcompat_v7/res/drawable-mdpi/abc_list_divider_holo_dark.9.png differ diff --git a/appcompat_v7/res/drawable-mdpi/abc_list_divider_holo_light.9.png b/appcompat_v7/res/drawable-mdpi/abc_list_divider_holo_light.9.png new file mode 100644 index 0000000..0279e17 Binary files /dev/null and b/appcompat_v7/res/drawable-mdpi/abc_list_divider_holo_light.9.png differ diff --git a/appcompat_v7/res/drawable-mdpi/abc_list_focused_holo.9.png b/appcompat_v7/res/drawable-mdpi/abc_list_focused_holo.9.png new file mode 100644 index 0000000..00f05d8 Binary files /dev/null and b/appcompat_v7/res/drawable-mdpi/abc_list_focused_holo.9.png differ diff --git a/appcompat_v7/res/drawable-mdpi/abc_list_longpressed_holo.9.png b/appcompat_v7/res/drawable-mdpi/abc_list_longpressed_holo.9.png new file mode 100644 index 0000000..3bf8e03 Binary files /dev/null and b/appcompat_v7/res/drawable-mdpi/abc_list_longpressed_holo.9.png differ diff --git a/appcompat_v7/res/drawable-mdpi/abc_list_pressed_holo_dark.9.png b/appcompat_v7/res/drawable-mdpi/abc_list_pressed_holo_dark.9.png new file mode 100644 index 0000000..6e77525 Binary files /dev/null and b/appcompat_v7/res/drawable-mdpi/abc_list_pressed_holo_dark.9.png differ diff --git a/appcompat_v7/res/drawable-mdpi/abc_list_pressed_holo_light.9.png b/appcompat_v7/res/drawable-mdpi/abc_list_pressed_holo_light.9.png new file mode 100644 index 0000000..6e77525 Binary files /dev/null and b/appcompat_v7/res/drawable-mdpi/abc_list_pressed_holo_light.9.png differ diff --git a/appcompat_v7/res/drawable-mdpi/abc_list_selector_disabled_holo_dark.9.png b/appcompat_v7/res/drawable-mdpi/abc_list_selector_disabled_holo_dark.9.png new file mode 100644 index 0000000..92da2f0 Binary files /dev/null and b/appcompat_v7/res/drawable-mdpi/abc_list_selector_disabled_holo_dark.9.png differ diff --git a/appcompat_v7/res/drawable-mdpi/abc_list_selector_disabled_holo_light.9.png b/appcompat_v7/res/drawable-mdpi/abc_list_selector_disabled_holo_light.9.png new file mode 100644 index 0000000..42cb646 Binary files /dev/null and b/appcompat_v7/res/drawable-mdpi/abc_list_selector_disabled_holo_light.9.png differ diff --git a/appcompat_v7/res/drawable-mdpi/abc_menu_dropdown_panel_holo_dark.9.png b/appcompat_v7/res/drawable-mdpi/abc_menu_dropdown_panel_holo_dark.9.png new file mode 100644 index 0000000..31dc342 Binary files /dev/null and b/appcompat_v7/res/drawable-mdpi/abc_menu_dropdown_panel_holo_dark.9.png differ diff --git a/appcompat_v7/res/drawable-mdpi/abc_menu_dropdown_panel_holo_light.9.png b/appcompat_v7/res/drawable-mdpi/abc_menu_dropdown_panel_holo_light.9.png new file mode 100644 index 0000000..755c145 Binary files /dev/null and b/appcompat_v7/res/drawable-mdpi/abc_menu_dropdown_panel_holo_light.9.png differ diff --git a/appcompat_v7/res/drawable-mdpi/abc_menu_hardkey_panel_holo_dark.9.png b/appcompat_v7/res/drawable-mdpi/abc_menu_hardkey_panel_holo_dark.9.png new file mode 100644 index 0000000..3677994 Binary files /dev/null and b/appcompat_v7/res/drawable-mdpi/abc_menu_hardkey_panel_holo_dark.9.png differ diff --git a/appcompat_v7/res/drawable-mdpi/abc_menu_hardkey_panel_holo_light.9.png b/appcompat_v7/res/drawable-mdpi/abc_menu_hardkey_panel_holo_light.9.png new file mode 100644 index 0000000..02b25f0 Binary files /dev/null and b/appcompat_v7/res/drawable-mdpi/abc_menu_hardkey_panel_holo_light.9.png differ diff --git a/appcompat_v7/res/drawable-mdpi/abc_spinner_ab_default_holo_dark.9.png b/appcompat_v7/res/drawable-mdpi/abc_spinner_ab_default_holo_dark.9.png new file mode 100644 index 0000000..8d75946 Binary files /dev/null and b/appcompat_v7/res/drawable-mdpi/abc_spinner_ab_default_holo_dark.9.png differ diff --git a/appcompat_v7/res/drawable-mdpi/abc_spinner_ab_default_holo_light.9.png b/appcompat_v7/res/drawable-mdpi/abc_spinner_ab_default_holo_light.9.png new file mode 100644 index 0000000..716560b Binary files /dev/null and b/appcompat_v7/res/drawable-mdpi/abc_spinner_ab_default_holo_light.9.png differ diff --git a/appcompat_v7/res/drawable-mdpi/abc_spinner_ab_disabled_holo_dark.9.png b/appcompat_v7/res/drawable-mdpi/abc_spinner_ab_disabled_holo_dark.9.png new file mode 100644 index 0000000..c3ba89c Binary files /dev/null and b/appcompat_v7/res/drawable-mdpi/abc_spinner_ab_disabled_holo_dark.9.png differ diff --git a/appcompat_v7/res/drawable-mdpi/abc_spinner_ab_disabled_holo_light.9.png b/appcompat_v7/res/drawable-mdpi/abc_spinner_ab_disabled_holo_light.9.png new file mode 100644 index 0000000..67c5358 Binary files /dev/null and b/appcompat_v7/res/drawable-mdpi/abc_spinner_ab_disabled_holo_light.9.png differ diff --git a/appcompat_v7/res/drawable-mdpi/abc_spinner_ab_focused_holo_dark.9.png b/appcompat_v7/res/drawable-mdpi/abc_spinner_ab_focused_holo_dark.9.png new file mode 100644 index 0000000..c015f43 Binary files /dev/null and b/appcompat_v7/res/drawable-mdpi/abc_spinner_ab_focused_holo_dark.9.png differ diff --git a/appcompat_v7/res/drawable-mdpi/abc_spinner_ab_focused_holo_light.9.png b/appcompat_v7/res/drawable-mdpi/abc_spinner_ab_focused_holo_light.9.png new file mode 100644 index 0000000..487edc2 Binary files /dev/null and b/appcompat_v7/res/drawable-mdpi/abc_spinner_ab_focused_holo_light.9.png differ diff --git a/appcompat_v7/res/drawable-mdpi/abc_spinner_ab_pressed_holo_dark.9.png b/appcompat_v7/res/drawable-mdpi/abc_spinner_ab_pressed_holo_dark.9.png new file mode 100644 index 0000000..2fa15e7 Binary files /dev/null and b/appcompat_v7/res/drawable-mdpi/abc_spinner_ab_pressed_holo_dark.9.png differ diff --git a/appcompat_v7/res/drawable-mdpi/abc_spinner_ab_pressed_holo_light.9.png b/appcompat_v7/res/drawable-mdpi/abc_spinner_ab_pressed_holo_light.9.png new file mode 100644 index 0000000..a964b22 Binary files /dev/null and b/appcompat_v7/res/drawable-mdpi/abc_spinner_ab_pressed_holo_light.9.png differ diff --git a/appcompat_v7/res/drawable-mdpi/abc_tab_selected_focused_holo.9.png b/appcompat_v7/res/drawable-mdpi/abc_tab_selected_focused_holo.9.png new file mode 100644 index 0000000..c9972e7 Binary files /dev/null and b/appcompat_v7/res/drawable-mdpi/abc_tab_selected_focused_holo.9.png differ diff --git a/appcompat_v7/res/drawable-mdpi/abc_tab_selected_holo.9.png b/appcompat_v7/res/drawable-mdpi/abc_tab_selected_holo.9.png new file mode 100644 index 0000000..587337c Binary files /dev/null and b/appcompat_v7/res/drawable-mdpi/abc_tab_selected_holo.9.png differ diff --git a/appcompat_v7/res/drawable-mdpi/abc_tab_selected_pressed_holo.9.png b/appcompat_v7/res/drawable-mdpi/abc_tab_selected_pressed_holo.9.png new file mode 100644 index 0000000..155c4fc Binary files /dev/null and b/appcompat_v7/res/drawable-mdpi/abc_tab_selected_pressed_holo.9.png differ diff --git a/appcompat_v7/res/drawable-mdpi/abc_tab_unselected_pressed_holo.9.png b/appcompat_v7/res/drawable-mdpi/abc_tab_unselected_pressed_holo.9.png new file mode 100644 index 0000000..b1223fe Binary files /dev/null and b/appcompat_v7/res/drawable-mdpi/abc_tab_unselected_pressed_holo.9.png differ diff --git a/appcompat_v7/res/drawable-mdpi/abc_textfield_search_default_holo_dark.9.png b/appcompat_v7/res/drawable-mdpi/abc_textfield_search_default_holo_dark.9.png new file mode 100644 index 0000000..081657e Binary files /dev/null and b/appcompat_v7/res/drawable-mdpi/abc_textfield_search_default_holo_dark.9.png differ diff --git a/appcompat_v7/res/drawable-mdpi/abc_textfield_search_default_holo_light.9.png b/appcompat_v7/res/drawable-mdpi/abc_textfield_search_default_holo_light.9.png new file mode 100644 index 0000000..3f312b4 Binary files /dev/null and b/appcompat_v7/res/drawable-mdpi/abc_textfield_search_default_holo_light.9.png differ diff --git a/appcompat_v7/res/drawable-mdpi/abc_textfield_search_right_default_holo_dark.9.png b/appcompat_v7/res/drawable-mdpi/abc_textfield_search_right_default_holo_dark.9.png new file mode 100644 index 0000000..b086fae Binary files /dev/null and b/appcompat_v7/res/drawable-mdpi/abc_textfield_search_right_default_holo_dark.9.png differ diff --git a/appcompat_v7/res/drawable-mdpi/abc_textfield_search_right_default_holo_light.9.png b/appcompat_v7/res/drawable-mdpi/abc_textfield_search_right_default_holo_light.9.png new file mode 100644 index 0000000..73c336a Binary files /dev/null and b/appcompat_v7/res/drawable-mdpi/abc_textfield_search_right_default_holo_light.9.png differ diff --git a/appcompat_v7/res/drawable-mdpi/abc_textfield_search_right_selected_holo_dark.9.png b/appcompat_v7/res/drawable-mdpi/abc_textfield_search_right_selected_holo_dark.9.png new file mode 100644 index 0000000..726e0ff Binary files /dev/null and b/appcompat_v7/res/drawable-mdpi/abc_textfield_search_right_selected_holo_dark.9.png differ diff --git a/appcompat_v7/res/drawable-mdpi/abc_textfield_search_right_selected_holo_light.9.png b/appcompat_v7/res/drawable-mdpi/abc_textfield_search_right_selected_holo_light.9.png new file mode 100644 index 0000000..726e0ff Binary files /dev/null and b/appcompat_v7/res/drawable-mdpi/abc_textfield_search_right_selected_holo_light.9.png differ diff --git a/appcompat_v7/res/drawable-mdpi/abc_textfield_search_selected_holo_dark.9.png b/appcompat_v7/res/drawable-mdpi/abc_textfield_search_selected_holo_dark.9.png new file mode 100644 index 0000000..1767c16 Binary files /dev/null and b/appcompat_v7/res/drawable-mdpi/abc_textfield_search_selected_holo_dark.9.png differ diff --git a/appcompat_v7/res/drawable-mdpi/abc_textfield_search_selected_holo_light.9.png b/appcompat_v7/res/drawable-mdpi/abc_textfield_search_selected_holo_light.9.png new file mode 100644 index 0000000..1767c16 Binary files /dev/null and b/appcompat_v7/res/drawable-mdpi/abc_textfield_search_selected_holo_light.9.png differ diff --git a/appcompat_v7/res/drawable-xhdpi/abc_ab_bottom_solid_dark_holo.9.png b/appcompat_v7/res/drawable-xhdpi/abc_ab_bottom_solid_dark_holo.9.png new file mode 100644 index 0000000..5753346 Binary files /dev/null and b/appcompat_v7/res/drawable-xhdpi/abc_ab_bottom_solid_dark_holo.9.png differ diff --git a/appcompat_v7/res/drawable-xhdpi/abc_ab_bottom_solid_light_holo.9.png b/appcompat_v7/res/drawable-xhdpi/abc_ab_bottom_solid_light_holo.9.png new file mode 100644 index 0000000..8155fe8 Binary files /dev/null and b/appcompat_v7/res/drawable-xhdpi/abc_ab_bottom_solid_light_holo.9.png differ diff --git a/appcompat_v7/res/drawable-xhdpi/abc_ab_bottom_transparent_dark_holo.9.png b/appcompat_v7/res/drawable-xhdpi/abc_ab_bottom_transparent_dark_holo.9.png new file mode 100644 index 0000000..6cee9a1 Binary files /dev/null and b/appcompat_v7/res/drawable-xhdpi/abc_ab_bottom_transparent_dark_holo.9.png differ diff --git a/appcompat_v7/res/drawable-xhdpi/abc_ab_bottom_transparent_light_holo.9.png b/appcompat_v7/res/drawable-xhdpi/abc_ab_bottom_transparent_light_holo.9.png new file mode 100644 index 0000000..fa4d76a Binary files /dev/null and b/appcompat_v7/res/drawable-xhdpi/abc_ab_bottom_transparent_light_holo.9.png differ diff --git a/appcompat_v7/res/drawable-xhdpi/abc_ab_share_pack_holo_dark.9.png b/appcompat_v7/res/drawable-xhdpi/abc_ab_share_pack_holo_dark.9.png new file mode 100644 index 0000000..55099d4 Binary files /dev/null and b/appcompat_v7/res/drawable-xhdpi/abc_ab_share_pack_holo_dark.9.png differ diff --git a/appcompat_v7/res/drawable-xhdpi/abc_ab_share_pack_holo_light.9.png b/appcompat_v7/res/drawable-xhdpi/abc_ab_share_pack_holo_light.9.png new file mode 100644 index 0000000..3c4701f Binary files /dev/null and b/appcompat_v7/res/drawable-xhdpi/abc_ab_share_pack_holo_light.9.png differ diff --git a/appcompat_v7/res/drawable-xhdpi/abc_ab_solid_dark_holo.9.png b/appcompat_v7/res/drawable-xhdpi/abc_ab_solid_dark_holo.9.png new file mode 100644 index 0000000..6622cba Binary files /dev/null and b/appcompat_v7/res/drawable-xhdpi/abc_ab_solid_dark_holo.9.png differ diff --git a/appcompat_v7/res/drawable-xhdpi/abc_ab_solid_light_holo.9.png b/appcompat_v7/res/drawable-xhdpi/abc_ab_solid_light_holo.9.png new file mode 100644 index 0000000..c427297 Binary files /dev/null and b/appcompat_v7/res/drawable-xhdpi/abc_ab_solid_light_holo.9.png differ diff --git a/appcompat_v7/res/drawable-xhdpi/abc_ab_stacked_solid_dark_holo.9.png b/appcompat_v7/res/drawable-xhdpi/abc_ab_stacked_solid_dark_holo.9.png new file mode 100644 index 0000000..a0d9c1b Binary files /dev/null and b/appcompat_v7/res/drawable-xhdpi/abc_ab_stacked_solid_dark_holo.9.png differ diff --git a/appcompat_v7/res/drawable-xhdpi/abc_ab_stacked_solid_light_holo.9.png b/appcompat_v7/res/drawable-xhdpi/abc_ab_stacked_solid_light_holo.9.png new file mode 100644 index 0000000..d36f99f Binary files /dev/null and b/appcompat_v7/res/drawable-xhdpi/abc_ab_stacked_solid_light_holo.9.png differ diff --git a/appcompat_v7/res/drawable-xhdpi/abc_ab_stacked_transparent_dark_holo.9.png b/appcompat_v7/res/drawable-xhdpi/abc_ab_stacked_transparent_dark_holo.9.png new file mode 100644 index 0000000..5ad475d Binary files /dev/null and b/appcompat_v7/res/drawable-xhdpi/abc_ab_stacked_transparent_dark_holo.9.png differ diff --git a/appcompat_v7/res/drawable-xhdpi/abc_ab_stacked_transparent_light_holo.9.png b/appcompat_v7/res/drawable-xhdpi/abc_ab_stacked_transparent_light_holo.9.png new file mode 100644 index 0000000..6ade5ee Binary files /dev/null and b/appcompat_v7/res/drawable-xhdpi/abc_ab_stacked_transparent_light_holo.9.png differ diff --git a/appcompat_v7/res/drawable-xhdpi/abc_ab_transparent_dark_holo.9.png b/appcompat_v7/res/drawable-xhdpi/abc_ab_transparent_dark_holo.9.png new file mode 100644 index 0000000..719b923 Binary files /dev/null and b/appcompat_v7/res/drawable-xhdpi/abc_ab_transparent_dark_holo.9.png differ diff --git a/appcompat_v7/res/drawable-xhdpi/abc_ab_transparent_light_holo.9.png b/appcompat_v7/res/drawable-xhdpi/abc_ab_transparent_light_holo.9.png new file mode 100644 index 0000000..6da264d Binary files /dev/null and b/appcompat_v7/res/drawable-xhdpi/abc_ab_transparent_light_holo.9.png differ diff --git a/appcompat_v7/res/drawable-xhdpi/abc_cab_background_bottom_holo_dark.9.png b/appcompat_v7/res/drawable-xhdpi/abc_cab_background_bottom_holo_dark.9.png new file mode 100644 index 0000000..0bd0980 Binary files /dev/null and b/appcompat_v7/res/drawable-xhdpi/abc_cab_background_bottom_holo_dark.9.png differ diff --git a/appcompat_v7/res/drawable-xhdpi/abc_cab_background_bottom_holo_light.9.png b/appcompat_v7/res/drawable-xhdpi/abc_cab_background_bottom_holo_light.9.png new file mode 100644 index 0000000..43ed26d Binary files /dev/null and b/appcompat_v7/res/drawable-xhdpi/abc_cab_background_bottom_holo_light.9.png differ diff --git a/appcompat_v7/res/drawable-xhdpi/abc_cab_background_top_holo_dark.9.png b/appcompat_v7/res/drawable-xhdpi/abc_cab_background_top_holo_dark.9.png new file mode 100644 index 0000000..6b31579 Binary files /dev/null and b/appcompat_v7/res/drawable-xhdpi/abc_cab_background_top_holo_dark.9.png differ diff --git a/appcompat_v7/res/drawable-xhdpi/abc_cab_background_top_holo_light.9.png b/appcompat_v7/res/drawable-xhdpi/abc_cab_background_top_holo_light.9.png new file mode 100644 index 0000000..df0121b Binary files /dev/null and b/appcompat_v7/res/drawable-xhdpi/abc_cab_background_top_holo_light.9.png differ diff --git a/appcompat_v7/res/drawable-xhdpi/abc_ic_ab_back_holo_dark.png b/appcompat_v7/res/drawable-xhdpi/abc_ic_ab_back_holo_dark.png new file mode 100644 index 0000000..8ded62f Binary files /dev/null and b/appcompat_v7/res/drawable-xhdpi/abc_ic_ab_back_holo_dark.png differ diff --git a/appcompat_v7/res/drawable-xhdpi/abc_ic_ab_back_holo_light.png b/appcompat_v7/res/drawable-xhdpi/abc_ic_ab_back_holo_light.png new file mode 100644 index 0000000..517e9f7 Binary files /dev/null and b/appcompat_v7/res/drawable-xhdpi/abc_ic_ab_back_holo_light.png differ diff --git a/appcompat_v7/res/drawable-xhdpi/abc_ic_cab_done_holo_dark.png b/appcompat_v7/res/drawable-xhdpi/abc_ic_cab_done_holo_dark.png new file mode 100644 index 0000000..2e06dd0 Binary files /dev/null and b/appcompat_v7/res/drawable-xhdpi/abc_ic_cab_done_holo_dark.png differ diff --git a/appcompat_v7/res/drawable-xhdpi/abc_ic_cab_done_holo_light.png b/appcompat_v7/res/drawable-xhdpi/abc_ic_cab_done_holo_light.png new file mode 100644 index 0000000..bb19810 Binary files /dev/null and b/appcompat_v7/res/drawable-xhdpi/abc_ic_cab_done_holo_light.png differ diff --git a/appcompat_v7/res/drawable-xhdpi/abc_ic_clear_disabled.png b/appcompat_v7/res/drawable-xhdpi/abc_ic_clear_disabled.png new file mode 100644 index 0000000..e35c5f0 Binary files /dev/null and b/appcompat_v7/res/drawable-xhdpi/abc_ic_clear_disabled.png differ diff --git a/appcompat_v7/res/drawable-xhdpi/abc_ic_clear_search_api_disabled_holo_light.png b/appcompat_v7/res/drawable-xhdpi/abc_ic_clear_search_api_disabled_holo_light.png new file mode 100644 index 0000000..7fd7aeb Binary files /dev/null and b/appcompat_v7/res/drawable-xhdpi/abc_ic_clear_search_api_disabled_holo_light.png differ diff --git a/appcompat_v7/res/drawable-xhdpi/abc_ic_clear_search_api_holo_light.png b/appcompat_v7/res/drawable-xhdpi/abc_ic_clear_search_api_holo_light.png new file mode 100644 index 0000000..53cfbd3 Binary files /dev/null and b/appcompat_v7/res/drawable-xhdpi/abc_ic_clear_search_api_holo_light.png differ diff --git a/appcompat_v7/res/drawable-xhdpi/abc_ic_commit_search_api_holo_dark.png b/appcompat_v7/res/drawable-xhdpi/abc_ic_commit_search_api_holo_dark.png new file mode 100644 index 0000000..d8faf90 Binary files /dev/null and b/appcompat_v7/res/drawable-xhdpi/abc_ic_commit_search_api_holo_dark.png differ diff --git a/appcompat_v7/res/drawable-xhdpi/abc_ic_commit_search_api_holo_light.png b/appcompat_v7/res/drawable-xhdpi/abc_ic_commit_search_api_holo_light.png new file mode 100644 index 0000000..e7c7280 Binary files /dev/null and b/appcompat_v7/res/drawable-xhdpi/abc_ic_commit_search_api_holo_light.png differ diff --git a/appcompat_v7/res/drawable-xhdpi/abc_ic_go.png b/appcompat_v7/res/drawable-xhdpi/abc_ic_go.png new file mode 100644 index 0000000..1e2dcfa Binary files /dev/null and b/appcompat_v7/res/drawable-xhdpi/abc_ic_go.png differ diff --git a/appcompat_v7/res/drawable-xhdpi/abc_ic_go_search_api_holo_light.png b/appcompat_v7/res/drawable-xhdpi/abc_ic_go_search_api_holo_light.png new file mode 100644 index 0000000..f12eafc Binary files /dev/null and b/appcompat_v7/res/drawable-xhdpi/abc_ic_go_search_api_holo_light.png differ diff --git a/appcompat_v7/res/drawable-xhdpi/abc_ic_menu_moreoverflow_normal_holo_dark.png b/appcompat_v7/res/drawable-xhdpi/abc_ic_menu_moreoverflow_normal_holo_dark.png new file mode 100644 index 0000000..a92fb1d Binary files /dev/null and b/appcompat_v7/res/drawable-xhdpi/abc_ic_menu_moreoverflow_normal_holo_dark.png differ diff --git a/appcompat_v7/res/drawable-xhdpi/abc_ic_menu_moreoverflow_normal_holo_light.png b/appcompat_v7/res/drawable-xhdpi/abc_ic_menu_moreoverflow_normal_holo_light.png new file mode 100644 index 0000000..930ca8d Binary files /dev/null and b/appcompat_v7/res/drawable-xhdpi/abc_ic_menu_moreoverflow_normal_holo_light.png differ diff --git a/appcompat_v7/res/drawable-xhdpi/abc_ic_menu_share_holo_dark.png b/appcompat_v7/res/drawable-xhdpi/abc_ic_menu_share_holo_dark.png new file mode 100644 index 0000000..45a0f1d Binary files /dev/null and b/appcompat_v7/res/drawable-xhdpi/abc_ic_menu_share_holo_dark.png differ diff --git a/appcompat_v7/res/drawable-xhdpi/abc_ic_menu_share_holo_light.png b/appcompat_v7/res/drawable-xhdpi/abc_ic_menu_share_holo_light.png new file mode 100644 index 0000000..528e554 Binary files /dev/null and b/appcompat_v7/res/drawable-xhdpi/abc_ic_menu_share_holo_light.png differ diff --git a/appcompat_v7/res/drawable-xhdpi/abc_ic_search.png b/appcompat_v7/res/drawable-xhdpi/abc_ic_search.png new file mode 100644 index 0000000..998f91b Binary files /dev/null and b/appcompat_v7/res/drawable-xhdpi/abc_ic_search.png differ diff --git a/appcompat_v7/res/drawable-xhdpi/abc_ic_search_api_holo_light.png b/appcompat_v7/res/drawable-xhdpi/abc_ic_search_api_holo_light.png new file mode 100644 index 0000000..a4cdf1c Binary files /dev/null and b/appcompat_v7/res/drawable-xhdpi/abc_ic_search_api_holo_light.png differ diff --git a/appcompat_v7/res/drawable-xhdpi/abc_ic_voice_search.png b/appcompat_v7/res/drawable-xhdpi/abc_ic_voice_search.png new file mode 100644 index 0000000..c625a36 Binary files /dev/null and b/appcompat_v7/res/drawable-xhdpi/abc_ic_voice_search.png differ diff --git a/appcompat_v7/res/drawable-xhdpi/abc_ic_voice_search_api_holo_light.png b/appcompat_v7/res/drawable-xhdpi/abc_ic_voice_search_api_holo_light.png new file mode 100644 index 0000000..c332ba0 Binary files /dev/null and b/appcompat_v7/res/drawable-xhdpi/abc_ic_voice_search_api_holo_light.png differ diff --git a/appcompat_v7/res/drawable-xhdpi/abc_list_divider_holo_dark.9.png b/appcompat_v7/res/drawable-xhdpi/abc_list_divider_holo_dark.9.png new file mode 100644 index 0000000..e62f011 Binary files /dev/null and b/appcompat_v7/res/drawable-xhdpi/abc_list_divider_holo_dark.9.png differ diff --git a/appcompat_v7/res/drawable-xhdpi/abc_list_divider_holo_light.9.png b/appcompat_v7/res/drawable-xhdpi/abc_list_divider_holo_light.9.png new file mode 100644 index 0000000..65061c0 Binary files /dev/null and b/appcompat_v7/res/drawable-xhdpi/abc_list_divider_holo_light.9.png differ diff --git a/appcompat_v7/res/drawable-xhdpi/abc_list_focused_holo.9.png b/appcompat_v7/res/drawable-xhdpi/abc_list_focused_holo.9.png new file mode 100644 index 0000000..b545f8e Binary files /dev/null and b/appcompat_v7/res/drawable-xhdpi/abc_list_focused_holo.9.png differ diff --git a/appcompat_v7/res/drawable-xhdpi/abc_list_longpressed_holo.9.png b/appcompat_v7/res/drawable-xhdpi/abc_list_longpressed_holo.9.png new file mode 100644 index 0000000..eda10e6 Binary files /dev/null and b/appcompat_v7/res/drawable-xhdpi/abc_list_longpressed_holo.9.png differ diff --git a/appcompat_v7/res/drawable-xhdpi/abc_list_pressed_holo_dark.9.png b/appcompat_v7/res/drawable-xhdpi/abc_list_pressed_holo_dark.9.png new file mode 100644 index 0000000..e4b3393 Binary files /dev/null and b/appcompat_v7/res/drawable-xhdpi/abc_list_pressed_holo_dark.9.png differ diff --git a/appcompat_v7/res/drawable-xhdpi/abc_list_pressed_holo_light.9.png b/appcompat_v7/res/drawable-xhdpi/abc_list_pressed_holo_light.9.png new file mode 100644 index 0000000..e4b3393 Binary files /dev/null and b/appcompat_v7/res/drawable-xhdpi/abc_list_pressed_holo_light.9.png differ diff --git a/appcompat_v7/res/drawable-xhdpi/abc_list_selector_disabled_holo_dark.9.png b/appcompat_v7/res/drawable-xhdpi/abc_list_selector_disabled_holo_dark.9.png new file mode 100644 index 0000000..88726b6 Binary files /dev/null and b/appcompat_v7/res/drawable-xhdpi/abc_list_selector_disabled_holo_dark.9.png differ diff --git a/appcompat_v7/res/drawable-xhdpi/abc_list_selector_disabled_holo_light.9.png b/appcompat_v7/res/drawable-xhdpi/abc_list_selector_disabled_holo_light.9.png new file mode 100644 index 0000000..c6a7d4d Binary files /dev/null and b/appcompat_v7/res/drawable-xhdpi/abc_list_selector_disabled_holo_light.9.png differ diff --git a/appcompat_v7/res/drawable-xhdpi/abc_menu_dropdown_panel_holo_dark.9.png b/appcompat_v7/res/drawable-xhdpi/abc_menu_dropdown_panel_holo_dark.9.png new file mode 100644 index 0000000..abc48f8 Binary files /dev/null and b/appcompat_v7/res/drawable-xhdpi/abc_menu_dropdown_panel_holo_dark.9.png differ diff --git a/appcompat_v7/res/drawable-xhdpi/abc_menu_dropdown_panel_holo_light.9.png b/appcompat_v7/res/drawable-xhdpi/abc_menu_dropdown_panel_holo_light.9.png new file mode 100644 index 0000000..48905ed Binary files /dev/null and b/appcompat_v7/res/drawable-xhdpi/abc_menu_dropdown_panel_holo_light.9.png differ diff --git a/appcompat_v7/res/drawable-xhdpi/abc_menu_hardkey_panel_holo_dark.9.png b/appcompat_v7/res/drawable-xhdpi/abc_menu_hardkey_panel_holo_dark.9.png new file mode 100644 index 0000000..c1ad023 Binary files /dev/null and b/appcompat_v7/res/drawable-xhdpi/abc_menu_hardkey_panel_holo_dark.9.png differ diff --git a/appcompat_v7/res/drawable-xhdpi/abc_menu_hardkey_panel_holo_light.9.png b/appcompat_v7/res/drawable-xhdpi/abc_menu_hardkey_panel_holo_light.9.png new file mode 100644 index 0000000..a1e33d6 Binary files /dev/null and b/appcompat_v7/res/drawable-xhdpi/abc_menu_hardkey_panel_holo_light.9.png differ diff --git a/appcompat_v7/res/drawable-xhdpi/abc_spinner_ab_default_holo_dark.9.png b/appcompat_v7/res/drawable-xhdpi/abc_spinner_ab_default_holo_dark.9.png new file mode 100644 index 0000000..c43293d Binary files /dev/null and b/appcompat_v7/res/drawable-xhdpi/abc_spinner_ab_default_holo_dark.9.png differ diff --git a/appcompat_v7/res/drawable-xhdpi/abc_spinner_ab_default_holo_light.9.png b/appcompat_v7/res/drawable-xhdpi/abc_spinner_ab_default_holo_light.9.png new file mode 100644 index 0000000..3dc481e Binary files /dev/null and b/appcompat_v7/res/drawable-xhdpi/abc_spinner_ab_default_holo_light.9.png differ diff --git a/appcompat_v7/res/drawable-xhdpi/abc_spinner_ab_disabled_holo_dark.9.png b/appcompat_v7/res/drawable-xhdpi/abc_spinner_ab_disabled_holo_dark.9.png new file mode 100644 index 0000000..9a7b173 Binary files /dev/null and b/appcompat_v7/res/drawable-xhdpi/abc_spinner_ab_disabled_holo_dark.9.png differ diff --git a/appcompat_v7/res/drawable-xhdpi/abc_spinner_ab_disabled_holo_light.9.png b/appcompat_v7/res/drawable-xhdpi/abc_spinner_ab_disabled_holo_light.9.png new file mode 100644 index 0000000..6888fdc Binary files /dev/null and b/appcompat_v7/res/drawable-xhdpi/abc_spinner_ab_disabled_holo_light.9.png differ diff --git a/appcompat_v7/res/drawable-xhdpi/abc_spinner_ab_focused_holo_dark.9.png b/appcompat_v7/res/drawable-xhdpi/abc_spinner_ab_focused_holo_dark.9.png new file mode 100644 index 0000000..9408b47 Binary files /dev/null and b/appcompat_v7/res/drawable-xhdpi/abc_spinner_ab_focused_holo_dark.9.png differ diff --git a/appcompat_v7/res/drawable-xhdpi/abc_spinner_ab_focused_holo_light.9.png b/appcompat_v7/res/drawable-xhdpi/abc_spinner_ab_focused_holo_light.9.png new file mode 100644 index 0000000..1cb95d1 Binary files /dev/null and b/appcompat_v7/res/drawable-xhdpi/abc_spinner_ab_focused_holo_light.9.png differ diff --git a/appcompat_v7/res/drawable-xhdpi/abc_spinner_ab_pressed_holo_dark.9.png b/appcompat_v7/res/drawable-xhdpi/abc_spinner_ab_pressed_holo_dark.9.png new file mode 100644 index 0000000..a3c7711 Binary files /dev/null and b/appcompat_v7/res/drawable-xhdpi/abc_spinner_ab_pressed_holo_dark.9.png differ diff --git a/appcompat_v7/res/drawable-xhdpi/abc_spinner_ab_pressed_holo_light.9.png b/appcompat_v7/res/drawable-xhdpi/abc_spinner_ab_pressed_holo_light.9.png new file mode 100644 index 0000000..2a21210 Binary files /dev/null and b/appcompat_v7/res/drawable-xhdpi/abc_spinner_ab_pressed_holo_light.9.png differ diff --git a/appcompat_v7/res/drawable-xhdpi/abc_tab_selected_focused_holo.9.png b/appcompat_v7/res/drawable-xhdpi/abc_tab_selected_focused_holo.9.png new file mode 100644 index 0000000..03cfb09 Binary files /dev/null and b/appcompat_v7/res/drawable-xhdpi/abc_tab_selected_focused_holo.9.png differ diff --git a/appcompat_v7/res/drawable-xhdpi/abc_tab_selected_holo.9.png b/appcompat_v7/res/drawable-xhdpi/abc_tab_selected_holo.9.png new file mode 100644 index 0000000..e4229f2 Binary files /dev/null and b/appcompat_v7/res/drawable-xhdpi/abc_tab_selected_holo.9.png differ diff --git a/appcompat_v7/res/drawable-xhdpi/abc_tab_selected_pressed_holo.9.png b/appcompat_v7/res/drawable-xhdpi/abc_tab_selected_pressed_holo.9.png new file mode 100644 index 0000000..e862cb1 Binary files /dev/null and b/appcompat_v7/res/drawable-xhdpi/abc_tab_selected_pressed_holo.9.png differ diff --git a/appcompat_v7/res/drawable-xhdpi/abc_tab_unselected_pressed_holo.9.png b/appcompat_v7/res/drawable-xhdpi/abc_tab_unselected_pressed_holo.9.png new file mode 100644 index 0000000..f1eb673 Binary files /dev/null and b/appcompat_v7/res/drawable-xhdpi/abc_tab_unselected_pressed_holo.9.png differ diff --git a/appcompat_v7/res/drawable-xhdpi/abc_textfield_search_default_holo_dark.9.png b/appcompat_v7/res/drawable-xhdpi/abc_textfield_search_default_holo_dark.9.png new file mode 100644 index 0000000..8fdbbf3 Binary files /dev/null and b/appcompat_v7/res/drawable-xhdpi/abc_textfield_search_default_holo_dark.9.png differ diff --git a/appcompat_v7/res/drawable-xhdpi/abc_textfield_search_default_holo_light.9.png b/appcompat_v7/res/drawable-xhdpi/abc_textfield_search_default_holo_light.9.png new file mode 100644 index 0000000..4e9ae43 Binary files /dev/null and b/appcompat_v7/res/drawable-xhdpi/abc_textfield_search_default_holo_light.9.png differ diff --git a/appcompat_v7/res/drawable-xhdpi/abc_textfield_search_right_default_holo_dark.9.png b/appcompat_v7/res/drawable-xhdpi/abc_textfield_search_right_default_holo_dark.9.png new file mode 100644 index 0000000..98f4871 Binary files /dev/null and b/appcompat_v7/res/drawable-xhdpi/abc_textfield_search_right_default_holo_dark.9.png differ diff --git a/appcompat_v7/res/drawable-xhdpi/abc_textfield_search_right_default_holo_light.9.png b/appcompat_v7/res/drawable-xhdpi/abc_textfield_search_right_default_holo_light.9.png new file mode 100644 index 0000000..733373e Binary files /dev/null and b/appcompat_v7/res/drawable-xhdpi/abc_textfield_search_right_default_holo_light.9.png differ diff --git a/appcompat_v7/res/drawable-xhdpi/abc_textfield_search_right_selected_holo_dark.9.png b/appcompat_v7/res/drawable-xhdpi/abc_textfield_search_right_selected_holo_dark.9.png new file mode 100644 index 0000000..0c6bb03 Binary files /dev/null and b/appcompat_v7/res/drawable-xhdpi/abc_textfield_search_right_selected_holo_dark.9.png differ diff --git a/appcompat_v7/res/drawable-xhdpi/abc_textfield_search_right_selected_holo_light.9.png b/appcompat_v7/res/drawable-xhdpi/abc_textfield_search_right_selected_holo_light.9.png new file mode 100644 index 0000000..0c6bb03 Binary files /dev/null and b/appcompat_v7/res/drawable-xhdpi/abc_textfield_search_right_selected_holo_light.9.png differ diff --git a/appcompat_v7/res/drawable-xhdpi/abc_textfield_search_selected_holo_dark.9.png b/appcompat_v7/res/drawable-xhdpi/abc_textfield_search_selected_holo_dark.9.png new file mode 100644 index 0000000..e5bfd8a Binary files /dev/null and b/appcompat_v7/res/drawable-xhdpi/abc_textfield_search_selected_holo_dark.9.png differ diff --git a/appcompat_v7/res/drawable-xhdpi/abc_textfield_search_selected_holo_light.9.png b/appcompat_v7/res/drawable-xhdpi/abc_textfield_search_selected_holo_light.9.png new file mode 100644 index 0000000..1743da6 Binary files /dev/null and b/appcompat_v7/res/drawable-xhdpi/abc_textfield_search_selected_holo_light.9.png differ diff --git a/appcompat_v7/res/drawable/abc_ic_clear.xml b/appcompat_v7/res/drawable/abc_ic_clear.xml new file mode 100644 index 0000000..802af6f --- /dev/null +++ b/appcompat_v7/res/drawable/abc_ic_clear.xml @@ -0,0 +1,22 @@ + + + + + + + diff --git a/appcompat_v7/res/drawable/abc_ic_clear_holo_light.xml b/appcompat_v7/res/drawable/abc_ic_clear_holo_light.xml new file mode 100644 index 0000000..4b84efc --- /dev/null +++ b/appcompat_v7/res/drawable/abc_ic_clear_holo_light.xml @@ -0,0 +1,22 @@ + + + + + + + diff --git a/appcompat_v7/res/drawable/abc_item_background_holo_dark.xml b/appcompat_v7/res/drawable/abc_item_background_holo_dark.xml new file mode 100644 index 0000000..72162c2 --- /dev/null +++ b/appcompat_v7/res/drawable/abc_item_background_holo_dark.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + diff --git a/appcompat_v7/res/drawable/abc_item_background_holo_light.xml b/appcompat_v7/res/drawable/abc_item_background_holo_light.xml new file mode 100644 index 0000000..1c180b2 --- /dev/null +++ b/appcompat_v7/res/drawable/abc_item_background_holo_light.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + diff --git a/appcompat_v7/res/drawable/abc_list_selector_background_transition_holo_dark.xml b/appcompat_v7/res/drawable/abc_list_selector_background_transition_holo_dark.xml new file mode 100644 index 0000000..0add58c --- /dev/null +++ b/appcompat_v7/res/drawable/abc_list_selector_background_transition_holo_dark.xml @@ -0,0 +1,20 @@ + + + + + + + diff --git a/appcompat_v7/res/drawable/abc_list_selector_background_transition_holo_light.xml b/appcompat_v7/res/drawable/abc_list_selector_background_transition_holo_light.xml new file mode 100644 index 0000000..0c1d3e6 --- /dev/null +++ b/appcompat_v7/res/drawable/abc_list_selector_background_transition_holo_light.xml @@ -0,0 +1,20 @@ + + + + + + + diff --git a/appcompat_v7/res/drawable/abc_list_selector_holo_dark.xml b/appcompat_v7/res/drawable/abc_list_selector_holo_dark.xml new file mode 100644 index 0000000..1fb5fc4 --- /dev/null +++ b/appcompat_v7/res/drawable/abc_list_selector_holo_dark.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + diff --git a/appcompat_v7/res/drawable/abc_list_selector_holo_light.xml b/appcompat_v7/res/drawable/abc_list_selector_holo_light.xml new file mode 100644 index 0000000..8d24047 --- /dev/null +++ b/appcompat_v7/res/drawable/abc_list_selector_holo_light.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + diff --git a/appcompat_v7/res/drawable/abc_search_dropdown_dark.xml b/appcompat_v7/res/drawable/abc_search_dropdown_dark.xml new file mode 100644 index 0000000..75e8917 --- /dev/null +++ b/appcompat_v7/res/drawable/abc_search_dropdown_dark.xml @@ -0,0 +1,22 @@ + + + + + + + + diff --git a/appcompat_v7/res/drawable/abc_search_dropdown_light.xml b/appcompat_v7/res/drawable/abc_search_dropdown_light.xml new file mode 100644 index 0000000..80d4928 --- /dev/null +++ b/appcompat_v7/res/drawable/abc_search_dropdown_light.xml @@ -0,0 +1,22 @@ + + + + + + + + diff --git a/appcompat_v7/res/drawable/abc_spinner_ab_holo_dark.xml b/appcompat_v7/res/drawable/abc_spinner_ab_holo_dark.xml new file mode 100644 index 0000000..934b374 --- /dev/null +++ b/appcompat_v7/res/drawable/abc_spinner_ab_holo_dark.xml @@ -0,0 +1,25 @@ + + + + + + + + + diff --git a/appcompat_v7/res/drawable/abc_spinner_ab_holo_light.xml b/appcompat_v7/res/drawable/abc_spinner_ab_holo_light.xml new file mode 100644 index 0000000..dd0245e --- /dev/null +++ b/appcompat_v7/res/drawable/abc_spinner_ab_holo_light.xml @@ -0,0 +1,25 @@ + + + + + + + + + diff --git a/appcompat_v7/res/drawable/abc_tab_indicator_ab_holo.xml b/appcompat_v7/res/drawable/abc_tab_indicator_ab_holo.xml new file mode 100644 index 0000000..3c828d8 --- /dev/null +++ b/appcompat_v7/res/drawable/abc_tab_indicator_ab_holo.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/appcompat_v7/res/drawable/abc_textfield_searchview_holo_dark.xml b/appcompat_v7/res/drawable/abc_textfield_searchview_holo_dark.xml new file mode 100644 index 0000000..6e9bc4c --- /dev/null +++ b/appcompat_v7/res/drawable/abc_textfield_searchview_holo_dark.xml @@ -0,0 +1,22 @@ + + + + + + + + diff --git a/appcompat_v7/res/drawable/abc_textfield_searchview_holo_light.xml b/appcompat_v7/res/drawable/abc_textfield_searchview_holo_light.xml new file mode 100644 index 0000000..a02e4b0 --- /dev/null +++ b/appcompat_v7/res/drawable/abc_textfield_searchview_holo_light.xml @@ -0,0 +1,22 @@ + + + + + + + + diff --git a/appcompat_v7/res/drawable/abc_textfield_searchview_right_holo_dark.xml b/appcompat_v7/res/drawable/abc_textfield_searchview_right_holo_dark.xml new file mode 100644 index 0000000..b55a995 --- /dev/null +++ b/appcompat_v7/res/drawable/abc_textfield_searchview_right_holo_dark.xml @@ -0,0 +1,22 @@ + + + + + + + + diff --git a/appcompat_v7/res/drawable/abc_textfield_searchview_right_holo_light.xml b/appcompat_v7/res/drawable/abc_textfield_searchview_right_holo_light.xml new file mode 100644 index 0000000..7710232 --- /dev/null +++ b/appcompat_v7/res/drawable/abc_textfield_searchview_right_holo_light.xml @@ -0,0 +1,22 @@ + + + + + + + + diff --git a/appcompat_v7/res/layout-v11/abc_action_bar_decor.xml b/appcompat_v7/res/layout-v11/abc_action_bar_decor.xml new file mode 100644 index 0000000..a212d56 --- /dev/null +++ b/appcompat_v7/res/layout-v11/abc_action_bar_decor.xml @@ -0,0 +1,27 @@ + + + + + + + + diff --git a/appcompat_v7/res/layout-v14/abc_activity_chooser_view.xml b/appcompat_v7/res/layout-v14/abc_activity_chooser_view.xml new file mode 100644 index 0000000..4ce359b --- /dev/null +++ b/appcompat_v7/res/layout-v14/abc_activity_chooser_view.xml @@ -0,0 +1,29 @@ + + + + + + + \ No newline at end of file diff --git a/appcompat_v7/res/layout/abc_action_bar_decor.xml b/appcompat_v7/res/layout/abc_action_bar_decor.xml new file mode 100644 index 0000000..327e26f --- /dev/null +++ b/appcompat_v7/res/layout/abc_action_bar_decor.xml @@ -0,0 +1,25 @@ + + + + + + + + diff --git a/appcompat_v7/res/layout/abc_action_bar_decor_include.xml b/appcompat_v7/res/layout/abc_action_bar_decor_include.xml new file mode 100644 index 0000000..3f2356b --- /dev/null +++ b/appcompat_v7/res/layout/abc_action_bar_decor_include.xml @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + diff --git a/appcompat_v7/res/layout/abc_action_bar_decor_overlay.xml b/appcompat_v7/res/layout/abc_action_bar_decor_overlay.xml new file mode 100644 index 0000000..5ea8fc1 --- /dev/null +++ b/appcompat_v7/res/layout/abc_action_bar_decor_overlay.xml @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + diff --git a/appcompat_v7/res/layout/abc_action_bar_home.xml b/appcompat_v7/res/layout/abc_action_bar_home.xml new file mode 100644 index 0000000..7063c36 --- /dev/null +++ b/appcompat_v7/res/layout/abc_action_bar_home.xml @@ -0,0 +1,38 @@ + + + + + + + diff --git a/appcompat_v7/res/layout/abc_action_bar_tab.xml b/appcompat_v7/res/layout/abc_action_bar_tab.xml new file mode 100644 index 0000000..06043a2 --- /dev/null +++ b/appcompat_v7/res/layout/abc_action_bar_tab.xml @@ -0,0 +1,22 @@ + + + + diff --git a/appcompat_v7/res/layout/abc_action_bar_tabbar.xml b/appcompat_v7/res/layout/abc_action_bar_tabbar.xml new file mode 100644 index 0000000..08f9c89 --- /dev/null +++ b/appcompat_v7/res/layout/abc_action_bar_tabbar.xml @@ -0,0 +1,22 @@ + + + + diff --git a/appcompat_v7/res/layout/abc_action_bar_title_item.xml b/appcompat_v7/res/layout/abc_action_bar_title_item.xml new file mode 100644 index 0000000..0cb1237 --- /dev/null +++ b/appcompat_v7/res/layout/abc_action_bar_title_item.xml @@ -0,0 +1,50 @@ + + + + + + + + + + + + diff --git a/appcompat_v7/res/layout/abc_action_bar_view_list_nav_layout.xml b/appcompat_v7/res/layout/abc_action_bar_view_list_nav_layout.xml new file mode 100644 index 0000000..5c105ab --- /dev/null +++ b/appcompat_v7/res/layout/abc_action_bar_view_list_nav_layout.xml @@ -0,0 +1,23 @@ + + + + + + \ No newline at end of file diff --git a/appcompat_v7/res/layout/abc_action_menu_item_layout.xml b/appcompat_v7/res/layout/abc_action_menu_item_layout.xml new file mode 100644 index 0000000..150ea50 --- /dev/null +++ b/appcompat_v7/res/layout/abc_action_menu_item_layout.xml @@ -0,0 +1,30 @@ + + + + diff --git a/appcompat_v7/res/layout/abc_action_menu_layout.xml b/appcompat_v7/res/layout/abc_action_menu_layout.xml new file mode 100644 index 0000000..37a02e6 --- /dev/null +++ b/appcompat_v7/res/layout/abc_action_menu_layout.xml @@ -0,0 +1,24 @@ + + + + diff --git a/appcompat_v7/res/layout/abc_action_mode_bar.xml b/appcompat_v7/res/layout/abc_action_mode_bar.xml new file mode 100644 index 0000000..b81cd85 --- /dev/null +++ b/appcompat_v7/res/layout/abc_action_mode_bar.xml @@ -0,0 +1,24 @@ + + + diff --git a/appcompat_v7/res/layout/abc_action_mode_close_item.xml b/appcompat_v7/res/layout/abc_action_mode_close_item.xml new file mode 100644 index 0000000..2c76b8b --- /dev/null +++ b/appcompat_v7/res/layout/abc_action_mode_close_item.xml @@ -0,0 +1,32 @@ + + + + + + diff --git a/appcompat_v7/res/layout/abc_activity_chooser_view.xml b/appcompat_v7/res/layout/abc_activity_chooser_view.xml new file mode 100644 index 0000000..eb42598 --- /dev/null +++ b/appcompat_v7/res/layout/abc_activity_chooser_view.xml @@ -0,0 +1,29 @@ + + + + + + + \ No newline at end of file diff --git a/appcompat_v7/res/layout/abc_activity_chooser_view_include.xml b/appcompat_v7/res/layout/abc_activity_chooser_view_include.xml new file mode 100644 index 0000000..975b13e --- /dev/null +++ b/appcompat_v7/res/layout/abc_activity_chooser_view_include.xml @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/appcompat_v7/res/layout/abc_activity_chooser_view_list_item.xml b/appcompat_v7/res/layout/abc_activity_chooser_view_list_item.xml new file mode 100644 index 0000000..887427d --- /dev/null +++ b/appcompat_v7/res/layout/abc_activity_chooser_view_list_item.xml @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/appcompat_v7/res/layout/abc_expanded_menu_layout.xml b/appcompat_v7/res/layout/abc_expanded_menu_layout.xml new file mode 100644 index 0000000..f4af882 --- /dev/null +++ b/appcompat_v7/res/layout/abc_expanded_menu_layout.xml @@ -0,0 +1,21 @@ + + + + diff --git a/appcompat_v7/res/layout/abc_list_menu_item_checkbox.xml b/appcompat_v7/res/layout/abc_list_menu_item_checkbox.xml new file mode 100644 index 0000000..d9c3f06 --- /dev/null +++ b/appcompat_v7/res/layout/abc_list_menu_item_checkbox.xml @@ -0,0 +1,26 @@ + + + + + + diff --git a/appcompat_v7/res/layout/abc_list_menu_item_icon.xml b/appcompat_v7/res/layout/abc_list_menu_item_icon.xml new file mode 100644 index 0000000..acd005a --- /dev/null +++ b/appcompat_v7/res/layout/abc_list_menu_item_icon.xml @@ -0,0 +1,28 @@ + + + + + diff --git a/appcompat_v7/res/layout/abc_list_menu_item_layout.xml b/appcompat_v7/res/layout/abc_list_menu_item_layout.xml new file mode 100644 index 0000000..d3be782 --- /dev/null +++ b/appcompat_v7/res/layout/abc_list_menu_item_layout.xml @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + diff --git a/appcompat_v7/res/layout/abc_list_menu_item_radio.xml b/appcompat_v7/res/layout/abc_list_menu_item_radio.xml new file mode 100644 index 0000000..0ca8d7a --- /dev/null +++ b/appcompat_v7/res/layout/abc_list_menu_item_radio.xml @@ -0,0 +1,24 @@ + + + + diff --git a/appcompat_v7/res/layout/abc_popup_menu_item_layout.xml b/appcompat_v7/res/layout/abc_popup_menu_item_layout.xml new file mode 100644 index 0000000..1e4e27d --- /dev/null +++ b/appcompat_v7/res/layout/abc_popup_menu_item_layout.xml @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + diff --git a/appcompat_v7/res/layout/abc_search_dropdown_item_icons_2line.xml b/appcompat_v7/res/layout/abc_search_dropdown_item_icons_2line.xml new file mode 100644 index 0000000..ffc3aed --- /dev/null +++ b/appcompat_v7/res/layout/abc_search_dropdown_item_icons_2line.xml @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/appcompat_v7/res/layout/abc_search_view.xml b/appcompat_v7/res/layout/abc_search_view.xml new file mode 100644 index 0000000..da8adb8 --- /dev/null +++ b/appcompat_v7/res/layout/abc_search_view.xml @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/appcompat_v7/res/layout/support_simple_spinner_dropdown_item.xml b/appcompat_v7/res/layout/support_simple_spinner_dropdown_item.xml new file mode 100644 index 0000000..d2f177a --- /dev/null +++ b/appcompat_v7/res/layout/support_simple_spinner_dropdown_item.xml @@ -0,0 +1,25 @@ + + + \ No newline at end of file diff --git a/appcompat_v7/res/values-af/strings.xml b/appcompat_v7/res/values-af/strings.xml new file mode 100644 index 0000000..f7348c4 --- /dev/null +++ b/appcompat_v7/res/values-af/strings.xml @@ -0,0 +1,32 @@ + + + + + "Klaar" + "Navigeer tuis" + "Navigeer op" + "Nog opsies" + "Soek" + "Soeknavraag" + "Vee navraag uit" + "Dien navraag in" + "Stemsoektog" + "Kies \'n program" + "Sien alles" + "Deel met %s" + "Deel met" + diff --git a/appcompat_v7/res/values-am/strings.xml b/appcompat_v7/res/values-am/strings.xml new file mode 100644 index 0000000..e849b31 --- /dev/null +++ b/appcompat_v7/res/values-am/strings.xml @@ -0,0 +1,32 @@ + + + + + "ተከናውኗል" + "ወደ መነሻ ይዳስሱ" + "ወደ ላይ ይዳስሱ" + "ተጨማሪ አማራጮች" + "ፍለጋ" + "የፍለጋ ጥያቄ" + "መጠይቅ አጽዳ" + "መጠይቅ ያስረክቡ" + "የድምፅ ፍለጋ" + "መተግበሪያ ይምረጡ" + "ሁሉንም ይመልከቱ" + "ከ%s ጋር ያጋሩ" + "ከሚከተለው ጋር ያጋሩ" + diff --git a/appcompat_v7/res/values-ar/strings.xml b/appcompat_v7/res/values-ar/strings.xml new file mode 100644 index 0000000..93dde04 --- /dev/null +++ b/appcompat_v7/res/values-ar/strings.xml @@ -0,0 +1,32 @@ + + + + + "تم" + "التنقل إلى الشاشة الرئيسية" + "التنقل إلى أعلى" + "خيارات إضافية" + "بحث" + "طلب البحث" + "محو طلب البحث" + "إرسال طلب البحث" + "البحث الصوتي" + "اختيار تطبيق" + "عرض الكل" + "‏مشاركة مع %s" + "مشاركة مع" + diff --git a/appcompat_v7/res/values-bg/strings.xml b/appcompat_v7/res/values-bg/strings.xml new file mode 100644 index 0000000..de3bde8 --- /dev/null +++ b/appcompat_v7/res/values-bg/strings.xml @@ -0,0 +1,32 @@ + + + + + "Готово" + "Придвижване към „Начало“" + "Придвижване нагоре" + "Още опции" + "Търсене" + "Заявка за търсене" + "Изчистване на заявката" + "Изпращане на заявката" + "Гласово търсене" + "Изберете приложение" + "Вижте всички" + "Споделяне със: %s" + "Споделяне със:" + diff --git a/appcompat_v7/res/values-ca/strings.xml b/appcompat_v7/res/values-ca/strings.xml new file mode 100644 index 0000000..bfd4cb0 --- /dev/null +++ b/appcompat_v7/res/values-ca/strings.xml @@ -0,0 +1,32 @@ + + + + + "Fet" + "Navega a la pàgina d\'inici" + "Navega cap a dalt" + "Més opcions" + "Cerca" + "Consulta de cerca" + "Esborra la consulta" + "Envia la consulta" + "Cerca per veu" + "Selecciona una aplicació" + "Mostra\'ls tots" + "Comparteix amb %s" + "Comparteix amb" + diff --git a/appcompat_v7/res/values-cs/strings.xml b/appcompat_v7/res/values-cs/strings.xml new file mode 100644 index 0000000..1465fdc --- /dev/null +++ b/appcompat_v7/res/values-cs/strings.xml @@ -0,0 +1,32 @@ + + + + + "Hotovo" + "Přejít na plochu" + "Přejít nahoru" + "Více možností" + "Hledat" + "Vyhledávací dotaz" + "Smazat dotaz" + "Odeslat dotaz" + "Hlasové vyhledávání" + "Vybrat aplikaci" + "Zobrazit vše" + "Sdílet pomocí %s" + "Sdílet pomocí" + diff --git a/appcompat_v7/res/values-da/strings.xml b/appcompat_v7/res/values-da/strings.xml new file mode 100644 index 0000000..b178513 --- /dev/null +++ b/appcompat_v7/res/values-da/strings.xml @@ -0,0 +1,32 @@ + + + + + "Luk" + "Naviger hjem" + "Naviger op" + "Flere muligheder" + "Søg" + "Søgeforespørgsel" + "Ryd forespørgslen" + "Indsend forespørgslen" + "Stemmesøgning" + "Vælg en app" + "Se alle" + "Del med %s" + "Del med" + diff --git a/appcompat_v7/res/values-de/strings.xml b/appcompat_v7/res/values-de/strings.xml new file mode 100644 index 0000000..6da4b71 --- /dev/null +++ b/appcompat_v7/res/values-de/strings.xml @@ -0,0 +1,32 @@ + + + + + "Fertig" + "Zur Startseite" + "Nach oben" + "Weitere Optionen" + "Suchen" + "Suchanfrage" + "Suchanfrage löschen" + "Suchanfrage senden" + "Sprachsuche" + "App auswählen" + "Alle ansehen" + "Freigeben für %s" + "Freigeben für" + diff --git a/appcompat_v7/res/values-el/strings.xml b/appcompat_v7/res/values-el/strings.xml new file mode 100644 index 0000000..4c0e286 --- /dev/null +++ b/appcompat_v7/res/values-el/strings.xml @@ -0,0 +1,32 @@ + + + + + "Τέλος" + "Πλοήγηση στην αρχική σελίδα" + "Πλοήγηση προς τα επάνω" + "Περισσότερες επιλογές" + "Αναζήτηση" + "Ερώτημα αναζήτησης" + "Διαγραφή ερωτήματος" + "Υποβολή ερωτήματος" + "Φωνητική αναζήτηση" + "Επιλέξτε κάποια εφαρμογή" + "Προβολή όλων" + "Κοινή χρήση με %s" + "Κοινή χρήση με" + diff --git a/appcompat_v7/res/values-en-rGB/strings.xml b/appcompat_v7/res/values-en-rGB/strings.xml new file mode 100644 index 0000000..3ec0b0e --- /dev/null +++ b/appcompat_v7/res/values-en-rGB/strings.xml @@ -0,0 +1,32 @@ + + + + + "Finished" + "Navigate home" + "Navigate up" + "More options" + "Search" + "Search query" + "Clear query" + "Submit query" + "Voice search" + "Choose an app" + "See all" + "Share with %s" + "Share with" + diff --git a/appcompat_v7/res/values-en-rIN/strings.xml b/appcompat_v7/res/values-en-rIN/strings.xml new file mode 100644 index 0000000..3ec0b0e --- /dev/null +++ b/appcompat_v7/res/values-en-rIN/strings.xml @@ -0,0 +1,32 @@ + + + + + "Finished" + "Navigate home" + "Navigate up" + "More options" + "Search" + "Search query" + "Clear query" + "Submit query" + "Voice search" + "Choose an app" + "See all" + "Share with %s" + "Share with" + diff --git a/appcompat_v7/res/values-es-rUS/strings.xml b/appcompat_v7/res/values-es-rUS/strings.xml new file mode 100644 index 0000000..6ab7942 --- /dev/null +++ b/appcompat_v7/res/values-es-rUS/strings.xml @@ -0,0 +1,32 @@ + + + + + "Listo" + "Navegar a la página principal" + "Navegar hacia arriba" + "Más opciones" + "Búsqueda" + "Consulta de búsqueda" + "Eliminar la consulta" + "Enviar consulta" + "Búsqueda por voz" + "Elige una aplicación." + "Ver todo" + "Compartir con %s" + "Compartir con" + diff --git a/appcompat_v7/res/values-es/strings.xml b/appcompat_v7/res/values-es/strings.xml new file mode 100644 index 0000000..ed15b35 --- /dev/null +++ b/appcompat_v7/res/values-es/strings.xml @@ -0,0 +1,32 @@ + + + + + "Listo" + "Ir a la pantalla de inicio" + "Desplazarse hacia arriba" + "Más opciones" + "Buscar" + "Consulta" + "Borrar consulta" + "Enviar consulta" + "Búsqueda por voz" + "Seleccionar una aplicación" + "Ver todo" + "Compartir con %s" + "Compartir con" + diff --git a/appcompat_v7/res/values-et-rEE/strings.xml b/appcompat_v7/res/values-et-rEE/strings.xml new file mode 100644 index 0000000..2ae925d --- /dev/null +++ b/appcompat_v7/res/values-et-rEE/strings.xml @@ -0,0 +1,32 @@ + + + + + "Valmis" + "Navigeerimine avaekraanile" + "Navigeerimine üles" + "Rohkem valikuid" + "Otsing" + "Otsingupäring" + "Päringu tühistamine" + "Päringu esitamine" + "Häälotsing" + "Valige rakendus" + "Kuva kõik" + "Jagamine kasutajaga %s" + "Jagamine:" + diff --git a/appcompat_v7/res/values-fa/strings.xml b/appcompat_v7/res/values-fa/strings.xml new file mode 100644 index 0000000..8e10e92 --- /dev/null +++ b/appcompat_v7/res/values-fa/strings.xml @@ -0,0 +1,32 @@ + + + + + "انجام شد" + "پیمایش به صفحه اصلی" + "پیمایش به بالا" + "گزینه‌های بیشتر" + "جستجو" + "عبارت جستجو" + "پاک کردن عبارت جستجو" + "ارسال عبارت جستجو" + "جستجوی شفاهی" + "انتخاب برنامه" + "مشاهده همه" + "‏اشتراک‌گذاری با %s" + "اشتراک‌گذاری با" + diff --git a/appcompat_v7/res/values-fi/strings.xml b/appcompat_v7/res/values-fi/strings.xml new file mode 100644 index 0000000..6755cea --- /dev/null +++ b/appcompat_v7/res/values-fi/strings.xml @@ -0,0 +1,32 @@ + + + + + "Valmis" + "Siirry etusivulle" + "Siirry ylös" + "Lisää" + "Haku" + "Hakulauseke" + "Tyhjennä kysely" + "Lähetä kysely" + "Puhehaku" + "Valitse sovellus" + "Näytä kaikki" + "Jakaminen: %s" + "Jakaminen:" + diff --git a/appcompat_v7/res/values-fr-rCA/strings.xml b/appcompat_v7/res/values-fr-rCA/strings.xml new file mode 100644 index 0000000..417705a --- /dev/null +++ b/appcompat_v7/res/values-fr-rCA/strings.xml @@ -0,0 +1,32 @@ + + + + + "Terminé" + "Revenir à l\'accueil" + "Revenir en haut de la page" + "Plus d\'options" + "Rechercher" + "Requête de recherche" + "Effacer la requête" + "Envoyer la requête" + "Recherche vocale" + "Sélectionnez une application" + "Voir toutes les chaînes" + "Partager avec %s" + "Partager avec" + diff --git a/appcompat_v7/res/values-fr/strings.xml b/appcompat_v7/res/values-fr/strings.xml new file mode 100644 index 0000000..27b8f38 --- /dev/null +++ b/appcompat_v7/res/values-fr/strings.xml @@ -0,0 +1,32 @@ + + + + + "OK" + "Revenir à l\'accueil" + "Revenir en haut de la page" + "Plus d\'options" + "Rechercher" + "Requête de recherche" + "Effacer la requête" + "Envoyer la requête" + "Recherche vocale" + "Sélectionner une application" + "Tout afficher" + "Partager avec %s" + "Partager avec" + diff --git a/appcompat_v7/res/values-hi/strings.xml b/appcompat_v7/res/values-hi/strings.xml new file mode 100644 index 0000000..b236ebb --- /dev/null +++ b/appcompat_v7/res/values-hi/strings.xml @@ -0,0 +1,32 @@ + + + + + "पूर्ण" + "मुखपृष्ठ पर नेविगेट करें" + "ऊपर नेविगेट करें" + "अधिक विकल्प" + "खोजें" + "खोज क्वेरी" + "क्‍वेरी साफ़ करें" + "क्वेरी सबमिट करें" + "ध्वनि खोज" + "कोई एप्‍लिकेशन चुनें" + "सभी देखें" + "%s के साथ साझा करें" + "इसके द्वारा साझा करें" + diff --git a/appcompat_v7/res/values-hr/strings.xml b/appcompat_v7/res/values-hr/strings.xml new file mode 100644 index 0000000..680e39f --- /dev/null +++ b/appcompat_v7/res/values-hr/strings.xml @@ -0,0 +1,32 @@ + + + + + "Gotovo" + "Idi na početnu" + "Idi gore" + "Dodatne opcije" + "Pretraživanje" + "Upit za pretraživanje" + "Izbriši upit" + "Pošalji upit" + "Glasovno pretraživanje" + "Odabir aplikacije" + "Prikaži sve" + "Dijeljenje sa: %s" + "Dijeljenje sa" + diff --git a/appcompat_v7/res/values-hu/strings.xml b/appcompat_v7/res/values-hu/strings.xml new file mode 100644 index 0000000..52dafb0 --- /dev/null +++ b/appcompat_v7/res/values-hu/strings.xml @@ -0,0 +1,32 @@ + + + + + "Kész" + "Ugrás a főoldalra" + "Felfelé mozgatás" + "További lehetőségek" + "Keresés" + "Keresési lekérdezés" + "Lekérdezés törlése" + "Lekérdezés küldése" + "Hangalapú keresés" + "Válasszon ki egy alkalmazást" + "Összes megtekintése" + "Megosztás a következővel: %s" + "Megosztás a következővel:" + diff --git a/appcompat_v7/res/values-hy-rAM/strings.xml b/appcompat_v7/res/values-hy-rAM/strings.xml new file mode 100644 index 0000000..6c0ee27 --- /dev/null +++ b/appcompat_v7/res/values-hy-rAM/strings.xml @@ -0,0 +1,32 @@ + + + + + "Կատարված է" + "Ուղղվել տուն" + "Ուղղվել վերև" + "Այլ ընտրանքներ" + "Որոնել" + "Որոնման հարցում" + "Մաքրել հարցումը" + "Ուղարկել հարցումը" + "Ձայնային որոնում" + "Ընտրել ծրագիր" + "Տեսնել բոլորը" + "Տարածել ըստ %s" + "Տարածել" + diff --git a/appcompat_v7/res/values-in/strings.xml b/appcompat_v7/res/values-in/strings.xml new file mode 100644 index 0000000..9481e83 --- /dev/null +++ b/appcompat_v7/res/values-in/strings.xml @@ -0,0 +1,32 @@ + + + + + "Selesai" + "Navigasi ke beranda" + "Navigasi naik" + "Opsi lain" + "Telusuri" + "Kueri penelusuran" + "Hapus kueri" + "Kirim kueri" + "Penelusuran suara" + "Pilih aplikasi" + "Lihat semua" + "Bagikan dengan %s" + "Bagikan dengan" + diff --git a/appcompat_v7/res/values-it/strings.xml b/appcompat_v7/res/values-it/strings.xml new file mode 100644 index 0000000..a8b0f2c --- /dev/null +++ b/appcompat_v7/res/values-it/strings.xml @@ -0,0 +1,32 @@ + + + + + "Fine" + "Vai alla home page" + "Vai in alto" + "Altre opzioni" + "Cerca" + "Query di ricerca" + "Cancella query" + "Invia query" + "Ricerca vocale" + "Scegli un\'applicazione" + "Visualizza tutte" + "Condividi con %s" + "Condividi con" + diff --git a/appcompat_v7/res/values-iw/strings.xml b/appcompat_v7/res/values-iw/strings.xml new file mode 100644 index 0000000..1af07df --- /dev/null +++ b/appcompat_v7/res/values-iw/strings.xml @@ -0,0 +1,32 @@ + + + + + "בוצע" + "נווט לדף הבית" + "נווט למעלה" + "עוד אפשרויות" + "חפש" + "שאילתת חיפוש" + "מחק שאילתה" + "שלח שאילתה" + "חיפוש קולי" + "בחר אפליקציה" + "ראה הכול" + "‏שתף עם %s" + "שתף עם" + diff --git a/appcompat_v7/res/values-ja/strings.xml b/appcompat_v7/res/values-ja/strings.xml new file mode 100644 index 0000000..659358a --- /dev/null +++ b/appcompat_v7/res/values-ja/strings.xml @@ -0,0 +1,32 @@ + + + + + "完了" + "ホームへ移動" + "上へ移動" + "その他のオプション" + "検索" + "検索キーワード" + "検索キーワードを削除" + "検索キーワードを送信" + "音声検索" + "アプリの選択" + "すべて表示" + "%sと共有" + "共有" + diff --git a/appcompat_v7/res/values-ka-rGE/strings.xml b/appcompat_v7/res/values-ka-rGE/strings.xml new file mode 100644 index 0000000..0c430b1 --- /dev/null +++ b/appcompat_v7/res/values-ka-rGE/strings.xml @@ -0,0 +1,32 @@ + + + + + "დასრულდა" + "მთავარზე ნავიგაცია" + "ზემოთ ნავიგაცია" + "მეტი ვარიანტები" + "ძიება" + "ძიების მოთხოვნა" + "მოთხოვნის გასუფთავება" + "მოთხოვნის გადაგზავნა" + "ხმოვანი ძიება" + "აპის არჩევა" + "ყველას ნახვა" + "%s-თან გაზიარება" + "გაზიარება:" + diff --git a/appcompat_v7/res/values-km-rKH/strings.xml b/appcompat_v7/res/values-km-rKH/strings.xml new file mode 100644 index 0000000..597aec5 --- /dev/null +++ b/appcompat_v7/res/values-km-rKH/strings.xml @@ -0,0 +1,32 @@ + + + + + "រួចរាល់" + "រកមើល​ទៅ​ដើម" + "រកមើល​ឡើងលើ" + "ជម្រើស​ច្រើន​ទៀត" + "ស្វែងរក" + "ស្វែងរក​សំណួរ" + "សម្អាត​សំណួរ" + "ដាក់​​​ស្នើ​សំណួរ" + "ការស្វែងរក​សំឡេង" + "ជ្រើស​កម្មវិធី" + "មើល​ទាំងអស់" + "ចែករំលែក​ជាមួយ %s" + "ចែករំលែក​ជាមួយ" + diff --git a/appcompat_v7/res/values-ko/strings.xml b/appcompat_v7/res/values-ko/strings.xml new file mode 100644 index 0000000..d331975 --- /dev/null +++ b/appcompat_v7/res/values-ko/strings.xml @@ -0,0 +1,32 @@ + + + + + "완료" + "홈 탐색" + "위로 탐색" + "옵션 더보기" + "검색" + "검색어" + "검색어 삭제" + "검색어 보내기" + "음성 검색" + "앱 선택" + "전체 보기" + "%s와(과) 공유" + "공유 대상" + diff --git a/appcompat_v7/res/values-land/bools.xml b/appcompat_v7/res/values-land/bools.xml new file mode 100644 index 0000000..cdadd69 --- /dev/null +++ b/appcompat_v7/res/values-land/bools.xml @@ -0,0 +1,20 @@ + + + + + false + true + diff --git a/appcompat_v7/res/values-land/config.xml b/appcompat_v7/res/values-land/config.xml new file mode 100644 index 0000000..d0d990d --- /dev/null +++ b/appcompat_v7/res/values-land/config.xml @@ -0,0 +1,18 @@ + + + + true + diff --git a/appcompat_v7/res/values-land/dimens.xml b/appcompat_v7/res/values-land/dimens.xml new file mode 100644 index 0000000..9aaf587 --- /dev/null +++ b/appcompat_v7/res/values-land/dimens.xml @@ -0,0 +1,32 @@ + + + + + + 40dip + + 4dip + + 16dp + + 12dp + + -2dp + + 4dip + + 32dp + \ No newline at end of file diff --git a/appcompat_v7/res/values-large/bools.xml b/appcompat_v7/res/values-large/bools.xml new file mode 100644 index 0000000..cdadd69 --- /dev/null +++ b/appcompat_v7/res/values-large/bools.xml @@ -0,0 +1,20 @@ + + + + + false + true + diff --git a/appcompat_v7/res/values-large/config.xml b/appcompat_v7/res/values-large/config.xml new file mode 100644 index 0000000..c4f04a3 --- /dev/null +++ b/appcompat_v7/res/values-large/config.xml @@ -0,0 +1,30 @@ + + + + + + + true + + + 440dp + \ No newline at end of file diff --git a/appcompat_v7/res/values-large/dimens.xml b/appcompat_v7/res/values-large/dimens.xml new file mode 100644 index 0000000..dd9ecd9 --- /dev/null +++ b/appcompat_v7/res/values-large/dimens.xml @@ -0,0 +1,25 @@ + + + + + + 192dip + + 4 + + diff --git a/appcompat_v7/res/values-lo-rLA/strings.xml b/appcompat_v7/res/values-lo-rLA/strings.xml new file mode 100644 index 0000000..7eb42ea --- /dev/null +++ b/appcompat_v7/res/values-lo-rLA/strings.xml @@ -0,0 +1,32 @@ + + + + + "ແລ້ວໆ" + "ກັບໄປໜ້າຫຼັກ" + "ຂຶ້ນເທິງ" + "ໂຕເລືອກອື່ນ" + "ຊອກຫາ" + "ຊອກຫາ" + "ລຶບຂໍ້ຄວາມຊອກຫາ" + "ສົ່ງການຊອກຫາ" + "ຊອກຫາດ້ວຍສຽງ" + "ເລືອກແອັບຯ" + "ເບິ່ງທັງຫມົດ" + "ແບ່ງ​ປັນ​ກັບ​ %s" + "ແບ່ງປັນກັບ" + diff --git a/appcompat_v7/res/values-lt/strings.xml b/appcompat_v7/res/values-lt/strings.xml new file mode 100644 index 0000000..c4738a7 --- /dev/null +++ b/appcompat_v7/res/values-lt/strings.xml @@ -0,0 +1,32 @@ + + + + + "Atlikta" + "Eiti į pagrindinį puslapį" + "Eiti į viršų" + "Daugiau parinkčių" + "Paieška" + "Paieškos užklausa" + "Išvalyti užklausą" + "Pateikti užklausą" + "Paieška balsu" + "Pasirinkti programą" + "Peržiūrėti viską" + "Bendrinti naudojant „%s“" + "Bendrinti naudojant" + diff --git a/appcompat_v7/res/values-lv/strings.xml b/appcompat_v7/res/values-lv/strings.xml new file mode 100644 index 0000000..c33858a --- /dev/null +++ b/appcompat_v7/res/values-lv/strings.xml @@ -0,0 +1,32 @@ + + + + + "Gatavs" + "Pārvietoties uz sākuma ekrānu" + "Pārvietoties augšup" + "Vairāk opciju" + "Meklēt" + "Meklēšanas vaicājums" + "Notīrīt vaicājumu" + "Iesniegt vaicājumu" + "Meklēšana ar balsi" + "Izvēlieties lietotni" + "Skatīt visu" + "Kopīgot ar %s" + "Kopīgot ar:" + diff --git a/appcompat_v7/res/values-mn-rMN/strings.xml b/appcompat_v7/res/values-mn-rMN/strings.xml new file mode 100644 index 0000000..203e959 --- /dev/null +++ b/appcompat_v7/res/values-mn-rMN/strings.xml @@ -0,0 +1,32 @@ + + + + + "Дууссан" + "Нүүр хуудас руу шилжих" + "Дээш шилжих" + "Нэмэлт сонголтууд" + "Хайх" + "Хайх асуулга" + "Асуулгыг цэвэрлэх" + "Асуулгыг илгээх" + "Дуут хайлт" + "Апп сонгох" + "Бүгдийг харах" + "%s-тай хуваалцах" + "Хуваалцах" + diff --git a/appcompat_v7/res/values-ms-rMY/strings.xml b/appcompat_v7/res/values-ms-rMY/strings.xml new file mode 100644 index 0000000..b174068 --- /dev/null +++ b/appcompat_v7/res/values-ms-rMY/strings.xml @@ -0,0 +1,32 @@ + + + + + "Selesai" + "Navigasi skrin utama" + "Navigasi ke atas" + "Lagi pilihan" + "Cari" + "Pertanyaan carian" + "Kosongkan pertanyaan" + "Serah pertanyaan" + "Carian suara" + "Pilih apl" + "Lihat semua" + "Kongsi dengan %s" + "Kongsi dengan" + diff --git a/appcompat_v7/res/values-nb/strings.xml b/appcompat_v7/res/values-nb/strings.xml new file mode 100644 index 0000000..0d70b3b --- /dev/null +++ b/appcompat_v7/res/values-nb/strings.xml @@ -0,0 +1,32 @@ + + + + + "Fullført" + "Gå til startsiden" + "Gå opp" + "Flere alternativer" + "Søk" + "Søkeord" + "Slett søket" + "Utfør søket" + "Talesøk" + "Velg en app" + "Se alle" + "Del med %s" + "Del med" + diff --git a/appcompat_v7/res/values-nl/strings.xml b/appcompat_v7/res/values-nl/strings.xml new file mode 100644 index 0000000..1375f9e --- /dev/null +++ b/appcompat_v7/res/values-nl/strings.xml @@ -0,0 +1,32 @@ + + + + + "Gereed" + "Navigeren naar startpositie" + "Omhoog navigeren" + "Meer opties" + "Zoeken" + "Zoekopdracht" + "Zoekopdracht wissen" + "Zoekopdracht verzenden" + "Gesproken zoekopdracht" + "Een app selecteren" + "Alles weergeven" + "Delen met %s" + "Delen met" + diff --git a/appcompat_v7/res/values-pl/strings.xml b/appcompat_v7/res/values-pl/strings.xml new file mode 100644 index 0000000..aa1ba79 --- /dev/null +++ b/appcompat_v7/res/values-pl/strings.xml @@ -0,0 +1,32 @@ + + + + + "Gotowe" + "Przejdź do strony głównej" + "Przejdź wyżej" + "Więcej opcji" + "Szukaj" + "Wyszukiwane hasło" + "Wyczyść zapytanie" + "Wyślij zapytanie" + "Wyszukiwanie głosowe" + "Wybierz aplikację" + "Zobacz wszystkie" + "Udostępnij dla %s" + "Udostępnij dla" + diff --git a/appcompat_v7/res/values-pt-rPT/strings.xml b/appcompat_v7/res/values-pt-rPT/strings.xml new file mode 100644 index 0000000..0d63f5f --- /dev/null +++ b/appcompat_v7/res/values-pt-rPT/strings.xml @@ -0,0 +1,32 @@ + + + + + "Concluído" + "Navegar para a página inicial" + "Navegar para cima" + "Mais opções" + "Pesquisar" + "Consulta de pesquisa" + "Limpar consulta" + "Enviar consulta" + "Pesquisa por voz" + "Escolher uma aplicação" + "Ver tudo" + "Partilhar com %s" + "Partilhar com" + diff --git a/appcompat_v7/res/values-pt/strings.xml b/appcompat_v7/res/values-pt/strings.xml new file mode 100644 index 0000000..88b09ea --- /dev/null +++ b/appcompat_v7/res/values-pt/strings.xml @@ -0,0 +1,32 @@ + + + + + "Concluído" + "Navegar para a página inicial" + "Navegar para cima" + "Mais opções" + "Pesquisar" + "Consulta de pesquisa" + "Limpar consulta" + "Enviar consulta" + "Pesquisa por voz" + "Selecione um aplicativo" + "Ver tudo" + "Compartilhar com %s" + "Compartilhar com" + diff --git a/appcompat_v7/res/values-ro/strings.xml b/appcompat_v7/res/values-ro/strings.xml new file mode 100644 index 0000000..36a7b31 --- /dev/null +++ b/appcompat_v7/res/values-ro/strings.xml @@ -0,0 +1,32 @@ + + + + + "Terminat" + "Navigați la ecranul de pornire" + "Navigați în sus" + "Mai multe opțiuni" + "Căutați" + "Interogare de căutare" + "Ștergeți interogarea" + "Trimiteți interogarea" + "Căutare vocală" + "Alegeți o aplicaţie" + "Afișați-le pe toate" + "Trimiteți la %s" + "Trimiteți la" + diff --git a/appcompat_v7/res/values-ru/strings.xml b/appcompat_v7/res/values-ru/strings.xml new file mode 100644 index 0000000..5c22e5e --- /dev/null +++ b/appcompat_v7/res/values-ru/strings.xml @@ -0,0 +1,32 @@ + + + + + "Готово" + "Перейти на главный экран" + "Перейти вверх" + "Другие параметры" + "Поиск" + "Поисковый запрос" + "Удалить запрос" + "Отправить запрос" + "Голосовой поиск" + "Выбрать приложение" + "Показать все" + "Открыть доступ пользователю %s" + "Открыть доступ" + diff --git a/appcompat_v7/res/values-sk/strings.xml b/appcompat_v7/res/values-sk/strings.xml new file mode 100644 index 0000000..253f3e5 --- /dev/null +++ b/appcompat_v7/res/values-sk/strings.xml @@ -0,0 +1,32 @@ + + + + + "Hotovo" + "Prejsť na plochu" + "Prejsť hore" + "Ďalšie možnosti" + "Hľadať" + "Vyhľadávací dopyt" + "Vymazať dopyt" + "Odoslať dopyt" + "Hlasové vyhľadávanie" + "Zvoľte aplikáciu" + "Zobraziť všetko" + "Zdieľať pomocou %s" + "Zdieľať pomocou" + diff --git a/appcompat_v7/res/values-sl/strings.xml b/appcompat_v7/res/values-sl/strings.xml new file mode 100644 index 0000000..8e3e23e --- /dev/null +++ b/appcompat_v7/res/values-sl/strings.xml @@ -0,0 +1,32 @@ + + + + + "Končano" + "Krmarjenje domov" + "Krmarjenje navzgor" + "Več možnosti" + "Iskanje" + "Iskalna poizvedba" + "Izbris poizvedbe" + "Pošiljanje poizvedbe" + "Glasovno iskanje" + "Izbira aplikacije" + "Pokaži vse" + "Deljenje z:" + "Deljenje z" + diff --git a/appcompat_v7/res/values-sr/strings.xml b/appcompat_v7/res/values-sr/strings.xml new file mode 100644 index 0000000..213c939 --- /dev/null +++ b/appcompat_v7/res/values-sr/strings.xml @@ -0,0 +1,32 @@ + + + + + "Готово" + "Одлазак на Почетну" + "Кретање нагоре" + "Још опција" + "Претрага" + "Упит за претрагу" + "Брисање упита" + "Слање упита" + "Гласовна претрага" + "Избор апликације" + "Прикажи све" + "Дели са апликацијом %s" + "Дели са" + diff --git a/appcompat_v7/res/values-sv/strings.xml b/appcompat_v7/res/values-sv/strings.xml new file mode 100644 index 0000000..49c7a5d --- /dev/null +++ b/appcompat_v7/res/values-sv/strings.xml @@ -0,0 +1,32 @@ + + + + + "Klart" + "Visa startsidan" + "Navigera uppåt" + "Fler alternativ" + "Sök" + "Sökfråga" + "Ta bort frågan" + "Skicka fråga" + "Röstsökning" + "Välj en app" + "Visa alla" + "Dela med %s" + "Dela med" + diff --git a/appcompat_v7/res/values-sw/strings.xml b/appcompat_v7/res/values-sw/strings.xml new file mode 100644 index 0000000..6455ba5 --- /dev/null +++ b/appcompat_v7/res/values-sw/strings.xml @@ -0,0 +1,32 @@ + + + + + "Nimemaliza" + "Nenda mwanzo" + "Nenda juu" + "Chaguo zaidi" + "Tafuta" + "Hoja ya utafutaji" + "Futa hoja" + "Wasilisha hoja" + "Tafuta kwa kutamka" + "Chagua programu" + "Angalia zote" + "Shiriki na %s" + "Shiriki na:" + diff --git a/appcompat_v7/res/values-sw600dp/config.xml b/appcompat_v7/res/values-sw600dp/config.xml new file mode 100644 index 0000000..fba21e1 --- /dev/null +++ b/appcompat_v7/res/values-sw600dp/config.xml @@ -0,0 +1,25 @@ + + + + + + + 580dp + \ No newline at end of file diff --git a/appcompat_v7/res/values-sw600dp/dimens.xml b/appcompat_v7/res/values-sw600dp/dimens.xml new file mode 100644 index 0000000..94fe525 --- /dev/null +++ b/appcompat_v7/res/values-sw600dp/dimens.xml @@ -0,0 +1,34 @@ + + + + + + 5 + + 56dip + + 4dip + + 18dp + + 14dp + + -3dp + + 9dip + \ No newline at end of file diff --git a/appcompat_v7/res/values-th/strings.xml b/appcompat_v7/res/values-th/strings.xml new file mode 100644 index 0000000..275dc57 --- /dev/null +++ b/appcompat_v7/res/values-th/strings.xml @@ -0,0 +1,32 @@ + + + + + "เสร็จสิ้น" + "นำทางไปหน้าแรก" + "นำทางขึ้น" + "ตัวเลือกอื่น" + "ค้นหา" + "ข้อความค้นหา" + "ล้างข้อความค้นหา" + "ส่งข้อความค้นหา" + "ค้นหาด้วยเสียง" + "เลือกแอป" + "ดูทั้งหมด" + "แชร์กับ %s" + "แชร์กับ" + diff --git a/appcompat_v7/res/values-tl/strings.xml b/appcompat_v7/res/values-tl/strings.xml new file mode 100644 index 0000000..e0705d6 --- /dev/null +++ b/appcompat_v7/res/values-tl/strings.xml @@ -0,0 +1,32 @@ + + + + + "Tapos na" + "Mag-navigate patungo sa home" + "Mag-navigate pataas" + "Higit pang mga opsyon" + "Maghanap" + "Query sa paghahanap" + "I-clear ang query" + "Isumite ang query" + "Paghahanap gamit ang boses" + "Pumili ng isang app" + "Tingnan lahat" + "Ibahagi sa/kay %s" + "Ibahagi sa/kay" + diff --git a/appcompat_v7/res/values-tr/strings.xml b/appcompat_v7/res/values-tr/strings.xml new file mode 100644 index 0000000..61cb966 --- /dev/null +++ b/appcompat_v7/res/values-tr/strings.xml @@ -0,0 +1,32 @@ + + + + + "Tamamlandı" + "Ana ekrana git" + "Yukarı git" + "Diğer seçenekler" + "Ara" + "Arama sorgusu" + "Sorguyu temizle" + "Sorguyu gönder" + "Sesli arama" + "Bir uygulama seçin" + "Tümünü göster" + "%s ile paylaş" + "Şununla paylaş" + diff --git a/appcompat_v7/res/values-uk/strings.xml b/appcompat_v7/res/values-uk/strings.xml new file mode 100644 index 0000000..f670140 --- /dev/null +++ b/appcompat_v7/res/values-uk/strings.xml @@ -0,0 +1,32 @@ + + + + + "Готово" + "Перейти на головний" + "Перейти вгору" + "Інші опції" + "Пошук" + "Пошуковий запит" + "Очистити запит" + "Надіслати запит" + "Голосовий пошук" + "Вибрати програму" + "Переглянути всі" + "Надіслати через %s" + "Надіслати через" + diff --git a/appcompat_v7/res/values-v11/styles_base.xml b/appcompat_v7/res/values-v11/styles_base.xml new file mode 100644 index 0000000..2cee503 --- /dev/null +++ b/appcompat_v7/res/values-v11/styles_base.xml @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/appcompat_v7/res/values-v11/themes_base.xml b/appcompat_v7/res/values-v11/themes_base.xml new file mode 100644 index 0000000..ca7acbd --- /dev/null +++ b/appcompat_v7/res/values-v11/themes_base.xml @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + diff --git a/appcompat_v7/res/values-v14/styles_base.xml b/appcompat_v7/res/values-v14/styles_base.xml new file mode 100644 index 0000000..4c64aee --- /dev/null +++ b/appcompat_v7/res/values-v14/styles_base.xml @@ -0,0 +1,228 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/appcompat_v7/res/values-v14/themes_base.xml b/appcompat_v7/res/values-v14/themes_base.xml new file mode 100644 index 0000000..26ad271 --- /dev/null +++ b/appcompat_v7/res/values-v14/themes_base.xml @@ -0,0 +1,109 @@ + + + + + + + + + + + + + + + + + + diff --git a/appcompat_v7/res/values-vi/strings.xml b/appcompat_v7/res/values-vi/strings.xml new file mode 100644 index 0000000..0840f73 --- /dev/null +++ b/appcompat_v7/res/values-vi/strings.xml @@ -0,0 +1,32 @@ + + + + + "Xong" + "Điều hướng về trang chủ" + "Điều hướng lên trên" + "Thêm tùy chọn" + "Tìm kiếm" + "Tìm kiếm truy vấn" + "Xóa truy vấn" + "Gửi truy vấn" + "Tìm kiếm bằng giọng nói" + "Chọn một ứng dụng" + "Xem tất cả" + "Chia sẻ với %s" + "Chia sẻ với" + diff --git a/appcompat_v7/res/values-w360dp/dimens.xml b/appcompat_v7/res/values-w360dp/dimens.xml new file mode 100644 index 0000000..e5b2456 --- /dev/null +++ b/appcompat_v7/res/values-w360dp/dimens.xml @@ -0,0 +1,22 @@ + + + + + + 3 + \ No newline at end of file diff --git a/appcompat_v7/res/values-w480dp/bools.xml b/appcompat_v7/res/values-w480dp/bools.xml new file mode 100644 index 0000000..6e6a3df --- /dev/null +++ b/appcompat_v7/res/values-w480dp/bools.xml @@ -0,0 +1,19 @@ + + + + true + false + diff --git a/appcompat_v7/res/values-w480dp/config.xml b/appcompat_v7/res/values-w480dp/config.xml new file mode 100644 index 0000000..e95b6ff --- /dev/null +++ b/appcompat_v7/res/values-w480dp/config.xml @@ -0,0 +1,18 @@ + + + + true + diff --git a/appcompat_v7/res/values-w500dp/dimens.xml b/appcompat_v7/res/values-w500dp/dimens.xml new file mode 100644 index 0000000..dd6458b --- /dev/null +++ b/appcompat_v7/res/values-w500dp/dimens.xml @@ -0,0 +1,22 @@ + + + + + + 4 + \ No newline at end of file diff --git a/appcompat_v7/res/values-w600dp/dimens.xml b/appcompat_v7/res/values-w600dp/dimens.xml new file mode 100644 index 0000000..5bbc34d --- /dev/null +++ b/appcompat_v7/res/values-w600dp/dimens.xml @@ -0,0 +1,40 @@ + + + + + + 5 + + + 56dip + + 4dip + + 18dp + + 14dp + + -3dp + + 9dip + + 64dip + + + 192dip + \ No newline at end of file diff --git a/appcompat_v7/res/values-w720dp/bools.xml b/appcompat_v7/res/values-w720dp/bools.xml new file mode 100644 index 0000000..05c5aab --- /dev/null +++ b/appcompat_v7/res/values-w720dp/bools.xml @@ -0,0 +1,19 @@ + + + + + false + \ No newline at end of file diff --git a/appcompat_v7/res/values-xlarge/bools.xml b/appcompat_v7/res/values-xlarge/bools.xml new file mode 100644 index 0000000..05c5aab --- /dev/null +++ b/appcompat_v7/res/values-xlarge/bools.xml @@ -0,0 +1,19 @@ + + + + + false + \ No newline at end of file diff --git a/appcompat_v7/res/values-xlarge/dimens.xml b/appcompat_v7/res/values-xlarge/dimens.xml new file mode 100644 index 0000000..6217586 --- /dev/null +++ b/appcompat_v7/res/values-xlarge/dimens.xml @@ -0,0 +1,42 @@ + + + + + + + 5 + + + 56dip + + 4dip + + 18dp + + 14dp + + -3dp + + 9dip + + 64dip + + + 192dip + + diff --git a/appcompat_v7/res/values-zh-rCN/strings.xml b/appcompat_v7/res/values-zh-rCN/strings.xml new file mode 100644 index 0000000..87b36b0 --- /dev/null +++ b/appcompat_v7/res/values-zh-rCN/strings.xml @@ -0,0 +1,32 @@ + + + + + "完成" + "转到主屏幕" + "转到上一层级" + "更多选项" + "搜索" + "搜索查询" + "清除查询" + "提交查询" + "语音搜索" + "选择应用" + "查看全部" + "通过%s分享" + "分享方式" + diff --git a/appcompat_v7/res/values-zh-rHK/strings.xml b/appcompat_v7/res/values-zh-rHK/strings.xml new file mode 100644 index 0000000..f6a367d --- /dev/null +++ b/appcompat_v7/res/values-zh-rHK/strings.xml @@ -0,0 +1,32 @@ + + + + + "完成" + "瀏覽主頁" + "向上瀏覽" + "更多選項" + "搜尋" + "搜尋查詢" + "清除查詢" + "提交查詢" + "語音搜尋" + "選擇應用程式" + "顯示全部" + "與「%s」分享" + "分享對象" + diff --git a/appcompat_v7/res/values-zh-rTW/strings.xml b/appcompat_v7/res/values-zh-rTW/strings.xml new file mode 100644 index 0000000..c804ccf --- /dev/null +++ b/appcompat_v7/res/values-zh-rTW/strings.xml @@ -0,0 +1,32 @@ + + + + + "完成" + "瀏覽首頁" + "向上瀏覽" + "更多選項" + "搜尋" + "搜尋查詢" + "清除查詢" + "提交查詢" + "語音搜尋" + "選擇應用程式" + "查看全部" + "與「%s」分享" + "選擇分享對象" + diff --git a/appcompat_v7/res/values-zu/strings.xml b/appcompat_v7/res/values-zu/strings.xml new file mode 100644 index 0000000..92eac7e --- /dev/null +++ b/appcompat_v7/res/values-zu/strings.xml @@ -0,0 +1,32 @@ + + + + + "Kwenziwe" + "Zulazulela ekhaya" + "Zulazulela phezulu" + "Izinketho eziningi" + "Sesha" + "Umbuzo wosesho" + "Sula inkinga" + "Hambisa umbuzo" + "Ukusesha ngezwi" + "Khetha uhlelo lokusebenza" + "Buka konke" + "Yabelana no-%s" + "Yabelana no-" + diff --git a/appcompat_v7/res/values/attrs.xml b/appcompat_v7/res/values/attrs.xml new file mode 100644 index 0000000..89749c0 --- /dev/null +++ b/appcompat_v7/res/values/attrs.xml @@ -0,0 +1,556 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/appcompat_v7/res/values/bools.xml b/appcompat_v7/res/values/bools.xml new file mode 100644 index 0000000..004d947 --- /dev/null +++ b/appcompat_v7/res/values/bools.xml @@ -0,0 +1,23 @@ + + + + + false + true + true + + false + diff --git a/appcompat_v7/res/values/colors.xml b/appcompat_v7/res/values/colors.xml new file mode 100644 index 0000000..884387a --- /dev/null +++ b/appcompat_v7/res/values/colors.xml @@ -0,0 +1,20 @@ + + + + #7fa87f + @android:color/black + @android:color/black + \ No newline at end of file diff --git a/appcompat_v7/res/values/config.xml b/appcompat_v7/res/values/config.xml new file mode 100644 index 0000000..8c027d1 --- /dev/null +++ b/appcompat_v7/res/values/config.xml @@ -0,0 +1,34 @@ + + + + + + + false + + + 320dp + + + true + \ No newline at end of file diff --git a/appcompat_v7/res/values/dimens.xml b/appcompat_v7/res/values/dimens.xml new file mode 100644 index 0000000..befb9f6 --- /dev/null +++ b/appcompat_v7/res/values/dimens.xml @@ -0,0 +1,61 @@ + + + + + + + 2 + + + 180dp + + + 48dip + + 8dip + + 18dp + + 14dp + + -3dp + + 5dip + + 56dip + + 48dp + + 40dp + + 296dp + + + 160dip + + 320dip + + + 8dip + 8dip + + 32dip + + diff --git a/appcompat_v7/res/values/ids.xml b/appcompat_v7/res/values/ids.xml new file mode 100644 index 0000000..ebeed83 --- /dev/null +++ b/appcompat_v7/res/values/ids.xml @@ -0,0 +1,23 @@ + + + + + + + + + + diff --git a/appcompat_v7/res/values/strings.xml b/appcompat_v7/res/values/strings.xml new file mode 100644 index 0000000..eceee56 --- /dev/null +++ b/appcompat_v7/res/values/strings.xml @@ -0,0 +1,48 @@ + + + + + + Done + + Navigate home + + Navigate up + + More options + + + Search + + Search query + + Clear query + + Submit query + + Voice search + + + + Choose an app + + See all + + Share with %s + + Share with + + \ No newline at end of file diff --git a/appcompat_v7/res/values/styles.xml b/appcompat_v7/res/values/styles.xml new file mode 100644 index 0000000..94d2e88 --- /dev/null +++ b/appcompat_v7/res/values/styles.xml @@ -0,0 +1,245 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/appcompat_v7/res/values/styles_base.xml b/appcompat_v7/res/values/styles_base.xml new file mode 100644 index 0000000..79dd732 --- /dev/null +++ b/appcompat_v7/res/values/styles_base.xml @@ -0,0 +1,404 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/appcompat_v7/res/values/themes.xml b/appcompat_v7/res/values/themes.xml new file mode 100644 index 0000000..7199f77 --- /dev/null +++ b/appcompat_v7/res/values/themes.xml @@ -0,0 +1,193 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/appcompat_v7/res/values/themes_base.xml b/appcompat_v7/res/values/themes_base.xml new file mode 100644 index 0000000..3b514a8 --- /dev/null +++ b/appcompat_v7/res/values/themes_base.xml @@ -0,0 +1,201 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/appcompat_v7/src/.readme b/appcompat_v7/src/.readme new file mode 100644 index 0000000..4bcebad --- /dev/null +++ b/appcompat_v7/src/.readme @@ -0,0 +1,2 @@ +This hidden file is there to ensure there is an src folder. +Once we support binary library this will go away. \ No newline at end of file diff --git a/build.gradle b/build.gradle new file mode 100644 index 0000000..0d9b5eb --- /dev/null +++ b/build.gradle @@ -0,0 +1,9 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules. +buildscript { + repositories { + mavenCentral() + } + dependencies { + classpath 'com.android.tools.build:gradle:0.12.+' + } +} diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..5d08ba7 --- /dev/null +++ b/gradle.properties @@ -0,0 +1,18 @@ +# Project-wide Gradle settings. + +# IDE (e.g. Android Studio) users: +# Settings specified in this file will override any Gradle settings +# configured through the IDE. + +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html + +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +# Default value: -Xmx10248m -XX:MaxPermSize=256m +# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 + +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# org.gradle.parallel=true \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000..8c0fb64 Binary files /dev/null and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..f2c754c --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Fri Jun 27 21:15:50 EDT 2014 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=http\://services.gradle.org/distributions/gradle-1.12-all.zip diff --git a/gradlew b/gradlew new file mode 100755 index 0000000..91a7e26 --- /dev/null +++ b/gradlew @@ -0,0 +1,164 @@ +#!/usr/bin/env bash + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn ( ) { + echo "$*" +} + +die ( ) { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; +esac + +# For Cygwin, ensure paths are in UNIX format before anything is touched. +if $cygwin ; then + [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` +fi + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >&- +APP_HOME="`pwd -P`" +cd "$SAVED" >&- + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules +function splitJvmOpts() { + JVM_OPTS=("$@") +} +eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS +JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" + +exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 0000000..aec9973 --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,90 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windowz variants + +if not "%OS%" == "Windows_NT" goto win9xME_args +if "%@eval[2+2]" == "4" goto 4NT_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* +goto execute + +:4NT_args +@rem Get arguments from the 4NT Shell from JP Software +set CMD_LINE_ARGS=%$ + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/jsword b/jsword new file mode 160000 index 0000000..1d1da91 --- /dev/null +++ b/jsword @@ -0,0 +1 @@ +Subproject commit 1d1da9194a07064c40af3ac29ecf471a7ae2e750 diff --git a/jsword-minimalbible b/jsword-minimalbible new file mode 160000 index 0000000..584c931 --- /dev/null +++ b/jsword-minimalbible @@ -0,0 +1 @@ +Subproject commit 584c9314f768e9e09aa6d147287062e2c796263e diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 0000000..3a495ec --- /dev/null +++ b/settings.gradle @@ -0,0 +1,3 @@ +include ':appcompat_v7' +include ':MinimalBible' +include ':jsword-minimalbible' diff --git a/wait_for_emulator b/wait_for_emulator new file mode 100755 index 0000000..207f028 --- /dev/null +++ b/wait_for_emulator @@ -0,0 +1,17 @@ +#!/bin/bash + +bootanim="" +failcounter=0 +until [[ "$bootanim" =~ "stopped" ]]; do + bootanim=`adb -e shell getprop init.svc.bootanim 2>&1` + echo "$bootanim" + if [[ "$bootanim" =~ "not found" ]]; then + let "failcounter += 1" + if [[ $failcounter -gt 3 ]]; then + echo "Failed to start emulator" + exit 1 + fi + fi + sleep 1 +done +echo "Done" \ No newline at end of file