Giter VIP home page Giter VIP logo

aard2-android's People

Contributors

aga-c avatar bittachi avatar comradekingu avatar itkach avatar lbschenkel avatar mohammedbelkacem avatar poustre avatar qnga avatar rhjdvsgsgks avatar rustamft avatar sguinetti avatar sklart avatar vistaus avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

aard2-android's Issues

Colors per dictionary

I think having the possibility to use a color per slob could increase visibility when using many different dictionaries at the same time:

colors

I already tried adding <font color…> tags to the keys when converting the dict files to slob, but they end up as text in the slob. Besides this would really blow up the overall file size, since one color per slob file should be enough :-)

Could be an option during slob creation, or could be added to the dictionary manager tab in the aard2 gui…

Bright flash in dark theme when changing article

When clicking a link using the dark theme, the screen turns white before the new page is rendered.
The page is rendered in bright mode - black text on white background - and is inverted afterwards.

This behaviour is unwanted, as night vision is destroyed through the bright white screen.

Solution:
Show a dark grey screen until the inversion of the rendered article is done.

App crashes sometimes when user comes back to it after a period of inactivity

App crashes with the following exception in the log:

01-03 15:48:21.453    9016-9086/itkach.aard2 E/AndroidRuntime﹕ FATAL EXCEPTION: Timer-0
    Process: itkach.aard2, PID: 9016
    java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.os.Handler.post(java.lang.Runnable)' on a null object reference
            at itkach.aard2.ArticleWebView$2$1.run(ArticleWebView.java:114)
            at java.util.Timer$TimerImpl.run(Timer.java:284)

global network switch

I herewith state that a secured dormant global network switch should be set as a default feature. Mr Tkach seems to be a very smart person and he surely will know what I mean by stating that.

User CSS styling doesn't work...

I'm using Android 4.2.2 on my 4" phone.
It seems that CSS styling doesn't get to work, only the builtin Default and Dark do.
This is what I've done:

  1. Goto Aard's setting, then select User Styles
  2. It asks me to launch an app, so I choose Jota Text Editor.
  3. Write a simple css on the editor
    body {
    background-color: blue;
    }
  4. Save as "mytheme.css" and exit from the editor.
  5. Found the new entry "mytheme" on dictionary menu, but nothing happens when I click on it.

I've also tried a builtin night css (which I managed to found it in the dictionary itself "~/css/night.css") on Simple Wikipedia. I copy the css and make it as user css, still doesn't work.
Hope you can fix this.
Anyway, a great app.. Thanks.

Feature request - Picture download WLAN only

For the slob databases it is possible to have external pictures downloaded. Pls add a configruation where it is possible to resitrict the download of the pictures to WLAN only or to GPRS or not with roaming.
This may prevent unwanted additional data cost with the carrier.

Use OmegaWiki dictionary data

OmegaWiki is a collaborative project to produce a free, multilingual dictionary in every language, with lexicological, terminological and thesaurus information.

Not sure where this wish belongs, so I also posted it to itkach/slob#2

sort is case-sensitive

lower-case keywords come before upper-case keywords in search results. AFAIR Aard(1) handled that correctly (case-transparent sorting).

V 0.14 slob search

APP crashes when manually searching for dictionaries ("find dictionaries")

Quick-filter for the result view

Lightning fast as the aard2 is, I prefer keeping ALL my slob files active all the time. This works perfectly well for complex words, but not that well for „simple“ search terms, where I get hundreds of hits.

It would be really handy to be able to filter the result view, i.e. long press on a result row will hide all results from this slob, but only for the current search. Entering a new search term would reset the filter.

Look at this example:

  • a wikipedia slob and several dictionary slobs have been installed
  • when looking up a simple word like e.g. „bread“, I might get lots of wikipedia hits and decide to get rid of all wikipedia results, just to have a smaller list, focussing on translations
  • Yes, I could open the dictionaries tab, look for the wikipedia entry there and disable it. But then I'll have to re-enable it for the next search :-(

results

P.S. Maybe an optional „match whole words only“ would help here, too… I tried adding a space after my search term, which did not change the result list.

Dark Theme

Android 4.2.2. После обновления на новую версию 0.25 при включённой тёмной теме интерфейса, в основном меню (под названиями вкладок) и вверху открытых статей появилась сплошная синяя полоса (то есть, маленькая полоса такого же цвета, подчёркивающая название активной вкладки была и есть, и под ней - ещё одна полоса такого же цвета, идущая через весь экран). Похоже на баг. При светлой теме этой полосы нет. Могу предположить, что как-то связано с нововведением Implemented fullscreen mode (Android 4.4+), но утверждать не берусь. Скриншот экрана сейчас не могу сделать, но если это обязательно нужно для наглядности (если на имеющемся устройстве подобное не проявляется), и как-то поможет устранению - сделаю потом.

Open keyboard directly on search

This is not a bug, only a very tiny feature quest:
When I press "find in page" the keyboard is not automatically opening. I have to press another time into the search field.
Would be more comfortable if it opened directly.
But this is maybe purpose and just I don't see the point. Then please close and forget, thank!
:)
Frank

Cортировка по времени

Обратил внимание, что сортировка по времени (когда в правом верхнем углу пиктограмма ''Часы'') во вкладке история работает некорректно.
Независимо от выбора ''по убыванию'' или ''по возрастанию'' список выводится в каком-то случайном порядке, где сверху могут быть, например результаты за февраль-январь, в середине такие как ''два дня назад'', ''вчера'' , и так далее, совершенно вразнобой, логика никакая не прослеживается.
Предположил, что ''звёздочки'' избранных словарей могут как-то влиять на формирование списка, но даже когда все сняты - всё выглядит таким же образом.

С сортировкой по названию всё в порядке, и по убыванию и по возрастанию.

Но по дате как-то более удобно ориентироваться по недавно прочитанному, однако с вышеописанным это невозможно.
На форуме 4pda получил ответ, что такого бага у себя не видят.

interface style dark & light hiccup

User interface style options dark & light show to be the opposite of what one would expect normally (it seems they are just switched). The fields under interface style options disappear when selecting 'dark' with V0.27. Happens on an e-ink ereader with open Android 4.2. My Smartphone works fine in that respect.

Aard2 does not find Wikipedia

Hello everybody,
I have a Oneplus One and use Aard2 for quite some time. The app Aard2-android-0.34 and their predecessor versions I installed could find the respective "dewiki- (Date) .slob" easily and I could use the Wikipedia offline.
The location for the "dewiki- (Date) .slob" has always been "SD card / storage / emulated / 0".
A few days ago, I installed Aard2-android-0.35 and copied the version "dewiki-20161222.slob" to the above location. Now the app does not find the dewiki-20161222.slob any more.

Does anyone have an idea how I can solve the problem? In advance already times thank you.
Wolf Haberbosch

Ccылки на смежные темы в конце статей

Предыдущий дамп википедии не качал, но в свежем (20150319) такая же проблема, как и во всех последних lurkmore дампах - полное отсутствие в конце статей россыпи ссылок на смежные темы и разделы ( не внешние ресурсы, а находящиеся в самой вики)
Крайне удобная, и на мой взгляд, нужная фишка вики и википодобных библиотек таким образом теряется.

Это не реализуется ввиду какой-то технической невозможности, ограничений формата slob или ещё чего-то?
Возможно ли в будущем 'возвращение' этой полезной фичи в дампы?

[FR] fuzzy search

Example: currently searching the word tumb doesn't show thumb which is probable especially when literally tumb cannot be found.
It would be nice to see Aard have the fuzzy search.
Also maybe it's a good time to remind the aarddict/android#69

menu button focus

