From 637c65bc8bc8f2be2c8c4aba660f9f8c07c27813 Mon Sep 17 00:00:00 2001 From: renaud gaudin Date: Fri, 5 Apr 2013 00:25:36 +0200 Subject: [PATCH] Merged kiwix-android code into main repo. --- AndroidManifest.xml | 59 +++ Kiwix_icon_transparent_512x512.png | Bin 0 -> 87436 bytes Kiwix_icon_transparent_600x600.png | Bin 0 -> 43248 bytes ...iwix.so.py => build-android-with-native.py | 32 +- build.xml | 92 +++++ create-signed-android-release.sh | 26 ++ proguard.cfg | 36 ++ project.properties | 14 + res/drawable-hdpi/action_help.png | Bin 0 -> 1533 bytes res/drawable-hdpi/action_search.png | Bin 0 -> 1764 bytes .../device_access_sd_storage.png | Bin 0 -> 1422 bytes res/drawable-hdpi/icon.png | Bin 0 -> 4147 bytes res/drawable-hdpi/kiwix_icon.png | Bin 0 -> 4625 bytes res/drawable-hdpi/navigation_back.png | Bin 0 -> 1339 bytes res/drawable-hdpi/navigation_forward.png | Bin 0 -> 1302 bytes res/drawable-ldpi/icon.png | Bin 0 -> 1723 bytes res/drawable-ldpi/kiwix_icon.png | Bin 0 -> 1751 bytes res/drawable-mdpi/action_help.png | Bin 0 -> 1314 bytes res/drawable-mdpi/action_search.png | Bin 0 -> 1394 bytes .../device_access_sd_storage.png | Bin 0 -> 1287 bytes res/drawable-mdpi/icon.png | Bin 0 -> 2574 bytes res/drawable-mdpi/kiwix_icon.png | Bin 0 -> 2589 bytes res/drawable-mdpi/navigation_back.png | Bin 0 -> 1211 bytes res/drawable-mdpi/navigation_forward.png | Bin 0 -> 1200 bytes res/drawable-xhdpi/action_help.png | Bin 0 -> 1793 bytes res/drawable-xhdpi/action_search.png | Bin 0 -> 2127 bytes .../device_access_sd_storage.png | Bin 0 -> 1605 bytes res/drawable-xhdpi/kiwix_icon.png | Bin 0 -> 6979 bytes res/drawable-xhdpi/navigation_back.png | Bin 0 -> 1324 bytes res/drawable-xhdpi/navigation_forward.png | Bin 0 -> 1445 bytes res/layout/main.xml | 29 ++ res/layout/zimfilelist.xml | 8 + res/layout/zimfilelistentry.xml | 17 + res/menu/main.xml | 47 +++ res/raw-de/welcome.html | 7 + res/raw/kiwix_icon.png | Bin 0 -> 6979 bytes res/raw/welcome.html | 7 + res/values-de/strings.xml | 13 + res/values/strings.xml | 19 + src/org/kiwix/kiwixmobile/JNIKiwix.java | 25 ++ .../kiwixmobile/KiwixMobileActivity.java | 385 ++++++++++++++++++ .../kiwix/kiwixmobile/ZimContentProvider.java | 229 +++++++++++ .../kiwixmobile/ZimFileSelectActivity.java | 141 +++++++ 43 files changed, 1176 insertions(+), 10 deletions(-) create mode 100644 AndroidManifest.xml create mode 100644 Kiwix_icon_transparent_512x512.png create mode 100644 Kiwix_icon_transparent_600x600.png rename create_libkiwix.so.py => build-android-with-native.py (91%) create mode 100644 build.xml create mode 100755 create-signed-android-release.sh create mode 100644 proguard.cfg create mode 100644 project.properties create mode 100644 res/drawable-hdpi/action_help.png create mode 100644 res/drawable-hdpi/action_search.png create mode 100644 res/drawable-hdpi/device_access_sd_storage.png create mode 100644 res/drawable-hdpi/icon.png create mode 100644 res/drawable-hdpi/kiwix_icon.png create mode 100644 res/drawable-hdpi/navigation_back.png create mode 100644 res/drawable-hdpi/navigation_forward.png create mode 100644 res/drawable-ldpi/icon.png create mode 100644 res/drawable-ldpi/kiwix_icon.png create mode 100644 res/drawable-mdpi/action_help.png create mode 100644 res/drawable-mdpi/action_search.png create mode 100644 res/drawable-mdpi/device_access_sd_storage.png create mode 100644 res/drawable-mdpi/icon.png create mode 100644 res/drawable-mdpi/kiwix_icon.png create mode 100644 res/drawable-mdpi/navigation_back.png create mode 100644 res/drawable-mdpi/navigation_forward.png create mode 100644 res/drawable-xhdpi/action_help.png create mode 100644 res/drawable-xhdpi/action_search.png create mode 100644 res/drawable-xhdpi/device_access_sd_storage.png create mode 100644 res/drawable-xhdpi/kiwix_icon.png create mode 100644 res/drawable-xhdpi/navigation_back.png create mode 100644 res/drawable-xhdpi/navigation_forward.png create mode 100644 res/layout/main.xml create mode 100644 res/layout/zimfilelist.xml create mode 100644 res/layout/zimfilelistentry.xml create mode 100644 res/menu/main.xml create mode 100644 res/raw-de/welcome.html create mode 100644 res/raw/kiwix_icon.png create mode 100644 res/raw/welcome.html create mode 100644 res/values-de/strings.xml create mode 100644 res/values/strings.xml create mode 100644 src/org/kiwix/kiwixmobile/JNIKiwix.java create mode 100644 src/org/kiwix/kiwixmobile/KiwixMobileActivity.java create mode 100644 src/org/kiwix/kiwixmobile/ZimContentProvider.java create mode 100644 src/org/kiwix/kiwixmobile/ZimFileSelectActivity.java diff --git a/AndroidManifest.xml b/AndroidManifest.xml new file mode 100644 index 000000000..5828d46d1 --- /dev/null +++ b/AndroidManifest.xml @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Kiwix_icon_transparent_512x512.png b/Kiwix_icon_transparent_512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..00014e358fe0ac49e8d1ae4db17b69ee536e9d07 GIT binary patch literal 87436 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%0Dn7*rtiP}#?e3M@{r88o=Q&rKf*snWdfZexl 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 b9{Bxl=QA5L&EZBb1^Lp`HP)%ovWxv63$3|f literal 0 HcmV?d00001 diff --git a/create_libkiwix.so.py b/build-android-with-native.py similarity index 91% rename from create_libkiwix.so.py rename to build-android-with-native.py index e32ecffe7..4981b4507 100755 --- a/create_libkiwix.so.py +++ b/build-android-with-native.py @@ -18,7 +18,7 @@ COMPILE_LIBLZMA = True COMPILE_LIBZIM = True COMPILE_LIBKIWIX = True STRIP_LIBKIWIX = True -COMPILE_APK = False +COMPILE_APK = True # store the OS's environment PATH as we'll mess with it # ORIGINAL_ENVIRON_PATH = os.environ.get('PATH') @@ -45,6 +45,7 @@ ARCHS_SHORT_NAMES = { # store host machine name UNAME = check_output(['uname', '-s']).strip() UARCH = check_output(['uname', '-m']).strip() +SYSTEMS = {'Linux': 'linux', 'Darwin': 'mac'} # compiler version to use # list of available toolchains in /toolchains @@ -56,6 +57,10 @@ NDK_PATH = os.environ.get('NDK_PATH', os.path.join(os.path.dirname(CURRENT_PATH), 'src', 'dependencies', 'android-ndk-r8e')) +SDK_PATH = os.environ.get('ANDROID_HOME', + os.path.join(os.path.dirname(CURRENT_PATH), + 'src', 'dependencies', + 'android-sdk', 'sdk')) # Target Android EABI/version to compile for. # list of available platforms in /platforms @@ -184,8 +189,8 @@ for arch in ARCHS: 'orig': ORIGINAL_ENVIRON['PATH'], 'arch_full': arch_full, 'gccver': COMPILER_VERSION}), - 'CFLAGS': ' -fPIC ' - } + 'CFLAGS': ' -fPIC ', + 'ANDROID_HOME': SDK_PATH} change_env(new_environ) change_env(OPTIMIZATION_ENV) @@ -264,9 +269,9 @@ for arch in ARCHS: os.remove(src.replace('.cpp', '.o')) # compile JNI header - os.chdir(os.path.join(curdir, 'org', 'kiwix', 'kiwixmobile')) + os.chdir(os.path.join(curdir, 'src', 'org', 'kiwix', 'kiwixmobile')) syscall('javac JNIKiwix.java') - os.chdir(curdir) + os.chdir(os.path.join(curdir, 'src')) syscall('javah -jni org.kiwix.kiwixmobile.JNIKiwix') # create libkiwix.so @@ -284,7 +289,9 @@ for arch in ARCHS: + platform_includes + [LIBKIWIX_SRC, os.path.join(LIBZIM_SRC, - 'include')]) + 'include'), + os.path.join(curdir, + 'src')]) }) link_cmd = ('g++ -fPIC -shared -B%(platform)s/sysroot ' @@ -297,10 +304,12 @@ for arch in ARCHS: '/libs/%(arch_short)s/libgnustl_static.a ' '-llog -landroid -lstdc++ -lc ' '%(platform)s/lib/gcc/%(arch_full)s/%(gccver)s/libgcc.a ' - '-o %(platform)s/lib/libkiwix.so' + '-o %(curdir)s/libs/%(arch_short)s/libkiwix.so' % {'kwsrc': LIBKIWIX_SRC, 'platform': platform, 'arch_full': arch_full, + 'arch_short': arch_short, + 'curdir': curdir, 'gccver': COMPILER_VERSION, 'NDK_PATH': NDK_PATH, 'arch_short': arch_short}) @@ -309,14 +318,17 @@ for arch in ARCHS: syscall(compile_cmd) syscall(link_cmd) - for obj in ('kiwix.o', 'reader.o', 'stringTools.o'): + for obj in ('kiwix.o', 'reader.o', 'stringTools.o', + 'src/org_kiwix_kiwixmobile_JNIKiwix.h'): os.remove(obj) if STRIP_LIBKIWIX: syscall('%(platform)s/%(arch_full)s/bin/strip ' - '%(platform)s/lib/libkiwix.so' + '%(curdir)s/libs/%(arch_short)s/libkiwix.so' % {'platform': platform, - 'arch_full': arch_full}) + 'arch_full': arch_full, + 'arch_short': arch_short, + 'curdir': curdir}) os.chdir(curdir) change_env(ORIGINAL_ENVIRON) diff --git a/build.xml b/build.xml new file mode 100644 index 000000000..96dae6625 --- /dev/null +++ b/build.xml @@ -0,0 +1,92 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/create-signed-android-release.sh b/create-signed-android-release.sh new file mode 100755 index 000000000..6e31813ab --- /dev/null +++ b/create-signed-android-release.sh @@ -0,0 +1,26 @@ +#!/bin/bash + +if [ -f "$1" ]; + then + CERTIFICATE=$1 +else + echo "Usage: $0 Kiwix-android.keystore" + echo "You must specify the path of the certificate keystore." + exit 1 +fi + +function die { + echo -n "[ERROR] " + echo -n $1 + echo -n " Aborting. +" + exit 1 +} + +ant release || die "ant release error." +jarsigner -verbose -sigalg MD5withRSA -digestalg SHA1 -keystore $CERTIFICATE bin/Kiwix-release-unsigned.apk kiwix || die "Error signing the package." +jarsigner -verify bin/Kiwix-release-unsigned.apk || die "The package is not properly signed." +zipalign -f -v 4 bin/Kiwix-release-unsigned.apk bin/kiwix-android.apk || die "Could not zipalign the signed package. Please check." + +echo "[SUCCESS] Your signed release package is ready:" +ls -lh bin/kiwix-android.apk diff --git a/proguard.cfg b/proguard.cfg new file mode 100644 index 000000000..12dd0392c --- /dev/null +++ b/proguard.cfg @@ -0,0 +1,36 @@ +-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 ; +} + +-keepclasseswithmembernames class * { + public (android.content.Context, android.util.AttributeSet); +} + +-keepclasseswithmembernames class * { + public (android.content.Context, android.util.AttributeSet, int); +} + +-keepclassmembers enum * { + public static **[] values(); + public static ** valueOf(java.lang.String); +} + +-keep class * implements android.os.Parcelable { + public static final android.os.Parcelable$Creator *; +} diff --git a/project.properties b/project.properties new file mode 100644 index 000000000..8937e94b9 --- /dev/null +++ b/project.properties @@ -0,0 +1,14 @@ +# 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-14 diff --git a/res/drawable-hdpi/action_help.png b/res/drawable-hdpi/action_help.png new file mode 100644 index 0000000000000000000000000000000000000000..4c65ab2d8efe65ffc35f7b4db0eeb3a0534f0261 GIT binary patch literal 1533 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTC$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%qp275hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8hm3bwJ6}oxF$}kgLQj3#|G7CyF^YauyCMG83 zmzLNn0bL65LT&-v*t}wBFaZNhzap_f-%!s00+w{G(#^lGsVi)z|q{?!q~*r$-vFf(ACh=#L&{!#L3yw z&D7A`#K{n**Cju>G&eP`1g19yq}R~E*~!ht2&Z09V#qB3+U$~Alv$RV;#QQOs{r=2 zRVHq?;5HAcHwBwpApS7M=@xyUWAs5$ixkx`Az=CeG2sap$bl#Q)I4B%F9IfPQ}q|m z7#NuHJzX3_DsH`*aXMQ#P~=$pq-UXvb4wLtMO~u#rr?{e#Q zS!;G&(7UruA@7%g(vISV+y{G|oS9h{26S>YEt{pL_Lr}Q`LHVIG_}3oPuYG*Hacvu z^Zwk=GW)|;SDHm1*?eaXgZcr^0;Vrf?%ngRGqWAEEU^0W$LI#ze2=3ljDZEbJ`LUv zL_8V`TE94ozGDB?s>JTFz-%rf&817J&m^$rsxGe z*?6<>MD<=7sEMUhpLqw#M_8{gkj^yrdB3-oY`C?XXqy1Kl47Ts;=3?bsl5gTeZN ziUf1|i=@WR)w1bt_FPw8;1s`)i|c`D#Ze#OZ@HXr+8=PmY8dQX9-l5yT{6}4L!0%z z6K)5RPP8`h{^84e;j{RW(fNN5_vPRDJ7rSb*0hDqHzL_eLVx~m;$=$mnH{Kl)@$1> zlh_8GqG^nOqE|kc)O6iP>;m_*gHtwD%s;rF$8Oe@Gp%oJDvl%vM(#Os$os>QEqNve zFWuyu?NUDmrY&5+uk|wT*{ewP3a+*(W{aD5>u*gsc%@Pybz-O7w0cY75FDR6kEM9Qf(TJr;*a367%X895Kd416_?i)$37j#XEIDK0op;dBux3l-G{r6?d zN^DL!T{}B%SO4?*2enpjTz%w!tZEq(INC2{|7PN0nDu93$(>m?EuaF~)78&qol`;+ E03={S=>Px# literal 0 HcmV?d00001 diff --git a/res/drawable-hdpi/action_search.png b/res/drawable-hdpi/action_search.png new file mode 100644 index 0000000000000000000000000000000000000000..f12e005ebe835c1dd2f6ae324224c3ee296d2d68 GIT binary patch literal 1764 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 literal 0 HcmV?d00001 diff --git a/res/drawable-hdpi/kiwix_icon.png b/res/drawable-hdpi/kiwix_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..83d2cf65f8defaec6db2b090e4c0a4d594a20cb5 GIT binary patch literal 4625 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 Hu0mjfR^27m literal 0 HcmV?d00001 diff --git a/res/drawable-hdpi/navigation_back.png b/res/drawable-hdpi/navigation_back.png new file mode 100644 index 0000000000000000000000000000000000000000..cd7671ccfaa8234042cdf276f228dce48b5e51e7 GIT binary patch literal 1339 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 literal 0 HcmV?d00001 diff --git a/res/drawable-mdpi/action_help.png b/res/drawable-mdpi/action_help.png new file mode 100644 index 0000000000000000000000000000000000000000..50580cf974089054ecc6d0ba3fbf2e2489344f04 GIT binary patch literal 1314 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 An*aa+ literal 0 HcmV?d00001 diff --git a/res/drawable-mdpi/icon.png b/res/drawable-mdpi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..a07c69fa5a0f4da5d5efe96eea12a543154dbab6 GIT binary patch literal 2574 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 SdE|)qJIQCq`S;V)$NvE_Q<2vI literal 0 HcmV?d00001 diff --git a/res/drawable-mdpi/navigation_forward.png b/res/drawable-mdpi/navigation_forward.png new file mode 100644 index 0000000000000000000000000000000000000000..38ea7ba201a473f6176eb24e740df2a68e14657f GIT binary patch literal 1200 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz$r9IylHmNblJdl&R0hYC{G?O` z&)mfH)S%SFl*+=BsWuD@%qp275hW46K32*3xq68pHF_1f1wh>l3^w)^1&PVosU-?Y zsp*+{wo31J?^jaDOtDo8H}y5}EpSfF$n>ZxN)4{^3rViZPPR-@vbR&PsjvbXkegbP zs8ErclUHn2VXFi-*9yo63F|8hm3bwJ6}oxF$}kgLQj3#|G7CyF^YauyCMG83 zmzLNn0bL65LT&-v*t}wBFaZNhzap_f-%!s00+w{G(#^lGsVi;(8S!r+|9()$-vFf(ACh=#L&{!#L3yw z&D7A`#K{n**Cju>G&eP`1g19ytk=TG&B)0ar(RHE$SnZc?2=lPS(cjOR+OKs0QR(1 zCT_PF;WQ7bHwCL(!2U4CsaGH97=2LGB1JV!2$+6AOnAZta^OinH4m8Hi+~B+K`6C{ zfq_xU)5S5Q;?|q%8?z1-2ps?TC%autBhY&I=zH z|KMsW)u?4E%>T{cD!y^rr60U^R3=UNE#KKHQ!`EHyYb1p_jefZH0!)pII-gs!+$#m zM&Bu$IUZa%to*KUPFaI+%wz896&G4Qa2mLazyIOtEPUv@Y{g++yDf@3%MNI_T$Nbm z9Py4Zl;gFlNNYxNo9VhqPCI0mC-RE^6rB~dsITu$m(sBp$zP{4lxI9-Us&W=ds?=j zXl;wQP2#Tb^n-DBO!uuOe_q(Nc*nCqSt;}V2N<4zsz{z4y`TB^+4+-aMY9E%Zs%H% zmnV2&_0IPqbCNWaUz?n*eSd&SS#oRVvYkieI{r<$_ds-h*ldIUdMB8dL`gHUF_VJYD@<);T3K0RSlwp$Py0 literal 0 HcmV?d00001 diff --git a/res/drawable-xhdpi/action_help.png b/res/drawable-xhdpi/action_help.png new file mode 100644 index 0000000000000000000000000000000000000000..243704869415096feda6d981bf0588d5e2aaf807 GIT binary patch literal 1793 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 literal 0 HcmV?d00001 diff --git a/res/drawable-xhdpi/device_access_sd_storage.png b/res/drawable-xhdpi/device_access_sd_storage.png new file mode 100644 index 0000000000000000000000000000000000000000..105d22e575249fdbb9ae0451a69330eeb33530bf GIT binary patch literal 1605 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 VFNVdJVLAW+002ovPDHLkV1hcg7dQX_ literal 0 HcmV?d00001 diff --git a/res/drawable-xhdpi/navigation_back.png b/res/drawable-xhdpi/navigation_back.png new file mode 100644 index 0000000000000000000000000000000000000000..3bdda98c357ddf164c8dff59a75e83b0dc9fcde7 GIT binary patch literal 1324 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+m{l@EB1$5BeXNr6bM+EIYV;~{3xK*A7;Nk-3KEmEQ%e+* zQqwc@Y?a>c-mj#PnPRIHZt82`Ti~3Uk?B!Ylp0*+7m{3+ootz+WN)WnQ(*-(AUCxn zQK2F?C$HG5!d3}vt`(3C64qBz04piUwpD^SD#ABF!8yMuRl!uxKsVXI%uvD1M9IxIyg#@@$ndN=gc>^!3Zj z%k|2Q_413-^$jg8E%gnI^o@*kfhu&1EAvVcD|GXUm0>2hq!uR^WfqiV=I1GZOiWD5 zFD$Tv3bSNU;+l1ennz|zM-B0$V)JVzP|XC=H|jx7ncO3BHWAB;NpiyW)Z+ZoqGVvir744~DzI`cN=+=uFAB-e&w+(vKt_H^esM;Afr4|esh**NZ(?$0 z9!LbN!`Ii!Gq1QLF)umQ)5TT^Xog;9W{Q=QtA(SJg^{tTlYyI|p{t>#iJ_&diIcOV zo2j9>iIX8ruSMv>2~2MaLazx}jh^+-@<% zX&zK>3U0R;;nb@Sbc{YIYLTKECIn1BASOKF0y*%cpPC0u??u3b{rOY=V+IDsd7dtg zAr-gY%yP_PGL&dNezB{nInQe$_eY7mm}>U&ygT2S?rstBdbw;%M+Kw*0`AyXmU|jP z7ry<%YNWutIM`>-&&lFH0!n7gcz^Va%H$vs*T(ZpT^L0i5NNut;)_Pnh-aD#XI9=* zd(qU_Z@YkX-T~PkY|bCn+_%4qseFolkx|qZ+hGv()HYCtMdL@(2gpz_Pp)z4*}Q$iB}va!+} literal 0 HcmV?d00001 diff --git a/res/drawable-xhdpi/navigation_forward.png b/res/drawable-xhdpi/navigation_forward.png new file mode 100644 index 0000000000000000000000000000000000000000..37c4101d965d5e5f7bda6280face15eff4ebcf46 GIT binary patch literal 1445 zcmaJ>4NMzl7(Uugfx$v3adAX)9?VXmy*p^>dQwJd=_sQN3dx$8Z5-Ewp5=PS-C+y3 ztzd}zO_n9Xbg(dg*rxkIGJhg4OVr5RL|nG9K?9R45F>(sHwV6W&nURi7K%Rc56OHFtiE}#;CkBE204)W1E-72^T4VWn=~A)UqT?| z&_la4R>aC0Nhg(C%aO&k1tmnSi_kfsZJA((7ZV9+QounkUFqgAuO3?B#l&;a4MX5k zh~Uyg%SG9(g`kn)NKm6flmwEFg6V1%sz!8bT?&|rpa_hn!iZLhBA7;tAt<==Kw>t| zQI6S6=9OIHO%FK*fyH3h!@o!5|}E##9S>NUU_Z1)5!@b@MA@5(fr*aTZ2ZNU)_)pw;^Sp)|c3%?md2NxlC` z%$L-#By1yjrkW$f#g!)pQ?ZzlBXNP@N*JaxG{r(EBQU&^VL@ZDMumb_oS@u6&l19F z#Vl@Kz}*CCG3gMV? z=@ZEPTs8jF`g@kj#%Y|e%mJN+ou3w`MUBsmwp?g_ckozUe+~b`rG1kl`o+b?GuqjF z`8jG+V|QNBgBvm=EFX~jmrWLDt*^e&_bEE0Q?>fAw9>aC8C_zQ^cbfwk53;lBrDz7aCaDd zCH88hze)D%3@~jOQ2Az);z;PBGNP*YTKvU^<2PH+{?cXK8x|NSi+$aZaI+`CFZffw zmmipVFK|8M`73~`VSU?+Te7+ow-4SoZnxxenfEj;8`nu5Q|0Z77N3;8lWZLr{_Zp| zxc^OKrsT69XCD{v@{7XnFNFW4ITiOlJNVJ7N&e*L8ZWoNyXArQvG}*gT4&xUY98I3 zw2sgG6P`GF5@7mWJAIysPZa*HncZ^#c=ugdhwh3pY_i|A0}x%Y;COeF?2ry_1+>?O zWG-9(4n^rZN0>Yvtn_O>Z(G=Z_(( + + + + + + + + + + \ No newline at end of file diff --git a/res/layout/zimfilelist.xml b/res/layout/zimfilelist.xml new file mode 100644 index 000000000..4648a2bc4 --- /dev/null +++ b/res/layout/zimfilelist.xml @@ -0,0 +1,8 @@ + + + + + \ No newline at end of file diff --git a/res/layout/zimfilelistentry.xml b/res/layout/zimfilelistentry.xml new file mode 100644 index 000000000..2084b2b7c --- /dev/null +++ b/res/layout/zimfilelistentry.xml @@ -0,0 +1,17 @@ + + + + \ No newline at end of file diff --git a/res/menu/main.xml b/res/menu/main.xml new file mode 100644 index 000000000..16ea4860a --- /dev/null +++ b/res/menu/main.xml @@ -0,0 +1,47 @@ + + + + + + + + + + + + + diff --git a/res/raw-de/welcome.html b/res/raw-de/welcome.html new file mode 100644 index 000000000..7d2300a50 --- /dev/null +++ b/res/raw-de/welcome.html @@ -0,0 +1,7 @@ + +

