Merge branch 'dev-app-structure' into dev

Conflicts:
	android-app-core/src/main/java/org/solovyev/android/calculator/CalculatorButtons.java
	android-app/AndroidManifest.xml
	android-app/src/main/java/org/solovyev/android/calculator/about/CalculatorFragmentType.java
This commit is contained in:
Sergey Solovyev
2012-12-01 21:30:47 +04:00
698 changed files with 1528 additions and 1036 deletions

View File

@@ -0,0 +1,168 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:installLocation="auto" android:versionCode="112" android:versionName="1.5.3-SNAPSHOT" package="org.solovyev.android.calculator">
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="com.android.vending.BILLING"/>
<!--TODO: REMOVE IN PRODUCTION-->
<!--<uses-permission android:name="android.permission.DISABLE_KEYGUARD"/>-->
<!-- for onscreen -->
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<supports-screens android:smallScreens="true"/>
<supports-screens android:normalScreens="true"/>
<supports-screens android:largeScreens="true"/>
<supports-screens android:xlargeScreens="true"/>
<supports-screens android:anyDensity="true"/>
<uses-sdk android:minSdkVersion="4" android:targetSdkVersion="8"/>
<application android:debuggable="true" android:hardwareAccelerated="false" android:icon="@drawable/icon" android:label="@string/c_app_name" android:name=".CalculatorApplication" android:theme="@style/cpp_metro_blue_theme">
<activity android:clearTaskOnLaunch="true" android:label="@string/c_app_name" android:name=".CalculatorActivity" android:windowSoftInputMode="adjustPan">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity android:clearTaskOnLaunch="true" android:label="@string/c_app_name" android:name=".CalculatorActivityMobile" android:windowSoftInputMode="adjustPan"/>
<!-- settings must use action bar icon-->
<activity android:icon="@drawable/ab_icon" android:label="@string/c_app_settings" android:name=".CalculatorPreferencesActivity"/>
<activity android:label="@string/c_history" android:name=".history.CalculatorHistoryActivity"/>
<activity android:excludeFromRecents="true" android:finishOnTaskLaunch="true" android:label="@string/calculation_messages_dialog_title" android:launchMode="singleTask" android:name=".CalculatorMessagesDialog" android:theme="@style/Theme.Sherlock.Dialog"/>
<activity android:label="@string/c_about" android:name=".about.CalculatorAboutActivity"/>
<activity android:label="@string/c_help" android:name=".help.CalculatorHelpActivity"/>
<activity android:label="@string/c_functions" android:name=".math.edit.CalculatorFunctionsActivity"/>
<activity android:label="@string/c_operators" android:name=".math.edit.CalculatorOperatorsActivity"/>
<activity android:label="@string/c_vars_and_constants" android:name=".math.edit.CalculatorVarsActivity"/>
<activity android:label="@string/c_plot_graph" android:name=".plot.CalculatorPlotActivity"/>
<!-- todo serso: strings-->
<activity android:label="@string/c_plot_graph" android:name=".matrix.CalculatorMatrixActivity"/>
<activity android:name=".widget.CalculatorWidgetConfigurationActivity" android:theme="@style/cpp_metro_blue_theme">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_CONFIGURE"/>
</intent-filter>
</activity>
<!-- settings must use action bar icon-->
<activity android:icon="@drawable/ab_icon" android:label="@string/c_settings" android:name=".plot.CalculatorPlotPreferenceActivity"/>
<!-- ONSCREEN CONFIG -->
<activity android:icon="@drawable/icon_onscreen" android:label="@string/c_app_name_on_screen" android:launchMode="singleInstance" android:name=".onscreen.CalculatorOnscreenStartActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<service android:name=".onscreen.CalculatorOnscreenService">
<intent-filter>
<action android:name="org.solovyev.android.calculator.INIT"/>
<action android:name="org.solovyev.android.calculator.EDITOR_STATE_CHANGED"/>
<action android:name="org.solovyev.android.calculator.DISPLAY_STATE_CHANGED"/>
</intent-filter>
</service>
<receiver android:name=".onscreen.CalculatorOnscreenBroadcastReceiver">
<intent-filter>
<action android:name="org.solovyev.android.calculator.INIT"/>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
<action android:name="org.solovyev.android.calculator.EDITOR_STATE_CHANGED"/>
<action android:name="org.solovyev.android.calculator.DISPLAY_STATE_CHANGED"/>
</intent-filter>
</receiver>
<!-- WIDGET CONFIG -->
<receiver android:icon="@drawable/icon" android:label="@string/c_app_widget_3x3_name" android:name=".widget.CalculatorWidgetProvider">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE"/>
<action android:name="org.solovyev.android.calculator.INIT"/>
<action android:name="org.solovyev.android.calculator.EDITOR_STATE_CHANGED"/>
<action android:name="org.solovyev.android.calculator.DISPLAY_STATE_CHANGED"/>
<action android:name="org.solovyev.android.calculator.widget.BUTTON_PRESSED"/>
</intent-filter>
<meta-data android:name="android.appwidget.provider" android:resource="@xml/calculator_widget_info_3x3"/>
</receiver>
<receiver android:icon="@drawable/icon" android:label="@string/c_app_widget_3x4_name" android:name=".widget.CalculatorWidgetProvider3x4">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE"/>
<action android:name="org.solovyev.android.calculator.INIT"/>
<action android:name="org.solovyev.android.calculator.EDITOR_STATE_CHANGED"/>
<action android:name="org.solovyev.android.calculator.DISPLAY_STATE_CHANGED"/>
<action android:name="org.solovyev.android.calculator.widget.BUTTON_PRESSED"/>
</intent-filter>
<meta-data android:name="android.appwidget.provider" android:resource="@xml/calculator_widget_info_3x4"/>
</receiver>
<receiver android:icon="@drawable/icon" android:label="@string/c_app_widget_4x4_name" android:name=".widget.CalculatorWidgetProvider4x4">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE"/>
<action android:name="org.solovyev.android.calculator.INIT"/>
<action android:name="org.solovyev.android.calculator.EDITOR_STATE_CHANGED"/>
<action android:name="org.solovyev.android.calculator.DISPLAY_STATE_CHANGED"/>
<action android:name="org.solovyev.android.calculator.widget.BUTTON_PRESSED"/>
</intent-filter>
<meta-data android:name="android.appwidget.provider" android:resource="@xml/calculator_widget_info_4x4"/>
</receiver>
<receiver android:icon="@drawable/icon" android:label="@string/c_app_widget_4x5_name" android:name=".widget.CalculatorWidgetProvider4x5">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE"/>
<action android:name="org.solovyev.android.calculator.INIT"/>
<action android:name="org.solovyev.android.calculator.EDITOR_STATE_CHANGED"/>
<action android:name="org.solovyev.android.calculator.DISPLAY_STATE_CHANGED"/>
<action android:name="org.solovyev.android.calculator.widget.BUTTON_PRESSED"/>
</intent-filter>
<meta-data android:name="android.appwidget.provider" android:resource="@xml/calculator_widget_info_4x5"/>
</receiver>
<!-- ADMOB + BILLING CONFIG -->
<activity android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" android:name="com.google.ads.AdActivity"/>
<service android:name="net.robotmedia.billing.BillingService"/>
<receiver android:name="net.robotmedia.billing.BillingReceiver">
<intent-filter>
<action android:name="com.android.vending.billing.IN_APP_NOTIFY"/>
<action android:name="com.android.vending.billing.RESPONSE_CODE"/>
<action android:name="com.android.vending.billing.PURCHASE_STATE_CHANGED"/>
</intent-filter>
</receiver>
<!-- ACRA CONFIG -->
<activity android:excludeFromRecents="true" android:finishOnTaskLaunch="true" android:launchMode="singleInstance" android:name="org.acra.CrashReportDialog" android:theme="@style/Theme.Sherlock.Dialog"/>
</application>
</manifest>

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,69 @@
#!/bin/bash
declare -a densities=("160" "213" "240" "320")
declare -a resolutions=("480x640" "480x800" "480x854" "640x960" "1024x600" "1024x768" "1280x768")
declare -a targets=("android-16")
for target in ${targets[@]}
do
for density in ${densities[@]}
do
for resolution in ${resolutions[@]}
do
name="AVD"
name="$name$density"
name="$name$resolution"
name="$name$target"
echo "Creating AVD $name"
echo "Density: $density"
echo "Resolution: $resolution"
echo "Target: $target"
$ANDROID_HOME/tools/android -s create avd -n $name -t $target -b x86 --force -s $resolution
if grep -R "hw.lcd.density" $HOME/.android/avd/$name.avd/config.ini
then
# replace density in config.ini
sed -i "s/hw.lcd.density=240/hw.lcd.density=$density/g" $HOME/.android/avd/$name.avd/config.ini
else
# code if not found
echo "hw.lcd.density=$density" >> $HOME/.android/avd/$name.avd/config.ini
fi
echo "sdcard.size=64M" >> $HOME/.android/avd/$name.avd/config.ini
echo "vm.heapSize=48" >> $HOME/.android/avd/$name.avd/config.ini
echo "hw.ramSize=256" >> $HOME/.android/avd/$name.avd/config.ini
#arr=(${resolution//x/ })
#echo "hw.lcd.width = ${arr[0]}" >> $HOME/.android/avd/$name.avd/config.ini
#echo "hw.lcd.height = ${arr[1]}" >> $HOME/.android/avd/$name.avd/config.ini
done
done
done
for target in ${targets[@]}
do
for density in ${densities[@]}
do
for resolution in ${resolutions[@]}
do
name="AVD"
name="$name$density"
name="$name$resolution"
name="$name$target"
$ANDROID_HOME/tools/emulator -avd $name &
$ANDROID_HOME/tools/monkeyrunner ./wait_device.py
$ANDROID_HOME/platform-tools/adb -s emulator-5580 emu kill
done
done
done

