bug fixes

This commit is contained in:
Mariotaku Lee 2014-09-14 19:47:35 +08:00
parent 9c7bace28e
commit 8ec18a70d2
19 changed files with 1352 additions and 1235 deletions

View File

@ -1,10 +0,0 @@
<component name="libraryTable">
<library name="android-easing-1.0.3">
<CLASSES>
<root url="file://$PROJECT_DIR$/twidere/build/intermediates/exploded-aar/it.sephiroth.android.library.easing/android-easing/1.0.3/res" />
<root url="jar://$PROJECT_DIR$/twidere/build/intermediates/exploded-aar/it.sephiroth.android.library.easing/android-easing/1.0.3/classes.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</component>

View File

@ -1,8 +1,8 @@
<component name="libraryTable">
<library name="imagezoom-1.0.5">
<library name="imagezoom-2.0.3">
<CLASSES>
<root url="file://$PROJECT_DIR$/twidere/build/intermediates/exploded-aar/it.sephiroth.android.library.imagezoom/imagezoom/1.0.5/res" />
<root url="jar://$PROJECT_DIR$/twidere/build/intermediates/exploded-aar/it.sephiroth.android.library.imagezoom/imagezoom/1.0.5/classes.jar!/" />
<root url="file://$PROJECT_DIR$/twidere/build/intermediates/exploded-aar/it.sephiroth.android.library.imagezoom/imagezoom/2.0.3/res" />
<root url="jar://$PROJECT_DIR$/twidere/build/intermediates/exploded-aar/it.sephiroth.android.library.imagezoom/imagezoom/2.0.3/classes.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />

View File

@ -1,8 +1,8 @@
<component name="libraryTable">
<library name="library-1.0">
<library name="library-1.0.1">
<CLASSES>
<root url="file://$PROJECT_DIR$/twidere/build/intermediates/exploded-aar/com.negusoft.holoaccent/library/1.0/res" />
<root url="jar://$PROJECT_DIR$/twidere/build/intermediates/exploded-aar/com.negusoft.holoaccent/library/1.0/classes.jar!/" />
<root url="file://$PROJECT_DIR$/twidere/build/intermediates/exploded-aar/com.negusoft.holoaccent/library/1.0.1/res" />
<root url="jar://$PROJECT_DIR$/twidere/build/intermediates/exploded-aar/com.negusoft.holoaccent/library/1.0.1/classes.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />

View File

@ -1,8 +1,8 @@
<component name="libraryTable">
<library name="play-services-5.0.77">
<library name="play-services-5.2.08">
<CLASSES>
<root url="jar://$PROJECT_DIR$/twidere/build/intermediates/exploded-aar/com.google.android.gms/play-services/5.0.77/classes.jar!/" />
<root url="file://$PROJECT_DIR$/twidere/build/intermediates/exploded-aar/com.google.android.gms/play-services/5.0.77/res" />
<root url="jar://$PROJECT_DIR$/twidere/build/intermediates/exploded-aar/com.google.android.gms/play-services/5.2.08/classes.jar!/" />
<root url="file://$PROJECT_DIR$/twidere/build/intermediates/exploded-aar/com.google.android.gms/play-services/5.2.08/res" />
</CLASSES>
<JAVADOC />
<SOURCES />

View File

