Este commit está contenido en:
Christoph Haas 2013-12-09 12:32:07 +00:00
commit 55ca4db95a
Se han modificado 51 ficheros con 551 adiciones y 0 borrados

9
.classpath Archivo normal
Ver fichero

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="gen"/>
<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
<classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
<classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES"/>
<classpathentry kind="output" path="bin/classes"/>
</classpath>

33
.project Archivo normal
Ver fichero

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>MVNOroaming</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>com.android.ide.eclipse.adt.ApkBuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>com.android.ide.eclipse.adt.AndroidNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>

Ver fichero

@ -0,0 +1,4 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
org.eclipse.jdt.core.compiler.compliance=1.6
org.eclipse.jdt.core.compiler.source=1.6

33
AndroidManifest.xml Archivo normal
Ver fichero

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="at.sprinternet.mvnoroaming"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="19" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<uses-permission android:name="android.permission.ACCESS_SUPERUSER"/>
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" android:testOnly="false">
<activity
android:name="at.sprinternet.mvnoroaming.MVNORoamingStatusChanger"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver android:name=".RebootServiceReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
<service android:name=".RebootService" />
</application>
</manifest>

33
bin/AndroidManifest.xml Archivo normal
Ver fichero

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="at.sprinternet.mvnoroaming"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="19" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<uses-permission android:name="android.permission.ACCESS_SUPERUSER"/>
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" android:testOnly="false">
<activity
android:name="at.sprinternet.mvnoroaming.MVNORoamingStatusChanger"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver android:name=".RebootServiceReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
<service android:name=".RebootService" />
</application>
</manifest>

Archivo binario no mostrado.

Archivo binario no mostrado.

Archivo binario no mostrado.

Archivo binario no mostrado.

Archivo binario no mostrado.

Archivo binario no mostrado.

Archivo binario no mostrado.

Archivo binario no mostrado.

Archivo binario no mostrado.

Archivo binario no mostrado.

Archivo binario no mostrado.

Archivo binario no mostrado.

Archivo binario no mostrado.

Después

Anchura:  |  Altura:  |  Tamaño: 3.2 KiB

Archivo binario no mostrado.

Después

Anchura:  |  Altura:  |  Tamaño: 1.9 KiB

Archivo binario no mostrado.

Después

Anchura:  |  Altura:  |  Tamaño: 4.3 KiB

Archivo binario no mostrado.

Después

Anchura:  |  Altura:  |  Tamaño: 6.9 KiB

Ver fichero

@ -0,0 +1,6 @@
/** Automatically generated file. DO NOT MODIFY */
package at.sprinternet.mvnoroaming;
public final class BuildConfig {
public final static boolean DEBUG = true;
}

Ver fichero

@ -0,0 +1,79 @@
/* AUTO-GENERATED FILE. DO NOT MODIFY.
*
* This class was automatically generated by the
* aapt tool from the resource data it found. It
* should not be modified by hand.
*/
package at.sprinternet.mvnoroaming;
public final class R {
public static final class attr {
}
public static final class dimen {
/** Default screen margins, per the Android Design guidelines.
Customize dimensions originally defined in res/values/dimens.xml (such as
screen margins) for sw720dp devices (e.g. 10" tablets) in landscape here.
*/
public static final int activity_horizontal_margin=0x7f040000;
public static final int activity_vertical_margin=0x7f040001;
}
public static final class drawable {
public static final int ic_launcher=0x7f020000;
}
public static final class id {
public static final int action_settings=0x7f080006;
public static final int buttonUpdate=0x7f080002;
public static final int editTextProvider=0x7f080001;
public static final int switchReboot=0x7f080004;
public static final int textView2=0x7f080003;
public static final int textView3=0x7f080005;
public static final int textViewDescription=0x7f080000;
}
public static final class layout {
public static final int activity_mvno=0x7f030000;
}
public static final class menu {
public static final int mvnoroaming_status_changer=0x7f070000;
}
public static final class string {
public static final int action_settings=0x7f050001;
public static final int app_name=0x7f050000;
public static final int copyright=0x7f050007;
public static final int description=0x7f050002;
public static final int enableOnBoot=0x7f050004;
public static final int inputHint=0x7f050003;
public static final int rebootSwitch=0x7f050006;
public static final int update=0x7f050005;
}
public static final class style {
/**
Base application theme, dependent on API level. This theme is replaced
by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
Theme customizations available in newer API levels can go in
res/values-vXX/styles.xml, while customizations related to
backward-compatibility can go here.
Base application theme for API 11+. This theme completely replaces
AppBaseTheme from res/values/styles.xml on API 11+ devices.
API 11 theme customizations can go here.
Base application theme for API 14+. This theme completely replaces
AppBaseTheme from BOTH res/values/styles.xml and
res/values-v11/styles.xml on API 14+ devices.
API 14 theme customizations can go here.
*/
public static final int AppBaseTheme=0x7f060000;
/** Application theme.
All customizations that are NOT specific to a particular API-level can go here.
*/
public static final int AppTheme=0x7f060001;
}
}

BIN
ic_launcher-web.png Archivo normal