View File

@@ -0,0 +1,24 @@
#!/bin/bash
declare -a densities=("160" "213" "240" "320")
declare -a resolutions=("320x480" "480x640" "480x800" "480x854" "640x960" "1024x600" "1024x768" "1280x768" "1536x1152" "1920x1200")
declare -a targets=("android-16")
for target in ${targets[@]}
do
for density in ${densities[@]}
do
for resolution in ${resolutions[@]}
do
name="AVD"
name="$name$density"
name="$name$resolution"
name="$name$target"
$ANDROID_HOME/tools/android -s delete avd -n $name
done
done
done

View File

@@ -0,0 +1,77 @@
from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice
import time
import sys
outFolder = sys.argv[1]
outFilename = sys.argv[2]
print ''
print 'Screenshot will be located in ' + outFolder + ' with name ' + outFilename;
apk = '/home/serso/projects/java/android/calculatorpp/calculatorpp/misc/other/tmp/2012.11.25/calculatorpp.apk'
package = 'org.solovyev.android.calculator'
activity = 'org.solovyev.android.calculator.CalculatorActivity'
mobileActivity = 'org.solovyev.android.calculator.CalculatorActivityMobile'
operatorsActivity = 'org.solovyev.android.calculator.math.edit.CalculatorOperatorsActivity'
deviceName = 'emulator-5580'
def takeScreenshot (folder, filename):
screenshot = device.takeSnapshot()
screenshot.writeToFile(folder + '/' + filename + '.png','png')
return
print 'Waiting for device ' + deviceName + '...'
device = MonkeyRunner.waitForConnection(100, deviceName)
if device:
print 'Device found, removing application if any ' + package + '...'
device.removePackage(package)
print 'Installing apk ' + apk + '...'
device.installPackage(apk)
runComponent = package + '/' + activity
print 'Starting activity ' + runComponent + '...'
device.startActivity(component=runComponent)
# sleep while application will be loaded
MonkeyRunner.sleep(15);
print 'Taking screenshot...'
#outFilename = outFilename + '_' + str(time.time())
takeScreenshot(outFolder, outFilename);
runComponent = package + '/' + operatorsActivity
print 'Starting activity ' + runComponent + '...'
device.startActivity(component=runComponent)
# sleep while application will be loaded
MonkeyRunner.sleep(4);
print 'Taking screenshot...'
#outFilename = outFilename + '_' + str(time.time())
takeScreenshot(outFolder, outFilename + '_operators');
runComponent = package + '/' + mobileActivity
print 'Starting activity ' + runComponent + '...'
device.startActivity(component=runComponent)
# sleep while application will be loaded
MonkeyRunner.sleep(4);
print 'Taking screenshot...'
#outFilename = outFilename + '_' + str(time.time())
takeScreenshot(outFolder, outFilename + '_mobile');
print '#########'
print 'Finished!'
print '#########'
else:
print '#########'
print 'Failure!'
print '#########'