Willkommen zu Kiwix

+ +Visit Kiwix to find out how +to download zim files, such as the Wikipedia. + + \ No newline at end of file diff --git a/res/raw/kiwix_icon.png b/res/raw/kiwix_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..60656d83ceb4c70c8cd2f7f4706debeedf7c92a5 GIT binary patch literal 6979 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 VFNVdJVLAW+002ovPDHLkV1hcg7dQX_ literal 0 HcmV?d00001 diff --git a/res/raw/welcome.html b/res/raw/welcome.html new file mode 100644 index 000000000..388308d44 --- /dev/null +++ b/res/raw/welcome.html @@ -0,0 +1,7 @@ + +

Welcome to Kiwix

+ +Visit Kiwix to find out how +to download zim files, such as the Wikipedia. + + \ No newline at end of file diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml new file mode 100644 index 000000000..f49b80ad8 --- /dev/null +++ b/res/values-de/strings.xml @@ -0,0 +1,13 @@ + + + Kiwix + + Paris + Wikipedia + Seine + + Datei öffnen + Vorwärts + Zurück + Datei auswählen + diff --git a/res/values/strings.xml b/res/values/strings.xml new file mode 100644 index 000000000..5754dc543 --- /dev/null +++ b/res/values/strings.xml @@ -0,0 +1,19 @@ + + + Kiwix + + Paris + Wikipedia + Seine + + Open File + Help + Forward + Back + Find in text + Type to search article + Choose (*.zim) File + Error: The selected zim file could not be found. + Error: The selected file is not a valid zim file. + Error: Loading article (Url: %1$s) failed. + diff --git a/src/org/kiwix/kiwixmobile/JNIKiwix.java b/src/org/kiwix/kiwixmobile/JNIKiwix.java new file mode 100644 index 000000000..adfb93a97 --- /dev/null +++ b/src/org/kiwix/kiwixmobile/JNIKiwix.java @@ -0,0 +1,25 @@ +package org.kiwix.kiwixmobile; +public class JNIKiwix { + public native String getMainPage(); + public native boolean loadZIM(String path); + public native byte[] getContent(String url, JNIKiwixString mimeType, JNIKiwixInt size); + public native boolean searchSuggestions(String prefix, int count); + public native boolean getNextSuggestion(JNIKiwixString title); + public native boolean getPageUrlFromTitle(String title, JNIKiwixString url); + + static { + System.loadLibrary("kiwix"); + } +} + +class JNIKiwixString { + String value; +} + +class JNIKiwixInt { + int value; +} + +class JNIKiwixBool { + boolean value; +} diff --git a/src/org/kiwix/kiwixmobile/KiwixMobileActivity.java b/src/org/kiwix/kiwixmobile/KiwixMobileActivity.java new file mode 100644 index 000000000..aef765221 --- /dev/null +++ b/src/org/kiwix/kiwixmobile/KiwixMobileActivity.java @@ -0,0 +1,385 @@ +package org.kiwix.kiwixmobile; + + +import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.Arrays; + +import android.app.Activity; +import android.content.ActivityNotFoundException; +import android.content.ComponentName; +import android.content.Intent; +import android.content.SharedPreferences; +import android.net.Uri; +import android.os.Bundle; +import android.text.Editable; +import android.text.TextWatcher; +import android.util.Log; +import android.view.KeyEvent; +import android.view.Menu; +import android.view.MenuInflater; +import android.view.MenuItem; +import android.view.Window; +import android.webkit.WebBackForwardList; +import android.webkit.WebChromeClient; +import android.webkit.WebSettings; +import android.webkit.WebView; +import android.webkit.WebViewClient; +import android.widget.ArrayAdapter; +import android.widget.AutoCompleteTextView; +import android.widget.TextView; +import android.widget.TextView.OnEditorActionListener; +import android.widget.Toast; + + +public class KiwixMobileActivity extends Activity { + /** Called when the activity is first created. */ + + private WebView webView; + private ArrayAdapter adapter; + protected boolean requestClearHistoryAfterLoad; + private static final int ZIMFILESELECT_REQUEST_CODE = 1234; + private static final String PREFS_KIWIX_MOBILE = "kiwix-mobile"; + + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + requestClearHistoryAfterLoad=false; + + + this.requestWindowFeature(Window.FEATURE_PROGRESS); + this.setProgressBarVisibility(true); + + setContentView(R.layout.main); + webView = (WebView) findViewById(R.id.webview); + + // Get a reference to the AutoCompleteTextView in the layout + AutoCompleteTextView articleSearchtextView = (AutoCompleteTextView) findViewById(R.id.articleSearchTextView); + // Get the string array + //TODO Implement db backend + ArrayList countries = new ArrayList(Arrays.asList(getResources().getStringArray(R.array.articleSearchSuggestionsTrial))); + // Create the adapter and set it to the AutoCompleteTextView + adapter = + new ArrayAdapter(this, android.R.layout.simple_list_item_1, countries); + articleSearchtextView.setAdapter(adapter); + articleSearchtextView.setOnEditorActionListener(new OnEditorActionListener() { + + @Override + public boolean onEditorAction(TextView v, int actionId, + KeyEvent event) { + //Do Stuff + Log.d("zimgap", v+" onEditorAction. "+v.getText()); + // To close softkeyboard + String articleUrl = ZimContentProvider.getPageUrlFromTitle(v.getText().toString()); + Log.d("zimgap", v+" onEditorAction. TextView: "+v.getText()+ " articleUrl: "+articleUrl); + + if (articleUrl!=null) { + webView.requestFocus(); + webView.loadUrl(Uri.parse(ZimContentProvider.CONTENT_URI + +articleUrl).toString()); + return true; + } else { + //FIXME Toast.makeText(this, "Article not found.", Toast.LENGTH_SHORT).show(); //FIXME resource string + + return true; + } + }}); + articleSearchtextView.addTextChangedListener(new TextWatcher() + { + public void afterTextChanged(Editable s) + { + // Abstract Method of TextWatcher Interface. + } + public void beforeTextChanged(CharSequence s, + int start, int count, int after) + { + // Abstract Method of TextWatcher Interface. + } + public void onTextChanged(CharSequence s, + int start, int before, int count) + { + AutoCompleteTextView articleSearchtextView = (AutoCompleteTextView) findViewById(R.id.articleSearchTextView); + Log.d("zimgap", "Adapter:"+adapter.getCount()); + adapter.clear(); + ZimContentProvider.searchSuggestions(s.toString(), 20); + String suggestion; + while ((suggestion = ZimContentProvider.getNextSuggestion())!=null) { + adapter.add(suggestion); + } + } + }); + + + // js includes will not happen unless we enable JS + webView.getSettings().setJavaScriptEnabled(true); + //Does not seem to have impact. (Idea was that + // web page is rendered before loading all pictures) + //webView.getSettings().setRenderPriority(RenderPriority.HIGH); + final Activity activity = this; + + webView.setWebChromeClient(new WebChromeClient(){ + + public void onProgressChanged(WebView view, int progress) { + activity.setProgress(progress * 100); + if (progress==100) { + + Log.d("zimgap", "Loading article finished."); + if (requestClearHistoryAfterLoad) { + Log.d("zimgap", "Loading article finished and requestClearHistoryAfterLoad -> clearHistory"); + webView.clearHistory(); + requestClearHistoryAfterLoad=false; + } + } + } + }); + +// Should basically resemble the behavior when setWebClient not done +// (i.p. internal urls load in webview, external urls in browser) +// as currently no custom setWebViewClient required it is commented + webView.setWebViewClient(new WebViewClient() { + + @Override + public boolean shouldOverrideUrlLoading(WebView view, String url) { + if (url.startsWith(ZimContentProvider.CONTENT_URI.toString())) { + // This is my web site, so do not override; let my WebView load the page + return false; + } + // Otherwise, the link is not for a page on my site, so launch another Activity that handles URLs + Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); + startActivity(intent); + return true; + } + + public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { + String errorString = String.format(getResources().getString(R.string.error_articlenotfound), failingUrl); + //TODO apparently screws up back/forward + webView.loadDataWithBaseURL("file://error",""+errorString+"", "text/html", "utf-8", failingUrl); + } + }); + + //Pinch to zoom + webView.getSettings().setBuiltInZoomControls(true); + //webView.getSettings().setLoadsImagesAutomatically(false); + //Does not make much sense to cache data from zim files.(Not clear whether + // this actually has any effect) + webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE); + //Workaround to avoid that default zoom is very small. TODO check cause + // and find better solution (e.g. may only be issue on tablets, etc...) + webView.getSettings().setDefaultZoom(WebSettings.ZoomDensity.CLOSE); + if (getIntent().getData()!=null) { + String filePath = getIntent().getData().getEncodedPath(); + Log.d("zimgap", " Kiwix started from a filemanager. Intent filePath: "+filePath+" -> open this zimfile and load main page"); + openZimFile(new File(filePath), false); + + } else if (savedInstanceState!=null) { + Log.d("zimgap", " Kiwix started with a savedInstanceState (That is was closed by OS) -> restore webview state and zimfile (if set)"); + if (savedInstanceState.getString("currentzimfile")!=null) { + openZimFile(new File(savedInstanceState.getString("currentzimfile")), false); + + } + // Restore the state of the WebView + + webView.restoreState(savedInstanceState); + } else { + SharedPreferences settings = getSharedPreferences(PREFS_KIWIX_MOBILE, 0); + String zimfile = settings.getString("currentzimfile", null); + if (zimfile != null) { + Log.d("zimgap", " Kiwix normal start, zimfile loaded last time -> Open last used zimfile "+zimfile); + openZimFile(new File(zimfile), false); + // Alternative would be to restore webView state. But more effort to implement, and actually + // fits better normal android behavior if after closing app ("back" button) state is not maintained. + } else { + Log.d("zimgap", " Kiwix normal start, no zimfile loaded last time -> display welcome page"); + showHelp(); + } + } + } + + + + + @Override + public void onPause() { + super.onPause(); + SharedPreferences settings = getSharedPreferences(PREFS_KIWIX_MOBILE, 0); + SharedPreferences.Editor editor = settings.edit(); + editor.putString("currentzimfile", ZimContentProvider.getZimFile()); + // Commit the edits! + editor.commit(); + + Log.d("zimgap", "onPause Save currentzimfile to preferences:"+ZimContentProvider.getZimFile()); + } + + @Override + protected void onSaveInstanceState(Bundle outState) { + super.onSaveInstanceState(outState); + // Save the state of the WebView + + webView.saveState(outState); + outState.putString("currentzimfile", ZimContentProvider.getZimFile()); + Log.v("zimgap", "onSaveInstanceState Save currentzimfile to bundle:"+ZimContentProvider.getZimFile()+" and webView state"); + } + + @Override + protected void onRestoreInstanceState(Bundle savedInstanceState) { + super.onRestoreInstanceState(savedInstanceState); + + } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + MenuInflater inflater = getMenuInflater(); + inflater.inflate(R.menu.main, menu); + return true; + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) { + case android.R.id.home: + Toast.makeText(this, "Tapped home", Toast.LENGTH_SHORT).show(); + break; + case R.id.menu_search: + webView.showFindDialog("", true); + break; + case R.id.menu_forward: + if(webView.canGoForward() == true){ + webView.goForward(); + } + break; + case R.id.menu_back: + if(webView.canGoBack() == true){ + webView.goBack(); + } + break; + case R.id.menu_help: + showHelp(); + break; + case R.id.menu_openfile: + final Intent target = new Intent(Intent.ACTION_GET_CONTENT); + // The MIME data type filter + target.setType("*/*"); + // Only return URIs that can be opened with ContentResolver + target.addCategory(Intent.CATEGORY_OPENABLE); + //Force use of our file selection component. + // (Note may make sense to just define a custom intent instead) + target.setComponent(new ComponentName(getPackageName(), getPackageName()+".ZimFileSelectActivity")); + try { + startActivityForResult(target, ZIMFILESELECT_REQUEST_CODE); + } catch (ActivityNotFoundException e) { + + }break; + } + return super.onOptionsItemSelected(item); + } + + private String readTextFromResource(int resourceID) + { + InputStream raw = getResources().openRawResource(resourceID); + ByteArrayOutputStream stream = new ByteArrayOutputStream(); + int i; + try + { + i = raw.read(); + while (i != -1) + { + stream.write(i); + i = raw.read(); + } + raw.close(); + } + catch (IOException e) + { + e.printStackTrace(); + } + return stream.toString(); + } + + private void showHelp() { + //Load from resource. Use with base url as else no images can be embedded. + webView.loadDataWithBaseURL("file:///android_res/raw/", readTextFromResource(R.raw.welcome), "text/html", "utf-8", null); + } + + + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + switch (requestCode) { + case ZIMFILESELECT_REQUEST_CODE: + if (resultCode == RESULT_OK) { + // The URI of the selected file + final Uri uri = data.getData(); + File file = null; + if (uri != null) { + String path = uri.getPath(); + if (path != null) + file = new File(path); + } + if (file==null) + return; + // Create a File from this Uri + openZimFile(file, true); + } + } + } + + + + + private boolean openZimFile(File file, boolean clearHistory) { + if (file.exists()) { + if (ZimContentProvider.setZimFile(file.getAbsolutePath())!=null) { + //Apparently with webView.clearHistory() only + // history before currently (fully) loaded page is cleared + // -> request clear, actual clear done after load. + // Probably not working in all corners (e.g. zim file openend + // while load in progress, mainpage of new zim file invalid, ... + // but should be good enough. + // Actually probably redundant if no zim file openend before in session, + // but to be on save side don't clear history in such cases. + if (clearHistory) + requestClearHistoryAfterLoad=true; + loadMainPage(); + return true; + } else { + Toast.makeText(this, getResources().getString(R.string.error_fileinvalid), Toast.LENGTH_LONG).show(); + } + + } else { + Toast.makeText(this, getResources().getString(R.string.error_filenotfound), Toast.LENGTH_LONG).show(); + } + return false; + } + + private void loadMainPage() { + String article = ZimContentProvider.getMainPage(); + webView.loadUrl(Uri.parse(ZimContentProvider.CONTENT_URI + + article).toString()); + } + + + @Override + public boolean onKeyDown(int keyCode, KeyEvent event) { + if(event.getAction() == KeyEvent.ACTION_DOWN){ + switch(keyCode) + { + case KeyEvent.KEYCODE_BACK: + if(webView.canGoBack() == true){ + /*WebBackForwardList history = webView.copyBackForwardList(); + + if (history.getCurrentIndex() )*/ + + webView.goBack(); + }else{ + finish(); + } + return true; + } + + } + return super.onKeyDown(keyCode, event); + } +} \ No newline at end of file diff --git a/src/org/kiwix/kiwixmobile/ZimContentProvider.java b/src/org/kiwix/kiwixmobile/ZimContentProvider.java new file mode 100644 index 000000000..4cc9c4555 --- /dev/null +++ b/src/org/kiwix/kiwixmobile/ZimContentProvider.java @@ -0,0 +1,229 @@ +package org.kiwix.kiwixmobile; + +/*** + Copyright (c) 2012 CommonsWare, LLC + Licensed under the Apache License, Version 2.0 (the "License"); you may not + use this file except in compliance with the License. You may obtain a copy + of the License at http://www.apache.org/licenses/LICENSE-2.0. Unless required + by applicable law or agreed to in writing, software distributed under the + License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS + OF ANY KIND, either express or implied. See the License for the specific + language governing permissions and limitations under the License. + + From _The Busy Coder's Guide to Android Development_ + http://commonsware.com/Android + */ + +import android.content.ContentProvider; +import android.content.ContentValues; +import android.content.res.AssetManager; +import android.database.Cursor; +import android.net.Uri; +import android.os.ParcelFileDescriptor; +import android.os.ParcelFileDescriptor.AutoCloseOutputStream; +import android.util.Log; + +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.util.HashMap; + +import org.json.JSONException; +import org.json.JSONObject; + +public class ZimContentProvider extends ContentProvider { + public static final Uri CONTENT_URI = Uri.parse("content://org.kiwix.zim/"); + private static final HashMap MIME_TYPES = new HashMap(); + + static { + MIME_TYPES.put(".html", "text/html"); + } + private static String zimFileName; + private static JNIKiwix jniKiwix; + + public synchronized static String setZimFile(String fileName) { + if (!jniKiwix.loadZIM(fileName)) { + Log.e("zimgap", "Unable to open the file " + fileName); + zimFileName = null; + } else { + zimFileName = fileName; + } + return zimFileName; + } + + public static String getZimFile() { + return zimFileName; + } + + public static String getMainPage() { + if (jniKiwix==null) + return null; + else { + return jniKiwix.getMainPage(); + } + } + + public static boolean searchSuggestions(String prefix, int count) { + if (jniKiwix==null) + return false; + else { + return jniKiwix.searchSuggestions(prefix, count); + } + } + + public static String getNextSuggestion() { + if (jniKiwix==null) + return null; + else { + JNIKiwixString title=new JNIKiwixString(); + if (jniKiwix.getNextSuggestion(title)) { + return title.value; + } + else { + return null; + } + } + } + + public static String getPageUrlFromTitle(String title) { + if (jniKiwix==null) + return null; + else { + JNIKiwixString url=new JNIKiwixString(); + if (jniKiwix.getPageUrlFromTitle(title, url)) { + return url.value; + } else { + return null; + } + } + } + + @Override + public boolean onCreate() { + jniKiwix = new JNIKiwix(); + + return (true); + } + + @Override + public String getType(Uri uri) { + String path = uri.toString(); + + for (String extension : MIME_TYPES.keySet()) { + if (path.endsWith(extension)) { + return (MIME_TYPES.get(extension)); + } + } + + return (null); + } + + @Override + public ParcelFileDescriptor openFile(Uri uri, String mode) + throws FileNotFoundException { + ParcelFileDescriptor[] pipe = null; + + try { + pipe = ParcelFileDescriptor.createPipe(); + new TransferThread(jniKiwix, uri, new AutoCloseOutputStream( + pipe[1])).start(); + } catch (IOException e) { + Log.e(getClass().getSimpleName(), "Exception opening pipe", e); + throw new FileNotFoundException("Could not open pipe for: " + + uri.toString()); + } + + return (pipe[0]); + } + + @Override + public Cursor query(Uri url, String[] projection, String selection, + String[] selectionArgs, String sort) { + throw new RuntimeException("Operation not supported"); + } + + @Override + public Uri insert(Uri uri, ContentValues initialValues) { + throw new RuntimeException("Operation not supported"); + } + + @Override + public int update(Uri uri, ContentValues values, String where, + String[] whereArgs) { + throw new RuntimeException("Operation not supported"); + } + + @Override + public int delete(Uri uri, String where, String[] whereArgs) { + throw new RuntimeException("Operation not supported"); + } + + static class TransferThread extends Thread { + + Uri articleUri; + String articleZimUrl; + OutputStream out; + JNIKiwix jniKiwix; + + TransferThread(JNIKiwix jniKiwix, Uri articleUri, OutputStream out) throws IOException { + this.articleUri = articleUri; + this.jniKiwix = jniKiwix; + Log.d("zimgap", + "Retrieving :" + + articleUri.toString()); + String t = articleUri.toString(); + int pos = articleUri.toString().indexOf(CONTENT_URI.toString()); + if (pos != -1) + t = articleUri.toString().substring( + CONTENT_URI.toString().length()); + this.out = out; + this.articleZimUrl = t; + } + + @Override + public void run() { + byte[] buf = new byte[1024]; + int len; + + try { + JNIKiwixString mime = new JNIKiwixString(); + JNIKiwixInt size = new JNIKiwixInt(); + byte[] data = jniKiwix.getContent(articleZimUrl, mime, size); + // Log.d("zimgap","articleDataByteArray:"+articleDataByteArray.toString()); + // ByteArrayInputStream articleDataInputStream = new + // ByteArrayInputStream(articleDataByteArray.toByteArray()); + // Log.d("zimgap","article data loaded from zime file"); + + //ByteArrayInputStream articleDataInputStream = new ByteArrayInputStream( + // articleDataByteArray.toByteArray()); + ByteArrayInputStream articleDataInputStream = new ByteArrayInputStream(data); + while ((len = articleDataInputStream.read(buf)) > 0) { + out.write(buf, 0, len); + } + + articleDataInputStream.close(); + out.flush(); + + Log.d("zimgap", "reading " + articleZimUrl + + " finished."); + } catch (IOException e) { + Log.e(getClass().getSimpleName(), "Exception reading article " + + articleZimUrl + " from zim file", e); + } catch (NullPointerException e) { + Log.e(getClass().getSimpleName(), "Exception reading article " + + articleZimUrl + " from zim file", e); + + } finally { + try { + out.close(); + } catch (IOException e) { + } + + } + } + } +} \ No newline at end of file diff --git a/src/org/kiwix/kiwixmobile/ZimFileSelectActivity.java b/src/org/kiwix/kiwixmobile/ZimFileSelectActivity.java new file mode 100644 index 000000000..b0e1aae86 --- /dev/null +++ b/src/org/kiwix/kiwixmobile/ZimFileSelectActivity.java @@ -0,0 +1,141 @@ +package org.kiwix.kiwixmobile; + +import java.io.File; + +import android.app.Activity; +import android.content.Intent; +import android.content.Loader; +import android.database.Cursor; +import android.net.Uri; +import android.os.Bundle; +import android.provider.MediaStore; +import android.util.Log; +import android.view.View; +import android.widget.Adapter; +import android.widget.AdapterView; +import android.widget.ListView; +import android.widget.AdapterView.OnItemClickListener; +import android.widget.SimpleCursorAdapter; +//TODO API level 11 (honeycomb). use compatiblity packages instead +import android.content.CursorLoader; +import android.app.LoaderManager; + +public class ZimFileSelectActivity extends Activity implements +LoaderManager.LoaderCallbacks { + + private static final int LOADER_ID = 0x02; + private SimpleCursorAdapter mCursorAdapter; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.zimfilelist); + selectZimFile(); + + + } + + private void finishResult(String path) { + if (path != null) { + File file = new File(path); + Uri uri = Uri.fromFile(file); + setResult(RESULT_OK, new Intent().setData(uri)); + finish(); + } else { + setResult(RESULT_CANCELED); + finish(); + } + } + + protected void selectZimFile() { + // Defines a list of columns to retrieve from the Cursor and load into an output row + String[] mZimListColumns = + { + MediaStore.Images.Media.DATA + }; + + // Defines a list of View IDs that will receive the Cursor columns for each row + int[] mZimListItems = { R.id.zim_file_list_entry_path}; + + mCursorAdapter = new SimpleCursorAdapter( + getApplicationContext(), // The application's Context object + R.layout.zimfilelistentry, // A layout in XML for one row in the ListView + null, // The cursor, swapped later by cursorloader + mZimListColumns, // A string array of column names in the cursor + mZimListItems, // An integer array of view IDs in the row layout + Adapter.NO_SELECTION); + + // Sets the adapter for the ListView + setContentView(R.layout.zimfilelist); + + + ListView zimFileList = (ListView) findViewById(R.id.zimfilelist); + getLoaderManager().initLoader(LOADER_ID, null, this); + + zimFileList.setAdapter(mCursorAdapter); + zimFileList.setOnItemClickListener(new OnItemClickListener() { + public void onItemClick(AdapterView arg0, View arg1, int arg2, long arg3) { + // TODO Auto-generated method stub + onListItemClick((ListView) arg0, arg0, arg2, arg3); + } + }); + //TODO close cursor when done + //allNonMediaFiles.close(); + } + + + private void onListItemClick(AdapterView adapter, View view, int position, long arg) { + // TODO Auto-generated method stub + Log.d("zimgap", " zimFileList.onItemClick"); + + ListView zimFileList = (ListView) findViewById(R.id.zimfilelist); + Cursor mycursor = (Cursor) zimFileList.getItemAtPosition(position); + //TODO not very clean + finishResult(mycursor.getString(1)); + } + + @Override + public Loader onCreateLoader(int i, Bundle bundle) { + //TODO leads to API min 11 + Uri uri = MediaStore.Files.getContentUri("external"); + + String[] projection = { + MediaStore.Images.Media._ID, + MediaStore.Images.Media.DATA, //Path + }; + + // exclude media files, they would be here also (perhaps + // somewhat better performance), and filter for zim files + // (normal and first split) + String selection = MediaStore.Files.FileColumns.MEDIA_TYPE + "=" + + MediaStore.Files.FileColumns.MEDIA_TYPE_NONE + " AND " + + " ( LOWER(" + + MediaStore.Images.Media.DATA + ") LIKE '%.zim'" + + " OR LOWER(" + + MediaStore.Images.Media.DATA + ") LIKE '%.zimaa'" + +" ) "; + + + String[] selectionArgs = null; // there is no ? in selection so null here + + + String sortOrder = MediaStore.Images.Media.DATA; // unordered + Log.d("zimgap", " Performing query for zim files..."); + + + return new CursorLoader(this, uri, projection, selection, selectionArgs, sortOrder); + + } + + @Override + public void onLoadFinished(Loader cursorLoader, Cursor cursor) { + Log.d("zimgap", " DONE query zim files"); + mCursorAdapter.swapCursor(cursor); + } + + @Override + public void onLoaderReset(Loader cursorLoader) { + mCursorAdapter.swapCursor(null); + } + +}