Git Product home page Git Product logo

firetweet's Introduction

FireTweet

FireTweet is an Android app powered by Lantern that gives direct unblocked access to Twitter from anywhere in the world.

You can download the latest build of FireTweet here.

Building Firetweet

Building from Android Studio

Prerequisites

Download the most recent copy of the Firetweet's source code using git:

mkdir -p ~/AndroidstudioProjects
cd ~/AndroidstudioProjects
git clone https://github.com/getlantern/firetweet.git

In the welcome screen choose the "Open an existing Android Studio" option and select the firetweet folder you just checked out with git.

screen shot 2015-06-03 at 3 05 47 pm

Wait until Android Studio finishes importing the project.

screen shot 2015-06-03 at 4 26 43 pm

After a few minutes you'll end up with a blank workspace, click the 1. Project tab from the left side of the screen and make sure the combo box near the play button says firetweet.

screen shot 2015-06-03 at 4 30 07 pm

If you want to test Firetweet on an Android emulator or into a real device, just click the play button and choose on which device you want to deploy Lantern. If you want to test this on an emulator make sure you're using the ARM architecture.

To build FireTweet select the Make Project action from the Build menu.

screen shot 2015-06-03 at 4 34 12 pm

This will create a ./firetweet/build/outputs/apk/firetweet-fdroid-debug.apk file that you can install on an android device with the help of adb:

adb install ./firetweet/build/outputs/apk/firetweet-fdroid-debug.apk

Building from the Command Line (beta, for development only)

Prerequisites

  • Java Development Kit 1.7
  • Git

Building, installing and running

Build the Debug target:

make build-debug

Install it:

make install

Run the app on the device from the command line:

make run

By default, all three tasks will be run in order with:

make

How is Lantern included in Firetweet?

We created a really small version of Lantern that can be compiled for Android phones and used by Android apps. This library is bundled with Firetweet, you can always find the latest version of the library here.

If you prefer to build this binary blob for yourself you may check out the Lantern building instructions, in particular the "Creating libgojni.so" section.

VirtualBox Android development images

Why use a Virtualbox image instead of the Android Emulator or a real device?

There are several reasons for doing so. When comparing with the Android Emulator, the main reason is that Virtualbox is faster. It virtualizes the x86 architecture, which introduces less overhead than full ARM emulation. When comparing with a real device, there are also reasons for using Virtualbox instead:

  • On-screen development. This might be useful for remote pair programming or visual testing.
  • Screen size customization.
  • Easier build and bug reproducibility.

One thing to note is that the majority of Android devices use the ARM architecture. Virtualbox relies on the x86 architecture instead. However, the emulation feature called Houdini binary translation allows for instruction translation, which means that we can run native ARM code on our x86 emulator.

The Android x86 images are based on this project: http://www.android-x86.org/

You can find the latest image here

Installing on the VirtualBox image

  1. Make sure that port forwarding is set from 5555 (host) to 5555 (guest) for the main network interface.
  2. Run the Virtualbox image.
  3. Connect with ADB
adb connect localhost:5555
  1. Check that the device is properly connected
adb devices
  1. Run make (it will compile, upload and run the app on VirtualBox)
make

Development notes

Screen orientation

  • Press F12 two times in less than 2 seconds = Rotate 90º to the LEFT.
  • Press F11 two times in less than 2 seconds = Rotate 90º to the RiGHT.
  • Press F10 two times in less than 2 seconds = Rotate 180º.
  • Press F9 two times in less than 2 seconds = Normal view 0/360º.

Screen size

  • Using the kernel VGA configuration option:

When in GRUB, hit 'e' to edit the first entry, then 'e' again to edit the first line. Append the text 'vga=ask' at the end of the boot line. Choose any of the display sizes, but the depth must be 16.

  • Using an app (recommended):

Use the app called Resolution Changer and activate the resolution overriding. There is no need to reboot after this.

Misc

  • For better UI integration, disable mouse integration (Host+I)
  • Certain apps, including Firetweet reorient the screen. This will remap the mouse coordinates and motion, which will drive you crazy! First try rotating setting the screen orientation to landscape. Then, you can try also setting a screen size with Resolution Changer to a new height/width that inverts these values.

Open Source

FireTweet was forked from Twidere, an Open Source client for Twitter.

Twidere - Twitter client for Android

Copyright (C) 2012-2014 Mariotaku Lee [email protected]

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

firetweet's People

Contributors

fffw avatar gemotionx avatar gitter-badger avatar hnws avatar javran avatar mariotaku avatar molikto avatar myleshorton avatar uaalto avatar xiam avatar

Stargazers

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

Watchers

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

firetweet's Issues