View File

@@ -0,0 +1,49 @@
#!/bin/bash
predefined=1
scale=0.51
# first predefined
if [ $predefined -eq 1 ]
then
declare -a names=("AVD_Galaxy_Tab" "AVD_Nexus_S_by_Google" "AVD_Nexus_One_by_Google" "AVD_Nexus_7_by_Google" "AVD_Galaxy_Nexus_by_Google")
for name in ${names[@]}
do
$ANDROID_HOME/tools/emulator -ports 5580,5581 -avd $name -scale $scale &
sleep 50
$ANDROID_HOME/tools/monkeyrunner ./take_screenshots.py ~/projects/java/android/calculatorpp/calculatorpp/misc/other/tmp/2012.11.25 $name
$ANDROID_HOME/platform-tools/adb -s emulator-5580 emu kill
sleep 3
done
fi
# then all others
declare -a densities=("160" "213" "240" "320")
#declare -a densities=("213" "240" "320")
declare -a resolutions=("480x640" "480x800" "480x854" "640x960" "1024x600" "1024x768" "1280x768")
#declare -a resolutions=("480x640")
declare -a targets=("android-16")
for target in ${targets[@]}
do
for density in ${densities[@]}
do
for resolution in ${resolutions[@]}
do
name="AVD"
name="$name$density"
name="$name$resolution"
name="$name$target"
$ANDROID_HOME/tools/emulator -ports 5580,5581 -avd $name -scale $scale &
sleep 5
$ANDROID_HOME/tools/monkeyrunner ./take_screenshots.py ~/projects/java/android/calculatorpp/calculatorpp/misc/other/tmp/2012.11.25 $name
$ANDROID_HOME/platform-tools/adb -s emulator-5580 emu kill
sleep 3
done
done
done

View File

@@ -0,0 +1,19 @@
#!/bin/bash
predefined=1
scale=0.51
# first predefined
if [ $predefined -eq 1 ]
then
declare -a names=("AVD_Nexus_7_by_Google")
for name in ${names[@]}
do
$ANDROID_HOME/tools/emulator -ports 5580,5581 -avd $name -scale $scale &
sleep 50
$ANDROID_HOME/tools/monkeyrunner ./take_screenshots.py ~/projects/java/android/calculatorpp/calculatorpp/misc/other/tmp/2012.11.25 $name
$ANDROID_HOME/platform-tools/adb -s emulator-5580 emu kill
sleep 3
done
fi

View File

@@ -0,0 +1,10 @@
from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice
print 'Waiting for device...'
device = MonkeyRunner.waitForConnection(100, 'emulator-5580')
print 'Finished'
if device :
print 'Success'
else :
print 'Failure'

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 176 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 745 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 940 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

Binary file not shown.

304
android-app/pom.xml Normal file
View File