Archivo binario no mostrado.

Después

Anchura:  |  Altura:  |  Tamaño: 30 KiB

BIN
libs/android-support-v4.jar Archivo normal

Archivo binario no mostrado.

20
proguard-project.txt Archivo normal
Ver fichero

@ -0,0 +1,20 @@
# To enable ProGuard in your project, edit project.properties
# to define the proguard.config property as described in that file.
#
# Add project specific ProGuard rules here.
# By default, the flags in this file are appended to flags specified
# in ${sdk.dir}/tools/proguard/proguard-android.txt
# You can edit the include path and order by changing the ProGuard
# include property in project.properties.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
# Add any project specific keep options here:
# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}

14
project.properties Archivo normal
Ver fichero

@ -0,0 +1,14 @@
# This file is automatically generated by Android Tools.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file must be checked in Version Control Systems.
#
# To customize properties used by the Ant build system edit
# "ant.properties", and override values to adapt the script to your
# project structure.
#
# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
# Project target.
target=android-19

Archivo binario no mostrado.

Después

Anchura:  |  Altura:  |  Tamaño: 4.0 KiB

Archivo binario no mostrado.

Después

Anchura:  |  Altura:  |  Tamaño: 2.6 KiB

Archivo binario no mostrado.

Después

Anchura:  |  Altura:  |  Tamaño: 5.2 KiB

Archivo binario no mostrado.

Después

Anchura:  |  Altura:  |  Tamaño: 8.1 KiB

66
res/layout/activity_mvno.xml Archivo normal
Ver fichero

@ -0,0 +1,66 @@
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MVNORoamingStatusChanger" >
<TextView
android:id="@+id/textViewDescription"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:text="@string/description" />
<EditText
android:id="@+id/editTextProvider"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textViewDescription"
android:layout_alignRight="@+id/textViewDescription"
android:layout_below="@+id/textViewDescription"
android:ems="10"
android:inputType="text"
android:hint="@string/inputHint" >
<requestFocus />
</EditText>
<Button
android:id="@+id/buttonUpdate"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/editTextProvider"
android:layout_below="@+id/editTextProvider"
android:layout_marginTop="24dp"
android:text="@string/update" />
<TextView
android:id="@+id/textView2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/buttonUpdate"
android:layout_centerVertical="true"
android:text="@string/enableOnBoot" />
<Switch
android:id="@+id/switchReboot"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textView2"
android:layout_below="@+id/textView2"
android:text="@string/rebootSwitch"
android:checked="true" />
<TextView
android:id="@+id/textView3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:text="@string/copyright" />
</RelativeLayout>

Ver fichero

@ -0,0 +1,9 @@
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/action_settings"
android:orderInCategory="100"
android:showAsAction="never"
android:title="@string/action_settings"/>
</menu>

Ver fichero

