android.dashboard: initial import Change-Id: I950049d6d95f9af04c0b20a06fd2f3947cccedc1 Signed-off-by: BOLLE Sebastien <sebastien.bolle@orange.com> Signed-off-by: BONNARDEL Gregory <gbonnardel.ext@orange.com> Signed-off-by: BAREAU Cyrille <cyrille.bareau@orange.com>
diff --git a/org.eclipse.om2m.android.dashboard/.classpath b/org.eclipse.om2m.android.dashboard/.classpath new file mode 100644 index 0000000..4becec1 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/.classpath
@@ -0,0 +1,34 @@ +<?xml version="1.0" encoding="UTF-8"?> +<classpath> + <classpathentry kind="src" output="bin/classes" path="src/main/java"> + <attributes> + <attribute name="optional" value="true"/> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="src" output="target/test-classes" path="src/test/java"> + <attributes> + <attribute name="optional" value="true"/> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="src" path="gen"> + <attributes> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry exported="true" kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"> + <attributes> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="con" path="me.gladwell.eclipse.m2e.android.classpath.NONRUNTIME_DEPENDENCIES"> + <attributes> + <attribute name="maven.pomderived" value="true"/> + </attributes> + </classpathentry> + <classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/> + <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES"/> + <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/> + <classpathentry kind="output" path="bin/classes"/> +</classpath>
diff --git a/org.eclipse.om2m.android.dashboard/.gitignore b/org.eclipse.om2m.android.dashboard/.gitignore new file mode 100644 index 0000000..3f4e5ce --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/.gitignore
@@ -0,0 +1,2 @@ +/bin/ +/gen/
diff --git a/org.eclipse.om2m.android.dashboard/.project b/org.eclipse.om2m.android.dashboard/.project new file mode 100644 index 0000000..57a4e82 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/.project
@@ -0,0 +1,46 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>dashboard.sdt</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>org.eclipse.m2e.core.maven2Builder</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> + <nature>org.eclipse.m2e.core.maven2Nature</nature> + </natures> + <linkedResources> + <link> + <name>AndroidManifest.xml</name> + <type>1</type> + <locationURI>PROJECT_LOC/src/main/AndroidManifest.xml</locationURI> + </link> + </linkedResources> +</projectDescription>
diff --git a/org.eclipse.om2m.android.dashboard/pom.xml b/org.eclipse.om2m.android.dashboard/pom.xml new file mode 100644 index 0000000..ab4627d --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/pom.xml
@@ -0,0 +1,316 @@ +<!-- + Copyright (c) 2013, 2017 Orange. + All rights reserved. This program and the accompanying materials + are made available under the terms of the Eclipse Public License v1.0 + which accompanies this distribution, and is available at + http://www.eclipse.org/legal/epl-v10.html + + Contributors: + BAREAU Cyrille <cyrille.bareau@orange.com>, + BONNARDEL Gregory <gbonnardel.ext@orange.com>, + BOLLE Sebastien <sebastien.bolle@orange.com>. + --> +<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/maven-v4_0_0.xsd"> + + <modelVersion>4.0.0</modelVersion> + + <artifactId>org.eclipse.om2m.android.dashboard</artifactId> + <packaging>apk</packaging> + <name>org.eclipse.om2m :: android dashboard application</name> + + <parent> + <artifactId>org.eclipse.om2m</artifactId> + <groupId>org.eclipse.om2m</groupId> + <version>1.1.0-SNAPSHOT</version> + </parent> + + <properties> + + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + + <!-- Maven dependencies --> + <maven.android.plugin.version>4.4.3</maven.android.plugin.version> + <compiler.maven.plugin.version>2.5.1</compiler.maven.plugin.version> + + <!-- Default values: do not skip reporting --> + <skip.reporting>true</skip.reporting> + <profile.skip.reporting>false</profile.skip.reporting> + + <!-- Android Dependencies --> + <android.sdk.path>${env.ANDROID_HOME}</android.sdk.path> + <api.platform>17</api.platform> + <annotations.version>4.1.1.4</annotations.version> + <android.version>4.1.1.4</android.version> + <support-v4-android.version>r7</support-v4-android.version> + + <maven.build.timestamp.format>yyMMdd_HHmm</maven.build.timestamp.format> + <!--buildNumber>${maven.build.timestamp}</buildNumber--> + <buildNumber>snapshot</buildNumber> + + </properties> + + <dependencies> + + <dependency> + <groupId>com.google.android</groupId> + <artifactId>android</artifactId> + <scope>provided</scope> + <version>${android.version}</version> + </dependency> + + <dependency> + <groupId>com.google.android</groupId> + <artifactId>support-v4</artifactId> + <version>${support-v4-android.version}</version> + </dependency> + + <dependency> + <groupId>com.google.android</groupId> + <artifactId>annotations</artifactId> + <version>${annotations.version}</version> + </dependency> + + <dependency> + <groupId>org.springframework.android</groupId> + <artifactId>spring-android-rest-template</artifactId> + <version>1.0.1.RELEASE</version> + </dependency> + + <dependency> + <groupId>com.google.code.gson</groupId> + <artifactId>gson</artifactId> + <version>2.0</version> + </dependency> + + <dependency> + <groupId>com.fasterxml.jackson.core</groupId> + <artifactId>jackson-databind</artifactId> + <version>2.2.1</version> + </dependency> + + <dependency> + <groupId>org.eclipse.om2m</groupId> + <artifactId>org.eclipse.om2m.sdt.api</artifactId> + <scope>compile</scope> + <version>1.1.0-SNAPSHOT</version> + </dependency> + + <dependency> + <groupId>org.eclipse.om2m</groupId> + <artifactId>org.eclipse.om2m.sdt.home</artifactId> + <scope>compile</scope> + <version>1.1.0-SNAPSHOT</version> + </dependency> + + </dependencies> + + <build> + + <pluginManagement> + <plugins> + <!--This plugin's configuration is used to store Eclipse m2e settings + only. It has no influence on the Maven build itself. --> + <plugin> + <groupId>org.eclipse.m2e</groupId> + <artifactId>lifecycle-mapping</artifactId> + <version>1.0.0</version> + <configuration> + <lifecycleMappingMetadata> + <pluginExecutions> + <pluginExecution> + <pluginExecutionFilter> + <groupId>com.google.code.maven-replacer-plugin</groupId> + <artifactId>replacer</artifactId> + <versionRange>[1.5.0,)</versionRange> + <goals> + <goal>replace</goal> + </goals> + </pluginExecutionFilter> + <action> + <execute></execute> + </action> + </pluginExecution> + </pluginExecutions> + </lifecycleMappingMetadata> + </configuration> + </plugin> + </plugins> + </pluginManagement> + + <plugins> + + <!-- Add maven version to Android manifest --> + <!-- ===================================== --> + <!-- NE FONCTIONNE PAS AVEC ECLIPSE (???) --> + <!-- Il faut le faire en ligne de commande --> + <!-- mvn initialize install --> + <plugin> + <groupId>com.google.code.maven-replacer-plugin</groupId> + <artifactId>replacer</artifactId> + <version>1.5.0</version> + <executions> + <execution> + <phase>initialize</phase> + <goals> + <goal>replace</goal> + </goals> + </execution> + </executions> + <configuration> + <file>./src/main/AndroidManifest.xml</file> + <outputFile>${project.build.directory}/AndroidManifest.xml</outputFile> + <regex>true</regex> + <replacements> + <replacement> + <token>android:versionCode="\d*"</token> + <value>android:versionCode="1"</value> + </replacement> + <replacement> + <token>android:versionName="[^"]*"</token> + <value>android:versionName="${project.version}"</value> + </replacement> + </replacements> + </configuration> + </plugin> + + <plugin> + <groupId>com.simpligility.maven.plugins</groupId> + <artifactId>android-maven-plugin</artifactId> + <version>${maven.android.plugin.version}</version> + <extensions>true</extensions> + </plugin> + + <!-- Plugin for android projects --> + <plugin> + <groupId>com.simpligility.maven.plugins</groupId> + <artifactId>android-maven-plugin</artifactId> + <version>${maven.android.plugin.version}</version> + <inherited>true</inherited> + <configuration> + <resourceDirectory>${project.basedir}/res</resourceDirectory> + <sdk> + <platform>${api.platform}</platform> + </sdk> + <undeployBeforeDeploy>true</undeployBeforeDeploy> + </configuration> + + </plugin> + + <plugin> + <!-- Default java version is 1.4, for osgi + This can be overridden to 1.6 for android or desktop projects--> + <artifactId>maven-compiler-plugin</artifactId> + <version>${compiler.maven.plugin.version}</version> + <inherited>true</inherited> + <configuration> + <source>1.6</source> + <target>1.6</target> + </configuration> + </plugin> + + </plugins> + + </build> + + <reporting> + <excludeDefaults>false</excludeDefaults> + + <plugins> + <!-- ======================================================= --> + <!-- Reports configuration for the web site. --> + <!-- ======================================================= --> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-project-info-reports-plugin</artifactId> + <version>${maven-project-info-reports-plugin.version}</version> + <reportSets> + <reportSet> + <reports> + <report>index</report> + <report>dependencies</report> + <report>scm</report> + <report>plugins</report> + <report>summary</report> + </reports> + </reportSet> + </reportSets> + <configuration> + <!-- Avoid the dependency plugin to download again all jars from repositories + just to report the following informations --> + <dependencyDetailsEnabled>false</dependencyDetailsEnabled> + <dependencyLocationsEnabled>false</dependencyLocationsEnabled> + </configuration> + </plugin> + + <!-- ======================================================= --> + <!-- Per module javadoc generation --> + <!-- ======================================================= --> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-javadoc-plugin</artifactId> + <version>${maven-javadoc-plugin.version}</version> + <configuration> + <show>protected</show> + </configuration> + </plugin> + + <!-- ======================================================= --> + <!-- HTML based, cross-reference version of Java source code --> + <!-- ======================================================= --> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-jxr-plugin</artifactId> + <version>${maven-jxr-plugin.version}</version> + <inherited>true</inherited> + </plugin> + + <!-- ======================================================= --> + <!-- PMD Static analysis of code --> + <!-- ======================================================= --> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-pmd-plugin</artifactId> + <version>${maven-pmd-plugin.version}</version> + <configuration> + <linkXref>true</linkXref> + <sourceEncoding>utf-8</sourceEncoding> + <minimumTokens>100</minimumTokens> + <targetJdk>1.4</targetJdk> + <failOnViolation>false</failOnViolation> + </configuration> + <inherited>true</inherited> + </plugin> + + <!-- ======================================================= --> + <!-- FindBugs Static analysis of code --> + <!-- ======================================================= --> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>findbugs-maven-plugin</artifactId> + <version>${findbugs-maven-plugin.version}</version> + <configuration> + <xmlOutput>true</xmlOutput> + <failOnError>false</failOnError> + </configuration> + <inherited>true</inherited> + </plugin> + + <!-- ======================================================= --> + <!-- Checkstyle Static analysis of code --> + <!-- ======================================================= --> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-checkstyle-plugin</artifactId> + <version>${maven-checkstyle-plugin.version}</version> + <configuration> + <enableRulesSummary>true</enableRulesSummary> + </configuration> + <inherited>true</inherited> + </plugin> + + </plugins> + + </reporting> + +</project>
diff --git a/org.eclipse.om2m.android.dashboard/project.properties b/org.eclipse.om2m.android.dashboard/project.properties new file mode 100644 index 0000000..3073f9c --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/project.properties
@@ -0,0 +1,26 @@ +############################################################################### +# Copyright (c) 2013, 2017 Orange. +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Eclipse Public License v1.0 +# which accompanies this distribution, and is available at +# http://www.eclipse.org/legal/epl-v10.html +# +# Contributors: +# BAREAU Cyrille <cyrille.bareau@orange.com>, +# BONNARDEL Gregory <gbonnardel.ext@orange.com>, +# BOLLE Sebastien <sebastien.bolle@orange.com>. +############################################################################### +# 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-17
diff --git a/org.eclipse.om2m.android.dashboard/res/anim/animation1.xml b/org.eclipse.om2m.android.dashboard/res/anim/animation1.xml new file mode 100644 index 0000000..23b20d3 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/anim/animation1.xml
@@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (c) 2013, 2017 Orange. + All rights reserved. This program and the accompanying materials + are made available under the terms of the Eclipse Public License v1.0 + which accompanies this distribution, and is available at + http://www.eclipse.org/legal/epl-v10.html + + Contributors: + BAREAU Cyrille <cyrille.bareau@orange.com>, + BONNARDEL Gregory <gbonnardel.ext@orange.com>, + BOLLE Sebastien <sebastien.bolle@orange.com>. + --> + +<!-- <translate xmlns:android="http://schemas.android.com/apk/res/android" + android:fromXDelta="100%p" + android:toXDelta="0" + android:duration="500" /> --> +<alpha xmlns:android="http://schemas.android.com/apk/res/android" +android:fromAlpha="0.0" +android:toAlpha="1.0" +android:duration="1000" /> +
diff --git a/org.eclipse.om2m.android.dashboard/res/anim/animation2.xml b/org.eclipse.om2m.android.dashboard/res/anim/animation2.xml new file mode 100644 index 0000000..a12e627 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/anim/animation2.xml
@@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (c) 2013, 2017 Orange. + All rights reserved. This program and the accompanying materials + are made available under the terms of the Eclipse Public License v1.0 + which accompanies this distribution, and is available at + http://www.eclipse.org/legal/epl-v10.html + + Contributors: + BAREAU Cyrille <cyrille.bareau@orange.com>, + BONNARDEL Gregory <gbonnardel.ext@orange.com>, + BOLLE Sebastien <sebastien.bolle@orange.com>. + --> + +<!-- <translate xmlns:android="http://schemas.android.com/apk/res/android" + android:fromXDelta="0" + android:toXDelta="-50%p" + android:duration="500" /> --> +<alpha xmlns:android="http://schemas.android.com/apk/res/android" +android:fromAlpha="1.0" +android:toAlpha="0.0" +android:duration="1000" /> \ No newline at end of file
diff --git a/org.eclipse.om2m.android.dashboard/res/color/sel_button_text.xml b/org.eclipse.om2m.android.dashboard/res/color/sel_button_text.xml new file mode 100644 index 0000000..5c75cbe --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/color/sel_button_text.xml
@@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (c) 2013, 2017 Orange. + All rights reserved. This program and the accompanying materials + are made available under the terms of the Eclipse Public License v1.0 + which accompanies this distribution, and is available at + http://www.eclipse.org/legal/epl-v10.html + + Contributors: + BAREAU Cyrille <cyrille.bareau@orange.com>, + BONNARDEL Gregory <gbonnardel.ext@orange.com>, + BOLLE Sebastien <sebastien.bolle@orange.com>. + --> + +<selector xmlns:android="http://schemas.android.com/apk/res/android" > + <item android:state_enabled="false" + android:color="@color/soft_gray" /> + <item android:color="@color/otb_dark_gray" /> + +</selector> \ No newline at end of file
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/ab_bottom_solid_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/ab_bottom_solid_custom_theme.9.png new file mode 100644 index 0000000..9f1bf68 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/ab_bottom_solid_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/ab_solid_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/ab_solid_custom_theme.9.png new file mode 100644 index 0000000..d431708 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/ab_solid_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/ab_stacked_solid_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/ab_stacked_solid_custom_theme.9.png new file mode 100644 index 0000000..fae720a --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/ab_stacked_solid_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/ab_texture_tile_custom_theme.png b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/ab_texture_tile_custom_theme.png new file mode 100644 index 0000000..556c504 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/ab_texture_tile_custom_theme.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/ab_transparent_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/ab_transparent_custom_theme.9.png new file mode 100644 index 0000000..c58997f --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/ab_transparent_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/btn_cab_done_default_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/btn_cab_done_default_custom_theme.9.png new file mode 100644 index 0000000..c8d351e --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/btn_cab_done_default_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/btn_cab_done_focused_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/btn_cab_done_focused_custom_theme.9.png new file mode 100644 index 0000000..d3c4628 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/btn_cab_done_focused_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/btn_cab_done_pressed_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/btn_cab_done_pressed_custom_theme.9.png new file mode 100644 index 0000000..ef1f8f0 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/btn_cab_done_pressed_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/cab_background_bottom_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/cab_background_bottom_custom_theme.9.png new file mode 100644 index 0000000..f7adb43 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/cab_background_bottom_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/cab_background_top_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/cab_background_top_custom_theme.9.png new file mode 100644 index 0000000..7324285 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/cab_background_top_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/ic_action_back_to_home.png b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/ic_action_back_to_home.png new file mode 100644 index 0000000..1700fca --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/ic_action_back_to_home.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/ic_action_help.png b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/ic_action_help.png new file mode 100644 index 0000000..f59faac --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/ic_action_help.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/ic_action_login.png b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/ic_action_login.png new file mode 100644 index 0000000..82963f6 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/ic_action_login.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/ic_action_settings.png b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/ic_action_settings.png new file mode 100644 index 0000000..d6dd17e --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/ic_action_settings.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/ic_launcher.png b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/ic_launcher.png new file mode 100644 index 0000000..600910c --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/ic_launcher.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/ic_logo.png b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/ic_logo.png new file mode 100644 index 0000000..e4c4a4a --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/ic_logo.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/list_focused_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/list_focused_custom_theme.9.png new file mode 100644 index 0000000..426d73f --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/list_focused_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/logo.png b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/logo.png new file mode 100644 index 0000000..b1c9f26 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/logo.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/menu_dropdown_panel_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/menu_dropdown_panel_custom_theme.9.png new file mode 100644 index 0000000..bab5e3b --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/menu_dropdown_panel_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/otb_button_blue.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/otb_button_blue.9.png new file mode 100644 index 0000000..d6a81f0 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/otb_button_blue.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/otb_button_blue_pressed.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/otb_button_blue_pressed.9.png new file mode 100644 index 0000000..09a42a7 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/otb_button_blue_pressed.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/otb_button_gray.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/otb_button_gray.9.png new file mode 100644 index 0000000..e10cc29 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/otb_button_gray.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/otb_button_green.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/otb_button_green.9.png new file mode 100644 index 0000000..000e276 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/otb_button_green.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/otb_button_green_pressed.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/otb_button_green_pressed.9.png new file mode 100644 index 0000000..52cb008 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/otb_button_green_pressed.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/otb_button_orange.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/otb_button_orange.9.png new file mode 100644 index 0000000..492bee3 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/otb_button_orange.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/otb_button_orange_pressed.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/otb_button_orange_pressed.9.png new file mode 100644 index 0000000..39d4d71 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/otb_button_orange_pressed.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/otb_button_red.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/otb_button_red.9.png new file mode 100644 index 0000000..da4023d --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/otb_button_red.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/otb_button_red_pressed.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/otb_button_red_pressed.9.png new file mode 100644 index 0000000..a3562ad --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/otb_button_red_pressed.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/otb_card_blue.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/otb_card_blue.9.png new file mode 100644 index 0000000..e2377e6 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/otb_card_blue.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/otb_card_blue_pressed.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/otb_card_blue_pressed.9.png new file mode 100644 index 0000000..2c8fca6 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/otb_card_blue_pressed.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/otb_card_gray.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/otb_card_gray.9.png new file mode 100644 index 0000000..7071c83 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/otb_card_gray.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/otb_card_green.png b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/otb_card_green.png new file mode 100644 index 0000000..b1be662 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/otb_card_green.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/otb_card_green_pressed.png b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/otb_card_green_pressed.png new file mode 100644 index 0000000..91a47cc --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/otb_card_green_pressed.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/otb_card_red.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/otb_card_red.9.png new file mode 100644 index 0000000..60bb11d --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/otb_card_red.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/otb_card_red_pressed.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/otb_card_red_pressed.9.png new file mode 100644 index 0000000..cc26c92 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/otb_card_red_pressed.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/progress_bg_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/progress_bg_custom_theme.9.png new file mode 100644 index 0000000..3d5c707 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/progress_bg_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/progress_primary_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/progress_primary_custom_theme.9.png new file mode 100644 index 0000000..3bc3b3a --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/progress_primary_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/progress_secondary_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/progress_secondary_custom_theme.9.png new file mode 100644 index 0000000..6d50e09 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/progress_secondary_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/spinner_ab_default_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/spinner_ab_default_custom_theme.9.png new file mode 100644 index 0000000..4fd4aeb --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/spinner_ab_default_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/spinner_ab_disabled_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/spinner_ab_disabled_custom_theme.9.png new file mode 100644 index 0000000..d42c97b --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/spinner_ab_disabled_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/spinner_ab_focused_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/spinner_ab_focused_custom_theme.9.png new file mode 100644 index 0000000..c4b4f8c --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/spinner_ab_focused_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/spinner_ab_pressed_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/spinner_ab_pressed_custom_theme.9.png new file mode 100644 index 0000000..39f778c --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/spinner_ab_pressed_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/tab_selected_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/tab_selected_custom_theme.9.png new file mode 100644 index 0000000..2d78262 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/tab_selected_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/tab_selected_focused_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/tab_selected_focused_custom_theme.9.png new file mode 100644 index 0000000..4d49b21 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/tab_selected_focused_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/tab_selected_pressed_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/tab_selected_pressed_custom_theme.9.png new file mode 100644 index 0000000..65688cb --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/tab_selected_pressed_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/tab_unselected_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/tab_unselected_custom_theme.9.png new file mode 100644 index 0000000..396b5dd --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/tab_unselected_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/tab_unselected_focused_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/tab_unselected_focused_custom_theme.9.png new file mode 100644 index 0000000..57c5f18 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/tab_unselected_focused_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/tab_unselected_pressed_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/tab_unselected_pressed_custom_theme.9.png new file mode 100644 index 0000000..f44171c --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-hdpi/tab_unselected_pressed_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/ab_bottom_solid_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/ab_bottom_solid_custom_theme.9.png new file mode 100644 index 0000000..76f68b8 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/ab_bottom_solid_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/ab_solid_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/ab_solid_custom_theme.9.png new file mode 100644 index 0000000..a5826a2 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/ab_solid_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/ab_stacked_solid_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/ab_stacked_solid_custom_theme.9.png new file mode 100644 index 0000000..f72f540 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/ab_stacked_solid_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/ab_texture_tile_custom_theme.png b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/ab_texture_tile_custom_theme.png new file mode 100644 index 0000000..d0331c0 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/ab_texture_tile_custom_theme.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/ab_transparent_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/ab_transparent_custom_theme.9.png new file mode 100644 index 0000000..d101b07 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/ab_transparent_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/btn_cab_done_default_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/btn_cab_done_default_custom_theme.9.png new file mode 100644 index 0000000..70f1520 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/btn_cab_done_default_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/btn_cab_done_focused_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/btn_cab_done_focused_custom_theme.9.png new file mode 100644 index 0000000..be79484 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/btn_cab_done_focused_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/btn_cab_done_pressed_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/btn_cab_done_pressed_custom_theme.9.png new file mode 100644 index 0000000..15cb5d8 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/btn_cab_done_pressed_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/cab_background_bottom_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/cab_background_bottom_custom_theme.9.png new file mode 100644 index 0000000..1c49ba0 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/cab_background_bottom_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/cab_background_top_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/cab_background_top_custom_theme.9.png new file mode 100644 index 0000000..d19d5b3 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/cab_background_top_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/ic_action_back_to_home.png b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/ic_action_back_to_home.png new file mode 100644 index 0000000..35ef732 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/ic_action_back_to_home.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/ic_action_help.png b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/ic_action_help.png new file mode 100644 index 0000000..8057106 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/ic_action_help.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/ic_action_login.png b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/ic_action_login.png new file mode 100644 index 0000000..c83e540 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/ic_action_login.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/ic_action_settings.png b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/ic_action_settings.png new file mode 100644 index 0000000..fc2bf8c --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/ic_action_settings.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/ic_launcher.png b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/ic_launcher.png new file mode 100644 index 0000000..42cbe56 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/ic_launcher.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/ic_logo.png b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/ic_logo.png new file mode 100644 index 0000000..a33e10c --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/ic_logo.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/list_focused_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/list_focused_custom_theme.9.png new file mode 100644 index 0000000..4d3bcbf --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/list_focused_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/logo.png b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/logo.png new file mode 100644 index 0000000..d178937 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/logo.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/menu_dropdown_panel_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/menu_dropdown_panel_custom_theme.9.png new file mode 100644 index 0000000..2b2458e --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/menu_dropdown_panel_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/otb_button_blue.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/otb_button_blue.9.png new file mode 100644 index 0000000..33cf042 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/otb_button_blue.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/otb_button_blue_pressed.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/otb_button_blue_pressed.9.png new file mode 100644 index 0000000..4e0c280 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/otb_button_blue_pressed.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/otb_button_gray.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/otb_button_gray.9.png new file mode 100644 index 0000000..f873034 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/otb_button_gray.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/otb_button_green.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/otb_button_green.9.png new file mode 100644 index 0000000..fd63ccf --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/otb_button_green.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/otb_button_green_pressed.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/otb_button_green_pressed.9.png new file mode 100644 index 0000000..60c4b30 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/otb_button_green_pressed.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/otb_button_orange.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/otb_button_orange.9.png new file mode 100644 index 0000000..5337e3b --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/otb_button_orange.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/otb_button_orange_pressed.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/otb_button_orange_pressed.9.png new file mode 100644 index 0000000..d2cf4d2 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/otb_button_orange_pressed.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/otb_button_red.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/otb_button_red.9.png new file mode 100644 index 0000000..9a08b7a --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/otb_button_red.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/otb_button_red_pressed.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/otb_button_red_pressed.9.png new file mode 100644 index 0000000..550c4bc --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/otb_button_red_pressed.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/otb_card_blue.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/otb_card_blue.9.png new file mode 100644 index 0000000..77ff662 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/otb_card_blue.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/otb_card_blue_pressed.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/otb_card_blue_pressed.9.png new file mode 100644 index 0000000..d552f4e --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/otb_card_blue_pressed.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/otb_card_gray.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/otb_card_gray.9.png new file mode 100644 index 0000000..b79c7d1 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/otb_card_gray.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/otb_card_red.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/otb_card_red.9.png new file mode 100644 index 0000000..2e591eb --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/otb_card_red.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/otb_card_red_pressed.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/otb_card_red_pressed.9.png new file mode 100644 index 0000000..05d820a --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/otb_card_red_pressed.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/progress_bg_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/progress_bg_custom_theme.9.png new file mode 100644 index 0000000..9372a60 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/progress_bg_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/progress_primary_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/progress_primary_custom_theme.9.png new file mode 100644 index 0000000..18a10d9 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/progress_primary_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/progress_secondary_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/progress_secondary_custom_theme.9.png new file mode 100644 index 0000000..6196d8b --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/progress_secondary_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/spinner_ab_default_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/spinner_ab_default_custom_theme.9.png new file mode 100644 index 0000000..9aeafee --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/spinner_ab_default_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/spinner_ab_disabled_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/spinner_ab_disabled_custom_theme.9.png new file mode 100644 index 0000000..88dd441 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/spinner_ab_disabled_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/spinner_ab_focused_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/spinner_ab_focused_custom_theme.9.png new file mode 100644 index 0000000..757f15b --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/spinner_ab_focused_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/spinner_ab_pressed_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/spinner_ab_pressed_custom_theme.9.png new file mode 100644 index 0000000..7392238 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/spinner_ab_pressed_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/tab_selected_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/tab_selected_custom_theme.9.png new file mode 100644 index 0000000..2660743 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/tab_selected_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/tab_selected_focused_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/tab_selected_focused_custom_theme.9.png new file mode 100644 index 0000000..a6523c2 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/tab_selected_focused_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/tab_selected_pressed_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/tab_selected_pressed_custom_theme.9.png new file mode 100644 index 0000000..1eb92c1 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/tab_selected_pressed_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/tab_unselected_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/tab_unselected_custom_theme.9.png new file mode 100644 index 0000000..1cf3002 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/tab_unselected_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/tab_unselected_focused_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/tab_unselected_focused_custom_theme.9.png new file mode 100644 index 0000000..0fa12db --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/tab_unselected_focused_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/tab_unselected_pressed_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/tab_unselected_pressed_custom_theme.9.png new file mode 100644 index 0000000..2c13a55 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-mdpi/tab_unselected_pressed_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/ab_bottom_solid_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/ab_bottom_solid_custom_theme.9.png new file mode 100644 index 0000000..8aca0fe --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/ab_bottom_solid_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/ab_solid_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/ab_solid_custom_theme.9.png new file mode 100644 index 0000000..fb40717 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/ab_solid_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/ab_stacked_solid_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/ab_stacked_solid_custom_theme.9.png new file mode 100644 index 0000000..b62ee13 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/ab_stacked_solid_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/ab_texture_tile_custom_theme.png b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/ab_texture_tile_custom_theme.png new file mode 100644 index 0000000..49b5272 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/ab_texture_tile_custom_theme.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/ab_transparent_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/ab_transparent_custom_theme.9.png new file mode 100644 index 0000000..671fa84 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/ab_transparent_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/btn_cab_done_default_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/btn_cab_done_default_custom_theme.9.png new file mode 100644 index 0000000..3521ae3 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/btn_cab_done_default_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/btn_cab_done_focused_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/btn_cab_done_focused_custom_theme.9.png new file mode 100644 index 0000000..2ae6ea3 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/btn_cab_done_focused_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/btn_cab_done_pressed_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/btn_cab_done_pressed_custom_theme.9.png new file mode 100644 index 0000000..33b9d1d --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/btn_cab_done_pressed_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/cab_background_bottom_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/cab_background_bottom_custom_theme.9.png new file mode 100644 index 0000000..19da0c6 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/cab_background_bottom_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/cab_background_top_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/cab_background_top_custom_theme.9.png new file mode 100644 index 0000000..f469c99 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/cab_background_top_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/ic_action_back_to_home.png b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/ic_action_back_to_home.png new file mode 100644 index 0000000..16e9d36 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/ic_action_back_to_home.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/ic_action_help.png b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/ic_action_help.png new file mode 100644 index 0000000..afde75b --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/ic_action_help.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/ic_action_login.png b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/ic_action_login.png new file mode 100644 index 0000000..9899d91 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/ic_action_login.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/ic_action_settings.png b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/ic_action_settings.png new file mode 100644 index 0000000..ae91758 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/ic_action_settings.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/ic_launcher.png b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/ic_launcher.png new file mode 100644 index 0000000..3aaf6f2 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/ic_launcher.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/ic_logo.png b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/ic_logo.png new file mode 100644 index 0000000..1dca4c0 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/ic_logo.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/list_focused_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/list_focused_custom_theme.9.png new file mode 100644 index 0000000..011da44 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/list_focused_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/logo.png b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/logo.png new file mode 100644 index 0000000..152b1db --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/logo.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/menu_dropdown_panel_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/menu_dropdown_panel_custom_theme.9.png new file mode 100644 index 0000000..2974663 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/menu_dropdown_panel_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/otb_button_blue.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/otb_button_blue.9.png new file mode 100644 index 0000000..9790b38 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/otb_button_blue.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/otb_button_blue_pressed.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/otb_button_blue_pressed.9.png new file mode 100644 index 0000000..e3a0b81 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/otb_button_blue_pressed.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/otb_button_gray.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/otb_button_gray.9.png new file mode 100644 index 0000000..6226720 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/otb_button_gray.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/otb_button_green.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/otb_button_green.9.png new file mode 100644 index 0000000..284082f --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/otb_button_green.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/otb_button_green_pressed.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/otb_button_green_pressed.9.png new file mode 100644 index 0000000..2c78a91 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/otb_button_green_pressed.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/otb_button_orange.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/otb_button_orange.9.png new file mode 100644 index 0000000..3dc9824 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/otb_button_orange.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/otb_button_orange_pressed.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/otb_button_orange_pressed.9.png new file mode 100644 index 0000000..9444b54 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/otb_button_orange_pressed.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/otb_button_red.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/otb_button_red.9.png new file mode 100644 index 0000000..9b162be --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/otb_button_red.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/otb_button_red_pressed.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/otb_button_red_pressed.9.png new file mode 100644 index 0000000..bef8956 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/otb_button_red_pressed.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/otb_card_blue.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/otb_card_blue.9.png new file mode 100644 index 0000000..77ddc92 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/otb_card_blue.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/otb_card_blue_pressed.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/otb_card_blue_pressed.9.png new file mode 100644 index 0000000..6b3b565 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/otb_card_blue_pressed.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/otb_card_gray.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/otb_card_gray.9.png new file mode 100644 index 0000000..c5da422 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/otb_card_gray.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/otb_card_red.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/otb_card_red.9.png new file mode 100644 index 0000000..5a06aa9 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/otb_card_red.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/otb_card_red_pressed.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/otb_card_red_pressed.9.png new file mode 100644 index 0000000..51ca5b1 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/otb_card_red_pressed.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/progress_bg_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/progress_bg_custom_theme.9.png new file mode 100644 index 0000000..8b4853a --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/progress_bg_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/progress_primary_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/progress_primary_custom_theme.9.png new file mode 100644 index 0000000..bdca816 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/progress_primary_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/progress_secondary_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/progress_secondary_custom_theme.9.png new file mode 100644 index 0000000..a424a14 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/progress_secondary_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/spinner_ab_default_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/spinner_ab_default_custom_theme.9.png new file mode 100644 index 0000000..14b1401 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/spinner_ab_default_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/spinner_ab_disabled_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/spinner_ab_disabled_custom_theme.9.png new file mode 100644 index 0000000..c9dfbd6 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/spinner_ab_disabled_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/spinner_ab_focused_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/spinner_ab_focused_custom_theme.9.png new file mode 100644 index 0000000..1c8d33d --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/spinner_ab_focused_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/spinner_ab_pressed_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/spinner_ab_pressed_custom_theme.9.png new file mode 100644 index 0000000..870d2be --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/spinner_ab_pressed_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/tab_selected_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/tab_selected_custom_theme.9.png new file mode 100644 index 0000000..aec4e87 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/tab_selected_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/tab_selected_focused_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/tab_selected_focused_custom_theme.9.png new file mode 100644 index 0000000..0b8b3e9 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/tab_selected_focused_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/tab_selected_pressed_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/tab_selected_pressed_custom_theme.9.png new file mode 100644 index 0000000..bd51d36 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/tab_selected_pressed_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/tab_unselected_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/tab_unselected_custom_theme.9.png new file mode 100644 index 0000000..d211e8a --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/tab_unselected_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/tab_unselected_focused_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/tab_unselected_focused_custom_theme.9.png new file mode 100644 index 0000000..3c87dd9 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/tab_unselected_focused_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/tab_unselected_pressed_custom_theme.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/tab_unselected_pressed_custom_theme.9.png new file mode 100644 index 0000000..fd190db --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-xhdpi/tab_unselected_pressed_custom_theme.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-xxhdpi/ic_action_back_to_home.png b/org.eclipse.om2m.android.dashboard/res/drawable-xxhdpi/ic_action_back_to_home.png new file mode 100644 index 0000000..4d897cc --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-xxhdpi/ic_action_back_to_home.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-xxhdpi/ic_action_help.png b/org.eclipse.om2m.android.dashboard/res/drawable-xxhdpi/ic_action_help.png new file mode 100644 index 0000000..7259a00 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-xxhdpi/ic_action_help.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-xxhdpi/ic_action_login.png b/org.eclipse.om2m.android.dashboard/res/drawable-xxhdpi/ic_action_login.png new file mode 100644 index 0000000..71b8b5d --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-xxhdpi/ic_action_login.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-xxhdpi/ic_action_settings.png b/org.eclipse.om2m.android.dashboard/res/drawable-xxhdpi/ic_action_settings.png new file mode 100644 index 0000000..ded5dbb --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-xxhdpi/ic_action_settings.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-xxhdpi/ic_launcher.png b/org.eclipse.om2m.android.dashboard/res/drawable-xxhdpi/ic_launcher.png new file mode 100644 index 0000000..3edf724 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-xxhdpi/ic_launcher.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-xxhdpi/ic_logo.png b/org.eclipse.om2m.android.dashboard/res/drawable-xxhdpi/ic_logo.png new file mode 100644 index 0000000..559191a --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-xxhdpi/ic_logo.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-xxhdpi/logo.png b/org.eclipse.om2m.android.dashboard/res/drawable-xxhdpi/logo.png new file mode 100644 index 0000000..dab161d --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-xxhdpi/logo.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-xxhdpi/otb_button_blue.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-xxhdpi/otb_button_blue.9.png new file mode 100644 index 0000000..fd62d91 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-xxhdpi/otb_button_blue.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-xxhdpi/otb_button_blue_pressed.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-xxhdpi/otb_button_blue_pressed.9.png new file mode 100644 index 0000000..6b9e2a9 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-xxhdpi/otb_button_blue_pressed.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-xxhdpi/otb_button_gray.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-xxhdpi/otb_button_gray.9.png new file mode 100644 index 0000000..30568d9 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-xxhdpi/otb_button_gray.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-xxhdpi/otb_button_green.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-xxhdpi/otb_button_green.9.png new file mode 100644 index 0000000..c7ef847 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-xxhdpi/otb_button_green.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-xxhdpi/otb_button_green_pressed.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-xxhdpi/otb_button_green_pressed.9.png new file mode 100644 index 0000000..7b45ace --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-xxhdpi/otb_button_green_pressed.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-xxhdpi/otb_button_orange.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-xxhdpi/otb_button_orange.9.png new file mode 100644 index 0000000..c226655 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-xxhdpi/otb_button_orange.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-xxhdpi/otb_button_orange_pressed.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-xxhdpi/otb_button_orange_pressed.9.png new file mode 100644 index 0000000..e6adeea --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-xxhdpi/otb_button_orange_pressed.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-xxhdpi/otb_button_red.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-xxhdpi/otb_button_red.9.png new file mode 100644 index 0000000..7545093 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-xxhdpi/otb_button_red.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-xxhdpi/otb_button_red_pressed.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-xxhdpi/otb_button_red_pressed.9.png new file mode 100644 index 0000000..689bd8a --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-xxhdpi/otb_button_red_pressed.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-xxhdpi/otb_card_blue.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-xxhdpi/otb_card_blue.9.png new file mode 100644 index 0000000..8d98bf7 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-xxhdpi/otb_card_blue.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-xxhdpi/otb_card_blue_pressed.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-xxhdpi/otb_card_blue_pressed.9.png new file mode 100644 index 0000000..da2fdd2 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-xxhdpi/otb_card_blue_pressed.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-xxhdpi/otb_card_gray.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-xxhdpi/otb_card_gray.9.png new file mode 100644 index 0000000..47dceef --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-xxhdpi/otb_card_gray.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-xxhdpi/otb_card_red.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-xxhdpi/otb_card_red.9.png new file mode 100644 index 0000000..7a059b9 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-xxhdpi/otb_card_red.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable-xxhdpi/otb_card_red_pressed.9.png b/org.eclipse.om2m.android.dashboard/res/drawable-xxhdpi/otb_card_red_pressed.9.png new file mode 100644 index 0000000..8a1aa7d --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable-xxhdpi/otb_card_red_pressed.9.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/ab_background_textured_custom_theme.xml b/org.eclipse.om2m.android.dashboard/res/drawable/ab_background_textured_custom_theme.xml new file mode 100644 index 0000000..baa55ed --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/ab_background_textured_custom_theme.xml
@@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- File created by the Android Action Bar Style Generator + + Copyright (C) 2012, 2017 readyState Software Ltd + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<bitmap xmlns:android="http://schemas.android.com/apk/res/android" + android:src="@drawable/ab_texture_tile_custom_theme" + android:tileMode="repeat" /> \ No newline at end of file
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/asso_arrow.png b/org.eclipse.om2m.android.dashboard/res/drawable/asso_arrow.png new file mode 100644 index 0000000..0e7ad75 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/asso_arrow.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/blur_shadow.xml b/org.eclipse.om2m.android.dashboard/res/drawable/blur_shadow.xml new file mode 100644 index 0000000..e6eaaf7 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/blur_shadow.xml
@@ -0,0 +1,30 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (c) 2013, 2017 Orange. + All rights reserved. This program and the accompanying materials + are made available under the terms of the Eclipse Public License v1.0 + which accompanies this distribution, and is available at + http://www.eclipse.org/legal/epl-v10.html + + Contributors: + BAREAU Cyrille <cyrille.bareau@orange.com>, + BONNARDEL Gregory <gbonnardel.ext@orange.com>, + BOLLE Sebastien <sebastien.bolle@orange.com>. + --> + +<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> + <item > + <shape + android:shape="rectangle"> + <solid android:color="@android:color/darker_gray" /> + <corners android:radius="4dp"/> + </shape> + </item> + <item android:right="1dp" android:left="1dp" android:bottom="2dp"> + <shape + android:shape="rectangle"> + <solid android:color="@android:color/white"/> + <corners android:radius="4dp"/> + </shape> + </item> +</layer-list> \ No newline at end of file
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/blur_shadow_wizard.xml b/org.eclipse.om2m.android.dashboard/res/drawable/blur_shadow_wizard.xml new file mode 100644 index 0000000..b6eb04a --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/blur_shadow_wizard.xml
@@ -0,0 +1,30 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (c) 2013, 2017 Orange. + All rights reserved. This program and the accompanying materials + are made available under the terms of the Eclipse Public License v1.0 + which accompanies this distribution, and is available at + http://www.eclipse.org/legal/epl-v10.html + + Contributors: + BAREAU Cyrille <cyrille.bareau@orange.com>, + BONNARDEL Gregory <gbonnardel.ext@orange.com>, + BOLLE Sebastien <sebastien.bolle@orange.com>. + --> + +<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> + <item > + <shape + android:shape="rectangle"> + <solid android:color="@android:color/darker_gray" /> + <corners android:radius="4dp"/> + </shape> + </item> + <item android:right="1dp" android:left="1dp" android:top="1dp" android:bottom="2dp"> + <shape + android:shape="rectangle"> + <solid android:color="@color/very_soft_gray"/> + <corners android:radius="4dp"/> + </shape> + </item> +</layer-list> \ No newline at end of file
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/btn_cab_done_custom_theme.xml b/org.eclipse.om2m.android.dashboard/res/drawable/btn_cab_done_custom_theme.xml new file mode 100644 index 0000000..b7b4f5e --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/btn_cab_done_custom_theme.xml
@@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- File created by the Android Action Bar Style Generator + + Copyright (C) 2011, 2017 The Android Open Source Project + Copyright (C) 2012 readyState Software Ltd + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<selector xmlns:android="http://schemas.android.com/apk/res/android"> + <item android:state_pressed="true" + android:drawable="@drawable/btn_cab_done_pressed_custom_theme" /> + <item android:state_focused="true" android:state_enabled="true" + android:drawable="@drawable/btn_cab_done_focused_custom_theme" /> + <item android:state_enabled="true" + android:drawable="@drawable/btn_cab_done_default_custom_theme" /> +</selector>
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/container_blue.png b/org.eclipse.om2m.android.dashboard/res/drawable/container_blue.png new file mode 100644 index 0000000..4473ce1 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/container_blue.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/container_green.png b/org.eclipse.om2m.android.dashboard/res/drawable/container_green.png new file mode 100644 index 0000000..c30e719 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/container_green.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/container_red.png b/org.eclipse.om2m.android.dashboard/res/drawable/container_red.png new file mode 100644 index 0000000..3173ed1 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/container_red.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/custom_action_bar.xml b/org.eclipse.om2m.android.dashboard/res/drawable/custom_action_bar.xml new file mode 100644 index 0000000..5d64858 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/custom_action_bar.xml
@@ -0,0 +1,30 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (c) 2013, 2017 Orange. + All rights reserved. This program and the accompanying materials + are made available under the terms of the Eclipse Public License v1.0 + which accompanies this distribution, and is available at + http://www.eclipse.org/legal/epl-v10.html + + Contributors: + BAREAU Cyrille <cyrille.bareau@orange.com>, + BONNARDEL Gregory <gbonnardel.ext@orange.com>, + BOLLE Sebastien <sebastien.bolle@orange.com>. + --> + +<layer-list xmlns:android="http://schemas.android.com/apk/res/android" > + <!-- Bottom line --> + <item> + <shape android:shape="rectangle"> + <solid android:color="@color/otb_red" /> + </shape> + </item> + + <!-- Color of action bar --> + <item android:bottom="2dip" > + <shape android:shape="rectangle"> + <solid android:color="@color/black" /> + </shape> + </item> + +</layer-list> \ No newline at end of file
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/home_dashboard_logo.png b/org.eclipse.om2m.android.dashboard/res/drawable/home_dashboard_logo.png new file mode 100644 index 0000000..d3e98f7 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/home_dashboard_logo.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_appicon_default.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_appicon_default.png new file mode 100644 index 0000000..ce72094 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_appicon_default.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_appicon_fire.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_appicon_fire.png new file mode 100644 index 0000000..cd0c42d --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_appicon_fire.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_appicon_gardening.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_appicon_gardening.png new file mode 100644 index 0000000..e85029c --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_appicon_gardening.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_appicon_greenhome.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_appicon_greenhome.png new file mode 100644 index 0000000..d9a2751 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_appicon_greenhome.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_appicon_heatingsystem.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_appicon_heatingsystem.png new file mode 100644 index 0000000..2249a0e --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_appicon_heatingsystem.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_appicon_huelights.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_appicon_huelights.png new file mode 100644 index 0000000..f924387 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_appicon_huelights.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_appicon_itydom1000.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_appicon_itydom1000.png new file mode 100644 index 0000000..beb8ed4 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_appicon_itydom1000.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_logo.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_logo.png new file mode 100644 index 0000000..406690e --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_logo.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_add_dev_blue.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_add_dev_blue.png new file mode 100644 index 0000000..71b2448 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_add_dev_blue.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_add_usr_pale_green.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_add_usr_pale_green.png new file mode 100644 index 0000000..74905e8 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_add_usr_pale_green.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_admin_red.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_admin_red.png new file mode 100644 index 0000000..8598df7 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_admin_red.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_admin_white.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_admin_white.png new file mode 100644 index 0000000..5f2a7f9 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_admin_white.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_asso_blue.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_asso_blue.png new file mode 100644 index 0000000..cb0b2cd --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_asso_blue.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_asso_orange.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_asso_orange.png new file mode 100644 index 0000000..18e7638 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_asso_orange.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_asso_red.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_asso_red.png new file mode 100644 index 0000000..98cf38d --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_asso_red.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_asso_white.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_asso_white.png new file mode 100644 index 0000000..25e561c --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_asso_white.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_chart_green.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_chart_green.png new file mode 100644 index 0000000..c261547 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_chart_green.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_chart_red.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_chart_red.png new file mode 100644 index 0000000..86ffd17 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_chart_red.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_chart_white.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_chart_white.png new file mode 100644 index 0000000..1a298bb --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_chart_white.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_check_blue.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_check_blue.png new file mode 100644 index 0000000..ecd778b --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_check_blue.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_check_green.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_check_green.png new file mode 100644 index 0000000..d9167ca --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_check_green.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_check_white.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_check_white.png new file mode 100644 index 0000000..313b74f --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_check_white.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_close_blue.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_close_blue.png new file mode 100644 index 0000000..36f4d21 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_close_blue.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_close_red.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_close_red.png new file mode 100644 index 0000000..55a3f04 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_close_red.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_close_white.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_close_white.png new file mode 100644 index 0000000..e742ace --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_close_white.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_config.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_config.png new file mode 100644 index 0000000..cb85380 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_config.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_delegate_green.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_delegate_green.png new file mode 100644 index 0000000..f0119f0 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_delegate_green.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_delete_green.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_delete_green.png new file mode 100644 index 0000000..5c46d6a --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_delete_green.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_delete_red.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_delete_red.png new file mode 100644 index 0000000..c55d47c --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_delete_red.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_delete_white.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_delete_white.png new file mode 100644 index 0000000..a79d74f --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_delete_white.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_battery.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_battery.png new file mode 100644 index 0000000..988629c --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_battery.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_bell.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_bell.png new file mode 100644 index 0000000..4adebb7 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_bell.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_camera.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_camera.png new file mode 100644 index 0000000..6a470d2 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_camera.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_clock.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_clock.png new file mode 100644 index 0000000..d2c805e --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_clock.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_coffeemachine.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_coffeemachine.png new file mode 100644 index 0000000..b59ceeb --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_coffeemachine.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_contactdetector.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_contactdetector.png new file mode 100644 index 0000000..f10b724 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_contactdetector.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_contactsensor.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_contactsensor.png new file mode 100644 index 0000000..fad478f --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_contactsensor.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_default.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_default.png new file mode 100644 index 0000000..c788ff1 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_default.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_door.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_door.png new file mode 100644 index 0000000..fad478f --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_door.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_electriccar.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_electriccar.png new file mode 100644 index 0000000..e722900 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_electriccar.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_enocean.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_enocean.png new file mode 100644 index 0000000..e94a98b --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_enocean.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_flooddetector.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_flooddetector.png new file mode 100644 index 0000000..e4979b5 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_flooddetector.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_gasvalve.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_gasvalve.png new file mode 100644 index 0000000..7dac2ee --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_gasvalve.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_gauge.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_gauge.png new file mode 100644 index 0000000..c96e867 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_gauge.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_greennet.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_greennet.png new file mode 100644 index 0000000..7565516 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_greennet.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_heatingsystem.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_heatingsystem.png new file mode 100644 index 0000000..a227486 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_heatingsystem.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_hue.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_hue.png new file mode 100644 index 0000000..914569e --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_hue.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_ipcamera.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_ipcamera.png new file mode 100644 index 0000000..2f6e4a7 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_ipcamera.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_kettle.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_kettle.png new file mode 100644 index 0000000..7527449 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_kettle.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_light.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_light.png new file mode 100644 index 0000000..d536145 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_light.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_motiondetector.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_motiondetector.png new file mode 100644 index 0000000..f80f858 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_motiondetector.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_plug.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_plug.png new file mode 100644 index 0000000..55e3321 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_plug.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_sdt.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_sdt.png new file mode 100644 index 0000000..80364d6 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_sdt.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_sensors.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_sensors.png new file mode 100644 index 0000000..66f2876 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_sensors.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_smokedetector.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_smokedetector.png new file mode 100644 index 0000000..fd3e44b --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_smokedetector.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_smokeextractor.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_smokeextractor.png new file mode 100644 index 0000000..0e5d191 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_smokeextractor.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_solarpanel.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_solarpanel.png new file mode 100644 index 0000000..5ccfba7 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_solarpanel.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_switchbutton.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_switchbutton.png new file mode 100644 index 0000000..966e2f0 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_switchbutton.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_thermometer.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_thermometer.png new file mode 100644 index 0000000..0321de4 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_thermometer.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_upnp.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_upnp.png new file mode 100644 index 0000000..1cd660b --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_upnp.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_warningdevice.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_warningdevice.png new file mode 100644 index 0000000..23cb5a3 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_warningdevice.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_warningdeviceb.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_warningdeviceb.png new file mode 100644 index 0000000..5fa6b79 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_warningdeviceb.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_warningdevicec.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_warningdevicec.png new file mode 100644 index 0000000..663b628 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_warningdevicec.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_watervalve.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_watervalve.png new file mode 100644 index 0000000..3ec7cc1 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_watervalve.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_weatherstation.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_weatherstation.png new file mode 100644 index 0000000..8e29fdc --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_weatherstation.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_windturbine.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_windturbine.png new file mode 100644 index 0000000..75f67a8 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_windturbine.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_x3d.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_x3d.png new file mode 100644 index 0000000..994a634 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_x3d.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_zigbee.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_zigbee.png new file mode 100644 index 0000000..9df459d --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_zigbee.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_zwave.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_zwave.png new file mode 100644 index 0000000..44e5783 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_dev_cat_zwave.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_devcat_backgound.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_devcat_backgound.png new file mode 100644 index 0000000..cc59832 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_devcat_backgound.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_devices.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_devices.png new file mode 100644 index 0000000..e812ece --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_devices.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_info_red.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_info_red.png new file mode 100644 index 0000000..7c07bdd --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_info_red.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_led_ko.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_led_ko.png new file mode 100644 index 0000000..b4c05e7 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_led_ko.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_led_notconnected.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_led_notconnected.png new file mode 100644 index 0000000..1704581 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_led_notconnected.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_led_ok.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_led_ok.png new file mode 100644 index 0000000..fa2b488 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_led_ok.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_led_warn.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_led_warn.png new file mode 100644 index 0000000..90751b2 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_led_warn.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_less_dev.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_less_dev.png new file mode 100644 index 0000000..ef02db7 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_less_dev.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_more_app.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_more_app.png new file mode 100644 index 0000000..271f4b3 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_more_app.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_more_dev.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_more_dev.png new file mode 100644 index 0000000..7f89e16 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_more_dev.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_open_blue.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_open_blue.png new file mode 100644 index 0000000..f8b6ac1 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_open_blue.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_open_red.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_open_red.png new file mode 100644 index 0000000..597e710 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_open_red.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_permissions.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_permissions.png new file mode 100644 index 0000000..c76bb7e --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_permissions.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_plus_blue.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_plus_blue.png new file mode 100644 index 0000000..dc03c9d --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_plus_blue.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_plus_green.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_plus_green.png new file mode 100644 index 0000000..33ee8fa --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_plus_green.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_plus_white.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_plus_white.png new file mode 100644 index 0000000..831e865 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_plus_white.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_remove_blue.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_remove_blue.png new file mode 100644 index 0000000..79feb20 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_remove_blue.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_remove_white.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_remove_white.png new file mode 100644 index 0000000..ca944a8 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_remove_white.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_replace_blue.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_replace_blue.png new file mode 100644 index 0000000..c6d9efc --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_replace_blue.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_services.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_services.png new file mode 100644 index 0000000..6b81d6f --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_services.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_store.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_store.png new file mode 100644 index 0000000..2b2c0e0 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_store.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_store_grey.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_store_grey.png new file mode 100644 index 0000000..8016cbc --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_store_grey.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_store_red.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_store_red.png new file mode 100644 index 0000000..b8f3ee4 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_store_red.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_uninstall_red.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_uninstall_red.png new file mode 100644 index 0000000..5a1b4ce --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_uninstall_red.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_usercat_backgound.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_usercat_backgound.png new file mode 100644 index 0000000..39f9784 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_usercat_backgound.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_users_green.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_users_green.png new file mode 100644 index 0000000..a7da052 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_users_green.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_users_white.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_users_white.png new file mode 100644 index 0000000..ad5665f --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_users_white.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_zoom_blue.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_zoom_blue.png new file mode 100644 index 0000000..4a4c36f --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_zoom_blue.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_zoom_red.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_zoom_red.png new file mode 100644 index 0000000..7b81bcb --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_picto_zoom_red.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_user_avatar_boy.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_user_avatar_boy.png new file mode 100644 index 0000000..c877b02 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_user_avatar_boy.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_user_avatar_boy_sel.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_user_avatar_boy_sel.png new file mode 100644 index 0000000..8662aea --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_user_avatar_boy_sel.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_user_avatar_businessman.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_user_avatar_businessman.png new file mode 100644 index 0000000..e12f4f5 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_user_avatar_businessman.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_user_avatar_businessman_sel.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_user_avatar_businessman_sel.png new file mode 100644 index 0000000..aeb11b1 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_user_avatar_businessman_sel.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_user_avatar_default.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_user_avatar_default.png new file mode 100644 index 0000000..189a02f --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_user_avatar_default.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_user_avatar_default_sel.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_user_avatar_default_sel.png new file mode 100644 index 0000000..0c44769 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_user_avatar_default_sel.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_user_avatar_female.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_user_avatar_female.png new file mode 100644 index 0000000..498ed74 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_user_avatar_female.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_user_avatar_female_headset.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_user_avatar_female_headset.png new file mode 100644 index 0000000..1a4b436 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_user_avatar_female_headset.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_user_avatar_female_headset_sel.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_user_avatar_female_headset_sel.png new file mode 100644 index 0000000..2c7de05 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_user_avatar_female_headset_sel.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_user_avatar_female_sel.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_user_avatar_female_sel.png new file mode 100644 index 0000000..8b068d1 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_user_avatar_female_sel.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_user_avatar_girl.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_user_avatar_girl.png new file mode 100644 index 0000000..5d59bec --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_user_avatar_girl.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_user_avatar_girl_sel.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_user_avatar_girl_sel.png new file mode 100644 index 0000000..e3cad05 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_user_avatar_girl_sel.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_user_avatar_grandma.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_user_avatar_grandma.png new file mode 100644 index 0000000..24329f7 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_user_avatar_grandma.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_user_avatar_grandma_sel.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_user_avatar_grandma_sel.png new file mode 100644 index 0000000..395ae0a --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_user_avatar_grandma_sel.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_user_avatar_grandpa.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_user_avatar_grandpa.png new file mode 100644 index 0000000..bb88453 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_user_avatar_grandpa.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_user_avatar_grandpa_sel.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_user_avatar_grandpa_sel.png new file mode 100644 index 0000000..2d77366 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_user_avatar_grandpa_sel.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_user_avatar_male.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_user_avatar_male.png new file mode 100644 index 0000000..1e4aa61 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_user_avatar_male.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_user_avatar_male_headset.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_user_avatar_male_headset.png new file mode 100644 index 0000000..2db76f9 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_user_avatar_male_headset.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_user_avatar_male_headset_sel.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_user_avatar_male_headset_sel.png new file mode 100644 index 0000000..ecec508 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_user_avatar_male_headset_sel.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_user_avatar_male_sel.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_user_avatar_male_sel.png new file mode 100644 index 0000000..a5860ab --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_user_avatar_male_sel.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_white_cart.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_white_cart.png new file mode 100644 index 0000000..1e4a189 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_white_cart.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_white_gear.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_white_gear.png new file mode 100644 index 0000000..f3a7b4f --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_white_gear.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_white_in.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_white_in.png new file mode 100644 index 0000000..e0553ae --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_white_in.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_white_posterous.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_white_posterous.png new file mode 100644 index 0000000..1635789 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_white_posterous.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_wizard_zigbee_1.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_wizard_zigbee_1.png new file mode 100644 index 0000000..661bedd --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_wizard_zigbee_1.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_wizard_zigbee_2.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_wizard_zigbee_2.png new file mode 100644 index 0000000..915ecc6 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_wizard_zigbee_2.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_wizard_zigbee_3.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_wizard_zigbee_3.png new file mode 100644 index 0000000..a352b09 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_wizard_zigbee_3.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/otb_wizard_zigbee_4.png b/org.eclipse.om2m.android.dashboard/res/drawable/otb_wizard_zigbee_4.png new file mode 100644 index 0000000..f8fe88c --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/otb_wizard_zigbee_4.png Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/pressed_background_custom_theme.xml b/org.eclipse.om2m.android.dashboard/res/drawable/pressed_background_custom_theme.xml new file mode 100644 index 0000000..30f139e --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/pressed_background_custom_theme.xml
@@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- File created by the Android Action Bar Style Generator + + Copyright (C) 2011, 2017 The Android Open Source Project + Copyright (C) 2012 readyState Software Ltd + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> + <solid android:color="@color/pressed_custom_theme" /> +</shape>
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/progress_horizontal_custom_theme.xml b/org.eclipse.om2m.android.dashboard/res/drawable/progress_horizontal_custom_theme.xml new file mode 100644 index 0000000..33597d8 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/progress_horizontal_custom_theme.xml
@@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- File created by the Android Action Bar Style Generator + + Copyright (C) 2011, 2017 The Android Open Source Project + Copyright (C) 2012 readyState Software Ltd + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> + + <item android:id="@android:id/background" + android:drawable="@drawable/progress_bg_custom_theme" /> + + <item android:id="@android:id/secondaryProgress"> + <scale android:scaleWidth="100%" + android:drawable="@drawable/progress_secondary_custom_theme" /> + </item> + + <item android:id="@android:id/progress"> + <scale android:scaleWidth="100%" + android:drawable="@drawable/progress_primary_custom_theme" /> + </item> + +</layer-list>
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/radio_btn_avatar_boy.xml b/org.eclipse.om2m.android.dashboard/res/drawable/radio_btn_avatar_boy.xml new file mode 100644 index 0000000..ad258d0 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/radio_btn_avatar_boy.xml
@@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Copyright (c) 2013, 2017 Orange. + All rights reserved. This program and the accompanying materials + are made available under the terms of the Eclipse Public License v1.0 + which accompanies this distribution, and is available at + http://www.eclipse.org/legal/epl-v10.html + + Contributors: + BAREAU Cyrille <cyrille.bareau@orange.com>, + BONNARDEL Gregory <gbonnardel.ext@orange.com>, + BOLLE Sebastien <sebastien.bolle@orange.com>. + --> + +<selector xmlns:android="http://schemas.android.com/apk/res/android"> + <item android:drawable="@drawable/otb_user_avatar_boy_sel" android:state_checked="true"/> + <item android:drawable="@drawable/otb_user_avatar_boy" android:state_checked="false"/> +</selector> \ No newline at end of file
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/radio_btn_avatar_businessman.xml b/org.eclipse.om2m.android.dashboard/res/drawable/radio_btn_avatar_businessman.xml new file mode 100644 index 0000000..5529a5d --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/radio_btn_avatar_businessman.xml
@@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Copyright (c) 2013, 2017 Orange. + All rights reserved. This program and the accompanying materials + are made available under the terms of the Eclipse Public License v1.0 + which accompanies this distribution, and is available at + http://www.eclipse.org/legal/epl-v10.html + + Contributors: + BAREAU Cyrille <cyrille.bareau@orange.com>, + BONNARDEL Gregory <gbonnardel.ext@orange.com>, + BOLLE Sebastien <sebastien.bolle@orange.com>. + --> + +<selector xmlns:android="http://schemas.android.com/apk/res/android"> + <item android:drawable="@drawable/otb_user_avatar_businessman_sel" android:state_checked="true"/> + <item android:drawable="@drawable/otb_user_avatar_businessman" android:state_checked="false"/> +</selector>
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/radio_btn_avatar_female.xml b/org.eclipse.om2m.android.dashboard/res/drawable/radio_btn_avatar_female.xml new file mode 100644 index 0000000..ca9b5b6 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/radio_btn_avatar_female.xml
@@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Copyright (c) 2013, 2017 Orange. + All rights reserved. This program and the accompanying materials + are made available under the terms of the Eclipse Public License v1.0 + which accompanies this distribution, and is available at + http://www.eclipse.org/legal/epl-v10.html + + Contributors: + BAREAU Cyrille <cyrille.bareau@orange.com>, + BONNARDEL Gregory <gbonnardel.ext@orange.com>, + BOLLE Sebastien <sebastien.bolle@orange.com>. + --> + +<selector xmlns:android="http://schemas.android.com/apk/res/android"> + <item android:drawable="@drawable/otb_user_avatar_female_sel" android:state_checked="true"/> + <item android:drawable="@drawable/otb_user_avatar_female" android:state_checked="false"/> +</selector> \ No newline at end of file
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/radio_btn_avatar_female_headset.xml b/org.eclipse.om2m.android.dashboard/res/drawable/radio_btn_avatar_female_headset.xml new file mode 100644 index 0000000..9ae17ef --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/radio_btn_avatar_female_headset.xml
@@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Copyright (c) 2013, 2017 Orange. + All rights reserved. This program and the accompanying materials + are made available under the terms of the Eclipse Public License v1.0 + which accompanies this distribution, and is available at + http://www.eclipse.org/legal/epl-v10.html + + Contributors: + BAREAU Cyrille <cyrille.bareau@orange.com>, + BONNARDEL Gregory <gbonnardel.ext@orange.com>, + BOLLE Sebastien <sebastien.bolle@orange.com>. + --> + +<selector xmlns:android="http://schemas.android.com/apk/res/android"> + <item android:drawable="@drawable/otb_user_avatar_female_headset_sel" android:state_checked="true"/> + <item android:drawable="@drawable/otb_user_avatar_female_headset" android:state_checked="false"/> +</selector> \ No newline at end of file
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/radio_btn_avatar_girl.xml b/org.eclipse.om2m.android.dashboard/res/drawable/radio_btn_avatar_girl.xml new file mode 100644 index 0000000..87b5914 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/radio_btn_avatar_girl.xml
@@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Copyright (c) 2013, 2017 Orange. + All rights reserved. This program and the accompanying materials + are made available under the terms of the Eclipse Public License v1.0 + which accompanies this distribution, and is available at + http://www.eclipse.org/legal/epl-v10.html + + Contributors: + BAREAU Cyrille <cyrille.bareau@orange.com>, + BONNARDEL Gregory <gbonnardel.ext@orange.com>, + BOLLE Sebastien <sebastien.bolle@orange.com>. + --> + +<selector xmlns:android="http://schemas.android.com/apk/res/android"> + <item android:drawable="@drawable/otb_user_avatar_girl_sel" android:state_checked="true"/> + <item android:drawable="@drawable/otb_user_avatar_girl" android:state_checked="false"/> +</selector> \ No newline at end of file
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/radio_btn_avatar_grandma.xml b/org.eclipse.om2m.android.dashboard/res/drawable/radio_btn_avatar_grandma.xml new file mode 100644 index 0000000..056106a --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/radio_btn_avatar_grandma.xml
@@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Copyright (c) 2013, 2017 Orange. + All rights reserved. This program and the accompanying materials + are made available under the terms of the Eclipse Public License v1.0 + which accompanies this distribution, and is available at + http://www.eclipse.org/legal/epl-v10.html + + Contributors: + BAREAU Cyrille <cyrille.bareau@orange.com>, + BONNARDEL Gregory <gbonnardel.ext@orange.com>, + BOLLE Sebastien <sebastien.bolle@orange.com>. + --> + +<selector xmlns:android="http://schemas.android.com/apk/res/android"> + <item android:drawable="@drawable/otb_user_avatar_grandma_sel" android:state_checked="true"/> + <item android:drawable="@drawable/otb_user_avatar_grandma" android:state_checked="false"/> +</selector> \ No newline at end of file
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/radio_btn_avatar_grandpa.xml b/org.eclipse.om2m.android.dashboard/res/drawable/radio_btn_avatar_grandpa.xml new file mode 100644 index 0000000..aff7f79 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/radio_btn_avatar_grandpa.xml
@@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Copyright (c) 2013, 2017 Orange. + All rights reserved. This program and the accompanying materials + are made available under the terms of the Eclipse Public License v1.0 + which accompanies this distribution, and is available at + http://www.eclipse.org/legal/epl-v10.html + + Contributors: + BAREAU Cyrille <cyrille.bareau@orange.com>, + BONNARDEL Gregory <gbonnardel.ext@orange.com>, + BOLLE Sebastien <sebastien.bolle@orange.com>. + --> + +<selector xmlns:android="http://schemas.android.com/apk/res/android"> + <item android:drawable="@drawable/otb_user_avatar_grandpa_sel" android:state_checked="true"/> + <item android:drawable="@drawable/otb_user_avatar_grandpa" android:state_checked="false"/> +</selector> \ No newline at end of file
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/radio_btn_avatar_male.xml b/org.eclipse.om2m.android.dashboard/res/drawable/radio_btn_avatar_male.xml new file mode 100644 index 0000000..2212621 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/radio_btn_avatar_male.xml
@@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Copyright (c) 2013, 2017 Orange. + All rights reserved. This program and the accompanying materials + are made available under the terms of the Eclipse Public License v1.0 + which accompanies this distribution, and is available at + http://www.eclipse.org/legal/epl-v10.html + + Contributors: + BAREAU Cyrille <cyrille.bareau@orange.com>, + BONNARDEL Gregory <gbonnardel.ext@orange.com>, + BOLLE Sebastien <sebastien.bolle@orange.com>. + --> + +<selector xmlns:android="http://schemas.android.com/apk/res/android"> + <item android:drawable="@drawable/otb_user_avatar_male_sel" android:state_checked="true"/> + <item android:drawable="@drawable/otb_user_avatar_male" android:state_checked="false"/> +</selector> \ No newline at end of file
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/radio_btn_avatar_male_headset.xml b/org.eclipse.om2m.android.dashboard/res/drawable/radio_btn_avatar_male_headset.xml new file mode 100644 index 0000000..6182a9c --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/radio_btn_avatar_male_headset.xml
@@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Copyright (c) 2013, 2017 Orange. + All rights reserved. This program and the accompanying materials + are made available under the terms of the Eclipse Public License v1.0 + which accompanies this distribution, and is available at + http://www.eclipse.org/legal/epl-v10.html + + Contributors: + BAREAU Cyrille <cyrille.bareau@orange.com>, + BONNARDEL Gregory <gbonnardel.ext@orange.com>, + BOLLE Sebastien <sebastien.bolle@orange.com>. + --> + +<selector xmlns:android="http://schemas.android.com/apk/res/android"> + <item android:drawable="@drawable/otb_user_avatar_male_headset_sel" android:state_checked="true"/> + <item android:drawable="@drawable/otb_user_avatar_male_headset" android:state_checked="false"/> +</selector> \ No newline at end of file
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/sel_button_blue.xml b/org.eclipse.om2m.android.dashboard/res/drawable/sel_button_blue.xml new file mode 100644 index 0000000..608c7d5 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/sel_button_blue.xml
@@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (c) 2013, 2017 Orange. + All rights reserved. This program and the accompanying materials + are made available under the terms of the Eclipse Public License v1.0 + which accompanies this distribution, and is available at + http://www.eclipse.org/legal/epl-v10.html + + Contributors: + BAREAU Cyrille <cyrille.bareau@orange.com>, + BONNARDEL Gregory <gbonnardel.ext@orange.com>, + BOLLE Sebastien <sebastien.bolle@orange.com>. + --> + +<selector xmlns:android="http://schemas.android.com/apk/res/android" > + <item android:state_enabled="false" + android:drawable="@drawable/otb_button_gray" /> + <item android:state_pressed="true" + android:drawable="@drawable/otb_button_blue_pressed" /> + <item android:drawable="@drawable/otb_button_blue" /> + +</selector> \ No newline at end of file
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/sel_button_green.xml b/org.eclipse.om2m.android.dashboard/res/drawable/sel_button_green.xml new file mode 100644 index 0000000..d898ae8 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/sel_button_green.xml
@@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (c) 2013, 2017 Orange. + All rights reserved. This program and the accompanying materials + are made available under the terms of the Eclipse Public License v1.0 + which accompanies this distribution, and is available at + http://www.eclipse.org/legal/epl-v10.html + + Contributors: + BAREAU Cyrille <cyrille.bareau@orange.com>, + BONNARDEL Gregory <gbonnardel.ext@orange.com>, + BOLLE Sebastien <sebastien.bolle@orange.com>. + --> + +<selector xmlns:android="http://schemas.android.com/apk/res/android" > + <item android:state_enabled="false" + android:drawable="@drawable/otb_button_gray" /> + <item android:state_pressed="true" + android:drawable="@drawable/otb_button_green_pressed" /> + <item android:drawable="@drawable/otb_button_green" /> + +</selector> \ No newline at end of file
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/sel_button_orange.xml b/org.eclipse.om2m.android.dashboard/res/drawable/sel_button_orange.xml new file mode 100644 index 0000000..cac6342 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/sel_button_orange.xml
@@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (c) 2013, 2017 Orange. + All rights reserved. This program and the accompanying materials + are made available under the terms of the Eclipse Public License v1.0 + which accompanies this distribution, and is available at + http://www.eclipse.org/legal/epl-v10.html + + Contributors: + BAREAU Cyrille <cyrille.bareau@orange.com>, + BONNARDEL Gregory <gbonnardel.ext@orange.com>, + BOLLE Sebastien <sebastien.bolle@orange.com>. + --> + +<selector xmlns:android="http://schemas.android.com/apk/res/android" > + <item android:state_enabled="false" + android:drawable="@drawable/otb_button_gray" /> + <item android:state_pressed="true" + android:drawable="@drawable/otb_button_orange_pressed" /> + <item android:drawable="@drawable/otb_button_orange" /> + +</selector> \ No newline at end of file
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/sel_button_red.xml b/org.eclipse.om2m.android.dashboard/res/drawable/sel_button_red.xml new file mode 100644 index 0000000..9aa84b2 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/sel_button_red.xml
@@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (c) 2013, 2017 Orange. + All rights reserved. This program and the accompanying materials + are made available under the terms of the Eclipse Public License v1.0 + which accompanies this distribution, and is available at + http://www.eclipse.org/legal/epl-v10.html + + Contributors: + BAREAU Cyrille <cyrille.bareau@orange.com>, + BONNARDEL Gregory <gbonnardel.ext@orange.com>, + BOLLE Sebastien <sebastien.bolle@orange.com>. + --> + +<selector xmlns:android="http://schemas.android.com/apk/res/android" > + <item android:state_enabled="false" + android:drawable="@drawable/otb_button_gray" /> + <item android:state_pressed="true" + android:drawable="@drawable/otb_button_red_pressed" /> + <item android:drawable="@drawable/otb_button_red" /> + +</selector> \ No newline at end of file
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/sel_card_blue.xml b/org.eclipse.om2m.android.dashboard/res/drawable/sel_card_blue.xml new file mode 100644 index 0000000..8be6571 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/sel_card_blue.xml
@@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (c) 2013, 2017 Orange. + All rights reserved. This program and the accompanying materials + are made available under the terms of the Eclipse Public License v1.0 + which accompanies this distribution, and is available at + http://www.eclipse.org/legal/epl-v10.html + + Contributors: + BAREAU Cyrille <cyrille.bareau@orange.com>, + BONNARDEL Gregory <gbonnardel.ext@orange.com>, + BOLLE Sebastien <sebastien.bolle@orange.com>. + --> + +<selector xmlns:android="http://schemas.android.com/apk/res/android" > + <item android:state_pressed="true" + android:drawable="@drawable/otb_card_blue_pressed" /> + <item android:drawable="@drawable/otb_card_blue" /> + +</selector> \ No newline at end of file
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/sel_card_green.xml b/org.eclipse.om2m.android.dashboard/res/drawable/sel_card_green.xml new file mode 100644 index 0000000..48a9611 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/sel_card_green.xml
@@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (c) 2013, 2017 Orange. + All rights reserved. This program and the accompanying materials + are made available under the terms of the Eclipse Public License v1.0 + which accompanies this distribution, and is available at + http://www.eclipse.org/legal/epl-v10.html + + Contributors: + BAREAU Cyrille <cyrille.bareau@orange.com>, + BONNARDEL Gregory <gbonnardel.ext@orange.com>, + BOLLE Sebastien <sebastien.bolle@orange.com>. + --> + +<selector xmlns:android="http://schemas.android.com/apk/res/android" > + <item android:state_pressed="true" + android:drawable="@drawable/otb_card_green_pressed" /> + <item android:drawable="@drawable/otb_card_green" /> + +</selector> \ No newline at end of file
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/sel_card_red.xml b/org.eclipse.om2m.android.dashboard/res/drawable/sel_card_red.xml new file mode 100644 index 0000000..c0058a7 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/sel_card_red.xml
@@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (c) 2013, 2017 Orange. + All rights reserved. This program and the accompanying materials + are made available under the terms of the Eclipse Public License v1.0 + which accompanies this distribution, and is available at + http://www.eclipse.org/legal/epl-v10.html + + Contributors: + BAREAU Cyrille <cyrille.bareau@orange.com>, + BONNARDEL Gregory <gbonnardel.ext@orange.com>, + BOLLE Sebastien <sebastien.bolle@orange.com>. + --> + +<selector xmlns:android="http://schemas.android.com/apk/res/android" > + <item android:state_pressed="true" + android:drawable="@drawable/otb_card_red_pressed" /> + <item android:drawable="@drawable/otb_card_red" /> + +</selector> \ No newline at end of file
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/selectable_background_custom_theme.xml b/org.eclipse.om2m.android.dashboard/res/drawable/selectable_background_custom_theme.xml new file mode 100644 index 0000000..67ca19b --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/selectable_background_custom_theme.xml
@@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- File created by the Android Action Bar Style Generator + + Copyright (C) 2011, 2017 The Android Open Source Project + Copyright (C) 2012 readyState Software Ltd + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<selector xmlns:android="http://schemas.android.com/apk/res/android" + android:exitFadeDuration="@android:integer/config_mediumAnimTime" > + <item android:state_pressed="false" android:state_focused="true" android:drawable="@drawable/list_focused_custom_theme" /> + <item android:state_pressed="true" android:drawable="@drawable/pressed_background_custom_theme" /> + <item android:drawable="@android:color/transparent" /> +</selector> \ No newline at end of file
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/spinner_background_ab_custom_theme.xml b/org.eclipse.om2m.android.dashboard/res/drawable/spinner_background_ab_custom_theme.xml new file mode 100644 index 0000000..e48860e --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/spinner_background_ab_custom_theme.xml
@@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- File created by the Android Action Bar Style Generator + + Copyright (C) 2011, 2017 The Android Open Source Project + Copyright (C) 2012 readyState Software Ltd + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<selector xmlns:android="http://schemas.android.com/apk/res/android"> + <item android:state_enabled="false" + android:drawable="@drawable/spinner_ab_disabled_custom_theme" /> + <item android:state_pressed="true" + android:drawable="@drawable/spinner_ab_pressed_custom_theme" /> + <item android:state_pressed="false" android:state_focused="true" + android:drawable="@drawable/spinner_ab_focused_custom_theme" /> + <item android:drawable="@drawable/spinner_ab_default_custom_theme" /> +</selector>
diff --git a/org.eclipse.om2m.android.dashboard/res/drawable/tab_indicator_ab_custom_theme.xml b/org.eclipse.om2m.android.dashboard/res/drawable/tab_indicator_ab_custom_theme.xml new file mode 100644 index 0000000..403c637 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/drawable/tab_indicator_ab_custom_theme.xml
@@ -0,0 +1,37 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- File created by the Android Action Bar Style Generator + + Copyright (C) 2011, 2017 The Android Open Source Project + Copyright (C) 2012 readyState Software Ltd + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<selector xmlns:android="http://schemas.android.com/apk/res/android"> + <!-- Non focused states --> + <item android:state_focused="false" android:state_selected="false" android:state_pressed="false" android:drawable="@android:color/transparent" /> + <item android:state_focused="false" android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/tab_selected_custom_theme" /> + + <!-- Focused states --> + <item android:state_focused="true" android:state_selected="false" android:state_pressed="false" android:drawable="@drawable/tab_unselected_focused_custom_theme" /> + <item android:state_focused="true" android:state_selected="true" android:state_pressed="false" android:drawable="@drawable/tab_selected_focused_custom_theme" /> + + <!-- Pressed --> + <!-- Non focused states --> + <item android:state_focused="false" android:state_selected="false" android:state_pressed="true" android:drawable="@drawable/tab_unselected_pressed_custom_theme" /> + <item android:state_focused="false" android:state_selected="true" android:state_pressed="true" android:drawable="@drawable/tab_selected_pressed_custom_theme" /> + + <!-- Focused states --> + <item android:state_focused="true" android:state_selected="false" android:state_pressed="true" android:drawable="@drawable/tab_unselected_pressed_custom_theme" /> + <item android:state_focused="true" android:state_selected="true" android:state_pressed="true" android:drawable="@drawable/tab_selected_pressed_custom_theme" /> +</selector>
diff --git a/org.eclipse.om2m.android.dashboard/res/layout-land/main_activity.xml b/org.eclipse.om2m.android.dashboard/res/layout-land/main_activity.xml new file mode 100644 index 0000000..64cc366 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/layout-land/main_activity.xml
@@ -0,0 +1,272 @@ +<!-- + Copyright (c) 2013, 2017 Orange. + All rights reserved. This program and the accompanying materials + are made available under the terms of the Eclipse Public License v1.0 + which accompanies this distribution, and is available at + http://www.eclipse.org/legal/epl-v10.html + + Contributors: + BAREAU Cyrille <cyrille.bareau@orange.com>, + BONNARDEL Gregory <gbonnardel.ext@orange.com>, + BOLLE Sebastien <sebastien.bolle@orange.com>. + --> +<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" + xmlns:custom="http://schemas.android.com/apk/res/org.eclipse.om2m.android.dashboard" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:background="@color/solf_background" + android:keepScreenOn="true" + android:orientation="vertical" + tools:context=".Demo" > + + <ScrollView + android:id="@+id/sv_main_dynamic_card_scroller" + android:layout_width="fill_parent" + android:layout_height="match_parent" + android:layout_marginBottom="10dp" + android:layout_marginLeft="10dp" + android:layout_marginRight="10dp" + android:layout_marginTop="10dp" > + + <RelativeLayout + android:layout_width="fill_parent" + android:layout_height="wrap_content" > + + <!-- =========================================================== --> + <!-- LEFT-SIDE --> + <!-- =========================================================== --> + + <LinearLayout + android:id="@+id/ll_cse_left" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_alignParentLeft="true" + android:layout_weight="4" + android:orientation="vertical" > + + <!-- =========================================================== --> + <!-- HAB --> + <!-- =========================================================== --> + + <RelativeLayout + android:id="@+id/rl_main_zone_cse" + android:layout_width="match_parent" + android:layout_height="50dp" + android:background="@drawable/blur_shadow" > + + <ImageView + android:id="@+id/iv_cse_state_icon" + android:layout_width="30dp" + android:layout_height="30dp" + android:layout_centerVertical="true" + android:layout_gravity="center_vertical" + android:layout_marginLeft="15dp" + android:src="@drawable/otb_picto_led_ko" /> + + <TextView + android:id="@+id/tv_cse_title" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_alignParentLeft="true" + android:layout_centerVertical="true" + android:layout_gravity="center_vertical" + android:layout_marginLeft="60dp" + android:text="@string/main_config" + android:textAppearance="?android:attr/textAppearanceLarge" + android:textColor="@color/otb_orange" + android:textSize="@dimen/menu_title_size" + android:textStyle="bold" /> + + <TextView + android:id="@+id/tv_cse_status_title" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_centerVertical="true" + android:layout_marginLeft="7dp" + android:layout_toRightOf="@+id/tv_cse_title" + android:text="@string/main_cse_state_not_detected" + android:textAppearance="?android:attr/textAppearanceLarge" + android:textColor="@color/otb_orange" + android:textSize="@dimen/menu_title_size" + android:textStyle="bold" /> + + </RelativeLayout> + + <!-- =========================================================== --> + <!-- APPLICATIONS --> + <!-- =========================================================== --> + + <RelativeLayout + android:id="@+id/rl_main_zone_apps" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_marginTop="10dp" + android:background="@drawable/blur_shadow" > + + <ImageView + android:layout_width="45dp" + android:layout_height="45dp" + android:layout_alignParentLeft="true" + android:layout_alignParentTop="true" + android:layout_marginLeft="5dp" + android:layout_marginTop="5dp" + android:src="@drawable/otb_picto_services" /> + + <TextView + android:id="@+id/tv_main_counter_app" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_alignParentTop="true" + android:layout_gravity="center_vertical" + android:layout_marginLeft="60dp" + android:layout_marginTop="10dp" + android:text="xx" + android:textAppearance="?android:attr/textAppearanceLarge" + android:textColor="@color/otb_red" + android:textSize="26sp" + android:textStyle="bold" /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_alignParentTop="true" + android:layout_gravity="center_vertical" + android:layout_marginLeft="10dp" + android:layout_marginTop="15dp" + android:layout_toRightOf="@+id/tv_main_counter_app" + android:text="@string/main_applications" + android:textAppearance="?android:attr/textAppearanceLarge" + android:textColor="@color/otb_red" + android:textSize="@dimen/menu_title_size" + android:textStyle="bold" /> + + <org.eclipse.om2m.android.dashboard.tools.CustomLineView + android:layout_width="match_parent" + android:layout_height="2dp" + android:layout_alignParentLeft="true" + android:layout_alignParentTop="true" + android:layout_marginLeft="10dp" + android:layout_marginRight="10dp" + android:layout_marginTop="60dp" + custom:dashGap="2" + custom:dashWidth="2" + custom:dashed="true" + custom:orientation="horizontal" + custom:thickness="1" + custom:color="@color/otb_red" /> + + <GridLayout + android:id="@+id/gl_main_cse_app" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_centerHorizontal="true" + android:layout_marginBottom="10dp" + android:layout_marginTop="80dp" + android:animateLayoutChanges="true" + android:orientation="horizontal" + android:scrollbarAlwaysDrawVerticalTrack="false" /> + + </RelativeLayout> + + </LinearLayout> + + <!-- =========================================================== --> + <!-- RIGHT-SIDE --> + <!-- =========================================================== --> + + <LinearLayout + android:id="@+id/ll_cse_right" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_alignParentRight="true" + android:layout_weight="5" + android:layout_toRightOf="@id/ll_cse_left" + android:layout_marginLeft="10dp" + android:orientation="vertical" > + + <!-- =========================================================== --> + <!-- DEVICES --> + <!-- =========================================================== --> + + <RelativeLayout + android:id="@+id/rl_main_zone_devs" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:background="@drawable/blur_shadow" > + + <ImageView + android:layout_width="50dp" + android:layout_height="50dp" + android:layout_alignParentLeft="true" + android:layout_alignParentTop="true" + android:layout_marginLeft="5dp" + android:layout_marginTop="5dp" + android:src="@drawable/otb_picto_devices" /> + + <TextView + android:id="@+id/tv_main_counter_dev" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_alignParentTop="true" + android:layout_centerVertical="true" + android:layout_gravity="center_vertical" + android:layout_marginLeft="60dp" + android:layout_marginTop="15dp" + android:text="xx" + android:textAppearance="?android:attr/textAppearanceLarge" + android:textColor="@color/otb_blue" + android:textSize="26sp" + android:textStyle="bold" /> + + <TextView + android:id="@+id/tv_main_dev" + android:layout_width="160dp" + android:layout_height="wrap_content" + android:layout_alignParentTop="true" + android:layout_centerVertical="true" + android:layout_gravity="center_vertical" + android:layout_marginLeft="10dp" + android:layout_marginTop="20dp" + android:layout_toRightOf="@+id/tv_main_counter_dev" + android:text="@string/main_devices" + android:textAppearance="?android:attr/textAppearanceLarge" + android:textColor="@color/otb_blue" + android:textSize="@dimen/menu_title_size" + android:textStyle="bold" /> + + <org.eclipse.om2m.android.dashboard.tools.CustomLineView + android:layout_width="match_parent" + android:layout_height="2dp" + android:layout_alignParentLeft="true" + android:layout_alignParentTop="true" + android:layout_marginLeft="10dp" + android:layout_marginRight="10dp" + android:layout_marginTop="60dp" + custom:dashGap="2" + custom:dashWidth="2" + custom:dashed="true" + custom:orientation="horizontal" + custom:thickness="1" + custom:color="@color/otb_blue" /> + + <GridLayout + android:id="@+id/gl_main_cse_devices" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_centerHorizontal="true" + android:layout_marginBottom="10dp" + android:layout_marginTop="80dp" + android:animateLayoutChanges="true" + android:orientation="horizontal" + android:scrollbarAlwaysDrawVerticalTrack="false" /> + + </RelativeLayout> + + </LinearLayout> + + </RelativeLayout> + + </ScrollView> + +</RelativeLayout>
diff --git a/org.eclipse.om2m.android.dashboard/res/layout/application_config_activity.xml b/org.eclipse.om2m.android.dashboard/res/layout/application_config_activity.xml new file mode 100644 index 0000000..900128a --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/layout/application_config_activity.xml
@@ -0,0 +1,55 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (c) 2013, 2017 Orange. + All rights reserved. This program and the accompanying materials + are made available under the terms of the Eclipse Public License v1.0 + which accompanies this distribution, and is available at + http://www.eclipse.org/legal/epl-v10.html + + Contributors: + BAREAU Cyrille <cyrille.bareau@orange.com>, + BONNARDEL Gregory <gbonnardel.ext@orange.com>, + BOLLE Sebastien <sebastien.bolle@orange.com>. + --> + +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:background="@color/background" + android:orientation="vertical" > + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:background="@color/otb_red" > + + <ImageView + android:layout_width="35dp" + android:layout_height="35dp" + android:layout_marginBottom="10dp" + android:layout_marginLeft="10dp" + android:layout_marginRight="10dp" + android:layout_marginTop="10dp" + android:src="@drawable/otb_white_gear" /> + + <TextView + android:id="@+id/tv_application_config_title" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_vertical" + android:layout_marginBottom="5dp" + android:layout_marginTop="5dp" + android:text="@string/application_config_title" + android:textAppearance="?android:attr/textAppearanceLarge" + android:textColor="@color/white" + android:textSize="20sp" + android:textStyle="bold" /> + + </LinearLayout> + + <WebView + android:id="@+id/wv_application_config_container" + android:layout_width="match_parent" + android:layout_height="match_parent" /> + +</LinearLayout>
diff --git a/org.eclipse.om2m.android.dashboard/res/layout/application_details_activity.xml b/org.eclipse.om2m.android.dashboard/res/layout/application_details_activity.xml new file mode 100644 index 0000000..6a3d276 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/layout/application_details_activity.xml
@@ -0,0 +1,728 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (c) 2013, 2017 Orange. + All rights reserved. This program and the accompanying materials + are made available under the terms of the Eclipse Public License v1.0 + which accompanies this distribution, and is available at + http://www.eclipse.org/legal/epl-v10.html + + Contributors: + BAREAU Cyrille <cyrille.bareau@orange.com>, + BONNARDEL Gregory <gbonnardel.ext@orange.com>, + BOLLE Sebastien <sebastien.bolle@orange.com>. + --> + +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:custom="http://schemas.android.com/apk/res/org.eclipse.om2m.android.dashboard" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:background="@color/solf_background" + android:orientation="vertical" > + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:background="@color/otb_red" > + + <ImageView + android:layout_width="35dp" + android:layout_height="35dp" + android:layout_marginBottom="10dp" + android:layout_marginLeft="10dp" + android:layout_marginRight="10dp" + android:layout_marginTop="10dp" + android:src="@drawable/otb_white_in" /> + + <TextView + android:id="@+id/tv_app_details_title" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_vertical" + android:layout_marginBottom="5dp" + android:layout_marginTop="5dp" + android:text="@string/application_details_title" + android:textAppearance="?android:attr/textAppearanceLarge" + android:textColor="@color/white" + android:textSize="20sp" + android:textStyle="bold" /> + + </LinearLayout> + + <ScrollView + android:id="@+id/sv_app_details_scrollcontainer" + android:layout_width="match_parent" + android:layout_height="0dip" + android:layout_weight="1" > + + <LinearLayout + android:id="@+id/ll_app_details_container" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginBottom="20dp" + android:orientation="vertical" > + + <!-- ============================================================== --> + <!-- Description --> + <!-- ============================================================== --> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginLeft="10dp" + android:layout_marginRight="10dp" + android:layout_marginTop="10dp" + android:background="@drawable/blur_shadow" + android:orientation="vertical" > + + <TextView + android:id="@+id/tv_app_details_description" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginBottom="10dp" + android:layout_marginLeft="20dp" + android:layout_marginRight="20dp" + android:layout_marginTop="10dp" + android:lines="3" + android:orientation="vertical" + android:text="@string/application_details_description" + android:textColor="@color/otb_dark_gray" + android:textSize="15sp" /> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginBottom="15dp" > + + <TextView + android:id="@+id/tv_app_details_runningstate" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_vertical" + android:layout_marginLeft="20dp" + android:layout_weight="1" + android:lines="2" + android:text="" /> + + <Button + android:id="@+id/btn_app_details_startstop" + android:layout_width="225dp" + android:layout_height="wrap_content" + android:layout_marginRight="20dp" + android:layout_weight="0" + android:background="@drawable/sel_button_red" + android:text="@string/application_details_startstop" + android:textColor="@color/otb_dark_gray" + android:textSize="15sp" /> + + </LinearLayout> + + </LinearLayout> + + <!-- ============================================================== --> + <!-- PERMISSIONS --> + <!-- ============================================================== --> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginLeft="10dp" + android:layout_marginRight="10dp" + android:layout_marginTop="10dp" + android:background="@drawable/blur_shadow" + android:orientation="vertical" > + + <TextView + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginBottom="5dp" + android:layout_marginLeft="20dp" + android:layout_marginTop="10dp" + android:text="@string/application_details_permissions" + android:textAppearance="?android:attr/textAppearanceLarge" + android:textColor="@color/otb_red" + android:textSize="17sp" /> + + <org.eclipse.om2m.android.dashboard.applications.OTBApplicationPermissionsView + android:id="@+id/obj_app_details_permview" + android:layout_width="match_parent" + android:layout_height="wrap_content" /> + + </LinearLayout> + + + <!-- ============================================================== --> + <!-- CONFIGURATION --> + <!-- ============================================================== --> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginLeft="10dp" + android:layout_marginRight="10dp" + android:layout_marginTop="10dp" + android:background="@drawable/blur_shadow" + android:orientation="vertical" > + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginBottom="15dp" + android:layout_marginTop="10dp" + android:orientation="horizontal" > + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginBottom="10dp" + android:layout_marginLeft="20dp" + android:layout_weight="1" + android:text="@string/application_details_config" + android:textAppearance="?android:attr/textAppearanceLarge" + android:textColor="@color/otb_red" + android:textSize="17sp" /> + + <Button + android:id="@+id/btn_app_details_config" + android:layout_width="225dp" + android:layout_height="wrap_content" + android:layout_marginLeft="35dp" + android:layout_marginRight="20dp" + android:layout_weight="0" + android:background="@drawable/sel_button_red" + android:text="@string/application_details_config_btn" + android:textColor="@color/otb_dark_gray" + android:textSize="15sp" /> + + </LinearLayout> + + </LinearLayout> + + <!-- ============================================================== --> + <!-- UPDATE --> + <!-- ============================================================== --> + + <LinearLayout + android:id="@+id/ll_app_details_update" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginLeft="10dp" + android:layout_marginRight="10dp" + android:layout_marginTop="10dp" + android:background="@drawable/blur_shadow" + android:orientation="vertical" > + + <TextView + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginBottom="10dp" + android:layout_marginLeft="20dp" + android:layout_marginTop="10dp" + android:text="@string/application_details_update" + android:textAppearance="?android:attr/textAppearanceLarge" + android:textColor="@color/otb_red" + android:textSize="17sp" /> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginLeft="20dp" > + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_vertical" + android:layout_weight="1" + android:text="@string/application_details_update_msg1" + android:textAppearance="?android:attr/textAppearanceMedium" + android:textColor="@color/otb_red" + android:textSize="15sp" /> + + <Button + android:id="@+id/btn_app_details_update" + android:layout_width="225dp" + android:layout_height="wrap_content" + android:layout_marginLeft="35dp" + android:layout_marginRight="20dp" + android:layout_weight="0" + android:background="@drawable/sel_button_red" + android:text="@string/application_details_update_btn" + android:textColor="@color/otb_dark_gray" + android:textSize="15sp" /> + + </LinearLayout> + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginBottom="15dp" + android:layout_marginLeft="20dp" + android:layout_marginRight="20dp" + android:layout_marginTop="5dp" + android:text="@string/application_details_update_msg2" + android:textAppearance="?android:attr/textAppearanceMedium" + android:textColorHint="@color/otb_dark_gray" + android:textSize="15sp" /> + + </LinearLayout> + + <!-- ============================================================== --> + <!-- INFORMATIONS --> + <!-- ============================================================== --> + + <LinearLayout + android:id="@+id/ll_app_details_informations" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginLeft="10dp" + android:layout_marginRight="10dp" + android:layout_marginTop="10dp" + android:background="@drawable/blur_shadow" + android:orientation="vertical" > + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="10dp" > + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginBottom="10dp" + android:layout_marginLeft="20dp" + android:layout_weight="1" + android:text="@string/application_details_info" + android:textAppearance="?android:attr/textAppearanceLarge" + android:textColor="@color/otb_red" + android:textSize="17sp" /> + + <ImageView + android:id="@+id/iv_app_details_informations_expandicon" + android:layout_width="20dp" + android:layout_height="20dp" + android:layout_marginRight="20dp" + android:src="@drawable/otb_picto_open_red" /> + + </LinearLayout> + + <LinearLayout + android:id="@+id/ll_app_details_informations_content" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginBottom="15dp" + android:orientation="vertical" + android:visibility="gone" > + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" > + + <TextView + android:layout_width="170dp" + android:layout_height="wrap_content" + android:layout_marginLeft="20dp" + android:text="@string/application_details_version" + android:textAppearance="?android:attr/textAppearanceMedium" + android:textColor="@color/otb_dark_gray" + android:textSize="15sp" /> + + <TextView + android:id="@+id/tv_app_details_version" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:textAppearance="?android:attr/textAppearanceMedium" + android:textColor="@color/otb_dark_gray" + android:textSize="15sp" /> + + </LinearLayout> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" > + + <TextView + android:layout_width="170dp" + android:layout_height="wrap_content" + android:layout_marginLeft="20dp" + android:text="@string/application_details_state" + android:textAppearance="?android:attr/textAppearanceMedium" + android:textColor="@color/otb_dark_gray" + android:textSize="15sp" /> + + <TextView + android:id="@+id/tv_app_details_state" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:textAppearance="?android:attr/textAppearanceMedium" + android:textColor="@color/otb_dark_gray" + android:textSize="15sp" /> + + </LinearLayout> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" > + + <TextView + android:layout_width="170dp" + android:layout_height="wrap_content" + android:layout_marginLeft="20dp" + android:text="@string/application_details_installdate" + android:textAppearance="?android:attr/textAppearanceMedium" + android:textColor="@color/otb_dark_gray" + android:textSize="15sp" /> + + <TextView + android:id="@+id/tv_app_details_installDate" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:textAppearance="?android:attr/textAppearanceMedium" + android:textColor="@color/otb_dark_gray" + android:textSize="15sp" /> + + </LinearLayout> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" > + + <TextView + android:layout_width="170dp" + android:layout_height="wrap_content" + android:layout_marginLeft="20dp" + android:text="@string/application_details_servicename" + android:textAppearance="?android:attr/textAppearanceMedium" + android:textColor="@color/otb_dark_gray" + android:textSize="15sp" /> + + <TextView + android:id="@+id/tv_app_details_servicename" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:textAppearance="?android:attr/textAppearanceMedium" + android:textColor="@color/otb_dark_gray" + android:textSize="15sp" /> + + </LinearLayout> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" > + + <TextView + android:layout_width="170dp" + android:layout_height="wrap_content" + android:layout_marginLeft="20dp" + android:text="@string/application_details_serviceversion" + android:textAppearance="?android:attr/textAppearanceMedium" + android:textColor="@color/otb_dark_gray" + android:textSize="15sp" /> + + <TextView + android:id="@+id/tv_app_details_serviceversion" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:textAppearance="?android:attr/textAppearanceMedium" + android:textColor="@color/otb_dark_gray" + android:textSize="15sp" /> + + </LinearLayout> + + </LinearLayout> + + </LinearLayout> + + <!-- ============================================================== --> + <!-- RESOURCES --> + <!-- ============================================================== --> + + <LinearLayout + android:id="@+id/ll_app_details_resources" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginLeft="10dp" + android:layout_marginRight="10dp" + android:layout_marginTop="10dp" + android:background="@drawable/blur_shadow" + android:orientation="vertical" > + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginTop="10dp" > + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginBottom="10dp" + android:layout_marginLeft="20dp" + android:layout_weight="1" + android:text="@string/application_details_resources" + android:textAppearance="?android:attr/textAppearanceLarge" + android:textColor="@color/otb_red" + android:textSize="17sp" /> + + <ImageView + android:id="@+id/iv_app_details_resources_expandicon" + android:layout_width="20dp" + android:layout_height="20dp" + android:layout_marginRight="20dp" + android:src="@drawable/otb_picto_open_red" /> + + </LinearLayout> + + <LinearLayout + android:id="@+id/ll_app_details_resources_content" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="vertical" + android:visibility="gone" > + + <LinearLayout + android:layout_width="wrap_content" + android:layout_height="wrap_content" > + + <TextView + android:layout_width="220dp" + android:layout_height="wrap_content" + android:layout_marginLeft="20dp" + android:text="@string/application_details_ram" + android:textAppearance="?android:attr/textAppearanceMedium" + android:textColor="@color/otb_dark_gray" + android:textSize="15sp" /> + + <TextView + android:id="@+id/tv_app_details_ram" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="right" + android:layout_marginLeft="20dp" + android:text="-- bytes" + android:textAppearance="?android:attr/textAppearanceMedium" + android:textColor="@color/otb_dark_gray" + android:textSize="15sp" /> + + </LinearLayout> + + <LinearLayout + android:layout_width="wrap_content" + android:layout_height="wrap_content" > + + <TextView + android:layout_width="220dp" + android:layout_height="wrap_content" + android:layout_marginLeft="20dp" + android:text="@string/application_details_cpu" + android:textAppearance="?android:attr/textAppearanceMedium" + android:textColor="@color/otb_dark_gray" + android:textSize="15sp" /> + + <TextView + android:id="@+id/tv_app_details_cpu" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="right" + android:layout_marginLeft="20dp" + android:text="--" + android:textAppearance="?android:attr/textAppearanceMedium" + android:textColor="@color/otb_dark_gray" + android:textSize="15sp" /> + + </LinearLayout> + + <LinearLayout + android:layout_width="wrap_content" + android:layout_height="wrap_content" > + + <TextView + android:layout_width="220dp" + android:layout_height="wrap_content" + android:layout_marginLeft="20dp" + android:text="@string/application_details_sockets" + android:textAppearance="?android:attr/textAppearanceMedium" + android:textColor="@color/otb_dark_gray" + android:textSize="15sp" /> + + <TextView + android:id="@+id/tv_app_details_sockets" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="right" + android:layout_marginLeft="20dp" + android:text="--" + android:textAppearance="?android:attr/textAppearanceMedium" + android:textColor="@color/otb_dark_gray" + android:textSize="15sp" /> + + </LinearLayout> + + <LinearLayout + android:layout_width="wrap_content" + android:layout_height="wrap_content" > + + <TextView + android:layout_width="220dp" + android:layout_height="wrap_content" + android:layout_marginLeft="20dp" + android:text="@string/application_details_threads" + android:textAppearance="?android:attr/textAppearanceMedium" + android:textColor="@color/otb_dark_gray" + android:textSize="15sp" /> + + <TextView + android:id="@+id/tv_app_details_threads" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="right" + android:layout_marginLeft="20dp" + android:text="--" + android:textAppearance="?android:attr/textAppearanceMedium" + android:textColor="@color/otb_dark_gray" + android:textSize="15sp" /> + + </LinearLayout> + + <LinearLayout + android:layout_width="wrap_content" + android:layout_height="wrap_content" > + + <TextView + android:layout_width="220dp" + android:layout_height="wrap_content" + android:layout_marginLeft="20dp" + android:text="@string/application_details_flash" + android:textAppearance="?android:attr/textAppearanceMedium" + android:textColor="@color/otb_dark_gray" + android:textSize="15sp" /> + + <TextView + android:id="@+id/tv_app_details_flash" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="right" + android:layout_marginLeft="20dp" + android:text="-- bytes" + android:textAppearance="?android:attr/textAppearanceMedium" + android:textColor="@color/otb_dark_gray" + android:textSize="15sp" /> + + </LinearLayout> + + <LinearLayout + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginBottom="15dp" > + + <TextView + android:layout_width="220dp" + android:layout_height="wrap_content" + android:layout_marginLeft="20dp" + android:text="@string/application_details_bandwidth" + android:textAppearance="?android:attr/textAppearanceMedium" + android:textColor="@color/otb_dark_gray" + android:textSize="15sp" /> + + <TextView + android:id="@+id/tv_app_details_bandwidth" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="right" + android:layout_marginLeft="20dp" + android:text="-- bytes" + android:textAppearance="?android:attr/textAppearanceMedium" + android:textColor="@color/otb_dark_gray" + android:textSize="15sp" /> + + </LinearLayout> + + </LinearLayout> + + </LinearLayout> + + <!-- ============================================================== --> + <!-- COMPOSITION --> + <!-- ============================================================== --> + + <LinearLayout + android:id="@+id/ll_app_details_composition" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginBottom="10dp" + android:layout_marginLeft="10dp" + android:layout_marginRight="10dp" + android:layout_marginTop="10dp" + android:background="@drawable/blur_shadow" + android:orientation="vertical" > + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginBottom="10dp" + android:layout_marginTop="10dp" > + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginLeft="20dp" + android:layout_weight="1" + android:text="@string/application_details_compo" + android:textAppearance="?android:attr/textAppearanceLarge" + android:textColor="@color/otb_red" + android:textSize="17sp" /> + + <ImageView + android:id="@+id/iv_app_details_composition_expandicon" + android:layout_width="20dp" + android:layout_height="20dp" + android:layout_marginRight="20dp" + android:src="@drawable/otb_picto_open_red" /> + + </LinearLayout> + + <LinearLayout + android:id="@+id/ll_app_details_composition_content" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginBottom="15dp" + android:orientation="vertical" + android:visibility="gone" > + + <org.eclipse.om2m.android.dashboard.tools.CustomLineView + android:layout_width="match_parent" + android:layout_height="2dp" + android:layout_marginLeft="10dp" + android:layout_marginRight="10dp" + android:visibility="gone" + custom:dashGap="2" + custom:dashWidth="2" + custom:dashed="true" + custom:orientation="horizontal" + custom:thickness="1" + custom:color="@color/gray" /> + + </LinearLayout> + + </LinearLayout> + + </LinearLayout> + + </ScrollView> + + <RelativeLayout + android:layout_width="fill_parent" + android:layout_height="40dp" + android:layout_gravity="bottom" + android:background="@color/otb_red" + android:orientation="horizontal" > + + <Button + android:id="@+id/btn_app_details_uninstall" + android:layout_width="30dp" + android:layout_height="30dp" + android:layout_alignParentLeft="true" + android:layout_centerVertical="true" + android:layout_marginLeft="20dp" + android:background="@drawable/otb_picto_delete_white" /> + + </RelativeLayout> + +</LinearLayout>
diff --git a/org.eclipse.om2m.android.dashboard/res/layout/config_activity.xml b/org.eclipse.om2m.android.dashboard/res/layout/config_activity.xml new file mode 100644 index 0000000..5f9f86d --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/layout/config_activity.xml
@@ -0,0 +1,101 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (c) 2013, 2017 Orange. + All rights reserved. This program and the accompanying materials + are made available under the terms of the Eclipse Public License v1.0 + which accompanies this distribution, and is available at + http://www.eclipse.org/legal/epl-v10.html + + Contributors: + BAREAU Cyrille <cyrille.bareau@orange.com>, + BONNARDEL Gregory <gbonnardel.ext@orange.com>, + BOLLE Sebastien <sebastien.bolle@orange.com>. + --> + +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:custom="http://schemas.android.com/apk/res/com.orange.openthebox.dashboard" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:background="@color/solf_background" + android:orientation="vertical" > + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:background="@color/otb_orange" > + + <ImageView + android:layout_width="35dp" + android:layout_height="35dp" + android:layout_marginBottom="10dp" + android:layout_marginLeft="10dp" + android:layout_marginRight="10dp" + android:layout_marginTop="10dp" + android:src="@drawable/otb_white_gear" /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_vertical" + android:layout_marginBottom="5dp" + android:layout_marginTop="5dp" + android:text="@string/config_title" + android:textAppearance="?android:attr/textAppearanceLarge" + android:textColor="@color/white" + android:textSize="20sp" + android:textStyle="bold" /> + + </LinearLayout> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:background="@color/otb_orange" + android:orientation="horizontal" + android:visibility="gone" > + + <TextView + android:id="@+id/textView2" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginBottom="5dp" + android:layout_marginLeft="50dp" + android:layout_weight="1" + android:text="@string/config_application" + android:textAppearance="?android:attr/textAppearanceMedium" + android:textColor="@color/white" /> + + <TextView + android:id="@+id/textView1" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginBottom="5dp" + android:layout_marginRight="70dp" + android:text="@string/config_devices" + android:textAppearance="?android:attr/textAppearanceMedium" + android:textColor="@color/white" /> + + </LinearLayout> + + <ScrollView + android:layout_width="match_parent" + android:layout_height="wrap_content" > + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="vertical" > + + <LinearLayout + android:id="@+id/ll_config_container" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="vertical" + android:paddingBottom="20dp" + android:animateLayoutChanges="true" > + + </LinearLayout> + </LinearLayout> + </ScrollView> + +</LinearLayout> \ No newline at end of file
diff --git a/org.eclipse.om2m.android.dashboard/res/layout/config_view.xml b/org.eclipse.om2m.android.dashboard/res/layout/config_view.xml new file mode 100644 index 0000000..8882076 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/layout/config_view.xml
@@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (c) 2013, 2017 Orange. + All rights reserved. This program and the accompanying materials + are made available under the terms of the Eclipse Public License v1.0 + which accompanies this distribution, and is available at + http://www.eclipse.org/legal/epl-v10.html + + Contributors: + BAREAU Cyrille <cyrille.bareau@orange.com>, + BONNARDEL Gregory <gbonnardel.ext@orange.com>, + BOLLE Sebastien <sebastien.bolle@orange.com>. + --> + +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginLeft="10dp" + android:layout_marginRight="10dp" + android:layout_marginTop="10dp" + android:background="@drawable/blur_shadow" + android:orientation="vertical" > + + <org.eclipse.om2m.android.dashboard.applications.OTBApplicationPermissionsView + android:id="@+id/obj_config_permview" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginLeft="5dp" + android:layout_marginRight="5dp" /> + +</LinearLayout> \ No newline at end of file
diff --git a/org.eclipse.om2m.android.dashboard/res/layout/device_details_activity.xml b/org.eclipse.om2m.android.dashboard/res/layout/device_details_activity.xml new file mode 100644 index 0000000..3218399 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/layout/device_details_activity.xml
@@ -0,0 +1,293 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (c) 2013, 2017 Orange. + All rights reserved. This program and the accompanying materials + are made available under the terms of the Eclipse Public License v1.0 + which accompanies this distribution, and is available at + http://www.eclipse.org/legal/epl-v10.html + + Contributors: + BAREAU Cyrille <cyrille.bareau@orange.com>, + BONNARDEL Gregory <gbonnardel.ext@orange.com>, + BOLLE Sebastien <sebastien.bolle@orange.com>. + --> + +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:custom="http://schemas.android.com/apk/res/com.orange.openthebox.dashboard" + xmlns:app="http://schemas.android.com/apk/res/com.orange.openthebox.dashboard" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:background="@color/solf_background" + android:orientation="vertical" > + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:background="@color/otb_blue" > + + <ImageView + android:layout_width="35dp" + android:layout_height="35dp" + android:layout_marginBottom="10dp" + android:layout_marginLeft="10dp" + android:layout_marginRight="10dp" + android:layout_marginTop="10dp" + android:src="@drawable/otb_white_posterous" /> + + <TextView + android:id="@+id/tv_device_details_title" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_vertical" + android:layout_marginBottom="5dp" + android:layout_marginTop="5dp" + android:text="@string/devices_title" + android:textAppearance="?android:attr/textAppearanceLarge" + android:textColor="@color/white" + android:textSize="20sp" + android:textStyle="bold" /> + + </LinearLayout> + + <ScrollView + android:layout_width="match_parent" + android:layout_height="0dip" + android:layout_weight="1" > + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="vertical" > + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginLeft="10dp" + android:layout_marginRight="10dp" + android:layout_marginTop="10dp" + android:background="@drawable/blur_shadow" + android:orientation="vertical" > + + <TextView + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginBottom="20dp" + android:layout_marginLeft="20dp" + android:layout_marginTop="10dp" + android:text="@string/device_details_info" + android:textAppearance="?android:attr/textAppearanceLarge" + android:textColor="@color/otb_blue" + android:textSize="17sp" /> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" > + + <TextView + android:layout_width="150dp" + android:layout_height="wrap_content" + android:layout_marginLeft="20dp" + android:text="@string/device_details_serialNumber" + android:textAppearance="?android:attr/textAppearanceMedium" + android:textColor="@color/otb_dark_gray" + android:textSize="15sp" /> + + <TextView + android:id="@+id/tv_device_details_serialNumber" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginRight="10dp" + android:textAppearance="?android:attr/textAppearanceMedium" + android:textColor="@color/otb_dark_gray" + android:textSize="15sp" /> + </LinearLayout> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" > + + <TextView + android:layout_width="150dp" + android:layout_height="wrap_content" + android:layout_marginLeft="20dp" + android:text="@string/device_details_deviceName" + android:textAppearance="?android:attr/textAppearanceMedium" + android:textColor="@color/otb_dark_gray" + android:textSize="15sp" /> + + <TextView + android:id="@+id/tv_device_details_deviceName" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginRight="10dp" + android:textAppearance="?android:attr/textAppearanceMedium" + android:textColor="@color/otb_dark_gray" + android:textSize="15sp" /> + </LinearLayout> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" > + + <TextView + android:layout_width="150dp" + android:layout_height="wrap_content" + android:layout_marginLeft="20dp" + android:text="@string/device_details_cnd" + android:textAppearance="?android:attr/textAppearanceMedium" + android:textColor="@color/otb_dark_gray" + android:textSize="15sp" /> + + <TextView + android:id="@+id/tv_device_details_cnd" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginRight="10dp" + android:textAppearance="?android:attr/textAppearanceMedium" + android:textColor="@color/otb_dark_gray" + android:textSize="15sp" /> + </LinearLayout> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" > + + <TextView + android:layout_width="150dp" + android:layout_height="wrap_content" + android:layout_marginLeft="20dp" + android:text="@string/device_details_manufacturer" + android:textAppearance="?android:attr/textAppearanceMedium" + android:textColor="@color/otb_dark_gray" + android:textSize="15sp" /> + + <TextView + android:id="@+id/tv_device_details_manufacturer" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginRight="10dp" + android:textAppearance="?android:attr/textAppearanceMedium" + android:textColor="@color/otb_dark_gray" + android:textSize="15sp" /> + + </LinearLayout> + + <LinearLayout + android:id="@+id/ll_device_details_model" + android:layout_width="match_parent" + android:layout_height="wrap_content" > + + <TextView + android:layout_width="150dp" + android:layout_height="wrap_content" + android:layout_marginLeft="20dp" + android:text="@string/device_details_model" + android:textAppearance="?android:attr/textAppearanceMedium" + android:textColor="@color/otb_dark_gray" + android:textSize="15sp" /> + + <TextView + android:id="@+id/tv_device_details_model" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginRight="10dp" + android:textAppearance="?android:attr/textAppearanceMedium" + android:textColor="@color/otb_dark_gray" + android:textSize="15sp" /> + + </LinearLayout> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" > + + <TextView + android:layout_width="150dp" + android:layout_height="wrap_content" + android:layout_marginLeft="20dp" + android:text="@string/device_details_protocol" + android:textAppearance="?android:attr/textAppearanceMedium" + android:textColor="@color/otb_dark_gray" + android:textSize="15sp" /> + + <TextView + android:id="@+id/tv_device_details_protocol" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginRight="10dp" + android:textAppearance="?android:attr/textAppearanceMedium" + android:textColor="@color/otb_dark_gray" + android:textSize="15sp" /> + + </LinearLayout> + + <LinearLayout + android:id="@+id/ll_device_details_location" + android:layout_width="match_parent" + android:layout_height="wrap_content" > + + <TextView + android:layout_width="150dp" + android:layout_height="wrap_content" + android:layout_marginLeft="20dp" + android:text="@string/device_details_location" + android:textAppearance="?android:attr/textAppearanceMedium" + android:textColor="@color/otb_dark_gray" + android:textSize="15sp" /> + + <TextView + android:id="@+id/tv_device_details_location" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginRight="10dp" + android:textAppearance="?android:attr/textAppearanceMedium" + android:textColor="@color/otb_dark_gray" + android:textSize="15sp" /> + + </LinearLayout> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginBottom="15dp" > + + <TextView + android:layout_width="150dp" + android:layout_height="wrap_content" + android:layout_marginLeft="20dp" + android:text="@string/device_details_modules" + android:textAppearance="?android:attr/textAppearanceMedium" + android:textColor="@color/otb_dark_gray" + android:textSize="15sp" /> + + <LinearLayout + android:id="@+id/ll_device_details_modules" + android:orientation="vertical" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginRight="10dp" + android:textAppearance="?android:attr/textAppearanceMedium" + android:textColor="@color/otb_dark_gray" + android:ems="10" + android:inputType="text" + android:textSize="15sp" > + + </LinearLayout> + + </LinearLayout> + + </LinearLayout> + + </LinearLayout> + + </ScrollView> + + <RelativeLayout + android:layout_width="fill_parent" + android:layout_height="40dp" + android:background="@color/otb_blue" + android:orientation="horizontal" > + + </RelativeLayout> + +</LinearLayout>
diff --git a/org.eclipse.om2m.android.dashboard/res/layout/device_simple_view.xml b/org.eclipse.om2m.android.dashboard/res/layout/device_simple_view.xml new file mode 100644 index 0000000..17bedab --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/layout/device_simple_view.xml
@@ -0,0 +1,80 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (c) 2013, 2017 Orange. + All rights reserved. This program and the accompanying materials + are made available under the terms of the Eclipse Public License v1.0 + which accompanies this distribution, and is available at + http://www.eclipse.org/legal/epl-v10.html + + Contributors: + BAREAU Cyrille <cyrille.bareau@orange.com>, + BONNARDEL Gregory <gbonnardel.ext@orange.com>, + BOLLE Sebastien <sebastien.bolle@orange.com>. + --> + +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:custom="http://schemas.android.com/apk/res/org.eclipse.om2m.android.dashboard" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:orientation="vertical" > + + <org.eclipse.om2m.android.dashboard.tools.CustomLineView + custom:dashed="true" + android:layout_width="match_parent" + android:layout_height="2dp" + custom:dashGap="2" + custom:dashWidth="2" + custom:thickness="1" + custom:orientation="horizontal" + custom:color="@color/otb_blue" /> + + <LinearLayout + android:id="@+id/ll_device_simple" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginBottom="5dp" + android:layout_marginTop="5dp" > + + <LinearLayout + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_vertical" + android:layout_weight="1" + android:orientation="vertical" > + + <TextView + android:id="@+id/tv_device_simple_name" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginLeft="20dp" + android:text="@string/device_name" + android:textAppearance="?android:attr/textAppearanceLarge" + android:textColor="@color/otb_dark_gray" + android:textSize="15sp" + android:textStyle="bold" /> + + <TextView + android:id="@+id/tv_device_simple_decription" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginLeft="20dp" + android:layout_marginRight="20dp" + android:text="@string/device_description" + android:textAppearance="?android:attr/textAppearanceSmall" + android:textColor="@color/otb_dark_gray" + android:textSize="15sp" /> + + </LinearLayout> + + <ImageView + android:id="@+id/iv_main_app_entry_icon" + android:layout_width="25dp" + android:layout_height="25dp" + android:layout_marginBottom="5dp" + android:layout_marginRight="20dp" + android:layout_marginTop="5dp" + android:src="@drawable/otb_picto_zoom_blue" /> + + </LinearLayout> + +</LinearLayout> \ No newline at end of file
diff --git a/org.eclipse.om2m.android.dashboard/res/layout/device_type_container_view.xml b/org.eclipse.om2m.android.dashboard/res/layout/device_type_container_view.xml new file mode 100644 index 0000000..6ac0a89 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/layout/device_type_container_view.xml
@@ -0,0 +1,100 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (c) 2013, 2017 Orange. + All rights reserved. This program and the accompanying materials + are made available under the terms of the Eclipse Public License v1.0 + which accompanies this distribution, and is available at + http://www.eclipse.org/legal/epl-v10.html + + Contributors: + BAREAU Cyrille <cyrille.bareau@orange.com>, + BONNARDEL Gregory <gbonnardel.ext@orange.com>, + BOLLE Sebastien <sebastien.bolle@orange.com>. + --> + +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:custom="http://schemas.android.com/apk/res/com.orange.openthebox.dashboard" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:orientation="vertical" > + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginLeft="10dp" + android:layout_marginRight="10dp" + android:layout_marginTop="10dp" + android:background="@drawable/blur_shadow" + android:orientation="vertical" > + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginBottom="5dp" > + + <RelativeLayout + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginBottom="3dp" + android:layout_marginLeft="10dp" + android:layout_marginTop="3dp" + android:layout_weight="1" > + + <ImageView + android:id="@+id/imageView1" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:src="@drawable/otb_picto_devcat_backgound" /> + + <TextView + android:id="@+id/tv_devType_count" + android:layout_width="30dp" + android:layout_height="wrap_content" + android:layout_marginLeft="5dp" + android:layout_marginTop="3dp" + android:gravity="center_horizontal" + android:text="1" + android:textColor="@color/gray" + android:textSize="23sp" /> + + <ImageView + android:id="@+id/iv_devType_icon" + android:layout_width="wrap_content" + android:layout_height="72dp" + android:layout_marginLeft="35dp" + android:layout_marginTop="15dp" + android:src="@drawable/otb_picto_dev_cat_zwave" /> + + </RelativeLayout> + + <TextView + android:id="@+id/tv_devType_locale" + android:layout_width="200dp" + android:layout_height="wrap_content" + android:layout_marginLeft="5dp" + android:layout_marginTop="3dp" + android:layout_gravity="left" + android:textColor="@color/gray" + android:textSize="23sp" /> + + <ImageView + android:id="@+id/iv_devType_moreLess" + android:layout_width="20dp" + android:layout_height="20dp" + android:layout_gravity="right|center_vertical" + android:layout_marginRight="20dp" + android:src="@drawable/otb_picto_close_blue" /> + + </LinearLayout> + + <LinearLayout + android:id="@+id/ll_devType_container" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginBottom="10dp" + android:orientation="vertical" + android:animateLayoutChanges="true" /> + + </LinearLayout> + +</LinearLayout>
diff --git a/org.eclipse.om2m.android.dashboard/res/layout/devices_activity.xml b/org.eclipse.om2m.android.dashboard/res/layout/devices_activity.xml new file mode 100644 index 0000000..b5452fc --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/layout/devices_activity.xml
@@ -0,0 +1,72 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (c) 2013, 2017 Orange. + All rights reserved. This program and the accompanying materials + are made available under the terms of the Eclipse Public License v1.0 + which accompanies this distribution, and is available at + http://www.eclipse.org/legal/epl-v10.html + + Contributors: + BAREAU Cyrille <cyrille.bareau@orange.com>, + BONNARDEL Gregory <gbonnardel.ext@orange.com>, + BOLLE Sebastien <sebastien.bolle@orange.com>. + --> + +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:custom="http://schemas.android.com/apk/res/com.orange.openthebox.dashboard" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:background="@color/solf_background" + android:orientation="vertical" > + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:background="@color/otb_blue" > + + <ImageView + android:layout_width="35dp" + android:layout_height="35dp" + android:layout_marginBottom="10dp" + android:layout_marginLeft="10dp" + android:layout_marginRight="10dp" + android:layout_marginTop="10dp" + android:src="@drawable/otb_white_posterous" /> + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_vertical" + android:layout_marginBottom="5dp" + android:layout_marginTop="5dp" + android:text="@string/devices_title" + android:textAppearance="?android:attr/textAppearanceLarge" + android:textColor="@color/white" + android:textSize="20sp" + android:textStyle="bold" /> + + </LinearLayout> + + <ScrollView + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_weight="1" > + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="vertical" > + + <LinearLayout + android:id="@+id/ll_devices_container" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="vertical" + android:paddingBottom="20dp" + android:animateLayoutChanges="true" /> + + </LinearLayout> + + </ScrollView> + +</LinearLayout>
diff --git a/org.eclipse.om2m.android.dashboard/res/layout/main_activity.xml b/org.eclipse.om2m.android.dashboard/res/layout/main_activity.xml new file mode 100644 index 0000000..c674b4f --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/layout/main_activity.xml
@@ -0,0 +1,334 @@ +<!-- + Copyright (c) 2013, 2017 Orange. + All rights reserved. This program and the accompanying materials + are made available under the terms of the Eclipse Public License v1.0 + which accompanies this distribution, and is available at + http://www.eclipse.org/legal/epl-v10.html + + Contributors: + BAREAU Cyrille <cyrille.bareau@orange.com>, + BONNARDEL Gregory <gbonnardel.ext@orange.com>, + BOLLE Sebastien <sebastien.bolle@orange.com>. + --> +<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:tools="http://schemas.android.com/tools" + xmlns:custom="http://schemas.android.com/apk/res/org.eclipse.om2m.android.dashboard" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:background="@color/solf_background" + android:keepScreenOn="true" + android:orientation="vertical" + tools:context=".Demo" > + + <LinearLayout + android:layout_width="fill_parent" + android:layout_height="fill_parent" + android:orientation="vertical" > + + <!-- =========================================================== --> + <!-- CSE --> + <!-- =========================================================== --> + + <LinearLayout + android:id="@+id/ll_main_zone_cse" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginLeft="10dp" + android:layout_marginRight="10dp" + android:layout_marginTop="13dp" + android:background="@drawable/blur_shadow" + android:orientation="vertical" > + + <LinearLayout + android:layout_width="fill_parent" + android:layout_height="50dp" + android:orientation="horizontal" > + + <RelativeLayout + android:layout_width="match_parent" + android:layout_height="match_parent" > + + <ImageView + android:id="@+id/iv_cse_state_icon" + android:layout_width="30dp" + android:layout_height="30dp" + android:layout_centerVertical="true" + android:layout_gravity="center_vertical" + android:layout_marginLeft="15dp" + android:src="@drawable/otb_picto_led_notconnected" /> + + <TextView + android:id="@+id/tv_cse_title" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_alignParentLeft="true" + android:layout_centerVertical="true" + android:layout_gravity="center_vertical" + android:layout_marginLeft="60dp" + android:text="@string/main_config" + android:textAppearance="?android:attr/textAppearanceLarge" + android:textColor="@color/otb_orange" + android:textSize="@dimen/menu_title_size" + android:textStyle="bold" /> + + <TextView + android:id="@+id/tv_cse_status_title" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_centerVertical="true" + android:layout_marginLeft="7dp" + android:layout_toRightOf="@+id/tv_cse_title" + android:text="@string/main_cse_state_not_detected" + android:textAppearance="?android:attr/textAppearanceLarge" + android:textColor="@color/otb_orange" + android:textSize="@dimen/menu_title_size" + android:textStyle="bold" /> + + </RelativeLayout> + + </LinearLayout> + + </LinearLayout> + + <ScrollView + android:id="@+id/sv_main_dynamic_card_scroller" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_marginBottom="10dp" + android:layout_marginLeft="10dp" + android:layout_marginRight="10dp" + android:layout_marginTop="10dp" > + + <LinearLayout + android:id="@+id/ll_main_dynamic_card_container" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="vertical" > + + + <!-- =========================================================== --> + <!-- APPLICATIONS --> + <!-- =========================================================== --> + + <RelativeLayout + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_weight="3" + android:background="@drawable/blur_shadow" > + + <ImageView + android:layout_width="45dp" + android:layout_height="45dp" + android:layout_alignParentLeft="true" + android:layout_alignParentTop="true" + android:layout_marginLeft="5dp" + android:layout_marginTop="5dp" + android:src="@drawable/otb_picto_services" /> + + <TextView + android:id="@+id/tv_main_counter_app" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_alignParentTop="true" + android:layout_gravity="center_vertical" + android:layout_marginLeft="60dp" + android:layout_marginTop="10dp" + android:text="xx" + android:textAppearance="?android:attr/textAppearanceLarge" + android:textColor="@color/otb_red" + android:textSize="26sp" + android:textStyle="bold" /> + + <TextView + android:id="@+id/tv_main_title_app" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_alignParentTop="true" + android:layout_gravity="center_vertical" + android:layout_marginLeft="10dp" + android:layout_marginTop="15dp" + android:layout_toRightOf="@+id/tv_main_counter_app" + android:text="@string/main_applications" + android:textAppearance="?android:attr/textAppearanceLarge" + android:textColor="@color/otb_red" + android:textSize="@dimen/menu_title_size" + android:textStyle="bold" /> + + <org.eclipse.om2m.android.dashboard.tools.CustomLineView + android:layout_width="match_parent" + android:layout_height="2dp" + android:layout_alignParentLeft="true" + android:layout_alignParentTop="true" + android:layout_marginLeft="10dp" + android:layout_marginRight="10dp" + android:layout_marginTop="60dp" + custom:dashGap="2" + custom:dashWidth="2" + custom:dashed="true" + custom:orientation="horizontal" + custom:thickness="1" + custom:color="@color/otb_red" /> + + <GridLayout + android:id="@+id/gl_main_cse_app" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_centerHorizontal="true" + android:layout_marginBottom="10dp" + android:layout_marginTop="80dp" + android:animateLayoutChanges="true" + android:orientation="horizontal" + android:scrollbarAlwaysDrawVerticalTrack="false" > + + </GridLayout> + + </RelativeLayout> + + <!-- =========================================================== --> + <!-- DEVICES --> + <!-- =========================================================== --> + + <RelativeLayout + android:id="@+id/rl_main_zone_devs" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_weight="4" + android:layout_marginTop="10dp" + android:background="@drawable/blur_shadow" > + + <ImageView + android:layout_width="50dp" + android:layout_height="50dp" + android:layout_alignParentLeft="true" + android:layout_alignParentTop="true" + android:layout_marginLeft="5dp" + android:layout_marginTop="5dp" + android:src="@drawable/otb_picto_devices" /> + + <TextView + android:id="@+id/tv_main_counter_dev" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_alignParentTop="true" + android:layout_gravity="center_vertical" + android:layout_marginLeft="60dp" + android:layout_marginTop="15dp" + android:text="xx" + android:textAppearance="?android:attr/textAppearanceLarge" + android:textColor="@color/otb_blue" + android:textSize="26sp" + android:textStyle="bold" /> + + <TextView + android:id="@+id/tv_main_title_dev" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_alignParentTop="true" + android:layout_gravity="center_vertical" + android:layout_marginLeft="10dp" + android:layout_marginTop="20dp" + android:layout_toRightOf="@+id/tv_main_counter_dev" + android:text="@string/main_devices" + android:textAppearance="?android:attr/textAppearanceLarge" + android:textColor="@color/otb_blue" + android:textSize="@dimen/menu_title_size" + android:textStyle="bold" /> + + <LinearLayout + android:id="@+id/ll_replace_device" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_centerVertical="false" + android:layout_marginTop="13dp" + android:layout_toRightOf="@+id/tv_main_dev" + android:orientation="horizontal" > + + <TextView + android:layout_width="120dp" + android:layout_height="wrap_content" + android:layout_alignParentRight="true" + android:layout_centerVertical="true" + android:layout_gravity="center_vertical" + android:gravity="right" + android:text="@string/main_btn_replace" + android:textColor="@color/otb_blue" + android:textSize="14sp" /> + + <ImageView + android:layout_width="40dp" + android:layout_height="40dp" + android:layout_alignParentRight="true" + android:layout_marginRight="4dp" + android:layout_weight="1" + android:src="@drawable/otb_picto_replace_blue" /> + + </LinearLayout> + + <RelativeLayout + android:id="@+id/rl_main_add_device" + android:layout_width="250dp" + android:layout_height="40dp" + android:layout_alignParentRight="true" + android:layout_marginTop="10dp" + android:layout_weight="1" + android:gravity="right" > + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_alignParentRight="true" + android:layout_centerVertical="true" + android:layout_gravity="center_vertical" + android:layout_marginRight="60dp" + android:layout_weight="1" + android:text="@string/main_btn_devs" + android:textColor="@color/otb_blue" + android:textSize="14sp" /> + + <ImageView + android:layout_width="40dp" + android:layout_height="40dp" + android:layout_alignParentRight="true" + android:layout_marginRight="20dp" + android:layout_weight="1" + android:src="@drawable/otb_picto_add_dev_blue" /> + + </RelativeLayout> + + <org.eclipse.om2m.android.dashboard.tools.CustomLineView + android:layout_width="match_parent" + android:layout_height="2dp" + android:layout_alignParentLeft="true" + android:layout_alignParentTop="true" + android:layout_marginLeft="10dp" + android:layout_marginRight="10dp" + android:layout_marginTop="60dp" + custom:dashGap="2" + custom:dashWidth="2" + custom:dashed="true" + custom:orientation="horizontal" + custom:thickness="1" + custom:color="@color/otb_blue" /> + + <GridLayout + android:id="@+id/gl_main_cse_devices" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_centerHorizontal="true" + android:layout_marginBottom="10dp" + android:layout_marginTop="80dp" + android:animateLayoutChanges="true" + android:orientation="horizontal" + android:scrollbarAlwaysDrawVerticalTrack="false" > + + </GridLayout> + + </RelativeLayout> + + </LinearLayout> + + </ScrollView> + + </LinearLayout> + +</RelativeLayout>
diff --git a/org.eclipse.om2m.android.dashboard/res/layout/main_app_entry_view.xml b/org.eclipse.om2m.android.dashboard/res/layout/main_app_entry_view.xml new file mode 100644 index 0000000..5e8fe34 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/layout/main_app_entry_view.xml
@@ -0,0 +1,60 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (c) 2013, 2017 Orange. + All rights reserved. This program and the accompanying materials + are made available under the terms of the Eclipse Public License v1.0 + which accompanies this distribution, and is available at + http://www.eclipse.org/legal/epl-v10.html + + Contributors: + BAREAU Cyrille <cyrille.bareau@orange.com>, + BONNARDEL Gregory <gbonnardel.ext@orange.com>, + BOLLE Sebastien <sebastien.bolle@orange.com>. + --> + +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="175dp" + android:layout_height="wrap_content" + android:minWidth="165dp" + android:orientation="vertical" + android:paddingBottom="5dp" + android:paddingLeft="5dp" + android:paddingRight="5dp" + android:paddingTop="5dp" > + + <RelativeLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" > + + <ImageView + android:id="@+id/iv_main_app_entry_icon" + android:layout_width="72dp" + android:layout_height="72dp" + android:layout_centerInParent="true" + android:src="@drawable/otb_appicon_default" /> + + <RelativeLayout + android:id="@+id/rl_main_app_entry_stopped" + android:layout_width="72dp" + android:layout_height="72dp" + android:layout_centerInParent="true" + android:background="#aaffffff" + android:visibility="invisible" > + + </RelativeLayout> + + </RelativeLayout> + + <TextView + android:id="@+id/tv_main_app_entry_name" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:gravity="center_horizontal" + android:text="@string/device_name" + android:textAppearance="?android:attr/textAppearanceLarge" + android:textColor="@color/otb_red" + android:textSize="12sp" + android:width="165dp" /> + +</LinearLayout>
diff --git a/org.eclipse.om2m.android.dashboard/res/layout/main_dev_view.xml b/org.eclipse.om2m.android.dashboard/res/layout/main_dev_view.xml new file mode 100644 index 0000000..5975850 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/layout/main_dev_view.xml
@@ -0,0 +1,60 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (c) 2013, 2017 Orange. + All rights reserved. This program and the accompanying materials + are made available under the terms of the Eclipse Public License v1.0 + which accompanies this distribution, and is available at + http://www.eclipse.org/legal/epl-v10.html + + Contributors: + BAREAU Cyrille <cyrille.bareau@orange.com>, + BONNARDEL Gregory <gbonnardel.ext@orange.com>, + BOLLE Sebastien <sebastien.bolle@orange.com>. + --> + +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:minWidth="150dp" + android:orientation="horizontal" > + + <LinearLayout + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:orientation="vertical" > + + <RelativeLayout + android:layout_width="wrap_content" + android:layout_height="match_parent" + android:minWidth="150dp" > + + <!-- <ImageView + android:id="@+id/imageView1" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:src="@drawable/otb_picto_devcat_backgound" /> --> + + <ImageView + android:id="@+id/iv_main_dev_category_icon" + android:layout_width="wrap_content" + android:layout_height="72dp" + android:layout_centerInParent="true" + android:layout_gravity="center_horizontal" + android:src="@drawable/otb_picto_dev_cat_zwave" /> + + </RelativeLayout> + + <TextView + android:id="@+id/tv_devType_name" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:layout_marginLeft="5dp" + android:layout_marginTop="3dp" + android:text="TEST DEVICE" + android:textColor="@color/otb_blue" + android:textSize="11sp" /> + + </LinearLayout> + +</LinearLayout>
diff --git a/org.eclipse.om2m.android.dashboard/res/layout/settings_activity.xml b/org.eclipse.om2m.android.dashboard/res/layout/settings_activity.xml new file mode 100644 index 0000000..5129fea --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/layout/settings_activity.xml
@@ -0,0 +1,378 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (c) 2013, 2017 Orange. + All rights reserved. This program and the accompanying materials + are made available under the terms of the Eclipse Public License v1.0 + which accompanies this distribution, and is available at + http://www.eclipse.org/legal/epl-v10.html + + Contributors: + BAREAU Cyrille <cyrille.bareau@orange.com>, + BONNARDEL Gregory <gbonnardel.ext@orange.com>, + BOLLE Sebastien <sebastien.bolle@orange.com>. + --> + +<LinearLayout xmlns:custom="http://schemas.android.com/apk/res/org.eclipse.om2m.android.dashboard" + xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:background="@color/white" + android:orientation="vertical" > + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginBottom="10dp" + android:background="@color/soft_gray" > + + <ImageView + android:layout_width="35dp" + android:layout_height="35dp" + android:layout_marginBottom="10dp" + android:layout_marginLeft="10dp" + android:layout_marginRight="10dp" + android:layout_marginTop="10dp" + android:src="@drawable/otb_white_gear" /> + + <TextView + android:id="@+id/tv_title" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_vertical" + android:layout_marginBottom="5dp" + android:layout_marginTop="5dp" + android:layout_weight="1" + android:text="@string/settings_title" + android:textAppearance="?android:attr/textAppearanceLarge" + android:textColor="@color/white" + android:textSize="20sp" + android:textStyle="bold" /> + + <TextView + android:id="@+id/tv_version" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="right|center_vertical" + android:layout_marginBottom="5dp" + android:layout_marginRight="20dp" + android:layout_marginTop="5dp" + android:text="@string/settings_version" + android:textAppearance="?android:attr/textAppearanceLarge" + android:textColor="@color/white" + android:textSize="15sp" /> + </LinearLayout> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="match_parent" + android:orientation="vertical" > + + <ScrollView + android:layout_width="match_parent" + android:layout_height="wrap_content" > + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="match_parent" + android:orientation="vertical" > + + <LinearLayout + android:id="@+id/ll_settings_cse" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginLeft="10dp" + android:orientation="vertical" > + + <TextView + android:id="@+id/tv_settings_cse" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginLeft="20dp" + android:text="@string/settings_cse" + android:textAppearance="?android:attr/textAppearanceLarge" + android:textSize="16sp" /> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginLeft="10dp" > + + <TextView + android:id="@+id/tv_settings_cse_url_label" + android:layout_width="150dp" + android:layout_height="wrap_content" + android:layout_marginLeft="60dp" + android:text="@string/settings_cse_hostname" + android:textAppearance="?android:attr/textAppearanceLarge" + android:textSize="14sp" /> + + <EditText + android:id="@+id/et_settings_cse_hostname" + android:layout_width="200dp" + android:layout_height="wrap_content" + android:layout_marginLeft="20dp" + android:layout_marginRight="20dp" + android:layout_weight="1" + android:ems="10" + android:inputType="text" + android:textSize="14sp" /> + + <TextView + android:layout_width="150dp" + android:layout_height="wrap_content" + android:layout_marginLeft="60dp" + android:text="@string/settings_cse_port" + android:textAppearance="?android:attr/textAppearanceLarge" + android:textSize="14sp" /> + + <EditText + android:id="@+id/et_settings_cse_port" + android:layout_width="200dp" + android:layout_height="wrap_content" + android:layout_marginLeft="20dp" + android:layout_marginRight="20dp" + android:layout_weight="1" + android:ems="10" + android:inputType="number" + android:textSize="14sp" /> + </LinearLayout> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginLeft="10dp" > + + <TextView + android:id="@+id/tv_settings_cse_cseId_label" + android:layout_width="150dp" + android:layout_height="wrap_content" + android:layout_marginLeft="60dp" + android:text="@string/settings_cse_cseId" + android:textAppearance="?android:attr/textAppearanceLarge" + android:textSize="14sp" /> + + <EditText + android:id="@+id/et_settings_cse_cseId" + android:layout_width="200dp" + android:layout_height="wrap_content" + android:layout_marginLeft="20dp" + android:layout_marginRight="20dp" + android:layout_weight="1" + android:ems="10" + android:inputType="text" + android:textSize="14sp" /> + + <TextView + android:layout_width="150dp" + android:layout_height="wrap_content" + android:layout_marginLeft="60dp" + android:text="@string/settings_cse_cseName" + android:textAppearance="?android:attr/textAppearanceLarge" + android:textSize="14sp" /> + + <EditText + android:id="@+id/et_settings_cse_cseName" + android:layout_width="200dp" + android:layout_height="wrap_content" + android:layout_marginLeft="20dp" + android:layout_marginRight="20dp" + android:layout_weight="1" + android:ems="10" + android:inputType="text" + android:textSize="14sp" /> + </LinearLayout> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_marginLeft="10dp" > + + <TextView + android:id="@+id/tv_settings_cse_login" + android:layout_width="150dp" + android:layout_height="wrap_content" + android:layout_marginLeft="60dp" + android:text="@string/login_cse_login" + android:textAppearance="?android:attr/textAppearanceLarge" + android:textSize="14sp" /> + + <EditText + android:id="@+id/et_settings_cse_login" + android:layout_width="200dp" + android:layout_height="wrap_content" + android:layout_marginLeft="20dp" + android:layout_marginRight="20dp" + android:layout_weight="1" + android:ems="10" + android:inputType="text" + android:textSize="14sp" /> + + <TextView + android:id="@+id/tv_settings_cse_pwd" + android:layout_width="150dp" + android:layout_height="wrap_content" + android:layout_marginLeft="60dp" + android:text="@string/login_cse_pwd" + android:textAppearance="?android:attr/textAppearanceLarge" + android:textSize="14sp" /> + + <EditText + android:id="@+id/et_settings_cse_pwd" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginLeft="20dp" + android:layout_marginRight="20dp" + android:layout_weight="1" + android:ems="10" + android:inputType="number" + android:textSize="14sp" /> + </LinearLayout> + </LinearLayout> + + <org.eclipse.om2m.android.dashboard.tools.CustomLineView + android:layout_width="match_parent" + android:layout_height="2dp" + android:layout_marginBottom="25dp" + android:layout_marginLeft="10dp" + android:layout_marginRight="10dp" + android:layout_marginTop="25dp" + custom:dashGap="2" + custom:dashWidth="2" + custom:dashed="true" + custom:orientation="horizontal" + custom:thickness="1" + custom:color="@color/gray" /> + + <LinearLayout + android:id="@+id/ll_settings_device_name" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:orientation="vertical" > + + <TextView + android:id="@+id/tv_settings_device_name" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginLeft="20dp" + android:text="@string/settings_device_name" + android:textAppearance="?android:attr/textAppearanceLarge" + android:textSize="16sp" /> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:gravity="center" + android:orientation="vertical" > + + <RadioGroup + android:id="@+id/radioGroup1" + android:layout_width="wrap_content" + android:layout_height="wrap_content" > + + <RadioButton + android:id="@+id/rb_device_name_with_alias" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:checked="true" + android:text="@string/device_name_with_alias" /> + + <RadioButton + android:id="@+id/rb_device_name_with_name" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="@string/device_name_with_name" /> + </RadioGroup> + + </LinearLayout> + + </LinearLayout> + + <org.eclipse.om2m.android.dashboard.tools.CustomLineView + android:layout_width="match_parent" + android:layout_height="2dp" + android:layout_marginBottom="25dp" + android:layout_marginLeft="10dp" + android:layout_marginRight="10dp" + android:layout_marginTop="25dp" + custom:dashGap="2" + custom:dashWidth="2" + custom:dashed="true" + custom:orientation="horizontal" + custom:thickness="1" + custom:color="@color/gray" /> + + <CheckBox + android:id="@+id/cb_settings_wizards" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginLeft="20dp" + android:text="@string/settings_activateWizard" + android:textSize="16sp" /> + + <org.eclipse.om2m.android.dashboard.tools.CustomLineView + android:layout_width="match_parent" + android:layout_height="2dp" + android:layout_marginBottom="25dp" + android:layout_marginLeft="10dp" + android:layout_marginRight="10dp" + android:layout_marginTop="25dp" + custom:dashGap="2" + custom:dashWidth="2" + custom:dashed="true" + custom:orientation="horizontal" + custom:thickness="1" + custom:color="@color/gray" /> + + <RadioGroup + android:layout_width="wrap_content" + android:layout_height="wrap_content" > + + <RadioButton + android:id="@+id/rd_language_en" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginLeft="20dp" + android:text="@string/settings_language_en" + android:textSize="16sp" /> + + <RadioButton + android:id="@+id/rd_language_fr" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginLeft="20dp" + android:text="@string/settings_language_fr" + android:textSize="16sp" /> + </RadioGroup> + + <LinearLayout + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:layout_gravity="bottom" + android:layout_marginBottom="100dp" + android:layout_marginTop="20dp" > + + <Button + android:id="@+id/btn_settings_validate" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginLeft="50dp" + android:layout_marginRight="25dp" + android:layout_weight="1" + android:background="@drawable/sel_button_green" + android:text="@string/dialog_btn_validate" /> + + <Button + android:id="@+id/btn_settings_cancel" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginLeft="25dp" + android:layout_marginRight="50dp" + android:layout_weight="1" + android:background="@drawable/sel_button_red" + android:text="@string/dialog_btn_cancel" /> + </LinearLayout> + </LinearLayout> + </ScrollView> + </LinearLayout> + +</LinearLayout> \ No newline at end of file
diff --git a/org.eclipse.om2m.android.dashboard/res/menu/menu_main.xml b/org.eclipse.om2m.android.dashboard/res/menu/menu_main.xml new file mode 100644 index 0000000..b75526b --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/menu/menu_main.xml
@@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (c) 2013, 2017 Orange. + All rights reserved. This program and the accompanying materials + are made available under the terms of the Eclipse Public License v1.0 + which accompanies this distribution, and is available at + http://www.eclipse.org/legal/epl-v10.html + + Contributors: + BAREAU Cyrille <cyrille.bareau@orange.com>, + BONNARDEL Gregory <gbonnardel.ext@orange.com>, + BOLLE Sebastien <sebastien.bolle@orange.com>. + --> + +<menu xmlns:android="http://schemas.android.com/apk/res/android" > + + <item android:id="@+id/menu_settings" + android:title="@string/menu_settings" + android:menuCategory="system" + android:showAsAction="always" + android:icon="@drawable/ic_action_settings"></item> + +</menu>
diff --git a/org.eclipse.om2m.android.dashboard/res/menu/menu_panel.xml b/org.eclipse.om2m.android.dashboard/res/menu/menu_panel.xml new file mode 100644 index 0000000..097652f --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/menu/menu_panel.xml
@@ -0,0 +1,29 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (c) 2013, 2017 Orange. + All rights reserved. This program and the accompanying materials + are made available under the terms of the Eclipse Public License v1.0 + which accompanies this distribution, and is available at + http://www.eclipse.org/legal/epl-v10.html + + Contributors: + BAREAU Cyrille <cyrille.bareau@orange.com>, + BONNARDEL Gregory <gbonnardel.ext@orange.com>, + BOLLE Sebastien <sebastien.bolle@orange.com>. + --> + +<menu xmlns:android="http://schemas.android.com/apk/res/android" > + + <item android:id="@+id/menu_login" + android:title="@string/menu_login" + android:menuCategory="system" + android:showAsAction="always" + android:icon="@drawable/ic_action_login"></item> + + <item android:id="@+id/menu_help" + android:title="@string/menu_help" + android:menuCategory="system" + android:showAsAction="always" + android:icon="@drawable/ic_action_help"></item> + +</menu>
diff --git a/org.eclipse.om2m.android.dashboard/res/menu/menu_secondary.xml b/org.eclipse.om2m.android.dashboard/res/menu/menu_secondary.xml new file mode 100644 index 0000000..8a2eea9 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/menu/menu_secondary.xml
@@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (c) 2013, 2017 Orange. + All rights reserved. This program and the accompanying materials + are made available under the terms of the Eclipse Public License v1.0 + which accompanies this distribution, and is available at + http://www.eclipse.org/legal/epl-v10.html + + Contributors: + BAREAU Cyrille <cyrille.bareau@orange.com>, + BONNARDEL Gregory <gbonnardel.ext@orange.com>, + BOLLE Sebastien <sebastien.bolle@orange.com>. + --> + +<menu xmlns:android="http://schemas.android.com/apk/res/android" > + + <item android:id="@+id/menu_help" + android:title="@string/menu_help" + android:menuCategory="system" + android:showAsAction="always" + android:icon="@drawable/ic_action_help"></item> + +</menu>
diff --git a/org.eclipse.om2m.android.dashboard/res/values-en/strings.xml b/org.eclipse.om2m.android.dashboard/res/values-en/strings.xml new file mode 100644 index 0000000..3021839 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/values-en/strings.xml
@@ -0,0 +1,401 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (c) 2013, 2017 Orange. + All rights reserved. This program and the accompanying materials + are made available under the terms of the Eclipse Public License v1.0 + which accompanies this distribution, and is available at + http://www.eclipse.org/legal/epl-v10.html + + Contributors: + BAREAU Cyrille <cyrille.bareau@orange.com>, + BONNARDEL Gregory <gbonnardel.ext@orange.com>, + BOLLE Sebastien <sebastien.bolle@orange.com>. + --> + +<resources> + + <string name="app_name">Home Dashboard</string> + <string name="action_settings">Settings</string> + <string name="empty"></string> + <string name="main_applications">Installed applications</string> + <string name="main_store">Available applications</string> + <string name="main_devices">Connected devices</string> + <string name="main_config">Dashboard</string> + <string name="main_users">Users</string> + <string name="applications_title">Installed applications</string> + <string name="store_title">Applications Store</string> + <string name="config_title">Permissions</string> + <string name="devices_title">Connected devices</string> + <string name="users_title">Connected users</string> + <string name="settings_title">Settings</string> + <string name="login_title">Connection</string> + <string name="main_cse">Dashboard is </string> + <string name="main_cse_state">Status</string> + <string name="main_cse_fw">Firmware</string> + <string name="main_cse_state_ok">is connected</string> + <string name="main_cse_state_warning">is partially operational</string> + <string name="main_cse_state_error">is not connected</string> + <string name="main_cse_state_not_detected">is not detected</string> + <string name="main_cse_state_not_connected">is not connected</string> + <string name="main_btn_apps">apps</string> + <string name="main_btn_config">permissions</string> + <string name="main_btn_devs">add device</string> + <string name="main_btn_usrs">add user</string> + <string name="main_btn_delegate">delegate rights</string> + <string name="main_btn_replace">replace device</string> + <string name="main_login_titles">Login</string> + <string name="main_login_needed">You are not logged in. See Settings.</string> + <string name="main_login_wrong">Authentication failed. Retry...</string> + <string name="main_subtitle_app">quick access to your installed applications</string> + <string name="main_subtitle_dev">your connected devices by category</string> + <string name="main_subtitle_store">new applications can be downloaded on your HAB</string> + <string name="main_subtitle_config">the status of your HAB and permissions configuration</string> + <string name="main_dev_cat">device(s)</string> + <string name="main_dev_sup_cat" formatted="false">there is %sup% other category(ies)</string> + <string name="main_app_sup" formatted="false">there is %sup% other application(s)</string> + <string name="main_config_action">configure permissions</string> + <string name="main_store_intro">For new features and optimize your installation, you can download new applications from the Applications Store</string> + <string name="main_store_go">access the store</string> + <string name="card_cpu">CPU:</string> + <string name="card_ram">RAM:</string> + <string name="device_type_name">type</string> + <string name="device_name">name</string> + <string name="device_description">description</string> + <string name="device_btn_detail">details</string> + <string name="device_show_details">more details</string> + <string name="device_remove_asso" formatted="false">remove association</string> + <string name="device_replacement">Device Replacement</string> + <string name="device_replacement_select">Select the device to be replaced in the following list</string> + <string name="device_replacement_0_all">List of all devices</string> + <string name="device_replacement_0_type">List of similar devices</string> + <string name="device_replacement_apply" formatted="false">Do replace the device \"%dev_name%\" by another device of same type %dev_type%?</string> + <string name="device_replacement_select_new">Select the new device in the following list</string> + <string name="device_replacement_nodevice_error">No similar device</string> + <string name="device_replacement_error">Error during device replacement: </string> + <string name="device_replacement_ok" formatted="false">Device replacement performed. You can uninstall device \"%dev_name%\"</string> + <string name="device_details_info">Informations:</string> + <string name="device_details_asso">Could be used by:</string> + <string name="device_details_check">Check the device:</string> + <string name="device_details_state">Status:</string> + <string name="device_details_btn_update">Update associations</string> + <string name="device_details_btn_asso">Manage permissions</string> + <string name="device_details_btn_store">Subscribe to new services\nfor your devices</string> + <string name="device_details_msg_eject">Do you really want to disconnect this device?\n\nAssociated applications with this device could be affected.</string> + <string name="device_details_msg_eject_title">Disconnect this device</string> + <string name="device_details_permissions_update_title">Permissions update</string> + <string name="device_details_permissions_update_msg">During the permissions update, the selected applications will restart.\n\nDo you want to perform the update?</string> + <string name="device_details_no_access_rights">You are not allowed to access this device</string> + <string name="device_details_no_access_rights_title">Device Access</string> + <string name="devices_addnewone_title">Install a new device</string> + <string name="devices_addnewone_dev_type">Which type of device would you like to install?</string> + <string name="devices_addnewone_dev_procedure">Installation procedure:</string> + <string name="devices_addnewone_dev_type_zigbee">ZigBee</string> + <string name="devices_addnewone_dev_type_x3d">X3D</string> + <string name="devices_addnewone_dev_type_greennet">GreenNet</string> + <string name="devices_addnewone_dev_type_upnp">UPnP</string> + <string name="devices_addnewone_dev_type_agora">Agora</string> + <string name="devices_addnewone_dev_agora_msg">You just have to connect your Agora device on the network.\n\nIt will be automatically discovered by your HAB.</string> + <string name="devices_addnewone_dev_upnp_msg">You just have to connect your Upnp device on the network.\n\nIt will be automatically discovered by your HAB.</string> + <string name="devices_addnewone_dev_zigbee_msg" formatted="false">While adding an element in the Zigbee network requires the activation of \"pairing mode\" at its coordinator\n\nTo do this, follow these steps:</string> + <string name="devices_addnewone_dev_step_1">1 - </string> + <string name="devices_addnewone_dev_step_2">2 - </string> + <string name="devices_addnewone_dev_step_3">3 - </string> + <string name="devices_addnewone_dev_step_4">4 - </string> + <string name="devices_addnewone_dev_zigbee_submsg_1">Check that the Zigbee coordinator is plugged into the USB port on your HAB</string> + <string name="devices_addnewone_dev_zigbee_submsg_2" formatted="false">Activate the \"pairing mode\" of your coordinator</string> + <string name="devices_addnewone_dev_zigbee_submsg_2_1">. If your coordinator has a pairing button, press it.</string> + <string name="devices_addnewone_dev_zigbee_submsg_2_2">. Otherwise, press the generic pairing button on your HAB.</string> + <string name="devices_addnewone_dev_zigbee_submsg_3" formatted="false">Connect your new ZigBee device on the network and activate his \"pairing mode\". (see instructions)</string> + <string name="devices_addnewone_dev_zigbee_submsg_4">The pairing will occur between your coordinator and the new device. Once completed, your device will be visible and functional.</string> + <string name="application_simple_name">APP NAME</string> + <string name="application_simple_version">Version:</string> + <string name="application_simple_state">Status:</string> + <string name="application_simple_details">Details</string> + <string name="application_simple_noasso">there is no associated device with this application</string> + <string name="application_simple_update">an update is available</string> + <string name="application_show_details">more details</string> + <string name="application_remove_asso" formatted="false">remove association</string> + <string name="application_config_title" formatted="false">\"%app_name%\" configuration</string> + <string name="application_details_servicename">Service:</string> + <string name="application_details_serviceversion">Service version:</string> + <string name="application_details_title">Application</string> + <string name="application_details_info">Information:</string> + <string name="application_details_compo">Composition:</string> + <string name="application_details_version">Version:</string> + <string name="application_details_state">Status:</string> + <string name="application_details_installdate">Installation date:</string> + <string name="application_details_resources">Used resources:</string> + <string name="application_details_resource_unavailable">unavailable</string> + <string name="application_details_ram">RAM:</string> + <string name="application_details_cpu">CPU (time):</string> + <string name="application_details_threads">Threads count:</string> + <string name="application_details_sockets">Sockets count:</string> + <string name="application_details_flash">Flash size:</string> + <string name="application_details_bandwidth">Bandwidth:</string> + <string name="application_details_ram_value" formatted="false">%VALUE% bytes</string> + <string name="application_details_cpu_value" formatted="false">%VALUE% %</string> + <string name="application_details_threads_value" formatted="false">%VALUE% thread(s)</string> + <string name="application_details_sockets_value" formatted="false">%VALUE% socket(s)</string> + <string name="application_details_flash_value" formatted="false">%VALUE% bytes</string> + <string name="application_details_bandwidth_value" formatted="false">%VALUE% bytes/s</string> + <string name="application_details_update">Update:</string> + <string name="application_details_update_btn">Update</string> + <string name="application_details_update_msg1">An update is available.</string> + <string name="application_details_update_msg2">During the update, the application will be momentarily out.</string> + <string name="application_details_config">Configuration:</string> + <string name="application_details_config_btn">Configure</string> + <string name="application_details_permissions">Permissions:</string> + <string name="application_details_bundle_3rd">Partners</string> + <string name="application_details_bundle_op">Operator</string> + <string name="application_details_monitoring_activated">The application\'s resources monitoring is activated</string> + <string name="application_details_monitoring_unactivated">The application\'s resources monitoring is disabled</string> + <string name="application_details_btn_now">now</string> + <string name="application_details_btn_later">later</string> + <string name="application_details_btn_no">no</string> + <string name="application_details_msg_update">During the update, the application will no longer be functional.\n\nDo you want to perform the update?</string> + <string name="application_details_msg_update_title">Update</string> + <string name="application_details_msg_uninstall">Do you really want to uninstall this application?</string> + <string name="application_details_msg_uninstall_title">Uninstallation</string> + <string name="application_details_no_config">This application does not have configuration interface</string> + <string name="application_details_no_access_rights">You are not allowed to access this application</string> + <string name="application_details_no_uninstall_rights">You are not allowed to uninstall this application</string> + <string name="application_details_permissions_btn">Manage permissions</string> + <string name="application_details_permissions_msg">permissions established between</string> + <string name="application_details_permissions_update_title">Permissions Update</string> + <string name="application_details_permissions_update_msg">During the permissions update, the application will restart.\n\nDo you want to perform the update?</string> + <string name="application_details_startstop">Start</string> + <string name="application_details_description">---</string> + <string name="application_details_msgRunning">The application is currently running</string> + <string name="application_details_msgNotRunning">The application is currently stopped</string> + <string name="application_details_btnStop">Stop</string> + <string name="application_details_btnStart">Start</string> + <string name="application_details_stopped">(stopped)</string> + <string name="application_details_not_accessible">Not accessible</string> + <string name="dialog_btn_ok">OK</string> + <string name="dialog_btn_yes">Yes</string> + <string name="dialog_btn_no">No</string> + <string name="dialog_btn_cancel">Cancel</string> + <string name="dialog_btn_apply">Apply</string> + <string name="dialog_btn_validate">Validate</string> + <string name="dialog_btn_create">Create</string> + <string name="dialog_btn_modify">Modify</string> + <string name="config_devices">Associated Devices</string> + <string name="config_application">Application</string> + <string name="config_device_name">Device xxxx</string> + <string name="config_app_name">Application xxxx</string> + <string name="config_serv_name">Service xxxx</string> + <string name="config_btn_update">Update</string> + <string name="config_btn_associate">Associate</string> + <string name="config_asso">associate with</string> + <string name="config_update_title_dev" formatted="false">Select the applications that may use \"%dev_name%\"</string> + <string name="config_update_title_app" formatted="false">Select the devices that may be used by \"%app_name%\"</string> + <string name="config_update_noapp">There is no installed application that can use this device</string> + <string name="config_update_nodev">There is no connected device nor installed applications that can be used by this application</string> + <string name="menu_settings">options</string> + <string name="menu_help">help</string> + <string name="menu_login">Connection</string> + <string name="settings_hab_ip">HAB IP address:</string> + <string name="settings_hab_port">HAB port:</string> + <string name="settings_activateWizard">Active all wizards</string> + <string name="settings_autoDiscorevy">Auto HAB discovery</string> + <string name="settings_manualDiscorevy">Manual HAB discovery</string> + <string name="settings_discovered_ip">HAB found at the ip:</string> + <string name="settings_no_hab">HAB not found</string> + <string name="settings_version">dasboard version: %version%</string> + <string name="settings_language_en">english</string> + <string name="settings_language_fr">français</string> + <string name="login_current">%current%</string> + <string name="login_cse_login">Login</string> + <string name="login_cse_pwd">Password</string> + <string name="wizard_application_simple_mainMsg">This screen shows all installed applications on your HAB</string> + <string name="wizard_application_simple_actions">Actions:</string> + <string name="wizard_application_simple_action_uninstall">uninstall an application</string> + <string name="wizard_application_simple_action_config">configure an application</string> + <string name="wizard_application_simple_action_details">display more details about an application</string> + <string name="wizard_application_details_action_device">display more information about a device associated with an application. "long click" to remove association</string> + <string name="wizard_application_details_action_asso">associate the application with devices</string> + <string name="wizard_application_details_mainMsg">This screen shows the details of the application</string> + <string name="wizard_application_details_actions">Actions:</string> + <string name="wizard_application_details_action_uninstall">uninstall the application</string> + <string name="wizard_application_details_action_config">configure the application / update permissions</string> + <string name="wizard_application_details_action_openclose">open / close a section</string> + <string name="wizard_device_details_mainMsg">This screen shows the details of the device</string> + <string name="wizard_device_details_actions">Actions:</string> + <string name="wizard_device_details_action_eject">disconnect safely the device</string> + <string name="wizard_device_details_action_check">display settings and controls to test the device</string> + <string name="wizard_device_details_action_asso">associate the device to applications</string> + <string name="wizard_device_details_action_app">display more information about associated applications with the device. "long click" to remove association</string> + <string name="wizard_device_simple_mainMsg">This screen shows all your connected devices</string> + <string name="wizard_device_simple_actions">Actions:</string> + <string name="wizard_device_simple_action_details">display more details about a device</string> + <string name="wizard_device_simple_action_add">install a new device</string> + <string name="wizard_device_simple_action_moreless">open/close the category</string> + <string name="wizard_config_mainMsg">This screen shows the devices than can be used by each application</string> + <string name="wizard_config_actions">Actions:</string> + <string name="wizard_config_action_update">update the permissions</string> + <string name="wizard_config_action_device">display more details about a device</string> + <string name="wizard_config_action_app">display more details about an application</string> + <string name="wizard_user_simple_mainMsg">This screen shows all the existing user accounts</string> + <string name="wizard_user_simple_action_add">create a new user account</string> + <string name="wizard_user_simple_action_details">display more details about a user</string> + <string name="wizard_user_details_mainMsg">This screen shows the detailed access rights of a user account</string> + <string name="wizard_user_details_action_delete">remove the user account</string> + <string name="wizard_user_details_action_update">modify the access rights of the user</string> + <string name="usr_details_title">User</string> + <string name="usr_details_access_rights">Access Rights:</string> + <string name="usr_details_access_rights_msg">Access Rights on</string> + <string name="user_details_no_access_rights">You are not allowed to access users accounts</string> + <string name="user_details_no_access_rights_title">Users Access</string> + <string name="appstore_no_access_rights_title">Access to the AppStore</string> + <string name="appstore_no_access_rights">You are not allowed to access the AppStore</string> + <string name="user_add_title">Add User</string> + <string name="user_add_create">Create new user</string> + <string name="add_user_creator">Creator:</string> + <string name="add_user_type">Type:</string> + <string name="add_user_name">User name:</string> + <string name="add_user_empty_name">Name can not be empty</string> + <string name="add_user_empty_password">Password can not be empty</string> + <string name="add_user_image">Image:</string> + <string name="user_delegation">User Access Rights Delegation</string> + <string name="user_delegation_no_config">The delegation application is not available</string> + <string name="user_delegation_no_access_rights">You are not allowed to delegate rights</string> + <string name="user_details_msg_remove_title">User Removal</string> + <string name="user_details_msg_create_title">User Creation</string> + <string name="user_details_no_remove_rights">You are not allowed to remove this user</string> + <string name="user_details_no_create_rights">You are not allowed to create users</string> + <string name="user_details_msg_remove_user" formatted="false">Do you really want to remove user %usr_name%?</string> + <string name="user_details_rights_btn">Manage rights</string> + <string name="user_details_rights_update_title">User Access Rights Update</string> + <string name="user_details_rights_update_msg" formatted="false">Do you really want to modify the Access Rights of %usr_id%?</string> + <string name="user_details_rights_help_title">Description of User Access Rights</string> + <string name="user_type_admins_list">Administrators</string> + <string name="user_type_family_list">Family</string> + <string name="user_type_friends_list">Friends</string> + <string name="user_type_admins_icon">Admins</string> + <string name="user_type_family_icon">Family</string> + <string name="user_type_friends_icon">Friends</string> + <string name="user_type_admin">Administrator</string> + <string name="user_type_family">Family</string> + <string name="user_type_friend">Friend</string> + <string name="hello_world">Hello world!</string> + <string name="title_activity_otbusers">OTBUsersActivity</string> + + <string-array name="avatar_imgs"> + <item>@drawable/radio_btn_avatar_businessman</item> + <item>@drawable/radio_btn_avatar_male</item> + <item>@drawable/radio_btn_avatar_female</item> + <item>@drawable/radio_btn_avatar_male_headset</item> + <item>@drawable/radio_btn_avatar_female_headset</item> + <item>@drawable/radio_btn_avatar_boy</item> + <item>@drawable/radio_btn_avatar_girl</item> + <item>@drawable/radio_btn_avatar_grandpa</item> + <item>@drawable/radio_btn_avatar_grandma</item> + </string-array> + <string-array name="devices"> + <item>deviceAirConditioner</item> + <item>Air Conditioners</item> + <item></item> + <item>deviceClothesWasher</item> + <item>Clothes Washers</item> + <item></item> + <item>deviceElectricVehicleCharger</item> + <item>Electric Vehicle Chargers</item> + <item></item> + <item>deviceLight</item> + <item>Lights</item> + <item>@drawable/otb_picto_dev_cat_light</item> + <item>deviceMicrogeneration</item> + <item>Microgenerators</item> + <item></item> + <item>deviceOven</item> + <item>Ovens</item> + <item></item> + <item>deviceRefrigerator</item> + <item>Refrigerators</item> + <item></item> + <item>deviceRobotCleaner</item> + <item>Robot Cleaners</item> + <item></item> + <item>deviceSmartElectricMeter</item> + <item>Smart Electric Meters</item> + <item>@drawable/otb_picto_dev_cat_gauge</item> + <item>deviceStorageBattery</item> + <item>Storage Batteries</item> + <item>@drawable/otb_picto_dev_cat_battery</item> + <item>deviceTelevision</item> + <item>Televisions</item> + <item></item> + <item>deviceThermostat</item> + <item>Thermostats</item> + <item></item> + <item>deviceWaterHeater</item> + <item>Water Heaters</item> + <item></item> + <item>deviceDoor</item> + <item>Doors</item> + <item>@drawable/otb_picto_dev_cat_door</item> + <item>deviceSmokeExtractor</item> + <item>Smoke Extractors</item> + <item>@drawable/otb_picto_dev_cat_smokeextractor</item> + <item>deviceSwitchButton</item> + <item>Switch Buttons</item> + <item>@drawable/otb_picto_dev_cat_switchbutton</item> + <item>deviceWarningDevice</item> + <item>Warning Devices</item> + <item>@drawable/otb_picto_dev_cat_warningdevice</item> + <item>deviceGasValve</item> + <item>Gas Valves</item> + <item>@drawable/otb_picto_dev_cat_gasvalve</item> + <item>deviceWaterValve</item> + <item>Water Valves</item> + <item>@drawable/otb_picto_dev_cat_watervalve</item> + <item>deviceFloodDetector</item> + <item>Flood Detectors</item> + <item>@drawable/otb_picto_dev_cat_flooddetector</item> + <item>deviceMotionDetector</item> + <item>Motion Detectors</item> + <item>@drawable/otb_picto_dev_cat_motiondetector</item> + <item>deviceSmokeDetector</item> + <item>Smoke Detectors</item> + <item>@drawable/otb_picto_dev_cat_smokedetector</item> + <item>deviceTemperatureDetector</item> + <item>Temperature Detectors</item> + <item>@drawable/otb_picto_dev_cat_thermometer</item> + <item>deviceContactDetector</item> + <item>Contact Detectors</item> + <item>@drawable/otb_picto_dev_cat_contactsensor</item> + <item>deviceCamera</item> + <item>Cameras</item> + <item>@drawable/otb_picto_dev_cat_camera</item> + <item>deviceWeatherStation</item> + <item>Weather Stations</item> + <item>@drawable/otb_picto_dev_cat_weatherstation</item> + <item>deviceCoffeeMachine</item> + <item>Coffee Makers</item> + <item>@drawable/otb_picto_dev_cat_coffeemachine</item> + <item>default</item> + <item>SDT Device</item> + <item>@drawable/otb_picto_dev_cat_sdt</item> + <item>undefined</item> + <item>Undefined</item> + <item>@drawable/otb_picto_dev_cat_sdt</item> + </string-array> + + <string name="device_details_cnd">Container Definition</string> + <string name="device_details_modules">Modules</string> + <string name="device_details_model">Model</string> + <string name="device_details_manufacturer">Manufacturer</string> + <string name="device_details_description">Description</string> + <string name="device_details_type">Type</string> + <string name="device_details_location">Location</string> + <string name="device_details_protocol">Protocol</string> + <string name="settings_cse_url_label">URL</string> + <string name="settings_cse">CSE</string> + <string name="device_details_serialNumber">Serial number</string> + <string name="device_details_deviceName">Device name</string> + <string name="settings_cse_hostname">Hostname</string> + <string name="settings_cse_port">Port</string> + <string name="settings_cse_cseId">CSE Id</string> + <string name="settings_cse_cseName">CSE Name</string> + +</resources> \ No newline at end of file
diff --git a/org.eclipse.om2m.android.dashboard/res/values-fr/strings.xml b/org.eclipse.om2m.android.dashboard/res/values-fr/strings.xml new file mode 100644 index 0000000..f3c3870 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/values-fr/strings.xml
@@ -0,0 +1,400 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (c) 2013, 2017 Orange. + All rights reserved. This program and the accompanying materials + are made available under the terms of the Eclipse Public License v1.0 + which accompanies this distribution, and is available at + http://www.eclipse.org/legal/epl-v10.html + + Contributors: + BAREAU Cyrille <cyrille.bareau@orange.com>, + BONNARDEL Gregory <gbonnardel.ext@orange.com>, + BOLLE Sebastien <sebastien.bolle@orange.com>. + --> + +<resources> + + <string name="app_name">Home Dashboard</string> + <string name="action_settings">Settings</string> + <string name="empty"></string> + <string name="main_applications">Applications installées</string> + <string name="main_store">Applications disponibles</string> + <string name="main_devices">Equipements</string> + <string name="main_config">Votre HAB</string> + <string name="main_users">Utilisateurs</string> + <string name="applications_title">Applications installées</string> + <string name="store_title">Magasin d\'applications</string> + <string name="config_title">Droits d\'accès</string> + <string name="devices_title">Equipements connectés</string> + <string name="users_title">Utilisateurs connectés</string> + <string name="settings_title">Options</string> + <string name="login_title">Connexion</string> + <string name="main_hab">votre HAB</string> + <string name="main_hab_state">Etat</string> + <string name="main_hab_fw">Firmware</string> + <string name="main_hab_state_ok">connecté</string> + <string name="main_hab_state_warning">partiellement connecté</string> + <string name="main_hab_state_error">non connecté</string> + <string name="main_hab_state_not_detected">non détecté</string> + <string name="main_hab_state_not_connected">non connecté</string> + <string name="main_btn_apps">apps</string> + <string name="main_btn_config">permissions</string> + <string name="main_btn_devs">ajouter un équipement</string> + <string name="main_btn_usrs">ajouter un utilisateur</string> + <string name="main_btn_delegate">déléguer les droits</string> + <string name="main_btn_replace">remplacer un équipement</string> + <string name="main_login_titles">Connexion</string> + <string name="main_login_needed">Vous n\'êtes pas connecté. Voir la configuration..</string> + <string name="main_login_wrong">L\'authentification a échoué. Veuillez réessayer...</string> + <string name="main_subtitle_app">accès rapides vers vos applications installées</string> + <string name="main_subtitle_dev">vos équipements connectés par catégorie</string> + <string name="main_subtitle_store">de nouvelles applications peuvent être téléchargées sur votre HAB</string> + <string name="main_subtitle_config">état de votre HAB et configuration des permissions</string> + <string name="main_dev_cat">équipement(s)</string> + <string name="main_dev_sup_cat" formatted="false">il y a %sup% autre(s) categorie(s)</string> + <string name="main_app_sup" formatted="false">il y a %sup% autre(s) application(s)</string> + <string name="main_config_action">configurer les permissions</string> + <string name="main_store_intro">Pour obtenir de nouvelles fonctionnalités et améliorer votre installation, vous pouvez télécharger de nouvelles applications depuis le magasin</string> + <string name="main_store_go">accéder au magasin</string> + <string name="card_cpu">CPU :</string> + <string name="card_ram">RAM :</string> + <string name="device_type_name">type</string> + <string name="device_name">nom</string> + <string name="device_description">description</string> + <string name="device_btn_detail">détails</string> + <string name="device_show_details">plus de détails</string> + <string name="device_remove_asso" formatted="false">supprimer l\'association</string> + <string name="device_replacement">Remplacement d\'un équipement</string> + <string name="device_replacement_select">Sélectionnez l\'équipement à remplacer dans la liste ci-dessous</string> + <string name="device_replacement_0_all">Liste de tous les équipements</string> + <string name="device_replacement_0_type">Liste des équipements de même type</string> + <string name="device_replacement_apply" formatted="false">Voulez-vous remplacer l\'équipement \"%dev_name%\" par un autre de même type %dev_type% ?</string> + <string name="device_replacement_select_new">Sélectionnez le nouvel équipement dans la liste ci-dessous</string> + <string name="device_replacement_nodevice_error">Aucun équipement similaire</string> + <string name="device_replacement_error">Erreur lors du remplacement : </string> + <string name="device_replacement_ok" formatted="false">Remplacement effectué. Vous pouvez désinstaller l\'équipement \"%dev_name%\"</string> + <string name="device_details_info">Informations :</string> + <string name="device_details_asso">Peut être utilisé par :</string> + <string name="device_details_check">Vérification de l\'équipement :</string> + <string name="device_details_state">Etat :</string> + <string name="device_details_btn_update">Modifier les associations</string> + <string name="device_details_btn_asso">Gérer les permissions</string> + <string name="device_details_btn_store">Souscrire à de nouveaux services\ncompatibles avec cet équipement</string> + <string name="device_details_msg_eject">Voulez vous vraiment déconnecter cet équipement ?\n\nLes applications associées à cet équipement ne fonctionneront peut être plus correctement.</string> + <string name="device_details_msg_eject_title">Déconnecter l\'équipement</string> + <string name="device_details_permissions_update_title">Mise à jour des permissions</string> + <string name="device_details_permissions_update_msg">Pendant la mise à jour des permissions, les applications sélectionnées vont redémarrer.\n\nVoulez vous réaliser la mise à jour ?</string> + <string name="device_details_no_access_rights">Vous n\'avez pas l\'autorisation d\'accéder à cet équipement</string> + <string name="device_details_no_access_rights_title">Device Access</string> + <string name="devices_addnewone_title">Installation d\'un nouvel équipement</string> + <string name="devices_addnewone_dev_type">Quel type d\'équipement souhaitez-vous installer ?</string> + <string name="devices_addnewone_dev_procedure">Procédure d\'installation :</string> + <string name="devices_addnewone_dev_type_zigbee">ZigBee</string> + <string name="devices_addnewone_dev_type_x3d">X3D</string> + <string name="devices_addnewone_dev_type_greennet">GreenNet</string> + <string name="devices_addnewone_dev_type_upnp">UPnP</string> + <string name="devices_addnewone_dev_type_agora">Agora</string> + <string name="devices_addnewone_dev_agora_msg">Il vous suffit de connecter votre équipement Agora à votre réseau.\n\nIl sera automatiquement détecté par votre HAB.</string> + <string name="devices_addnewone_dev_upnp_msg">Il vous suffit de connecter votre équipement UPnP à votre réseau.\n\nIl sera automatiquement détecté par votre HAB.</string> + <string name="devices_addnewone_dev_zigbee_msg" formatted="false">Tout ajout d\'un élément dans le réseau Zigbee nécessite l\'activation du mode \"appairage\" au niveau de son coordinateur.\n\nPour ce faire, suivez la procédure suivante :</string> + <string name="devices_addnewone_dev_step_1">1 - </string> + <string name="devices_addnewone_dev_step_2">2 - </string> + <string name="devices_addnewone_dev_step_3">3 - </string> + <string name="devices_addnewone_dev_step_4">4 - </string> + <string name="devices_addnewone_dev_zigbee_submsg_1">Vérifier que le coordinateur Zigbee est bien inséré dans le port USB de votre HAB</string> + <string name="devices_addnewone_dev_zigbee_submsg_2" formatted="false">Activer le mode \"appairage\" de votre coordinateur</string> + <string name="devices_addnewone_dev_zigbee_submsg_2_1">. Si votre coordinateur possède un bouton d\'appairage, appuyer sur ce dernier.</string> + <string name="devices_addnewone_dev_zigbee_submsg_2_2">. Sinon, appuyer sur le bouton d\'appairage générique de votre HAB.</string> + <string name="devices_addnewone_dev_zigbee_submsg_3" formatted="false">Connecter votre nouvel équipement ZigBee au réseau en activant son mode \"appairage\". (cf. notice)</string> + <string name="devices_addnewone_dev_zigbee_submsg_4">L\'appairage va s\'effectuer entre votre coordinateur et ce nouvel équipement. Une fois terminé, votre équipement sera visible et fonctionnel.</string> + <string name="application_simple_name">APP NAME</string> + <string name="application_simple_version">Version :</string> + <string name="application_simple_state">Etat :</string> + <string name="application_simple_details">Détails</string> + <string name="application_simple_noasso">il n\'y a pas d\'équipement associé avec cette application</string> + <string name="application_simple_update">une mise à jour est disponible</string> + <string name="application_show_details">plus de détails</string> + <string name="application_remove_asso" formatted="false">supprimer l \'association</string> + <string name="application_config_title" formatted="false">Configuration de \"%app_name%\"</string> + <string name="application_details_servicename">Service :</string> + <string name="application_details_serviceversion">Version du service :</string> + <string name="application_details_title">Application</string> + <string name="application_details_info">Informations :</string> + <string name="application_details_compo">Composition :</string> + <string name="application_details_version">Version :</string> + <string name="application_details_state">Etat :</string> + <string name="application_details_installdate">Date d\'installation :</string> + <string name="application_details_resources">Ressources utilisées :</string> + <string name="application_details_resource_unavailable">non disponible</string> + <string name="application_details_ram">RAM :</string> + <string name="application_details_cpu">CPU (temps d\'utilisation) :</string> + <string name="application_details_threads">Nombre de threads :</string> + <string name="application_details_sockets">Nombre de sockets :</string> + <string name="application_details_flash">Taille mémoire :</string> + <string name="application_details_bandwidth">Bande passante :</string> + <string name="application_details_ram_value" formatted="false">%VALUE% bytes</string> + <string name="application_details_cpu_value" formatted="false">%VALUE% %</string> + <string name="application_details_threads_value" formatted="false">%VALUE% thread(s)</string> + <string name="application_details_sockets_value" formatted="false">%VALUE% socket(s)</string> + <string name="application_details_flash_value" formatted="false">%VALUE% bytes</string> + <string name="application_details_bandwidth_value" formatted="false">%VALUE% bytes/s</string> + <string name="application_details_update">Mise à jour :</string> + <string name="application_details_update_btn">Mettre à jour</string> + <string name="application_details_update_msg1">Une mise à jour est disponible.</string> + <string name="application_details_update_msg2">Lors de l\'installation de la mise à jour, l\'application sera momentanément hors service.</string> + <string name="application_details_config">Configuration :</string> + <string name="application_details_config_btn">Configurer</string> + <string name="application_details_permissions">Permissions :</string> + <string name="application_details_bundle_3rd">Tiers</string> + <string name="application_details_bundle_op">Opérateur</string> + <string name="application_details_monitoring_activated">Le monitoring de l\'application est activé</string> + <string name="application_details_monitoring_unactivated">Le monitoring de l\'application est désactivé</string> + <string name="application_details_btn_now">maintenant</string> + <string name="application_details_btn_later">plus tard</string> + <string name="application_details_btn_no">non</string> + <string name="application_details_msg_update">Pendant la mise à jour, cette application ne sera plus fonctionnelle temporairement.\n\nVoulez vous réaliser la mise à jour ?</string> + <string name="application_details_msg_update_title">Mise à jour</string> + <string name="application_details_msg_uninstall">Voulez vous vraiment désinstaller cette application ?</string> + <string name="application_details_msg_uninstall_title">Désinstallation</string> + <string name="application_details_no_config">Il n\'y a pas d\'interface de configuration pour cette application</string> + <string name="application_details_no_access_rights">Vous n\'avez pas l\'autorisation d\'accéder à cette application</string> + <string name="application_details_no_uninstall_rights">Vous n\'avez pas l\'autorisation de supprimer cette application</string> + <string name="application_details_permissions_btn">Gérer les permissions</string> + <string name="application_details_permissions_msg">permissions établies entre</string> + <string name="application_details_permissions_update_title">Mise à jour des permissions</string> + <string name="application_details_permissions_update_msg">Pendant la mise à jour des permissions, l\'application va redémarrer.\n\nVoulez vous réaliser la mise à jour ?</string> + <string name="application_details_startstop">Démarrer</string> + <string name="application_details_description">---</string> + <string name="application_details_msgRunning">L\'application est démarrée</string> + <string name="application_details_msgNotRunning">L\'application est arrêtée</string> + <string name="application_details_btnStop">Arrêter</string> + <string name="application_details_btnStart">Démarrer</string> + <string name="application_details_stopped">(arrêtée)</string> + <string name="application_details_not_accessible">Non accessible</string> + <string name="dialog_btn_ok">OK</string> + <string name="dialog_btn_yes">Oui</string> + <string name="dialog_btn_no">Non</string> + <string name="dialog_btn_cancel">Annuler</string> + <string name="dialog_btn_apply">Appliquer</string> + <string name="dialog_btn_validate">Valider</string> + <string name="dialog_btn_create">Créer</string> + <string name="dialog_btn_modify">Modifier</string> + <string name="config_devices">Equipements associés</string> + <string name="config_application">Application</string> + <string name="config_device_name">Device xxxx</string> + <string name="config_app_name">Application xxxx</string> + <string name="config_serv_name">Service xxxx</string> + <string name="config_btn_update">Modifier</string> + <string name="config_btn_associate">Associer</string> + <string name="config_asso">associé à</string> + <string name="config_update_title_dev" formatted="false">Sélectionnez les applications ayant le droit d\'utiliser \"%dev_name%\"</string> + <string name="config_update_title_app" formatted="false">Sélectionnez les équipements qui peuvent être utilisés par \"%app_name%\"</string> + <string name="config_update_noapp">Aucune des applications installées ne peut utiliser cet équipement</string> + <string name="config_update_nodev">Aucun des équipements connectés ne peut être utilisé par cette application</string> + <string name="menu_settings">options</string> + <string name="menu_help">aide</string> + <string name="menu_login">Connexion</string> + <string name="settings_hab_ip">Adresse IP de la HAB :</string> + <string name="settings_hab_port">Port de la HAB :</string> + <string name="settings_activateWizard">Réactiver tous les wizards</string> + <string name="settings_autoDiscorevy">Découverte automatique de la HAB</string> + <string name="settings_manualDiscorevy">Découverte manuelle de la HAB</string> + <string name="settings_discovered_ip">HAB découverte à l\'ip :</string> + <string name="settings_no_hab">pas de HAB détectée</string> + <string name="settings_version">version du dasboard : %version%</string> + <string name="settings_language_en">english</string> + <string name="settings_language_fr">français</string> + <string name="login_current">%current%</string> + <string name="login_cse_login">Identifiant :</string> + <string name="login_cse_pwd">Mot de passe :</string> + <string name="wizard_application_simple_mainMsg">Cet écran regroupe toutes les applications installées sur votre HAB</string> + <string name="wizard_application_simple_actions">Actions :</string> + <string name="wizard_application_simple_action_uninstall">désinstaller une application</string> + <string name="wizard_application_simple_action_config">configurer une application</string> + <string name="wizard_application_simple_action_details">afficher plus de détails sur une application</string> + <string name="wizard_application_details_action_device">afficher plus d\'informations sur un équipement associé à une application. "click long" pour supprimer l\'association</string> + <string name="wizard_application_details_action_asso">associer cette application à des équipements</string> + <string name="wizard_application_details_mainMsg">Cet écran regroupe les informations détaillées de l\'application</string> + <string name="wizard_application_details_actions">Actions :</string> + <string name="wizard_application_details_action_uninstall">désinstaller l\'application</string> + <string name="wizard_application_details_action_config">configurer l\'application / modifier les permissions</string> + <string name="wizard_application_details_action_openclose">ouvrir / fermer une section</string> + <string name="wizard_device_details_mainMsg">Cet écran regroupe les informations détaillées de l\'équipement</string> + <string name="wizard_device_details_actions">Actions :</string> + <string name="wizard_device_details_action_eject">déconnecter l\'équipement en toute sécurité</string> + <string name="wizard_device_details_action_check">afficher les paramètres et commandes de l\'équipement pour le tester</string> + <string name="wizard_device_details_action_asso">associer l\'équipement à des applications</string> + <string name="wizard_device_details_action_app">afficher plus d\'informations sur une application associée à l\'équipement. "click long" pour supprimer l\'association</string> + <string name="wizard_device_simple_mainMsg">Cet écran regroupe tous les équipements connectés à votre HAB</string> + <string name="wizard_device_simple_actions">Actions :</string> + <string name="wizard_device_simple_action_details">afficher plus de détails sur un équipement</string> + <string name="wizard_device_simple_action_add">installer un nouvel équipement</string> + <string name="wizard_device_simple_action_moreless">ouvrir/fermer la categorie</string> + <string name="wizard_config_mainMsg">Cet écran présente les équipements pouvant être utilisés par chaque application</string> + <string name="wizard_config_actions">Actions :</string> + <string name="wizard_config_action_update">modifier les permissions</string> + <string name="wizard_config_action_device">afficher plus d\'informations sur un équipement</string> + <string name="wizard_config_action_app">afficher plus d\'informations sur une application</string> + <string name="wizard_user_simple_mainMsg">Cet écran regroupe tous les comptes utilisateurs existants</string> + <string name="wizard_user_simple_action_add">créer un nouveau compte utilisateur</string> + <string name="wizard_user_simple_action_details">afficher plus de détails sur un utilisateur</string> + <string name="wizard_user_details_mainMsg">Cet écran présente les droits d\'accès de l\'utilisateur sélectionné</string> + <string name="wizard_user_details_action_delete">supprimer le compte utilisateur</string> + <string name="wizard_user_details_action_update">modifier les droits d\'accès de l\'utilisateur</string> + <string name="usr_details_title">Utilisateur</string> + <string name="usr_details_access_rights">Droits d\'accès :</string> + <string name="usr_details_access_rights_msg">Droits d\'accès sur</string> + <string name="user_details_no_access_rights">Vous n\'avez pas l\'autorisation d\'accéder aux comptes utilisateurs</string> + <string name="user_details_no_access_rights_title">Accès aux comptes utilisateurs</string> + <string name="appstore_no_access_rights_title">Accès au magasin d\'applications</string> + <string name="appstore_no_access_rights">Vous n\'avez pas l\'autorisation d\'accéder au magasin d\'applications</string> + <string name="user_add_title">Ajout d\'un nouvel utilisateur</string> + <string name="user_add_create">Création d\'un nouvel utilisateur</string> + <string name="add_user_creator">Créateur :</string> + <string name="add_user_type">Type :</string> + <string name="add_user_name">Nom :</string> + <string name="add_user_empty_name">Le nom ne peut être vide</string> + <string name="add_user_empty_password">Le mot de passe ne peut être vide</string> + <string name="add_user_image">Image :</string> + <string name="user_delegation">Délégation de droits utilisateurs</string> + <string name="user_delegation_no_config">L\'application de délégation n\'est pas disponible</string> + <string name="user_delegation_no_access_rights">Vous n\'avez pas l\'autorisation d\'accéder à cette application</string> + <string name="user_details_msg_remove_title">Suppression d\'utilisateur</string> + <string name="user_details_msg_create_title">Création d\'utilisateur</string> + <string name="user_details_no_remove_rights">Vous n\'avez pas l\'autorisation de supprimer cet utilisateur</string> + <string name="user_details_no_create_rights">Vous n\'avez pas l\'autorisation de créer des utilisateurs</string> + <string name="user_details_msg_remove_user" formatted="false">Voulez-vous vraiment supprimer l\'utilisateur %usr_name% ?</string> + <string name="user_details_rights_btn">Gestion des droits d\'accès</string> + <string name="user_details_rights_update_title">Modification des droits d\'accès</string> + <string name="user_details_rights_update_msg" formatted="false">Voulez-vous vraiment modifier les droits d\'accès de %usr_id%?</string> + <string name="user_details_rights_help_title">Description des droits d\'accès</string> + <string name="user_type_admins_list">Administrateurs</string> + <string name="user_type_family_list">Famille</string> + <string name="user_type_friends_list">Amis</string> + <string name="user_type_admin">Administrateur</string> + <string name="user_type_family">Famille</string> + <string name="user_type_friend">Ami</string> + <string name="user_type_admins_icon">Admins</string> + <string name="user_type_family_icon">Famille</string> + <string name="user_type_friends_icon">Amis</string> + <string name="hello_world">Hello world!</string> + <string name="title_activity_otbusers">OTBUsersActivity</string> + + <string-array name="avatar_imgs"> + <item>@drawable/radio_btn_avatar_businessman</item> + <item>@drawable/radio_btn_avatar_male</item> + <item>@drawable/radio_btn_avatar_female</item> + <item>@drawable/radio_btn_avatar_male_headset</item> + <item>@drawable/radio_btn_avatar_female_headset</item> + <item>@drawable/radio_btn_avatar_boy</item> + <item>@drawable/radio_btn_avatar_girl</item> + <item>@drawable/radio_btn_avatar_grandpa</item> + <item>@drawable/radio_btn_avatar_grandma</item> + </string-array> + <string-array name="devices"> + <item>deviceAirConditioner</item> + <item>Climatiseurs</item> + <item></item> + <item>deviceClothesWasher</item> + <item>Lave-linge</item> + <item></item> + <item>deviceElectricVehicleCharger</item> + <item>Chargeurs électriques</item> + <item></item> + <item>deviceLight</item> + <item>Ampoules</item> + <item>@drawable/otb_picto_dev_cat_light</item> + <item>deviceMicrogeneration</item> + <item>Micro-générateurs</item> + <item></item> + <item>deviceOven</item> + <item>Fours</item> + <item></item> + <item>deviceRefrigerator</item> + <item>Réfrigérateurs</item> + <item></item> + <item>deviceRobotCleaner</item> + <item>Robots aspirateurs</item> + <item></item> + <item>deviceSmartElectricMeter</item> + <item>Smart Electric Meters</item> + <item>@drawable/otb_picto_dev_cat_gauge</item> + <item>deviceStorageBattery</item> + <item>Batteries</item> + <item>@drawable/otb_picto_dev_cat_battery</item> + <item>deviceTelevision</item> + <item>Télévisionss</item> + <item></item> + <item>deviceThermostat</item> + <item>Thermostats</item> + <item></item> + <item>deviceWaterHeater</item> + <item>Bouilloires</item> + <item></item> + <item>deviceDoor</item> + <item>Portes</item> + <item>@drawable/otb_picto_dev_cat_door</item> + <item>deviceSmokeExtractor</item> + <item>Extracteurs de fumée</item> + <item>@drawable/otb_picto_dev_cat_smokeextractor</item> + <item>deviceSwitchButton</item> + <item>Boutons poussoirs</item> + <item>@drawable/otb_picto_dev_cat_switchbutton</item> + <item>deviceWarningDevice</item> + <item>Alarmes</item> + <item>@drawable/otb_picto_dev_cat_warningdevice</item> + <item>deviceGasValve</item> + <item>Valves de gaz</item> + <item>@drawable/otb_picto_dev_cat_gasvalve</item> + <item>deviceWaterValve</item> + <item>Valves d\'eau</item> + <item>@drawable/otb_picto_dev_cat_watervalve</item> + <item>deviceFloodDetector</item> + <item>Détecteurs d\'inondation</item> + <item>@drawable/otb_picto_dev_cat_flooddetector</item> + <item>deviceMotionDetector</item> + <item>Détecteurs de mouvement</item> + <item>@drawable/otb_picto_dev_cat_motiondetector</item> + <item>deviceSmokeDetector</item> + <item>Détecteurs de fumée</item> + <item>@drawable/otb_picto_dev_cat_smokedetector</item> + <item>deviceTemperatureDetector</item> + <item>Détecteurs de température</item> + <item>@drawable/otb_picto_dev_cat_thermometer</item> + <item>deviceContactDetector</item> + <item>Détecteurs de contact</item> + <item>@drawable/otb_picto_dev_cat_contactsensor</item> + <item>deviceCamera</item> + <item>Caméras</item> + <item>@drawable/otb_picto_dev_cat_camera</item> + <item>deviceWeatherStation</item> + <item>Stations météo</item> + <item>@drawable/otb_picto_dev_cat_weatherstation</item> + <item>deviceCoffeeMachine</item> + <item>Cafetières</item> + <item>@drawable/otb_picto_dev_cat_coffeemachine</item> + <item>default</item> + <item>Autres SDT</item> + <item>@drawable/otb_picto_dev_cat_sdt</item> + <item>undefined</item> + <item>Autres</item> + <item>@drawable/otb_picto_dev_cat_sdt</item> + </string-array> + + <string name="device_details_cnd">Container Definition</string> + <string name="device_details_modules">Modules</string> + <string name="device_details_model">Modèle</string> + <string name="device_details_manufacturer">Constructeur</string> + <string name="device_details_description">Description</string> + <string name="device_details_location">Emplacement</string> + <string name="device_details_type">Type</string> + <string name="settings_cse_url_label">URL</string> + <string name="settings_cse">CSE</string> + <string name="device_details_serialNumber">Numéro de série</string> + <string name="device_details_deviceName">Nom de l\'équipement</string> + <string name="settings_cse_hostname">Serveur</string> + <string name="settings_cse_port">Port</string> + <string name="settings_cse_cseId">CSE Id</string> + <string name="settings_cse_cseName">CSE Name</string> + +</resources> \ No newline at end of file
diff --git a/org.eclipse.om2m.android.dashboard/res/values-sw600dp/dimens.xml b/org.eclipse.om2m.android.dashboard/res/values-sw600dp/dimens.xml new file mode 100644 index 0000000..34e7124 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/values-sw600dp/dimens.xml
@@ -0,0 +1,27 @@ +<!-- + Copyright (c) 2013, 2017 Orange. + All rights reserved. This program and the accompanying materials + are made available under the terms of the Eclipse Public License v1.0 + which accompanies this distribution, and is available at + http://www.eclipse.org/legal/epl-v10.html + + Contributors: + BAREAU Cyrille <cyrille.bareau@orange.com>, + BONNARDEL Gregory <gbonnardel.ext@orange.com>, + BOLLE Sebastien <sebastien.bolle@orange.com>. + --> +<resources> + + <!-- + Customize dimensions originally defined in res/values/dimens.xml (such as + screen margins) for sw600dp devices (e.g. 7" tablets) here. + --> + <dimen name="title_size">28sp</dimen> + <dimen name="indicator_height">50dp</dimen> + <dimen name="indicator_width">100dp</dimen> + <dimen name="indicator_text_size">20sp</dimen> + <dimen name="list_margin_top">100dp</dimen> + <dimen name="indicator_text_size_big">25sp</dimen> + + +</resources> \ No newline at end of file
diff --git a/org.eclipse.om2m.android.dashboard/res/values-sw720dp-land/dimens.xml b/org.eclipse.om2m.android.dashboard/res/values-sw720dp-land/dimens.xml new file mode 100644 index 0000000..096a93c --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/values-sw720dp-land/dimens.xml
@@ -0,0 +1,21 @@ +<!-- + Copyright (c) 2013, 2017 Orange. + All rights reserved. This program and the accompanying materials + are made available under the terms of the Eclipse Public License v1.0 + which accompanies this distribution, and is available at + http://www.eclipse.org/legal/epl-v10.html + + Contributors: + BAREAU Cyrille <cyrille.bareau@orange.com>, + BONNARDEL Gregory <gbonnardel.ext@orange.com>, + BOLLE Sebastien <sebastien.bolle@orange.com>. + --> +<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> \ No newline at end of file
diff --git a/org.eclipse.om2m.android.dashboard/res/values-v11/styles.xml b/org.eclipse.om2m.android.dashboard/res/values-v11/styles.xml new file mode 100644 index 0000000..17b4a46 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/values-v11/styles.xml Binary files differ
diff --git a/org.eclipse.om2m.android.dashboard/res/values-v14/styles.xml b/org.eclipse.om2m.android.dashboard/res/values-v14/styles.xml new file mode 100644 index 0000000..d0e6e21 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/values-v14/styles.xml
@@ -0,0 +1,24 @@ +<!-- + Copyright (c) 2013, 2017 Orange. + All rights reserved. This program and the accompanying materials + are made available under the terms of the Eclipse Public License v1.0 + which accompanies this distribution, and is available at + http://www.eclipse.org/legal/epl-v10.html + + Contributors: + BAREAU Cyrille <cyrille.bareau@orange.com>, + BONNARDEL Gregory <gbonnardel.ext@orange.com>, + BOLLE Sebastien <sebastien.bolle@orange.com>. + --> +<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> \ No newline at end of file
diff --git a/org.eclipse.om2m.android.dashboard/res/values-w820dp/dimens.xml b/org.eclipse.om2m.android.dashboard/res/values-w820dp/dimens.xml new file mode 100644 index 0000000..e1abdf9 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/values-w820dp/dimens.xml
@@ -0,0 +1,22 @@ +<!-- + Copyright (c) 2013, 2017 Orange. + All rights reserved. This program and the accompanying materials + are made available under the terms of the Eclipse Public License v1.0 + which accompanies this distribution, and is available at + http://www.eclipse.org/legal/epl-v10.html + + Contributors: + BAREAU Cyrille <cyrille.bareau@orange.com>, + BONNARDEL Gregory <gbonnardel.ext@orange.com>, + BOLLE Sebastien <sebastien.bolle@orange.com>. + --> +<resources> + + <!-- + Example customization of dimensions originally defined in res/values/dimens.xml + (such as screen margins) for screens with more than 820dp of available width. This + would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). + --> + <dimen name="activity_horizontal_margin">64dp</dimen> + +</resources>
diff --git a/org.eclipse.om2m.android.dashboard/res/values/attrs.xml b/org.eclipse.om2m.android.dashboard/res/values/attrs.xml new file mode 100644 index 0000000..a8e88ab --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/values/attrs.xml
@@ -0,0 +1,60 @@ +<!-- + Copyright (c) 2013, 2017 Orange. + All rights reserved. This program and the accompanying materials + are made available under the terms of the Eclipse Public License v1.0 + which accompanies this distribution, and is available at + http://www.eclipse.org/legal/epl-v10.html + + Contributors: + BAREAU Cyrille <cyrille.bareau@orange.com>, + BONNARDEL Gregory <gbonnardel.ext@orange.com>, + BOLLE Sebastien <sebastien.bolle@orange.com>. + --> +<resources> + + <!-- + Declare custom theme attributes that allow changing which styles are + used for button bars depending on the API level. + ?android:attr/buttonBarStyle is new as of API 11 so this is + necessary to support previous API levels. + --> + <declare-styleable name="ButtonBarContainerTheme"> + <attr name="buttonBarStyle" format="reference" /> + <attr name="buttonBarButtonStyle" format="reference" /> + </declare-styleable> + <declare-styleable name="ActionComponent"> + <attr name="actionLabel" format="string" /> + </declare-styleable> + + <!-- + <declare-styleable name="DeviceTypeContainerView"> + <attr name="name" format="string" /> + </declare-styleable>--> + + <declare-styleable name="CustomLine"> + <attr name="orientation" format="enum" > + <enum name="horizontal" value="0" /> + <enum name="vertical" value="1" /> + </attr> + <attr name="dashed" format="boolean" /> + <attr name="color" format="reference" /> + <attr name="dashWidth" format="integer" /> + <attr name="dashGap" format="integer" /> + <attr name="thickness" format="integer" /> + <attr name="shadow" format="boolean" /> + <attr name="toto" format="boolean" /> + </declare-styleable> + + <declare-styleable name="WizardCard"> + <attr name="type" format="enum" > + <enum name="applicationSimple" value="0" /> + <enum name="applicationDetails" value="1" /> + <enum name="deviceSimple" value="2" /> + <enum name="deviceDetails" value="3" /> + <enum name="config" value="4" /> + <enum name="userDetails" value="5" /> + <enum name="userSimple" value="6" /> + </attr> + </declare-styleable> + +</resources> \ No newline at end of file
diff --git a/org.eclipse.om2m.android.dashboard/res/values/colors.xml b/org.eclipse.om2m.android.dashboard/res/values/colors.xml new file mode 100644 index 0000000..dd8964c --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/values/colors.xml
@@ -0,0 +1,36 @@ +<!-- + Copyright (c) 2013, 2017 Orange. + All rights reserved. This program and the accompanying materials + are made available under the terms of the Eclipse Public License v1.0 + which accompanies this distribution, and is available at + http://www.eclipse.org/legal/epl-v10.html + + Contributors: + BAREAU Cyrille <cyrille.bareau@orange.com>, + BONNARDEL Gregory <gbonnardel.ext@orange.com>, + BOLLE Sebastien <sebastien.bolle@orange.com>. + --> +<resources> + + <color name="background">#ffc6c6c6</color> + <color name="list_background">#ffe0e0e0</color> + + <color name="gray">#ff878787</color> + <color name="soft_gray">#ffc6c6c6</color> + <color name="very_soft_gray">#fff2f2f2</color> + <color name="white">#ffffffff</color> + <color name="black">#ff000000</color> + <color name="transparent">#00000000</color> + + <color name="otb_red">#ffbe1f2e</color> + <color name="otb_green">#ff009444</color> + <color name="otb_orange">#fff78b1e</color> + <color name="otb_blue">#ff25b2ce</color> + <color name="otb_pale_green">#ffA6D785</color> + + + <color name="otb_red_transparent">#44be1f2e</color> + + <color name="otb_dark_gray">#ff404040</color> + <color name="solf_background">#ffe2e2e2</color> +</resources> \ No newline at end of file
diff --git a/org.eclipse.om2m.android.dashboard/res/values/colors_custom_theme.xml b/org.eclipse.om2m.android.dashboard/res/values/colors_custom_theme.xml new file mode 100644 index 0000000..40e2239 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/values/colors_custom_theme.xml
@@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- File created by the Android Action Bar Style Generator + + Copyright (C) 2011, 2017 The Android Open Source Project + Copyright (C) 2012 readyState Software Ltd + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<resources> + <color name="pressed_custom_theme">#CC33B5E5</color> +</resources>
diff --git a/org.eclipse.om2m.android.dashboard/res/values/dimens.xml b/org.eclipse.om2m.android.dashboard/res/values/dimens.xml new file mode 100644 index 0000000..c25bea8 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/values/dimens.xml
@@ -0,0 +1,26 @@ +<!-- + Copyright (c) 2013, 2017 Orange. + All rights reserved. This program and the accompanying materials + are made available under the terms of the Eclipse Public License v1.0 + which accompanies this distribution, and is available at + http://www.eclipse.org/legal/epl-v10.html + + Contributors: + BAREAU Cyrille <cyrille.bareau@orange.com>, + BONNARDEL Gregory <gbonnardel.ext@orange.com>, + BOLLE Sebastien <sebastien.bolle@orange.com>. + --> +<resources> + + <!-- Default screen margins, per the Android Design guidelines. --> + <dimen name="activity_horizontal_margin">16dp</dimen> + <dimen name="activity_vertical_margin">16dp</dimen> + <dimen name="title_size">16sp</dimen> + <dimen name="indicator_height">25dp</dimen> + <dimen name="indicator_width">50dp</dimen> + <dimen name="indicator_text_size">15sp</dimen> + <dimen name="list_margin_top">50dp</dimen> + <dimen name="indicator_text_size_big">17sp</dimen> + + <dimen name="menu_title_size">18sp</dimen> +</resources> \ No newline at end of file
diff --git a/org.eclipse.om2m.android.dashboard/res/values/strings.xml b/org.eclipse.om2m.android.dashboard/res/values/strings.xml new file mode 100644 index 0000000..c3d939b --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/values/strings.xml
@@ -0,0 +1,404 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (c) 2013, 2017 Orange. + All rights reserved. This program and the accompanying materials + are made available under the terms of the Eclipse Public License v1.0 + which accompanies this distribution, and is available at + http://www.eclipse.org/legal/epl-v10.html + + Contributors: + BAREAU Cyrille <cyrille.bareau@orange.com>, + BONNARDEL Gregory <gbonnardel.ext@orange.com>, + BOLLE Sebastien <sebastien.bolle@orange.com>. + --> + +<resources> + + <string name="app_name">Home Dashboard</string> + <string name="action_settings">Settings</string> + <string name="empty"></string> + <string name="main_applications">Installed applications</string> + <string name="main_store">Available applications</string> + <string name="main_devices">Connected devices</string> + <string name="main_config">Dashboard</string> + <string name="main_users">Users</string> + <string name="applications_title">Installed applications</string> + <string name="store_title">Applications Store</string> + <string name="config_title">Permissions</string> + <string name="devices_title">Connected devices</string> + <string name="users_title">Connected users</string> + <string name="settings_title">Settings</string> + <string name="login_title">Connection</string> + <string name="main_cse">Dashboard is </string> + <string name="main_cse_state">Status</string> + <string name="main_cse_fw">Firmware</string> + <string name="main_cse_state_ok">is connected</string> + <string name="main_cse_state_warning">is partially operational</string> + <string name="main_cse_state_error">is not connected</string> + <string name="main_cse_state_not_detected">is not detected</string> + <string name="main_cse_state_not_connected">is not connected</string> + <string name="main_btn_apps">apps</string> + <string name="main_btn_config">permissions</string> + <string name="main_btn_devs">add device</string> + <string name="main_btn_usrs">add user</string> + <string name="main_btn_delegate">delegate rights</string> + <string name="main_btn_replace">replace device</string> + <string name="main_login_titles">Login</string> + <string name="main_login_needed">You are not logged in. See Settings.</string> + <string name="main_login_wrong">Authentication failed. Retry...</string> + <string name="main_subtitle_app">quick access to your installed applications</string> + <string name="main_subtitle_dev">your connected devices by category</string> + <string name="main_subtitle_store">new applications can be downloaded on your HAB</string> + <string name="main_subtitle_config">the status of your HAB and permissions configuration</string> + <string name="main_dev_cat">device(s)</string> + <string name="main_dev_sup_cat" formatted="false">there is %sup% other category(ies)</string> + <string name="main_app_sup" formatted="false">there is %sup% other application(s)</string> + <string name="main_config_action">configure permissions</string> + <string name="main_store_intro">For new features and optimize your installation, you can download new applications from the Applications Store</string> + <string name="main_store_go">access the store</string> + <string name="card_cpu">CPU:</string> + <string name="card_ram">RAM:</string> + <string name="device_type_name">type</string> + <string name="device_name">name</string> + <string name="device_description">description</string> + <string name="device_btn_detail">details</string> + <string name="device_show_details">more details</string> + <string name="device_remove_asso" formatted="false">remove association</string> + <string name="device_replacement">Device Replacement</string> + <string name="device_replacement_select">Select the device to be replaced in the following list</string> + <string name="device_replacement_0_all">List of all devices</string> + <string name="device_replacement_0_type">List of similar devices</string> + <string name="device_replacement_apply" formatted="false">Do replace the device \"%dev_name%\" by another device of same type %dev_type%?</string> + <string name="device_replacement_select_new">Select the new device in the following list</string> + <string name="device_replacement_nodevice_error">No similar device</string> + <string name="device_replacement_error">Error during device replacement: </string> + <string name="device_replacement_ok" formatted="false">Device replacement performed. You can uninstall device \"%dev_name%\"</string> + <string name="device_details_info">Informations:</string> + <string name="device_details_asso">Could be used by:</string> + <string name="device_details_check">Check the device:</string> + <string name="device_details_state">Status:</string> + <string name="device_details_btn_update">Update associations</string> + <string name="device_details_btn_asso">Manage permissions</string> + <string name="device_details_btn_store">Subscribe to new services\nfor your devices</string> + <string name="device_details_msg_eject">Do you really want to disconnect this device?\n\nAssociated applications with this device could be affected.</string> + <string name="device_details_msg_eject_title">Disconnect this device</string> + <string name="device_details_permissions_update_title">Permissions update</string> + <string name="device_details_permissions_update_msg">During the permissions update, the selected applications will restart.\n\nDo you want to perform the update?</string> + <string name="device_details_no_access_rights">You are not allowed to access this device</string> + <string name="device_details_no_access_rights_title">Device Access</string> + <string name="devices_addnewone_title">Install a new device</string> + <string name="devices_addnewone_dev_type">Which type of device would you like to install?</string> + <string name="devices_addnewone_dev_procedure">Installation procedure:</string> + <string name="devices_addnewone_dev_type_zigbee">ZigBee</string> + <string name="devices_addnewone_dev_type_x3d">X3D</string> + <string name="devices_addnewone_dev_type_greennet">GreenNet</string> + <string name="devices_addnewone_dev_type_upnp">UPnP</string> + <string name="devices_addnewone_dev_type_agora">Agora</string> + <string name="devices_addnewone_dev_agora_msg">You just have to connect your Agora device on the network.\n\nIt will be automatically discovered by your HAB.</string> + <string name="devices_addnewone_dev_upnp_msg">You just have to connect your Upnp device on the network.\n\nIt will be automatically discovered by your HAB.</string> + <string name="devices_addnewone_dev_zigbee_msg" formatted="false">While adding an element in the Zigbee network requires the activation of \"pairing mode\" at its coordinator\n\nTo do this, follow these steps:</string> + <string name="devices_addnewone_dev_step_1">1 - </string> + <string name="devices_addnewone_dev_step_2">2 - </string> + <string name="devices_addnewone_dev_step_3">3 - </string> + <string name="devices_addnewone_dev_step_4">4 - </string> + <string name="devices_addnewone_dev_zigbee_submsg_1">Check that the Zigbee coordinator is plugged into the USB port on your HAB</string> + <string name="devices_addnewone_dev_zigbee_submsg_2" formatted="false">Activate the \"pairing mode\" of your coordinator</string> + <string name="devices_addnewone_dev_zigbee_submsg_2_1">. If your coordinator has a pairing button, press it.</string> + <string name="devices_addnewone_dev_zigbee_submsg_2_2">. Otherwise, press the generic pairing button on your HAB.</string> + <string name="devices_addnewone_dev_zigbee_submsg_3" formatted="false">Connect your new ZigBee device on the network and activate his \"pairing mode\". (see instructions)</string> + <string name="devices_addnewone_dev_zigbee_submsg_4">The pairing will occur between your coordinator and the new device. Once completed, your device will be visible and functional.</string> + <string name="application_simple_name">APP NAME</string> + <string name="application_simple_version">Version:</string> + <string name="application_simple_state">Status:</string> + <string name="application_simple_details">Details</string> + <string name="application_simple_noasso">there is no associated device with this application</string> + <string name="application_simple_update">an update is available</string> + <string name="application_show_details">more details</string> + <string name="application_remove_asso" formatted="false">remove association</string> + <string name="application_config_title" formatted="false">\"%app_name%\" configuration</string> + <string name="application_details_servicename">Service:</string> + <string name="application_details_serviceversion">Service version:</string> + <string name="application_details_title">Application</string> + <string name="application_details_info">Information:</string> + <string name="application_details_compo">Composition:</string> + <string name="application_details_version">Version:</string> + <string name="application_details_state">Status:</string> + <string name="application_details_installdate">Installation date:</string> + <string name="application_details_resources">Used resources:</string> + <string name="application_details_resource_unavailable">unavailable</string> + <string name="application_details_ram">RAM:</string> + <string name="application_details_cpu">CPU (time):</string> + <string name="application_details_threads">Threads count:</string> + <string name="application_details_sockets">Sockets count:</string> + <string name="application_details_flash">Flash size:</string> + <string name="application_details_bandwidth">Bandwidth:</string> + <string name="application_details_ram_value" formatted="false">%VALUE% bytes</string> + <string name="application_details_cpu_value" formatted="false">%VALUE% %</string> + <string name="application_details_threads_value" formatted="false">%VALUE% thread(s)</string> + <string name="application_details_sockets_value" formatted="false">%VALUE% socket(s)</string> + <string name="application_details_flash_value" formatted="false">%VALUE% bytes</string> + <string name="application_details_bandwidth_value" formatted="false">%VALUE% bytes/s</string> + <string name="application_details_update">Update:</string> + <string name="application_details_update_btn">Update</string> + <string name="application_details_update_msg1">An update is available.</string> + <string name="application_details_update_msg2">During the update, the application will be momentarily out.</string> + <string name="application_details_config">Configuration:</string> + <string name="application_details_config_btn">Configure</string> + <string name="application_details_permissions">Permissions:</string> + <string name="application_details_bundle_3rd">Partners</string> + <string name="application_details_bundle_op">Operator</string> + <string name="application_details_monitoring_activated">The application\'s resources monitoring is activated</string> + <string name="application_details_monitoring_unactivated">The application\'s resources monitoring is disabled</string> + <string name="application_details_btn_now">now</string> + <string name="application_details_btn_later">later</string> + <string name="application_details_btn_no">no</string> + <string name="application_details_msg_update">During the update, the application will no longer be functional.\n\nDo you want to perform the update?</string> + <string name="application_details_msg_update_title">Update</string> + <string name="application_details_msg_uninstall">Do you really want to uninstall this application?</string> + <string name="application_details_msg_uninstall_title">Uninstallation</string> + <string name="application_details_no_config">This application does not have configuration interface</string> + <string name="application_details_no_access_rights">You are not allowed to access this application</string> + <string name="application_details_no_uninstall_rights">You are not allowed to uninstall this application</string> + <string name="application_details_permissions_btn">Manage permissions</string> + <string name="application_details_permissions_msg">permissions established between</string> + <string name="application_details_permissions_update_title">Permissions Update</string> + <string name="application_details_permissions_update_msg">During the permissions update, the application will restart.\n\nDo you want to perform the update?</string> + <string name="application_details_startstop">Start</string> + <string name="application_details_description">---</string> + <string name="application_details_msgRunning">The application is currently running</string> + <string name="application_details_msgNotRunning">The application is currently stopped</string> + <string name="application_details_btnStop">Stop</string> + <string name="application_details_btnStart">Start</string> + <string name="application_details_stopped">(stopped)</string> + <string name="application_details_not_accessible">Not accessible</string> + <string name="dialog_btn_ok">OK</string> + <string name="dialog_btn_yes">Yes</string> + <string name="dialog_btn_no">No</string> + <string name="dialog_btn_cancel">Cancel</string> + <string name="dialog_btn_apply">Apply</string> + <string name="dialog_btn_validate">Validate</string> + <string name="dialog_btn_create">Create</string> + <string name="dialog_btn_modify">Modify</string> + <string name="config_devices">Associated Devices</string> + <string name="config_application">Application</string> + <string name="config_device_name">Device xxxx</string> + <string name="config_app_name">Application xxxx</string> + <string name="config_serv_name">Service xxxx</string> + <string name="config_btn_update">Update</string> + <string name="config_btn_associate">Associate</string> + <string name="config_asso">associate with</string> + <string name="config_update_title_dev" formatted="false">Select the applications that may use \"%dev_name%\"</string> + <string name="config_update_title_app" formatted="false">Select the devices that may be used by \"%app_name%\"</string> + <string name="config_update_noapp">There is no installed application that can use this device</string> + <string name="config_update_nodev">There is no connected device nor installed applications that can be used by this application</string> + <string name="menu_settings">options</string> + <string name="menu_help">help</string> + <string name="menu_login">Connection</string> + <string name="settings_hab_ip">HAB IP address:</string> + <string name="settings_hab_port">HAB port:</string> + <string name="settings_activateWizard">Active all wizards</string> + <string name="settings_autoDiscorevy">Auto HAB discovery</string> + <string name="settings_manualDiscorevy">Manual HAB discovery</string> + <string name="settings_discovered_ip">HAB found at the ip:</string> + <string name="settings_no_hab">HAB not found</string> + <string name="settings_version">dasboard version: %version%</string> + <string name="settings_language_en">english</string> + <string name="settings_language_fr">français</string> + <string name="login_current">%current%</string> + <string name="login_cse_login">Login</string> + <string name="login_cse_pwd">Password</string> + <string name="wizard_application_simple_mainMsg">This screen shows all installed applications on your HAB</string> + <string name="wizard_application_simple_actions">Actions:</string> + <string name="wizard_application_simple_action_uninstall">uninstall an application</string> + <string name="wizard_application_simple_action_config">configure an application</string> + <string name="wizard_application_simple_action_details">display more details about an application</string> + <string name="wizard_application_details_action_device">display more information about a device associated with an application. "long click" to remove association</string> + <string name="wizard_application_details_action_asso">associate the application with devices</string> + <string name="wizard_application_details_mainMsg">This screen shows the details of the application</string> + <string name="wizard_application_details_actions">Actions:</string> + <string name="wizard_application_details_action_uninstall">uninstall the application</string> + <string name="wizard_application_details_action_config">configure the application / update permissions</string> + <string name="wizard_application_details_action_openclose">open / close a section</string> + <string name="wizard_device_details_mainMsg">This screen shows the details of the device</string> + <string name="wizard_device_details_actions">Actions:</string> + <string name="wizard_device_details_action_eject">disconnect safely the device</string> + <string name="wizard_device_details_action_check">display settings and controls to test the device</string> + <string name="wizard_device_details_action_asso">associate the device to applications</string> + <string name="wizard_device_details_action_app">display more information about associated applications with the device. "long click" to remove association</string> + <string name="wizard_device_simple_mainMsg">This screen shows all your connected devices</string> + <string name="wizard_device_simple_actions">Actions:</string> + <string name="wizard_device_simple_action_details">display more details about a device</string> + <string name="wizard_device_simple_action_add">install a new device</string> + <string name="wizard_device_simple_action_moreless">open/close the category</string> + <string name="wizard_config_mainMsg">This screen shows the devices than can be used by each application</string> + <string name="wizard_config_actions">Actions:</string> + <string name="wizard_config_action_update">update the permissions</string> + <string name="wizard_config_action_device">display more details about a device</string> + <string name="wizard_config_action_app">display more details about an application</string> + <string name="wizard_user_simple_mainMsg">This screen shows all the existing user accounts</string> + <string name="wizard_user_simple_action_add">create a new user account</string> + <string name="wizard_user_simple_action_details">display more details about a user</string> + <string name="wizard_user_details_mainMsg">This screen shows the detailed access rights of a user account</string> + <string name="wizard_user_details_action_delete">remove the user account</string> + <string name="wizard_user_details_action_update">modify the access rights of the user</string> + <string name="usr_details_title">User</string> + <string name="usr_details_access_rights">Access Rights:</string> + <string name="usr_details_access_rights_msg">Access Rights on</string> + <string name="user_details_no_access_rights">You are not allowed to access users accounts</string> + <string name="user_details_no_access_rights_title">Users Access</string> + <string name="appstore_no_access_rights_title">Access to the AppStore</string> + <string name="appstore_no_access_rights">You are not allowed to access the AppStore</string> + <string name="user_add_title">Add User</string> + <string name="user_add_create">Create new user</string> + <string name="add_user_creator">Creator:</string> + <string name="add_user_type">Type:</string> + <string name="add_user_name">User name:</string> + <string name="add_user_empty_name">Name can not be empty</string> + <string name="add_user_empty_password">Password can not be empty</string> + <string name="add_user_image">Image:</string> + <string name="user_delegation">User Access Rights Delegation</string> + <string name="user_delegation_no_config">The delegation application is not available</string> + <string name="user_delegation_no_access_rights">You are not allowed to delegate rights</string> + <string name="user_details_msg_remove_title">User Removal</string> + <string name="user_details_msg_create_title">User Creation</string> + <string name="user_details_no_remove_rights">You are not allowed to remove this user</string> + <string name="user_details_no_create_rights">You are not allowed to create users</string> + <string name="user_details_msg_remove_user" formatted="false">Do you really want to remove user %usr_name%?</string> + <string name="user_details_rights_btn">Manage rights</string> + <string name="user_details_rights_update_title">User Access Rights Update</string> + <string name="user_details_rights_update_msg" formatted="false">Do you really want to modify the Access Rights of %usr_id%?</string> + <string name="user_details_rights_help_title">Description of User Access Rights</string> + <string name="user_type_admins_list">Administrators</string> + <string name="user_type_family_list">Family</string> + <string name="user_type_friends_list">Friends</string> + <string name="user_type_admins_icon">Admins</string> + <string name="user_type_family_icon">Family</string> + <string name="user_type_friends_icon">Friends</string> + <string name="user_type_admin">Administrator</string> + <string name="user_type_family">Family</string> + <string name="user_type_friend">Friend</string> + <string name="hello_world">Hello world!</string> + <string name="title_activity_otbusers">OTBUsersActivity</string> + + <string-array name="avatar_imgs"> + <item>@drawable/radio_btn_avatar_businessman</item> + <item>@drawable/radio_btn_avatar_male</item> + <item>@drawable/radio_btn_avatar_female</item> + <item>@drawable/radio_btn_avatar_male_headset</item> + <item>@drawable/radio_btn_avatar_female_headset</item> + <item>@drawable/radio_btn_avatar_boy</item> + <item>@drawable/radio_btn_avatar_girl</item> + <item>@drawable/radio_btn_avatar_grandpa</item> + <item>@drawable/radio_btn_avatar_grandma</item> + </string-array> + <string-array name="devices"> + <item>deviceAirConditioner</item> + <item>Air Conditioners</item> + <item></item> + <item>deviceClothesWasher</item> + <item>Clothes Washers</item> + <item></item> + <item>deviceElectricVehicleCharger</item> + <item>Electric Vehicle Chargers</item> + <item></item> + <item>deviceLight</item> + <item>Lights</item> + <item>@drawable/otb_picto_dev_cat_light</item> + <item>deviceMicrogeneration</item> + <item>Microgenerators</item> + <item></item> + <item>deviceOven</item> + <item>Ovens</item> + <item></item> + <item>deviceRefrigerator</item> + <item>Refrigerators</item> + <item></item> + <item>deviceRobotCleaner</item> + <item>Robot Cleaners</item> + <item></item> + <item>deviceSmartElectricMeter</item> + <item>Smart Electric Meters</item> + <item>@drawable/otb_picto_dev_cat_gauge</item> + <item>deviceStorageBattery</item> + <item>Storage Batteries</item> + <item>@drawable/otb_picto_dev_cat_battery</item> + <item>deviceTelevision</item> + <item>Televisions</item> + <item></item> + <item>deviceThermostat</item> + <item>Thermostats</item> + <item></item> + <item>deviceWaterHeater</item> + <item>Water Heaters</item> + <item></item> + <item>deviceDoor</item> + <item>Doors</item> + <item>@drawable/otb_picto_dev_cat_door</item> + <item>deviceSmokeExtractor</item> + <item>Smoke Extractors</item> + <item>@drawable/otb_picto_dev_cat_smokeextractor</item> + <item>deviceSwitchButton</item> + <item>Switch Buttons</item> + <item>@drawable/otb_picto_dev_cat_switchbutton</item> + <item>deviceWarningDevice</item> + <item>Warning Devices</item> + <item>@drawable/otb_picto_dev_cat_warningdevice</item> + <item>deviceGasValve</item> + <item>Gas Valves</item> + <item>@drawable/otb_picto_dev_cat_gasvalve</item> + <item>deviceWaterValve</item> + <item>Water Valves</item> + <item>@drawable/otb_picto_dev_cat_watervalve</item> + <item>deviceFloodDetector</item> + <item>Flood Detectors</item> + <item>@drawable/otb_picto_dev_cat_flooddetector</item> + <item>deviceMotionDetector</item> + <item>Motion Detectors</item> + <item>@drawable/otb_picto_dev_cat_motiondetector</item> + <item>deviceSmokeDetector</item> + <item>Smoke Detectors</item> + <item>@drawable/otb_picto_dev_cat_smokedetector</item> + <item>deviceTemperatureDetector</item> + <item>Temperature Detectors</item> + <item>@drawable/otb_picto_dev_cat_thermometer</item> + <item>deviceContactDetector</item> + <item>Contact Detectors</item> + <item>@drawable/otb_picto_dev_cat_contactsensor</item> + <item>deviceCamera</item> + <item>Cameras</item> + <item>@drawable/otb_picto_dev_cat_camera</item> + <item>deviceWeatherStation</item> + <item>Weather Stations</item> + <item>@drawable/otb_picto_dev_cat_weatherstation</item> + <item>deviceCoffeeMachine</item> + <item>Coffee Makers</item> + <item>@drawable/otb_picto_dev_cat_coffeemachine</item> + <item>default</item> + <item>SDT Device</item> + <item>@drawable/otb_picto_dev_cat_sdt</item> + <item>undefined</item> + <item>Undefined</item> + <item>@drawable/otb_picto_dev_cat_sdt</item> + </string-array> + + <string name="device_details_cnd">Container Definition</string> + <string name="device_details_modules">Modules</string> + <string name="device_details_model">Model</string> + <string name="device_details_manufacturer">Manufacturer</string> + <string name="device_details_description">Description</string> + <string name="device_details_type">Type</string> + <string name="device_details_location">Location</string> + <string name="device_details_protocol">Protocol</string> + <string name="settings_cse_url_label">URL</string> + <string name="settings_cse">CSE</string> + <string name="device_details_serialNumber">Serial number</string> + <string name="device_details_deviceName">Device name</string> + <string name="settings_cse_hostname">Hostname</string> + <string name="settings_cse_port">Port</string> + <string name="settings_cse_cseId">CSE Id</string> + <string name="settings_cse_cseName">CSE Name</string> + <string name="settings_device_name">Device Name</string> + <string name="device_name_with_alias">Using SDT alias name property (pDANe)</string> + <string name="device_name_with_name">Using SDT name property (prDNe)</string> + +</resources> \ No newline at end of file
diff --git a/org.eclipse.om2m.android.dashboard/res/values/styles.xml b/org.eclipse.om2m.android.dashboard/res/values/styles.xml new file mode 100644 index 0000000..71c5795 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/values/styles.xml
@@ -0,0 +1,32 @@ +<!-- + Copyright (c) 2013, 2017 Orange. + All rights reserved. This program and the accompanying materials + are made available under the terms of the Eclipse Public License v1.0 + which accompanies this distribution, and is available at + http://www.eclipse.org/legal/epl-v10.html + + Contributors: + BAREAU Cyrille <cyrille.bareau@orange.com>, + BONNARDEL Gregory <gbonnardel.ext@orange.com>, + BOLLE Sebastien <sebastien.bolle@orange.com>. + --> +<resources xmlns:android="http://schemas.android.com/apk/res/android"> + + <!-- + 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> \ No newline at end of file
diff --git a/org.eclipse.om2m.android.dashboard/res/values/styles_custom_theme.xml b/org.eclipse.om2m.android.dashboard/res/values/styles_custom_theme.xml new file mode 100644 index 0000000..6be1329 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/res/values/styles_custom_theme.xml
@@ -0,0 +1,82 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- File created by the Android Action Bar Style Generator + + Copyright (C) 2011, 2017 The Android Open Source Project + Copyright (C) 2012 readyState Software Ltd + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<resources> + + <style name="Theme.Custom_theme" parent="@android:style/Theme.Holo.Light.DarkActionBar"> + <item name="android:actionBarItemBackground">@drawable/selectable_background_custom_theme</item> + <item name="android:popupMenuStyle">@style/PopupMenu.Custom_theme</item> + <item name="android:dropDownListViewStyle">@style/DropDownListView.Custom_theme</item> + <item name="android:actionBarTabStyle">@style/ActionBarTabStyle.Custom_theme</item> + <item name="android:actionDropDownStyle">@style/DropDownNav.Custom_theme</item> + <item name="android:actionBarStyle">@style/ActionBar.Solid.Custom_theme</item> + <item name="android:actionModeBackground">@drawable/cab_background_top_custom_theme</item> + <item name="android:actionModeSplitBackground">@drawable/cab_background_bottom_custom_theme</item> + <item name="android:actionModeCloseButtonStyle">@style/ActionButton.CloseMode.Custom_theme</item> + + <!-- Light.DarkActionBar specific --> + <item name="android:actionBarWidgetTheme">@style/Theme.Custom_theme.Widget</item> + + </style> + + <style name="ActionBar.Solid.Custom_theme" parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse"> + <item name="android:background">@drawable/ab_solid_custom_theme</item> + <item name="android:backgroundStacked">@drawable/ab_stacked_solid_custom_theme</item> + <item name="android:backgroundSplit">@drawable/ab_bottom_solid_custom_theme</item> + <item name="android:progressBarStyle">@style/ProgressBar.Custom_theme</item> + </style> + + <style name="ActionBar.Transparent.Custom_theme" parent="@android:style/Widget.Holo.ActionBar"> + <item name="android:background">@drawable/ab_transparent_custom_theme</item> + <item name="android:progressBarStyle">@style/ProgressBar.Custom_theme</item> + </style> + + <style name="PopupMenu.Custom_theme" parent="@android:style/Widget.Holo.ListPopupWindow"> + <item name="android:popupBackground">@drawable/menu_dropdown_panel_custom_theme</item> + </style> + + <style name="DropDownListView.Custom_theme" parent="@android:style/Widget.Holo.ListView.DropDown"> + <item name="android:listSelector">@drawable/selectable_background_custom_theme</item> + </style> + + <style name="ActionBarTabStyle.Custom_theme" parent="@android:style/Widget.Holo.ActionBar.TabView"> + <item name="android:background">@drawable/tab_indicator_ab_custom_theme</item> + </style> + + <style name="DropDownNav.Custom_theme" parent="@android:style/Widget.Holo.Spinner"> + <item name="android:background">@drawable/spinner_background_ab_custom_theme</item> + <item name="android:popupBackground">@drawable/menu_dropdown_panel_custom_theme</item> + <item name="android:dropDownSelector">@drawable/selectable_background_custom_theme</item> + </style> + + <style name="ProgressBar.Custom_theme" parent="@android:style/Widget.Holo.ProgressBar.Horizontal"> + <item name="android:progressDrawable">@drawable/progress_horizontal_custom_theme</item> + </style> + + <style name="ActionButton.CloseMode.Custom_theme" parent="@android:style/Widget.Holo.ActionButton.CloseMode"> + <item name="android:background">@drawable/btn_cab_done_custom_theme</item> + </style> + + <!-- this style is only referenced in a Light.DarkActionBar based theme --> + <style name="Theme.Custom_theme.Widget" parent="@android:style/Theme.Holo"> + <item name="android:popupMenuStyle">@style/PopupMenu.Custom_theme</item> + <item name="android:dropDownListViewStyle">@style/DropDownListView.Custom_theme</item> + </style> + +</resources> \ No newline at end of file
diff --git a/org.eclipse.om2m.android.dashboard/src/main/AndroidManifest.xml b/org.eclipse.om2m.android.dashboard/src/main/AndroidManifest.xml new file mode 100644 index 0000000..7909090 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/src/main/AndroidManifest.xml
@@ -0,0 +1,70 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (c) 2013, 2017 Orange. + All rights reserved. This program and the accompanying materials + are made available under the terms of the Eclipse Public License v1.0 + which accompanies this distribution, and is available at + http://www.eclipse.org/legal/epl-v10.html + + Contributors: + BAREAU Cyrille <cyrille.bareau@orange.com>, + BONNARDEL Gregory <gbonnardel.ext@orange.com>, + BOLLE Sebastien <sebastien.bolle@orange.com>. + --> + +<manifest xmlns:android="http://schemas.android.com/apk/res/android" + package="org.eclipse.om2m.android.dashboard" + android:versionCode="1" + android:versionName="1.0.0-SNAPSHOT" > + + <uses-sdk + android:minSdkVersion="16" + android:targetSdkVersion="17" /> + + <uses-permission android:name="android.permission.INTERNET"/> + + <application + android:allowBackup="true" + android:icon="@drawable/home_dashboard_logo" + android:label="@string/app_name" + android:theme="@style/Theme.Custom_theme" android:logo="@drawable/home_dashboard_logo"> + + <activity + android:name="org.eclipse.om2m.android.dashboard.DashboardActivity" + android:icon="@drawable/home_dashboard_logo" + android:label="@string/app_name"> + <intent-filter android:label="@string/app_name"> + <action android:name="android.intent.action.MAIN" /> + <category android:name="android.intent.category.LAUNCHER" /> + </intent-filter> + </activity> + <activity + android:name="org.eclipse.om2m.android.dashboard.devices.DevicesActivity" + android:icon="@drawable/home_dashboard_logo" + android:label="@string/app_name" + android:parentActivityName="OTBDashboardActivity" > + </activity> + <activity + android:name="org.eclipse.om2m.android.dashboard.devices.DeviceDetailsActivity" + android:icon="@drawable/home_dashboard_logo" + android:label="@string/app_name" + android:parentActivityName="OTBDashboardActivity" > + </activity> + <activity + android:name="org.eclipse.om2m.android.dashboard.SettingsActivity" + android:icon="@drawable/home_dashboard_logo" + android:label="@string/app_name" + android:parentActivityName="OTBDashboardActivity" > + </activity> + <activity + android:name="org.eclipse.om2m.android.dashboard.applications.ApplicationConfigActivity" + android:icon="@drawable/home_dashboard_logo" + android:label="@string/app_name" + android:parentActivityName="OTBDashboardActivity" > + </activity> + + <service android:name="com.dg.libs.rest.services.HTTPRequestExecutorService" /> + + </application> + +</manifest>
diff --git a/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/CustomMainActivity.java b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/CustomMainActivity.java new file mode 100644 index 0000000..5356822 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/CustomMainActivity.java
@@ -0,0 +1,45 @@ +/******************************************************************************* + * Copyright (c) 2013, 2017 Orange. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * BAREAU Cyrille <cyrille.bareau@orange.com>, + * BONNARDEL Gregory <gbonnardel.ext@orange.com>, + * BOLLE Sebastien <sebastien.bolle@orange.com>. + *******************************************************************************/ +package org.eclipse.om2m.android.dashboard; + +import org.eclipse.om2m.android.dashboard.R; + +import android.app.Activity; +import android.content.Intent; +import android.view.Menu; +import android.view.MenuInflater; +import android.view.MenuItem; + +public class CustomMainActivity extends Activity { + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + MenuInflater inflater = getMenuInflater(); + inflater.inflate(R.menu.menu_main, menu); + return true; + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch(item.getItemId()) { + case R.id.menu_settings: + Intent settingsActivity = new Intent(CustomMainActivity.this, SettingsActivity.class); + startActivity(settingsActivity); + break; + default: + break; + } + return true; + } + +}
diff --git a/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/CustomSecondaryActivity.java b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/CustomSecondaryActivity.java new file mode 100644 index 0000000..c828c62 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/CustomSecondaryActivity.java
@@ -0,0 +1,49 @@ +/******************************************************************************* + * Copyright (c) 2013, 2017 Orange. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * BAREAU Cyrille <cyrille.bareau@orange.com>, + * BONNARDEL Gregory <gbonnardel.ext@orange.com>, + * BOLLE Sebastien <sebastien.bolle@orange.com>. + *******************************************************************************/ +package org.eclipse.om2m.android.dashboard; + +import org.eclipse.om2m.android.dashboard.R; + +import android.app.Activity; +import android.content.Intent; +import android.view.Menu; +import android.view.MenuInflater; +import android.view.MenuItem; + +public class CustomSecondaryActivity extends Activity { + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + MenuInflater inflater = getMenuInflater(); + inflater.inflate(R.menu.menu_secondary, menu); + return true; + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch(item.getItemId()) { + case R.id.menu_help: + // to be overridden + break; + case android.R.id.home: + Intent mainActivity = new Intent(CustomSecondaryActivity.this, DashboardActivity.class); + mainActivity.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); + startActivity(mainActivity); + break; + default: + break; + } + return true; + } + +}
diff --git a/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/DashboardActivity.java b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/DashboardActivity.java new file mode 100644 index 0000000..c3c822b --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/DashboardActivity.java
@@ -0,0 +1,566 @@ +/******************************************************************************* + * Copyright (c) 2013, 2017 Orange. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * BAREAU Cyrille <cyrille.bareau@orange.com>, + * BONNARDEL Gregory <gbonnardel.ext@orange.com>, + * BOLLE Sebastien <sebastien.bolle@orange.com>. + *******************************************************************************/ +package org.eclipse.om2m.android.dashboard; + +import java.util.ArrayList; +import java.util.List; +import java.util.Locale; +import java.util.SortedSet; + +import org.eclipse.om2m.android.dashboard.cse.OneM2MListener; +import org.eclipse.om2m.android.dashboard.cse.OneM2MRequest.OneM2MReqType; +import org.eclipse.om2m.android.dashboard.cse.OneM2MRequester; +import org.eclipse.om2m.android.dashboard.cse.models.OneM2MApplication; +import org.eclipse.om2m.android.dashboard.cse.models.SDTDevice; +import org.eclipse.om2m.android.dashboard.devices.DevicesActivity; +import org.eclipse.om2m.android.dashboard.main.MainAppEntryView; +import org.eclipse.om2m.android.dashboard.main.MainDevView; +import org.eclipse.om2m.android.dashboard.tools.OneM2MDeviceType; +import org.eclipse.om2m.android.dashboard.tools.SettingsManager; +import org.eclipse.om2m.android.dashboard.tools.Sorter; +import org.eclipse.om2m.android.dashboard.utils.OTBUtils; + +import android.app.AlertDialog; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.res.Configuration; +import android.content.res.Resources; +import android.graphics.Point; +import android.os.Bundle; +import android.os.Handler; +import android.os.Message; +import android.util.DisplayMetrics; +import android.util.Log; +import android.util.TypedValue; +import android.view.Display; +import android.view.View; +import android.view.View.OnClickListener; +import android.view.View.OnLongClickListener; +import android.view.ViewGroup.LayoutParams; +import android.view.ViewTreeObserver.OnGlobalLayoutListener; +import android.widget.GridLayout; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.RelativeLayout; +import android.widget.ScrollView; +import android.widget.TextView; +import android.widget.Toast; + +public class DashboardActivity extends CustomMainActivity + implements OnClickListener, OnLongClickListener, OneM2MListener { + + private RelativeLayout rlDevs; + + private GridLayout glApps; + private GridLayout glDevices; + + private ImageView ivCSEState; + + private ScrollView svDynamicCardScroller; + + private TextView tvCounterApp; + private TextView tvCounterDev; + private TextView tvStatusTitle; + + private List<SDTDevice> devices; + private SortedSet<OneM2MApplication> applications; + + private boolean isInitialized = false; + + private boolean cseDetected; + private boolean cseConnected; + private int width = 0; + private int appCol = -1; + private int devCol = -1; + + // ================================================================================ + + Handler mDicoveryHandler = new Handler() { + @Override + public void handleMessage(Message msg) { + boolean discovery_succeed = msg.getData().getBoolean("DISCOVERY_SUCCEED"); + if (discovery_succeed) { + init(); + } else { + reset(); + } + } + }; + + // ===================================================================================== + // Lifecycle + // ===================================================================================== + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + } + + // || + // || + // || + // \/ + + @Override + protected void onStart() { + super.onStart(); + } + + // || + // || + // || + // \/ + + @Override + protected void onResume() { + try { + super.onResume(); + + Log.i(getClass().getName(), "entering onResume"); + + isInitialized = false; + + Display display = getWindowManager().getDefaultDisplay(); + Point size = new Point(); + display.getSize(size); + width = size.x; + + String language = SettingsManager.getInstance(this).getLanguage(); + Resources res = getApplication().getResources(); + Configuration config = res.getConfiguration(); + config.locale = new Locale(language); + res.updateConfiguration(config, null); + try { + OneM2MDeviceType.initialize(res); + } catch (Exception e) { + Toast.makeText(this, "Error " + e, Toast.LENGTH_LONG).show(); + } + + setContentView(R.layout.main_activity); + + rlDevs = (RelativeLayout)findViewById(R.id.rl_main_zone_devs); + + tvCounterApp = (TextView)findViewById(R.id.tv_main_counter_app); + tvCounterDev = (TextView)findViewById(R.id.tv_main_counter_dev); + + tvStatusTitle = (TextView)findViewById(R.id.tv_cse_status_title); + + glApps = (GridLayout)findViewById(R.id.gl_main_cse_app); + glDevices = (GridLayout)findViewById(R.id.gl_main_cse_devices); + + glApps.removeAllViews(); + glDevices.removeAllViews(); + + ivCSEState = (ImageView)findViewById(R.id.iv_cse_state_icon); + + svDynamicCardScroller = (ScrollView)findViewById(R.id.sv_main_dynamic_card_scroller); + + ivCSEState.setOnLongClickListener(this); + + refreshAll(); + + // add an observer to be sure that the layout is created before getting size + // and resize dynamically the card to take full screen size + tvStatusTitle.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() { + @Override + public void onGlobalLayout() { + //Remove it here unless you want to get this callback for EVERY + //layout pass, which can get you into infinite loops if you ever + //modify the layout from within this method. + tvStatusTitle.getViewTreeObserver().removeOnGlobalLayoutListener(this); + + // set dynamic card container size + int svHeight = svDynamicCardScroller.getMeasuredHeight(); + int svWidth = svDynamicCardScroller.getMeasuredWidth(); + int display_mode = getResources().getConfiguration().orientation; + if (display_mode == 1) { // portrait + LinearLayout llDynamicCardContainer = (LinearLayout)findViewById(R.id.ll_main_dynamic_card_container); + llDynamicCardContainer.setMinimumHeight(svHeight); + int appCol = svWidth / (165 + 70); // 165 = app view width + // 70 = margin between app + int devCol = svWidth / (150 + 70); // 150 = dev view width + // 70 = margin between dev + glApps.setColumnCount(appCol); + glDevices.setColumnCount(devCol); + } + else { // landscape + resize(); + LinearLayout llLeftCardContainer = (LinearLayout)findViewById(R.id.ll_cse_left); + LayoutParams params = llLeftCardContainer.getLayoutParams(); + + double px = (double) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 175, llLeftCardContainer.getResources().getDisplayMetrics()); + + params.width = (width * 4) / 9; // Left (apps) weight = 5 + // Right (devs) weight = 4 + int cappCol = (int) Math.floor( ((double) width) * 4 / 9 / px); // 165 = app view width + // 70 = margin between app + appCol = cappCol; + devCol = ((width * 4) / 9) / (160 + 70); // 150 = dev view width + // 70 = margin between dev + try { + glApps.removeAllViews(); + glApps.setColumnCount(appCol); + Log.d(getClass().getName(), "number of app col=" + appCol); + } catch(Exception e) { +// glApps.setColumnCount(appCol+1); + } + try { + glDevices.removeAllViews(); + glDevices.setColumnCount(devCol); + Log.d(getClass().getName(), "number of devices col=" + devCol); + } catch(Exception e) { +// glDevices.setColumnCount(devCol+1); + } + } + + // init data with last informations + refreshAll(); + } + }); + + init(); + Log.i(getClass().getName(), "leaving onResume"); + } catch(Exception e) { + e.printStackTrace(); + try { + AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this); + dialogBuilder.setTitle("Error " + e); + dialogBuilder.setMessage(e.getMessage()); + dialogBuilder.setPositiveButton(R.string.dialog_btn_ok, + new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface arg0, int arg1) { + } + }); + dialogBuilder.create().show(); + } catch (Exception e2) { + Toast.makeText(this, "Error " + e, Toast.LENGTH_LONG).show(); + } + + } + } + + // || + // || + // || + // \/ + + @Override + protected void onPause() { + super.onPause(); + } + + // || + // || + // || + // \/ + + @Override + protected void onStop() { + super.onStop(); + OneM2MRequester.getInstance().cancelMyPollingRequests(); + } + + // || + // || + // || + // \/ + + @Override + protected void onDestroy() { + super.onDestroy(); + } + + // ===================================================================================== + + private void reset() { + refreshCSE(false, false); + + if (devices != null) { + devices.clear(); + } + glDevices.removeAllViews(); + applications = null; + glApps.removeAllViews(); + + refreshAll(); + } + + private void init() { + if (! isInitialized) { + OneM2MRequester.getInstance().sendPollingRequest(OneM2MReqType.INCSE_STATUS, null, + getApplicationContext(), this, OneM2MRequester.DEFAULT_POLLING_DELAY); + OneM2MRequester.getInstance().sendPollingRequest(OneM2MReqType.DEVICES, null, + getApplicationContext(), this, OneM2MRequester.DEFAULT_POLLING_DELAY); + OneM2MRequester.getInstance().sendPollingRequest(OneM2MReqType.APPLICATIONS, null, + getApplicationContext(), this, OneM2MRequester.DEFAULT_POLLING_DELAY); + isInitialized = true; + } + } + + private void refreshAll() { + Log.i(getClass().getName(), "entering refreshAll"); + refreshCSE(cseDetected, cseConnected); + refreshDevices(); + refreshApplications(); + } + + private synchronized void refreshCSE(boolean detected, boolean connected) { + Log.i(getClass().getName(), "entering refreshHab"); + try { + if (! detected) { + ivCSEState.setImageDrawable(getResources().getDrawable(R.drawable.otb_picto_led_notconnected)); + tvStatusTitle.setText(getResources().getString(R.string.main_cse_state_not_detected)); + cseDetected = false; + cseConnected = false; + } else if (! connected) { + ivCSEState.setImageDrawable(getResources().getDrawable(R.drawable.otb_picto_led_notconnected)); + tvStatusTitle.setText(getResources().getString(R.string.main_cse_state_not_connected)); + cseDetected = true; + cseConnected = false; + } else { + ivCSEState.setImageDrawable(getResources().getDrawable(R.drawable.otb_picto_led_ok)); + tvStatusTitle.setText(getResources().getString(R.string.main_cse_state_ok)); + cseDetected = true; + cseConnected = true; + } + } catch (Exception e) { + } + } + + private synchronized void refreshDevices() { + Log.i(getClass().getName(), "entering refreshDevices"); + if (devices == null) { + if (tvCounterDev != null) { + tvCounterDev.setText("0"); + } + glDevices.removeAllViews(); + return; + } + + int deviceCounter = 0; + // add/update devices + List<MainDevView> newViews = new ArrayList<MainDevView>(); + for (SDTDevice sdtDevice : devices) { + + deviceCounter += 1; + boolean deviceAlreadyKnown = false; + for (int i = 0; i < glDevices.getChildCount(); i++) { + Object obj = glDevices.getChildAt(i); + if (obj instanceof MainDevView) { + MainDevView devView = (MainDevView)obj; + if ((devView != null) && (sdtDevice.getRi().equals(devView.getSDTDevice().getRi()))) { + // same entry => refresh count + deviceAlreadyKnown = true; + devView.setData(sdtDevice); + break; + } + } + } + + if (! deviceAlreadyKnown) { + // create a new device + MainDevView devView = new MainDevView(getApplicationContext(), null); + devView.setData(sdtDevice); + // add device + newViews.add(devView); + } + } + try { + glDevices.setColumnCount(devCol); + } catch(Exception e) { + } + for (MainDevView v : newViews) + glDevices.addView(v, 0); + + // remove old devices + List<Integer> indexToRemove = new ArrayList<Integer>(); + for (int i = 0; i < glDevices.getChildCount(); i++) { + Object obj = glDevices.getChildAt(i); + if (obj instanceof MainDevView) { + boolean deviceFound = false; + SDTDevice renderedDevice = ((MainDevView)obj).getSDTDevice(); + if (devices.contains(renderedDevice)) { + deviceFound = true; + } + if (! deviceFound) { + indexToRemove.add(i); + } + } + } + for (Integer i : indexToRemove) { + try { + glDevices.removeViewAt(i); + } + catch(Exception e){} + } + + if (tvCounterDev != null) { + tvCounterDev.setText("" + deviceCounter); + } + resize(); + } + + private synchronized void refreshApplications() { + Log.i(getClass().getName(), "entering refreshApplications"); + if (OTBUtils.isEmpty(applications)) { + if (tvCounterApp != null) { + tvCounterApp.setText("0"); + } + glApps.removeAllViews(); + return; + } + if (tvCounterApp != null) { + tvCounterApp.setText("" + applications.size()); + } + + // add/update applications + int idx = 0; + for (OneM2MApplication app : applications) { + boolean found = false; + for (int i = 0; i < glApps.getChildCount(); i++) { + Object obj = glApps.getChildAt(i); + if (obj instanceof MainAppEntryView) { + MainAppEntryView appView = (MainAppEntryView)obj; + if ((appView != null) && appView.app.getRi().equals(app.getRi())) { + // same entry => refresh count + found = true; + appView.setData(app); + break; + } + } + } + + if (! found) { + // create a new entry + MainAppEntryView appView = + new MainAppEntryView(getApplicationContext(), null); + appView.setData(app); + // add entry + glApps.addView(appView, idx); + } + idx += 1; + } + + // remove old entries + List<View> indexToRemove = new ArrayList<View>(); + for (int i = 0; i < glApps.getChildCount(); i++) { + Object obj = glApps.getChildAt(i); + if (obj instanceof MainAppEntryView) { + MainAppEntryView appEntryView = (MainAppEntryView)obj; + boolean found = false; + for (OneM2MApplication application : applications) { + if (appEntryView.app.getRi().equals(application.getRi())) { + found = true; + break; + } + } + if (! found) { + indexToRemove.add((View) obj); + } + } + } + for (View v : indexToRemove) { + glApps.removeView(v); + } + + resize(); + } + + + private void resize() { + // refresh container height + int display_mode = getResources().getConfiguration().orientation; + if (display_mode != 1) { + // landscape + + int margin10dp = Math.round(10 * + (getApplicationContext().getResources().getDisplayMetrics().xdpi + / DisplayMetrics.DENSITY_DEFAULT)); + + int svMainHeight = svDynamicCardScroller.getMeasuredHeight(); + + LinearLayout llRightCardContainer = (LinearLayout)findViewById(R.id.ll_cse_right); + + RelativeLayout rlHabCardContainer = (RelativeLayout)findViewById(R.id.rl_main_zone_cse); + RelativeLayout rlAppsCardContainer = (RelativeLayout)findViewById(R.id.rl_main_zone_apps); + RelativeLayout rlDevsCardContainer = (RelativeLayout)findViewById(R.id.rl_main_zone_devs); + + int svHabHeight = rlHabCardContainer.getMeasuredHeight(); + int svAppHeight = rlAppsCardContainer.getMeasuredHeight(); + int svDevHeight = (svHabHeight + svAppHeight); + + int svHeight = 0, appMinHeight = 0, devMinHeight = 0; + + svHeight = Math.max(svAppHeight + svHabHeight, svDevHeight /*+ svUsrHeight*/); + svHeight = Math.max(svHeight, svMainHeight); + appMinHeight = svHeight - svHabHeight - margin10dp; + devMinHeight = svHeight ; + + rlAppsCardContainer.setMinimumHeight(appMinHeight); + rlDevsCardContainer.setMinimumHeight(devMinHeight); + + rlAppsCardContainer.invalidate(); + rlDevsCardContainer.invalidate(); + } + } + + // ===================================================================================== + // User actions + // ===================================================================================== + + @Override + public void onClick(View v) { + if (v instanceof RelativeLayout) { + RelativeLayout layoutClicked = (RelativeLayout)v; + if (layoutClicked == rlDevs) { + startActivity(new Intent(DashboardActivity.this, + DevicesActivity.class)); + } + } + } + + @Override + public boolean onLongClick(View v) { + if (v instanceof ImageView) { + ImageView viewClicked = (ImageView)v; + if (viewClicked == ivCSEState) { +// OTBHabRequester.getInstance().sendRequest(OTBHabReqType.DEBUG, +// null, getApplicationContext(), this); + } + } + return false; + } + + @SuppressWarnings("unchecked") + @Override + public void onOneM2MResponse(OneM2MReqType requestType, Object response) { + if (requestType == OneM2MReqType.APPLICATIONS) { + List<OneM2MApplication> apps = (List<OneM2MApplication>)response; + applications = Sorter.getSortedApplications(apps); + refreshApplications(); + } else if (requestType == OneM2MReqType.DEVICES) { + devices = (List<SDTDevice>) response; + refreshDevices(); + } else if (requestType == OneM2MReqType.INCSE_STATUS) { + boolean isConnected = (Boolean) response; + refreshCSE(isConnected, isConnected); + } + } + + @Override + public void onOneM2MError(OneM2MReqType requestType, String msg) { + Toast.makeText(this, "Error " + msg, Toast.LENGTH_LONG).show(); + } + +}
diff --git a/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/SettingsActivity.java b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/SettingsActivity.java new file mode 100644 index 0000000..e4d006b --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/SettingsActivity.java
@@ -0,0 +1,275 @@ +/******************************************************************************* + * Copyright (c) 2013, 2017 Orange. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * BAREAU Cyrille <cyrille.bareau@orange.com>, + * BONNARDEL Gregory <gbonnardel.ext@orange.com>, + * BOLLE Sebastien <sebastien.bolle@orange.com>. + *******************************************************************************/ +package org.eclipse.om2m.android.dashboard; + +import java.util.Locale; + +import org.eclipse.om2m.android.dashboard.tools.SettingsManager; + +import org.eclipse.om2m.android.dashboard.R; + +import android.content.res.Configuration; +import android.content.res.Resources; +import android.os.Bundle; +import android.text.InputFilter; +import android.text.Spanned; +import android.view.View; +import android.view.View.OnClickListener; +import android.view.WindowManager; +import android.widget.Button; +import android.widget.CheckBox; +import android.widget.CompoundButton; +import android.widget.CompoundButton.OnCheckedChangeListener; +import android.widget.EditText; +import android.widget.RadioButton; +import android.widget.TextView; + +public class SettingsActivity extends CustomSecondaryActivity + implements OnClickListener, OnCheckedChangeListener { + + private Button btnValidate; + private Button btnCancel; + private CheckBox cbWizards; + private RadioButton rbLanguageEn; + private RadioButton rbLanguageFr; + private TextView tvTitle; + private TextView tvVersion; + private EditText etCSEHostname; + private EditText etCSEPort; + private EditText etCSEId; + private EditText etCSEName; + private EditText etCSELogin; + private EditText etCSEPwd; + + private RadioButton rbDeviceNameWithAlias; + private RadioButton rbDeviceName; + + private String language = ""; + private String currentLanguage = ""; + + // ================================================================================ + + // ===================================================================================== + // Lifecycle + // ===================================================================================== + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + setContentView(R.layout.settings_activity); + SettingsManager settings = SettingsManager.getInstance(this); + currentLanguage = settings.getLanguage(); + getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); + + tvTitle = (TextView)findViewById(R.id.tv_title); + tvVersion = (TextView)findViewById(R.id.tv_version); + // Custom input filter to validate IP adress + InputFilter[] filters = new InputFilter[1]; + filters[0] = new InputFilter() { + public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) { + if (end > start) { + String destTxt = dest.toString(); + String resultingTxt = destTxt.substring(0, dstart) + + source.subSequence(start, end) + + destTxt.substring(dend); + if (! resultingTxt.matches ("^\\d{1,3}(\\.(\\d{1,3}(\\.(\\d{1,3}(\\.(\\d{1,3})?)?)?)?)?)?")) { + return ""; + } + String[] splits = resultingTxt.split("\\."); + for (int i = 0; i < splits.length; i++) { + if (Integer.valueOf(splits[i]) > 255) { + return ""; + } + } + } + return null; + } + }; + + btnValidate = (Button)findViewById(R.id.btn_settings_validate); + btnCancel = (Button)findViewById(R.id.btn_settings_cancel); + cbWizards = (CheckBox)findViewById(R.id.cb_settings_wizards); + rbLanguageEn = (RadioButton)findViewById(R.id.rd_language_en); + rbLanguageFr = (RadioButton)findViewById(R.id.rd_language_fr); + + etCSEHostname = (EditText) findViewById(R.id.et_settings_cse_hostname); + etCSEHostname.setFilters(filters); + etCSEPort = (EditText) findViewById(R.id.et_settings_cse_port); + etCSEId = (EditText) findViewById(R.id.et_settings_cse_cseId); + etCSEName = (EditText) findViewById(R.id.et_settings_cse_cseName); + etCSELogin = (EditText) findViewById(R.id.et_settings_cse_login); + etCSEPwd = (EditText) findViewById(R.id.et_settings_cse_pwd); + + btnValidate.setOnClickListener(this); + btnCancel.setOnClickListener(this); + rbLanguageEn.setOnCheckedChangeListener(this); + rbLanguageFr.setOnCheckedChangeListener(this); + + rbDeviceName = (RadioButton) findViewById(R.id.rb_device_name_with_name); + rbDeviceNameWithAlias = (RadioButton) findViewById(R.id.rb_device_name_with_alias); + rbDeviceName.setOnCheckedChangeListener(this); + rbDeviceNameWithAlias.setOnCheckedChangeListener(this); + + if (settings.getDeviceName().equals(SettingsManager.DEVICE_NAME_WITH_ALIAS)) { + rbDeviceNameWithAlias.setChecked(true); + } else { + rbDeviceName.setChecked(true); + } + + + if (currentLanguage.equals("fr")) { + rbLanguageFr.setChecked(true); + } else { + rbLanguageEn.setChecked(true); + } + + etCSEHostname.setText(settings.getCSEHostname()); + etCSEPort.setText(settings.getCSEPort()); + etCSEId.setText(settings.getCSEId()); + etCSEName.setText(settings.getCSEName()); + etCSELogin.setText(settings.getCSELogin()); + etCSEPwd.setText(settings.getCSEPwd()); + } + + // || + // || + // || + // \/ + + @Override + protected void onStart() { + super.onStart(); + } + + // || + // || + // || + // \/ + + @Override + protected void onResume() { + super.onResume(); + + language = SettingsManager.getInstance(this).getLanguage(); + Resources res = getApplication().getResources(); + Configuration config = res.getConfiguration(); + config.locale = new Locale(language); + res.updateConfiguration(config, null); + + tvTitle.setText(R.string.settings_title); + cbWizards.setText(R.string.settings_activateWizard); + + btnValidate.setText(R.string.dialog_btn_validate); + btnCancel.setText(R.string.dialog_btn_cancel); + + try { + String versionName = getApplicationContext().getPackageManager() + .getPackageInfo(getApplicationContext().getPackageName(), 0).versionName; + String versionLabel = getResources().getString(R.string.settings_version) + .replace("%version%", versionName); + tvVersion.setText(versionLabel); + } catch(Exception ignored) { + } + } + + // || + // || + // || + // \/ + + @Override + protected void onPause() { + super.onPause(); + } + + // || + // || + // || + // \/ + + @Override + protected void onStop() { + super.onStop(); + } + + // || + // || + // || + // \/ + + @Override + protected void onDestroy() { + super.onDestroy(); + } + + + // ===================================================================================== + // User actions + // ===================================================================================== + + @Override + public void onClick(View v) { + Button butClicked = (Button)v; + final SettingsManager settings = SettingsManager.getInstance(SettingsActivity.this); + + if (butClicked == btnValidate) { + if (cbWizards.isChecked()) { + settings.setWizardApplicationSimple(true); + settings.setWizardApplicationDetails(true); + settings.setWizardDeviceDetails(true); + settings.setWizardDeviceSimple(true); + settings.setWizardConfig(true); + } + + if (! language.isEmpty()) { + settings.setLanguage(language); + } + + settings.setCSEHostname(etCSEHostname.getText().toString()); + settings.setCSEPort(etCSEPort.getText().toString()); + settings.setCSEId(etCSEId.getText().toString()); + settings.setCSEName(etCSEName.getText().toString()); + settings.setCSELogin(etCSELogin.getText().toString()); + settings.setCSEPwd(etCSEPwd.getText().toString()); + } + else if (butClicked == btnCancel) { + if (! currentLanguage.isEmpty()) { + settings.setLanguage(currentLanguage); + } + } + + if ((butClicked == btnCancel) || (butClicked == btnValidate)) { + finish(); + } + } + + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + if (! isChecked) + return; + RadioButton butClicked = (RadioButton)buttonView; + if ((butClicked == rbLanguageEn) || (butClicked == rbLanguageFr)) { + language = (butClicked == rbLanguageEn) ? "en" : "fr"; + SettingsManager.getInstance(SettingsActivity.this).setLanguage(language); + onResume(); + } + + if ((butClicked == rbDeviceName) || (butClicked == rbDeviceNameWithAlias)) { + String configDeviceName = (butClicked == rbDeviceName) ? SettingsManager.DEVICE_NAME_WITH_NAME : SettingsManager.DEVICE_NAME_WITH_ALIAS; + SettingsManager.getInstance(SettingsActivity.this).setDeviceName(configDeviceName); + onResume(); + } + } + +}
diff --git a/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/applications/ApplicationConfigActivity.java b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/applications/ApplicationConfigActivity.java new file mode 100644 index 0000000..e1f64e6 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/applications/ApplicationConfigActivity.java
@@ -0,0 +1,177 @@ +/******************************************************************************* + * Copyright (c) 2013, 2017 Orange. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * BAREAU Cyrille <cyrille.bareau@orange.com>, + * BONNARDEL Gregory <gbonnardel.ext@orange.com>, + * BOLLE Sebastien <sebastien.bolle@orange.com>. + *******************************************************************************/ +package org.eclipse.om2m.android.dashboard.applications; + +import java.util.Locale; + +import org.eclipse.om2m.android.dashboard.cse.OneM2MListener; +import org.eclipse.om2m.android.dashboard.cse.OneM2MRequester; +import org.eclipse.om2m.android.dashboard.cse.OneM2MRequest.OneM2MReqType; +import org.eclipse.om2m.android.dashboard.cse.models.OneM2MApplication; +import org.eclipse.om2m.android.dashboard.cse.requests.OneM2MRequestParams; +import org.eclipse.om2m.android.dashboard.tools.SettingsManager; + +import org.eclipse.om2m.android.dashboard.R; + +import android.annotation.SuppressLint; +import android.app.Activity; +import android.content.res.Configuration; +import android.content.res.Resources; +import android.os.Bundle; +import android.util.Log; +import android.webkit.HttpAuthHandler; +import android.webkit.WebChromeClient; +import android.webkit.WebView; +import android.webkit.WebViewClient; +import android.widget.TextView; +import android.widget.Toast; + +@SuppressLint("SetJavaScriptEnabled") +public class ApplicationConfigActivity extends Activity implements OneM2MListener { + + static private final String PARAM = "___RES___"; + static private final String MSG_TEMPLATE = "<html><head><style type=\"text/css\">" + + "#maindiv {width:100%; height:100%; text-align:center; vertical-align:middle; border:1px solid #be1f2e;}" + + "#content {width:80%; height:80p%; margin-left:auto; margin-right:auto; position:relative; top:40%;}" + + "h3 {color:#be1f2e; text-align:center; vertical-align:middle}" + + "p {color:black; text-align:center; vertical-align:middle}" + + "</style></head>" + + "<body><div id=\"maindiv\"><div id=\"content\"><h3>" + + PARAM + + "</h3></div></div></body></html>"; + + private WebView configContentView; + private TextView configTitle; + + private String applicationId; + private OneM2MApplication application; + + // ===================================================================================== + // Lifecycle + // ===================================================================================== + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + Bundle extras = getIntent().getExtras(); + if (extras != null) { + applicationId = extras.getString("applicationId"); + } + } + + @Override + protected void onResume() { + super.onResume(); + + String language = SettingsManager.getInstance(this).getLanguage(); + Resources res = getApplication().getResources(); + Configuration config = res.getConfiguration(); + config.locale = new Locale(language); + res.updateConfiguration(config, null); + + setContentView(R.layout.application_config_activity); + + configTitle = (TextView)findViewById(R.id.tv_application_config_title); + configContentView = (WebView)findViewById(R.id.wv_application_config_container); + + // Retrieve the application + OneM2MRequester.getInstance().sendRequest(OneM2MReqType.APPLICATION, + new OneM2MRequestParams(applicationId), getApplicationContext(), this); + + setBanner(""); + } + + private void createWebView() { + setBanner(application.getApn()); + final String name = SettingsManager.getInstance(this).getCSELogin(); + final String password = SettingsManager.getInstance(this).getCSEPwd(); + final String url = application.getPresentationUrl() + + "?name=" + name + "&password=" + password; + + configContentView.setWebViewClient(new WebViewClient () { + public void onReceivedHttpAuthRequest(WebView view, + HttpAuthHandler handler, String host, String realm) { + try { + if (handler.useHttpAuthUsernamePassword()) { + handler.proceed(name, password); + } else { + setBanner("Error authentication."); + String content = MSG_TEMPLATE.replaceFirst(PARAM, + getResources().getString(R.string.application_details_no_access_rights)); + view.loadData(content, "text/html", "UTF-8"); + } + } catch (Exception e) { + setBanner("Error authentication: " + e.getMessage()); + String content = MSG_TEMPLATE.replaceFirst(PARAM, + getResources().getString(R.string.application_details_no_access_rights)) + ":" + e.getMessage(); + view.loadData(content, "text/html", "UTF-8"); + } + } + }); + configContentView.getSettings().setJavaScriptEnabled(true); + configContentView.resumeTimers(); + + configContentView.setWebChromeClient(new WebChromeClient() { + @Override + public void onReceivedTitle(WebView view, String title) { + super.onReceivedTitle(view, title); + if (title.contains("404")) { + String content = MSG_TEMPLATE.replaceFirst(PARAM, + getResources().getString(R.string.application_details_no_config)); + view.loadData(content, "text/html", "UTF-8"); + } else if (title.contains("401")) { + if (title.contains("_OTB_reset_User__")) { + view.loadUrl(url); + } else { + String content = MSG_TEMPLATE.replaceFirst(PARAM, + getResources().getString(R.string.application_details_no_access_rights)); + view.loadData(content, "text/html", "UTF-8"); + } + } + } + }); + configContentView.loadUrl(url); + } + + private final void setBanner(String msg) { + configTitle.setText(getResources().getString(R.string.application_config_title) + .replace("%app_name%", msg)); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + Log.i(getClass().getName(), "onDestroy"); + configContentView.clearHistory(); + configContentView.clearCache(true); + configContentView.loadUrl("about:blank"); + configContentView.freeMemory(); + configContentView.pauseTimers(); + configContentView = null; + } + + @Override + public void onOneM2MResponse(OneM2MReqType requestType, Object response) { + if (requestType == OneM2MReqType.APPLICATION) { + application = (OneM2MApplication)response; + if (application != null) + createWebView(); + } + } + + @Override + public void onOneM2MError(OneM2MReqType requestType, String msg) { + Toast.makeText(this, "getApplication " + msg, Toast.LENGTH_LONG).show(); + } + +}
diff --git a/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/cse/OneM2MConnector.java b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/cse/OneM2MConnector.java new file mode 100644 index 0000000..f6906f1 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/cse/OneM2MConnector.java
@@ -0,0 +1,386 @@ +/******************************************************************************* + * Copyright (c) 2013, 2017 Orange. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * BAREAU Cyrille <cyrille.bareau@orange.com>, + * BONNARDEL Gregory <gbonnardel.ext@orange.com>, + * BOLLE Sebastien <sebastien.bolle@orange.com>. + *******************************************************************************/ +package org.eclipse.om2m.android.dashboard.cse; + +import java.net.HttpURLConnection; +import java.net.URL; +import java.nio.charset.Charset; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.apache.http.HttpStatus; +import org.eclipse.om2m.android.dashboard.cse.models.Container; +import org.eclipse.om2m.android.dashboard.cse.models.FlexContainerAnnounced; +import org.eclipse.om2m.android.dashboard.cse.models.OneM2MApplication; +import org.eclipse.om2m.android.dashboard.cse.models.Response; +import org.eclipse.om2m.android.dashboard.cse.models.SDTDevice; +import org.eclipse.om2m.android.dashboard.cse.models.SDTModule; +import org.eclipse.om2m.android.dashboard.cse.models.Uril; +import org.eclipse.om2m.android.dashboard.tools.SettingsManager; +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpMethod; +import org.springframework.http.MediaType; +import org.springframework.http.client.ClientHttpResponse; +import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; +import org.springframework.http.converter.FormHttpMessageConverter; +import org.springframework.http.converter.HttpMessageConverter; +import org.springframework.http.converter.StringHttpMessageConverter; +import org.springframework.http.converter.json.GsonHttpMessageConverter; +import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; +import org.springframework.web.client.ResponseErrorHandler; +import org.springframework.web.client.RestTemplate; +import org.springframework.web.util.UriComponentsBuilder; + +import com.fasterxml.jackson.databind.DeserializationFeature; + +import android.content.Context; +import android.util.Log; + +public class OneM2MConnector { + + private static final String FILTER = "fu"; + private static final String RETURN_CONTENT = "rcn"; + private static final String LABEL = "lbl"; + private static final String TYPE = "ty"; + private static final String HTTP = "http://"; + private static final String APP_TYPE = "ResourceType/Application"; + private static final String DEV_TYPE = "object.type/device"; + + private static final OneM2MConnector INSTANCE = new OneM2MConnector(); + static public List<String> errors = new ArrayList<String>(); + + private Map<String, SDTDevice> currentDevices = new HashMap<String, SDTDevice>(); + + private RestTemplate GETRestTemplate = null; + private RestTemplate POSTRestTemplate = null; + private HttpHeaders requestHeaders; + private String inCseBaseUrl; + private String inCseUrl; + private String serverBaseUrl; + private MappingJackson2HttpMessageConverter jacksonConverter; + private Context context; + + public static final OneM2MConnector getInstance(Context context) { + INSTANCE.context = context; + INSTANCE.requestHeaders = new HttpHeaders(); + INSTANCE.requestHeaders.set("X-M2M-Origin", + SettingsManager.getInstance(context).getCSELogin() + ":" + + SettingsManager.getInstance(context).getCSEPwd()); + INSTANCE.requestHeaders.set("Accept", "application/json"); + INSTANCE.requestHeaders.set("Content-Type", "application/json"); + String srv = SettingsManager.getInstance(context).getCSEHostname() + + ":" + SettingsManager.getInstance(context).getCSEPort(); + INSTANCE.serverBaseUrl = srv.startsWith(HTTP) ? srv : HTTP + srv; + INSTANCE.inCseBaseUrl = INSTANCE.serverBaseUrl + "/~" ; + INSTANCE.inCseUrl = INSTANCE.inCseBaseUrl + "/" + + SettingsManager.getInstance(context).getCSEId() + + "/" + SettingsManager.getInstance(context).getCSEName(); + + return INSTANCE; + } + + private OneM2MConnector() { + List<MediaType> supportedMediaTypes = new ArrayList<MediaType>(); +// supportedMediaTypes.add(new MediaType("application", "json", Charset.forName("UTF-8"))); + supportedMediaTypes.add(new MediaType("application", "json", Charset.forName("ISO-8859-1"))); + + + jacksonConverter = new MappingJackson2HttpMessageConverter(); + jacksonConverter.setSupportedMediaTypes(supportedMediaTypes); + jacksonConverter.getObjectMapper().configure(DeserializationFeature.UNWRAP_ROOT_VALUE, + false); + + GsonHttpMessageConverter gsonConverter = new GsonHttpMessageConverter(); + gsonConverter.setSupportedMediaTypes(supportedMediaTypes); + + ResponseErrorHandler errorHandler = new ResponseErrorHandler() { + @Override + public boolean hasError(ClientHttpResponse resp) { + try { +// InputStream body = resp.getBody(); +// BufferedReader br = new BufferedReader(new InputStreamReader(body)); +// String line = null; +// while((line = br.readLine()) != null) { +// Log.d(OneM2MConnector.class.getName(), line); +// } + if (resp.getRawStatusCode() != HttpStatus.SC_OK) { + Log.e(OneM2MConnector.class.getName(), "invalid response, expected 200 OK , found " + resp.getRawStatusCode()); + return true; + + } + } catch (Exception e) { + Log.e(OneM2MConnector.class.getName(), "hasError: " + e.getMessage(), e); + } + return false; + } + + @Override + public void handleError(ClientHttpResponse resp) { + try { + + Log.e(OneM2MConnector.class.getName(), "handleError " + resp.getRawStatusCode() + " " + + resp.getStatusText()); + } catch (Exception e) { + Log.e(OneM2MConnector.class.getName(), "handleError " + e.getMessage()); + } + } + }; + + // init rest object + GETRestTemplate = new RestTemplate(); + List<HttpMessageConverter<?>> getMessageConverters = new ArrayList<HttpMessageConverter<?>>(); +// getMessageConverters.add(gsonConverter); + getMessageConverters.add(jacksonConverter); +// getMessageConverters.add(new StringHttpMessageConverter()); +// getMessageConverters.add(new ByteArrayHttpMessageConverter()); +// getMessageConverters.add(new ResourceHttpMessageConverter()); + GETRestTemplate.setMessageConverters(getMessageConverters); + GETRestTemplate.setErrorHandler(errorHandler); + + POSTRestTemplate = new RestTemplate(); + List<HttpMessageConverter<?>> postMessageConverters = new ArrayList<HttpMessageConverter<?>>(); + postMessageConverters.add(new FormHttpMessageConverter()); + postMessageConverters.add(new StringHttpMessageConverter()); +// postMessageConverters.add(gsonConverter); + postMessageConverters.add(jacksonConverter); + POSTRestTemplate.setMessageConverters(postMessageConverters); + POSTRestTemplate.setRequestFactory(new HttpComponentsClientHttpRequestFactory()); + POSTRestTemplate.setErrorHandler(errorHandler); + } + + public List<OneM2MApplication> getApplications() { + try { + List<OneM2MApplication> applications = new ArrayList<OneM2MApplication>(); + Uril uril = discovery(APP_TYPE, 2); + for (String appRi : uril.getUril()) { + // get application + OneM2MApplication application = getApplication(appRi); + applications.add(application); + } + return applications; + } catch (Exception e) { + Log.e(OneM2MConnector.class.getName(), e.getMessage(), e); + return new ArrayList<OneM2MApplication>(); + } + } + + public OneM2MApplication getApplication(String appRi) { + OneM2MApplication application = null; + try { + HttpEntity<?> requestEntity = new HttpEntity<Object>(requestHeaders); + String url = inCseBaseUrl + appRi; + UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(url); + builder.queryParam(RETURN_CONTENT, 4); + Response response = GETRestTemplate.exchange(builder.build().encode().toUri(), + HttpMethod.GET, requestEntity, Response.class).getBody(); + if (! response.getAny().isEmpty()) { + String key = response.getAny().keySet().iterator().next(); + Log.d(getClass().getName(), "key=" + key); + Object value = response.getAny().get(key); + application = jacksonConverter.getObjectMapper().convertValue(value, + OneM2MApplication.class); + + if (application.getContainers() != null) { + for (Container container :application.getContainers()) { + if (container.getRn().equals("ICON")) { + application.setIconUrl(getContent(container)); + } else if (container.getRn().equals("PRESENTATION_URL")) { + application.setPresentationUrl(getContent(container)); + } + } + } + } + } catch (Exception e) { + Log.e(OneM2MConnector.class.getName(), e.getMessage(), e); + } + return application; + } + + private final String getContent(final Container container) { + String ret = container.getCin().get(0).getCon(); + return ret.startsWith(HTTP) ? ret : serverBaseUrl + ret; + } + + public synchronized List<SDTDevice> getDevices() { + try { + // perform a discovery on SDT device FlexContainer + Uril uril = discovery(DEV_TYPE, 28); + for (String u: uril.getUril()) { + Log.i(getClass().getName(), u); + + // retrieve device if it is a new device + if (!checkDevice(u)) { + SDTDevice device = getDevice(u); + if (device != null) { + device.setMapRi(u); + addCurrentDevice(u, device); + } + } + } + + // perform discovery on announced SDT device FlexContainer + Uril announcedUril = discovery(DEV_TYPE, 10028); + for (String u: announcedUril.getUril()) { + Log.i(getClass().getName(), "announced resource=" + u); + if (!checkDevice(u)) { + FlexContainerAnnounced fca = getAnnouncedDevice(u); + if (fca != null) { + SDTDevice device = getDevice(fca.getLnk()); + if (device != null) { + device.setMapRi(u); + addCurrentDevice(u, device); + } + } + } + } + + // remove old devices + for (SDTDevice device : getCurrentDevices()) { + String mapRi = device.getMapRi(); + if ((! uril.getUril().contains(mapRi)) + && (! announcedUril.getUril().contains(mapRi))) { + removeCurrentDevice(device); + } + } + } catch (Exception e) { + Log.e(OneM2MConnector.class.getName(), e.getMessage(), e); + } + return getCurrentDevices(); + } + + public Map<String, List<SDTDevice>> getDevicesByTypes() { + Map<String, List<SDTDevice>> devicesByTypes = new HashMap<String, List<SDTDevice>>(); + try { + for (SDTDevice sdtDevice : getDevices()) { + String cnd = sdtDevice.getCnd(); + List<SDTDevice> sdtDevicesPerCndList = devicesByTypes.get(cnd); + if (sdtDevicesPerCndList == null) { + sdtDevicesPerCndList = new ArrayList<SDTDevice>(); + devicesByTypes.put(cnd, sdtDevicesPerCndList); + } + sdtDevicesPerCndList.add(sdtDevice); + } + } catch (Exception e) { + Log.e(OneM2MConnector.class.getName(), e.getMessage(), e); + } + return devicesByTypes; + } + + public boolean isConnectedWithInCse() { + try { + URL url = new URL(inCseUrl); + HttpURLConnection httpUrlConnection = (HttpURLConnection) url.openConnection(); + httpUrlConnection.setDoInput(true); + httpUrlConnection.setRequestMethod("GET"); + return httpUrlConnection.getResponseCode() != -1; + } catch (Exception e) { + return false; + } + } + + private Uril discovery(String label, Integer resourceType) { + HttpEntity<?> requestEntity = new HttpEntity<Object>(requestHeaders); + UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(inCseUrl); + builder.queryParam(FILTER, 1); + if (label != null) { + builder.queryParam(LABEL, label); + } + if (resourceType != null) { + builder.queryParam(TYPE, resourceType); + } + return GETRestTemplate.exchange(builder.build().encode().toUri(), + HttpMethod.GET, requestEntity, Uril.class).getBody(); + } + + public SDTDevice getDevice(String deviceRi) { + SDTDevice sdtDevice = null; + try { + HttpEntity<?> requestEntity = new HttpEntity<Object>(requestHeaders); + String url = inCseBaseUrl + deviceRi; + UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(url); + builder.queryParam(RETURN_CONTENT, 4); + Response response = GETRestTemplate.exchange(builder.build().encode().toUri(), + HttpMethod.GET, requestEntity, Response.class).getBody(); + if (response.getAny().isEmpty()) { + return null; + } + + String key = response.getAny().keySet().iterator().next(); + Log.d(getClass().getName(), "key=" + key); + sdtDevice = jacksonConverter.getObjectMapper().convertValue(response.getAny().get(key), + SDTDevice.class); + + for (String keyOther : sdtDevice.getOthers().keySet()) { + if (keyOther.startsWith("hd:")) { + // module + Object moduleValue = sdtDevice.getOthers().get(keyOther); + SDTModule sdtModule = jacksonConverter.getObjectMapper() + .convertValue(moduleValue, SDTModule.class); + sdtModule.setShortname(keyOther); + sdtDevice.addModule(sdtModule); + } + } + } catch (Exception e) { + Log.d(OneM2MConnector.class.getName(), "getDevice() failed : " + e.getMessage(), e); +// Toast.makeText(context, "getDevice " + e, Toast.LENGTH_LONG).show(); + } + return sdtDevice; + } + + private FlexContainerAnnounced getAnnouncedDevice(String announcedDeviceId) { + HttpEntity<?> requestEntity = new HttpEntity<Object>(requestHeaders); + String url = inCseBaseUrl + announcedDeviceId; + UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(url); + builder.queryParam(RETURN_CONTENT, 4); + Response response = GETRestTemplate.exchange(builder.build().encode().toUri(), + HttpMethod.GET, requestEntity, Response.class).getBody(); + if (response.getAny().isEmpty()) { + return null; + } + String key = response.getAny().keySet().iterator().next(); + Log.d(getClass().getName(), "key=" + key); + Object value = response.getAny().get(key); + return jacksonConverter.getObjectMapper().convertValue(value, + FlexContainerAnnounced.class); + } + + private void addCurrentDevice(String key, SDTDevice deviceToBeAdded) { + synchronized (currentDevices) { + currentDevices.put(key, deviceToBeAdded); + } + } + + private void removeCurrentDevice(SDTDevice deviceToBeRemoved) { + synchronized (currentDevices) { + currentDevices.values().remove(deviceToBeRemoved); + } + } + + private boolean checkDevice(String ri) { + synchronized (currentDevices) { + return currentDevices.containsKey(ri); + } + } + + private List<SDTDevice> getCurrentDevices() { + List<SDTDevice> toBeReturned = new ArrayList<SDTDevice>(); + synchronized (currentDevices) { + toBeReturned.addAll(currentDevices.values()); + } + return toBeReturned; + } + +}
diff --git a/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/cse/OneM2MListener.java b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/cse/OneM2MListener.java new file mode 100644 index 0000000..98ae972 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/cse/OneM2MListener.java
@@ -0,0 +1,24 @@ +/******************************************************************************* + * Copyright (c) 2013, 2017 Orange. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * BAREAU Cyrille <cyrille.bareau@orange.com>, + * BONNARDEL Gregory <gbonnardel.ext@orange.com>, + * BOLLE Sebastien <sebastien.bolle@orange.com>. + *******************************************************************************/ + +package org.eclipse.om2m.android.dashboard.cse; + +import org.eclipse.om2m.android.dashboard.cse.OneM2MRequest.OneM2MReqType; + +public interface OneM2MListener { + + public void onOneM2MResponse(OneM2MReqType requestType, Object response); + + public void onOneM2MError(OneM2MReqType requestType, String msg); + +}
diff --git a/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/cse/OneM2MRequest.java b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/cse/OneM2MRequest.java new file mode 100644 index 0000000..c6f6b5e --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/cse/OneM2MRequest.java
@@ -0,0 +1,95 @@ +/******************************************************************************* + * Copyright (c) 2013, 2017 Orange. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * BAREAU Cyrille <cyrille.bareau@orange.com>, + * BONNARDEL Gregory <gbonnardel.ext@orange.com>, + * BOLLE Sebastien <sebastien.bolle@orange.com>. + *******************************************************************************/ + +package org.eclipse.om2m.android.dashboard.cse; + +import java.util.HashMap; +import java.util.Map; + +import org.eclipse.om2m.android.dashboard.cse.requests.OneM2MRequestParams; + +import com.google.gson.Gson; + +import android.content.Context; +import android.os.AsyncTask; + +abstract public class OneM2MRequest<T> extends AsyncTask<Object, Void, T> { + + static public Map<OneM2MReqType, String> errors = new HashMap<OneM2MReqType, String>(); + + public enum OneM2MReqType { + DEVICES, + DEVICES_BY_TYPES, + DEVICE, + APPLICATIONS, + APPLICATION, + DEBUG, + INCSE_STATUS + } + + // ================================================================================ + + protected OneM2MReqType requestType; + protected OneM2MListener listener; + protected Context context; + protected String errorMessage; + + protected Map<OneM2MReqType, String> requestDebug = new HashMap<OneM2MReqType, String>(); + + // ================================================================================ + + protected OneM2MRequest(OneM2MReqType requestType, Context context, + OneM2MListener listener) { + this.requestType = requestType; + this.context = context; + this.listener = listener; + } + + // ================================================================================ + + @Override + protected T doInBackground(Object... args) { + requestDebug.clear(); + + OneM2MRequestParams param = null; + if ((args != null) && (args.length > 0)) + param = (OneM2MRequestParams) args[0]; + StringBuffer msg = new StringBuffer(); + if (param != null) + msg.append("(").append(param).append(")"); + try { + T resp = getResponse(param); + requestDebug.put(requestType, msg.append(new Gson().toJson(resp)).toString()); + return resp; + } catch (Exception e) { + errorMessage = e.getMessage(); + requestDebug.put(requestType, msg.insert(0, "ERROR " + errorMessage).toString()); + errors.put(requestType, msg.insert(0, "ERROR " + errorMessage).toString()); + return null; + } + } + + // Has to be implemented for each request type + abstract protected T getResponse(OneM2MRequestParams param); + + @Override + protected void onPostExecute(T result) { + super.onPostExecute(result); + if (result == null) { + listener.onOneM2MError(requestType, errorMessage); + } else { + listener.onOneM2MResponse(requestType, result); + } + } + +}
diff --git a/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/cse/OneM2MRequester.java b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/cse/OneM2MRequester.java new file mode 100644 index 0000000..109b3ca --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/cse/OneM2MRequester.java
@@ -0,0 +1,154 @@ +/******************************************************************************* + * Copyright (c) 2013, 2017 Orange. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * BAREAU Cyrille <cyrille.bareau@orange.com>, + * BONNARDEL Gregory <gbonnardel.ext@orange.com>, + * BOLLE Sebastien <sebastien.bolle@orange.com>. + *******************************************************************************/ + +package org.eclipse.om2m.android.dashboard.cse; + +import java.util.HashMap; +import java.util.Map; +import java.util.Timer; +import java.util.TimerTask; + +import org.eclipse.om2m.android.dashboard.cse.OneM2MRequest.OneM2MReqType; +import org.eclipse.om2m.android.dashboard.cse.requests.OneM2MGetApplicationRequest; +import org.eclipse.om2m.android.dashboard.cse.requests.OneM2MGetApplicationsRequest; +import org.eclipse.om2m.android.dashboard.cse.requests.OneM2MGetDeviceRequest; +import org.eclipse.om2m.android.dashboard.cse.requests.OneM2MGetDevicesRequest; +import org.eclipse.om2m.android.dashboard.cse.requests.OneM2MGetIncseStatusRequest; +import org.eclipse.om2m.android.dashboard.cse.requests.OneM2MRequestParams; + +import android.content.Context; + +public class OneM2MRequester { + + private static final OneM2MRequester INSTANCE = new OneM2MRequester(); + + private Map<String, Map<OneM2MReqType, Timer>> currentPollings = new HashMap<String, Map<OneM2MReqType,Timer>>(); + + public final static int DEFAULT_POLLING_DELAY = 15; + + // ================================================================================ + + abstract class PollingTask extends TimerTask { + protected OneM2MReqType requestType; + protected OneM2MRequestParams params = null; + protected Context context = null; + protected OneM2MListener listener = null; + + public PollingTask(OneM2MReqType requestType, OneM2MRequestParams params2, + Context context, OneM2MListener listener) { + this.requestType = requestType; + this.params = params2; + this.context = context; + this.listener = listener; + } + } + + // ================================================================================ + + private OneM2MRequester() { + if (INSTANCE != null) { + throw new IllegalStateException("Already instantiated"); + } + } + + public static OneM2MRequester getInstance() { + return INSTANCE; + } + + // ================================================================================ + + + public void sendRequest(OneM2MReqType requestType, OneM2MRequestParams params, + Context context, OneM2MListener listener) { + OneM2MRequest<?> request = null; + + switch(requestType) { + case DEVICES: + request = new OneM2MGetDevicesRequest(context, listener); + break; + case DEVICES_BY_TYPES: +// request = new OTBHabDevicesByTypesRequest(context, listener); + break; + case DEVICE: + request = new OneM2MGetDeviceRequest(context, listener); + break; + case APPLICATIONS: + request = new OneM2MGetApplicationsRequest(context, listener); + break; + case APPLICATION: + request = new OneM2MGetApplicationRequest(context, listener); + break; + case INCSE_STATUS: + request = new OneM2MGetIncseStatusRequest(context, listener); + break; + case DEBUG: +// request = new OTBHabDebugRequest(context, listener); + break; + } + + request.execute(params); + } + + public void sendPollingRequest(OneM2MReqType requestType, OneM2MRequestParams params, + Context context, OneM2MListener listener, int pollingDelay) { + // possible cases : + // 1- this caller have active polling => check if it is for the same request + // . yes => cancel current polling and this request and restart it with nex polling delay + // . no => create a new polling for this request + // 2- this caller does not have active polling => no checking & create polling + + // get caller class name (= identifier) + String callerName = new Throwable().getStackTrace()[1].getClassName(); + + Map<OneM2MReqType, Timer> pollingsForCaller = currentPollings.get(callerName); + if (pollingsForCaller == null) { + pollingsForCaller = new HashMap<OneM2MReqType, Timer>(); + currentPollings.put(callerName, pollingsForCaller); + } + + Timer pollingTimer = pollingsForCaller.get(requestType); + if (pollingTimer != null) { + // there is a polling for the same request => cancel current one + then create a new one (= restart) + pollingTimer.cancel(); + } + + pollingTimer = new Timer(); + pollingTimer.scheduleAtFixedRate( + new PollingTask(requestType, params, context, listener) { + @Override + public void run() { + sendRequest(requestType, params, context, listener); + } + }, + 0, + pollingDelay * 1000); + + // add/replace timer + pollingsForCaller.put(requestType, pollingTimer); + } + + public void cancelMyPollingRequests() { + // get caller class name (= identifier) + String callerName = new Throwable().getStackTrace()[1].getClassName(); + + Map<OneM2MReqType, Timer> pollingsForCaller = currentPollings.get(callerName); + if (pollingsForCaller != null) { + for (OneM2MReqType reqType : pollingsForCaller.keySet()) { + Timer pollingTimer = pollingsForCaller.get(reqType); + pollingTimer.cancel(); + } + } + currentPollings.remove(callerName); + } + +}
diff --git a/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/cse/models/Container.java b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/cse/models/Container.java new file mode 100644 index 0000000..25df8eb --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/cse/models/Container.java
@@ -0,0 +1,34 @@ +/******************************************************************************* + * Copyright (c) 2013, 2017 Orange. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * BAREAU Cyrille <cyrille.bareau@orange.com>, + * BONNARDEL Gregory <gbonnardel.ext@orange.com>, + * BOLLE Sebastien <sebastien.bolle@orange.com>. + *******************************************************************************/ +package org.eclipse.om2m.android.dashboard.cse.models; + +import java.util.List; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; + +@JsonIgnoreProperties(ignoreUnknown=true) +public class Container extends Resource { + + @JsonProperty("m2m:cin") + private List<ContentInstance> cin; + + public List<ContentInstance> getCin() { + return cin; + } + + public void setCin(List<ContentInstance> cin) { + this.cin = cin; + } + +}
diff --git a/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/cse/models/ContentInstance.java b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/cse/models/ContentInstance.java new file mode 100644 index 0000000..a26a3dd --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/cse/models/ContentInstance.java
@@ -0,0 +1,30 @@ +/******************************************************************************* + * Copyright (c) 2013, 2017 Orange. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * BAREAU Cyrille <cyrille.bareau@orange.com>, + * BONNARDEL Gregory <gbonnardel.ext@orange.com>, + * BOLLE Sebastien <sebastien.bolle@orange.com>. + *******************************************************************************/ +package org.eclipse.om2m.android.dashboard.cse.models; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; + +@JsonIgnoreProperties(ignoreUnknown=true) +public class ContentInstance { + + private String con; + + public String getCon() { + return con; + } + + public void setCon(String con) { + this.con = con; + } + +}
diff --git a/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/cse/models/DatapointType.java b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/cse/models/DatapointType.java new file mode 100644 index 0000000..372e045 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/cse/models/DatapointType.java
@@ -0,0 +1,171 @@ +/******************************************************************************* + * Copyright (c) 2014, 2017 Orange. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + *******************************************************************************/ +package org.eclipse.om2m.android.dashboard.cse.models; + +public enum DatapointType { + + absoluteEnergyConsumption("absoluteEnergyConsumption", "abECn"), + absoluteStartTime("absoluteStartTime", "abSTe"), + absoluteStopTime("absoluteStopTime", "abST0"), + alarm("alarm", "alarm"), + alarmStatus("alarmStatus", "alaSs"), + availableChannels("availableChannels", "avaCs"), + bath("bath", "bath"), + batteryThreshold("batteryThreshold", "batTd"), + blue("blue", "blue"), + bone("bone", "bone"), + brightness("brightness", "brigs"), + capacity("capacity", "capay"), + channelId("channelId", "chaId"), + charging("charging", "charg"), + code("code", "code"), + colourSat("colourSat", "colSn"), + current("current", "currt"), + currentDate("currentDate", "curDe"), + currentTemperature("currentTemperature", "curT0"), + currentTime("currentTime", "curTe"), + defrost("defrost", "defrt"), + description("description", "descn"), + desiredHumidity("desiredHumidity", "desHy"), + detectedTime("detectedTime", "detTe"), + diastolicPressure("diastolicPressure", "diaPe"), + directionAuto("directionAuto", "dirAo"), + directionDown("directionDown", "dirDn"), + directionLeft("directionLeft", "dirLt"), + directionRight("directionRight", "dirRt"), + directionUp("directionUp", "dirUp"), + discharging("discharging", "discg"), + doorState("doorState", "dooSt"), + duration("duration", "duran"), + estimatedTimeToEnd("estimatedTimeToEnd", "eTTEd"), + fat("fat", "fat"), + filterLifetime("filterLifetime", "filLe"), + frequency("frequency", "freqy"), + green("green", "green"), + height("height", "heigt"), + inputSourceID("inputSourceID", "inSId"), + kcal("kcal", "kcal"), + keyNumber("keyNumber", "keyNr"), + level("level", "level"), + light("light", "light"), + liquidLevel("liquidLevel", "liqLv"), + lowBattery("lowBattery", "lowBy"), + lqi("lqi", "lqi"), + maxValue("maxValue", "maxVe"), + minValue("minValue", "minVe"), + multiplyingFactors("multiplyingFactors", "mulFs"), + muscle("muscle", "musce"), + muteEnabled("muteEnabled", "mutEd"), + openAlarm("openAlarm", "opeAm"), + openDuration("openDuration", "opeDn"), + operationMode("operationMode", "opeMe"), + oxygenSaturation("oxygenSaturation", "oxySn"), + power("power", "power"), + powerGenerationData("powerGenerationData", "poGDa"), + powerSaveEnabled("powerSaveEnabled", "poSEd"), + powerState("powerState", "powSe"), + previousChannel("previousChannel", "preCl"), + pulseRate("pulseRate", "pulRe"), + pushed("pushed", "pusBn"), + rapidCool("rapidCool", "rapCl"), + rapidFreeze("rapidFreeze", "rapFe"), + red("red", "red"), + referenceTimer("referenceTimer", "refTr"), + relativeHumidity("relativeHumidity", "relHy"), + resistance("resistance", "resie"), + rinseLevel("rinseLevel", "rinLl"), + roundingEnergyConsumption("roundingEnergyConsumption", "roECn"), + roundingEnergyGeneration("roundingEnergyGeneration", "roEGn"), + rssi("rssi", "rssi"), + runningTime("runningTime", "runTe"), + sensitivity("sensitivity", "sensy"), + significantDigits("significantDigits", "sigDs"), + silentTime("silentTime", "silTe"), + status("status", "stats"), + stepValue("stepValue", "steVe"), + strength("strength", "streh"), + supportedInputSources("supportedInputSources", "suISs"), + supportedModes("supportedModes", "supMs"), + systolicPressure("systolicPressure", "sysPe"), + targetDuration("targetDuration", "tarDn"), + targetTemperature("targetTemperature", "tarTe"), + targetTimeToStart("targetTimeToStart", "tTTSt"), + targetTimeToStop("targetTimeToStop", "tTTSp"), + temperature("temperature", "tempe"), + temperatureThreshhold("temperatureThreshhold", "temTd"), + tone("tone", "tone"), + turboEnabled("turboEnabled", "turEd"), + unit("unit", "unit"), + visceraFat("visceraFat", "visFt"), + voltage("voltage", "volte"), + volumePercentage("volumePercentage", "volPe"), + water("water", "water"), + weight("weight", "weigt"), + + atmosphericPressure("atmosphericPressure", "atmPe"), + carbonDioxideValue("carbonDioxideValue", "cDeVe"), + coarseness("coarseness", "coass"), + cupsNumber("cupsNumber", "cupsN"), + currentJobState("currentJobState", "curJS"), + currentMachineState("currentMachineState", "curMS"), + detectedPersons("detectedPersons", "detPs"), + doorLock("doorLock", "dooLk"), + foamingStrength("foamingStrength", "foaSt"), + format("format", "frmt"), + jobStates("jobStates", "jobSt"), + login("login", "login"), + machineStates("machineStates", "mchSt"), + noise("noise", "noise"), + password("password", "psWd"), + progressPercentage("progressPercentage", "prgPc"), + url("url", "url"), + useGrinder("useGrinder", "useGr"), + + undefinedVendorExt("undefinedVendorExt", "undef"); + + private final String longDefinitionName; + private final String shortDefinitionName; + + DatapointType(String longDef, String shortDef) { + longDefinitionName = longDef; + shortDefinitionName = shortDef; + } + + /** + * @return the longDefinitionName + */ + public String getLongName() { + return longDefinitionName; + } + + /** + * @return the shortDefinitionName + */ + public String getShortName() { + return shortDefinitionName; + } + + public static DatapointType fromLongName(String def) { + for (DatapointType c: DatapointType.values()) { + if (c.longDefinitionName.equals(def)) { + return c; + } + } + return null; + } + + public static DatapointType fromShortName(String def) { + for (DatapointType c: DatapointType.values()) { + if (c.shortDefinitionName.equals(def)) { + return c; + } + } + return null; + } + +}
diff --git a/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/cse/models/FlexContainer.java b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/cse/models/FlexContainer.java new file mode 100644 index 0000000..4e444a4 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/cse/models/FlexContainer.java
@@ -0,0 +1,83 @@ +/******************************************************************************* + * Copyright (c) 2013, 2017 Orange. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * BAREAU Cyrille <cyrille.bareau@orange.com>, + * BONNARDEL Gregory <gbonnardel.ext@orange.com>, + * BOLLE Sebastien <sebastien.bolle@orange.com>. + *******************************************************************************/ +package org.eclipse.om2m.android.dashboard.cse.models; + +import java.util.List; + +public abstract class FlexContainer extends Resource { + + private Integer ty; + private String pi; + private String ct; + private String lt; + private List<String> lbl; + private String et; + private String cnd; + + public Integer getTy() { + return ty; + } + public void setTy(Integer ty) { + + this.ty = ty; + } + + public String getPi() { + return pi; + } + + public void setPi(String pi) { + this.pi = pi; + } + + public String getCt() { + return ct; + } + + public void setCt(String ct) { + this.ct = ct; + } + + public String getLt() { + return lt; + } + + public void setLt(String lt) { + this.lt = lt; + } + + public List<String> getLbl() { + return lbl; + } + + public void setLbl(List<String> lbl) { + this.lbl = lbl; + } + + public String getEt() { + return et; + } + + public void setEt(String et) { + this.et = et; + } + + public String getCnd() { + return cnd; + } + + public void setCnd(String cnd) { + this.cnd = cnd; + } + +}
diff --git a/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/cse/models/FlexContainerAnnounced.java b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/cse/models/FlexContainerAnnounced.java new file mode 100644 index 0000000..744774a --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/cse/models/FlexContainerAnnounced.java
@@ -0,0 +1,30 @@ +/******************************************************************************* + * Copyright (c) 2013, 2017 Orange. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * BAREAU Cyrille <cyrille.bareau@orange.com>, + * BONNARDEL Gregory <gbonnardel.ext@orange.com>, + * BOLLE Sebastien <sebastien.bolle@orange.com>. + *******************************************************************************/ +package org.eclipse.om2m.android.dashboard.cse.models; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; + +@JsonIgnoreProperties(ignoreUnknown=true) +public class FlexContainerAnnounced extends FlexContainer { + + private String lnk; + + public String getLnk() { + return lnk; + } + + public void setLnk(String lnk) { + this.lnk = lnk; + } + +}
diff --git a/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/cse/models/OneM2MApplication.java b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/cse/models/OneM2MApplication.java new file mode 100644 index 0000000..c2c474e --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/cse/models/OneM2MApplication.java
@@ -0,0 +1,66 @@ +/******************************************************************************* + * Copyright (c) 2013, 2017 Orange. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * BAREAU Cyrille <cyrille.bareau@orange.com>, + * BONNARDEL Gregory <gbonnardel.ext@orange.com>, + * BOLLE Sebastien <sebastien.bolle@orange.com>. + *******************************************************************************/ +package org.eclipse.om2m.android.dashboard.cse.models; + +import java.util.List; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; + +@JsonIgnoreProperties(ignoreUnknown=true) +public class OneM2MApplication extends Resource { + + private String apn; + private String iconUrl; + private String presentationUrl; + + @JsonProperty("m2m:cnt") + private List<Container> containers; + + public OneM2MApplication() { + } + + + public String getIconUrl() { + return iconUrl; + } + + public void setIconUrl(String iconUrl) { + this.iconUrl = iconUrl; + } + + public String getPresentationUrl() { + return presentationUrl; + } + + public void setPresentationUrl(String presentationUrl) { + this.presentationUrl = presentationUrl; + } + + public String getApn() { + return apn; + } + + public void setApn(String apn) { + this.apn = apn; + } + + public List<Container> getContainers() { + return containers; + } + + public void setContainers(List<Container> containers) { + this.containers = containers; + } + +}
diff --git a/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/cse/models/Resource.java b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/cse/models/Resource.java new file mode 100644 index 0000000..94550b8 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/cse/models/Resource.java
@@ -0,0 +1,39 @@ +/******************************************************************************* + * Copyright (c) 2013, 2017 Orange. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * BAREAU Cyrille <cyrille.bareau@orange.com>, + * BONNARDEL Gregory <gbonnardel.ext@orange.com>, + * BOLLE Sebastien <sebastien.bolle@orange.com>. + *******************************************************************************/ +package org.eclipse.om2m.android.dashboard.cse.models; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; + +@JsonIgnoreProperties(ignoreUnknown=true) +public class Resource { + + protected String rn; + protected String ri; + + public String getRi() { + return ri; + } + + public void setRi(String ri) { + this.ri = ri; + } + + public String getRn() { + return rn; + } + + public void setRn(String rn) { + this.rn = rn; + } + +}
diff --git a/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/cse/models/Response.java b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/cse/models/Response.java new file mode 100644 index 0000000..c6be884 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/cse/models/Response.java
@@ -0,0 +1,44 @@ +/******************************************************************************* + * Copyright (c) 2013, 2017 Orange. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * BAREAU Cyrille <cyrille.bareau@orange.com>, + * BONNARDEL Gregory <gbonnardel.ext@orange.com>, + * BOLLE Sebastien <sebastien.bolle@orange.com>. + *******************************************************************************/ +package org.eclipse.om2m.android.dashboard.cse.models; + +import java.util.HashMap; +import java.util.Map; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; + +public class Response { + +// private SDTDevice sdtDevice; + private Map<String, Object> any = new HashMap<String, Object>(); + +// public SDTDevice getSdtDevice() { +// return sdtDevice; +// } +// +// public void setSdtDevice(SDTDevice sdtDevice) { +// this.sdtDevice = sdtDevice; +// } + + @JsonAnyGetter + public Map<String, Object> getAny() { + return any; + } + + @JsonAnySetter + public void setAny(String name, Object value) { + any.put(name, value); + } + +}
diff --git a/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/cse/models/SDTDevice.java b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/cse/models/SDTDevice.java new file mode 100644 index 0000000..8caf701 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/cse/models/SDTDevice.java
@@ -0,0 +1,127 @@ +/******************************************************************************* + * Copyright (c) 2013, 2017 Orange. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * BAREAU Cyrille <cyrille.bareau@orange.com>, + * BONNARDEL Gregory <gbonnardel.ext@orange.com>, + * BOLLE Sebastien <sebastien.bolle@orange.com>. + *******************************************************************************/ +package org.eclipse.om2m.android.dashboard.cse.models; + +import java.util.HashMap; +import java.util.Map; + +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; + +@JsonIgnoreProperties(ignoreUnknown=true) +public class SDTDevice extends FlexContainer { + + @JsonProperty("pDSNm") + private String serialNumber; + + @JsonProperty("prDNe") + private String deviceName; + + @JsonProperty("pDANe") + private String deviceAliasName; + + @JsonProperty("prDMr") + private String manufacturer; + + @JsonProperty("pDMNe") + private Object model; + + @JsonProperty("prDTe") + private String type; + +// private String description; + + @JsonProperty("proLn") + private String location; + + @JsonProperty("proPl") + private String protocol; + + private String mapRi; + + private Map<String, Object> others; + + private final Map<String, SDTModule> modules; + + + public SDTDevice(final String pRi, final String pCnd) { + this(); + setRi(pRi); + setCnd(pCnd); + } + + public SDTDevice() { + this.modules = new HashMap<String, SDTModule>(); + this.others = new HashMap<String, Object>(); + } + + + public String getManufacturer() { + return manufacturer; + } + + public Object getModel() { + return model; + } + + public String getType() { + return type; + } + + public String getLocation() { + return location; + } + + public String getProtocol() { + return protocol; + } + + public Map<String, SDTModule> getModules() { + return modules; + } + + public void addModule(SDTModule sdtModule) { + this.modules.put(sdtModule.getShortname(), sdtModule); + } + + public String getSerialNumber() { + return serialNumber; + } + + public String getDeviceName() { + return deviceName; + } + + public Map<String, Object> getOthers() { + return others; + } + + @JsonAnySetter + public void setOther(String name, Object value) { + others.put(name, value); + } + + public String getDeviceAliasName() { + return deviceAliasName; + } + + public String getMapRi() { + return mapRi; + } + + public void setMapRi(String mapRi) { + this.mapRi = mapRi; + } + +}
diff --git a/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/cse/models/SDTModule.java b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/cse/models/SDTModule.java new file mode 100644 index 0000000..056dd14 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/cse/models/SDTModule.java
@@ -0,0 +1,51 @@ +/******************************************************************************* + * Copyright (c) 2013, 2017 Orange. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * BAREAU Cyrille <cyrille.bareau@orange.com>, + * BONNARDEL Gregory <gbonnardel.ext@orange.com>, + * BOLLE Sebastien <sebastien.bolle@orange.com>. + *******************************************************************************/ +package org.eclipse.om2m.android.dashboard.cse.models; + +import java.util.HashMap; +import java.util.Map; + +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; + +@JsonIgnoreProperties(ignoreUnknown=true) +public class SDTModule extends FlexContainer { + + private String shortname; + private final Map<String, Object> datapoints; + + public SDTModule() { + datapoints = new HashMap<String, Object>(); + } + + + public Map<String, Object> getDatapoints() { + return datapoints; + } + + @JsonAnySetter + public void setDataPoint(String name, Object value) { + DatapointType type = DatapointType.fromShortName(name); + if (type != null) + datapoints.put(type.getLongName(), value); + } + + public String getShortname() { + return shortname; + } + + public void setShortname(String shortname) { + this.shortname = shortname; + } + +}
diff --git a/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/cse/models/Uril.java b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/cse/models/Uril.java new file mode 100644 index 0000000..448c3e9 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/cse/models/Uril.java
@@ -0,0 +1,32 @@ +/******************************************************************************* + * Copyright (c) 2013, 2017 Orange. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * BAREAU Cyrille <cyrille.bareau@orange.com>, + * BONNARDEL Gregory <gbonnardel.ext@orange.com>, + * BOLLE Sebastien <sebastien.bolle@orange.com>. + *******************************************************************************/ +package org.eclipse.om2m.android.dashboard.cse.models; + +import java.util.List; + +import com.fasterxml.jackson.annotation.JsonProperty; + +public class Uril { + + @JsonProperty("m2m:uril") + private List<String> uril; + + public List<String> getUril() { + return uril; + } + + public void setUril(List<String> uril) { + this.uril = uril; + } + +}
diff --git a/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/cse/requests/OneM2MGetApplicationRequest.java b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/cse/requests/OneM2MGetApplicationRequest.java new file mode 100644 index 0000000..6bb45f7 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/cse/requests/OneM2MGetApplicationRequest.java
@@ -0,0 +1,35 @@ +/******************************************************************************* + * Copyright (c) 2013, 2017 Orange. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * BAREAU Cyrille <cyrille.bareau@orange.com>, + * BONNARDEL Gregory <gbonnardel.ext@orange.com>, + * BOLLE Sebastien <sebastien.bolle@orange.com>. + *******************************************************************************/ +package org.eclipse.om2m.android.dashboard.cse.requests; + +import org.eclipse.om2m.android.dashboard.cse.OneM2MConnector; +import org.eclipse.om2m.android.dashboard.cse.OneM2MListener; +import org.eclipse.om2m.android.dashboard.cse.OneM2MRequest; +import org.eclipse.om2m.android.dashboard.cse.models.OneM2MApplication; + +import android.content.Context; + +public class OneM2MGetApplicationRequest extends OneM2MRequest<OneM2MApplication> { + + public OneM2MGetApplicationRequest(Context context, OneM2MListener listener) { + super(OneM2MReqType.APPLICATION, context, listener); + } + + @Override + protected OneM2MApplication getResponse(OneM2MRequestParams param) { + OneM2MApplication application = OneM2MConnector.getInstance(context).getApplication(param.getArg1()); + return application; + } + + +}
diff --git a/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/cse/requests/OneM2MGetApplicationsRequest.java b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/cse/requests/OneM2MGetApplicationsRequest.java new file mode 100644 index 0000000..3164893 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/cse/requests/OneM2MGetApplicationsRequest.java
@@ -0,0 +1,36 @@ +/******************************************************************************* + * Copyright (c) 2013, 2017 Orange. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * BAREAU Cyrille <cyrille.bareau@orange.com>, + * BONNARDEL Gregory <gbonnardel.ext@orange.com>, + * BOLLE Sebastien <sebastien.bolle@orange.com>. + *******************************************************************************/ +package org.eclipse.om2m.android.dashboard.cse.requests; + +import java.util.List; + +import org.eclipse.om2m.android.dashboard.cse.OneM2MConnector; +import org.eclipse.om2m.android.dashboard.cse.OneM2MListener; +import org.eclipse.om2m.android.dashboard.cse.OneM2MRequest; +import org.eclipse.om2m.android.dashboard.cse.models.OneM2MApplication; + +import android.content.Context; + +public class OneM2MGetApplicationsRequest extends OneM2MRequest<List<OneM2MApplication>> { + + public OneM2MGetApplicationsRequest(Context context, OneM2MListener listener) { + super(OneM2MReqType.APPLICATIONS, context, listener); + } + + @Override + protected List<OneM2MApplication> getResponse(OneM2MRequestParams param) { + return OneM2MConnector.getInstance(context).getApplications(); + } + + +}
diff --git a/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/cse/requests/OneM2MGetDeviceRequest.java b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/cse/requests/OneM2MGetDeviceRequest.java new file mode 100644 index 0000000..c13134f --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/cse/requests/OneM2MGetDeviceRequest.java
@@ -0,0 +1,34 @@ +/******************************************************************************* + * Copyright (c) 2013, 2017 Orange. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * BAREAU Cyrille <cyrille.bareau@orange.com>, + * BONNARDEL Gregory <gbonnardel.ext@orange.com>, + * BOLLE Sebastien <sebastien.bolle@orange.com>. + *******************************************************************************/ +package org.eclipse.om2m.android.dashboard.cse.requests; + + +import org.eclipse.om2m.android.dashboard.cse.OneM2MConnector; +import org.eclipse.om2m.android.dashboard.cse.OneM2MListener; +import org.eclipse.om2m.android.dashboard.cse.OneM2MRequest; +import org.eclipse.om2m.android.dashboard.cse.models.SDTDevice; + +import android.content.Context; + +public class OneM2MGetDeviceRequest extends OneM2MRequest<SDTDevice> { + + public OneM2MGetDeviceRequest(Context context, OneM2MListener listener) { + super(OneM2MReqType.DEVICE, context, listener); + } + + @Override + protected SDTDevice getResponse(OneM2MRequestParams param) { + return OneM2MConnector.getInstance(context).getDevice(param.getArg1()); + } + +}
diff --git a/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/cse/requests/OneM2MGetDevicesRequest.java b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/cse/requests/OneM2MGetDevicesRequest.java new file mode 100644 index 0000000..292a104 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/cse/requests/OneM2MGetDevicesRequest.java
@@ -0,0 +1,35 @@ +/******************************************************************************* + * Copyright (c) 2013, 2017 Orange. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * BAREAU Cyrille <cyrille.bareau@orange.com>, + * BONNARDEL Gregory <gbonnardel.ext@orange.com>, + * BOLLE Sebastien <sebastien.bolle@orange.com>. + *******************************************************************************/ +package org.eclipse.om2m.android.dashboard.cse.requests; + +import java.util.List; + +import org.eclipse.om2m.android.dashboard.cse.OneM2MConnector; +import org.eclipse.om2m.android.dashboard.cse.OneM2MListener; +import org.eclipse.om2m.android.dashboard.cse.OneM2MRequest; +import org.eclipse.om2m.android.dashboard.cse.models.SDTDevice; + +import android.content.Context; + +public class OneM2MGetDevicesRequest extends OneM2MRequest<List<SDTDevice>> { + + public OneM2MGetDevicesRequest(Context context, OneM2MListener listener) { + super(OneM2MReqType.DEVICES, context, listener); + } + + @Override + protected List<SDTDevice> getResponse(OneM2MRequestParams param) { + return OneM2MConnector.getInstance(context).getDevices(); + } + +}
diff --git a/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/cse/requests/OneM2MGetIncseStatusRequest.java b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/cse/requests/OneM2MGetIncseStatusRequest.java new file mode 100644 index 0000000..0ea0e2f --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/cse/requests/OneM2MGetIncseStatusRequest.java
@@ -0,0 +1,32 @@ +/******************************************************************************* + * Copyright (c) 2013, 2017 Orange. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * BAREAU Cyrille <cyrille.bareau@orange.com>, + * BONNARDEL Gregory <gbonnardel.ext@orange.com>, + * BOLLE Sebastien <sebastien.bolle@orange.com>. + *******************************************************************************/ +package org.eclipse.om2m.android.dashboard.cse.requests; + +import org.eclipse.om2m.android.dashboard.cse.OneM2MConnector; +import org.eclipse.om2m.android.dashboard.cse.OneM2MListener; +import org.eclipse.om2m.android.dashboard.cse.OneM2MRequest; + +import android.content.Context; + +public class OneM2MGetIncseStatusRequest extends OneM2MRequest<Boolean> { + + public OneM2MGetIncseStatusRequest(Context context, OneM2MListener listener) { + super(OneM2MReqType.INCSE_STATUS, context, listener); + } + + @Override + protected Boolean getResponse(OneM2MRequestParams param) { + return OneM2MConnector.getInstance(context).isConnectedWithInCse(); + } + +}
diff --git a/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/cse/requests/OneM2MRequestParams.java b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/cse/requests/OneM2MRequestParams.java new file mode 100644 index 0000000..f450370 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/cse/requests/OneM2MRequestParams.java
@@ -0,0 +1,42 @@ +/******************************************************************************* + * Copyright (c) 2013, 2017 Orange. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * BAREAU Cyrille <cyrille.bareau@orange.com>, + * BONNARDEL Gregory <gbonnardel.ext@orange.com>, + * BOLLE Sebastien <sebastien.bolle@orange.com>. + *******************************************************************************/ +package org.eclipse.om2m.android.dashboard.cse.requests; + +public class OneM2MRequestParams { + + private String arg1; + private String arg2; + + public OneM2MRequestParams(final String arg1) { + this.arg1 = arg1; + } + + public OneM2MRequestParams(final String arg1, final String arg2) { + this.arg1 = arg1; + this.arg2 = arg2; + } + + public String getArg1() { + return arg1; + } + + public String getArg2() { + return arg2; + } + + @Override + public String toString() { + return arg1 + ":" + arg2; + } + +}
diff --git a/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/devices/DeviceDetailsActivity.java b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/devices/DeviceDetailsActivity.java new file mode 100644 index 0000000..d4e13d0 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/devices/DeviceDetailsActivity.java
@@ -0,0 +1,280 @@ +/******************************************************************************* + * Copyright (c) 2013, 2017 Orange. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * BAREAU Cyrille <cyrille.bareau@orange.com>, + * BONNARDEL Gregory <gbonnardel.ext@orange.com>, + * BOLLE Sebastien <sebastien.bolle@orange.com>. + *******************************************************************************/ +package org.eclipse.om2m.android.dashboard.devices; + +import java.util.Locale; +import java.util.Map; + +import org.eclipse.om2m.android.dashboard.CustomSecondaryActivity; +import org.eclipse.om2m.android.dashboard.cse.OneM2MListener; +import org.eclipse.om2m.android.dashboard.cse.OneM2MRequester; +import org.eclipse.om2m.android.dashboard.cse.OneM2MRequest.OneM2MReqType; +import org.eclipse.om2m.android.dashboard.cse.models.SDTDevice; +import org.eclipse.om2m.android.dashboard.cse.models.SDTModule; +import org.eclipse.om2m.android.dashboard.cse.requests.OneM2MRequestParams; +import org.eclipse.om2m.android.dashboard.tools.SettingsManager; +import org.eclipse.om2m.android.dashboard.utils.OTBUtils; + +import org.eclipse.om2m.android.dashboard.R; + +import android.content.DialogInterface; +import android.content.res.Configuration; +import android.content.res.Resources; +import android.os.Bundle; +import android.view.MenuItem; +import android.view.View; +import android.view.View.OnClickListener; +import android.widget.LinearLayout; +import android.widget.LinearLayout.LayoutParams; +import android.widget.TextView; +import android.widget.Toast; + +public class DeviceDetailsActivity extends CustomSecondaryActivity + implements OnClickListener, DialogInterface.OnClickListener, OneM2MListener { + + private TextView tvDeviceDetailsTitle; + private TextView tvDeviceDetailsModel; + private TextView tvDeviceDetailsProtocol; + private TextView tvDeviceDetailsCnd; + private TextView tvDeviceDetailsManufacturer; + private TextView tvDeviceDetailsLocation; + private TextView tvDeviceDetailsSerialNumber; + private TextView tvDeviceDetailsDeviceName; + + private LinearLayout llDevDetailsModules; + private LinearLayout llDeviceDetailsModel; + private LinearLayout llDeviceDetailsLocation; + + private SDTDevice device; + private String deviceRi; + +// private String newLocation; + + // ===================================================================================== + // Lifecycle + // ===================================================================================== + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + Bundle extras = getIntent().getExtras(); + if (extras != null) { + deviceRi = extras.getString("deviceRi"); + } + } + + // || + // || + // || + // \/ + + @Override + protected void onStart() { + super.onStart(); + } + + // || + // || + // || + // \/ + + @Override + protected void onResume() { + super.onResume(); + + String language = SettingsManager.getInstance(this).getLanguage(); + Resources res = getApplication().getResources(); + Configuration config = res.getConfiguration(); + config.locale = new Locale(language); + res.updateConfiguration(config, null); + + setContentView(R.layout.device_details_activity); + + tvDeviceDetailsSerialNumber = (TextView) findViewById(R.id.tv_device_details_serialNumber); + tvDeviceDetailsDeviceName = (TextView) findViewById(R.id.tv_device_details_deviceName); + tvDeviceDetailsTitle = (TextView)findViewById(R.id.tv_device_details_title); + tvDeviceDetailsModel = (TextView)findViewById(R.id.tv_device_details_model); + tvDeviceDetailsProtocol = (TextView)findViewById(R.id.tv_device_details_protocol); + tvDeviceDetailsManufacturer = (TextView)findViewById(R.id.tv_device_details_manufacturer); + tvDeviceDetailsCnd = (TextView) findViewById(R.id.tv_device_details_cnd); + tvDeviceDetailsLocation = (TextView)findViewById(R.id.tv_device_details_location); + llDevDetailsModules = (LinearLayout) findViewById(R.id.ll_device_details_modules); + llDeviceDetailsModel = (LinearLayout) findViewById(R.id.ll_device_details_model); + llDeviceDetailsLocation = (LinearLayout) findViewById(R.id.ll_device_details_location); + + + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + if (deviceRi != null) { + OneM2MRequester.getInstance().sendRequest(OneM2MReqType.DEVICE, + new OneM2MRequestParams(deviceRi), + getApplicationContext(), this); + // Retrieve the current rights + } + } + + // || + // || + // || + // \/ + + @Override + protected void onPause() { + super.onPause(); + } + + // || + // || + // || + // \/ + + @Override + protected void onStop() { + super.onStop(); + } + + // || + // || + // || + // \/ + + @Override + protected void onDestroy() { + super.onDestroy(); + } + + + // ===================================================================================== + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + super.onOptionsItemSelected(item); + switch(item.getItemId()) { + case R.id.menu_help: + if (SettingsManager.getInstance(this).isWizardDeviceDetailsActivated()) { + SettingsManager.getInstance(this).setWizardDeviceDetails(false); + } else { + SettingsManager.getInstance(this).setWizardDeviceDetails(true); + } + break; + } + return true; + } + + + + // ===================================================================================== + // User actions + // ===================================================================================== + + @Override + public void onClick(View v) { +// Button btnClicked = (Button)v; +// if (btnClicked == btnLocation) { +// if (etDeviceDetailsLocation.isActivated()) { +// newLocation = etDeviceDetailsLocation.getText().toString(); +// } else { +// etDeviceDetailsLocation.setActivated(true); +// etDeviceDetailsLocation.setVisibility(View.VISIBLE); +// etDeviceDetailsLocation.setText(device.getLocation()); +// btnLocation.setText(getResources().getString(R.string.dialog_btn_ok)); +// } +// } + } + + @Override + public void onClick(DialogInterface dialog, int which) { +// if (which == DialogInterface.BUTTON_POSITIVE) { +// // send update +// for (String appId : appIdsToSet) { +// OTBHabRequestParam_PostPermissionsUpdate params = new OTBHabRequestParam_PostPermissionsUpdate(appId); +// params.setDeviceIdsToSet(Collections.singletonList(this.deviceId)); +// } +// +// for (String appId : appIdsToRemove) { +// OTBHabRequestParam_PostPermissionsUpdate params = new OTBHabRequestParam_PostPermissionsUpdate(appId); +// params.setDeviceIdsToRemove(Collections.singletonList(this.deviceId)); +// } +// } + } + + // ===================================================================================== + // CSE listener + // ===================================================================================== + + @Override + public void onOneM2MResponse(OneM2MReqType requestType, Object response) { + if (requestType == OneM2MReqType.DEVICE) { + device = (SDTDevice)response; + tvDeviceDetailsTitle.setText(device.getDeviceAliasName()); + String m = null; + Object model = device.getModel(); + if (model != null) { + if (model instanceof Map<?,?>) { + if (! ((Map<?,?>)model).isEmpty()) { + m = model.toString(); + } + } else { + m = model.toString(); + } + } + if (OTBUtils.isEmpty(m)) + ((LinearLayout)llDeviceDetailsModel.getParent()).removeView(llDeviceDetailsModel); + else + tvDeviceDetailsModel.setText(m); + + tvDeviceDetailsProtocol.setText(device.getProtocol()); + tvDeviceDetailsCnd.setText(device.getCnd()); + tvDeviceDetailsManufacturer.setText(device.getManufacturer()); + tvDeviceDetailsSerialNumber.setText(device.getSerialNumber()); + tvDeviceDetailsDeviceName.setText(OTBUtils.isEmpty(device.getDeviceName()) + ? device.getRn() : device.getDeviceName()); + + String location = device.getLocation(); + if (OTBUtils.isEmpty(location)) + ((LinearLayout)llDeviceDetailsLocation.getParent()).removeView(llDeviceDetailsLocation); + else + tvDeviceDetailsLocation.setText(location); + + for (SDTModule module : device.getModules().values()) { + LinearLayout ll = new LinearLayout(this); + ll.setOrientation(LinearLayout.HORIZONTAL); + LinearLayout.LayoutParams linearParams = new LinearLayout.LayoutParams( + LayoutParams.WRAP_CONTENT, + LayoutParams.WRAP_CONTENT); + ll.setLayoutParams(linearParams); + + TextView moduleTv = new TextView(this); + String dps = null; + for (Map.Entry<String, Object> entry : module.getDatapoints().entrySet()) { + if (dps == null) dps = " ("; + else dps += ", "; + dps += entry.getKey() + "=" + entry.getValue(); + } + dps += ")"; + moduleTv.setText(module.getCnd() + dps); + moduleTv.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, + LayoutParams.WRAP_CONTENT)); + ll.addView(moduleTv); + llDevDetailsModules.addView(ll); + } + } + } + + @Override + public void onOneM2MError(OneM2MReqType requestType, String msg) { + Toast.makeText(this, "getDevice " + msg, Toast.LENGTH_LONG).show(); + } + +}
diff --git a/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/devices/DeviceSimpleView.java b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/devices/DeviceSimpleView.java new file mode 100644 index 0000000..e0ef17c --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/devices/DeviceSimpleView.java
@@ -0,0 +1,111 @@ +/******************************************************************************* + * Copyright (c) 2013, 2017 Orange. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * BAREAU Cyrille <cyrille.bareau@orange.com>, + * BONNARDEL Gregory <gbonnardel.ext@orange.com>, + * BOLLE Sebastien <sebastien.bolle@orange.com>. + *******************************************************************************/ +package org.eclipse.om2m.android.dashboard.devices; + +import org.eclipse.om2m.android.dashboard.cse.models.SDTDevice; + +import org.eclipse.om2m.android.dashboard.R; + +import android.app.AlertDialog; +import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; +import android.graphics.Typeface; +import android.util.AttributeSet; +import android.view.LayoutInflater; +import android.view.View; +import android.view.View.OnClickListener; +import android.widget.LinearLayout; +import android.widget.TextView; +import android.widget.Toast; + +public class DeviceSimpleView extends LinearLayout implements OnClickListener { + + private TextView tvDeviceName; + private TextView tvDeviceDescription; + private LinearLayout llDetails; + private SDTDevice device; + private Context context; + + public DeviceSimpleView(Context context, AttributeSet attrs) { + super(context, attrs); + + this.context = context; + + LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); + inflater.inflate(R.layout.device_simple_view, this, true); + + tvDeviceName = (TextView)findViewById(R.id.tv_device_simple_name); + tvDeviceDescription = (TextView)findViewById(R.id.tv_device_simple_decription); + llDetails = (LinearLayout)findViewById(R.id.ll_device_simple); + + llDetails.setOnClickListener(this); + } + + public SDTDevice getDevice() { + return this.device; + } + + public void setDevice(SDTDevice device) { + this.device = device; + if (device != null) { + if (tvDeviceName != null) { +// String name = device.getFriendlyName(); +// String model = device.getSubModel(); +// if (! model.isEmpty()) +// name += " (" + model + ")"; + tvDeviceName.setText(device.getDeviceName()); + tvDeviceName.setTypeface(null, Typeface.BOLD); + } + if (tvDeviceDescription != null) { + tvDeviceDescription.setText(device.getDeviceAliasName()); + tvDeviceDescription.setTypeface(null, Typeface.NORMAL); + } + } + } + + // ===================================================================================== + // User actions + // ===================================================================================== + + @Override + public void onClick(View v) { + if (v instanceof LinearLayout) { + LinearLayout layoutClicked = (LinearLayout)v; + if (layoutClicked == llDetails) { + if (device != null) { + Intent detailsActivity = new Intent(this.context, DeviceDetailsActivity.class); + detailsActivity.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); // because we are not in activity context + detailsActivity.putExtra("deviceRi", this.device.getRi()); + this.context.startActivity(detailsActivity); + } else { + AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(DeviceSimpleView.this.getContext()); + dialogBuilder.setTitle(R.string.device_details_no_access_rights_title); + dialogBuilder.setMessage(getResources().getString(R.string.device_details_no_access_rights)); + dialogBuilder.setPositiveButton(R.string.dialog_btn_ok, + new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface arg0, int arg1) { + } + }); + try { + dialogBuilder.create().show(); + } catch (Exception e) { + Toast.makeText(context, getResources().getString(R.string.device_details_no_access_rights), Toast.LENGTH_LONG).show(); + } + } + } + } + } + +}
diff --git a/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/devices/DeviceTypeContainerView.java b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/devices/DeviceTypeContainerView.java new file mode 100644 index 0000000..0a04975 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/devices/DeviceTypeContainerView.java
@@ -0,0 +1,165 @@ +/******************************************************************************* + * Copyright (c) 2013, 2017 Orange. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * BAREAU Cyrille <cyrille.bareau@orange.com>, + * BONNARDEL Gregory <gbonnardel.ext@orange.com>, + * BOLLE Sebastien <sebastien.bolle@orange.com>. + *******************************************************************************/ +package org.eclipse.om2m.android.dashboard.devices; + +import java.util.ArrayList; +import java.util.List; +import java.util.SortedSet; + +import org.eclipse.om2m.android.dashboard.cse.models.SDTDevice; +import org.eclipse.om2m.android.dashboard.tools.OneM2MDeviceType; +import org.eclipse.om2m.android.dashboard.tools.Sorter; + +import org.eclipse.om2m.android.dashboard.R; + +import android.content.Context; +import android.util.AttributeSet; +import android.view.LayoutInflater; +import android.view.View; +import android.view.View.OnClickListener; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.TextView; + +public class DeviceTypeContainerView extends LinearLayout implements OnClickListener { + + private LinearLayout container; + private ImageView ivDevCatIcon; + private ImageView ivDevCatMoreLess; + private TextView tvDevCatCount; + private TextView tvDevLocale; + private Context context; + + private OneM2MDeviceType type; + private List<String> visibleDevIds = new ArrayList<String>(); + + + public DeviceTypeContainerView(Context context, AttributeSet attrs) { + super(context, attrs); + + this.context = context; + + visibleDevIds.clear(); + + LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); + inflater.inflate(R.layout.device_type_container_view, this, true); + + container = (LinearLayout)findViewById(R.id.ll_devType_container); + ivDevCatIcon = (ImageView)findViewById(R.id.iv_devType_icon); + ivDevCatMoreLess = (ImageView)findViewById(R.id.iv_devType_moreLess); + tvDevCatCount = (TextView)findViewById(R.id.tv_devType_count); + tvDevLocale = (TextView)findViewById(R.id.tv_devType_locale); + + this.setOnClickListener(this); + } + + public OneM2MDeviceType getDeviceType() { + return type; + } + + public String getTypeName() { + return (type == null) ? "" : type.getType(); + } + + public void setDeviceType(OneM2MDeviceType type) { + this.type = type; + if (ivDevCatIcon != null) { + ivDevCatIcon.setImageDrawable(getResources().getDrawable(type.getIcon())); + } + } + + public void setDevices(List<SDTDevice> devs) { + SortedSet<SDTDevice> devices = Sorter.getSortedDevices(devs); + if (tvDevCatCount != null) { + tvDevCatCount.setText("" + devices.size()); + } + if (tvDevLocale != null) { + tvDevLocale.setText(type.getLocale()); + } + + // 1- add/update devices + for (SDTDevice device : devices) { + if (visibleDevIds.contains(device.getRi())) { + // this device already in container => just find his view and refresh it + for (int i = 0; i < container.getChildCount(); i++) { + DeviceSimpleView devView = (DeviceSimpleView)container.getChildAt(i); + if ((devView.getDevice() != null) + && devView.getDevice().getRi().equals(device.getRi())) { + devView.setDevice(device); + break; + } + } + } + else { + DeviceSimpleView devView = new DeviceSimpleView(this.context, null); + devView.setDevice(device); + + // add container + container.addView(devView); + + // memorize it + visibleDevIds.add(device.getRi()); + } + } + + // remove old devices + List<String> devIdsToRemove = new ArrayList<String>(); + for (String devId : visibleDevIds) { + boolean devFound = false; + for (SDTDevice dev : devices) { + if (dev.getRi().equals(devId)) { + devFound = true; + break; + } + } + if (! devFound) { + devIdsToRemove.add(devId); + } + } + for (String devId : devIdsToRemove) { + DeviceSimpleView devView = null; + for (int i = 0; i < container.getChildCount(); i++) { + DeviceSimpleView view = (DeviceSimpleView)container.getChildAt(i); + if ((view.getDevice() != null) + && view.getDevice().getRi().equals(devId)) { + devView = view; + break; + } + } + if (devView != null) { + container.removeView(devView); + } + visibleDevIds.remove(devId); + } + } + + @Override + public void onClick(View v) { + if (container.getVisibility() == View.VISIBLE) { + close(); + } else { + open(); + } + } + + public void open() { + ivDevCatMoreLess.setImageDrawable(getResources().getDrawable(R.drawable.otb_picto_close_blue)); + container.setVisibility(View.VISIBLE); + } + + public void close() { + ivDevCatMoreLess.setImageDrawable(getResources().getDrawable(R.drawable.otb_picto_open_blue)); + container.setVisibility(View.GONE); + } + +}
diff --git a/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/devices/DevicesActivity.java b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/devices/DevicesActivity.java new file mode 100644 index 0000000..23fe48e --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/devices/DevicesActivity.java
@@ -0,0 +1,257 @@ +/******************************************************************************* + * Copyright (c) 2013, 2017 Orange. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * BAREAU Cyrille <cyrille.bareau@orange.com>, + * BONNARDEL Gregory <gbonnardel.ext@orange.com>, + * BOLLE Sebastien <sebastien.bolle@orange.com>. + *******************************************************************************/ +package org.eclipse.om2m.android.dashboard.devices; + +import java.util.ArrayList; +import java.util.List; +import java.util.Locale; +import java.util.Map; + +import org.eclipse.om2m.android.dashboard.CustomSecondaryActivity; +import org.eclipse.om2m.android.dashboard.cse.models.SDTDevice; +import org.eclipse.om2m.android.dashboard.tools.OneM2MDeviceType; +import org.eclipse.om2m.android.dashboard.tools.SettingsManager; +import org.eclipse.om2m.android.dashboard.utils.OTBUtils; + +import org.eclipse.om2m.android.dashboard.R; + +import android.content.res.Configuration; +import android.content.res.Resources; +import android.os.Bundle; +import android.view.MenuItem; +import android.view.View; +import android.view.View.OnClickListener; +import android.widget.LinearLayout; + +public class DevicesActivity extends CustomSecondaryActivity + implements OnClickListener { + + // ===================================================================================== + + private LinearLayout llDevicesContainer; + private List<String> visibleDevCat = new ArrayList<String>(); + + private Map<String, List<SDTDevice>> deviceCategories; + private List<String> basedrivers; + + private String focusedCategory; + + // ===================================================================================== + // Lifecycle + // ===================================================================================== + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + Bundle extras = getIntent().getExtras(); + if (extras != null) { + focusedCategory = extras.getString("focusedCategory"); + } + } + + // || + // || + // || + // \/ + + @Override + protected void onStart() { + super.onStart(); + } + + // || + // || + // || + // \/ + + @Override + protected void onResume() { + super.onResume(); + + String language = SettingsManager.getInstance(this).getLanguage(); + Resources res = getApplication().getResources(); + Configuration config = res.getConfiguration(); + config.locale = new Locale(language); + res.updateConfiguration(config, null); + + setContentView(R.layout.devices_activity); + + visibleDevCat.clear(); + + llDevicesContainer = (LinearLayout)findViewById(R.id.ll_devices_container); + + // init data with last informations + refreshCategories(); + } + + // || + // || + // || + // \/ + + @Override + protected void onPause() { + super.onPause(); + } + + // || + // || + // || + // \/ + + @Override + protected void onStop() { + super.onStop(); + } + + // || + // || + // || + // \/ + + @Override + protected void onDestroy() { + super.onDestroy(); + } + + // ===================================================================================== + + private void refreshCategories() { + if ((deviceCategories == null) || (basedrivers == null)) { + return; + } + // 1- add/update device categories + for (Map.Entry<String, List<SDTDevice>> entry : deviceCategories.entrySet()) { + OneM2MDeviceType dt = OneM2MDeviceType.fromValue(entry.getKey()); + if (! visibleDevCat.contains(dt.getType())) { + addDeviceCategoryContainer(dt); + } else { + // this device category already in container => just find her view and refresh it + for (int i = 0; i < llDevicesContainer.getChildCount(); i++) { + DeviceTypeContainerView devCatView = + (DeviceTypeContainerView)llDevicesContainer.getChildAt(i); + if (devCatView.getDeviceType() == dt) { + + // device for this type + List<SDTDevice> devicesForType = entry.getValue(); + devCatView.setDevices(devicesForType); + break; + } + } + } + } + // add categories from basedrivers + // this will only add cat for basedrivers with no device currently detected + // otherwise the cat should have already been created by previous bloc + for (String basedriverType : basedrivers) { + OneM2MDeviceType dt = OneM2MDeviceType.fromValue(basedriverType); + if ((dt != null) && ! visibleDevCat.contains(dt.getType())) { + addDeviceCategoryContainer(dt); + } + } + // remove old device categories + List<String> devCatToRemove = new ArrayList<String>(); + for (String catName : visibleDevCat) { + boolean catFound = false; + for (String key : deviceCategories.keySet()) { + if (catName.equals(key)) { + catFound = true; + break; + } + } + if (! catFound) { + for (String key : basedrivers) { + if (catName.equals(key)) { + catFound = true; + break; + } + } + } + if (! catFound) { + devCatToRemove.add(catName); + } + } + for (String devCat : devCatToRemove) { + DeviceTypeContainerView devCatView = null; + for (int i = 0; i < llDevicesContainer.getChildCount(); i++) { + DeviceTypeContainerView view = + (DeviceTypeContainerView)llDevicesContainer.getChildAt(i); + if (view.getTypeName().equals(devCat)) { + devCatView = view; + break; + } + } + if (devCatView != null) { + llDevicesContainer.removeView(devCatView); + } + visibleDevCat.remove(devCat); + } + } + + private void addDeviceCategoryContainer(OneM2MDeviceType type) { + DeviceTypeContainerView typeContainerView = + new DeviceTypeContainerView(getApplicationContext(), null); + typeContainerView.setDeviceType(type); + String catName = type.getType(); + if (OTBUtils.equals(focusedCategory, catName)) { + typeContainerView.open(); + } else { + typeContainerView.close(); + } + + List<SDTDevice> devicesForType = null; + // devices for this type + for (Map.Entry<String, List<SDTDevice>> entry : deviceCategories.entrySet()) { + if (OneM2MDeviceType.fromValue(entry.getKey()) == type) { + devicesForType = entry.getValue(); + break; + } + } + if (devicesForType == null) { + devicesForType= new ArrayList<SDTDevice>(); + } + typeContainerView.setDevices(devicesForType); + + // add container + llDevicesContainer.addView(typeContainerView); + + // memorize it + visibleDevCat.add(catName); + } + + // ===================================================================================== + // User actions + // ===================================================================================== + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + super.onOptionsItemSelected(item); + switch(item.getItemId()) { + case R.id.menu_help: + if (SettingsManager.getInstance(this).isWizardDeviceSimpleActivated()) { + SettingsManager.getInstance(this).setWizardDeviceSimple(false); + } else { + SettingsManager.getInstance(this).setWizardDeviceSimple(true); + } + break; + } + return true; + } + + @Override + public void onClick(View v) { +// if (v == btnAdd) { +// } + } + +}
diff --git a/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/main/MainAppEntryView.java b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/main/MainAppEntryView.java new file mode 100644 index 0000000..2121201 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/main/MainAppEntryView.java
@@ -0,0 +1,148 @@ +/******************************************************************************* + * Copyright (c) 2013, 2017 Orange. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * BAREAU Cyrille <cyrille.bareau@orange.com>, + * BONNARDEL Gregory <gbonnardel.ext@orange.com>, + * BOLLE Sebastien <sebastien.bolle@orange.com>. + *******************************************************************************/ +package org.eclipse.om2m.android.dashboard.main; + +import java.io.InputStream; + +import org.eclipse.om2m.android.dashboard.applications.ApplicationConfigActivity; +import org.eclipse.om2m.android.dashboard.cse.models.OneM2MApplication; + +import org.eclipse.om2m.android.dashboard.R; + +import android.content.Context; +import android.content.Intent; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.os.AsyncTask; +import android.util.AttributeSet; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.RelativeLayout; +import android.widget.TextView; + +public class MainAppEntryView extends LinearLayout { + + private TextView tvAppName; + private ImageView ivAppIcon; + private RelativeLayout rlUnactivable; + + private boolean canOpenDetails = true; + + public OneM2MApplication app; + + private static Context context; + + public MainAppEntryView(Context context, AttributeSet attrs) { + super(context, attrs); + + MainAppEntryView.context = context; + + LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); + inflater.inflate(R.layout.main_app_entry_view, this, true); + + rlUnactivable = (RelativeLayout) findViewById(R.id.rl_main_app_entry_stopped); + tvAppName = (TextView) findViewById(R.id.tv_main_app_entry_name); + ivAppIcon = (ImageView) findViewById(R.id.iv_main_app_entry_icon); + } + + public OneM2MApplication getApplication() { + return app; + } + + public void setData(final OneM2MApplication app, boolean canOpenDetails) { + this.canOpenDetails = canOpenDetails; + setData(app); + } + + public void setData(final OneM2MApplication app) { + this.app = app; + + if (tvAppName != null) { + tvAppName.setText(this.app.getApn()); + } + if (ivAppIcon != null) { + // ivAppIcon.setImageDrawable(OTBIconManager.getInstance().getIconForApp(app.getRi(), + // getResources())); + new DownloadImageTask(ivAppIcon).execute(app.getIconUrl()); + } + + this.setClickable(true); + + if (canOpenDetails /* && app.isAccessible() */) { + this.setOnLongClickListener(new OnLongClickListener() { + @Override + public boolean onLongClick(View arg0) { + // Intent detailsActivity = new Intent(OTBMainAppEntryView.context, + // OTBApplicationDetailsActivity.class); + // detailsActivity.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + // detailsActivity.putExtra("applicationId", app.getId()); + // OTBMainAppEntryView.context.startActivity(detailsActivity); + return true; + } + }); +// if (OTBConstants.ACTIVE.equals("Active"/* app.getStatus() */)) { + this.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View arg0) { + Intent configActivity = new Intent(MainAppEntryView.context, + ApplicationConfigActivity.class); + configActivity.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + configActivity.putExtra("applicationId", app.getRi()); + MainAppEntryView.context.startActivity(configActivity); + } + }); +// } + } + + rlUnactivable.setVisibility(View.INVISIBLE); + } + + private class DownloadImageTask extends AsyncTask<String, Void, Bitmap> { + ImageView bmImage; + + public DownloadImageTask(ImageView bmImage) { + this.bmImage = bmImage; + } + + protected Bitmap doInBackground(String... urls) { + Bitmap mIcon11 = null; + String urldisplay = urls[0]; + if (urldisplay != null) { + try { + InputStream in = new java.net.URL(urldisplay).openStream(); + mIcon11 = BitmapFactory.decodeStream(in); + } catch (Exception e) { + Log.e("Error", e.getMessage()); + e.printStackTrace(); + } + } + + return mIcon11; + } + + protected void onPostExecute(Bitmap result) { + if (result != null) { + bmImage.setImageBitmap(result); + } else { + bmImage.setImageDrawable(getResources().getDrawable(R.drawable.otb_appicon_default)); + } + + + + } + } + +}
diff --git a/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/main/MainDevView.java b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/main/MainDevView.java new file mode 100644 index 0000000..cfc3352 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/main/MainDevView.java
@@ -0,0 +1,102 @@ +/******************************************************************************* + * Copyright (c) 2013, 2017 Orange. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * BAREAU Cyrille <cyrille.bareau@orange.com>, + * BONNARDEL Gregory <gbonnardel.ext@orange.com>, + * BOLLE Sebastien <sebastien.bolle@orange.com>. + *******************************************************************************/ +package org.eclipse.om2m.android.dashboard.main; + +import org.eclipse.om2m.android.dashboard.cse.models.SDTDevice; +import org.eclipse.om2m.android.dashboard.devices.DeviceDetailsActivity; +import org.eclipse.om2m.android.dashboard.tools.OneM2MDeviceType; +import org.eclipse.om2m.android.dashboard.tools.SettingsManager; + +import org.eclipse.om2m.android.dashboard.R; + +import android.content.Context; +import android.content.Intent; +import android.util.AttributeSet; +import android.view.Gravity; +import android.view.LayoutInflater; +import android.view.View; +import android.widget.ImageView; +import android.widget.LinearLayout; +import android.widget.TextView; + +public class MainDevView extends LinearLayout { + + private TextView tvName; + private ImageView ivIcon; + private OneM2MDeviceType type; + private SDTDevice sdtDevice; + + private static Context context; + + public MainDevView(Context context, AttributeSet attrs) { + super(context, attrs); + + MainDevView.context = context; + LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); + inflater.inflate(R.layout.main_dev_view, this, true); + + ivIcon = (ImageView)findViewById(R.id.iv_main_dev_category_icon); + tvName = (TextView)findViewById(R.id.tv_devType_name); + tvName.setLines(2); + tvName.setWidth(250); + tvName.setGravity(Gravity.CENTER_HORIZONTAL); + } + + public void setData(final SDTDevice sdtDevice) { + this.sdtDevice = sdtDevice; + String cnd = sdtDevice.getCnd(); + String text = null; + if (SettingsManager.DEVICE_NAME_WITH_ALIAS.equals(SettingsManager.getInstance(context).getDeviceName())) { + text = sdtDevice.getDeviceAliasName(); + } else { + text = sdtDevice.getDeviceName(); + } + + sdtDevice.getDeviceAliasName(); + if (text == null) { + text = sdtDevice.getDeviceName(); + } + if (text == null) + text = sdtDevice.getRn(); + if (text == null) { + // compute text from container def + text = cnd.substring(cnd.lastIndexOf(".") + 7) + + " " + sdtDevice.getSerialNumber(); + } + if (text.indexOf(cnd) >= 0) { + text.replaceAll(cnd, cnd.substring(cnd.lastIndexOf(".") + 7)); + } + tvName.setText(text); + + type = OneM2MDeviceType.fromValue(cnd); + if (ivIcon != null) { + ivIcon.setImageDrawable(getResources().getDrawable(type.getIcon())); + } + + this.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View arg0) { + Intent detailsActivity = new Intent(MainDevView.context, + DeviceDetailsActivity.class); + detailsActivity.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); // because we are not in activity context + detailsActivity.putExtra("deviceRi", sdtDevice.getRi()); + MainDevView.context.startActivity(detailsActivity); + } + }); + } + + public SDTDevice getSDTDevice() { + return sdtDevice; + } + +}
diff --git a/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/tools/CustomLineView.java b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/tools/CustomLineView.java new file mode 100644 index 0000000..1f702ce --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/tools/CustomLineView.java
@@ -0,0 +1,105 @@ +/******************************************************************************* + * Copyright (c) 2013, 2017 Orange. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * BAREAU Cyrille <cyrille.bareau@orange.com>, + * BONNARDEL Gregory <gbonnardel.ext@orange.com>, + * BOLLE Sebastien <sebastien.bolle@orange.com>. + *******************************************************************************/ +package org.eclipse.om2m.android.dashboard.tools; + +import org.eclipse.om2m.android.dashboard.R; + +import android.annotation.SuppressLint; +import android.content.Context; +import android.content.res.TypedArray; +import android.graphics.Canvas; +import android.graphics.DashPathEffect; +import android.graphics.Paint; +import android.util.AttributeSet; +import android.view.View; +import android.widget.ImageView; + +/* + * pour utiliser ce control dans le xml, + * ne pas oublier d'ajouter un custom namespace dans l'entête pour pouvoir utiliser les attributs + * exemple : + * + * xmlns:custom="http://schemas.android.com/apk/res/com.orange.openthebox.dashboard" + * + * <com.orange.openthebox.dashboard.OTBCustomLineView + custom:dashed="true" + android:layout_width="match_parent" + android:layout_height="2dp" + custom:dashGap="2" + custom:dashWidth="2" + custom:thickness="1" + custom:orientation="horizontal" + custom:color="@color/otb_red" /> + */ + +public class CustomLineView extends ImageView { + + private Paint paint = new Paint(); + + private int color = -1; + private int thickness = -1; + private boolean dashed = false; + private int dashWidth = -1; + private int dashGap = -1; + private int orientation = 0; // 0 = horizontal, 1 = vertical + private boolean shadow = false; + + + public CustomLineView(Context context, AttributeSet attrs) { + super(context, attrs); + + TypedArray myAttrs = context.obtainStyledAttributes(attrs, R.styleable.CustomLine); + + color = myAttrs.getResourceId(R.styleable.CustomLine_color, R.color.soft_gray); + thickness = myAttrs.getInt(R.styleable.CustomLine_thickness, 2); + dashWidth = myAttrs.getInt(R.styleable.CustomLine_dashWidth, 10); + dashGap = myAttrs.getInt(R.styleable.CustomLine_dashGap, 5); + dashed = myAttrs.getBoolean(R.styleable.CustomLine_dashed, false); + orientation = myAttrs.getInt(R.styleable.CustomLine_orientation, 0); + shadow = myAttrs.getBoolean(R.styleable.CustomLine_shadow, false); + + myAttrs.recycle(); + + // patch pour android > 4.0 + // pour réussir à dessiner des ligne en pointillés, + // il faut désactiver l'accélération matérielle sur la vue + if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.HONEYCOMB) { + setLayerType(View.LAYER_TYPE_SOFTWARE, null); + } + } + + @SuppressLint("DrawAllocation") + @Override + protected void onDraw(Canvas canvas) { + super.onDraw(canvas); + try { + paint.setColor(getResources().getColor(color)); + } catch(Exception ignored) {} + + paint.setStyle(Paint.Style.STROKE); + paint.setStrokeWidth(thickness); + + if (dashed) { + paint.setPathEffect(new DashPathEffect(new float[]{dashWidth, dashGap}, 0)); + } + if (shadow) { + paint.setShadowLayer(8, 0, 0, getResources().getColor(color)); + } + if (orientation == 0) { // horizontal + canvas.drawLine(0, 0, getWidth(), 0, paint); + } else if (orientation == 1) { // vertical + canvas.drawLine(0, getHeight(), 0 , 0, paint); + } + } + +}
diff --git a/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/tools/DashboardWebViewClient.java b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/tools/DashboardWebViewClient.java new file mode 100644 index 0000000..fa4a775 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/tools/DashboardWebViewClient.java
@@ -0,0 +1,93 @@ +/******************************************************************************* + * Copyright (c) 2013, 2017 Orange. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * BAREAU Cyrille <cyrille.bareau@orange.com>, + * BONNARDEL Gregory <gbonnardel.ext@orange.com>, + * BOLLE Sebastien <sebastien.bolle@orange.com>. + *******************************************************************************/ +package org.eclipse.om2m.android.dashboard.tools; + +import android.content.Context; +import android.graphics.Bitmap; +import android.net.http.SslError; +import android.util.Log; +import android.view.View; +import android.view.animation.AlphaAnimation; +import android.view.animation.Animation; +import android.webkit.HttpAuthHandler; +import android.webkit.SslErrorHandler; +import android.webkit.WebView; +import android.webkit.WebViewClient; +import android.widget.Toast; + +public class DashboardWebViewClient extends WebViewClient { + + private Context context; + + private int loadCount = 0; + + public DashboardWebViewClient(Context context) { + super(); + this.context = context; + } + + @Override + public void onPageStarted(WebView view, String url, Bitmap favicon) { + Log.d("OTBWebViewClient", "onPageStarted(url=" + url + ")"); + view.setVisibility(View.VISIBLE); + } + + @Override + public void onPageFinished(WebView view, String url) { + Log.d("OTBWebViewClient", "onPageFinished(url=" + url + ")"); + if (loadCount == 0) { + Log.d("OTBWebViewClient", "loadCount == 0 ==> execute customJavascript"); + view.loadUrl("javascript:document.getElementsByName('j_username')[0].value = '" +// + OTBSettingsManager.getInstance(this.context).getOASLogin() + "';" + + "javascript:document.getElementsByName('j_password')[0].value = '" +// + OTBSettingsManager.getInstance(this.context).getOASPwd() + "';" + + "javascript:document.getElementsByName('logon')[0].click();"); + loadCount++; + } + + view.setVisibility(View.VISIBLE); + final Animation fade = new AlphaAnimation(0.0f, 1.0f); + fade.setDuration(200); + view.startAnimation(fade); + view.setVisibility(View.VISIBLE); + } + + @Override + public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { + Toast.makeText(view.getContext(), "Authentication Error", Toast.LENGTH_LONG).show(); + } + + @Override + public void onLoadResource(WebView view, String url) { + Log.d("OTBWebViewClient", "onLoadResource(url=" + url + ")"); + } + + @Override + public boolean shouldOverrideUrlLoading(WebView view, String url) { + return super.shouldOverrideUrlLoading(view, url); + } + + @Override + public void onReceivedHttpAuthRequest(WebView view, + final HttpAuthHandler handler, final String host, final String realm) { + Log.d("OTBWebViewClient", "onReceivedHttpAuthRequest"); +// handler.proceed(OTBSettingsManager.getInstance(this.context).getOASLogin(), +// OTBSettingsManager.getInstance(this.context).getOASPwd()); + } + + @Override + public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) { + handler.proceed(); + } + +}
diff --git a/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/tools/IconManager.java b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/tools/IconManager.java new file mode 100644 index 0000000..9795634 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/tools/IconManager.java
@@ -0,0 +1,73 @@ +/******************************************************************************* + * Copyright (c) 2013, 2017 Orange. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * BAREAU Cyrille <cyrille.bareau@orange.com>, + * BONNARDEL Gregory <gbonnardel.ext@orange.com>, + * BOLLE Sebastien <sebastien.bolle@orange.com>. + *******************************************************************************/ +package org.eclipse.om2m.android.dashboard.tools; + +import java.util.HashMap; +import java.util.Map; + +import org.eclipse.om2m.android.dashboard.R; + +import android.content.res.Resources; +import android.graphics.Bitmap; +import android.graphics.drawable.BitmapDrawable; + +public class IconManager { + + private static final IconManager INSTANCE = new IconManager(); + + // ================================================================================ + + private IconManager() { + if (INSTANCE != null) { + throw new IllegalStateException("Already instantiated"); + } + } + + public static IconManager getInstance() { + return INSTANCE; + } + + // ================================================================================ + + private Map<String, Bitmap> appIcons = new HashMap<String, Bitmap>(); + private Map<String, Bitmap> userIcons = new HashMap<String, Bitmap>(); + + public void setIconForApp(String app, Bitmap bitmap) { + appIcons.put(app, bitmap); + } + + public boolean hasIconForApp(String app) { + return appIcons.get(app) != null; + } + + public BitmapDrawable getIconForApp(String app, Resources res) { + Bitmap bitmap = appIcons.get(app); + return (bitmap != null) ? new BitmapDrawable(res, bitmap) + : (BitmapDrawable) res.getDrawable(R.drawable.otb_appicon_default); + } + + public void setIconForUser(String user, Bitmap bitmap) { + userIcons.put(user, bitmap); + } + + public boolean hasIconForUser(String user) { + return userIcons.get(user) != null; + } + + public BitmapDrawable getIconForUser(String user, Resources res) { + Bitmap bitmap = userIcons.get(user); + return (bitmap != null) ? new BitmapDrawable(res, bitmap) + : (BitmapDrawable) res.getDrawable(R.drawable.otb_user_avatar_default); + } + +}
diff --git a/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/tools/OneM2MDeviceType.java b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/tools/OneM2MDeviceType.java new file mode 100644 index 0000000..f570edf --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/tools/OneM2MDeviceType.java
@@ -0,0 +1,104 @@ +/******************************************************************************* + * Copyright (c) 2013, 2017 Orange. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * BAREAU Cyrille <cyrille.bareau@orange.com>, + * BONNARDEL Gregory <gbonnardel.ext@orange.com>, + * BOLLE Sebastien <sebastien.bolle@orange.com>. + *******************************************************************************/ +package org.eclipse.om2m.android.dashboard.tools; + +import java.util.ArrayList; +import java.util.List; + +import org.eclipse.om2m.sdt.home.types.DeviceType; + +import org.eclipse.om2m.android.dashboard.R; + +import android.content.res.Resources; +import android.content.res.TypedArray; + +public class OneM2MDeviceType { + + private static final String DEFAULT = "Device"; + + private static OneM2MDeviceType UNDEFINED; + + private static List<OneM2MDeviceType> values = new ArrayList<OneM2MDeviceType>(); + + private String key; + private String locale; + private int icon; + + static public void initialize(Resources res) { + values.clear(); + TypedArray deviceItems = res.obtainTypedArray(R.array.devices); + for (int i = 0; i < deviceItems.length(); i += 3) { + String dev = deviceItems.getString(i); + if (dev.equals("undefined")) + UNDEFINED = new OneM2MDeviceType(dev, + deviceItems.getString(i+1), + deviceItems.getResourceId(i+2, -1)); + else if (dev.equals("default")) + values.add(new OneM2MDeviceType(DEFAULT, + deviceItems.getString(i+1), + deviceItems.getResourceId(i+2, -1))); + else for (DeviceType dt : DeviceType.values()) { + if (dev.equals(dt.name())) { + values.add(new OneM2MDeviceType(dev.substring(6), // remove device prefix + deviceItems.getString(i+1), + deviceItems.getResourceId(i+2, -1))); + break; + } + } + } + } + + private OneM2MDeviceType(String key, String locale, int icon) { + this.key = key; + this.locale = locale; + this.icon = (icon < 0) ? R.drawable.otb_picto_dev_cat_sdt : icon; + } + + public int getIcon() { + return icon; + } + + public String getLocale() { + return locale; + } + + public String getType() { + return key; + } + + public static OneM2MDeviceType fromValue(final String s) { + int idx = s.lastIndexOf('.'); + String dev = (idx < 0) ? s : s.substring(idx+1); + if (dev.startsWith("device")) + dev = dev.substring(6); + for (OneM2MDeviceType dt : values) { + if (dt.key.equals(dev)) + return dt; + } + return UNDEFINED; + } + + public static String getConvertedType(final String type) { + OneM2MDeviceType dt = fromValue(type); + return (dt == null) ? DEFAULT : dt.getType(); + } + + public static List<OneM2MDeviceType> getValues() { + return values; + } + + public String toString() { + return "<OTBDeviceType " + key + " " + locale + " " + icon + "/>"; + } + +}
diff --git a/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/tools/SettingsManager.java b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/tools/SettingsManager.java new file mode 100644 index 0000000..65d8728 --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/tools/SettingsManager.java
@@ -0,0 +1,193 @@ +/******************************************************************************* + * Copyright (c) 2013, 2017 Orange. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * BAREAU Cyrille <cyrille.bareau@orange.com>, + * BONNARDEL Gregory <gbonnardel.ext@orange.com>, + * BOLLE Sebastien <sebastien.bolle@orange.com>. + *******************************************************************************/ +package org.eclipse.om2m.android.dashboard.tools; + +import android.content.Context; +import android.content.SharedPreferences; +import android.content.SharedPreferences.Editor; + +public final class SettingsManager { + + private static final SettingsManager INSTANCE = new SettingsManager(); + + private static SharedPreferences settings = null; + + private static String WIZARD_APPLICATION_SIMPLE = "wiz_application_simple"; + private static String WIZARD_APPLICATION_DETAILS = "wiz_application_details"; + private static String WIZARD_DEVICE_SIMPLE = "wiz_device_simple"; + private static String WIZARD_DEVICE_DETAILS = "wiz_device_details"; + private static String WIZARD_CONFIG = "wiz_config"; + + private static String LANGUAGE = "language"; + private static String DEFAULT_LANGUAGE = "en"; + + private static String DEVICE_NAME = "deviceName"; + public static String DEVICE_NAME_WITH_ALIAS = "pDANe"; + public static String DEVICE_NAME_WITH_NAME = "prDNe"; + private static String DEFAULT_DEVICE_NAME = DEVICE_NAME_WITH_NAME; + + private static String CSE_HOSTNAME = "cse_hostname"; + private static String DEFAULT_CSE_HOSTNAME = "10.0.10.103"; //"http://192.168.1.11:8080/~/dt-in-cse/dt-in-name"; + private static String CSE_PORT = "cse_port"; + private static String DEFAULT_CSE_PORT = "8080"; + private static String CSE_ID = "cse_id"; + private static String DEFAULT_CSE_ID = "in-cse"; + private static String CSE_NAME = "cse_name"; + private static String DEFAULT_CSE_NAME = "in-name"; + private static String CSE_LOGIN = "cse_login"; + private static String DEFAULT_CSE_LOGIN = "admin"; + private static String CSE_PWD = "cse_pwd"; + private static String DEFAULT_CSE_PWD = "admin"; + + private static boolean DEFAULT_WIZARD_ACTIVATION = false; + + private SettingsManager() { + } + + public static SettingsManager getInstance(Context context) { + // get ip in options + settings = context.getSharedPreferences("MyOTBSettings", Context.MODE_PRIVATE); + return INSTANCE; + } + + public boolean isWizardApplicationSimpleActivated() { + return settings.getBoolean(WIZARD_APPLICATION_SIMPLE, DEFAULT_WIZARD_ACTIVATION); + } + + public void setWizardApplicationSimple(boolean activated) { + Editor editor = settings.edit(); + editor.putBoolean(WIZARD_APPLICATION_SIMPLE, activated); + editor.commit(); + } + + public boolean isWizardApplicationDetailsActivated() { + return settings.getBoolean(WIZARD_APPLICATION_DETAILS, DEFAULT_WIZARD_ACTIVATION); + } + + public void setWizardApplicationDetails(boolean activated) { + Editor editor = settings.edit(); + editor.putBoolean(WIZARD_APPLICATION_DETAILS, activated); + editor.commit(); + } + + public boolean isWizardDeviceSimpleActivated() { + return settings.getBoolean(WIZARD_DEVICE_SIMPLE, DEFAULT_WIZARD_ACTIVATION); + } + + public void setWizardDeviceSimple(boolean activated) { + Editor editor = settings.edit(); + editor.putBoolean(WIZARD_DEVICE_SIMPLE, activated); + editor.commit(); + } + + public boolean isWizardDeviceDetailsActivated() { + return settings.getBoolean(WIZARD_DEVICE_DETAILS, DEFAULT_WIZARD_ACTIVATION); + } + + public void setWizardDeviceDetails(boolean activated) { + Editor editor = settings.edit(); + editor.putBoolean(WIZARD_DEVICE_DETAILS, activated); + editor.commit(); + } + + public boolean isWizardConfigActivated() { + return settings.getBoolean(WIZARD_CONFIG, DEFAULT_WIZARD_ACTIVATION); + } + + public void setWizardConfig(boolean activated) { + Editor editor = settings.edit(); + editor.putBoolean(WIZARD_CONFIG, activated); + editor.commit(); + } + + public String getLanguage() { + return settings.getString(LANGUAGE, DEFAULT_LANGUAGE); + } + + public void setLanguage(String language) { + Editor editor = settings.edit(); + editor.putString(LANGUAGE, language); + editor.commit(); + } + + public String getCSEHostname() { + return settings.getString(CSE_HOSTNAME, DEFAULT_CSE_HOSTNAME); + } + + public void setCSEHostname(String cseHostname) { + Editor editor = settings.edit(); + editor.putString(CSE_HOSTNAME, cseHostname); + editor.commit(); + } + + public String getCSEPort() { + return settings.getString(CSE_PORT, DEFAULT_CSE_PORT); + } + + public void setCSEPort(String csePort) { + Editor editor = settings.edit(); + editor.putString(CSE_PORT, csePort); + editor.commit(); + } + + public String getCSEId() { + return settings.getString(CSE_ID, DEFAULT_CSE_ID); + } + + public void setCSEId(String cseId) { + Editor editor = settings.edit(); + editor.putString(CSE_ID, cseId); + editor.commit(); + } + + public String getCSEName() { + return settings.getString(CSE_NAME, DEFAULT_CSE_NAME); + } + + public void setCSEName(String cseName) { + Editor editor = settings.edit(); + editor.putString(CSE_NAME, cseName); + editor.commit(); + } + + public String getCSELogin() { + return settings.getString(CSE_LOGIN, DEFAULT_CSE_LOGIN); + } + + public void setCSELogin(String login) { + Editor editor = settings.edit(); + editor.putString(CSE_LOGIN, login); + editor.commit(); + } + + public String getCSEPwd() { + return settings.getString(CSE_PWD, DEFAULT_CSE_PWD); + } + + public void setCSEPwd(String pwd) { + Editor editor = settings.edit(); + editor.putString(CSE_PWD, pwd); + editor.commit(); + } + + public void setDeviceName(String deviceName) { + Editor editor = settings.edit(); + editor.putString(DEVICE_NAME, deviceName); + editor.commit(); + } + + public String getDeviceName() { + return settings.getString(DEVICE_NAME, DEFAULT_DEVICE_NAME); + } + +}
diff --git a/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/tools/Sorter.java b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/tools/Sorter.java new file mode 100644 index 0000000..9fdb36f --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/tools/Sorter.java
@@ -0,0 +1,58 @@ +/******************************************************************************* + * Copyright (c) 2013, 2017 Orange. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * BAREAU Cyrille <cyrille.bareau@orange.com>, + * BONNARDEL Gregory <gbonnardel.ext@orange.com>, + * BOLLE Sebastien <sebastien.bolle@orange.com>. + *******************************************************************************/ +package org.eclipse.om2m.android.dashboard.tools; + +import java.util.Collection; +import java.util.Comparator; +import java.util.List; +import java.util.SortedSet; +import java.util.TreeSet; + +import org.eclipse.om2m.android.dashboard.cse.models.OneM2MApplication; +import org.eclipse.om2m.android.dashboard.cse.models.SDTDevice; + +public class Sorter { + + private static final Comparator<SDTDevice> DEV_COMPARATOR = new Comparator<SDTDevice>() { + @Override + public int compare(SDTDevice o1, SDTDevice o2) { + return o1.getSerialNumber().compareTo(o2.getSerialNumber()); + } + }; + + private static final Comparator<OneM2MApplication> APP_COMPARATOR = new Comparator<OneM2MApplication>() { + @Override + public int compare(OneM2MApplication o1, OneM2MApplication o2) { + return o1.getRn().compareTo(o2.getRn()); + } + }; + + public static final SortedSet<SDTDevice> getSortedDevices(final Collection<SDTDevice> devices) { + SortedSet<SDTDevice> ret = new TreeSet<SDTDevice>(DEV_COMPARATOR); + ret.addAll(devices); + return ret; + } + + public static final SortedSet<OneM2MApplication> getSortedApplications() { + return new TreeSet<OneM2MApplication>(APP_COMPARATOR); + } + + public static SortedSet<OneM2MApplication> getSortedApplications(final List<OneM2MApplication> apps) { + SortedSet<OneM2MApplication> ret = new TreeSet<OneM2MApplication>(APP_COMPARATOR); + if (apps != null) + for (OneM2MApplication a : apps) + ret.add(a); + return ret; + } + +}
diff --git a/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/utils/OTBUtils.java b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/utils/OTBUtils.java new file mode 100644 index 0000000..67a54bb --- /dev/null +++ b/org.eclipse.om2m.android.dashboard/src/main/java/org/eclipse/om2m/android/dashboard/utils/OTBUtils.java
@@ -0,0 +1,40 @@ +/******************************************************************************* + * Copyright (c) 2013, 2017 Orange. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * BAREAU Cyrille <cyrille.bareau@orange.com>, + * BONNARDEL Gregory <gbonnardel.ext@orange.com>, + * BOLLE Sebastien <sebastien.bolle@orange.com>. + *******************************************************************************/ +package org.eclipse.om2m.android.dashboard.utils; + +import java.util.Collection; +import java.util.Map; + +public class OTBUtils { + + static public final boolean equals(final String s1, final String s2) { + return (s1 == null) ? (s2 == null) : s1.equals(s2); + } + + static public final boolean isEmpty(final String s) { + return (s == null) || s.trim().isEmpty(); + } + + static public final boolean isEmpty(final Collection<?> c) { + return (c == null) || c.isEmpty(); + } + + static public final boolean isEmpty(final Map<?,?> c) { + return (c == null) || c.isEmpty(); + } + + static public final boolean isEmpty(final Object[] c) { + return (c == null) || (c.length == 0); + } + +}
diff --git a/pom.xml b/pom.xml index e0ac078..994418e 100644 --- a/pom.xml +++ b/pom.xml
@@ -51,6 +51,7 @@ <url>http://download.eclipse.org/tools/orbit/downloads/drops/R20160520211859/repository</url> </repository> </repositories> + <build> <plugins> <plugin> @@ -165,5 +166,6 @@ <module>org.eclipse.om2m.dal</module> <module>org.eclipse.om2m.dal.driver.sample</module> <module>org.eclipse.om2m.ipe.dal</module> + <module>org.eclipse.om2m.android.dashboard</module> </modules> </project>