@@ -0,0 +1,304 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<groupId>org.solovyev.android</groupId>
<artifactId>calculatorpp-parent</artifactId>
<version>1.5.3-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.solovyev.android</groupId>
<artifactId>calculatorpp-android-app</artifactId>
<packaging>apk</packaging>
<name>Calculator++ Application</name>
<dependencies>
<!-- OWN -->
<dependency>
<groupId>org.solovyev.android</groupId>
<artifactId>calculatorpp-core</artifactId>
</dependency>
<dependency>
<groupId>org.solovyev.android</groupId>
<artifactId>calculatorpp-android-app-core</artifactId>
<type>apklib</type>
</dependency>
<dependency>
<groupId>org.solovyev.android</groupId>
<artifactId>calculatorpp-android-app-widget</artifactId>
<type>apklib</type>
</dependency>
<dependency>
<groupId>org.solovyev.android</groupId>
<artifactId>calculatorpp-android-app-onscreen</artifactId>
<type>apklib</type>
</dependency>
<dependency>
<groupId>org.solovyev</groupId>
<artifactId>common-core</artifactId>
</dependency>
<dependency>
<groupId>org.solovyev</groupId>
<artifactId>common-text</artifactId>
</dependency>
<dependency>
<groupId>org.solovyev.android</groupId>
<artifactId>android-common-all</artifactId>
<type>apklib</type>
</dependency>
<dependency>
<groupId>org.solovyev</groupId>
<artifactId>jscl</artifactId>
</dependency>
<!--OTHER-->
<dependency>
<groupId>ch.acra</groupId>
<artifactId>acra</artifactId>
<version>4.3.0</version>
</dependency>
<dependency>
<groupId>com.google.android</groupId>
<artifactId>android</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.google.android</groupId>
<artifactId>support-v4</artifactId>
</dependency>
<dependency>
<groupId>com.actionbarsherlock</groupId>
<artifactId>library</artifactId>
<type>apklib</type>
</dependency>
<dependency>
<groupId>net.sf.opencsv</groupId>
<artifactId>opencsv</artifactId>
<version>2.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>1.9.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.simpleframework</groupId>
<artifactId>simple-xml</artifactId>
</dependency>
<dependency>
<groupId>achartengine</groupId>
<artifactId>achartengine</artifactId>
<version>0.7.1</version>
</dependency>
<dependency>
<groupId>admob</groupId>
<artifactId>admob</artifactId>
<version>6.1.0</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>11.0.2</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.intellij</groupId>
<artifactId>annotations</artifactId>
</dependency>
<dependency>
<groupId>com.pivotallabs</groupId>
<artifactId>robolectric</artifactId>
<version>1.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
<artifactId>android-maven-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<manifest>
<debuggable>true</debuggable>
</manifest>
</configuration>
<executions>
<execution>
<id>manifestUpdate</id>
<phase>process-resources</phase>
<goals>
<goal>manifest-update</goal>
</goals>
</execution>
<execution>
<id>alignApk</id>
<phase>package</phase>
<goals>
<goal>zipalign</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>release</id>
<!-- via this activation the profile is automatically used when the release is done with the maven release
plugin -->
<activation>
<property>
<name>performRelease</name>
<value>true</value>
</property>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jarsigner-plugin</artifactId>
<executions>
<execution>
<id>signing</id>
<goals>
<goal>sign</goal>
<goal>verify</goal>
</goals>
<phase>package</phase>
<inherited>true</inherited>
<configuration>
<removeExistingSignatures>true</removeExistingSignatures>
<includes>
<include>${project.build.directory}/${project.artifactId}-${project.version}.apk</include>
</includes>
<verbose>true</verbose>
</configuration>
</execution>
</executions>
</plugin>
<!-- the signed apk then needs to be zipaligned and we activate proguard and we run the manifest
update -->
<plugin>
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
<artifactId>android-maven-plugin</artifactId>
<inherited>true</inherited>
<configuration>
<sign>
<debug>false</debug>
</sign>
<zipalign>
<skip>false</skip>
<verbose>true</verbose>
<inputApk>${project.build.directory}/${project.artifactId}-${project.version}.apk</inputApk>
<outputApk>${project.build.directory}/${project.artifactId}-${project.version}-signed-aligned.apk</outputApk>
</zipalign>
<manifest>
<debuggable>false</debuggable>
<versionCodeAutoIncrement>true</versionCodeAutoIncrement>
</manifest>
<proguard>
<skip>false</skip>
</proguard>
</configuration>
<executions>
<execution>
<id>manifestUpdate</id>
<phase>process-resources</phase>
<goals>
<goal>manifest-update</goal>
</goals>
</execution>
<execution>
<id>alignApk</id>
<phase>package</phase>
<goals>
<goal>zipalign</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<configuration>
<artifacts>
<artifact>
<file>${project.build.directory}/${project.artifactId}-${project.version}-signed-aligned.apk</file>
<type>apk</type>
<classifier>signed-aligned</classifier>
</artifact>
<artifact>
<file>${project.build.directory}/proguard/mapping.txt</file>
<type>map</type>
<classifier>release</classifier>
</artifact>
</artifacts>
</configuration>
<executions>
<execution>
<id>attach-signed-aligned</id>
<phase>package</phase>
<goals>
<goal>attach-artifact</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>

134
android-app/proguard.cfg Normal file
View File