Entering the article view leaves the focus on the button with the article description in the upper left corner thus making it necessary to activate the article view element by touching it once (on an e-ink ereader with open Android 4.2 that is.). It does not happen when returning from another article by using the back button. This problem cannot be solved by (un)checking the volume control checkbox.

Needs to have proper stemming

In it's current form the word lookup is not very useful if used from another app because most words that you read in English have tenses or gerunds, so the lookup would fail or lead to hilarious results. For example, I just looked up "peeped" from Moon+ Reader and Aard 2 brought me to the definition for "pee-pee" LOL.

The WordNet app has proper stemming, so maybe you can borrow some of their code?

aard2 french translation

I have completely screwn up the repository I suppose. Please disregard all states but merger state 'patch-3' please.

Add pronunciations

I propose to add support for pronunciations into Aard to make it easy to learn new words by hearing them.

I see 4 choices how to achieve this:

  • Include audio into the slob format.
    • Implementation: format needs to be changed.
    • Audio can be quite heavy.
    • Pronunciations are not really connected to dicts themselves. Non-orthogonal solution.
  • Use separate audio-dictionary.
    • Implementation: archive of audio files, multi-track audio format (like mogg), brand new format?
    • Audio can be quite heavy.
  • Use online services.
  • Use an external program.
    • Implementation: easy.
    • UX: depends on the program, additional click.

Aard & BitTorrent

Firstly, the Aard databases download is really too error prone IMHO. I myself have wasted several days with trying getting the desired content for my purposes.

Secondly, direct downloads almost always fail for larger files due to tight traffic restrictions, even the tiny torrent files often are not accessible any more.

Thirdly, the torrent files that were available most often did not respect the <4GB file size limit, making it impossible to work with on most standard Android devices which are bound to the restrictions of the FAT32 file system format. One cannot even use the standard play store uTorrent app to download and seed the databases resulting in crashes, deadlocks, angered users, the need to have secondary devices for database retrieval and less seeds.

Fourthly, most often folks will be looking for the huge offline text database torrent downloads like Wikipedia on torrent sites, so releasing torrents to the Aard project website or even to personal storage accounts leaving the popular torrent sites out will have missed a great part of the community. Nobody automatically connects Aard with Wikipedia for instance. It would help folks to connect the dots.

Fifthly, therefore I am going to release selected Aard databases on mininova.org and legittorrents.info, which exclusively engage in the distribution of legal content, soon. Please keep me posted about stable releases of new torrent files that respect the <4GB file size limit if the need may be.

Sixthly, I would recommend to overwork the download section a litte bit with what I have stated above in mind.

Seventhly, did I miss a point here?

Built in webserver not showing content

Hi!

When using dewiki-20150705.slob (link found at https://github.com/itkach/slob/wiki/Dictionaries#german), aard2-0.26 on android 5.1.1 (CM12.1) will index the .slob file and I can successfully search for all articles, it won't show actual content, however. It just sit there and waits eternally. If i swipe and select different articles and swipe back, I get a

net::ERR_EMPTY_RESPONSE

sometimes, so it seems the web server does not successfully deliver any data.
Firewall is off.
In netstat, I can see port 8013 opened successfully and connections working as well:

shell@GT-I9100:/ $ netstat -pant                                                                                                         
Proto Recv-Q Send-Q Local Address          Foreign Address        State
 tcp       0      0 127.0.0.1:33836        127.0.0.1:8013         ESTABLISHED
 tcp       0      0 127.0.0.1:33837        127.0.0.1:8013         ESTABLISHED
tcp6       0      0 ::ffff:127.0.0.1:8013  :::*                   LISTEN
tcp6       0      0 ::ffff:127.0.0.1:8013  ::ffff:127.0.0.1:33836 ESTABLISHED
tcp6       0      0 ::ffff:127.0.0.1:8013  ::ffff:127.0.0.1:33837 ESTABLISHED

Here is a logcat:

D/lights  ( 2220): set_light_buttons: 1
W/AudioTrack( 2220): AUDIO_OUTPUT_FLAG_FAST denied by client
E/AudioTrack( 2220): AudioTrack::set : Exit
D/Yamaha-MC1N2-Audio( 1863): yamaha_mc1n2_audio_output_start()
D/Yamaha-MC1N2-Audio( 1863): yamaha_mc1n2_audio_route_start()
D/Yamaha-MC1N2-Audio( 1863): (yamaha_mc1n2_audio_params_route_find): device = 2, direction = 0
I/Timeline( 2766): Timeline: Activity_launch_request id:itkach.aard2 time:55515144
I/ActivityManager( 2220): START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=itkach.aard2/.MainActivity (has extras)} from uid 10018 on display 0
V/WindowManager( 2220): addAppToken: AppWindowToken{1c1f38db token=Token{2e3d1dea ActivityRecord{3f2441d5 u0 itkach.aard2/.MainActivity t246}}} to stack=1 task=246 at 0
V/WindowManager( 2220): Adding window Window{11f0b6af u0 Starting itkach.aard2} at 19 of 23 (after Window{37e1b756 u0 com.android.settings/com.android.settings.Settings})
I/ActivityManager( 2220): Start proc 2140:itkach.aard2/u0a108 for activity itkach.aard2/.MainActivity
I/WebViewFactory( 2140): Loading com.android.webview version 39 (31e7010f8a-arm) (code 300001)
I/LibraryLoader( 2140): Time to load native libraries: 97 ms (timestamps 6233-6330)
I/LibraryLoader( 2140): Expected native library version number "",actual native library version number ""
V/WebViewChromiumFactoryProvider( 2140): Binding Chromium to main looper Looper (main, tid 1) {24e3fa02}
I/LibraryLoader( 2140): Expected native library version number "",actual native library version number ""
I/chromium( 2140): [INFO:library_loader_hooks.cc(104)] Chromium logging enabled: level = 0, default verbosity = 0
I/BrowserStartupController( 2140): Initializing chromium process, singleProcess=true
W/art     ( 2140): Attempt to remove local handle scope entry from IRT, ignoring
W/chromium( 2140): [WARNING:resource_bundle.cc(304)] locale_file_path.empty()
I/chromium( 2140): [INFO:aw_browser_main_parts.cc(65)] Load from apk succesful, fd=30 off=33352 len=3546
W/AudioManagerAndroid( 2140): Requires BLUETOOTH permission
I/chromium( 2140): [INFO:aw_browser_main_parts.cc(78)] Loading webviewchromium.pak from, fd:31 off:229484 len:1089587
D/libEGL  ( 2140): loaded /system/lib/egl/libEGL_mali.so
D/libEGL  ( 2140): loaded /system/lib/egl/libGLESv1_CM_mali.so
D/libEGL  ( 2140): loaded /system/lib/egl/libGLESv2_mali.so
E/        ( 2140): Device driver API match
E/        ( 2140): Device driver API version: 23
E/        ( 2140): User space API version: 23 
E/        ( 2140): mali: REVISION=Linux-r3p2-01rel3 BUILD_DATE=Wed Oct  9 21:05:57 KST 2013 
I/art     ( 2220): Background sticky concurrent mark sweep GC freed 17480(761KB) AllocSpace objects, 1(16KB) LOS objects, 3% free, 22MB/23MB, paused 8.514ms total 219.583ms
I/art     ( 2374): Background partial concurrent mark sweep GC freed 38911(2MB) AllocSpace objects, 3(364KB) LOS objects, 18% free, 17MB/21MB, paused 2.642ms total 315.500ms
D/itkach.aard2.Application( 2140): Started web server on port 8013 in 67 ms
I/art     ( 2140): Background sticky concurrent mark sweep GC freed 12251(804KB) AllocSpace objects, 14(355KB) LOS objects, 5% free, 6MB/6MB, paused 2.900ms total 147.647ms
D/itkach.aard2.SlobDescriptorList( 2140): beginUpdate
D/itkach.aard2.SlobDescriptorList( 2140): beginUpdate
D/itkach.aard2.SlobDescriptorList( 2140): endUpdate, changed? true
D/itkach.aard2.SlobDescriptorList( 2140): endUpdate, changed? true
D/BlobListAdapter( 2140): Loaded chunk of 0 (adapter size 0) in 0 ms
D/BlobListAdapter( 2140): Loaded chunk of 0 (adapter size 0) in 0 ms
D/BlobListAdapter( 2140): Loaded chunk of 0 (adapter size 0) in 0 ms
D/OpenGLRenderer( 2140): Use EGL_SWAP_BEHAVIOR_PRESERVED: false
D/Atlas   ( 2140): Validating map...
V/WindowManager( 2220): Adding window Window{25339f6d u0 itkach.aard2/itkach.aard2.MainActivity} at 19 of 24 (before Window{11f0b6af u0 Starting itkach.aard2})
I/OpenGLRenderer( 2140): Initialized EGL, version 1.4
D/OpenGLRenderer( 2140): Enabling debug mode 0
D/Settings( 2140): UITheme current value: dark
D/Settings( 2140): Remote content, current value: wifi
I/CHANGE  ( 2140): New text: 
D/Yamaha-MC1N2-Audio( 1863): yamaha_mc1n2_audio_output_stop()
D/Yamaha-MC1N2-Audio( 1863): yamaha_mc1n2_audio_route_start()
I/ActivityManager( 2220): Displayed itkach.aard2/.MainActivity: +2s722ms
I/Timeline( 2220): Timeline: Activity_windows_visible id: ActivityRecord{3f2441d5 u0 itkach.aard2/.MainActivity t246} time:55518214
D/MainActivity( 2140): Text contains web url, not pasting: https://www.openpetition.eu/at/petition/online/unterkuenfte-fuer-fluechtlingskinder-und-deren-familien-in-baden
I/LatinIME( 2621): Starting input. Cursor position = -1,-1
E/RichInputConnection( 2621): Unable to connect to the editor to retrieve text.
D/RichInputConnection( 2621): Will try to retrieve text later.
I/InputAttributes( 2621): InputType.TYPE_NULL is specified
W/InputMethodManager( 2140): Ignoring onBind: cur seq=616, given seq=615
I/ValidateNoPeople( 2220): skipping global notification
I/LatinIME( 2621): Starting input. Cursor position = 0,0
W/IInputConnectionWrapper( 2140): getTextBeforeCursor on inactive InputConnection
W/IInputConnectionWrapper( 2140): requestCursorAnchorInfo on inactive InputConnection
W/IInputConnectionWrapper( 2140): getTextBeforeCursor on inactive InputConnection
E/RichInputConnection( 2621): Unable to connect to the editor to retrieve text.
D/RichInputConnection( 2621): Will try to retrieve text later.
E/SQLiteLog( 2374): (28) multiple links to file: /data/data/com.android.systemui/databases/spam.db-journal
W/IInputConnectionWrapper( 2140): getTextBeforeCursor on inactive InputConnection
E/RichInputConnection( 2621): Unable to connect to the editor to retrieve text.
W/RichInputConnection( 2621): Unable to connect to the editor. Setting caps mode without knowing text.
I/ValidateNoPeople( 2220): skipping global notification
I/LatinIME( 2621): Starting input. Cursor position = 0,0
E/SQLiteLog( 2374): (28) multiple links to file: /data/data/com.android.systemui/databases/spam.db-journal
I/ValidateNoPeople( 2220): skipping global notification
E/SQLiteLog( 2374): (28) multiple links to file: /data/data/com.android.systemui/databases/spam.db-journal
I/Timeline( 2140): Timeline: Activity_idle id: android.os.BinderProxy@dfc08d1 time:55518669
I/art     ( 2220): Background partial concurrent mark sweep GC freed 28635(1503KB) AllocSpace objects, 3(664KB) LOS objects, 15% free, 21MB/25MB, paused 3.488ms total 237.175ms


D/lights  ( 2220): set_light_buttons: 2
W/GB.ImApp(24236): DB+not+open+and+no+password+provided
D/lights  ( 2220): set_light_buttons: 1
W/AudioTrack( 2220): AUDIO_OUTPUT_FLAG_FAST denied by client
E/AudioTrack( 2220): AudioTrack::set : Exit
D/Yamaha-MC1N2-Audio( 1863): yamaha_mc1n2_audio_output_start()
D/Yamaha-MC1N2-Audio( 1863): yamaha_mc1n2_audio_route_start()
D/Yamaha-MC1N2-Audio( 1863): (yamaha_mc1n2_audio_params_route_find): device = 2, direction = 0
D/Yamaha-MC1N2-Audio( 1863): yamaha_mc1n2_audio_output_stop()
D/Yamaha-MC1N2-Audio( 1863): yamaha_mc1n2_audio_route_start()

D/lights  ( 2220): set_light_buttons: 2
D/lights  ( 2220): set_light_buttons: 1
I/Timeline( 2140): Timeline: Activity_launch_request id:itkach.aard2 time:55547562
I/ActivityManager( 2220): START u0 {act=showHistory cmp=itkach.aard2/.ArticleCollectionActivity (has extras)} from uid 10108 on display 0
W/AudioTrack( 2220): AUDIO_OUTPUT_FLAG_FAST denied by client
E/AudioTrack( 2220): AudioTrack::set : Exit
D/Yamaha-MC1N2-Audio( 1863): yamaha_mc1n2_audio_output_start()
D/Yamaha-MC1N2-Audio( 1863): yamaha_mc1n2_audio_route_start()
D/Yamaha-MC1N2-Audio( 1863): (yamaha_mc1n2_audio_params_route_find): device = 2, direction = 0
V/WindowManager( 2220): addAppToken: AppWindowToken{3e883ddd token=Token{23b6edb4 ActivityRecord{1eebaa87 u0 itkach.aard2/.ArticleCollectionActivity t246}}} to stack=1 task=246 at 1
D/MainActivity( 2140): Text contains web url, not pasting: https://www.openpetition.eu/at/petition/online/unterkuenfte-fuer-fluechtlingskinder-und-deren-familien-in-baden
D/itkach.aard2.Application( 2140): Activity added, stack size 1
D/ArticleCollectionActivity( 2140): [F] Resume
D/ArticleCollectionActivity( 2140): [F] unfullscreen
V/WindowManager( 2220): Adding window Window{ece6823 u0 itkach.aard2/itkach.aard2.ArticleCollectionActivity} at 20 of 24 (after Window{25339f6d u0 itkach.aard2/itkach.aard2.MainActivity})
D/updateTitle( 2140): 1 count: 2
D/updateTitle( 2140): itkach.slob.Slob$Blob<56712-26> (Vakuum#)
D/BlobDescriptorList( 2140): Create descriptor from content url: http://127.0.0.1:8013/slob/47345894-c09f-4777-8528-ef152541a6a2/Vakuum?blob=56712-26#
I/ActivityManager( 2220): Displayed itkach.aard2/.ArticleCollectionActivity: +227ms
D/updateTitle( 2140): 1 count: 2
D/updateTitle( 2140): itkach.slob.Slob$Blob<56712-26> (Vakuum#)
D/BlobDescriptorList( 2140): Create descriptor from content url: http://127.0.0.1:8013/slob/47345894-c09f-4777-8528-ef152541a6a2/Vakuum?blob=56712-26#
W/chromium( 2140): [WARNING:data_reduction_proxy_settings.cc(331)] SPDY proxy OFF at startup
W/art     ( 2140): Attempt to remove local handle scope entry from IRT, ignoring
W/AwContents( 2140): onDetachedFromWindow called when already detached. Ignoring
W/art     ( 2140): Attempt to remove local handle scope entry from IRT, ignoring
W/art     ( 2140): Attempt to remove local handle scope entry from IRT, ignoring
D/ArticleWebView( 2140): Available styles before pref load: 0
D/ArticleWebView( 2140): Loaded available styles: 0
D/ArticleWebView( 2140): Auto style will return Default
D/ArticleWebView( 2140): getPreferredStyle() will return Default
D/ArticleWebView( 2140): Auto style will return Default
D/ArticleWebView( 2140): getPreferredStyle() will return Default
W/art     ( 2140): Attempt to remove local handle scope entry from IRT, ignoring
W/AwContents( 2140): onDetachedFromWindow called when already detached. Ignoring
W/art     ( 2140): Attempt to remove local handle scope entry from IRT, ignoring
W/art     ( 2140): Attempt to remove local handle scope entry from IRT, ignoring
D/ArticleWebView( 2140): Available styles before pref load: 0
D/ArticleWebView( 2140): Loaded available styles: 0
D/ArticleWebView( 2140): Auto style will return Default
D/ArticleWebView( 2140): getPreferredStyle() will return Default
D/ArticleWebView( 2140): Auto style will return Default
D/ArticleWebView( 2140): getPreferredStyle() will return Default
D/BlobDescriptorList( 2140): Create descriptor from content url: http://127.0.0.1:8013/slob/47345894-c09f-4777-8528-ef152541a6a2/Vakuum?blob=56712-26#
D/BlobDescriptorList( 2140): Is bookmarked?false
D/        ( 2140): Is http://127.0.0.1:8013/slob/47345894-c09f-4777-8528-ef152541a6a2/Vakuum?blob=56712-26# bookmarked? false
D/ArticleWebView( 2140): Auto style will return Default
D/ArticleWebView( 2140): getPreferredStyle() will return Default
I/Timeline( 2140): Timeline: Activity_idle id: android.os.BinderProxy@20b0d5e time:55548104
I/Timeline( 2220): Timeline: Activity_windows_visible id: ActivityRecord{1eebaa87 u0 itkach.aard2/.ArticleCollectionActivity t246} time:55548214
D/ArticleWebView( 2140): onPageStarted: http://127.0.0.1:8013/slob/47345894-c09f-4777-8528-ef152541a6a2/Vakuum?blob=56712-26#
D/ArticleWebView( 2140): onPageStarted: http://127.0.0.1:8013/slob/47345894-c09f-4777-8528-ef152541a6a2/Vakuumadapter?blob=56712-24#
I/chromium( 2140): [INFO:renderer_accessibility_complete.cc(227)] Accessibility event: layoutComplete on node id 1
I/chromium( 2140): id=1 rootWebArea FOCUSABLE READONLY VERTICAL (0, 0)-(320, 442) scroll_x=0 scroll_y=0 scroll_x_min=0 scroll_y_min=0 scroll_x_max=0 scroll_y_max=0 value= html_tag=#document doc_title= doc_url= doc_mimetype=text/html name= doc_progress=1 doc_loaded=true
I/chromium( 2140): 
I/chromium( 2140): [INFO:renderer_accessibility_complete.cc(227)] Accessibility event: layoutComplete on node id 3
I/chromium( 2140): id=3 rootWebArea FOCUSABLE READONLY VERTICAL (0, 0)-(320, 442) scroll_x=0 scroll_y=0 scroll_x_min=0 scroll_y_min=0 scroll_x_max=0 scroll_y_max=0 value= html_tag=#document doc_title= doc_url= doc_mimetype=text/html name= doc_progress=1 doc_loaded=true
I/chromium( 2140): 
D/ArticleWebView( 2140): Auto style will return Default
D/ArticleWebView( 2140): getPreferredStyle() will return Default
D/ArticleWebView( 2140): Auto style will return Default
D/ArticleWebView( 2140): getPreferredStyle() will return Default
D/ArticleWebView( 2140): Auto style will return Default
D/ArticleWebView( 2140): getPreferredStyle() will return Default
D/ArticleWebView( 2140): Auto style will return Default
D/ArticleWebView( 2140): getPreferredStyle() will return Default
D/ArticleWebView( 2140): Auto style will return Default
D/ArticleWebView( 2140): getPreferredStyle() will return Default
D/ArticleWebView( 2140): Auto style will return Default
D/ArticleWebView( 2140): getPreferredStyle() will return Default
D/ArticleWebView( 2140): Auto style will return Default
D/ArticleWebView( 2140): getPreferredStyle() will return Default
D/ArticleWebView( 2140): Auto style will return Default
D/ArticleWebView( 2140): getPreferredStyle() will return Default
I/art     ( 2140): Background sticky concurrent mark sweep GC freed 73090(1966KB) AllocSpace objects, 10(158KB) LOS objects, 0% free, 25MB/25MB, paused 3.746ms total 163.622ms
D/ArticleWebView( 2140): Auto style will return Default
D/ArticleWebView( 2140): getPreferredStyle() will return Default
D/ArticleWebView( 2140): Auto style will return Default
D/ArticleWebView( 2140): getPreferredStyle() will return Default
I/art     ( 2140): Background partial concurrent mark sweep GC freed 287206(4MB) AllocSpace objects, 0(0B) LOS objects, 13% free, 25MB/29MB, paused 2.544ms total 144.941ms
D/ArticleWebView( 2140): Auto style will return Default
D/ArticleWebView( 2140): getPreferredStyle() will return Default
D/ArticleWebView( 2140): Auto style will return Default
D/ArticleWebView( 2140): getPreferredStyle() will return Default
[last two lines repeated eternally]

Thanks for looking into it!
Aard1 was a great app and it looks like v2 is even better. Keep up the good work!

article search view - dark background

Searching in the article view switches to a dark background although the style is set to 'light' and makes it hard to read the search text field on an e-ink ereader with open Android 4.2.

math formulas crashing?

article "Elektronenvolt" in de-20160505 multi volume slobs just showed rectangles in the text where the math formulas were supposed to be. Now, it is working again...

Random Search

Здравствуйте.
Скажите пожалуйста, возможно ли/планируется ли расширение функционала ''случайного поиска'' (кнопка в левом верхнем углу), чтобы он мог искать только в рамках какого-либо одного словаря, даже если подключённых к программе несколько.
Не по всем вразнобой, а случайные результаты по какому-либо одному, а сам словарь на выбор пользователя.
Ну и текущий вариант (по всем), чтобы оставался опционально возможным.

aard2 0.11 crashes frequently

Hi, I'm getting a lot of crashes with version 0.11 wih log messages like

 E/AndroidRuntime(29060): java.lang.RuntimeException: Unable to start activity
ComponentInfo{itkach.aard2/itkach.aard2.ArticleCollectionActivity}:
java.lang.IllegalArgumentException: Comparison method violates its general contract!

First log, crash happened without interaction:
http://pastebin.com/F66RSE4E

Second log, crash happened after clicking on an article name inside another article:
http://pastebin.com/0a8YUGkN

Link coordinates to geo: intent

GPS Coordinates are used in many Wikipedia articles.
These coordinates usually link to https://tools.wmflabs.org/geohack... which is a website which gives links to all sorts of geo-services.
On a smartphone, it would be more apropriate to use the geo: intent instead, as this would allow to directly view the coordinates with an Android app.
This is especially useful when no interent connection is present: It would not be possible to acces wmflabs.org/geohack while an offline map APP like OSMAnd could display the map.

There are several ways to solve this:

  1. When compiling the .slob file, https://tools.wmflabs.org/geohack.. liks could automatically be converted.
  2. Conversion could be done by the Android App whenever a link to https://tools.wmflabs.org/geohack is found.
  3. Conversion could be done by the Android App whenever a link containing coordinates in the form of ...40.712777777778_N_74.005833333333_W... is found

I think 1. is the best option to reduce complexity of the Android App.

Crash with v0.15 when clicking image

Reproducible force close (FC) when clicking on an imagemap. Happens when this resource is loaded: http://de.wikipedia.org/wiki/Ulm. The ImageMap is on the right side in the info table; name is "Lage der Stadt Ulm in Baden-Württemberg" (see below for HTML snippet). I used MHBraun's dewiki-20150103.slob

To reproduce:

  • load Ulm article in german wiki
  • click on ImageMap "Karte"
  • => force close

Logcat:

V/DeadZone(  981): consuming errant click: (1079.0,5.0)
D/ArticleWebView(19149): shouldOverrideUrlLoading: http://localhost:8013/wiki/Landkreis_Calw (current http://localhost:8013/slob/4a7f00a8-6ad5-48b2-93d3-dd16c5910971/Ulm?blob=53285-24#)
D/Overriding loading of(19149): http://localhost:8013/wiki/Landkreis_Calw
I/ActivityManager(  831): START u0 {dat=http://localhost:8013/wiki/Landkreis_Calw cmp=itkach.aard2/.ArticleCollectionActivity} from pid 19149
D/itkach.aard2.Application(19149): Activity added, stack size 2
W/dalvikvm(19149): threadid=37: thread exiting with uncaught exception (group=0x41556ba8)
E/AndroidRuntime(19149): FATAL EXCEPTION: AsyncTask #2
E/AndroidRuntime(19149): Process: itkach.aard2, PID: 19149
E/AndroidRuntime(19149): java.lang.RuntimeException: An error occured while executing doInBackground()
E/AndroidRuntime(19149):    at android.os.AsyncTask$3.done(AsyncTask.java:300)
E/AndroidRuntime(19149):    at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
E/AndroidRuntime(19149):    at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
E/AndroidRuntime(19149):    at java.util.concurrent.FutureTask.run(FutureTask.java:242)
E/AndroidRuntime(19149):    at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
E/AndroidRuntime(19149):    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
E/AndroidRuntime(19149):    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
E/AndroidRuntime(19149):    at java.lang.Thread.run(Thread.java:841)
E/AndroidRuntime(19149): Caused by: java.lang.NullPointerException
E/AndroidRuntime(19149):    at itkach.aard2.ArticleCollectionActivity.createFromUri(ArticleCollectionActivity.java:178)
E/AndroidRuntime(19149):    at itkach.aard2.ArticleCollectionActivity.access$000(ArticleCollectionActivity.java:50)
E/AndroidRuntime(19149):    at itkach.aard2.ArticleCollectionActivity$2.doInBackground(ArticleCollectionActivity.java:86)
E/AndroidRuntime(19149):    at itkach.aard2.ArticleCollectionActivity$2.doInBackground(ArticleCollectionActivity.java:79)
E/AndroidRuntime(19149):    at android.os.AsyncTask$2.call(AsyncTask.java:288)
E/AndroidRuntime(19149):    at java.util.concurrent.FutureTask.run(FutureTask.java:237)
E/AndroidRuntime(19149):    ... 4 more
W/ActivityManager(  831):   Force finishing activity itkach.aard2/.ArticleCollectionActivity
W/ActivityManager(  831):   Force finishing activity itkach.aard2/.ArticleCollectionActivity
I/InputDispatcher(  831): Dropping event because there is no touchable window at (761, 1257).
I/Process (19149): Sending signal. PID: 19149 SIG: 9
I/ActivityManager(  831): Process itkach.aard2 (pid 19149) has died.
I/WindowState(  831): WIN DEATH: Window{435b67a8 u0 itkach.aard2/itkach.aard2.MainActivity}
W/ActivityManager(  831): Force removing ActivityRecord{42da6fc8 u0 itkach.aard2/.MainActivity t78}: app died, no saved state

The resource that's loaded:

<div class="noresize" style="height: 329px; width: 300px; "><map name="ImageMap_1_30407246" id="ImageMap_1_30407246">
<area href="/wiki/Frankreich" shape="poly" coords="0,328,16,310,6,296,18,257,11,250,13,236,30,209,37,165,75,118,0,89" alt="Frankreich" title="Frankreich">
<area href="/wiki/Schweiz" shape="poly" coords="2,328,16,312,22,318,43,312,46,319,77,308,82,316,100,313,113,302,111,298,95,300,93,295,98,290,105,286,112,288,117,287,119,293,115,294,115,297,123,297,126,300,130,294,135,302,160,301,192,325,200,324,206,329" alt="Schweiz" title="Schweiz">
<area href="/wiki/%C3%96sterreich" shape="poly" coords="207,328,201,325,217,322,214,317,221,311,235,317,245,328,282,328,278,322,280,311,293,318,297,313,296,318,296,328,207,329" alt="Österreich" title="Österreich">
<area href="/wiki/Bodensee" shape="poly" coords="146,299,160,301,192,324,216,322,213,317,202,312,198,311,194,303,185,300,179,302,169,295,167,290,153,280,151,281,162,289,167,300,164,299,146,290,143,293,148,296" alt="Bodensee" title="Bodensee">
<area href="/wiki/Rheinland-Pfalz" shape="poly" coords="0,90,1,1,88,0,95,12,86,18,93,35,91,37,96,49,94,52,96,54,99,54,98,64,94,69,98,74,87,82,86,102,81,109,79,117,74,118,46,106,25,107,12,102,8,92" alt="Rheinland-Pfalz" title="Rheinland-Pfalz">
<area href="/wiki/Hessen" shape="poly" coords="93,33,87,18,98,9,93,8,90,1,154,1,155,5,159,3,159,7,158,9,160,10,158,18,156,19,154,31,156,34,153,42,151,42,151,45,144,45,141,46,140,49,141,51,136,54,131,58,129,56,131,53,132,49,134,50,135,49,139,46,136,44,130,45,131,43,130,41,126,42,122,41,122,40,120,37,118,30,118,27,108,31,111,38,110,41,107,42,107,41,104,38,101,35,98,32,96,32" alt="Hessen" title="Hessen">
<area href="/wiki/Bayern" shape="poly" coords="157,35,153,31,156,25,154,18,160,17,161,11,158,9,160,7,159,3,154,3,155,1,298,0,296,313,293,314,292,318,287,318,283,316,284,311,279,312,279,319,280,324,281,328,245,328,245,325,240,324,237,316,233,319,226,317,223,316,224,312,221,310,217,312,216,315,215,317,204,312,207,308,218,308,227,300,237,302,244,298,247,299,247,304,251,301,254,296,251,288,247,283,253,280,249,270,253,239,247,214,237,201,269,181,270,169,264,161,267,156,273,164,286,157,279,148,284,123,270,109,264,109,265,96,253,86,255,75,251,64,257,59,252,52,251,44,247,38,244,40,243,45,240,46,233,47,232,33,229,34,227,32,228,29,222,14,221,13,215,17,212,12,208,15,208,17,208,13,209,6,208,3,197,7,193,3,188,6,184,4,179,6,174,6,175,11,176,15,179,15,180,18,185,16,184,21,184,23,181,24,178,22,173,24,173,28,170,32,166,34,160,35,160,34" alt="Freistaat Bayern" title="Freistaat Bayern">
<area href="/wiki/Alb-Donau-Kreis" shape="poly" coords="243,191,263,184,234,166,223,177,201,181,205,198,193,224,214,228,229,215,243,221,243,234,250,232,239,206,232,211,224,202,236,190,242,191" alt="Alb-Donau-Kreis" title="Alb-Donau-Kreis">
<area href="/wiki/Baden-Baden" shape="poly" coords="64,152,77,162,84,153,70,138,68,145,72,151" alt="Baden-Baden" title="Baden-Baden">
<area href="/wiki/Landkreis_Biberach" shape="poly" coords="172,234,178,221,214,231,229,215,243,221,243,233,249,233,251,258,204,257,194,244" alt="Landkreis Biberach" title="Landkreis Biberach">
<area href="/wiki/Landkreis_B%C3%B6blingen" shape="poly" coords="124,181,132,184,162,169,149,139,139,134,129,146,134,154,124,175" alt="Landkreis Böblingen" title="Landkreis Böblingen">
<area href="/wiki/Bodenseekreis" shape="poly" coords="154,284,154,275,172,273,216,302,200,313,170,295" alt="Bodenseekreis" title="Bodenseekreis">
<area href="/wiki/Landkreis_Breisgau-Hochschwarzwald" shape="poly" coords="12,238,13,250,9,288,44,272,72,288,78,275,95,273,60,245,39,247,45,253,45,266,34,259,22,259,27,250,37,245,25,240" alt="Landkreis Breisgau-Hochschwarzwald" title="Landkreis Breisgau-Hochschwarzwald">
<area href="/wiki/Landkreis_Calw" shape="poly" coords="92,165,98,149,93,149,92,138,120,139,129,146,134,153,123,184,116,186,92,165" alt="Landkreis Calw" title="Landkreis Calw">
<area href="/wiki/Landkreis_Emmendingen" shape="poly" coords="13,238,64,249,70,225,22,218" alt="Landkreis Emmendingen" title="Landkreis Emmendingen">
<area href="/wiki/Enzkreis" shape="poly" coords="133,107,104,122,100,140,104,144,118,140,119,137,113,136,113,125,124,126,128,135,121,141,128,146,140,133,137,123,141,122,139,114" alt="Enzkreis" title="Enzkreis">
<area href="/wiki/Landkreis_Esslingen" shape="poly" coords="157,156,163,170,190,181,202,180,194,149,175,147,167,158" alt="Landkreis Esslingen" title="Landkreis Esslingen">
<area href="/wiki/Freiburg_im_Breisgau" shape="poly" coords="28,249,23,259,40,261,41,266,46,266,46,253,36,245,31,250" alt="Freiburg im Breisgau" title="Freiburg im Breisgau">
<area href="/wiki/Landkreis_Freudenstadt" shape="poly" coords="77,203,74,171,91,166,113,184,124,185,130,190,123,202,102,199,98,212,78,202" alt="Landkreis Freudenstadt" title="Landkreis Freudenstadt">
<area href="/wiki/Landkreis_G%C3%B6ppingen" shape="poly" coords="202,180,212,181,235,168,239,153,220,154,216,148,193,151,196,165" alt="Landkreis Göppingen" title="Landkreis Göppingen">
<area href="/wiki/Heidelberg" shape="poly" coords="109,56,113,65,124,64,126,54,117,53" alt="Heidelberg" title="Heidelberg">
<area href="/wiki/Landkreis_Heidenheim" shape="poly" coords="261,184,233,166,239,153,261,145,279,150,288,159,272,164,264,156,263,163,268,176" alt="Landkreis Heidenheim" title="Landkreis Heidenheim">
<area href="/wiki/Landkreis_Heilbronn" shape="poly" coords="130,88,134,109,162,108,163,101,152,87,161,86,174,98,164,101,164,110,192,105,198,98,185,101,179,89,194,71,187,64,130,91" alt="Landkreis Heilbronn" title="Landkreis Heilbronn">
<area href="/wiki/Heilbronn" shape="poly" coords="153,88,163,101,174,99,167,90,160,86" alt="Heilbronn" title="Heilbronn">
<area href="/wiki/Hohenlohekreis" shape="poly" coords="188,100,179,89,196,72,187,64,200,61,202,55,226,62,226,77,201,101,193,97" alt="Hohenlohekreis" title="Hohenlohekreis">
<area href="/wiki/Landkreis_Karlsruhe" shape="poly" coords="98,74,130,89,134,107,103,121,98,140,93,140,80,133,85,125,80,121,78,117,103,122,101,110,86,104,90,82" alt="Landkreis Karlsruhe" title="Landkreis Karlsruhe">
<area href="/wiki/Karlsruhe" shape="poly" coords="79,117,85,104,100,109,103,122,90,120" alt="Karlsruhe" title="Karlsruhe">
<area href="/wiki/Landkreis_Konstanz" shape="poly" coords="111,286,114,276,127,269,152,263,160,274,154,277,154,281,166,299,163,302,155,297,142,290,146,296,135,302,127,291,128,298,121,297,115,297,116,295,120,291,120,286,111,286" alt="Landkreis Konstanz" title="Landkreis Konstanz">
<area href="/wiki/Landkreis_L%C3%B6rrach" shape="poly" coords="11,290,46,272,54,274,45,312,23,319" alt="Landkreis Lörrach" title="Landkreis Lörrach">
<area href="/wiki/Landkreis_Ludwigsburg" shape="poly" coords="138,133,149,140,151,149,158,139,175,134,182,128,182,109,135,110,142,122,137,125" alt="Landkreis Ludwigsburg" title="Landkreis Ludwigsburg">
<area href="/wiki/Main-Tauber-Kreis" shape="poly" coords="176,10,186,23,195,28,194,53,225,63,254,61,247,39,233,47,231,33,225,34,220,14,207,16,207,3,175,9" alt="Main-Tauber-Kreis" title="Main-Tauber-Kreis">
<area href="/wiki/Mannheim" shape="poly" coords="100,58,109,57,107,43,93,33,94,52" alt="Mannheim" title="Mannheim">
<area href="/wiki/Neckar-Odenwald-Kreis" shape="poly" coords="153,42,142,62,152,75,202,63,202,54,193,52,195,27,186,24" alt="Neckar-Odenwald-Kreis" title="Neckar-Odenwald-Kreis">
<area href="/wiki/Ortenaukreis" shape="poly" coords="24,219,82,231,77,166,50,154,31,189" alt="Ortenaukreis" title="Ortenaukreis">
<area href="/wiki/Ostalbkreis" shape="poly" coords="279,151,221,153,206,144,218,139,209,123,212,120,225,127,239,110,263,109,282,123" alt="Ostalbkreis" title="Ostalbkreis">
<area href="/wiki/Pforzheim" shape="poly" coords="120,138,111,135,113,126,122,125,128,134,123,138" alt="Pforzheim" title="Pforzheim">
<area href="/wiki/Landkreis_Rastatt" shape="poly" coords="50,155,75,118,87,125,79,132,98,150,94,165,77,172,51,155,63,153,72,156,75,161,82,159,84,153,80,145,74,138,70,138,67,145,71,149,68,151,63,153" alt="Landkreis Rastatt" title="Landkreis Rastatt">
<area href="/wiki/Landkreis_Ravensburg" shape="poly" coords="211,308,215,298,184,280,186,260,247,257,252,300,225,300" alt="Landkreis Ravensburg" title="Landkreis Ravensburg">
<area href="/wiki/Rems-Murr-Kreis" shape="poly" coords="173,147,167,134,182,126,179,115,192,104,201,107,211,124,217,140,203,147,177,146" alt="Rems-Murr-Kreis" title="Rems-Murr-Kreis">
<area href="/wiki/Landkreis_Reutlingen" shape="poly" coords="158,171,158,202,183,227,192,223,206,193,201,178,170,176,165,171" alt="Landkreis Reutlingen" title="Landkreis Reutlingen">
<area href="/wiki/Rhein-Neckar-Kreis" shape="poly" coords="107,43,109,55,124,52,127,57,123,63,115,66,110,65,111,62,114,58,98,58,98,75,135,92,153,75,142,61,154,44,143,45,134,60,129,58,138,45,117,39,117,28,109,30,112,40" alt="Rhein-Neckar-Kreis" title="Rhein-Neckar-Kreis">
<area href="/wiki/Landkreis_Rottweil" shape="poly" coords="82,201,83,230,101,231,109,245,124,232,114,214,122,201,101,200,98,211" alt="Landkreis Rottweil" title="Landkreis Rottweil">
<area href="/wiki/Landkreis_Schw%C3%A4bisch_Hall" shape="poly" coords="193,103,230,129,241,108,262,109,251,62,225,65,204,98" alt="Landkreis Schwäbisch Hall" title="Landkreis Schwäbisch Hall">
<area href="/wiki/Schwarzwald-Baar-Kreis" shape="poly" coords="105,284,65,250,67,230,99,230,116,257,108,264,113,275" alt="Schwarzwald-Baar-Kreis" title="Schwarzwald-Baar-Kreis">
<area href="/wiki/Landkreis_Sigmaringen" shape="poly" coords="148,262,160,275,185,278,186,260,203,253,173,233,179,220,168,216,156,220,161,225,162,235,147,232,142,241,149,263,157,266" alt="Landkreis Sigmaringen" title="Landkreis Sigmaringen">
<area href="/wiki/Stuttgart" shape="poly" coords="156,139,152,151,169,158,175,146,167,134" alt="Stuttgart" title="Stuttgart">
<area href="/wiki/Landkreis_T%C3%BCbingen" shape="poly" coords="124,196,124,182,157,169,159,203" alt="Landkreis Tübingen" title="Landkreis Tübingen">
<area href="/wiki/Landkreis_Tuttlingen" shape="poly" coords="111,274,150,263,143,239,128,228,108,243,115,259,108,263" alt="Landkreis Tuttlingen" title="Landkreis Tuttlingen">
<area href="/wiki/Ulm" shape="poly" coords="243,191,230,194,227,204,235,212,240,203,236,200" alt="Ulm" title="Ulm">
<area href="/wiki/Landkreis_Waldshut" shape="poly" coords="42,311,55,276,59,275,71,288,77,285,79,276,96,277,103,285,93,301,110,301,107,310,96,313,83,313,73,306,48,317" alt="Landkreis Waldshut" title="Landkreis Waldshut">
<area href="/wiki/Zollernalbkreis" shape="poly" coords="126,197,113,215,124,231,130,227,139,240,143,239,148,233,163,234,163,224,156,218,164,216,167,208,161,202" alt="Zollernalbkreis" title="Zollernalbkreis"></map><img alt="Karte" src="http://upload.wikimedia.org/wikipedia/commons/thumb/9/9e/Baden-W%C3%BCrttemberg_UL_%28town%29.svg/300px-Baden-W%C3%BCrttemberg_UL_%28town%29.svg.png" width="300" height="329" srcset="http://upload.wikimedia.org/wikipedia/commons/thumb/9/9e/Baden-W%C3%BCrttemberg_UL_%28town%29.svg/450px-Baden-W%C3%BCrttemberg_UL_%28town%29.svg.png 1.5x, http://upload.wikimedia.org/wikipedia/commons/thumb/9/9e/Baden-W%C3%BCrttemberg_UL_%28town%29.svg/600px-Baden-W%C3%BCrttemberg_UL_%28town%29.svg.png 2x" data-file-width="1058" data-file-height="1161" usemap="#ImageMap_1_30407246">
<div style="margin-left: 280px; margin-top: -20px; text-align: left;"><a href="http://de.wikipedia.org/wiki/datei:Baden-W%C3%BCrttemberg_UL_(town).svg" title="Über dieses Bild"><img alt="Über dieses Bild" src="http://bits.wikimedia.org/static-1.25wmf12/extensions/ImageMap/desc-20.png" style="border: none;"></a></div>

Crash on opening articles containing '/'

I recently compile wikivoyage for aard2. However, many articles for cities are divided in sub-articles for the districts seperated by a '/' in the name, e. g. 'Berlin/Mitte'.
Opening any article containing '/' crashes aard2.

Stacktrace:

1-25 12:33:05.383 I/ActivityManager(  624): START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10304000 cmp=itkach.aard2/.MainActivity} from pid 958
11-25 12:33:05.513 I/ActivityManager(  624): Start proc itkach.aard2 for activity itkach.aard2/.MainActivity: pid=9850 uid=10145 gids={50145, 1028, 3003}
11-25 12:33:05.633 D/ActivityThread( 9850): handleBindApplication:itkach.aard2
11-25 12:33:05.793 D/itkach.aard2.Application( 9850): Started web server on port 8013 in 7 ms
11-25 12:33:06.093 D/itkach.aard2.SlobDescriptorList( 9850): beginUpdate
11-25 12:33:06.113 D/itkach.aard2.SlobDescriptorList( 9850): endUpdate, changed? true
11-25 12:33:07.383 I/ActivityManager(  624): Displayed itkach.aard2/.MainActivity: +1s880ms
11-25 12:33:07.393 I/Timeline(  624): Timeline: Activity_windows_visible id: ActivityRecord{424cff78 u0 itkach.aard2/.MainActivity t149} time:87267840
11-25 12:33:09.293 I/Timeline( 9850): Timeline: Activity_launch_request id:itkach.aard2 time:87269738
11-25 12:33:09.293 I/ActivityManager(  624): START u0 {cmp=itkach.aard2/.ArticleCollectionActivity (has extras)} from pid 9850
11-25 12:33:09.403 D/itkach.aard2.Application( 9850): Activity added, stack size 1
11-25 12:33:09.413 E/AndroidRuntime( 9850): Process: itkach.aard2, PID: 9850
11-25 12:33:09.413 E/AndroidRuntime( 9850): java.lang.RuntimeException: Unable to start activity ComponentInfo{itkach.aard2/itkach.aard2.ArticleCollectionActivity}: java.lang.NullPointerException
11-25 12:33:09.413 E/AndroidRuntime( 9850):     at itkach.aard2.Application.getSlobURI(Application.java:287)
11-25 12:33:09.413 E/AndroidRuntime( 9850):     at itkach.aard2.BlobDescriptorList.createDescriptor(BlobDescriptorList.java:216)
11-25 12:33:09.413 E/AndroidRuntime( 9850):     at itkach.aard2.BlobDescriptorList.add(BlobDescriptorList.java:222)
11-25 12:33:09.413 E/AndroidRuntime( 9850):     at itkach.aard2.ArticleCollectionActivity.updateTitle(ArticleCollectionActivity.java:233)
11-25 12:33:09.413 E/AndroidRuntime( 9850):     at itkach.aard2.ArticleCollectionActivity.access$000(ArticleCollectionActivity.java:49)
11-25 12:33:09.413 E/AndroidRuntime( 9850):     at itkach.aard2.ArticleCollectionActivity$2.onPageSelected(ArticleCollectionActivity.java:125)
11-25 12:33:09.413 E/AndroidRuntime( 9850):     at itkach.aard2.ArticleCollectionActivity.onCreate(ArticleCollectionActivity.java:135)
11-25 12:33:09.423 W/ActivityManager(  624):   Force finishing activity itkach.aard2/.ArticleCollectionActivity
11-25 12:33:09.423 W/ActivityManager(  624):   Force finishing activity itkach.aard2/.MainActivity
11-25 12:33:09.923 W/ActivityManager(  624): Activity pause timeout for ActivityRecord{424d3d48 u0 itkach.aard2/.ArticleCollectionActivity t149 f}
11-25 12:33:10.863 I/WindowState(  624): WIN DEATH: Window{42cf6420 u0 itkach.aard2/itkach.aard2.MainActivity}
11-25 12:33:10.863 I/ActivityManager(  624): Process itkach.aard2 (pid 9850) has died.

RuntimeException: Can't create handler inside thread that has not called Looper.prepare()

After calling aard2 via intent

Intent intent = new Intent("aard2.lookup");
intent.putExtra(SearchManager.QUERY, "Foo Bar");
startActivity(intent);

error is occured

05-12 20:01:19.596 E/AndroidRuntime(22326): FATAL EXCEPTION: AsyncTask #1
05-12 20:01:19.596 E/AndroidRuntime(22326): Process: itkach.aard2, PID: 22326
05-12 20:01:19.596 E/AndroidRuntime(22326): java.lang.RuntimeException: An error occured while executing doInBackground()
05-12 20:01:19.596 E/AndroidRuntime(22326): at android.os.AsyncTask$3.done(AsyncTask.java:300)
05-12 20:01:19.596 E/AndroidRuntime(22326): at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
05-12 20:01:19.596 E/AndroidRuntime(22326): at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
05-12 20:01:19.596 E/AndroidRuntime(22326): at java.util.concurrent.FutureTask.run(FutureTask.java:242)
05-12 20:01:19.596 E/AndroidRuntime(22326): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
05-12 20:01:19.596 E/AndroidRuntime(22326): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
05-12 20:01:19.596 E/AndroidRuntime(22326): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
05-12 20:01:19.596 E/AndroidRuntime(22326): at java.lang.Thread.run(Thread.java:841)
05-12 20:01:19.596 E/AndroidRuntime(22326): Caused by: java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
05-12 20:01:19.596 E/AndroidRuntime(22326): at android.os.Handler.(Handler.java:200)
05-12 20:01:19.596 E/AndroidRuntime(22326): at android.os.Handler.(Handler.java:114)
05-12 20:01:19.596 E/AndroidRuntime(22326): at android.widget.Toast$TN.(Toast.java:457)
05-12 20:01:19.596 E/AndroidRuntime(22326): at android.widget.Toast.(Toast.java:119)
05-12 20:01:19.596 E/AndroidRuntime(22326): at android.widget.Toast.makeText(Toast.java:286)
05-12 20:01:19.596 E/AndroidRuntime(22326): at android.widget.Toast.makeText(Toast.java:335)
05-12 20:01:19.596 E/AndroidRuntime(22326): at itkach.aard2.ArticleCollectionActivity.createFromIntent(ArticleCollectionActivity.java:240)
05-12 20:01:19.596 E/AndroidRuntime(22326): at itkach.aard2.ArticleCollectionActivity.access$500(ArticleCollectionActivity.java:50)
05-12 20:01:19.596 E/AndroidRuntime(22326): at itkach.aard2.ArticleCollectionActivity$2.doInBackground(ArticleCollectionActivity.java:104)
05-12 20:01:19.596 E/AndroidRuntime(22326): at itkach.aard2.ArticleCollectionActivity$2.doInBackground(ArticleCollectionActivity.java:80)
05-12 20:01:19.596 E/AndroidRuntime(22326): at android.os.AsyncTask$2.call(AsyncTask.java:288)
05-12 20:01:19.596 E/AndroidRuntime(22326): at java.util.concurrent.FutureTask.run(FutureTask.java:237)
05-12 20:01:19.596 E/AndroidRuntime(22326): ... 4 more

App crashing when leaving article activity after a longer time

When you revisit the article activity via the recents (probably also via the launcher) after a longer time and then go back to search for another article, the app crashes. This happens for me on Android Lollipop/Nexus 5, I don't know if this occurs also on other Android versions.
This is especially the case if you're doing some CPU/RAM intensive tasks and then want to return to Aard, so I suppose that Android is killing the search/list activity in some way.

Apart from that, Aard2 is really great and I'm looking forward to the offline images.

Stack trace:

11-22 17:03:27.750  29943-29943/? W/UnimplementedWebViewApi﹕ Unimplemented WebView method onKeyDown called from: android.webkit.WebView.onKeyDown(WebView.java:2301)
11-22 17:03:27.899  29943-29943/? D/AndroidRuntime﹕ Shutting down VM
11-22 17:03:27.905  29943-29943/? E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: itkach.aard2, PID: 29943
    java.lang.RuntimeException: Unable to start activity ComponentInfo{itkach.aard2/itkach.aard2.MainActivity}: java.lang.IllegalStateException: Content view not yet created
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
            at android.app.ActivityThread.access$800(ActivityThread.java:144)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5221)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
     Caused by: java.lang.IllegalStateException: Content view not yet created
            at android.support.v4.app.ListFragment.ensureList(ListFragment.java:328)
            at android.support.v4.app.ListFragment.setListShown(ListFragment.java:280)
            at android.support.v4.app.ListFragment.setListShown(ListFragment.java:258)
            at itkach.aard2.LookupFragment.setBusy(LookupFragment.java:147)
            at itkach.aard2.LookupFragment.onCreateOptionsMenu(LookupFragment.java:127)
            at android.support.v4.app.Fragment.performCreateOptionsMenu(Fragment.java:1586)
            at android.support.v4.app.FragmentManagerImpl.dispatchCreateOptionsMenu(FragmentManager.java:1973)
            at android.support.v4.app.FragmentActivity.onCreatePanelMenu(FragmentActivity.java:226)
            at com.android.internal.policy.impl.PhoneWindow.preparePanel(PhoneWindow.java:548)
            at com.android.internal.policy.impl.PhoneWindow.doInvalidatePanelMenu(PhoneWindow.java:917)
            at com.android.internal.policy.impl.PhoneWindow$1.run(PhoneWindow.java:258)
            at com.android.internal.policy.impl.PhoneWindow.doPendingInvalidatePanelMenu(PhoneWindow.java:891)
            at com.android.internal.policy.impl.PhoneWindow.restoreHierarchyState(PhoneWindow.java:2008)
            at android.app.Activity.onRestoreInstanceState(Activity.java:1022)
            at itkach.aard2.MainActivity.onRestoreInstanceState(MainActivity.java:82)
            at itkach.aard2.MainActivity.onCreate(MainActivity.java:74)
            at android.app.Activity.performCreate(Activity.java:5933)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
            at android.app.ActivityThread.access$800(ActivityThread.java:144)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5221)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
11-22 17:03:27.909     721-1263/? W/ActivityManager﹕ Force finishing activity itkach.aard2/.MainActivity
11-22 17:03:27.965     721-3303/? I/OpenGLRenderer﹕ Initialized EGL, version 1.4
11-22 17:03:28.426      721-809/? W/ActivityManager﹕ Activity pause timeout for ActivityRecord{834a2ff u0 itkach.aard2/.MainActivity t843 f}

Auto-fill search field with transferred term

Hi! Let's look at the steps:

  • invoke Aard from external application (I use AlReader)
  • we have got article screen
  • we want to refine search term
  • we switch to search screen

Expected: search field is filled with the term was sent from external app to Aard.
But we get: search field is filled with old term used previous time we used the field.

Documentation: converting other formats to slob

I have a huge collection of stardict dictionaries. Unfortunately, there are no open source stardict apps for Android nowadays so I think about migrating to aard2.

Is there any software to convert stardict to slob? Just give me a link and I'll put it into README myself and submit a pull request.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.