@ -64,8 +64,8 @@ android {
dependencies {
compile 'com.android.support:support-v13:20.0.0'
compile 'com.google.android.gms:play-services:5.0.77'
compile 'com.negusoft.holoaccent:library:+'
compile 'com.google.android.gms:play-services:+'
compile 'com.negusoft.holoaccent:library:1.0.1'
compile 'com.etsy.android.grid:library:1.0.5'
compile 'com.sothree.slidinguppanel:library:2.0.0'
compile 'it.sephiroth.android.library.imagezoom:imagezoom:+'

View File

@ -148,8 +148,10 @@ public interface Constants extends TwidereConstants {
public static final String TWIDERE_PREVIEW_TEXT_HTML = "Twidere is an open source twitter client for Android, see <a href='https://github.com/mariotaku/twidere'>github.com/mariotak&#8230;<a/>";
public static final String TWIDERE_PREVIEW_SOURCE = "Twidere for Android";
public static final int HONDAJOJO_ID = 514378421;
public static final String HONDAJOJO_SCREEN_NAME = "@HondaJOJO";
public static final long HONDAJOJO_ID = 514378421;
public static final String HONDAJOJO_SCREEN_NAME = "HondaJOJO";
public static final int UUCKY_ID = 1062473329;
public static final String UUCKY_SCREEN_NAME = "Uucky_Lee";
public static final String EASTER_EGG_TRIGGER_TEXT = "\u718A\u5B69\u5B50";
public static final String EASTER_EGG_RESTORE_TEXT_PART1 = "\u5927\u738B";
public static final String EASTER_EGG_RESTORE_TEXT_PART2 = "\u5C0F\u7684";

View File

@ -179,14 +179,16 @@ public class SettingsActivity extends BasePreferenceActivity {
mPreferences = getSharedPreferences(SHARED_PREFERENCES_NAME, MODE_PRIVATE);
mCompactCards = mPreferences.getBoolean(KEY_COMPACT_CARDS, false);
mPlainListStyle = mPreferences.getBoolean(KEY_PLAIN_LIST_STYLE, false);
mCurrentThemeColor = getOverrideAccentColor();
mCurrentThemeColor = ThemeUtils.getUserThemeColor(this);
mCurrentThemeFontFamily = getThemeFontFamily();
mCurrentThemeBackgroundAlpha = getThemeBackgroundAlpha();
mCurrentIsDarkDrawerEnabled = isDarkDrawerEnabled();
super.onCreate(savedInstanceState);
setIntent(getIntent().addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT));
final ActionBar actionBar = getActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
if (actionBar != null) {
actionBar.setDisplayHomeAsUpEnabled(true);
}
if (savedInstanceState != null) {
invalidateHeaders();
}

View File

@ -31,6 +31,7 @@ import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.Rect;
import android.location.Criteria;
import android.location.Location;
@ -68,6 +69,7 @@ import android.widget.TextView;
import android.widget.TextView.OnEditorActionListener;
import android.widget.Toast;
import com.nostra13.universalimageloader.utils.IoUtils;
import com.scvngr.levelup.views.gallery.AdapterView;
import com.scvngr.levelup.views.gallery.AdapterView.OnItemClickListener;
import com.scvngr.levelup.views.gallery.AdapterView.OnItemLongClickListener;
@ -107,6 +109,8 @@ import org.mariotaku.twidere.view.holder.StatusViewHolder;
import org.mariotaku.twidere.view.iface.IColorLabelView;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
@ -156,6 +160,7 @@ public class ComposeActivity extends BaseSupportDialogActivity implements TextWa
private static final String EXTRA_ORIGINAL_TEXT = "original_text";
private static final String EXTRA_TEMP_URI = "temp_uri";
private static final String EXTRA_SHARE_SCREENSHOT = "share_screenshot";
private TwidereValidator mValidator;
private final Extractor mExtractor = new Extractor();
@ -785,10 +790,21 @@ public class ComposeActivity extends BaseSupportDialogActivity implements TextWa
final CharSequence extraSubject = intent.getCharSequenceExtra(Intent.EXTRA_SUBJECT);
final CharSequence extraText = intent.getCharSequenceExtra(Intent.EXTRA_TEXT);
final Uri extraStream = intent.getParcelableExtra(Intent.EXTRA_STREAM);
//TODO handle share_screenshot extra (Bitmap)
if (extraStream != null) {
new AddMediaTask(this, extraStream, createTempImageUri(), ParcelableMedia.TYPE_IMAGE, false).execute();
} else if (data != null) {
new AddMediaTask(this, data, createTempImageUri(), ParcelableMedia.TYPE_IMAGE, false).execute();
} else if (intent.hasExtra(EXTRA_SHARE_SCREENSHOT)) {
final Bitmap bitmap = intent.getParcelableExtra(EXTRA_SHARE_SCREENSHOT);
if (bitmap != null) {
try {
new AddBitmapTask(this, bitmap, createTempImageUri(), ParcelableMedia.TYPE_IMAGE).execute();
} catch (IOException e) {
// ignore
bitmap.recycle();
}
}
}
mEditText.setText(getShareStatus(this, extraSubject, extraText));
final int selection_end = mEditText.length();
@ -1330,6 +1346,34 @@ public class ComposeActivity extends BaseSupportDialogActivity implements TextWa
}
private static class AddBitmapTask extends AddMediaTask {
private final Bitmap mBitmap;
AddBitmapTask(ComposeActivity activity, Bitmap bitmap, Uri dst, int media_type) throws IOException {
super(activity, Uri.fromFile(File.createTempFile("tmp_bitmap", null)), dst, media_type,
true);
mBitmap = bitmap;
}
@Override
protected Boolean doInBackground(Void... params) {
if (mBitmap == null || mBitmap.isRecycled()) return false;
FileOutputStream os = null;
try {
os = new FileOutputStream(getSrc().getPath());
mBitmap.compress(Bitmap.CompressFormat.PNG, 0, os);
mBitmap.recycle();
} catch (IOException e) {
return false;
} finally {
IoUtils.closeSilently(os);
}
return super.doInBackground(params);
}
}
private static class AddMediaTask extends AsyncTask<Void, Void, Boolean> {
private final ComposeActivity activity;
@ -1337,6 +1381,10 @@ public class ComposeActivity extends BaseSupportDialogActivity implements TextWa
private final Uri src, dst;
private final boolean delete_src;
Uri getSrc() {
return src;
}
AddMediaTask(final ComposeActivity activity, final Uri src, final Uri dst, final int media_type,
final boolean delete_src) {
this.activity = activity;

View File

@ -613,7 +613,7 @@ public class HomeActivity extends BaseSupportActivity implements OnClickListener
unregisterReceiver(mStateReceiver);
final ContentResolver resolver = getContentResolver();
resolver.unregisterContentObserver(mAccountChangeObserver);
mPreferences.edit().putInt(KEY_SAVED_TAB_POSITION, mViewPager.getCurrentItem()).commit();
mPreferences.edit().putInt(KEY_SAVED_TAB_POSITION, mViewPager.getCurrentItem()).apply();
sendBroadcast(new Intent(BROADCAST_HOME_ACTIVITY_ONSTOP));
// UCD

View File

@ -35,6 +35,7 @@ import android.graphics.PorterDuff;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.Bundle;
import android.os.Parcelable;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.LoaderManager;
import android.support.v4.app.LoaderManager.LoaderCallbacks;
@ -433,15 +434,14 @@ public class UserProfileFragment extends BaseSupportListFragment implements OnCl
.registerOnSharedPreferenceChangeListener(this);
mLocale = getResources().getConfiguration().locale;
final Bundle args = getArguments();
long account_id = -1, user_id = -1;
String screen_name = null;
if (args != null) {
if (savedInstanceState != null) {
args.putAll(savedInstanceState);
}
account_id = args.getLong(EXTRA_ACCOUNT_ID, -1);
user_id = args.getLong(EXTRA_USER_ID, -1);
screen_name = args.getString(EXTRA_SCREEN_NAME);
long accountId = -1, userId = -1;
String screenName = null;
if (savedInstanceState != null) {
args.putAll(savedInstanceState);
} else {
accountId = args.getLong(EXTRA_ACCOUNT_ID, -1);
userId = args.getLong(EXTRA_USER_ID, -1);
screenName = args.getString(EXTRA_SCREEN_NAME);
}
mProfileImageLoader = getApplication().getImageLoaderWrapper();
mAdapter = new ListActionAdapter(getActivity());
@ -454,6 +454,11 @@ public class UserProfileFragment extends BaseSupportListFragment implements OnCl
setListAdapter(null);
mListView = getListView();
mListView.addHeaderView(mHeaderView, null, false);
if (isUucky(userId, screenName, args.getParcelable(EXTRA_USER))) {
final View uuckyFooter = View.inflate(getActivity(),
R.layout.list_footer_user_profile_uucky, null);
mListView.addFooterView(uuckyFooter, null, false);
}
mListView.setOnItemClickListener(this);
mListView.setOnItemLongClickListener(this);
@ -465,7 +470,16 @@ public class UserProfileFragment extends BaseSupportListFragment implements OnCl
mProfileBannerSpace.setOnTouchListener(this);
setListAdapter(mAdapter);
getUserInfo(account_id, user_id, screen_name, false);
getUserInfo(accountId, userId, screenName, false);
}
private boolean isUucky(long userId, String screenName, Parcelable parcelable) {
if (userId == UUCKY_ID || UUCKY_SCREEN_NAME.equalsIgnoreCase(screenName)) return true;
if (parcelable instanceof ParcelableUser) {
final ParcelableUser user = (ParcelableUser) parcelable;
return user.id == UUCKY_ID || UUCKY_SCREEN_NAME.equalsIgnoreCase(user.screen_name);
}
return false;
}
@Override

View File

@ -741,7 +741,7 @@ public final class TwidereDataProvider extends ContentProvider implements Consta
private void displayStatusesNotification(final int notifiedCount, final AccountPreferences accountPreferences,
final int notificationType, final int notificationId, final List<ParcelableStatus> statuses,
final int titleSingle, final int titleMutiple, final int icon) {
final int titleSingle, final int titleMultiple, final int icon) {
final NotificationManager nm = getNotificationManager();
if (notifiedCount == 0 || accountPreferences == null || statuses.isEmpty()) return;
final long accountId = accountPreferences.getAccountId();
@ -778,7 +778,7 @@ public final class TwidereDataProvider extends ContentProvider implements Consta
final String displayName = getDisplayName(context, firstItem.user_id, firstItem.user_name,
firstItem.user_screen_name, mNameFirst, mNickOnly);
if (usersCount > 1) {
title = resources.getString(titleMutiple, displayName, usersCount - 1);
title = resources.getString(titleMultiple, displayName, usersCount - 1);
} else {
title = resources.getString(titleSingle, displayName);
}
@ -818,9 +818,9 @@ public final class TwidereDataProvider extends ContentProvider implements Consta
final Intent viewProfileIntent = new Intent(Intent.ACTION_VIEW, viewProfileBuilder.build());
viewProfileIntent.setPackage(APP_PACKAGE_NAME);
notifBuilder.addAction(R.drawable.ic_action_reply, context.getString(R.string.reply),
PendingIntent.getActivity(context, 0, replyIntent, PendingIntent.FLAG_UPDATE_CURRENT));
PendingIntent.getActivity(context, 0, replyIntent, PendingIntent.FLAG_UPDATE_CURRENT));
notifBuilder.addAction(R.drawable.ic_action_profile, context.getString(R.string.view_user_profile),
PendingIntent.getActivity(context, 0, viewProfileIntent, PendingIntent.FLAG_UPDATE_CURRENT));
PendingIntent.getActivity(context, 0, viewProfileIntent, PendingIntent.FLAG_UPDATE_CURRENT));
final NotificationCompat.BigTextStyle bigTextStyle = new NotificationCompat.BigTextStyle(notifBuilder);
bigTextStyle.bigText(stripMentionText(firstItem.text_unescaped,
getAccountScreenName(context, firstItem.account_id)));

View File

@ -59,6 +59,7 @@ public class ProfileBannerImageView extends ForegroundImageView implements IExte
public ProfileBannerImageView(final Context context, final AttributeSet attrs, final int defStyle) {
super(context, attrs, defStyle);
if (isInEditMode()) return;
setScaleType(ScaleType.CENTER_CROP);
ViewCompat.setLayerType(this, LAYER_TYPE_SOFTWARE, null);
final boolean is_dark_theme = ThemeUtils.isDarkTheme(context);
COLORS_REVERSED[1] = is_dark_theme ? 0xFF000000 : 0xFFFFFFFF;

View File

@ -33,62 +33,62 @@ import org.mariotaku.twidere.util.accessor.ViewAccessor;
public class RightDrawerFrameLayout extends FrameLayout {
private final Paint mClipPaint = new Paint();
private float mScrollScale, mPercentOpen;
private boolean mClipEnabled;
private final Paint mClipPaint = new Paint();
private float mScrollScale, mPercentOpen;
private boolean mClipEnabled;
public RightDrawerFrameLayout(final Context context) {
this(context, null);
}
public RightDrawerFrameLayout(final Context context) {
this(context, null);
}
public RightDrawerFrameLayout(final Context context, final AttributeSet attrs) {
this(context, attrs, 0);
}
public RightDrawerFrameLayout(final Context context, final AttributeSet attrs) {
this(context, attrs, 0);
}
public RightDrawerFrameLayout(final Context context, final AttributeSet attrs, final int defStyle) {
super(context, attrs, defStyle);
final Drawable bg;
if (ThemeUtils.isDarkDrawerEnabled(context)) {
bg = ThemeUtils.getWindowBackground(context, ThemeUtils.getDrawerThemeResource(context));
} else {
bg = ThemeUtils.getWindowBackground(context);
}
ViewAccessor.setBackground(this, bg);
setWillNotDraw(false);
mClipPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR));
}
public RightDrawerFrameLayout(final Context context, final AttributeSet attrs, final int defStyle) {
super(context, attrs, defStyle);
final Drawable bg;
if (!isInEditMode() && ThemeUtils.isDarkDrawerEnabled(context)) {
bg = ThemeUtils.getWindowBackground(context, ThemeUtils.getDrawerThemeResource(context));
} else {
bg = ThemeUtils.getWindowBackground(context);
}
ViewAccessor.setBackground(this, bg);
setWillNotDraw(false);
mClipPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR));
}
@Override
public boolean hasOverlappingRendering() {
return mClipEnabled;
}
@Override
public boolean hasOverlappingRendering() {
return mClipEnabled;
}
public void setClipEnabled(final boolean clipEnabled) {
mClipEnabled = clipEnabled;
if (!clipEnabled) {
setAlpha(1);
}
}
public void setClipEnabled(final boolean clipEnabled) {
mClipEnabled = clipEnabled;
if (!clipEnabled) {
setAlpha(1);
}
}
public void setPercentOpen(final float percentOpen) {
if (mPercentOpen == percentOpen) return;
mPercentOpen = percentOpen;
if (mClipEnabled) {
setAlpha(1 - (1 - mPercentOpen) * (1.0f / 0xff));
invalidate();
}
}
public void setPercentOpen(final float percentOpen) {
if (mPercentOpen == percentOpen) return;
mPercentOpen = percentOpen;
if (mClipEnabled) {
setAlpha(1 - (1 - mPercentOpen) * (1.0f / 0xff));
invalidate();
}
}
public void setScrollScale(final float scrollScale) {
mScrollScale = scrollScale;
}
public void setScrollScale(final float scrollScale) {
mScrollScale = scrollScale;
}
@Override
protected void dispatchDraw(final Canvas canvas) {
super.dispatchDraw(canvas);
if (mClipEnabled && mPercentOpen > 0 && mPercentOpen < 1) {
final int right = Math.round(getWidth() * (1 - mPercentOpen) * (1 - mScrollScale));
canvas.drawRect(getLeft(), getTop(), right, getBottom(), mClipPaint);
}
}
@Override
protected void dispatchDraw(final Canvas canvas) {
super.dispatchDraw(canvas);
if (mClipEnabled && mPercentOpen > 0 && mPercentOpen < 1) {
final int right = Math.round(getWidth() * (1 - mPercentOpen) * (1 - mScrollScale));
canvas.drawRect(getLeft(), getTop(), right, getBottom(), mClipPaint);
}
}
}