@@ -0,0 +1,134 @@
-target 1.6
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-repackageclasses ''
-allowaccessmodification
-optimizations !code/simplification/arithmetic
-keepattributes *Annotation*
-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.view.View {
public <init>(android.content.Context);
public <init>(android.content.Context, android.util.AttributeSet);
public <init>(android.content.Context, android.util.AttributeSet, int);
public void set*(...);
}
-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet);
}
-keepclasseswithmembers class * {
public <init>(android.content.Context, android.util.AttributeSet, int);
}
-keepclassmembers class * extends android.content.Context {
public void *(android.view.View);
public void *(android.view.MenuItem);
}
-keepclassmembers class * implements android.os.Parcelable {
static android.os.Parcelable$Creator CREATOR;
}
-keepclassmembers class **.R$* {
public static <fields>;
}
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
-keep @org.simpleframework.xml.Root public class * {
*;
}
-dontwarn javax.xml.stream.**
-dontwarn com.bea.xml.stream.**
-dontwarn sun.misc.Unsafe
-dontwarn android.annotation.TargetApi
-dontwarn org.solovyev.common.math.visualisation.**
-dontwarn org.solovyev.common.math.graph.**
-dontwarn org.solovyev.common.math.algorithms.**
-dontwarn org.solovyev.common.drawing.**
-dontwarn org.joda.**
-dontwarn jscl.mathml.**
-dontwarn com.google.common.collect.MinMaxPriorityQueue
-keep class org.simpleframework.xml.** { *; }
-keep class * implements org.solovyev.android.calculator.model.MathPersistenceEntity
-keep class * implements org.solovyev.android.calculator.MathEntityPersistenceContainer
#
#*********************************************************************
#
# LOGS
#
#*********************************************************************
#
-assumenosideeffects class android.util.Log {
public static int v(...);
public static int d(...);
public static int i(...);
public static int w(...);
public static int e(...);
}
#
#*********************************************************************
#
# SHERLOCK
#
#*********************************************************************
#
-keep class android.support.v4.app.** { *; }
-keep interface android.support.v4.app.** { *; }
-keep class com.actionbarsherlock.** { *; }
-keep interface com.actionbarsherlock.** { *; }
#
#*********************************************************************
#
# ACRA
#
#*********************************************************************
#
# we need line numbers in our stack traces otherwise they are pretty useless
-renamesourcefileattribute SourceFile
-keepattributes SourceFile,LineNumberTable
# ACRA needs "annotations" so add this...
-keepattributes *Annotation*
# keep this class so that logging will show 'ACRA' and not a obfuscated name like 'a'.
# Note: if you are removing log messages elsewhere in this file then this isn't necessary
-keep class org.acra.ACRA {
*;
}
# keep this around for some enums that ACRA needs
-keep class org.acra.ReportingInteractionMode {
*;
}
# keep this otherwise it is removed by ProGuard
-keep public class org.acra.ErrorReporter
{
public void addCustomData(java.lang.String,java.lang.String);
}
# keep this otherwise it is removed by ProGuard
-keep public class org.acra.ErrorReporter
{
public org.acra.ErrorReporter$ReportsSenderWorker handleSilentException(java.lang.Throwable);
}

View File

@@ -0,0 +1,30 @@
# 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 use,
# "ant.properties", and override values to adapt the script to your
# project structure.
# Project target.
target=android-15
android.library.reference.1=../android-app-core
android.library.reference.2=../android-app-widget
android.library.reference.3=../android-app-onscreen
android.library.reference.4=gen-external-apklibs/org.solovyev.android_android-common-all_1.0.6
android.library.reference.5=gen-external-apklibs/org.solovyev.android_android-common-ads_1.0.6
android.library.reference.6=gen-external-apklibs/org.solovyev.android_android-common-core_1.0.6
android.library.reference.7=gen-external-apklibs/org.solovyev.android_android-common-billing_1.0.6
android.library.reference.8=gen-external-apklibs/org.solovyev.android_android-common-db_1.0.6
android.library.reference.9=gen-external-apklibs/org.solovyev.android_android-common-http_1.0.6
android.library.reference.10=gen-external-apklibs/org.solovyev.android_android-common-list_1.0.6
android.library.reference.11=gen-external-apklibs/org.solovyev.android_android-common-view_1.0.6
android.library.reference.12=gen-external-apklibs/org.solovyev.android_android-common-preferences_1.0.6
android.library.reference.13=gen-external-apklibs/org.solovyev.android_android-common-menu_1.0.6
android.library.reference.14=gen-external-apklibs/org.solovyev.android_android-common-other_1.0.6
android.library.reference.15=gen-external-apklibs/org.solovyev.android_android-common-sherlock_1.0.6
android.library.reference.16=gen-external-apklibs/com.actionbarsherlock_actionbarsherlock_4.2.0
android.library.reference.17=gen-external-apklibs/org.solovyev.android_android-common-keyboard_1.0.6

View File

@@ -0,0 +1,53 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:a="http://schemas.android.com/apk/res/android"
a:layout_width="match_parent"
a:layout_height="match_parent"
a:orientation="vertical">
<LinearLayout a:layout_weight="1"
a:layout_width="match_parent"
a:layout_height="0dp">
<include layout="@layout/cpp_drag_button_vars"/>
<include layout="@layout/cpp_app_button_copy"/>
<include layout="@layout/cpp_drag_button_7"/>
<include layout="@layout/cpp_drag_button_8"/>
<include layout="@layout/cpp_drag_button_9"/>
<include layout="@layout/cpp_drag_button_multiplication"/>
<include layout="@layout/cpp_drag_button_division"/>
<include layout="@layout/cpp_drag_button_equals"/>
</LinearLayout>
<LinearLayout a:layout_weight="1"
a:layout_width="match_parent"
a:layout_height="0dp">
<include layout="@layout/cpp_drag_button_functions"/>
<include layout="@layout/cpp_app_button_paste"/>
<include layout="@layout/cpp_drag_button_4"/>
<include layout="@layout/cpp_drag_button_5"/>
<include layout="@layout/cpp_drag_button_6"/>
<include layout="@layout/cpp_drag_button_plus"/>
<include layout="@layout/cpp_drag_button_subtraction"/>
<include layout="@layout/cpp_drag_button_round_brackets"/>
</LinearLayout>
<LinearLayout a:layout_weight="1"
a:layout_width="match_parent"
a:layout_height="0dp">
<include layout="@layout/cpp_drag_button_operators"/>
<include layout="@layout/cpp_app_button_donate"/>
<include layout="@layout/cpp_drag_button_1"/>
<include layout="@layout/cpp_drag_button_2"/>
<include layout="@layout/cpp_drag_button_3"/>
<include layout="@layout/cpp_drag_button_0"/>
<include layout="@layout/cpp_drag_button_dot"/>
<include layout="@layout/cpp_drag_button_history"/>
</LinearLayout>
</LinearLayout>

