+ android-filechooser library

This commit is contained in:
Philipp Crocoll 2013-09-20 22:07:41 +02:00
parent 6cb44497d1
commit 96a30e4588
457 changed files with 16000 additions and 0 deletions

View File

@ -0,0 +1,18 @@
Copyright (C) 2012 Hai Bison
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

View File

@ -0,0 +1,291 @@
# android-filechooser
* Version: 5.4
Feel free to contact us at:
* [Homepage](http://www.haibison.com)
* E-mails:
+ haibisonapps[at]gmail.com
# CREDITS
We sincerely thank all of our friends -- who have been contributing to this
project. We hope this project will be always useful for everyone.
* C
* Simon McCorkindale
+ [Website](http://www.aroha.mobi/)
* And others.
# HISTORY
* Version 5.4
+ *Release:* August 02, 2013
+ Integrate library `android-support-v7-appcompat` for action bar in APIs
7-10.
+ Update icon sets following latest Android guidelines.
+ Optimize code.
+ Some minor changes...
* Version 5.4 beta
+ *Initialize:* June 15, 2013
* Version 5.3
+ *Release:* June 12, 2013
+ Add light themes (normal with action bar and dialog);
+ Fix some grammars (plural forms of verbs in multi-selection mode...);
* Version 5.2
+ *Initialize:* May 5, 2013
+ *Release:* May 5, 2013
+ All providers: use the host's package name as authority prefix instead of
UUID authority suffix;
+ Change coding style: use UPPER_CASE for `static final` fields and enums;
* Version 5.1
+ *Release:* April 28, 2013
+ We're happy to announce that new version has more comfortable UI, more
efficient and is stable. We've changed the entire architecture of the
project. Now it uses content providers to serve requests. That's better
approach than services.
+ Unfortunately we no longer support free-documentation. Now we're providing
Developer Book with reasonable prices. If you could, please support us by
purchasing the book. Visit our [official website](http://www.haibison.com)
for further information.
+ Thank you for using our services.
* Version 5.1 beta
+ *Initialize:* October 23, 2012
* Version 5.0
+ *Release:* October 21, 2012
+ We don't use Apache License 2.0 anymore. Now the library is released under
MIT license.
* Version 4.9
+ *Release:* October 20, 2012
+ Improves the speed of formatting file time;
+ Uses a unique filename of `SharedPreferences` instead of default
application's `SharedPreferences`;
+ Uses `Context.MODE_MULTI_PROCESS` for storing global preferences;
+ Uses a `Runnable` + `setSelection()` to select item of list view of files.
Because if the list view is handling data, only `setSelection()` might not
work;
+ Updates NOTICE;
* Version 4.9 beta
+ *Initialize:* October 12, 2012
* Version 4.8.1
+ *Release:* October 12, 2012
+ Fixes a bug that file item does not draw properly after flinging it to
delete files;
* Version 4.8
+ *Release:* October 12, 2012
+ Fixes a small bug that last location or selected file will be not pushed
into history;
* Version 4.7
+ *Release:* October 12, 2012
+ All date formatting utilities were moved from `/IFileAdapter` to
`/utils.DateUtils`;
+ Removes key `/FileChooserActivity._UseThemeDialog`;
+ Adds options for single tapping/ double tapping to choose files;
+ Auto remembers last location;
+ Adds key `/FileChooserActivity._SelectFile` to select a specific file on
startup;
+ Updates new mime types;
+ UI for footer;
+ Minor changes;
* Version 4.7 beta
+ *Initialize:* October 02, 2012
* Version 4.6.2
+ *Release:* October 01, 2012
+ Fixes: View does not reload after changing view type between list view and
grid view.
* Version 4.6.1
+ *Release:* October 01, 2012
+ Fixes: View does not reload after changing view type between list view and
grid view.
* Version 4.6
+ *Release:* October 01, 2012
+ Updates UI;
+ Removes deprecated method `History.push(A, A)`;
+ Keeps and shows full history to the user (wherever they have been gone
to);
+ Removes button `Cancel` in dialogs. Users can tap `Back` button or touch
outside of the dialogs to cancel them;
+ Moves `[/]io.LocalFile` to `[/]io.localfile.LocalFile`;
+ Fixes:
- Issue #6 (thanks to @buckelieg);
- Issue #10;
* Version 4.6 beta
+ *Initialize:* September 08, 2012
* Version 4.5
+ *Release:* September 07, 2012
+ New icons for menu `Home`, `Reload` and for file types audio, image,
video, plain text and compressed;
* Version 4.5 beta
+ *Initialize:* August 31, 2012
* Version 4.4
+ *Release:* August 30, 2012
+ Added languages: Spanish, Vietnamese. Special thanks to C. - a kind friend
who helped us translate the library into Spanish;
* Version 4.3
+ *Release:* August 29, 2012
+ Fixed
[issue #2](https://code.google.com/p/android-filechooser/issues/detail?id=2);
+ Upgraded UI;
+ Added history viewer;
+ Improved some minor code;
* Version 4.3 beta
+ Initialization: May 19, 2012
* Version 4.2
+ *Release:* May 15, 2012
+ due to
[this bug](https://code.google.com/p/android/issues/detail?id=30622), so
we prefix all resource names with `afc_`;
+ add small text view below location bar, to show current location's full
name if it is truncated by the view's ellipsize property;
+ save and restore state after screen orientation changed (except selected
items in multi-selection mode);
+ add menu `Reload`;
+ some UI fixes/ updates;
* Version 4.2 beta
+ Initialization: May 13, 2012
* Version 4.1
+ *Release:* May 12, 2012
+ update UI messages;
+ if the app does not have permission `WRITE_EXTERNAL_STORAGE`, notify user
when he creates or deletes folder/ file;
+ make location bar hold buttons of directories, which user can click to go
to;
* Version 4.1 beta
+ Initialization: May 11, 2012
* Version 4.0 - Tablet
+ *Release:* May 11, 2012
+ add `Home` button;
+ add grid view/ list view mode;
+ allow creating new directory;
+ allow deleting a single file/ directory by flinging its name;
+ use `android-support-v13.jar`:
- show menu items as actions from API 11 and up;
- support new Android layout;
+ change to new icons;
+ some minor changes;
* Version 4.0 beta
+ Initialization: May 08, 2012
* Version 3.5
+ *Release:* May 01, 2012
+ remove button `Cancel` (use default `Back` button of system)
+ hello May Day :-)
* Version 3.4
+ *Release:* March 23, 2012
+ fix serious bug: hardcode service action name of local file provider;
the service will be called as a remote service, which will raise
fatal exception if there are multiple instances of the library installed
on the device;
* Version 3.3
+ *Release:* March 22, 2012
+ fix bug in LoadingDialog: if the user finishes the owner activity, the
application can crash if the dialog is going to show up or dismiss;
+ improve `FileChooserActivity`: make its height and width always fit the
screen size in dialog theme;
* Version 3.2
+ *Release:* March 16, 2012
+ add package `io`: `IFile` and `LocalFile`;
+ use `IFile` instead of `java.io.File`;
+ remove `FileContainer` and package `bean`;
* Version 3.1
+ *Release:* March 15, 2012
+ add `FileProviderService`;
* Version 3.0
+ *Release:* March 15, 2012
+ move file listing functions to external service;
+ change project name from `FileChooser` to `android-filechooser` :-D
+ some minor changes:
- UI messages;
- icons;
- make `LoadingDialog` use `AsyncTask` instead of `Thread`;
- ...
* Version 2.0
+ *Release:* Feb 22, 2012
+ change default date format to `yyyy.MM.dd hh:mm a`;
+ try using sdcard as rootpath if it is not specified; if sdcard is not
available, use `/`;
+ add sorter (by name/ size/ date);
+ show directories' date (last modified);
* Version 1.91
+ *Release:* Feb 06, 2012
+ Add: show file time (last modified);
* Version 1.9
+ *Release:* Feb 06, 2012
+ Fix: crash if cast footer of listview to `DataModel`;
* Version 1.8.2
+ *Release:* Feb 06, 2012
+ enable fast scroll of the list view;
* Version 1.8.1
+ *Release:* Feb 05, 2012
+ Fix: it doesn't remember the first path (rootpath) in history;
* Version 1.8
+ *Release:* Feb 05, 2012
+ Shows progress dialog while listing files of a directory;
+ Adds flag max file count allowed, in case the directory has thousands of
files, the application can harm memory. Default value is `1,024`;
+ TODO: let the user cancel the method `java.io.File.listFiles()`. It seems
this is up to Android developers :-)
* Version 1.7
+ *Release:* Jan 22, 2012
+ add function to check if filename (in save dialog mode) is valid or not;
+ change name `FilesAdapter` to `FileAdapter`;
* Version 1.6
+ *Release:* Jan 13, 2012
+ check and warn user if save as filename is a directory;
+ when finish, return some flags for further use (in case the caller needs);
* Version 1.5
+ *Release:* Jan 13, 2012
+ apply Apache License 2.0;
+ set result code to `RESULT_CANCELED` when user clicks button `Cancel`;
* Version 1.4
+ *Release:* Jan 08, 2012
+ first publishing;
+ choose file(s) dialog;
+ choose file(s) and/or directory(ies) dialog;
+ save as dialog;

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
<classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
<classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="gen"/>
<classpathentry kind="output" path="bin/classes"/>
</classpath>

View File

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>android-filechooser</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>com.android.ide.eclipse.adt.ApkBuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>com.android.ide.eclipse.adt.AndroidNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>

View File

@ -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

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (c) 2012 Hai Bison
See the file LICENSE at the root directory of this project for copying
permission.
-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="group.pals.android.lib.ui.filechooser"
android:versionCode="@integer/afc_lib_version_code"
android:versionName="@string/afc_lib_version_name" >
<uses-sdk
android:minSdkVersion="4"
android:targetSdkVersion="17" />
</manifest>

View File

@ -0,0 +1,85 @@
<?xml version="1.0" encoding="UTF-8"?>
<project name="android-filechooser" default="help">
<!-- The local.properties file is created and updated by the 'android' tool.
It contains the path to the SDK. It should *NOT* be checked into
Version Control Systems. -->
<property file="local.properties" />
<!-- The ant.properties file can be created by you. It is only edited by the
'android' tool to add properties to it.
This is the place to change some Ant specific build properties.
Here are some properties you may want to change/update:
source.dir
The name of the source directory. Default is 'src'.
out.dir
The name of the output directory. Default is 'bin'.
For other overridable properties, look at the beginning of the rules
files in the SDK, at tools/ant/build.xml
Properties related to the SDK location or the project target should
be updated using the 'android' tool with the 'update' action.
This file is an integral part of the build system for your
application and should be checked into Version Control Systems.
-->
<property file="ant.properties" />
<!-- The project.properties file is created and updated by the 'android'
tool, as well as ADT.
This contains project specific properties such as project target, and library
dependencies. Lower level build properties are stored in ant.properties
(or in .classpath for Eclipse projects).
This file is an integral part of the build system for your
application and should be checked into Version Control Systems. -->
<loadproperties srcFile="project.properties" />
<!-- quick check on sdk.dir -->
<fail
message="sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through an env var"
unless="sdk.dir"
/>
<!-- extension targets. Uncomment the ones where you want to do custom work
in between standard targets -->
<!--
<target name="-pre-build">
</target>
<target name="-pre-compile">
</target>
/* This is typically used for code obfuscation.
Compiled code location: ${out.classes.absolute.dir}
If this is not done in place, override ${out.dex.input.absolute.dir} */
<target name="-post-compile">
</target>
-->
<!-- Import the actual build file.
To customize existing targets, there are two options:
- Customize only one target:
- copy/paste the target into this file, *before* the
<import> task.
- customize it to your needs.
- Customize the whole content of build.xml
- copy/paste the content of the rules files (minus the top node)
into this file, replacing the <import> task.
- customize to your needs.
***********************
****** IMPORTANT ******
***********************
In all cases you must update the value of version-tag below to read 'custom' instead of an integer,
in order to avoid having your file be overridden by tools such as "android update project"
-->
<!-- version-tag: 1 -->
<import file="${sdk.dir}/tools/ant/build.xml" />
</project>

View File

@ -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 *;
#}

View File

@ -0,0 +1,40 @@
-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
-keep public class com.android.vending.licensing.ILicensingService
-keepclasseswithmembernames class * {
native <methods>;
}
-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet);
}
-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet, int);
}
-keepclassmembers class * extends android.app.Activity {
public void *(android.view.View);
}
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}

View File

@ -0,0 +1,13 @@
# 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 use,
# "ant.properties", and override values to adapt the script to your
# project structure.
# Project target.
target=android-17
android.library=true
android.library.reference.1=../../../../../AppData/Local/Android/android-sdk/extras/android/support/v7/appcompat

Binary file not shown.

After

Width:  |  Height:  |  Size: 511 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 453 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 831 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 637 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 196 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 196 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 587 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 775 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 733 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 686 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 624 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 646 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 445 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 495 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 625 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 656 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 443 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 499 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 891 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 664 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 726 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 657 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 544 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 541 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 661 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 975 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 755 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 621 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 884 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 764 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 908 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 323 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 310 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 402 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 337 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 797 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 466 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 378 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 162 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 831 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1009 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1000 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Some files were not shown because too many files have changed in this diff Show More