View File

@ -1,15 +1,45 @@
<?xml version="1.0" encoding="utf-8"?>
<org.mariotaku.twidere.view.RightDrawerFrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/right_drawer_container"
android:layout_width="match_parent"
android:layout_height="match_parent">
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/right_drawer_container"
android:layout_width="match_parent"
android:layout_height="match_parent">
<fragment
android:id="@+id/right_drawer"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="org.mariotaku.twidere.fragment.support.QuickMenuFragment"
tools:layout="@layout/fragment_quick_menu"/>
<FrameLayout
android:visibility="gone"
android:layout_width="match_parent"
android:layout_height="match_parent">
<fragment
android:id="@+id/right_drawer"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="org.mariotaku.twidere.fragment.support.QuickMenuFragment"
tools:layout="@layout/fragment_quick_menu"/>
</FrameLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical"
android:padding="@dimen/element_spacing_normal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:alpha="0.5"
android:rotation="95.0"
android:text=": )"
android:textColor="@android:color/white"
android:textSize="48sp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:alpha="0.5"
android:gravity="center"
android:text="Something awesome will appear soon"
android:textColor="@android:color/white"/>
</LinearLayout>
</org.mariotaku.twidere.view.RightDrawerFrameLayout>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:text="- Mea est luna -"
android:gravity="center"
android:textColor="?android:textColorPrimary"
android:alpha="0.2"
android:textSize="8sp"
android:typeface="serif"
android:textStyle="italic"
android:layout_height="wrap_content" />