View File

@@ -0,0 +1,53 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:a="http://schemas.android.com/apk/res/android"
a:layout_width="match_parent"
a:layout_height="match_parent"
a:orientation="vertical">
<LinearLayout a:layout_weight="1"
a:layout_width="match_parent"
a:layout_height="0dp">
<include layout="@layout/cpp_drag_button_vars"/>
<include layout="@layout/cpp_app_button_copy"/>
<include layout="@layout/cpp_drag_button_7"/>
<include layout="@layout/cpp_drag_button_8"/>
<include layout="@layout/cpp_drag_button_9"/>
<include layout="@layout/cpp_drag_button_multiplication"/>
<include layout="@layout/cpp_drag_button_division"/>
<include layout="@layout/cpp_drag_button_equals"/>
</LinearLayout>
<LinearLayout a:layout_weight="1"
a:layout_width="match_parent"
a:layout_height="0dp">
<include layout="@layout/cpp_drag_button_functions"/>
<include layout="@layout/cpp_app_button_paste"/>
<include layout="@layout/cpp_drag_button_4"/>
<include layout="@layout/cpp_drag_button_5"/>
<include layout="@layout/cpp_drag_button_6"/>
<include layout="@layout/cpp_drag_button_plus"/>
<include layout="@layout/cpp_drag_button_subtraction"/>
<include layout="@layout/cpp_drag_button_round_brackets"/>
</LinearLayout>
<LinearLayout a:layout_weight="1"
a:layout_width="match_parent"
a:layout_height="0dp">
<include layout="@layout/cpp_drag_button_operators"/>
<include layout="@layout/cpp_app_button_donate"/>
<include layout="@layout/cpp_drag_button_1"/>
<include layout="@layout/cpp_drag_button_2"/>
<include layout="@layout/cpp_drag_button_3"/>
<include layout="@layout/cpp_drag_button_0"/>
<include layout="@layout/cpp_drag_button_dot"/>
<include layout="@layout/cpp_drag_button_history"/>
</LinearLayout>
</LinearLayout>

View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright (c) 2009-2011. Created by serso aka se.solovyev.
~ For more information, please, contact se.solovyev@gmail.com
~ or visit http://se.solovyev.org
-->
<LinearLayout
xmlns:a="http://schemas.android.com/apk/res/android"
a:id="@+id/main_layout"
a:orientation="vertical"
style="?cpp_main_layout_style">
<include layout="@layout/main_first_pane"/>
</LinearLayout>

View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright (c) 2009-2011. Created by serso aka se.solovyev.
~ For more information, please, contact se.solovyev@gmail.com
~ or visit http://se.solovyev.org
-->
<LinearLayout
xmlns:a="http://schemas.android.com/apk/res/android"
a:id="@+id/main_layout"
a:orientation="vertical"
style="?cpp_main_layout_style">
<include layout="@layout/main_first_pane_mobile"/>
</LinearLayout>

View File

@@ -0,0 +1,62 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright (c) 2009-2011. Created by serso aka se.solovyev.
~ For more information, please, contact se.solovyev@gmail.com
~ or visit http://se.solovyev.org
-->
<LinearLayout
xmlns:a="http://schemas.android.com/apk/res/android"
a:layout_width="match_parent"
a:layout_height="match_parent"
a:orientation="vertical"
a:layout_gravity="center">
<LinearLayout a:id="@+id/editorContainer"
a:layout_weight="2"
a:layout_width="match_parent"
a:layout_height="0dp"/>
<LinearLayout a:layout_weight="1"
a:layout_width="match_parent"
a:layout_height="0dp">
<include layout="@layout/cpp_drag_button_left"
a:layout_margin="@dimen/cpp_button_margin"
a:layout_width="0dp"
a:layout_height="match_parent"
a:layout_weight="1"/>
<include layout="@layout/cpp_app_button_erase"
a:layout_margin="@dimen/cpp_button_margin"
a:layout_width="0dp"
a:layout_height="match_parent"
a:layout_weight="1"/>
<LinearLayout a:id="@+id/displayContainer"
a:layout_height="match_parent"
a:layout_width="0dp"
a:layout_weight="4"
a:layout_margin="@dimen/cpp_display_margin_land"/>
<include layout="@layout/cpp_drag_button_clear"
a:layout_margin="@dimen/cpp_button_margin"
a:layout_width="0dp"
a:layout_height="match_parent"
a:layout_weight="1"/>
<include layout="@layout/cpp_drag_button_right"
a:layout_margin="@dimen/cpp_button_margin"
a:layout_width="0dp"
a:layout_height="match_parent"
a:layout_weight="1"/>
</LinearLayout>
<LinearLayout a:id="@+id/keyboardContainer"
a:layout_weight="3"
a:layout_width="match_parent"
a:layout_height="0dp"/>
</LinearLayout>

View File