Unable to retweet if the user has two accounts and then tries to retweet a reply from the other account

I used two accounts, say acct1 and acct2

  1. User tweets from acct1 and then replies using acct2.
  2. Now if the user tries to retweet the reply from acct2 then the user gets an error that cannot be retweeted though signed in as acct1.

I guess the error is probably correct in the mobile app as we know that it is the same user and the user cannot retweet their own tweets. So, I suggest to disable the retweet option for this case or we should take out the error code from the message "Error while retweeting: Error 328: Retweet is not permissible for this status". We could just say "Retweet is not permissible for this status".

More options in the tweet screen disappears

When clicking on an individual tweet, it takes to the tweet screen. If I click on the more options menu before the loading is complete, then the options disappear when the loading is done.

Difficult to Sign out of Firetweet

To sign out one must go under the accounts tab, and press and hold on the account they wish to sign out of and wait for a "delete account" button to appear.
This took me a while to find, and "delete" makes it sound as if you are wiping that account from twitter. "sign out" may be better language to use for this.

Multiple libgojni.so files

There are currently two libgojni.so files on different locations:

find . | grep libgojni | xargs shasum -a 256
2392fa8ae0cd887ba6ddae7635cf294cb1e9ef7928f5a718306430ecfc60d14d  ./twidere/src/main/jniLibs/armeabi/libgojni.so
2392fa8ae0cd887ba6ddae7635cf294cb1e9ef7928f5a718306430ecfc60d14d  ./twidere/src/main/jniLibs/armeabi-v7a/libgojni.so

We probably don't need the two of them.

Setting color doesn't change immediately

  1. User1 follows User2
  2. If User1, tries to setcolor for the tweet posted by User2 in the tweet detail screen then it doesn't change immediately in the screen. I had to go back to timeline and then too I had to refresh to see the change.

When the user favorites a tweet which has 0 favorites, it increases the count to 2

I couldn't get the exact steps. But this is what I noticed about the favorites functionality in the timeline.

  1. User 1 creates 4 new tweets. User 2 follows User 1
  2. Now User 2 favorites the first tweet, working as expected.
  3. Favorites the second tweet, works as expected
  4. Favorites the third tweet, increases the count to 2 instead of 1
  5. Favorites the fourth tweet, works as expected.
  6. Unfavorites the first tweet, works as expected.
  7. Unfavorites the first tweet, increase the count to 1 for the first tweet and the second tweet but the color turns grey.

screenshot_2015-04-21-23-20-10
screenshot_2015-04-21-23-37-11
screenshot_2015-04-21-23-37-51
screenshot_2015-04-21-23-38-05
screenshot_2015-04-21-23-38-11
screenshot_2015-04-21-23-38-24
screenshot_2015-04-21-23-38-35

No way to see new followers

In the regular twitter app under notifications you can see who has followed you.
This appears to not be a function of FireTweet/ Twidere but seems very important to how Twitter works.

Favorite problem in tweet detail screen

  1. click on a tweet in the timeline, takes to the tweet detail screen.
  2. Like the tweet. Gets the message "Favorited" but the icon stays gray color and no change in the count too. In the twitter website, the user gets the notification that his/her tweet is favorited.
  3. If I try to favorite the tweet again, I get "Error while favoriting: You've already favorited this tweet". But if I go to timeline, I can see the like count increased and changes color too.

enproxy: Failing on Error reading response from proxy: unexpected EOF

Seeing a lot of enproxy "unexpected EOF" errors in the ADB log while testing FireTweet

04-14 19:26:40.148    1153-1189/? E/GoStdio﹕ fronted: HTTP ERROR FOR MASQUERADE vr-zone.com: Head http://www.google.com/humans.txt: Unable to dial proxy: Unable to dial proxy: Unable to dial masquerade vr-zone.com: EOF
04-14 19:26:44.319    1153-1192/? I/GoStdio﹕ enproxy: Failing on Dest: www.google.com:80    ProxyHost:     Unable to issue write request: Error reading response from proxy: unexpected EOF
04-14 19:26:44.368    1153-1192/? I/GoStdio﹕ enproxy: Failing on Error reading response from proxy: unexpected EOF
04-14 19:26:44.387    1153-1189/? E/GoStdio﹕ fronted: HTTP ERROR FOR MASQUERADE www.cryptocoinsnews.com: Head http://www.google.com/humans.txt: Dest: www.google.com:80    ProxyHost:     Unable to issue write request: Error reading response from proxy: unexpected EOF

Recommend Projects

  • React photo React

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

  • Vue.js photo Vue.js

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

  • Typescript photo Typescript

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

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

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

Recommend Topics

  • javascript

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

  • web

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

  • server

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

  • Machine learning

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

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

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

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.