Tweet Lanes for Android

Overview

Tweet Lanes

Tweet Lanes is a fully functional Twitter client, targeted at Android devices running API 14 and above.

Tweet Lanes

Tweet Lanes on the Google Play Store

This project contains the full source code to:

  • The Tweet Lanes client application.
  • The accompanying SocialNetLib project, which interfaces with the Twitter and App.net APIs.
  • All art resources, notably the logo and Play Store listings.
  • The App Engine project used for tweetlanes.com.

The only items used in the Play Store build of Tweet Lanes not present in this repository are:

  • The Twitter Application consumer and secret keys.
  • The App.net consumer and secret keys.
  • The Play Store key used to sign the application.

Credentials

To build and use the app, you'll need to create your own Twitter application (and App.net application, if you have a developer account).

Twitter

  • Create a Twitter application

  • Don't worry about the callback url, just put a valid http url.

  • Once you create it, go to it's settings.

  • Inside Application Type:

    • Make sure Allow this application to be used to Sign in with Twitter is checked
    • Set the Access to Read, Write and Access direct messages
  • Now that you have the Twitter app configured, open the java file: android/app/src/main/java/com/tweetlanes/android/core/ConsumerKeyConstants.java and modify your TWITTER_CONSUMER_KEY and TWITTER_CONSUMER_SECRET variables with the ones from your Twitter app.

App.net

App.net usage requires a similar set of steps.

Developed By

Credits

Tweet Lanes uses the following open-source software:

Disclaimer

A few points to considering when browsing this code:

  1. Tweet Lanes was the first app I wrote in Java, as well as my first Android app. It is both my Android and Java 'Hello World'. The project contains much code that causes me to cringe when looking at it now, but it exists because I simply didn't know better at the time of writing it.
  2. Tweet Lanes was developed on the fly. I often added a feature and shipped it that night. If that new code was buggy, I sometimes added a quick and dirty fix to get things going again. The intent was often to go back and clean such code up, but due to the sheer amount of work I had to do, that rarely ended up happening.

In conclusion: there is currently some dog-awful code in this project. I know this only too well. Please try not to judge my coding ability on the worst parts, but do feel free to fork 'n fix :)

Usage

\android\client contains the bulk of the code. This project is dependent on the following libraries:

  • \android\libraries\SocialNetLib - An abstracted library that interfaces with Twitter and App.net.

Additional notes:

  • Configuration files for Eclipse are provided. If using Eclipse/ADT, you should be able to import the client and libraries straight in.

License