@@ -0,0 +1,62 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright (c) 2009-2011. Created by serso aka se.solovyev.
~ For more information, please, contact se.solovyev@gmail.com
~ or visit http://se.solovyev.org
-->
<LinearLayout
xmlns:a="http://schemas.android.com/apk/res/android"
a:layout_width="match_parent"
a:layout_height="match_parent"
a:orientation="vertical"
a:layout_gravity="center">
<LinearLayout a:id="@+id/editorContainer"
a:layout_weight="2"
a:layout_width="match_parent"
a:layout_height="0dp"/>
<LinearLayout a:layout_weight="1"
a:layout_width="match_parent"
a:layout_height="0dp">
<include layout="@layout/cpp_drag_button_left"
a:layout_margin="@dimen/cpp_button_margin"
a:layout_width="0dp"
a:layout_height="match_parent"
a:layout_weight="1"/>
<include layout="@layout/cpp_app_button_erase"
a:layout_margin="@dimen/cpp_button_margin"
a:layout_width="0dp"
a:layout_height="match_parent"
a:layout_weight="1"/>
<LinearLayout a:id="@+id/displayContainer"
a:layout_height="match_parent"
a:layout_width="0dp"
a:layout_weight="4"
a:layout_margin="@dimen/cpp_display_margin_land"/>
<include layout="@layout/cpp_drag_button_clear"
a:layout_margin="@dimen/cpp_button_margin"
a:layout_width="0dp"
a:layout_height="match_parent"
a:layout_weight="1"/>
<include layout="@layout/cpp_drag_button_right"
a:layout_margin="@dimen/cpp_button_margin"
a:layout_width="0dp"
a:layout_height="match_parent"
a:layout_weight="1"/>
</LinearLayout>
<LinearLayout a:id="@+id/keyboardContainer"
a:layout_weight="3"
a:layout_width="match_parent"
a:layout_height="0dp"/>
</LinearLayout>

View File

@@ -0,0 +1,60 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:a="http://schemas.android.com/apk/res/android"
a:layout_width="match_parent"
a:layout_height="match_parent"
a:orientation="vertical">
<LinearLayout a:layout_weight="1"
a:layout_width="match_parent"
a:layout_height="0dp">
<include layout="@layout/cpp_drag_button_left"/>
<include layout="@layout/cpp_app_button_erase"/>
<include layout="@layout/cpp_app_button_donate"/>
<include layout="@layout/cpp_drag_button_7"/>
<include layout="@layout/cpp_drag_button_8"/>
<include layout="@layout/cpp_drag_button_9"/>
<include layout="@layout/cpp_drag_button_multiplication"/>
<include layout="@layout/cpp_drag_button_division"/>
<include layout="@layout/cpp_drag_button_clear"/>
<include layout="@layout/cpp_drag_button_right"/>
</LinearLayout>
<LinearLayout a:layout_weight="1"
a:layout_width="match_parent"
a:layout_height="0dp">
<include layout="@layout/cpp_drag_button_vars"/>
<include layout="@layout/cpp_drag_button_functions"/>
<include layout="@layout/cpp_drag_button_empty"/>
<include layout="@layout/cpp_drag_button_4"/>
<include layout="@layout/cpp_drag_button_5"/>
<include layout="@layout/cpp_drag_button_6"/>
<include layout="@layout/cpp_drag_button_plus"/>
<include layout="@layout/cpp_drag_button_subtraction"/>
<include layout="@layout/cpp_app_button_copy"/>
<include layout="@layout/cpp_drag_button_equals"/>
</LinearLayout>
<LinearLayout a:layout_weight="1"
a:layout_width="match_parent"
a:layout_height="0dp">
<include layout="@layout/cpp_drag_button_empty"/>
<include layout="@layout/cpp_drag_button_operators"/>
<include layout="@layout/cpp_drag_button_dot"/>
<include layout="@layout/cpp_drag_button_1"/>
<include layout="@layout/cpp_drag_button_2"/>
<include layout="@layout/cpp_drag_button_3"/>
<include layout="@layout/cpp_drag_button_0"/>
<include layout="@layout/cpp_drag_button_round_brackets"/>
<include layout="@layout/cpp_app_button_paste"/>
<include layout="@layout/cpp_drag_button_history"/>
</LinearLayout>
</LinearLayout>

View File

@@ -0,0 +1,57 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright (c) 2009-2011. Created by serso aka se.solovyev.
~ For more information, please, contact se.solovyev@gmail.com
~ or visit http://se.solovyev.org
-->
<LinearLayout
xmlns:a="http://schemas.android.com/apk/res/android"
a:id="@+id/main_layout"
a:orientation="vertical"
style="?cpp_main_multi_pane_layout_style">
<LinearLayout
a:layout_height="0dp"
a:layout_width="match_parent"
a:layout_weight="3"
a:orientation="horizontal"
a:baselineAligned="false">
<LinearLayout
a:layout_height="match_parent"
a:layout_width="0dp"
a:layout_weight="1"
a:orientation="vertical"
a:layout_gravity="center">
<LinearLayout a:id="@+id/editorContainer"
a:layout_height="0dp"
a:layout_width="match_parent"
style="?cpp_pane_style"
a:layout_weight="1"/>
<LinearLayout a:id="@+id/displayContainer"
a:layout_height="0dp"
a:layout_width="match_parent"
style="?cpp_pane_style"
a:layout_weight="1"/>
</LinearLayout>
<LinearLayout a:id="@+id/main_second_pane"
a:layout_height="match_parent"
a:layout_width="0dp"
a:layout_weight="1"
a:orientation="vertical"
style="?cpp_pane_style"/>
</LinearLayout>
<LinearLayout a:id="@+id/keyboardContainer"
a:layout_height="0dp"
a:layout_width="match_parent"
a:layout_weight="2"
style="?cpp_pane_style_transparent"/>
</LinearLayout>

View File