@ -0,0 +1,8 @@
<resources>
<!--
Customize dimensions originally defined in res/values/dimens.xml (such as
screen margins) for sw600dp devices (e.g. 7" tablets) here.
-->
</resources>

Ver fichero

@ -0,0 +1,9 @@
<resources>
<!--
Customize dimensions originally defined in res/values/dimens.xml (such as
screen margins) for sw720dp devices (e.g. 10" tablets) in landscape here.
-->
<dimen name="activity_horizontal_margin">128dp</dimen>
</resources>

11
res/values-v11/styles.xml Archivo normal
Ver fichero

@ -0,0 +1,11 @@
<resources>
<!--
Base application theme for API 11+. This theme completely replaces
AppBaseTheme from res/values/styles.xml on API 11+ devices.
-->
<style name="AppBaseTheme" parent="android:Theme.Holo.Light">
<!-- API 11 theme customizations can go here. -->
</style>
</resources>

12
res/values-v14/styles.xml Archivo normal
Ver fichero

@ -0,0 +1,12 @@
<resources>
<!--
Base application theme for API 14+. This theme completely replaces
AppBaseTheme from BOTH res/values/styles.xml and
res/values-v11/styles.xml on API 14+ devices.
-->
<style name="AppBaseTheme" parent="android:Theme.Holo.Light.DarkActionBar">
<!-- API 14 theme customizations can go here. -->
</style>
</resources>

7
res/values/dimens.xml Archivo normal
Ver fichero

@ -0,0 +1,7 @@
<resources>
<!-- Default screen margins, per the Android Design guidelines. -->
<dimen name="activity_horizontal_margin">16dp</dimen>
<dimen name="activity_vertical_margin">16dp</dimen>
</resources>

13
res/values/strings.xml Archivo normal
Ver fichero

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">MVNO roaming</string>
<string name="action_settings">Settings</string>
<string name="description">With this app you can disable the roaming icon if your service provider is a mvno (mobile virtual network operator)! Just enter your providername in the textfield.</string>
<string name="inputHint">Your provider. e.g. tmobile</string>
<string name="enableOnBoot">Enable this switch to set the correct providername after a reboot, so you do not need to run this app manually!</string>
<string name="update">Update</string>
<string name="rebootSwitch">Set on reboot:</string>
<string name="copyright">Written by h44z 2013. v1.0</string>
</resources>

20
res/values/styles.xml Archivo normal
Ver fichero

@ -0,0 +1,20 @@
<resources>
<!--
Base application theme, dependent on API level. This theme is replaced
by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
-->
<style name="AppBaseTheme" parent="android:Theme.Light">
<!--
Theme customizations available in newer API levels can go in
res/values-vXX/styles.xml, while customizations related to
backward-compatibility can go here.
-->
</style>
<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
</style>
</resources>

Ver fichero

@ -0,0 +1,22 @@
package at.sprinternet.mvnoroaming;
import java.io.IOException;
import android.util.Log;
public class ExecuteAsRoot {
public static boolean exec(String command) {
try {
Process process = Runtime.getRuntime().exec(
new String[] { "su", "-c", command });
process.waitFor();
} catch (IOException ex) {
Log.w("ROOT", "Can't get root access", ex);
return false;
} catch (InterruptedException ex) {
Log.w("ROOT", "Can't get root access", ex);
return false;
}
return true;
}
}

Ver fichero

@ -0,0 +1,73 @@
package at.sprinternet.mvnoroaming;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.CompoundButton;
import android.widget.EditText;
import android.widget.Switch;
import android.widget.Toast;
public class MVNORoamingStatusChanger extends Activity {
private static final String PROVIDER_KEY = "mvno_provider";
private static final String REBOOTSERVICE_KEY = "mvno_setonreboot";
private static final String TAG = "MVNOroaming";
private EditText editTextProvider;
private Button buttonUpdate;
private Switch switchReboot;
private SharedPreferences prefs;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_mvno);
editTextProvider = (EditText) findViewById(R.id.editTextProvider);
buttonUpdate = (Button) findViewById(R.id.buttonUpdate);
switchReboot = (Switch) findViewById(R.id.switchReboot);
prefs = this.getSharedPreferences("at.sprinternet.mvnoroaming", Context.MODE_PRIVATE);
//set listeners
switchReboot.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
Log.v(TAG, "Switch State="+isChecked);
prefs.edit().putBoolean(REBOOTSERVICE_KEY, isChecked).commit();
}
});
buttonUpdate.setOnClickListener(new Button.OnClickListener() {
@Override
public void onClick(View v) {
Log.v(TAG, "Button clicked");
prefs.edit().putString(PROVIDER_KEY, editTextProvider.getText().toString()).commit();
Boolean done = ExecuteAsRoot.exec("setprop gsm.sim.operator.alpha " + editTextProvider.getText().toString());
if(!done) {
Toast.makeText(getApplicationContext(), "Setting Service-Provider failed!", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(getApplicationContext(), "Updated Service-Provider!", Toast.LENGTH_LONG).show();
}
}
});
//init gui
String currentProvider = "";
Boolean setOnReboot = true;
currentProvider = prefs.getString(PROVIDER_KEY, ""); // default: empty
setOnReboot = prefs.getBoolean(REBOOTSERVICE_KEY, true);
editTextProvider.setText(currentProvider);
switchReboot.setChecked(setOnReboot);
}
}

Ver fichero

@ -0,0 +1,54 @@
package at.sprinternet.mvnoroaming;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.IBinder;
import android.util.Log;
import android.widget.Toast;
public class RebootService extends Service{
private static final String PROVIDER_KEY = "mvno_provider";
private static final String REBOOTSERVICE_KEY = "mvno_setonreboot";
private static final String TAG = "MVNOroaming";
private SharedPreferences prefs;
@Override
public void onCreate() {
super.onCreate();
prefs = this.getSharedPreferences("at.sprinternet.mvnoroaming", Context.MODE_PRIVATE);
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
String currentProvider = prefs.getString(PROVIDER_KEY, null);
Boolean runOnReboot = prefs.getBoolean(REBOOTSERVICE_KEY, true);
if(runOnReboot && currentProvider != null && "".compareTo(currentProvider) != 0 ) {
Boolean done = ExecuteAsRoot.exec("setprop gsm.sim.operator.alpha " + currentProvider);
Log.v(TAG, "Setprop result:" + done);
if(!done) {
Toast.makeText(getApplicationContext(), "Setting Service-Provider failed!", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(getApplicationContext(), "Updated Service-Provider!", Toast.LENGTH_LONG).show();
}
}
return Service.START_STICKY;
}
@Override
public void onDestroy() {
super.onDestroy();
Log.v(TAG, "Service destroyed");
}
@Override
public IBinder onBind(Intent arg0) {
return null;
}
}

Ver fichero

@ -0,0 +1,16 @@
package at.sprinternet.mvnoroaming;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
public class RebootServiceReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if ("android.intent.action.BOOT_COMPLETED".equals(intent.getAction())) {
Intent serviceIntent = new Intent(context, RebootService.class);
context.startService(serviceIntent);
}
}
}

BIN
srcres/icon_roam.png Archivo normal

Archivo binario no mostrado.

Después

Anchura:  |  Altura:  |  Tamaño: 5.4 KiB

BIN
srcres/icon_roam.xcf Archivo normal

Archivo binario no mostrado.