├── app
├── .gitignore
├── src
│ ├── main
│ │ ├── res
│ │ │ ├── drawable-mdpi
│ │ │ │ ├── hp.gif
│ │ │ │ ├── meat.gif
│ │ │ │ ├── mp.gif
│ │ │ │ ├── musc.gif
│ │ │ │ ├── myst.gif
│ │ │ │ ├── moxie.gif
│ │ │ │ ├── hourglass.gif
│ │ │ │ ├── ic_drawer.png
│ │ │ │ ├── ic_info.png
│ │ │ │ ├── ic_launcher.png
│ │ │ │ ├── leftswordguy.gif
│ │ │ │ ├── drawer_shadow.9.png
│ │ │ │ ├── ic_map_black_24dp.png
│ │ │ │ ├── ic_settings_black_24dp.png
│ │ │ │ ├── ic_info_outline_black_24dp.png
│ │ │ │ └── ic_chat_bubble_outline_black_24dp.png
│ │ │ ├── drawable-hdpi
│ │ │ │ ├── ic_drawer.png
│ │ │ │ ├── ic_info.png
│ │ │ │ ├── ic_launcher.png
│ │ │ │ ├── drawer_shadow.9.png
│ │ │ │ ├── ic_map_black_24dp.png
│ │ │ │ ├── ic_settings_black_24dp.png
│ │ │ │ ├── ic_info_outline_black_24dp.png
│ │ │ │ └── ic_chat_bubble_outline_black_24dp.png
│ │ │ ├── drawable-xhdpi
│ │ │ │ ├── ic_info.png
│ │ │ │ ├── ic_drawer.png
│ │ │ │ ├── ic_launcher.png
│ │ │ │ ├── drawer_shadow.9.png
│ │ │ │ ├── ic_map_black_24dp.png
│ │ │ │ ├── ic_settings_black_24dp.png
│ │ │ │ ├── ic_info_outline_black_24dp.png
│ │ │ │ └── ic_chat_bubble_outline_black_24dp.png
│ │ │ ├── drawable-xxhdpi
│ │ │ │ ├── ic_info.png
│ │ │ │ ├── ic_drawer.png
│ │ │ │ ├── ic_launcher.png
│ │ │ │ ├── drawer_shadow.9.png
│ │ │ │ ├── ic_map_black_24dp.png
│ │ │ │ ├── ic_settings_black_24dp.png
│ │ │ │ ├── ic_info_outline_black_24dp.png
│ │ │ │ └── ic_chat_bubble_outline_black_24dp.png
│ │ │ ├── drawable-xxxhdpi
│ │ │ │ ├── ic_info.png
│ │ │ │ ├── ic_launcher.png
│ │ │ │ ├── ic_map_black_24dp.png
│ │ │ │ ├── ic_settings_black_24dp.png
│ │ │ │ ├── ic_info_outline_black_24dp.png
│ │ │ │ └── ic_chat_bubble_outline_black_24dp.png
│ │ │ ├── values
│ │ │ │ ├── integers.xml
│ │ │ │ ├── tags.xml
│ │ │ │ ├── dimens.xml
│ │ │ │ ├── attrs_progress_bar.xml
│ │ │ │ ├── colors.xml
│ │ │ │ ├── attrs_search_list_view.xml
│ │ │ │ ├── dialogstyle.xml
│ │ │ │ ├── themes.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── styles.xml
│ │ │ ├── drawable
│ │ │ │ ├── item_normal.xml
│ │ │ │ ├── item_pressed.xml
│ │ │ │ ├── blue_border.xml
│ │ │ │ ├── item_selector.xml
│ │ │ │ ├── black_to_blue_onpress_border.xml
│ │ │ │ ├── rounded_square.xml
│ │ │ │ ├── black_sides.xml
│ │ │ │ ├── black_thick_border.xml
│ │ │ │ ├── blue_thick_border.xml
│ │ │ │ ├── gray_thick_border.xml
│ │ │ │ └── blue_thick_border_gray_background.xml
│ │ │ ├── anim
│ │ │ │ ├── inleftanim.xml
│ │ │ │ ├── inrightanim.xml
│ │ │ │ ├── outleftanim.xml
│ │ │ │ └── outrightanim.xml
│ │ │ ├── layout
│ │ │ │ ├── activity_chat_view.xml
│ │ │ │ ├── activity_login_view.xml
│ │ │ │ ├── web_live_view.xml
│ │ │ │ ├── chat_channel_list_view.xml
│ │ │ │ ├── web_view.xml
│ │ │ │ ├── web_dialog_view.xml
│ │ │ │ ├── navigation_view.xml
│ │ │ │ ├── text_debug_view.xml
│ │ │ │ ├── chat_channel_view.xml
│ │ │ │ ├── inventory_pocket_view.xml
│ │ │ │ ├── chat_message_view.xml
│ │ │ │ ├── sidebar_view.xml
│ │ │ │ ├── choice_view.xml
│ │ │ │ ├── search_list_view.xml
│ │ │ │ ├── generic_header_view.xml
│ │ │ │ ├── chat_submission_view.xml
│ │ │ │ ├── save_outfit_view.xml
│ │ │ │ ├── group_search_list_view.xml
│ │ │ │ ├── text_input_view.xml
│ │ │ │ ├── results_view.xml
│ │ │ │ ├── multiaction_view.xml
│ │ │ │ ├── generic_element_view.xml
│ │ │ │ ├── chat_message_actions_view.xml
│ │ │ │ ├── chat_channel_tab_view.xml
│ │ │ │ ├── tabs_view.xml
│ │ │ │ ├── enter_chat_button_view.xml
│ │ │ │ ├── subtext_view.xml
│ │ │ │ ├── message_view.xml
│ │ │ │ ├── chat_view.xml
│ │ │ │ ├── equipment_pocket_view.xml
│ │ │ │ └── item_view.xml
│ │ │ ├── menu
│ │ │ │ ├── login_screen.xml
│ │ │ │ ├── game_screen.xml
│ │ │ │ └── chat_screen.xml
│ │ │ ├── values-v14
│ │ │ │ └── styles.xml
│ │ │ └── values-v11
│ │ │ │ └── styles.xml
│ │ ├── java
│ │ │ └── com
│ │ │ │ └── github
│ │ │ │ └── kolandroid
│ │ │ │ └── kol
│ │ │ │ └── android
│ │ │ │ ├── binders
│ │ │ │ ├── Binder.java
│ │ │ │ ├── ColoredGroupBinder.java
│ │ │ │ ├── ChatBinder.java
│ │ │ │ ├── TextBinder.java
│ │ │ │ ├── SkillsBinder.java
│ │ │ │ ├── SubtextBinder.java
│ │ │ │ ├── DefaultGroupBinder.java
│ │ │ │ └── ElementBinder.java
│ │ │ │ ├── controller
│ │ │ │ ├── UpdatableController.java
│ │ │ │ ├── UpdateController.java
│ │ │ │ ├── ModelController.java
│ │ │ │ ├── Controller.java
│ │ │ │ ├── LinkedModelController.java
│ │ │ │ └── BinderController.java
│ │ │ │ ├── util
│ │ │ │ ├── searchlist
│ │ │ │ │ ├── SerializableSelector.java
│ │ │ │ │ ├── ListSelector.java
│ │ │ │ │ ├── ActionSelector.java
│ │ │ │ │ └── HighlightableListAdapter.java
│ │ │ │ ├── LatchedCallback.java
│ │ │ │ ├── BasicLatchedCallback.java
│ │ │ │ ├── WeakLatchedCallback.java
│ │ │ │ ├── HandlerCallback.java
│ │ │ │ └── adapters
│ │ │ │ │ └── ListAdapter.java
│ │ │ │ ├── login
│ │ │ │ └── ExpiringController.java
│ │ │ │ ├── screen
│ │ │ │ ├── Screen.java
│ │ │ │ └── ScreenSelection.java
│ │ │ │ ├── game
│ │ │ │ └── UpdateSidebarHandler.java
│ │ │ │ ├── controllers
│ │ │ │ ├── inventory
│ │ │ │ │ ├── HagnkController.java
│ │ │ │ │ ├── InventoryController.java
│ │ │ │ │ ├── InventoryUpdateController.java
│ │ │ │ │ └── CustomOutfitController.java
│ │ │ │ ├── TextDebugController.java
│ │ │ │ ├── AccountSettingsController.java
│ │ │ │ ├── chat
│ │ │ │ │ ├── ChatCommandSpawnerController.java
│ │ │ │ │ └── ChannelCounterController.java
│ │ │ │ ├── CraftingController.java
│ │ │ │ ├── web
│ │ │ │ │ ├── LiveWebController.java
│ │ │ │ │ └── TextInputController.java
│ │ │ │ └── ReportableMessageController.java
│ │ │ │ ├── chat
│ │ │ │ └── ChatService.java
│ │ │ │ └── view
│ │ │ │ ├── ErrorHandler.java
│ │ │ │ └── ToastLoader.java
│ │ └── AndroidManifest.xml
│ └── androidTest
│ │ └── java
│ │ └── com
│ │ └── github
│ │ └── kolandroid
│ │ └── kol
│ │ └── ApplicationTest.java
├── proguard-rules.pro
└── build.gradle
├── kol_base
├── .gitignore
├── src
│ └── main
│ │ └── java
│ │ └── com
│ │ └── github
│ │ └── kolandroid
│ │ └── kol
│ │ ├── data
│ │ ├── RawData.java
│ │ └── DataCache.java
│ │ ├── model
│ │ ├── elements
│ │ │ ├── interfaces
│ │ │ │ ├── SubtextElement.java
│ │ │ │ ├── Multiuseable.java
│ │ │ │ ├── ModelElement.java
│ │ │ │ ├── DeferredGameAction.java
│ │ │ │ └── ModelGroup.java
│ │ │ ├── basic
│ │ │ │ ├── BasicSubtextElement.java
│ │ │ │ ├── BasicElement.java
│ │ │ │ ├── BasicAction.java
│ │ │ │ └── BasicGroup.java
│ │ │ ├── ActionElement.java
│ │ │ ├── MultiuseElement.java
│ │ │ └── MultiActionElement.java
│ │ ├── models
│ │ │ ├── skill
│ │ │ │ ├── SkillsSubmodel.java
│ │ │ │ ├── SkillsVisitor.java
│ │ │ │ └── SkillsModel.java
│ │ │ ├── chat
│ │ │ │ ├── raw
│ │ │ │ │ ├── RawActionList.java
│ │ │ │ │ ├── RawAction.java
│ │ │ │ │ └── RawActionListDeserializer.java
│ │ │ │ ├── stubs
│ │ │ │ │ ├── ChannelStubModel.java
│ │ │ │ │ ├── ChatCommandSpawnerStubModel.java
│ │ │ │ │ ├── ChatSubmissionStubModel.java
│ │ │ │ │ └── ChatStubModel.java
│ │ │ │ └── ChatLink.java
│ │ │ ├── inventory
│ │ │ │ ├── pockets
│ │ │ │ │ ├── ItemPocketVisitor.java
│ │ │ │ │ ├── ItemPocket.java
│ │ │ │ │ ├── HagnkPocketModel.java
│ │ │ │ │ ├── ClosetPocketModel.java
│ │ │ │ │ └── HagnkStatusPocketModel.java
│ │ │ │ ├── InventoryModel.java
│ │ │ │ ├── HagnkModel.java
│ │ │ │ └── InventoryUpdateModel.java
│ │ │ ├── login
│ │ │ │ ├── ConnectionFailed.java
│ │ │ │ └── AppUpdaterModel.java
│ │ │ ├── ErrorReportingModel.java
│ │ │ ├── AppSettingsModel.java
│ │ │ ├── fight
│ │ │ │ ├── FightSkill.java
│ │ │ │ ├── FightAction.java
│ │ │ │ ├── DisabledFightAction.java
│ │ │ │ └── FightBasicAction.java
│ │ │ ├── LiveWebModel.java
│ │ │ └── navigation
│ │ │ │ └── NavigationElement.java
│ │ ├── ReportableMessageModel.java
│ │ ├── LinkedModel.java
│ │ └── GroupModel.java
│ │ ├── util
│ │ ├── StringUtils.java
│ │ ├── SerializableCallback.java
│ │ ├── Callback.java
│ │ └── Logger.java
│ │ ├── request
│ │ ├── SerializableResponseHandler.java
│ │ ├── ResponseHandler.java
│ │ ├── ExternalRequest.java
│ │ ├── ExternalFileRequest.java
│ │ ├── SingleRequest.java
│ │ └── SimulatedRequest.java
│ │ ├── gamehandler
│ │ ├── EmptyDataCache.java
│ │ ├── LoadingContext.java
│ │ ├── DataContext.java
│ │ ├── ViewContext.java
│ │ └── SettingsContext.java
│ │ ├── connection
│ │ └── ConnectionException.java
│ │ └── session
│ │ ├── cache
│ │ ├── FixedCacheLine.java
│ │ └── BasicCacheLine.java
│ │ ├── data
│ │ ├── CharacterBasicData.java
│ │ └── PwdData.java
│ │ └── Session.java
├── build.gradle
└── kol_base.iml
├── settings.gradle
├── .idea
├── copyright
│ └── profiles_settings.xml
├── encodings.xml
├── vcs.xml
├── modules.xml
├── runConfigurations.xml
├── compiler.xml
├── gradle.xml
└── misc.xml
├── gradle
└── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── .gitignore
├── gradle.properties
├── kolandroid.iml
└── README.md
/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/kol_base/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app', ':kol_base'
2 |
--------------------------------------------------------------------------------
/.idea/copyright/profiles_settings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kasekopf/kolandroid/HEAD/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/hp.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kasekopf/kolandroid/HEAD/app/src/main/res/drawable-mdpi/hp.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/meat.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kasekopf/kolandroid/HEAD/app/src/main/res/drawable-mdpi/meat.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/mp.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kasekopf/kolandroid/HEAD/app/src/main/res/drawable-mdpi/mp.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/musc.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kasekopf/kolandroid/HEAD/app/src/main/res/drawable-mdpi/musc.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/myst.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kasekopf/kolandroid/HEAD/app/src/main/res/drawable-mdpi/myst.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/moxie.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kasekopf/kolandroid/HEAD/app/src/main/res/drawable-mdpi/moxie.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_drawer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kasekopf/kolandroid/HEAD/app/src/main/res/drawable-hdpi/ic_drawer.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_info.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kasekopf/kolandroid/HEAD/app/src/main/res/drawable-hdpi/ic_info.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/hourglass.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kasekopf/kolandroid/HEAD/app/src/main/res/drawable-mdpi/hourglass.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/ic_drawer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kasekopf/kolandroid/HEAD/app/src/main/res/drawable-mdpi/ic_drawer.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/ic_info.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kasekopf/kolandroid/HEAD/app/src/main/res/drawable-mdpi/ic_info.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_info.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kasekopf/kolandroid/HEAD/app/src/main/res/drawable-xhdpi/ic_info.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_info.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kasekopf/kolandroid/HEAD/app/src/main/res/drawable-xxhdpi/ic_info.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kasekopf/kolandroid/HEAD/app/src/main/res/drawable-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kasekopf/kolandroid/HEAD/app/src/main/res/drawable-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_drawer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kasekopf/kolandroid/HEAD/app/src/main/res/drawable-xhdpi/ic_drawer.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_drawer.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kasekopf/kolandroid/HEAD/app/src/main/res/drawable-xxhdpi/ic_drawer.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/ic_info.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kasekopf/kolandroid/HEAD/app/src/main/res/drawable-xxxhdpi/ic_info.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/leftswordguy.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kasekopf/kolandroid/HEAD/app/src/main/res/drawable-mdpi/leftswordguy.gif
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kasekopf/kolandroid/HEAD/app/src/main/res/drawable-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kasekopf/kolandroid/HEAD/app/src/main/res/drawable-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kasekopf/kolandroid/HEAD/app/src/main/res/drawable-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/drawer_shadow.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kasekopf/kolandroid/HEAD/app/src/main/res/drawable-hdpi/drawer_shadow.9.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/drawer_shadow.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kasekopf/kolandroid/HEAD/app/src/main/res/drawable-mdpi/drawer_shadow.9.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/drawer_shadow.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kasekopf/kolandroid/HEAD/app/src/main/res/drawable-xhdpi/drawer_shadow.9.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_map_black_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kasekopf/kolandroid/HEAD/app/src/main/res/drawable-hdpi/ic_map_black_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/ic_map_black_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kasekopf/kolandroid/HEAD/app/src/main/res/drawable-mdpi/ic_map_black_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_map_black_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kasekopf/kolandroid/HEAD/app/src/main/res/drawable-xhdpi/ic_map_black_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/drawer_shadow.9.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kasekopf/kolandroid/HEAD/app/src/main/res/drawable-xxhdpi/drawer_shadow.9.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_map_black_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kasekopf/kolandroid/HEAD/app/src/main/res/drawable-xxhdpi/ic_map_black_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/values/integers.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 1
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/ic_map_black_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kasekopf/kolandroid/HEAD/app/src/main/res/drawable-xxxhdpi/ic_map_black_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_settings_black_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kasekopf/kolandroid/HEAD/app/src/main/res/drawable-hdpi/ic_settings_black_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/ic_settings_black_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kasekopf/kolandroid/HEAD/app/src/main/res/drawable-mdpi/ic_settings_black_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_settings_black_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kasekopf/kolandroid/HEAD/app/src/main/res/drawable-xhdpi/ic_settings_black_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_settings_black_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kasekopf/kolandroid/HEAD/app/src/main/res/drawable-xxhdpi/ic_settings_black_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_info_outline_black_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kasekopf/kolandroid/HEAD/app/src/main/res/drawable-hdpi/ic_info_outline_black_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/ic_info_outline_black_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kasekopf/kolandroid/HEAD/app/src/main/res/drawable-mdpi/ic_info_outline_black_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/ic_settings_black_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kasekopf/kolandroid/HEAD/app/src/main/res/drawable-xxxhdpi/ic_settings_black_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_info_outline_black_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kasekopf/kolandroid/HEAD/app/src/main/res/drawable-xhdpi/ic_info_outline_black_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_info_outline_black_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kasekopf/kolandroid/HEAD/app/src/main/res/drawable-xxhdpi/ic_info_outline_black_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/ic_info_outline_black_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kasekopf/kolandroid/HEAD/app/src/main/res/drawable-xxxhdpi/ic_info_outline_black_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-hdpi/ic_chat_bubble_outline_black_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kasekopf/kolandroid/HEAD/app/src/main/res/drawable-hdpi/ic_chat_bubble_outline_black_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-mdpi/ic_chat_bubble_outline_black_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kasekopf/kolandroid/HEAD/app/src/main/res/drawable-mdpi/ic_chat_bubble_outline_black_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_chat_bubble_outline_black_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kasekopf/kolandroid/HEAD/app/src/main/res/drawable-xhdpi/ic_chat_bubble_outline_black_24dp.png
--------------------------------------------------------------------------------
/.idea/encodings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxhdpi/ic_chat_bubble_outline_black_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kasekopf/kolandroid/HEAD/app/src/main/res/drawable-xxhdpi/ic_chat_bubble_outline_black_24dp.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xxxhdpi/ic_chat_bubble_outline_black_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Kasekopf/kolandroid/HEAD/app/src/main/res/drawable-xxxhdpi/ic_chat_bubble_outline_black_24dp.png
--------------------------------------------------------------------------------
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/item_normal.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/item_pressed.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/app/src/main/res/values/tags.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/kol_base/src/main/java/com/github/kolandroid/kol/data/RawData.java:
--------------------------------------------------------------------------------
1 | package com.github.kolandroid.kol.data;
2 |
3 | public interface RawData {
4 | String getId();
5 |
6 | String output();
7 | }
8 |
--------------------------------------------------------------------------------
/kol_base/src/main/java/com/github/kolandroid/kol/data/DataCache.java:
--------------------------------------------------------------------------------
1 | package com.github.kolandroid.kol.data;
2 |
3 | public interface DataCache {
4 | B find(A input);
5 |
6 | void store(B data);
7 | }
8 |
--------------------------------------------------------------------------------
/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 240dp
6 |
7 |
8 |
--------------------------------------------------------------------------------
/kol_base/src/main/java/com/github/kolandroid/kol/model/elements/interfaces/SubtextElement.java:
--------------------------------------------------------------------------------
1 | package com.github.kolandroid.kol.model.elements.interfaces;
2 |
3 | public interface SubtextElement extends ModelElement {
4 | String getSubtext();
5 | }
6 |
--------------------------------------------------------------------------------
/app/src/main/java/com/github/kolandroid/kol/android/binders/Binder.java:
--------------------------------------------------------------------------------
1 | package com.github.kolandroid.kol.android.binders;
2 |
3 | import android.view.View;
4 |
5 | public interface Binder {
6 | int getView();
7 |
8 | void bind(View view, E model);
9 | }
--------------------------------------------------------------------------------
/app/src/main/java/com/github/kolandroid/kol/android/controller/UpdatableController.java:
--------------------------------------------------------------------------------
1 | package com.github.kolandroid.kol.android.controller;
2 |
3 | public interface UpdatableController extends Controller {
4 | boolean tryApply(Class type, F object);
5 | }
6 |
--------------------------------------------------------------------------------
/app/src/main/java/com/github/kolandroid/kol/android/controller/UpdateController.java:
--------------------------------------------------------------------------------
1 | package com.github.kolandroid.kol.android.controller;
2 |
3 | public interface UpdateController extends Controller {
4 | E getModel();
5 |
6 | Class getUpdateType();
7 | }
8 |
--------------------------------------------------------------------------------
/app/src/main/res/anim/inleftanim.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
--------------------------------------------------------------------------------
/kol_base/src/main/java/com/github/kolandroid/kol/model/elements/interfaces/Multiuseable.java:
--------------------------------------------------------------------------------
1 | package com.github.kolandroid.kol.model.elements.interfaces;
2 |
3 |
4 | public interface Multiuseable extends SubtextElement {
5 | DeferredGameAction use(String quantity);
6 | }
7 |
--------------------------------------------------------------------------------
/app/src/main/res/anim/inrightanim.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
--------------------------------------------------------------------------------
/app/src/main/res/anim/outleftanim.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
--------------------------------------------------------------------------------
/app/src/main/res/anim/outrightanim.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
--------------------------------------------------------------------------------
/app/src/main/java/com/github/kolandroid/kol/android/util/searchlist/SerializableSelector.java:
--------------------------------------------------------------------------------
1 | package com.github.kolandroid.kol.android.util.searchlist;
2 |
3 | import java.io.Serializable;
4 |
5 | public interface SerializableSelector extends ListSelector, Serializable {
6 |
7 | }
8 |
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Wed Dec 10 20:55:22 EST 2014
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 | distributionUrl=https\://services.gradle.org/distributions/gradle-2.2.1-all.zip
7 |
--------------------------------------------------------------------------------
/app/src/main/java/com/github/kolandroid/kol/android/login/ExpiringController.java:
--------------------------------------------------------------------------------
1 | package com.github.kolandroid.kol.android.login;
2 |
3 | import com.github.kolandroid.kol.android.controller.Controller;
4 |
5 | public interface ExpiringController extends Controller {
6 | boolean hasExpired();
7 | }
8 |
--------------------------------------------------------------------------------
/app/src/main/java/com/github/kolandroid/kol/android/util/searchlist/ListSelector.java:
--------------------------------------------------------------------------------
1 | package com.github.kolandroid.kol.android.util.searchlist;
2 |
3 | import com.github.kolandroid.kol.android.screen.Screen;
4 |
5 | public interface ListSelector {
6 | boolean selectItem(Screen host, E item);
7 | }
8 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/blue_border.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
8 |
--------------------------------------------------------------------------------
/kol_base/src/main/java/com/github/kolandroid/kol/model/elements/interfaces/ModelElement.java:
--------------------------------------------------------------------------------
1 | package com.github.kolandroid.kol.model.elements.interfaces;
2 |
3 | import java.io.Serializable;
4 |
5 | public interface ModelElement extends Serializable {
6 | String getText();
7 |
8 | String getImage();
9 | }
10 |
--------------------------------------------------------------------------------
/kol_base/src/main/java/com/github/kolandroid/kol/util/StringUtils.java:
--------------------------------------------------------------------------------
1 | package com.github.kolandroid.kol.util;
2 |
3 | public class StringUtils {
4 | public static String htmlDecode(String str) {
5 | return str.replace("<", "<").replace(">", ">").replace(""", "\"").replace(" ", " ");
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/app/src/main/res/values/attrs_progress_bar.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/item_selector.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/kol_base/src/main/java/com/github/kolandroid/kol/model/models/skill/SkillsSubmodel.java:
--------------------------------------------------------------------------------
1 | package com.github.kolandroid.kol.model.models.skill;
2 |
3 | import com.github.kolandroid.kol.model.GroupModel.ChildModel;
4 |
5 | public interface SkillsSubmodel extends ChildModel {
6 | Result execute(SkillsVisitor visitor);
7 | }
8 |
--------------------------------------------------------------------------------
/app/src/main/java/com/github/kolandroid/kol/android/util/LatchedCallback.java:
--------------------------------------------------------------------------------
1 | package com.github.kolandroid.kol.android.util;
2 |
3 | import com.github.kolandroid.kol.util.Callback;
4 |
5 | public interface LatchedCallback extends Callback {
6 | boolean isClosed();
7 |
8 | void close();
9 |
10 | LatchedCallback weak();
11 | }
12 |
--------------------------------------------------------------------------------
/kol_base/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'java'
2 |
3 | compileJava {
4 | sourceCompatibility=JavaVersion.VERSION_1_7
5 | targetCompatibility=JavaVersion.VERSION_1_7
6 | }
7 |
8 | dependencies {
9 | compile 'com.google.code.gson:gson:2.3'
10 | compile "commons-io:commons-io:2.4"
11 | compile fileTree(dir: 'libs', include: ['*.jar'])
12 | }
--------------------------------------------------------------------------------
/kol_base/src/main/java/com/github/kolandroid/kol/model/models/skill/SkillsVisitor.java:
--------------------------------------------------------------------------------
1 | package com.github.kolandroid.kol.model.models.skill;
2 |
3 | import java.io.Serializable;
4 |
5 | public interface SkillsVisitor extends Serializable {
6 | Result execute(SkillsListModel model);
7 |
8 | Result execute(ItemRestorersModel model);
9 | }
10 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/black_to_blue_onpress_border.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/rounded_square.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
9 |
--------------------------------------------------------------------------------
/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | #004
5 | #eee
6 |
7 | #00f
8 | #080
9 | #888
10 |
--------------------------------------------------------------------------------
/kol_base/src/main/java/com/github/kolandroid/kol/request/SerializableResponseHandler.java:
--------------------------------------------------------------------------------
1 | package com.github.kolandroid.kol.request;
2 |
3 | import java.io.Serializable;
4 |
5 | /**
6 | * A serializable callback used to process server responses to game requests.
7 | */
8 | public interface SerializableResponseHandler extends Serializable, ResponseHandler {
9 | }
10 |
--------------------------------------------------------------------------------
/kol_base/src/main/java/com/github/kolandroid/kol/model/elements/interfaces/DeferredGameAction.java:
--------------------------------------------------------------------------------
1 | package com.github.kolandroid.kol.model.elements.interfaces;
2 |
3 | import com.github.kolandroid.kol.gamehandler.ViewContext;
4 |
5 | import java.io.Serializable;
6 |
7 | public interface DeferredGameAction extends Serializable {
8 | void submit(ViewContext context);
9 | }
10 |
--------------------------------------------------------------------------------
/kol_base/src/main/java/com/github/kolandroid/kol/model/models/chat/raw/RawActionList.java:
--------------------------------------------------------------------------------
1 | package com.github.kolandroid.kol.model.models.chat.raw;
2 |
3 | import java.util.ArrayList;
4 |
5 | public class RawActionList {
6 | public final ArrayList actions;
7 |
8 | public RawActionList(ArrayList actions) {
9 | this.actions = actions;
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/kol_base/src/main/java/com/github/kolandroid/kol/model/models/inventory/pockets/ItemPocketVisitor.java:
--------------------------------------------------------------------------------
1 | package com.github.kolandroid.kol.model.models.inventory.pockets;
2 |
3 | public interface ItemPocketVisitor {
4 | Result display(ItemPocketModel model);
5 |
6 | Result display(EquipmentPocketModel model);
7 |
8 | Result display(HagnkStatusPocketModel model);
9 | }
10 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_chat_view.xml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/activity_login_view.xml:
--------------------------------------------------------------------------------
1 |
8 |
9 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/login_screen.xml:
--------------------------------------------------------------------------------
1 |
10 |
--------------------------------------------------------------------------------
/app/src/main/res/values/attrs_search_list_view.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/black_sides.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/kol_base/src/main/java/com/github/kolandroid/kol/model/elements/interfaces/ModelGroup.java:
--------------------------------------------------------------------------------
1 | package com.github.kolandroid.kol.model.elements.interfaces;
2 |
3 | import java.io.Serializable;
4 |
5 | public interface ModelGroup extends Serializable, Iterable {
6 | int size();
7 |
8 | E get(int index);
9 |
10 | void set(int index, E value);
11 |
12 | void remove(int index);
13 |
14 | String getName();
15 | }
16 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/black_thick_border.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
7 |
12 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/blue_thick_border.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
7 |
12 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/gray_thick_border.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
7 |
12 |
--------------------------------------------------------------------------------
/kol_base/src/main/java/com/github/kolandroid/kol/gamehandler/EmptyDataCache.java:
--------------------------------------------------------------------------------
1 | package com.github.kolandroid.kol.gamehandler;
2 |
3 | import com.github.kolandroid.kol.data.DataCache;
4 |
5 | public class EmptyDataCache implements DataCache {
6 | @Override
7 | public F find(E input) {
8 | return null;
9 | }
10 |
11 | @Override
12 | public void store(F data) {
13 | // Do nothing;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/blue_thick_border_gray_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
7 |
12 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/web_live_view.xml:
--------------------------------------------------------------------------------
1 |
8 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/game_screen.xml:
--------------------------------------------------------------------------------
1 |
2 |
12 |
--------------------------------------------------------------------------------
/kol_base/src/main/java/com/github/kolandroid/kol/util/SerializableCallback.java:
--------------------------------------------------------------------------------
1 | package com.github.kolandroid.kol.util;
2 |
3 | import java.io.Serializable;
4 |
5 | /**
6 | * A simple serializable interface for a callback, since this is Java 1.7 so there are no spiffy lambdas.
7 | *
8 | * @param Type of the value passed to the callback
9 | */
10 | public interface SerializableCallback extends Callback, Serializable {
11 |
12 | }
13 |
--------------------------------------------------------------------------------
/app/src/androidTest/java/com/github/kolandroid/kol/ApplicationTest.java:
--------------------------------------------------------------------------------
1 | package com.github.kolandroid.kol;
2 |
3 | import android.app.Application;
4 | import android.test.ApplicationTestCase;
5 |
6 | /**
7 | * Testing Fundamentals
8 | */
9 | public class ApplicationTest extends ApplicationTestCase {
10 | public ApplicationTest() {
11 | super(Application.class);
12 | }
13 | }
--------------------------------------------------------------------------------
/app/src/main/res/layout/chat_channel_list_view.xml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Built application files
2 | *.apk
3 | *.ap_
4 |
5 | # Files for the Dalvik VM
6 | *.dex
7 |
8 | # Java class files
9 | *.class
10 |
11 | # Generated files
12 | bin/
13 | gen/
14 |
15 | # Gradle files
16 | .gradle/
17 | build/
18 | /*/build/
19 |
20 | # Local configuration file (sdk path, etc)
21 | local.properties
22 |
23 | # Proguard folder generated by Eclipse
24 | proguard/
25 |
26 | # Log Files
27 | *.log
28 |
29 | # Android Studio
30 | .idea/workspace.xml
31 | .idea/libraries/
32 | .idea/gradle.xml
--------------------------------------------------------------------------------
/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/kol_base/src/main/java/com/github/kolandroid/kol/util/Callback.java:
--------------------------------------------------------------------------------
1 | package com.github.kolandroid.kol.util;
2 |
3 | /**
4 | * A simple interface for a callback, since this is Java 1.7 so there are no spiffy lambdas.
5 | *
6 | * @param Type of the value passed to the callback
7 | */
8 | public interface Callback {
9 | /**
10 | * Execute the callback with the provided arguments.
11 | *
12 | * @param item Arguments to the callback.
13 | */
14 | void execute(Args item);
15 | }
16 |
--------------------------------------------------------------------------------
/kol_base/src/main/java/com/github/kolandroid/kol/model/models/login/ConnectionFailed.java:
--------------------------------------------------------------------------------
1 | package com.github.kolandroid.kol.model.models.login;
2 |
3 | public enum ConnectionFailed {
4 | NO_ACCESS("Unable to access KoL servers."),
5 | STRANGE_ACCESS("Unknown page received from login url.");
6 |
7 | private final String message;
8 |
9 | ConnectionFailed(String message) {
10 | this.message = message;
11 | }
12 |
13 | public String getReason() {
14 | return message;
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/app/src/main/java/com/github/kolandroid/kol/android/screen/Screen.java:
--------------------------------------------------------------------------------
1 | package com.github.kolandroid.kol.android.screen;
2 |
3 | import android.app.Activity;
4 | import android.app.FragmentManager;
5 |
6 | import com.github.kolandroid.kol.android.view.AndroidViewContext;
7 |
8 | public interface Screen {
9 | FragmentManager getFragmentManager();
10 |
11 | FragmentManager getChildFragmentManager();
12 |
13 | Activity getActivity();
14 |
15 | AndroidViewContext getViewContext();
16 |
17 | void close();
18 | }
19 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/web_view.xml:
--------------------------------------------------------------------------------
1 |
6 |
7 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/web_dialog_view.xml:
--------------------------------------------------------------------------------
1 |
6 |
7 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/navigation_view.xml:
--------------------------------------------------------------------------------
1 |
11 |
12 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/text_debug_view.xml:
--------------------------------------------------------------------------------
1 |
6 |
7 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/kol_base/src/main/java/com/github/kolandroid/kol/connection/ConnectionException.java:
--------------------------------------------------------------------------------
1 | package com.github.kolandroid.kol.connection;
2 |
3 | import java.io.IOException;
4 |
5 | public class ConnectionException extends IOException {
6 | private static final long serialVersionUID = 1592480171367152698L;
7 |
8 | private final Exception base;
9 |
10 | public ConnectionException(Exception base) {
11 | this.base = base;
12 | }
13 |
14 | @Override
15 | public String toString() {
16 | return base.toString();
17 | }
18 | }
--------------------------------------------------------------------------------
/kol_base/src/main/java/com/github/kolandroid/kol/model/models/inventory/pockets/ItemPocket.java:
--------------------------------------------------------------------------------
1 | package com.github.kolandroid.kol.model.models.inventory.pockets;
2 |
3 | import com.github.kolandroid.kol.connection.ServerReply;
4 | import com.github.kolandroid.kol.model.GroupModel;
5 |
6 | public interface ItemPocket extends GroupModel.ChildModel {
7 | void process(ServerReply reply);
8 |
9 | boolean apply(String itemId, int amountDifference);
10 |
11 | void refreshIfLoaded();
12 |
13 | Result execute(ItemPocketVisitor visitor);
14 | }
15 |
--------------------------------------------------------------------------------
/app/src/main/java/com/github/kolandroid/kol/android/game/UpdateSidebarHandler.java:
--------------------------------------------------------------------------------
1 | package com.github.kolandroid.kol.android.game;
2 |
3 | import com.github.kolandroid.kol.android.util.HandlerCallback;
4 |
5 | public class UpdateSidebarHandler extends HandlerCallback {
6 | private final SidebarController controller;
7 |
8 | public UpdateSidebarHandler(SidebarController controller) {
9 | this.controller = controller;
10 | }
11 |
12 | @Override
13 | protected void receiveProgress(Void message) {
14 | controller.refresh();
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/app/src/main/res/menu/chat_screen.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
--------------------------------------------------------------------------------
/app/src/main/java/com/github/kolandroid/kol/android/controllers/inventory/HagnkController.java:
--------------------------------------------------------------------------------
1 | package com.github.kolandroid.kol.android.controllers.inventory;
2 |
3 | import com.github.kolandroid.kol.android.R;
4 | import com.github.kolandroid.kol.model.models.inventory.HagnkModel;
5 |
6 | public class HagnkController extends ItemStorageController {
7 | public HagnkController(HagnkModel model) {
8 | super(model, R.color.hagnk_header);
9 | }
10 |
11 | @Override
12 | public Class getUpdateType() {
13 | return HagnkModel.class;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/chat_channel_view.xml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
13 |
14 |
--------------------------------------------------------------------------------
/.idea/runConfigurations.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
11 |
12 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/inventory_pocket_view.xml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
12 |
--------------------------------------------------------------------------------
/kol_base/src/main/java/com/github/kolandroid/kol/session/cache/FixedCacheLine.java:
--------------------------------------------------------------------------------
1 | package com.github.kolandroid.kol.session.cache;
2 |
3 | import java.io.Serializable;
4 |
5 | /**
6 | * A single cache line which holds a single item.
7 | * This item cannot possibly change over the course of the session once it is computed
8 | * successfully, and so ignores further dirty marks.
9 | *
10 | * @param The type of the item inside the cache.
11 | */
12 | public abstract class FixedCacheLine extends CacheLine {
13 | @Override
14 | void markDirty() {
15 | // Do nothing
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/app/src/main/java/com/github/kolandroid/kol/android/controllers/inventory/InventoryController.java:
--------------------------------------------------------------------------------
1 | package com.github.kolandroid.kol.android.controllers.inventory;
2 |
3 | import com.github.kolandroid.kol.android.R;
4 | import com.github.kolandroid.kol.model.models.inventory.InventoryModel;
5 |
6 | public class InventoryController extends ItemStorageController {
7 | public InventoryController(InventoryModel model) {
8 | super(model, R.color.inventory_header);
9 | }
10 |
11 | @Override
12 | public Class getUpdateType() {
13 | return InventoryModel.class;
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/chat_message_view.xml:
--------------------------------------------------------------------------------
1 |
2 |
14 |
--------------------------------------------------------------------------------
/app/src/main/java/com/github/kolandroid/kol/android/screen/ScreenSelection.java:
--------------------------------------------------------------------------------
1 | package com.github.kolandroid.kol.android.screen;
2 |
3 | import com.github.kolandroid.kol.android.controller.Controller;
4 | import com.github.kolandroid.kol.android.controller.UpdateController;
5 |
6 | public interface ScreenSelection {
7 | void displayExternal(Controller c);
8 |
9 | void displayExternalDialog(Controller c, boolean cancellable);
10 |
11 | void displayPrimary(Controller c);
12 |
13 | void displayPrimaryUpdate(UpdateController c, boolean displayIfUnable);
14 |
15 | void displayDialog(Controller c);
16 |
17 | void displayChat(Controller c);
18 | }
19 |
--------------------------------------------------------------------------------
/app/src/main/java/com/github/kolandroid/kol/android/util/searchlist/ActionSelector.java:
--------------------------------------------------------------------------------
1 | package com.github.kolandroid.kol.android.util.searchlist;
2 |
3 | import com.github.kolandroid.kol.android.screen.Screen;
4 | import com.github.kolandroid.kol.model.elements.ActionElement;
5 |
6 | import java.io.Serializable;
7 |
8 | public class ActionSelector implements ListSelector, Serializable {
9 | /**
10 | * Autogenerated by eclipse.
11 | */
12 | private static final long serialVersionUID = 3463753434332L;
13 |
14 | @Override
15 | public boolean selectItem(Screen list, E item) {
16 | item.submit(list.getViewContext());
17 | return true;
18 | }
19 | }
--------------------------------------------------------------------------------
/kol_base/src/main/java/com/github/kolandroid/kol/model/models/chat/stubs/ChannelStubModel.java:
--------------------------------------------------------------------------------
1 | package com.github.kolandroid.kol.model.models.chat.stubs;
2 |
3 | import com.github.kolandroid.kol.model.models.chat.ChatModel;
4 | import com.github.kolandroid.kol.util.Callback;
5 |
6 | public class ChannelStubModel extends ChatStubModel {
7 | private final String channel;
8 | private transient Callback partialChatCallback;
9 |
10 | public ChannelStubModel(ChatModel base, String channel) {
11 | super(base);
12 | this.channel = channel;
13 | }
14 |
15 | @Override
16 | public void triggerFill() {
17 | submitCommand(new ChatModelCommand.RequestChannelDuplication(channel));
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/app/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # By default, the flags in this file are appended to flags specified
3 | # in C:\Users\Jeffrey\AppData\Local\Android\sdk/tools/proguard/proguard-android.txt
4 | # You can edit the include path and order by changing the proguardFiles
5 | # directive in build.gradle.
6 | #
7 | # For more details, see
8 | # http://developer.android.com/guide/developing/tools/proguard.html
9 |
10 | # Add any project specific keep options here:
11 |
12 | # If your project uses WebView with JS, uncomment the following
13 | # and specify the fully qualified class name to the JavaScript interface
14 | # class:
15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
16 | # public *;
17 | #}
18 |
--------------------------------------------------------------------------------
/app/src/main/res/values/dialogstyle.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
7 |
8 |
12 |
13 |
18 |
--------------------------------------------------------------------------------
/kol_base/src/main/java/com/github/kolandroid/kol/session/data/CharacterBasicData.java:
--------------------------------------------------------------------------------
1 | package com.github.kolandroid.kol.session.data;
2 |
3 | import java.io.Serializable;
4 |
5 | public interface CharacterBasicData extends Serializable {
6 | String getPwdHash();
7 |
8 | int getCurrentHP();
9 |
10 | int getCurrentMP();
11 |
12 | int getMaxHP();
13 |
14 | int getMaxMP();
15 |
16 | int getMeat();
17 |
18 | int getAdventures();
19 |
20 | int getBaseMuscle();
21 |
22 | int getBuffedMuscle();
23 |
24 | int getBaseMyst();
25 |
26 | int getBuffedMyst();
27 |
28 | int getBaseMoxie();
29 |
30 | int getBuffedMoxie();
31 |
32 | String getName();
33 |
34 | String getTitle();
35 |
36 | String getAvatar();
37 | }
38 |
--------------------------------------------------------------------------------
/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/app/src/main/java/com/github/kolandroid/kol/android/util/BasicLatchedCallback.java:
--------------------------------------------------------------------------------
1 | package com.github.kolandroid.kol.android.util;
2 |
3 | public abstract class BasicLatchedCallback implements LatchedCallback {
4 | private boolean closed = false;
5 |
6 | @Override
7 | public boolean isClosed() {
8 | return closed;
9 | }
10 |
11 | @Override
12 | public void close() {
13 | closed = true;
14 | }
15 |
16 | @Override
17 | public final void execute(E item) {
18 | if (!closed) {
19 | receiveProgress(item);
20 | }
21 | }
22 |
23 | protected abstract void receiveProgress(E message);
24 |
25 | @Override
26 | public LatchedCallback weak() {
27 | return new WeakLatchedCallback<>(this);
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/kol_base/src/main/java/com/github/kolandroid/kol/model/models/inventory/pockets/HagnkPocketModel.java:
--------------------------------------------------------------------------------
1 | package com.github.kolandroid.kol.model.models.inventory.pockets;
2 |
3 | import com.github.kolandroid.kol.connection.ServerReply;
4 | import com.github.kolandroid.kol.session.Session;
5 |
6 | public class HagnkPocketModel extends ItemPocketModel {
7 | public HagnkPocketModel(String name, Session s, String updateUrl) {
8 | super(name, s, updateUrl);
9 | }
10 |
11 | @Override
12 | protected void loadContent(ServerReply reply) {
13 | String html = reply.html;
14 | html = html.replace("[one]", "[take]");
15 | html = html.replace("[some]", "[take some]");
16 | html = html.replace("[all]", "[take all]");
17 | super.loadContent(new ServerReply(reply, html));
18 | }
19 | }
20 |
--------------------------------------------------------------------------------
/.idea/gradle.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/kol_base/src/main/java/com/github/kolandroid/kol/request/ResponseHandler.java:
--------------------------------------------------------------------------------
1 | package com.github.kolandroid.kol.request;
2 |
3 | import com.github.kolandroid.kol.connection.ServerReply;
4 | import com.github.kolandroid.kol.session.Session;
5 |
6 | /**
7 | * A callback used to process server responses to game requests.
8 | */
9 | public interface ResponseHandler {
10 | ResponseHandler NONE = new ResponseHandler() {
11 | @Override
12 | public void handle(Session session, ServerReply response) {
13 |
14 | }
15 | };
16 |
17 | /**
18 | * Process a new reply from the server.
19 | *
20 | * @param session The session used when making the request.
21 | * @param response The response received from the server.
22 | */
23 | void handle(Session session, ServerReply response);
24 | }
25 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/sidebar_view.xml:
--------------------------------------------------------------------------------
1 |
8 |
9 |
13 |
14 |
18 |
--------------------------------------------------------------------------------
/app/src/main/res/values/themes.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
15 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/choice_view.xml:
--------------------------------------------------------------------------------
1 |
8 |
9 |
10 |
15 |
16 |
21 |
22 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/search_list_view.xml:
--------------------------------------------------------------------------------
1 |
8 |
9 |
16 |
17 |
21 |
22 |
--------------------------------------------------------------------------------
/gradle.properties:
--------------------------------------------------------------------------------
1 | # Project-wide Gradle settings.
2 |
3 | # IDE (e.g. Android Studio) users:
4 | # Gradle settings configured through the IDE *will override*
5 | # any settings specified in this file.
6 |
7 | # For more details on how to configure your build environment visit
8 | # http://www.gradle.org/docs/current/userguide/build_environment.html
9 |
10 | # Specifies the JVM arguments used for the daemon process.
11 | # The setting is particularly useful for tweaking memory settings.
12 | # Default value: -Xmx10248m -XX:MaxPermSize=256m
13 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
14 |
15 | # When configured, Gradle will run in incubating parallel mode.
16 | # This option should only be used with decoupled projects. More details, visit
17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
18 | # org.gradle.parallel=true
--------------------------------------------------------------------------------
/app/src/main/res/layout/generic_header_view.xml:
--------------------------------------------------------------------------------
1 |
2 |
12 |
13 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/chat_submission_view.xml:
--------------------------------------------------------------------------------
1 |
8 |
9 |
16 |
17 |
22 |
23 |
--------------------------------------------------------------------------------
/kol_base/src/main/java/com/github/kolandroid/kol/gamehandler/LoadingContext.java:
--------------------------------------------------------------------------------
1 | package com.github.kolandroid.kol.gamehandler;
2 |
3 | /**
4 | * An interface back to a progress bar.
5 | */
6 | public interface LoadingContext {
7 | LoadingContext NONE = new LoadingContext() {
8 | @Override
9 | public void start(String page) {
10 | // do nothing
11 | }
12 |
13 | @Override
14 | public void complete(String page) {
15 | // do nothing
16 | }
17 |
18 | @Override
19 | public void progress(int percent) {
20 | // do nothing
21 | }
22 |
23 | @Override
24 | public void error(String page) {
25 | // do nothing
26 | }
27 | };
28 |
29 | void start(String page);
30 |
31 | void complete(String page);
32 |
33 | void progress(int percent);
34 |
35 | void error(String page);
36 | }
37 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/save_outfit_view.xml:
--------------------------------------------------------------------------------
1 |
8 |
9 |
17 |
18 |
23 |
--------------------------------------------------------------------------------
/app/src/main/java/com/github/kolandroid/kol/android/binders/ColoredGroupBinder.java:
--------------------------------------------------------------------------------
1 | package com.github.kolandroid.kol.android.binders;
2 |
3 | import android.view.View;
4 |
5 | import com.github.kolandroid.kol.android.R;
6 | import com.github.kolandroid.kol.model.elements.interfaces.ModelGroup;
7 |
8 | public class ColoredGroupBinder extends DefaultGroupBinder {
9 | /**
10 | * Autogenerated by eclipse.
11 | */
12 | private static final long serialVersionUID = -3546375353421L;
13 |
14 | private final int backColor;
15 |
16 | public ColoredGroupBinder(int backColor) {
17 | this.backColor = backColor;
18 | }
19 |
20 | @Override
21 | public void bind(View view, ModelGroup> model) {
22 | super.bind(view, model);
23 |
24 | View v = view.findViewById(R.id.list_header_background);
25 | //noinspection deprecation
26 | v.setBackgroundColor(view.getResources().getColor(backColor));
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/kol_base/src/main/java/com/github/kolandroid/kol/model/ReportableMessageModel.java:
--------------------------------------------------------------------------------
1 | package com.github.kolandroid.kol.model;
2 |
3 | import com.github.kolandroid.kol.model.models.MessageModel;
4 | import com.github.kolandroid.kol.session.Session;
5 |
6 | public class ReportableMessageModel extends MessageModel {
7 | private final String errorLog;
8 |
9 | public ReportableMessageModel(Session s, String title, String message, String actionText, String action, ErrorType error, String errorLog) {
10 | super(s, title, message, actionText, action, error);
11 |
12 | this.errorLog = errorLog;
13 | }
14 |
15 |
16 | public String generateReportTitle() {
17 | return "KoL Android Possible Error";
18 | }
19 |
20 | public String generateReportAddress() {
21 | return "kingdomofloathingandroid@gmail.com";
22 | }
23 |
24 | public String generateReport() {
25 | return this.errorLog;
26 | }
27 |
28 |
29 | }
30 |
--------------------------------------------------------------------------------
/kol_base/src/main/java/com/github/kolandroid/kol/model/elements/basic/BasicSubtextElement.java:
--------------------------------------------------------------------------------
1 | package com.github.kolandroid.kol.model.elements.basic;
2 |
3 | import com.github.kolandroid.kol.model.elements.interfaces.SubtextElement;
4 |
5 | public class BasicSubtextElement extends BasicElement implements SubtextElement {
6 | /**
7 | * Autogenerated by eclipse.
8 | */
9 | private static final long serialVersionUID = 4028114518332065225L;
10 |
11 | private final String subtext;
12 |
13 | public BasicSubtextElement(String text) {
14 | this(text, "");
15 | }
16 |
17 | public BasicSubtextElement(String text, String img) {
18 | this(text, img, "");
19 | }
20 |
21 | public BasicSubtextElement(String text, String img, String subtext) {
22 | super(text, img);
23 | this.subtext = subtext;
24 | }
25 |
26 | @Override
27 | public String getSubtext() {
28 | return this.subtext;
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/group_search_list_view.xml:
--------------------------------------------------------------------------------
1 |
8 |
9 |
16 |
17 |
18 |
19 |
24 |
25 |
--------------------------------------------------------------------------------
/kol_base/src/main/java/com/github/kolandroid/kol/model/models/chat/raw/RawAction.java:
--------------------------------------------------------------------------------
1 | package com.github.kolandroid.kol.model.models.chat.raw;
2 |
3 | import com.google.gson.annotations.SerializedName;
4 |
5 | import java.io.Serializable;
6 |
7 | @SuppressWarnings("CanBeFinal")
8 | public class RawAction implements Serializable {
9 | public static final RawAction SHOW_PROFILE = new RawAction("Show Profile", "showplayer.php", "who", 1);
10 |
11 | public String title;
12 | public int action;
13 | public String arg;
14 | public String entry; // key of action
15 |
16 | @SerializedName("useid")
17 | public boolean useId;
18 | public boolean submit;
19 |
20 | private RawAction(String title, String entry, String arg, int action) {
21 | this.title = title;
22 | this.entry = entry;
23 | this.arg = arg;
24 | this.action = action;
25 | }
26 |
27 | protected void setEntry(String key) {
28 | this.entry = key;
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/kolandroid.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/kol_base/src/main/java/com/github/kolandroid/kol/model/elements/basic/BasicElement.java:
--------------------------------------------------------------------------------
1 | package com.github.kolandroid.kol.model.elements.basic;
2 |
3 | import com.github.kolandroid.kol.model.elements.interfaces.ModelElement;
4 |
5 | public class BasicElement implements ModelElement {
6 | /**
7 | * Autogenerated by eclipse.
8 | */
9 | private static final long serialVersionUID = 8834750738130793384L;
10 |
11 | private final String text;
12 | private final String img;
13 |
14 | public BasicElement(String text) {
15 | this(text, "");
16 | }
17 |
18 | public BasicElement(String text, String img) {
19 | this.text = text;
20 | this.img = img;
21 | }
22 |
23 | @Override
24 | public String getText() {
25 | return this.text;
26 | }
27 |
28 | @Override
29 | public String getImage() {
30 | return this.img;
31 | }
32 |
33 | @Override
34 | public String toString() {
35 | return this.text;
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/text_input_view.xml:
--------------------------------------------------------------------------------
1 |
8 |
9 |
19 |
20 |
25 |
26 |
--------------------------------------------------------------------------------
/kol_base/src/main/java/com/github/kolandroid/kol/model/models/chat/stubs/ChatCommandSpawnerStubModel.java:
--------------------------------------------------------------------------------
1 | package com.github.kolandroid.kol.model.models.chat.stubs;
2 |
3 | import com.github.kolandroid.kol.connection.ServerReply;
4 | import com.github.kolandroid.kol.model.models.chat.ChatModel;
5 | import com.github.kolandroid.kol.session.Session;
6 | import com.github.kolandroid.kol.util.Callback;
7 |
8 | public class ChatCommandSpawnerStubModel extends ChatStubModel {
9 | private transient Callback partialChatCallback;
10 |
11 | public ChatCommandSpawnerStubModel(ChatModel base) {
12 | super(base);
13 | }
14 |
15 | public void setPartialChatCallback(Callback callback) {
16 | this.partialChatCallback = callback;
17 | }
18 |
19 | @Override
20 | protected void finishChatCommand(Session session, ServerReply reply) {
21 | this.getGameHandler().handle(session, reply);
22 | }
23 |
24 | @Override
25 | public void triggerFill() {
26 | // do nothing
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | KoL
5 | Settings
6 | GameScreen
7 | Open navigation drawer
8 | Close navigation drawer
9 | Chat
10 |
11 | KoL Android crash detected
12 | Important: Any information you submit will be sent to the app developer, Kasekopf.
13 | An unexpected error recently occurred in the application. Please help us improve by emailing us error data!
14 | Please add any additional comments; perhaps a description of what you were doing or any related KoL settings.
15 |
16 |
--------------------------------------------------------------------------------
/kol_base/src/main/java/com/github/kolandroid/kol/model/models/inventory/InventoryModel.java:
--------------------------------------------------------------------------------
1 | package com.github.kolandroid.kol.model.models.inventory;
2 |
3 | import com.github.kolandroid.kol.connection.ServerReply;
4 | import com.github.kolandroid.kol.model.models.inventory.pockets.EquipmentPocketModel;
5 | import com.github.kolandroid.kol.model.models.inventory.pockets.ItemPocket;
6 | import com.github.kolandroid.kol.session.Session;
7 |
8 | public class InventoryModel extends ItemStorageModel {
9 | /**
10 | * Autogenerated by eclipse.
11 | */
12 | private static final long serialVersionUID = 634354430160L;
13 |
14 | public InventoryModel(Session s, ServerReply text) {
15 | super(s, text, "inventory.php");
16 | }
17 |
18 | @Override
19 | protected ItemPocket constructPocket(String name, Session s, String url) {
20 | if (name.equalsIgnoreCase("equip"))
21 | return new EquipmentPocketModel(name, s, url);
22 | else
23 | return super.constructPocket(name, s, url);
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/kol_base/src/main/java/com/github/kolandroid/kol/model/models/inventory/pockets/ClosetPocketModel.java:
--------------------------------------------------------------------------------
1 | package com.github.kolandroid.kol.model.models.inventory.pockets;
2 |
3 | import com.github.kolandroid.kol.connection.ServerReply;
4 | import com.github.kolandroid.kol.session.Session;
5 |
6 | public class ClosetPocketModel extends ItemPocketModel {
7 | public ClosetPocketModel(String name, Session s, String updateUrl) {
8 | super(name, s, updateUrl);
9 | }
10 |
11 | @Override
12 | protected void loadContent(ServerReply reply) {
13 | String message;
14 | if (reply.url.contains("fillcloset.php")) {
15 | message = "Store";
16 | } else {
17 | message = "Take";
18 | }
19 |
20 | String html = reply.html;
21 | html = html.replace("[one]", "[" + message + "]");
22 | html = html.replace("[some]", "[" + message + " some]");
23 | html = html.replace("[all]", "[" + message + " all]");
24 | super.loadContent(new ServerReply(reply, html));
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/app/src/main/java/com/github/kolandroid/kol/android/binders/ChatBinder.java:
--------------------------------------------------------------------------------
1 | package com.github.kolandroid.kol.android.binders;
2 |
3 | import android.text.Html;
4 | import android.view.View;
5 | import android.widget.TextView;
6 |
7 | import com.github.kolandroid.kol.android.R;
8 | import com.github.kolandroid.kol.model.models.chat.ChatText;
9 |
10 | import java.io.Serializable;
11 |
12 | public class ChatBinder implements Binder, Serializable {
13 | public static final ChatBinder ONLY = new ChatBinder();
14 | /**
15 | * Autogenerated by eclipse.
16 | */
17 | private static final long serialVersionUID = 3303232279575856149L;
18 |
19 | private ChatBinder() {
20 |
21 | }
22 |
23 | @Override
24 | public int getView() {
25 | return R.layout.chat_message_view;
26 | }
27 |
28 | @Override
29 | public void bind(View view, ChatText model) {
30 | TextView text = (TextView) view.findViewById(R.id.chat_message_text);
31 | text.setText(Html.fromHtml(model.getText()));
32 | }
33 |
34 | }
35 |
--------------------------------------------------------------------------------
/app/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.application'
2 |
3 | android {
4 | compileSdkVersion 23
5 | buildToolsVersion "23.0.1"
6 |
7 | defaultConfig {
8 | applicationId "com.github.kolandroid.kol"
9 | minSdkVersion 15
10 | targetSdkVersion 23
11 | versionCode 19
12 | versionName "1.2.2"
13 | }
14 | buildTypes {
15 | release {
16 | minifyEnabled false
17 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
18 | }
19 | }
20 | compileOptions {
21 | sourceCompatibility JavaVersion.VERSION_1_7
22 | targetCompatibility JavaVersion.VERSION_1_7
23 | }
24 | packagingOptions {
25 | exclude 'META-INF/LICENSE.txt'
26 | exclude 'META-INF/NOTICE.txt'
27 | }
28 | }
29 |
30 | dependencies {
31 | compile fileTree(include: ['*.jar'], dir: 'libs')
32 | compile 'com.android.support:appcompat-v7:23.0.1'
33 | compile 'com.android.support:gridlayout-v7:23.0.1'
34 | compile project(':kol_base')
35 | }
36 |
--------------------------------------------------------------------------------
/kol_base/src/main/java/com/github/kolandroid/kol/model/models/chat/ChatLink.java:
--------------------------------------------------------------------------------
1 | package com.github.kolandroid.kol.model.models.chat;
2 |
3 | import com.github.kolandroid.kol.request.Request;
4 | import com.github.kolandroid.kol.session.Session;
5 | import com.github.kolandroid.kol.util.Callback;
6 |
7 | public class ChatLink extends ChatAction {
8 | private final String url;
9 |
10 | protected ChatLink(Session s, String url) {
11 | super(s, "Go to " + (url.contains("http://") ? url : "https://www.kingdomofloathing.com/" + url));
12 |
13 | this.url = ((url.contains("http://") || url.contains("https://")) ? url : "https://www.kingdomofloathing.com/" + url);
14 | }
15 |
16 | @Override
17 | public void submit(ChatText baseMessage, ChatModel context, Callback submitExternalUrl) {
18 | if (url.contains("https://www.kingdomofloathing.com") || url.contains("http://www.kingdomofloathing.com")) {
19 | this.makeRequest(new Request(url));
20 | } else {
21 | submitExternalUrl.execute(url);
22 | }
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/kol_base/src/main/java/com/github/kolandroid/kol/model/models/inventory/pockets/HagnkStatusPocketModel.java:
--------------------------------------------------------------------------------
1 | package com.github.kolandroid.kol.model.models.inventory.pockets;
2 |
3 | import com.github.kolandroid.kol.model.models.LiveWebModel;
4 | import com.github.kolandroid.kol.session.Session;
5 | import com.github.kolandroid.kol.util.Regex;
6 |
7 | public class HagnkStatusPocketModel extends LiveWebModel implements ItemPocket {
8 | private static final Regex HEADER_TABS = new Regex("\\[.*?\\]");
9 |
10 | public HagnkStatusPocketModel(String name, Session s, String updateUrl) {
11 | super(s, "Hagnk", updateUrl);
12 | }
13 |
14 | @Override
15 | public boolean apply(String itemId, int amountDifference) {
16 | return false;
17 | }
18 |
19 | @Override
20 | public Result execute(ItemPocketVisitor visitor) {
21 | return visitor.display(this);
22 | }
23 |
24 | @Override
25 | public String correctHtml(String html) {
26 | return HEADER_TABS.replaceAll(html, "");
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/kol_base/src/main/java/com/github/kolandroid/kol/model/models/inventory/HagnkModel.java:
--------------------------------------------------------------------------------
1 | package com.github.kolandroid.kol.model.models.inventory;
2 |
3 | import com.github.kolandroid.kol.connection.ServerReply;
4 | import com.github.kolandroid.kol.model.models.inventory.pockets.HagnkPocketModel;
5 | import com.github.kolandroid.kol.model.models.inventory.pockets.HagnkStatusPocketModel;
6 | import com.github.kolandroid.kol.model.models.inventory.pockets.ItemPocket;
7 | import com.github.kolandroid.kol.session.Session;
8 |
9 | public class HagnkModel extends ItemStorageModel {
10 | /**
11 | * Autogenerated by eclipse.
12 | */
13 | private static final long serialVersionUID = 634354430160L;
14 |
15 | public HagnkModel(Session s, ServerReply text) {
16 | super(s, text, "storage.php");
17 | }
18 |
19 | @Override
20 | protected ItemPocket constructPocket(String name, Session s, String url) {
21 | if (name.equalsIgnoreCase("hagnk"))
22 | return new HagnkStatusPocketModel(name, s, url);
23 | else
24 | return new HagnkPocketModel(name, s, url);
25 | }
26 |
27 | }
28 |
--------------------------------------------------------------------------------
/app/src/main/java/com/github/kolandroid/kol/android/util/WeakLatchedCallback.java:
--------------------------------------------------------------------------------
1 | package com.github.kolandroid.kol.android.util;
2 |
3 | import java.lang.ref.WeakReference;
4 |
5 | public class WeakLatchedCallback implements LatchedCallback {
6 | public final WeakReference> callbackRef;
7 |
8 | public WeakLatchedCallback(LatchedCallback callback) {
9 | this.callbackRef = new WeakReference<>(callback);
10 | }
11 |
12 | @Override
13 | public boolean isClosed() {
14 | LatchedCallback callback = callbackRef.get();
15 | return (callback == null) || callback.isClosed();
16 | }
17 |
18 | @Override
19 | public void close() {
20 | LatchedCallback callback = callbackRef.get();
21 | if (callback != null) callback.close();
22 | }
23 |
24 | @Override
25 | public LatchedCallback weak() {
26 | return this;
27 | }
28 |
29 | @Override
30 | public void execute(E item) {
31 | LatchedCallback callback = callbackRef.get();
32 | if (callback != null)
33 | callback.execute(item);
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/app/src/main/java/com/github/kolandroid/kol/android/binders/TextBinder.java:
--------------------------------------------------------------------------------
1 | package com.github.kolandroid.kol.android.binders;
2 |
3 | import android.text.Html;
4 | import android.view.View;
5 | import android.widget.ImageView;
6 | import android.widget.TextView;
7 |
8 | import com.github.kolandroid.kol.android.R;
9 |
10 | import java.io.Serializable;
11 |
12 | public class TextBinder implements Binder