A multi-column social network client.
- Multiple accounts.
- Timelines, mentions, lists and searches can all be columns.
- Adaptive layout: tablets show multiple columns at once.
- De-duplicate: filter the items in one column out of another.
- Read Later column: any tweet can be saved locally for reading later.
- Background feed fetching and caching.
- Inline image previews (currently only for twimg.com but others on the TODO list).
- Twitter columns are supported directly (bring your own API key).
- Twitter and Facebook columns via SuccessWhale.
- Posting to Buffer.
Currently there are no 'official' releases of Onosendai. Recent snapshot builds can be downloaded from http://karasu.vaguehope.com/onosendai.
Advanced configuration (not using the UI) is available.
This is via the deck.conf
file that lives in the root of the external storage device, typically /sdcard/deck.conf
.
If this file does not exist a template can be created by the welcome screen for you to edit.
Note: This is to show what possible. It is not necessarily a good example of what you should put in your config. Just saying.
Account IDs and Feed IDs: These are used to separate data in the DB. The are arbitrary and do not have to be in order. If you remove an account or column it may be best not to reuse the ID as strange things may happen.
SuccessWhale feeds: Refer to SuccessWhale docs for the format of the 'resource' field.
{
"accounts": [
{
"id": "t0",
"provider": "twitter",
"consumerKey": "?ckey?",
"consumerSecret": "?csecret?",
"accessToken": "?atoken?",
"accessSecret": "?asecret?"
}, {
"id": "sw0",
"provider": "successwhale",
"username": "?username?",
"password": "?password?"
}, {
"id": "b0",
"provider": "buffer",
"accessToken": "?accesstoken?"
}
],
"feeds": [
{
"id": 0,
"title": "My World",
"account": "t0",
"resource": "timeline",
"refresh": "30min",
"exclude": [1,4]
}, {
"id": 2,
"title": "About Me",
"account": "t0",
"resource": "mentions",
"refresh": "15min",
"notify": true
}, {
"id": 1,
"title": "My Tweets",
"account": "t0",
"resource": "me",
"refresh": "1hour"
}, {
"id": 4,
"title": "My List",
"account": "t0",
"resource": "lists/mylist",
"refresh": "15min",
"notify": true
}, {
"id": 10,
"title": "My Search for #tag",
"account": "t0",
"resource": "search/#tag",
"refresh": "120min"
}, {
"id": 7,
"title": "Read Later",
"resource": "later"
}, {
"id": 8,
"title": "Mentions and Me",
"account": "sw0",
"resource": "twitter/12345678/statuses/mentions:twitter/12345678/statuses/user_timeline",
"refresh": "15min",
"notify": true
}, {
"id": 9,
"title": "Facebook Home",
"account": "sw0",
"resource": "facebook/123456789/me/home",
"refresh": "30min"
}
]
}
The background refresh service will check approximately every 15 minutes for columns that need refreshing.
Keep this in mind when choosing refresh times. The following are examples of valid values:
15min
, 30mins
, 1hour
, 3hours
, 2hour30mins
.
This source code is made available under the Apache 2 licence. This copy of the source code should also contain LICENCE and NOTICE files which contain the full licence terms copyright notices respectfully. The full licence can also be found here: http://www.apache.org/licenses/LICENSE-2.0
This code is build using Maven. You must first install maven-android-sdk-deployer.
mvn clean install android:deploy android:run
The apk can be made smaller using ProGuard. This project is configured to only shrink the output, not obfuscate. Use this to make a release build.
mvn clean install -P release
Run these commands on the device either via a local shell (e.g. Connect Bot) or adb shell
.
Capture last 1000 lines of log at INFO level to a file with:
logcat -b main -t 1000 -f /sdcard/log.txt *:I
Enable debug level logging for Onosendai with:
setprop log.tag.onosendai DEBUG
Some of the icons use Kanji characters. They are intended to be visually distinct and not to convey any specific meaning. Apologies for any nonsense or unintended meaning.