@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright (c) 2009-2011. Created by serso aka se.solovyev.
~ For more information, please, contact se.solovyev@gmail.com
~ or visit http://se.solovyev.org
-->
<LinearLayout xmlns:a="http://schemas.android.com/apk/res/android"
a:id="@+id/main_fragment_layout"
style="?cpp_fragment_layout_style"
a:layout_width="match_parent"
a:layout_height="match_parent">
<TextView a:id="@+id/fragment_title"
a:layout_height="wrap_content"
a:layout_width="match_parent"
style="?cpp_fragment_title_style"/>
<org.solovyev.android.calculator.AndroidCalculatorDisplayView
a:id="@+id/calculator_display"
style="@style/cpp_display_style"
a:inputType="textMultiLine"
a:maxLines="3"
a:scrollHorizontally="false"
a:scrollbars="none"/>
</LinearLayout>

View File

@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright (c) 2009-2011. Created by serso aka se.solovyev.
~ For more information, please, contact se.solovyev@gmail.com
~ or visit http://se.solovyev.org
-->
<LinearLayout xmlns:a="http://schemas.android.com/apk/res/android"
a:id="@+id/main_fragment_layout"
style="?cpp_fragment_layout_style"
a:layout_width="match_parent"
a:layout_height="match_parent">
<TextView a:id="@+id/fragment_title"
a:layout_height="wrap_content"
a:layout_width="match_parent"
style="?cpp_fragment_title_style"/>
<org.solovyev.android.calculator.AndroidCalculatorEditorView
a:id="@+id/calculator_editor"
style="@style/cpp_editor_style"
a:textIsSelectable="true"
a:singleLine="false"
a:scrollbars="vertical"
a:hint ="@string/c_calc_editor_hint"/>
</LinearLayout>

View File

@@ -0,0 +1,64 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:a="http://schemas.android.com/apk/res/android"
a:layout_width="match_parent"
a:layout_height="match_parent"
a:orientation="vertical">
<LinearLayout a:layout_weight="1"
a:layout_width="match_parent"
a:layout_height="0dp">
<include layout="@layout/cpp_drag_button_left"/>
<include layout="@layout/cpp_app_button_erase"/>
<include layout="@layout/cpp_drag_button_7"/>
<include layout="@layout/cpp_drag_button_8"/>
<include layout="@layout/cpp_drag_button_9"/>
<include layout="@layout/cpp_drag_button_multiplication"/>
<include layout="@layout/cpp_drag_button_right"/>
</LinearLayout>
<LinearLayout a:layout_weight="1"
a:layout_width="match_parent"
a:layout_height="0dp">
<include layout="@layout/cpp_drag_button_vars"/>
<include layout="@layout/cpp_drag_button_clear"/>
<include layout="@layout/cpp_drag_button_4"/>
<include layout="@layout/cpp_drag_button_5"/>
<include layout="@layout/cpp_drag_button_6"/>
<include layout="@layout/cpp_drag_button_division"/>
<include layout="@layout/cpp_app_button_copy"/>
</LinearLayout>
<LinearLayout a:layout_weight="1"
a:layout_width="match_parent"
a:layout_height="0dp">
<include layout="@layout/cpp_drag_button_functions"/>
<include layout="@layout/cpp_drag_button_equals"/>
<include layout="@layout/cpp_drag_button_1"/>
<include layout="@layout/cpp_drag_button_2"/>
<include layout="@layout/cpp_drag_button_3"/>
<include layout="@layout/cpp_drag_button_plus"/>
<include layout="@layout/cpp_app_button_paste"/>
</LinearLayout>
<LinearLayout a:layout_weight="1"
a:layout_width="match_parent"
a:layout_height="0dp">
<include layout="@layout/cpp_drag_button_operators"/>
<include layout="@layout/cpp_app_button_donate"/>
<include layout="@layout/cpp_drag_button_round_brackets"/>
<include layout="@layout/cpp_drag_button_0"/>
<include layout="@layout/cpp_drag_button_dot"/>
<include layout="@layout/cpp_drag_button_subtraction"/>
<include layout="@layout/cpp_drag_button_history"/>
</LinearLayout>
</LinearLayout>

View File

@@ -0,0 +1,57 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright (c) 2009-2011. Created by serso aka se.solovyev.
~ For more information, please, contact se.solovyev@gmail.com
~ or visit http://se.solovyev.org
-->
<LinearLayout
xmlns:a="http://schemas.android.com/apk/res/android"
a:id="@+id/main_layout"
a:orientation="vertical"
style="?cpp_main_multi_pane_layout_style">
<LinearLayout
a:layout_height="0dp"
a:layout_width="match_parent"
a:layout_weight="3"
a:orientation="horizontal"
a:baselineAligned="false">
<LinearLayout
a:layout_height="match_parent"
a:layout_width="0dp"
a:layout_weight="1"
a:orientation="vertical"
a:layout_gravity="center">
<LinearLayout a:id="@+id/editorContainer"
a:layout_height="0dp"
a:layout_width="match_parent"
style="?cpp_pane_style"
a:layout_weight="3"/>
<LinearLayout a:id="@+id/displayContainer"
a:layout_height="0dp"
a:layout_width="match_parent"
style="?cpp_pane_style"
a:layout_weight="1"/>
</LinearLayout>
<LinearLayout a:id="@+id/main_second_pane"
a:layout_height="match_parent"
a:layout_width="0dp"
a:layout_weight="1"
a:orientation="vertical"
style="?cpp_pane_style"/>
</LinearLayout>
<LinearLayout a:id="@+id/keyboardContainer"
a:layout_height="0dp"
a:layout_width="match_parent"
a:layout_weight="2"
style="?cpp_pane_style_transparent"/>
</LinearLayout>

Some files were not shown because too many files have changed in this diff Show More