/*
 * Copyright (C) 2013 Chris Lacy
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

Contributions

Contributions are most welcome. In fact, they are actively encouraged.

Have a read here for what I consider to be the most pressing tasks in need to attention.

Before contributing please have a read of our wiki which contains useful information to get you started and also where to send your pull requests.

Note

I retain the copyright and ownership of the Tweet Lanes name. If you choose to release a fork of this code, please use a different name for your project.

Comments
  • Discussion doesn't load

    Discussion doesn't load

    When going into the tweet details view and there to the discussion tab, the current version of TweetLanes in the play store displays only "No content loaded at this time." Refreshing that view displays "Loading...", but nothing ever happens. In previous versions this worked.

    Bug 
    opened by duesenklipper 25
  • Multiple refresh jump to top

    Multiple refresh jump to top

    When refreshing, if you have more unread than the max reteival about, the client jumps to the top of the previous refresh. (hope that makes sense, dificult to explain & repo)

    Bug Pull Request Sent 
    opened by BlythMeister 23
  • Show some sort of interaction/animation/feedback when favoriting a tweet

    Show some sort of interaction/animation/feedback when favoriting a tweet

    Would be nice to see some sort of visual after pressing the favorite (star) icon.

    Right now it can take several seconds for a tweet to become "favorite". Currently i look to see if there's any network activity to see if it's "working"

    Pull Request Sent Approved Enhancement 
    opened by gena01 18
  • Can't tell which account posting too

    Can't tell which account posting too

    You don't know how often I post to the wrong account. Mostly personal tweets to tweetlanes :(

    Can we work out a way to show which account in the app? Maybe change the logo to the account picture when composing a new post?

    Proposed Enhancement 
    opened by jamesduffy 18
  • Custom Refresh Times

    Custom Refresh Times

    Would it be possible to include custom refresh times. It looks like it's hard coded to 15 minutes in here: https://github.com/chrislacy/TweetLanes/blob/master/android/client/src/com/tweetlanes/android/Notifier.java#L76

    opened by BlythMeister 14
  • DM Notification not working in 1.2.1 Beta 2

    DM Notification not working in 1.2.1 Beta 2

    So I got a DM over night from a friend. I saw it in my inbox, but NOT from TweetLanes. I have it set to refresh every 30 minutes. Checked it in the morning, no notifications. Direct Messages lane was empty when I switched to it and it reloaded ALL of the DMs which had the new one in it.

    Seems like a regression in the beta?

    Beta Bug Unable To Repo 
    opened by gena01 13
  • IllegalStateException when switching accounts

    IllegalStateException when switching accounts

    View Crash Report on Crittercism

    Reported by: None ([email protected])

    Status: Unresolved

    This Crash occured 7 times for 1 users

    0 java.lang.IllegalStateException: The application's PagerAdapter changed the adapter's contents without calling PagerAdapter#notifyDataSetChanged! Expected adapter item count: 9, found: 10 Pager id: com.tweetlanes.android.beta:id/pager Pager class: class android.support.v4.view.ViewPager Problematic adapter: class com.tweetlanes.android.core.view.HomeActivity$HomeLaneAdapter 1 at android.support.v4.view.ViewPager.populate(ViewPager.java:959) 2 at android.support.v4.view.ViewPager.populate(ViewPager.java:911) 3 at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1432) 4 at android.view.View.measure(View.java:15525) 5 at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:681) 6 at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:461) 7 at android.view.View.measure(View.java:15525) 8 at android.widget.LinearLayout.measureVertical(LinearLayout.java:847) 9 at android.widget.LinearLayout.onMeasure(LinearLayout.java:588) 10 at android.view.View.measure(View.java:15525) 11 at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4825) 12 at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) 13 at android.view.View.measure(View.java:15525) 14 at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4825) 15 at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) 16 at android.view.View.measure(View.java:15525) 17 at android.widget.LinearLayout.measureVertical(LinearLayout.java:847) 18 at android.widget.LinearLayout.onMeasure(LinearLayout.java:588) 19 at android.view.View.measure(View.java:15525) 20 at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4825) 21 at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) 22 at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2434) 23 at android.view.View.measure(View.java:15525) 24 at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1874) 25 at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1089) 26 at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1265) 27 at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:989) 28 at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4351) 29 at android.view.Choreographer$CallbackRecord.run(Choreographer.java:749) 30 at android.view.Choreographer.doCallbacks(Choreographer.java:562) 31 at android.view.Choreographer.doFrame(Choreographer.java:532) 32 at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:735) 33 at android.os.Handler.handleCallback(Handler.java:725) 34 at android.os.Handler.dispatchMessage(Handler.java:92) 35 at android.os.Looper.loop(Looper.java:137) 36 at android.app.ActivityThread.main(ActivityThread.java:5227) 37 at java.lang.reflect.Method.invokeNative(Native Method) 38 at java.lang.reflect.Method.invoke(Method.java:511) 39 at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795) 40 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:562) 41 at dalvik.system.NativeStart.main(Native Method)

    Bug Pull Request Sent 
    opened by Fammy 13
  • New posts/tweets bar will reappear after reading all new posts

    New posts/tweets bar will reappear after reading all new posts

    The "{count} New Posts" blue bar will reappear in the lanes after viewing all new posts.

    To reproduce:

    1. Go to a lane with new posts,
    2. Scroll to the top until the message appears,
    3. Scroll a few posts back down,
    4. When scrolling up the blue bar will reappear.
    Bug 
    opened by jamesduffy 13
  • features not working on tweet details activity

    features not working on tweet details activity

    Retweet and favorite buttons don't have any effect; "discussion" constantly shows "no content loaded at this time" and refreshing does not help.

    Bug 
    opened by lanzz 12
  • Added Local as well as beta for when testing local features.

    Added Local as well as beta for when testing local features.

    Needs new loader image though.

    @Fammy not sure if this is a good idea or not, but would mean you can test features without having to uninstall the existing app(s)?

    Though i may have just done the export to run on my device wrong.

    What do you think?

    p.s. not 100% sure if this will work.

    opened by BlythMeister 11
  • Inbuilt lightwight browser

    Inbuilt lightwight browser

    One for the future. Other clients I used has an inbuilt browser which loaded the page faster than the default browser due to being more lightweight.

    Not sure how easy this is, but could be useful.

    Proposed Enhancement Low Priority 
    opened by BlythMeister 10
  • Solve #439: Stuck at

    Solve #439: Stuck at "Authorize Twitter Account"

    https://github.com/chrislacy/TweetLanes/issues/439 Twitter requires a CallbackURL to be an HTTP-URL whitelisted in the APP section now. Please double-check the value before applying.

    opened by mcr42 0
  • Error: Device rotation resets state?

    Error: Device rotation resets state?

    Whenever I change my device orientation, Tweet lanes forgets the read state of my timeline and skips to the most recent tweet. This also happens on other events, but can't put my finger on. I've seen this for a while on multiple devices over some Android generations. I guess I'm not the only one seeing it?

    opened by mcr42 1
  • Stuck at

    Stuck at "Authorize Twitter Account" after fresh install

    I have been happily using this app for some while. Now needed to re-install it (fresh install via google play store) and get stuck with a black screen, respectively one white with "Authorize Twitter Account" on top, but no options to click or enter anything. Tested on two different devices, same issue.

    opened by bug1303 3
  • help prevent accidental Tweets

    help prevent accidental Tweets

    First off all, awesome app @chrislacy! Thanks for creating it and putting it out there for free.

    One problem I'm constantly having is accidental Tweets when I'm trying to hit the back button on my phone. This is partially due to my fat fingers, but also because the Tweet bar send button is on the bottom right of the screen, just above the back button on my Samsung Galaxy S4. Since the contextual Tweet bar (which is awesome) autofills, it will instantly send a DM to that person when I meant to go back instead.

    Possible fixes:

    • can a custom theme adjust the spacing / location of the Tweet bar?
    • contextual Tweet bar could check if a direct message / reply is empty (e.g. the @username has been added, but nothing else) and open the keyboard instead of sending with just the username)
    • something else?
    opened by simpixelated 0
  • Other feeds does not remember it's last scrolling state

    Other feeds does not remember it's last scrolling state

    Given I read somebody's feed (deep enough, reading old tweets), When switch to other app (e.g after following link from the tweet) And come back to tweetlanes, the feed I was reading will not remember the "scrolling". I will have to scroll so much again the feed history.

    sometimes it will remember... sometimes (especially when "switch between apps was long enough ) it will not.

    opened by yashaka 0
Releases(v1.4.1)
  • v1.4.1(Oct 8, 2014)

  • v1.4.0-release(Mar 4, 2014)

    Features

    • Large media previews & option to turn off media previews
    • Added option to use display urls rather than full URLs
    • Added auto complete mid status rather than needing to be the last word in compose box
    • Added configuration for status cache size
    • Correct issue with conversations appearing under the wrong statuses

    Fixes

    • Set VolScroll to be defaulted off
    • Update remaining characters as soon as media attached
    • Rotate flip on landscape refresh
    • Prevent infinite refresh loop
    • Favorites now sent to the network
    • Various errors reported by fatal crashes

    Hitting The Play Store Soon!

    Source code(tar.gz)
    Source code(zip)
  • v1.4.0-beta.2(Mar 3, 2014)

  • v1.4.0-beta.1(Feb 19, 2014)

    Features

    • Large media previews & option to turn off media previews
    • Added option to use display urls rather than full URLs
    • Added auto complete mid status rather than needing to be the last word in compose box
    • Added configuration for status cache size
    • Correct issue with conversations appearing under the wrong statuses

    Fixes

    • Set VolScroll to be defaulted off
    • Update remaining characters as soon as media attached
    • Rotate flip on landscape refresh
    • Prevent infinite refresh loop
    • Various errors reported by fatal crashes
    Source code(tar.gz)
    Source code(zip)
    clientbeta.apk(2.08 MB)
  • v1.3.0-release(Dec 19, 2013)

    Features

    • Added account remover in settings
    • Mention & DM notification status load into timeline without second refresh
    • Added optional auto refresh on start (but only if it's been more than 2 mins since last refresh)
    • Change in app image save location
    • DM added to a cache to cut down on data transfer
    • Can delete one or multiple direct messages
    • Added some xxhdpi images for newer high def devices (Nexus 5)
    • Made UI more optimistic so interactions are show to happen instantly & then only report failures
    • Names separated over multiple lines with option to only show Display name, or Show both name and handle. (Better support for long names/handles)
    • Extra intents for handling more Twitter & App.net URLS including New Tweet, Twitter follow & Profile links

    Fixes

    • Corrected a few Crittercism reported force close errors
    • Corrected issue whereby visible lanes would randomly reset
    • Screen orientation will lock whilst posting to prevent issues with status not posting correctly
    • Better handling of statuses being removed/deleted
    • DM refresh on send
    • All DM's downloaded rather than just "newest" in conversation
    • DM last message correctly passed back to the summary page (without need to refresh)
    • Make it clear that the summary DM is actually your reply
    • Improved performance when scrolling
    • Improved performance showing status in feed
    • Image saving on KitKat Devices

    Other

    • Updated Crittersism to give better feedback & breadcrumb tracking
    • Remove un-necessary billing permission to prevent "in app purchases" showing on play store listing.

    Release versions are only downloadable through the Google Play Store

    Tweet Lanes on the Google Play Store

    Source code(tar.gz)
    Source code(zip)
  • v1.3.0-beta.5(Dec 11, 2013)

  • v1.3.0-beta.4(Dec 9, 2013)

  • v1.3.0-beta.3(Dec 6, 2013)

    Feature

    • Names separated over multiple lines with option to only show Display name, or Show both name and handle. (Better support for long names/handles)
    • Extra intents for handling more Twitter & App.net URLS including New Tweet, Twitter follow & Profile links

    Fix

    • Improved performance showing status in feed
    Source code(tar.gz)
    Source code(zip)
    clientbeta_signed.apk(2.07 MB)
  • v1.3.0-beta.2(Dec 4, 2013)

  • v1.3.0-beta.1(Nov 26, 2013)

    Features

    • Added account remover in settings
    • Mention & DM notification status load into timeline without second refresh
    • Added optional auto refresh on start (but only if it's been more than 2 mins since last refresh)
    • Change in app image save location
    • DM added to a cache to cut down on data transfer
    • Can delete one or multiple direct messages
    • Added some xxhdpi images for newer high def devices (Nexus 5)

    Fixes

    • Corrected a few Crittercism reported force close errors
    • Corrected issue whereby visible lanes would randomly reset
    • Screen orientation will lock whilst posting to prevent issues with status not posting correctly
    • Better handling of statuses being removed/deleted
    • DM refresh on send
    • All DM's downloaded rather than just "newest" in conversation
    • DM last message correctly passed back to the summary page (without need to refresh)
    • Make it clear that the summary DM is actually your reply
    Source code(tar.gz)
    Source code(zip)
    clientbeta.apk(2.04 MB)
  • v1.2.1-release(Sep 30, 2013)

    Features

    • Make the ActionBar title selectable when viewing a profile
    • Added a visual cue when favorite button is pressed
    • Added Holo Light Dark Actionbar Theme
    • Added "Extra Extra Large" and "Supersize" font sizes
    • Extended the auto complete to match typed text anywhere in username and in full name
    • Added ability to remove an attached image by pressing and holding
    • Added URL handling so that Tweetlanes is a choice when loading Twitter or App.net items
    • Added smarter fetching starting with small pages, and incrementing as extra pages required
    • Added refresh after posting & refresh when loading app from notification
    • Added ability to show absolute times on timeline, also a mixed mode (59 mins a less is relative)

    Fixes

    • Links are now shown in full, rather than a "display link"
    • Links in profile descriptions converted from t.co links
    • Reply when loading profile correction. Show "Tweet @username"
    • Correct issues around compose box after loading profile
    • Use the t.co display url, rather than expanded url. These are formatted nicer
    • Fix issue when more than 1 page of tweets. Fetch only completes when all tweets collected preventing feed jumping
    • Change the message when you try and send an empty status update
    • Correct issue with the new tweet bar when orientation changes and account switches
    • Profile and service icon only show when you use both networks, or have 3 or more accounts
    • Position in lanes remembered between loads and lane switches
    • Profile URL is now expanded from a t.co
    • Close several leaks dealing with the image loader
    • Significantly reduce overdraw in lists containing tweets
    • Force close when switching accounts
    • New tweet count on close and re-open
    • Other small bug fixes

    Other bits

    • Large codebase tidy-up - hopefully small improvement to performance, size and reliability

    Release versions are only downloadable through the Google Play Store

    Tweet Lanes on the Google Play Store

    Source code(tar.gz)
    Source code(zip)
  • v1.2.1-beta.8(Sep 27, 2013)

  • v1.2.1-beta.7(Sep 24, 2013)

  • v1.2.1-beta.6(Sep 24, 2013)

  • v1.2.1-beta.5(Sep 24, 2013)

  • v1.2.1-beta.4(Sep 13, 2013)

  • v1.2.1-beta.3(Sep 12, 2013)

  • v1.2.1-beta.1(Aug 26, 2013)

  • v1.2.0-beta.2(Jul 15, 2013)

  • v1.2.0-beta.1(Jul 8, 2013)

    • Feature - Auto complete of @ mentions and # hashtags
    • Feature - New account switcher with picture and service icon
    • Feature - Added new change log
    • Feature - Added username to the compose box
    • Feature - Image scaling to ensure images are under 1024x1024 (aspect ratio maintained)
    • Feature - Mention and DM notifications start on boot
    • Feature - Made links to contributors clickable
    • Fix - Show inline images from retweets
    • Fix - DM notifications load into DM lane
    • Fix - Retweets of Retweets now correctly stay marked as such
    • Fix - Correct handling of media URLs if the domain contains upper case characters
    • Other - Crittercism upgrade (making it easier for us to see when you have problems)
    Source code(tar.gz)
    Source code(zip)
    TweetLanes_1.2.0_Beta1.apk(1.67 MB)
Owner
Chris Lacy
Chris Lacy
Library for easy work with Facebook, Twitter, LinkedIn and Google on Android

THIS PROJECT IS NO LONGER MAINTAINED, FEEL FREE TO FORK AND FIX IT FOR YOUR NEEDS There is also an Android Library that is being maintained, CloudRail

Anton Krasov 1k Dec 18, 2022
Easy social network authorization for Android. Supports Facebook, Twitter, Instagram, Google+, Vkontakte. Made by Stfalcon

SocialAuthHelper A library that helps to implement social network authorization (Facebook, Twitter, Instagram, GooglePlus, Vkontakte). Who we are Need

Stfalcon LLC 97 Nov 24, 2022
Youtube-dl for android

youtube-dl-android Android library wrapper for youtube-dl executable. Based on yausername's youtubedl-android but with ability to download binary file

Vikas 97 Dec 30, 2022
Twidere for Android

Twidere for Android Material Design ready and feature rich Twitter/Mastodon/Fanfou app for Android 4.1+. Enjoy Fediverse now! Twidere-Android is maint

Twidere Project 2.7k Dec 27, 2022
A Reddit client for Android

This is a Reddit client on Android written in Java. It does not have any ads and it features clean UI and smooth browsing experience.

null 2.6k Jan 9, 2023
An unofficial open source Reddit client for Android.

RedReader An unofficial, open source Android client for Reddit. Features Free and open-source Software - no ads/tracking Lightweight and fast Swipe po

null 1.4k Jan 7, 2023
Slide is an open sourced, ad free Reddit browser for Android

Slide Slide is an open source, ad free Reddit browser for Android. It is based around the Java Reddit API Wrapper. Slide is available on the Google Pl

Carlos Crane 1.7k Dec 27, 2022
Open-source alternative Instagram client on Android.

Instagram client; previously known as InstaGrabber.

Austin Huang 1.1k Jul 23, 2021
Kickstarter for Android. Bring new ideas to life, anywhere.

Welcome to Kickstarter's open source Android app! Come on in, take your shoes off, stay a while—explore how Kickstarter's native squad has built and c

Kickstarter 5.7k Jan 2, 2023
A light Sina Weibo client for Android

BlackLight 新浪微博客户端 请注意,当前BlackLight的开发已经被冻结,直到2016年高考后重启。 The development progress has been FROZEN till June 2016. 详细介绍以及Changelog请见Play商店。 https://pl

Paper Airplane Dev Team/纸飞机开发团队 884 Nov 22, 2022
Cnblogs Client for Android - Material Design

Cotable - Yet Another Cnblogs Client for Android Description Cotable = Code + Stable (The Paradise of Coder) The Android client of Cnblogs that named

Steve Lemuel 38 Feb 12, 2022
GitHub client for Android based on the abandoned official app

ForkHub ForkHub started off as a fork of the official Android app from GitHub, and has since seen lots of improvements. You can see a comprehensive li

Jon Ander Peñalba 2.8k Dec 28, 2022
GitHub Android application

Gitskarios Beta Testing Community Forum / Discussion Join the beta here Download it from Google Play! What is Gitskarios? Gitskarios is an Android App

Gitskarios 530 Dec 19, 2022
The Google I/O Android App

Google I/O Android App 2021 Update Due to global events, Google I/O 2020 was canceled and Google I/O 2021 is an online-only event, so the companion ap

Google 21.7k Jan 7, 2023
A handy Dribbble client for Android.

Notice Gunnner has been deprecated since Dribbble API v1 has been retired on March 26, 2018. Gunnner Gunnner1 is a handy Dribbble client for Android.

Egor Neliuba 60 Feb 12, 2022
📲 Android Application to track any user activity on Github built using the Github Developers API. Used Retrofit to fetch data and MVVM Architecture.

Github Visualizer ?? Android Application to track any user activity on Github built using the Github Developers Api. A sample application to demonstra

Dheeraj Kotwani 104 Dec 28, 2022
An Android client for Pump.io

Impeller - An Android client for Pump.io What is it A client for Pump.io, intended to provide a rich, platform-integrated experience. Runs on Android

Erin 46 Nov 1, 2022
A libre lightweight streaming front-end for Android.

NewPipe A libre lightweight streaming frontend for Android. Screenshots • Description • Features • Installation and updates • Contribution • Donate •

Team NewPipe 22.4k Jan 2, 2023
Github client for Android

OctoDroid This application provides access to GitHub and lets you stay connected with your network Download Main features Repository List repositories

Azwan Adli 1.5k Dec 28, 2022