View File

@ -535,7 +535,7 @@
<string name="translate">Translate</string>
<string name="sponsored_by">Sponsored by</string>
<string name="special_thanks_to">Special thanks to</string>
<string name="contributors_list_summary">If you don\'t see your name, please tell our project account.</string>
<string name="contributors_list_summary">If you didn\'t find your name, please tell our project account.</string>
<string name="account_options">Account options</string>
<string name="show_in_timeline">Show in timeline</string>
<string name="cards">Cards</string>

View File

@ -56,23 +56,40 @@
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/jni" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/rs" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/assets" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/bundles" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/classes" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/coverage-instrumented-classes" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/dependency-cache" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/dex" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/dex-cache" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/incremental" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/jacoco" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/javaResources" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/libs" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/lint" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/manifests" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/ndk" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/pre-dexed" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/proguard" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/res" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/rs" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/symbols" />
<excludeFolder url="file://$MODULE_DIR$/build/outputs" />
</content>
<orderEntry type="jdk" jdkName="Android API 19 Platform" jdkType="Android SDK" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" exported="" name="library-1.0.1" level="project" />
<orderEntry type="library" exported="" name="support-v13-20.0.0" level="project" />
<orderEntry type="library" exported="" name="library-2.0.0" level="project" />
<orderEntry type="library" exported="" name="android-easing-1.0.3" level="project" />
<orderEntry type="library" exported="" name="httpclient-android-4.3.3" level="project" />
<orderEntry type="library" exported="" name="imagezoom-1.0.5" level="project" />
<orderEntry type="library" exported="" name="play-services-5.0.77" level="project" />
<orderEntry type="library" exported="" name="merge-1.0.1" level="project" />
<orderEntry type="library" exported="" name="play-services-5.2.08" level="project" />
<orderEntry type="library" exported="" name="library-1.0.5" level="project" />
<orderEntry type="library" exported="" name="support-v4-20.0.0" level="project" />
<orderEntry type="library" exported="" name="snakeyaml-1.12" level="project" />
<orderEntry type="library" exported="" name="acra-4.5.0" level="project" />
<orderEntry type="library" exported="" name="library-1.0" level="project" />
<orderEntry type="library" exported="" name="imagezoom-2.0.3" level="project" />
<orderEntry type="library" exported="" name="dashclock-api-2.0.0" level="project" />
<orderEntry type="library" exported="" name="dnsjava-ipv6-1.0-with-sources" level="project" />
<orderEntry type="library" exported="" name="jsonserializer-1.0" level="project" />