Commit f9a8b7e3 authored by c1ph4's avatar c1ph4

FEMEN for Androids Version 1.0.5

parent 72daf8d6
# FEMEN Android app
![Alt text](https://github.com/aethyx/femen/blob/master/femen/res/drawable-xxhdpi/ic_launcher2.png?raw=true "FEMEN App Logo")
---
## Introduction
This is an Android project I started after contacting Inna mid-April 2014 if they would
like to have FEMEN on Androids.
She said yes, but also that she had something other in mind with their website femen.org.
Unfortunately I never heard of any other plans, so I'm releasing this
into the wild as I don't have very much time to work on it any further.
---
## Features
Basically it's a compilation of different ressources you find on the
web and summarizing them in an own Android app ecosystem:
* FEMEN.org
* a Facebook account (which is shut down often and changes constantly)
* their Twitter
* their Instagram
* their YouTube
* their Pinterest
* their online shop
* summarizing inside the app the different donation options
---
## Installation & list of releases
Current changelogs as well as a direct link to the working APK are always available here:
[Download the app](https://github.com/aethyx/femen/releases "FEMEN app for Android")
Remember to allow your Android device to install software from unknown sources.
---
## Contributing
* have a look at the open [issues](https://github.com/aethyx/femen/issues "issues") and [pull requests](https://github.com/aethyx/femen/issues "pull requests")
* feel free to report bugs (feedback is much appreciated)
* suggest new features and improvements to both code and [documentation](https://github.com/aethyx/femen/wiki "documentation")
* propose solutions to existing problems
* submit pull requests :-)
---
## License
This app is GPL V2 and thus [Free Software](http://en.wikipedia.org/wiki/Free_software "Free Software")
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.femen"
android:versionCode="5"
android:versionName="1.0.4" >
android:versionCode="6"
android:versionName="1.0.5" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="24" />
android:targetSdkVersion="27" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<application
......@@ -15,8 +15,9 @@
android:theme="@style/AppTheme" android:logo="@drawable/ic_launcher" android:hardwareAccelerated="true">
<activity
android:name="org.femen.MainActivity"
android:label="@string/app_name"
android:configChanges="orientation|screenSize|keyboard|keyboardHidden" >
android:label="@string/app_name"
android:uiOptions="splitActionBarWhenNarrow"
android:configChanges="orientation|screenSize|keyboard|keyboardHidden">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
......
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>FEMEN.org - donations</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<style type="text/css">
body {
background: linear-gradient(to right, #FFE144 0%,#FFE144 50%,#3DBCFF 50%,#3DBCFF 100%);
......@@ -66,4 +67,4 @@ WME207021772967</p></blockquote>
<p>[<a href="http://femen.info/about/">via</a>]</p>
</div>
</body>
</html>
\ No newline at end of file
</html>
This diff is collapsed.
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -11,5 +11,5 @@
#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
# Project target.
target=android-24
android.library.reference.1=../appcompat_v7
target=android-27
android.library.reference.1=../../../workspace/appcompat_v7
femen/res/drawable-hdpi/ic_action_like.png

390 Bytes | W: | H:

femen/res/drawable-hdpi/ic_action_like.png

386 Bytes | W: | H:

femen/res/drawable-hdpi/ic_action_like.png
femen/res/drawable-hdpi/ic_action_like.png
femen/res/drawable-hdpi/ic_action_like.png
femen/res/drawable-hdpi/ic_action_like.png
  • 2-up
  • Swipe
  • Onion skin
femen/res/drawable-hdpi/ic_action_tweet.png

989 Bytes | W: | H:

femen/res/drawable-hdpi/ic_action_tweet.png

635 Bytes | W: | H:

femen/res/drawable-hdpi/ic_action_tweet.png
femen/res/drawable-hdpi/ic_action_tweet.png
femen/res/drawable-hdpi/ic_action_tweet.png
femen/res/drawable-hdpi/ic_action_tweet.png
  • 2-up
  • Swipe
  • Onion skin
femen/res/drawable-mdpi/ic_action_like.png

285 Bytes | W: | H:

femen/res/drawable-mdpi/ic_action_like.png

285 Bytes | W: | H:

femen/res/drawable-mdpi/ic_action_like.png
femen/res/drawable-mdpi/ic_action_like.png
femen/res/drawable-mdpi/ic_action_like.png
femen/res/drawable-mdpi/ic_action_like.png
  • 2-up
  • Swipe
  • Onion skin
femen/res/drawable-mdpi/ic_action_shop.png

556 Bytes | W: | H:

femen/res/drawable-mdpi/ic_action_shop.png

565 Bytes | W: | H:

femen/res/drawable-mdpi/ic_action_shop.png
femen/res/drawable-mdpi/ic_action_shop.png
femen/res/drawable-mdpi/ic_action_shop.png
femen/res/drawable-mdpi/ic_action_shop.png
  • 2-up
  • Swipe
  • Onion skin
femen/res/drawable-mdpi/ic_action_tweet.png

607 Bytes | W: | H:

femen/res/drawable-mdpi/ic_action_tweet.png

416 Bytes | W: | H:

femen/res/drawable-mdpi/ic_action_tweet.png
femen/res/drawable-mdpi/ic_action_tweet.png
femen/res/drawable-mdpi/ic_action_tweet.png
femen/res/drawable-mdpi/ic_action_tweet.png
  • 2-up
  • Swipe
  • Onion skin
femen/res/drawable-xhdpi/ic_action_like.png

515 Bytes | W: | H:

femen/res/drawable-xhdpi/ic_action_like.png

492 Bytes | W: | H:

femen/res/drawable-xhdpi/ic_action_like.png
femen/res/drawable-xhdpi/ic_action_like.png
femen/res/drawable-xhdpi/ic_action_like.png
femen/res/drawable-xhdpi/ic_action_like.png
  • 2-up
  • Swipe
  • Onion skin
femen/res/drawable-xxhdpi/ic_action_like.png

826 Bytes | W: | H:

femen/res/drawable-xxhdpi/ic_action_like.png

745 Bytes | W: | H:

femen/res/drawable-xxhdpi/ic_action_like.png
femen/res/drawable-xxhdpi/ic_action_like.png
femen/res/drawable-xxhdpi/ic_action_like.png
femen/res/drawable-xxhdpi/ic_action_like.png
  • 2-up
  • Swipe
  • Onion skin
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/about_credits"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#E64946"
android:textColor="#FFFFFF"
android:textColorLink="#2A2A2A"
android:textSize="16sp"
android:text="@string/app_credits"
android:autoLink="email|web"
/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_below="@+id/about_credits">
<Button
android:id="@+id/dialog_ok"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.50"
android:background="@color/color3"
android:text="OK"/>
</LinearLayout>
</RelativeLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
</LinearLayout>
......@@ -6,8 +6,8 @@
<item android:id="@+id/home" android:title="@string/home" android:icon="@drawable/ic_home" android:showAsAction="ifRoom|withText" android:orderInCategory="100"/>
<item android:id="@+id/shop" android:title="@string/shop" android:icon="@drawable/ic_action_shop" android:showAsAction="ifRoom|withText" android:orderInCategory="102"/>
<item android:id="@+id/liken" android:title="@string/liken" android:icon="@drawable/ic_action_like" android:showAsAction="ifRoom|withText" android:orderInCategory="103"/>
<item android:id="@+id/instagram" android:title="@string/instagram" android:icon="@drawable/ic_action_instagram" android:showAsAction="ifRoom|withText" android:orderInCategory="104"/>
<item android:id="@+id/tweet" android:title="@string/tweet" android:icon="@drawable/ic_action_tweet" android:showAsAction="ifRoom|withText" android:orderInCategory="105"/>
<item android:id="@+id/instagram" android:title="@string/instagram" android:icon="@drawable/ic_action_instagram" android:showAsAction="ifRoom|withText" android:orderInCategory="105"/>
<item android:id="@+id/tweet" android:title="@string/tweet" android:icon="@drawable/ic_action_tweet" android:showAsAction="ifRoom|withText" android:orderInCategory="104"/>
<item android:id="@+id/youtube" android:title="@string/youtube" android:icon="@drawable/ic_action_youtube" android:showAsAction="ifRoom|withText" android:orderInCategory="106"/>
<item android:id="@+id/pinterest" android:title="@string/pinterest" android:icon="@drawable/ic_action_pinterest" android:showAsAction="ifRoom|withText" android:orderInCategory="107"/>
<item android:id="@+id/refresh" android:title="@string/refresh" android:icon="@drawable/ic_action_refresh" android:showAsAction="ifRoom|withText" android:orderInCategory="101"/>
......
......@@ -12,5 +12,13 @@
<string name="home">Maison</string>
<string name="shop">Boutique</string>
<string name="flattr">Donner</string>
<string name="app_credits">
\nFEMEN/ФЕМЕН pour Androids\n\n
Merci de votre soutient FEMEN!\n
Version 1.0.5\n
Email: femen.ua@gmail.com\n
Skype: femen.ua\n
GitHub: github.com/aethyx/femen\n\n
\u00A9 femen.org, 2014-2018\n</string>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">FEMEN.org</string>
<string name="app_name">ФЕМЕН.org</string>
<string name="refresh">Обновить</string>
<string name="about">около</string>
<string name="liken">Facebook</string>
......@@ -12,5 +12,13 @@
<string name="home">домой</string>
<string name="shop">магазин</string>
<string name="flattr">жертвовать</string>
<string name="app_credits">
\nFEMEN/ФЕМЕН для андроидов\n\n
Спасибо, что поддержали FEMEN!\n
Version 1.0.5\n
Email: femen.ua@gmail.com\n
Skype: femen.ua\n
GitHub: github.com/aethyx/femen\n\n
\u00A9 femen.org, 2014-2018\n</string>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">ФЕМЕН.org</string>
<string name="refresh">оновити</string>
<string name="about">Про</string>
<string name="liken">Facebook</string>
<string name="instagram">Instagram</string>
<string name="tweet">Twitter</string>
<string name="youtube">YouTube</string>
<string name="pinterest">Pinterest</string>
<string name="home">Будинок</string>
<string name="shop">Магазин</string>
<string name="flattr">Пожертвувати</string>
<string name="app_credits">
\nFEMEN/ФЕМЕН для андроїдів\n\n
Дякую за підтримку ФЕМЕН!\n
Version 1.0.5\n
Email: femen.ua@gmail.com\n
Skype: femen.ua\n
GitHub: github.com/aethyx/femen\n\n
\u00A9 femen.org, 2014-2018\n</string>
</resources>
......@@ -8,4 +8,4 @@
<!-- API 11 theme customizations can go here. -->
</style>
</resources>
</resources>
\ No newline at end of file
......@@ -7,6 +7,6 @@
-->
<style name="AppBaseTheme" parent="android:Theme.Holo.Light.DarkActionBar">
<!-- API 14 theme customizations can go here. -->
</style>
</style>
</resources>
</resources>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="color1" >#E64946</color>
<color name="color2" >#FFFFFF</color>
<color name="color3" >#e3e3e3</color>
</resources>
\ No newline at end of file
......@@ -12,5 +12,13 @@
<string name="home">Home</string>
<string name="shop">Shop</string>
<string name="flattr">Donate</string>
<string name="app_credits">
\nFEMEN/ФЕМЕН for Androids\n\n
Thank you for supporting FEMEN!\n
Version 1.0.5\n
Email: femen.ua@gmail.com\n
Skype: femen.ua\n
GitHub: github.com/aethyx/femen\n\n
\u00A9 femen.org, 2014-2018\n</string>
</resources>
......@@ -15,6 +15,32 @@
<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
<!-- This is styling for action bar -->
<item name="android:actionBarStyle">@style/MyActionBar</item>
<!-- change the text styling of options menu items</item>-->
<item name="android:itemTextAppearance">@style/MyActionBar.MenuTextStyle</item>
<!-- change the background of options menu-->
<item name="android:itemBackground">@color/color1</item>
</style>
<style name="MyActionBar" parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
<item name="android:background">@color/color1</item>
<!-- color for background split... -->
<item name="android:backgroundSplit">@color/color1</item>
<item name="android:titleTextStyle">@style/MyActionBarTitle</item>
</style>
<style name="MyActionBarTitle" parent="@style/TextAppearance.AppCompat.Widget.ActionBar.Title">
<item name="android:textColor">@color/color2</item>
</style>
<style name="MyActionBar.MenuTextStyle" parent="style/TextAppearance.AppCompat.Widget.ActionBar.Title">
<item name="android:textColor">@color/color2</item>
</style>
<style name="TextColor">
<item name="android:textColor">@android:color/white</item>
</style>
</resources>
</resources>
\ No newline at end of file
//Autor: Sascha Schroeder
//EMail: sascha.schroeder@aethyx.com
//Website: http://aethyx.eu
//Date: since end of July 2014
// --- from Sascha to Inna ---
// Android App for FEMEN
// Author: Sascha Schroeder
// Email: sascha.schroeder@aethyx.com
// Website: https://aethyx.eu
// Date: since end of July 2014
// --- from Sascha to Inna and her courageous movement ---
// License: GPL Vx, see https://en.wikipedia.org/wiki/Free_software "Free Software"
// Contribute to this open source project: https://github.com/aethyx/femen.git
package org.femen;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.Gravity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.webkit.DownloadListener;
import android.webkit.WebChromeClient;
......@@ -21,19 +24,19 @@ import android.webkit.WebSettings;
import android.webkit.WebSettings.PluginState;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
import android.widget.ProgressBar;
import android.widget.TextView;
import org.femen.R;
public class MainActivity extends Activity {
private WebView browser;
private WebView femen;
//ProgressDialog progress;
ProgressBar loadingProgressBar;
@Override
protected void onSaveInstanceState(Bundle outState) {
browser.saveState(outState);
femen.saveState(outState);
}
@Override
......@@ -42,23 +45,23 @@ public class MainActivity extends Activity {
//getWindow().requestFeature(Window.FEATURE_NO_TITLE);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_main);
browser = (WebView)findViewById(R.id.webView1);
browser.getSettings().setLoadsImagesAutomatically(true);
browser.getSettings().setLoadWithOverviewMode(true);
browser.getSettings().setUseWideViewPort(true);
browser.getSettings().setJavaScriptEnabled(true);
browser.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
browser.getSettings().setPluginState(PluginState.ON);
browser.getSettings().setBuiltInZoomControls(true);
browser.setVerticalScrollBarEnabled(false);
browser.getSettings().setAllowFileAccess(true);
browser.getSettings().setDatabaseEnabled(true);
browser.getSettings().setDomStorageEnabled(true);
browser.getSettings().setAppCacheEnabled(true);
browser.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
femen = (WebView)findViewById(R.id.webView1);
femen.getSettings().setLoadsImagesAutomatically(true);
femen.getSettings().setLoadWithOverviewMode(true);
femen.getSettings().setUseWideViewPort(true);
femen.getSettings().setJavaScriptEnabled(true);
femen.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
femen.getSettings().setPluginState(PluginState.ON);
//femen.getSettings().setBuiltInZoomControls(true);
femen.setVerticalScrollBarEnabled(false);
femen.getSettings().setAllowFileAccess(true);
femen.getSettings().setDatabaseEnabled(true);
femen.getSettings().setDomStorageEnabled(true);
femen.getSettings().setAppCacheEnabled(true);
femen.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
// Enable downloads of files within webView
browser.setDownloadListener(new DownloadListener() {
// Enable downloads of files within the app
femen.setDownloadListener(new DownloadListener() {
public void onDownloadStart(String url, String userAgent,
String contentDisposition, String mimetype,
long contentLength) {
......@@ -70,7 +73,7 @@ public class MainActivity extends Activity {
// Attach the ProgressBar layout
loadingProgressBar=(ProgressBar)findViewById(R.id.progressBar1);
browser.setWebChromeClient(new WebChromeClient() {
femen.setWebChromeClient(new WebChromeClient() {
// this will be called on page loading progress
@Override
......@@ -90,27 +93,34 @@ public class MainActivity extends Activity {
});
browser.setWebViewClient(new WebViewClient(){
femen.setWebViewClient(new WebViewClient(){
// load url
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
@Override
public void onPageFinished(WebView view, String url)
{
//view.loadUrl("javascript:(function() { " + "var head = document.getElementsByClassName('mh-header-mobile-nav clearfix').style.display='none'; " +"})()");
//view.loadUrl("javascript:(function() { " + "var head = document.getElementsByClassName('mh-preheader').style.display='none'; " +"})()");
//view.loadUrl("javascript:(function() { " + "var foot = document.getElementsByClassName('mh-footer').style.display='none'; " +"})()");
}
});
if (savedInstanceState != null)
{
browser.restoreState(savedInstanceState);
femen.restoreState(savedInstanceState);
}
else
{
browser.loadUrl("http://femen.org");
femen.loadUrl("https://femen.org");
}
}
@Override
public void onBackPressed (){
if (browser.isFocused() && browser.canGoBack()) {
browser.goBack();
if (femen.isFocused() && femen.canGoBack()) {
femen.goBack();
}else {
MainActivity.this.finish();
}
......@@ -128,52 +138,56 @@ public class MainActivity extends Activity {
switch (item.getItemId())
{
case R.id.shop:
browser.loadUrl("http://femenshop.com/");
femen.loadUrl("https://femenshop.com/");
return true;
case R.id.home:
browser.loadUrl("http://femen.org");
femen.loadUrl("https://femen.org");
return true;
case R.id.flattr:
browser.loadUrl("file:///android_asset/donations.xhtml");
femen.loadUrl("file:///android_asset/donations.xhtml");
return true;
case R.id.tweet:
browser.loadUrl("https://twitter.com/FEMEN_Movement");
femen.loadUrl("https://twitter.com/FEMEN_Movement");
return true;
case R.id.pinterest:
browser.loadUrl("https://pinterest.com/femen0126/");
femen.loadUrl("https://pinterest.com/femen0126/");
return true;
case R.id.instagram:
browser.loadUrl("https://www.instagram.com/femenofficial/");
femen.loadUrl("https://www.instagram.com/femen_movement/");
return true;
case R.id.youtube:
browser.loadUrl("https://youtube.com/user/FemenLight");
femen.loadUrl("https://youtube.com/user/FemenLight");
return true;
case R.id.liken:
browser.loadUrl("https://www.facebook.com/FEMEN.fra");
femen.loadUrl("https://de-de.facebook.com/femenmovement/");
return true;
case R.id.refresh:
browser.reload();
femen.reload();
return true;
case R.id.about:
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("FEMEN/ФЕМЕН");
builder.setIcon(R.drawable.ic_launcher);
builder.setMessage("Thank you for supporting FEMEN!" + "\n" + "Version 1.0.4" + "\n" + "Email: femen.ua@gmail.com" + "\n" + "Skype: femen.ua" + "\n" + "GitHub: github.com/aethyx/femen" + "\n" +"\u00A9 " + "femen.org, 2014-2016");
builder.setPositiveButton("OK", null);
AlertDialog dialog = builder.show();
final Dialog dialog = new Dialog(this); // Context, this, etc.
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.about);
//set up button
Button button = (Button) dialog.findViewById(R.id.dialog_ok);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
TextView messageView = (TextView)dialog.findViewById(android.R.id.message);
messageView.setGravity(Gravity.LEFT);
return true;
}
});
dialog.show();
return true;
default:
return super.onOptionsItemSelected(item);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment