bilder sortiert
@@ -0,0 +1,9 @@
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="org.xwalk.core"
|
||||
android:versionCode="1"
|
||||
android:versionName="1.0" >
|
||||
|
||||
<uses-sdk
|
||||
android:minSdkVersion="14"
|
||||
android:targetSdkVersion="21" />
|
||||
</manifest>
|
||||
@@ -0,0 +1,17 @@
|
||||
# This file is used to override default values used by the Ant build system.
|
||||
#
|
||||
# This file must be checked into Version Control Systems, as it is
|
||||
# integral to the build system of your project.
|
||||
|
||||
# This file is only used by the Ant script.
|
||||
|
||||
# You can use this to override default values such as
|
||||
# 'source.dir' for the location of your java source folder and
|
||||
# 'out.dir' for the location of your output folder.
|
||||
|
||||
# You can also use it define how the release builds are signed by declaring
|
||||
# the following properties:
|
||||
# 'key.store' for the location of your keystore and
|
||||
# 'key.alias' for the name of the key to use.
|
||||
# The password will be asked during the build when you use the 'release' target.
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
Copyright (c) 2013 Intel Corporation. All rights reserved.
|
||||
Use of this source code is governed by a BSD-style license that can be
|
||||
found in the LICENSE file.
|
||||
-->
|
||||
|
||||
<project name="XWalkCoreLibrary" default="help">
|
||||
<property file="local.properties" />
|
||||
|
||||
<property file="ant.properties" />
|
||||
|
||||
<property environment="env" />
|
||||
<condition property="sdk.dir" value="${env.ANDROID_HOME}">
|
||||
<isset property="env.ANDROID_HOME" />
|
||||
</condition>
|
||||
|
||||
<loadproperties srcFile="project.properties" />
|
||||
|
||||
<fail
|
||||
message="sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through the ANDROID_HOME environment variable."
|
||||
unless="sdk.dir"
|
||||
/>
|
||||
|
||||
<import file="custom_rules.xml" optional="true" />
|
||||
|
||||
<!-- version-tag: custom -->
|
||||
<import file="${sdk.dir}/tools/ant/build.xml" />
|
||||
</project>
|
||||
@@ -0,0 +1,15 @@
|
||||
# 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
|
||||
|
||||
android.library=true
|
||||
# Project target.
|
||||
target=android-21
|
||||
|
After Width: | Height: | Size: 584 B |
|
After Width: | Height: | Size: 386 B |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 249 B |
|
After Width: | Height: | Size: 247 B |
|
After Width: | Height: | Size: 577 B |
|
After Width: | Height: | Size: 546 B |
|
After Width: | Height: | Size: 4.9 KiB |
|
After Width: | Height: | Size: 179 B |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 756 B |
|
After Width: | Height: | Size: 458 B |
|
After Width: | Height: | Size: 2.0 KiB |
|
After Width: | Height: | Size: 377 B |
|
After Width: | Height: | Size: 388 B |
|
After Width: | Height: | Size: 637 B |
|
After Width: | Height: | Size: 874 B |
|
After Width: | Height: | Size: 6.2 KiB |
|
After Width: | Height: | Size: 215 B |
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 1001 B |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 283 B |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 2.7 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 354 B |
|
After Width: | Height: | Size: 4.1 KiB |
|
After Width: | Height: | Size: 3.6 KiB |
|
After Width: | Height: | Size: 266 B |
|
After Width: | Height: | Size: 138 B |
@@ -0,0 +1,36 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright 2013 The Chromium Authors. All rights reserved.
|
||||
Use of this source code is governed by a BSD-style license that can be
|
||||
found in the LICENSE file.
|
||||
-->
|
||||
|
||||
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item
|
||||
android:top="0dp"
|
||||
android:right="0dp"
|
||||
android:bottom="0dp"
|
||||
android:left="0dp">
|
||||
<shape android:shape="rectangle">
|
||||
<solid android:color="@color/color_picker_border_color"/>
|
||||
</shape>
|
||||
</item>
|
||||
<item android:top="0px"
|
||||
android:right="1px"
|
||||
android:bottom="0px"
|
||||
android:left="1px">
|
||||
<shape android:shape="rectangle">
|
||||
<solid android:color="@color/color_picker_background_color"/>
|
||||
</shape>
|
||||
</item>
|
||||
<item
|
||||
android:id="@+id/color_button_swatch"
|
||||
android:top="1px"
|
||||
android:right="2px"
|
||||
android:bottom="1px"
|
||||
android:left="2px">
|
||||
<shape android:shape="rectangle">
|
||||
<solid android:color="#FF0000"/>
|
||||
</shape>
|
||||
</item>
|
||||
</layer-list>
|
||||
|
After Width: | Height: | Size: 910 B |
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright 2013 The Chromium Authors. All rights reserved.
|
||||
Use of this source code is governed by a BSD-style license that can be
|
||||
found in the LICENSE file.
|
||||
-->
|
||||
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
|
||||
<stroke android:width="1px" android:color="@color/color_picker_border_color" />
|
||||
<solid android:color="@color/color_picker_background_color"/>
|
||||
</shape>
|
||||
@@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<!-- Copyright 2014 The Chromium Authors. All rights reserved.
|
||||
|
||||
Use of this source code is governed by a BSD-style license that can be
|
||||
found in the LICENSE file.
|
||||
-->
|
||||
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:state_above_anchor="true"
|
||||
android:drawable="@drawable/dropdown_popup_background_up" />
|
||||
<item android:drawable="@drawable/dropdown_popup_background_down" />
|
||||
</selector>
|
||||
|
After Width: | Height: | Size: 204 B |
|
After Width: | Height: | Size: 202 B |
|
After Width: | Height: | Size: 304 B |
|
After Width: | Height: | Size: 307 B |
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 218 B |
|
After Width: | Height: | Size: 1017 B |
|
After Width: | Height: | Size: 890 B |
@@ -0,0 +1,42 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
||||
|
||||
Use of this source code is governed by a BSD-style license that can be
|
||||
found in the LICENSE file.
|
||||
-->
|
||||
|
||||
<!-- ScrollView is needed since sometimes the dialog does not fit in small screen devices. -->
|
||||
<HorizontalScrollView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:orientation="horizontal"
|
||||
android:gravity="center">
|
||||
|
||||
<DatePicker
|
||||
android:id="@+id/date_picker"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:spinnersShown="true"
|
||||
android:calendarViewShown="false"
|
||||
android:datePickerMode="spinner"
|
||||
android:contentDescription="@string/accessibility_datetime_picker_date"
|
||||
/>
|
||||
|
||||
<TimePicker
|
||||
android:id="@+id/time_picker"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:timePickerMode="spinner"
|
||||
android:contentDescription="@string/accessibility_datetime_picker_time"
|
||||
/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</HorizontalScrollView>
|
||||
@@ -0,0 +1,50 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright 2014 The Chromium Authors. All rights reserved.
|
||||
|
||||
Use of this source code is governed by a BSD-style license that can be
|
||||
found in the LICENSE file.
|
||||
-->
|
||||
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/card_unmask_instructions"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:textSize="20sp"
|
||||
android:paddingStart="5dp"
|
||||
android:paddingEnd="5dp"
|
||||
android:paddingBottom="5dp"
|
||||
android:paddingTop="5dp"
|
||||
android:gravity="start"
|
||||
/>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<EditText
|
||||
android:id="@+id/card_unmask_input"
|
||||
android:inputType="number"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:ems="4"
|
||||
android:hint="@string/card_unmask_input_hint"
|
||||
/>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/card_unmask_verification_message"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="start"
|
||||
android:visibility="gone"
|
||||
/>
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
@@ -0,0 +1,46 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright 2013 The Chromium Authors. All rights reserved.
|
||||
Use of this source code is governed by a BSD-style license that can be
|
||||
found in the LICENSE file.
|
||||
-->
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/text"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/color_picker_gradient_margin"
|
||||
android:layout_marginEnd="@dimen/color_picker_gradient_margin"
|
||||
android:textAppearance="@android:style/TextAppearance.Medium"
|
||||
android:textIsSelectable="false" />
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/gradient_border"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="50dp"
|
||||
android:layout_below="@id/text"
|
||||
android:layout_marginStart="@dimen/color_picker_gradient_margin"
|
||||
android:layout_marginEnd="@dimen/color_picker_gradient_margin"
|
||||
android:layout_marginTop="3dp"
|
||||
android:background="@drawable/color_picker_border"
|
||||
android:padding="1dp" >
|
||||
|
||||
<View
|
||||
android:id="@+id/gradient"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" />
|
||||
</FrameLayout>
|
||||
|
||||
<SeekBar
|
||||
android:id="@+id/seek_bar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="75dp"
|
||||
android:layout_below="@id/text"
|
||||
android:progressDrawable="@android:color/transparent"
|
||||
android:thumb="@drawable/color_picker_advanced_select_handle"
|
||||
android:translationY="25dp" />
|
||||
|
||||
</RelativeLayout>
|
||||
@@ -0,0 +1,51 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright 2013 The Chromium Authors. All rights reserved.
|
||||
Use of this source code is governed by a BSD-style license that can be
|
||||
found in the LICENSE file.
|
||||
-->
|
||||
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:padding="15dp">
|
||||
|
||||
<ScrollView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<org.chromium.ui.ColorPickerAdvanced
|
||||
android:id="@+id/color_picker_advanced"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content" />
|
||||
</ScrollView>
|
||||
|
||||
<org.chromium.ui.ColorPickerSimple
|
||||
android:id="@+id/color_picker_simple"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:divider="@color/color_picker_border_color"
|
||||
android:dividerHeight="1px"
|
||||
android:paddingStart="1px"
|
||||
android:paddingEnd="1px"
|
||||
android:paddingTop="1px"
|
||||
android:background="@drawable/color_picker_border" />
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/more_colors_button_border"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/color_picker_border"
|
||||
android:padding="1px">
|
||||
|
||||
<org.chromium.ui.ColorPickerMoreButton
|
||||
android:id="@+id/more_colors_button"
|
||||
style="?android:attr/buttonBarButtonStyle"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:minHeight="48dp"
|
||||
android:textAppearance="?android:attr/textAppearanceSmall"
|
||||
android:text="@string/color_picker_button_more" />
|
||||
</FrameLayout>
|
||||
</LinearLayout>
|
||||
@@ -0,0 +1,41 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright 2013 The Chromium Authors. All rights reserved.
|
||||
Use of this source code is governed by a BSD-style license that can be
|
||||
found in the LICENSE file.
|
||||
-->
|
||||
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingBottom="15dp"
|
||||
android:paddingStart="20dp"
|
||||
android:paddingEnd="20dp"
|
||||
android:paddingTop="15dp" >
|
||||
|
||||
<TextView
|
||||
android:id="@+id/title"
|
||||
style="?android:attr/textAppearanceLarge"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_toStartOf="@+id/selected_color_view_border"
|
||||
android:layout_centerVertical="true"
|
||||
android:textColor="#33B5E5"
|
||||
android:ellipsize="end"
|
||||
android:singleLine="true" />
|
||||
|
||||
<FrameLayout
|
||||
android:layout_width="40dp"
|
||||
android:layout_height="40dp"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:id="@+id/selected_color_view_border"
|
||||
android:background="@drawable/color_picker_border"
|
||||
android:padding="2px">
|
||||
|
||||
<View
|
||||
android:id="@+id/selected_color_view"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@android:color/black" />
|
||||
</FrameLayout>
|
||||
|
||||
</RelativeLayout>
|
||||
@@ -0,0 +1,35 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright 2013 The Chromium Authors. All rights reserved.
|
||||
|
||||
Use of this source code is governed by a BSD-style license that can be
|
||||
found in the LICENSE file.
|
||||
-->
|
||||
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:id="@+id/date_time_suggestion"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:minHeight="44dp"
|
||||
android:orientation="horizontal"
|
||||
android:gravity="center_vertical">
|
||||
<TextView
|
||||
android:id="@+id/date_time_suggestion_value"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="10dp"
|
||||
android:layout_marginEnd="10dp"
|
||||
android:ellipsize="end"
|
||||
android:singleLine="true"
|
||||
android:textSize="18sp" />
|
||||
<TextView
|
||||
android:id="@+id/date_time_suggestion_label"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="10dp"
|
||||
android:layout_weight="1"
|
||||
android:textSize="18sp"
|
||||
android:gravity="end"
|
||||
android:textColor="#8b8b8b"
|
||||
android:ellipsize="end"
|
||||
android:singleLine="true" />
|
||||
</LinearLayout>
|
||||
@@ -0,0 +1,51 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright 2014 The Chromium Authors. All rights reserved.
|
||||
|
||||
Use of this source code is governed by a BSD-style license that can be
|
||||
found in the LICENSE file.
|
||||
-->
|
||||
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:orientation="horizontal"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:gravity="center_vertical">
|
||||
|
||||
<!-- These layout params are overwritten in DropdownAdapter.java -->
|
||||
<LinearLayout android:id="@+id/dropdown_label_wrapper"
|
||||
android:layout_weight="1"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:orientation="vertical"
|
||||
android:gravity="center_vertical">
|
||||
|
||||
<TextView android:id="@+id/dropdown_label"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="10dp"
|
||||
android:layout_marginEnd="10dp"
|
||||
android:ellipsize="end"
|
||||
android:singleLine="true"
|
||||
android:textAlignment="viewStart"
|
||||
android:textSize="18sp"
|
||||
android:textColor="#333"
|
||||
android:includeFontPadding="false"/>
|
||||
<TextView android:id="@+id/dropdown_sublabel"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="10dp"
|
||||
android:layout_marginEnd="10dp"
|
||||
android:textSize="14sp"
|
||||
android:textColor="#8b8b8b"
|
||||
android:ellipsize="end"
|
||||
android:singleLine="true"
|
||||
android:textAlignment="viewStart"
|
||||
android:includeFontPadding="false"/>
|
||||
</LinearLayout>
|
||||
|
||||
<ImageView android:id="@+id/dropdown_icon"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_margin="8dp"/>
|
||||
|
||||
</LinearLayout>
|
||||
@@ -0,0 +1,122 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright 2013 The Chromium Authors. All rights reserved.
|
||||
|
||||
Use of this source code is governed by a BSD-style license that can be
|
||||
found in the LICENSE file.
|
||||
-->
|
||||
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:orientation="vertical"
|
||||
android:gravity="start">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/time_picker_dialog_title"
|
||||
android:textSize="20sp"
|
||||
android:paddingStart="5dp"
|
||||
android:paddingEnd="5dp"
|
||||
android:paddingBottom="5dp"
|
||||
android:paddingTop="5dp"
|
||||
android:gravity="start"
|
||||
android:textColor="#33B5E5"
|
||||
/>
|
||||
|
||||
<View
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="2dp"
|
||||
android:paddingBottom="5dp"
|
||||
android:paddingTop="5dp"
|
||||
android:background="#33B5E5"/>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:orientation="horizontal"
|
||||
android:gravity="center">
|
||||
|
||||
<NumberPicker
|
||||
android:id="@+id/hour"
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight=".2"
|
||||
android:textSize="12sp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="4dp"
|
||||
android:layout_marginEnd="4dp"
|
||||
android:focusable="true"
|
||||
android:focusableInTouchMode="true"
|
||||
android:contentDescription="@string/accessibility_time_picker_hour"
|
||||
/>
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:textSize="12sp"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/time_picker_dialog_hour_minute_separator"
|
||||
/>
|
||||
<NumberPicker
|
||||
android:id="@+id/minute"
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight=".2"
|
||||
android:textSize="12sp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="4dp"
|
||||
android:layout_marginEnd="4dp"
|
||||
android:focusable="true"
|
||||
android:focusableInTouchMode="true"
|
||||
android:contentDescription="@string/accessibility_time_picker_minute"
|
||||
/>
|
||||
<TextView
|
||||
android:id="@+id/second_colon"
|
||||
android:layout_width="wrap_content"
|
||||
android:textSize="12sp"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/time_picker_dialog_minute_second_separator" />
|
||||
<NumberPicker
|
||||
android:id="@+id/second"
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight=".2"
|
||||
android:textSize="12sp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="4dp"
|
||||
android:layout_marginEnd="4dp"
|
||||
android:focusable="true"
|
||||
android:focusableInTouchMode="true"
|
||||
android:contentDescription="@string/accessibility_time_picker_second"
|
||||
/>
|
||||
<TextView
|
||||
android:id="@+id/second_dot"
|
||||
android:layout_width="wrap_content"
|
||||
android:textSize="12sp"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/time_picker_dialog_second_subsecond_separator"
|
||||
/>
|
||||
<NumberPicker
|
||||
android:id="@+id/milli"
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight=".2"
|
||||
android:textSize="12sp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="4dp"
|
||||
android:layout_marginEnd="4dp"
|
||||
android:focusable="true"
|
||||
android:focusableInTouchMode="true"
|
||||
android:contentDescription="@string/accessibility_time_picker_milli"
|
||||
/>
|
||||
<NumberPicker
|
||||
android:id="@+id/ampm"
|
||||
android:layout_width="0dp"
|
||||
android:layout_weight=".2"
|
||||
android:textSize="12sp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="4dp"
|
||||
android:layout_marginEnd="4dp"
|
||||
android:focusable="true"
|
||||
android:focusableInTouchMode="true"
|
||||
android:contentDescription="@string/accessibility_time_picker_ampm"
|
||||
/>
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
@@ -0,0 +1,48 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright 2013 The Chromium Authors. All rights reserved.
|
||||
|
||||
Use of this source code is governed by a BSD-style license that can be
|
||||
found in the LICENSE file.
|
||||
-->
|
||||
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:orientation="horizontal"
|
||||
android:gravity="center">
|
||||
|
||||
<LinearLayout android:id="@+id/pickers"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_weight="1"
|
||||
android:orientation="horizontal"
|
||||
android:gravity="center">
|
||||
|
||||
<!-- Position in year -->
|
||||
<NumberPicker
|
||||
android:id="@+id/position_in_year"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:focusable="true"
|
||||
android:focusableInTouchMode="true"
|
||||
android:contentDescription="@string/accessibility_date_picker_month"
|
||||
/>
|
||||
|
||||
<!-- Year -->
|
||||
<NumberPicker
|
||||
android:id="@+id/year"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:focusable="true"
|
||||
android:focusableInTouchMode="true"
|
||||
android:contentDescription="@string/accessibility_date_picker_year"
|
||||
/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</LinearLayout>
|
||||
@@ -0,0 +1,71 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright 2013 The Chromium Authors. All rights reserved.
|
||||
|
||||
Use of this source code is governed by a BSD-style license that can be
|
||||
found in the LICENSE file.
|
||||
-->
|
||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/bubble">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/top_view"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignStart="@+id/icon_view"
|
||||
android:layout_alignEnd="@+id/text_wrapper"
|
||||
android:weightSum="1">
|
||||
|
||||
<View
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
android:layout_weight="0.25"
|
||||
android:visibility="invisible"/>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/arrow_image"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_marginBottom="7dp"
|
||||
android:src="@drawable/bubble_arrow_up" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<ImageView
|
||||
android:id="@id/icon_view"
|
||||
android:layout_width="19dp"
|
||||
android:layout_height="19dp"
|
||||
android:layout_alignParentStart="true"
|
||||
android:layout_below="@id/top_view"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:src="@drawable/pageinfo_warning_major" />
|
||||
|
||||
<LinearLayout
|
||||
android:id="@id/text_wrapper"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_below="@id/top_view"
|
||||
android:layout_toEndOf="@id/icon_view"
|
||||
android:orientation="vertical">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/main_text"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:maxWidth="300dp"
|
||||
android:textColor="@android:color/black"
|
||||
android:textSize="16sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/sub_text"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:maxWidth="300dp"
|
||||
android:textColor="#444"
|
||||
android:textSize="13sp" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</RelativeLayout>
|
||||
@@ -0,0 +1,30 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright 2014 The Chromium Authors. All rights reserved.
|
||||
|
||||
Use of this source code is governed by a BSD-style license that can be
|
||||
found in the LICENSE file.
|
||||
-->
|
||||
<LinearLayout android:layout_height="wrap_content" android:layout_width="wrap_content" android:orientation="vertical" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
|
||||
|
||||
<TextView android:gravity="start" android:id="@+id/card_unmask_instructions" android:layout_height="wrap_content" android:layout_width="match_parent" android:paddingBottom="5dp" android:paddingLeft="5dp" android:paddingRight="5dp" android:paddingTop="5dp" android:textSize="20sp"/>
|
||||
|
||||
|
||||
|
||||
<LinearLayout android:layout_height="wrap_content" android:layout_width="match_parent" android:orientation="horizontal">
|
||||
|
||||
|
||||
|
||||
<EditText android:ems="4" android:hint="@string/card_unmask_input_hint" android:id="@+id/card_unmask_input" android:inputType="number" android:layout_height="wrap_content" android:layout_marginLeft="16dp" android:layout_marginRight="16dp" android:layout_width="wrap_content"/>
|
||||
|
||||
|
||||
|
||||
<TextView android:gravity="start" android:id="@+id/card_unmask_verification_message" android:layout_height="wrap_content" android:layout_width="wrap_content" android:visibility="gone"/>
|
||||
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
|
||||
</LinearLayout>
|
||||
@@ -0,0 +1,30 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright 2013 The Chromium Authors. All rights reserved.
|
||||
Use of this source code is governed by a BSD-style license that can be
|
||||
found in the LICENSE file.
|
||||
-->
|
||||
<RelativeLayout android:layout_height="wrap_content" android:layout_width="wrap_content" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
|
||||
|
||||
<TextView android:id="@+id/text" android:layout_height="wrap_content" android:layout_marginLeft="@dimen/color_picker_gradient_margin" android:layout_marginRight="@dimen/color_picker_gradient_margin" android:layout_width="match_parent" android:textAppearance="@android:style/TextAppearance.Medium" android:textIsSelectable="false"/>
|
||||
|
||||
|
||||
|
||||
<FrameLayout android:background="@drawable/color_picker_border" android:id="@+id/gradient_border" android:layout_below="@id/text" android:layout_height="50dp" android:layout_marginLeft="@dimen/color_picker_gradient_margin" android:layout_marginRight="@dimen/color_picker_gradient_margin" android:layout_marginTop="3dp" android:layout_width="match_parent" android:padding="1dp">
|
||||
|
||||
|
||||
|
||||
<View android:id="@+id/gradient" android:layout_height="match_parent" android:layout_width="match_parent"/>
|
||||
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
|
||||
|
||||
<SeekBar android:id="@+id/seek_bar" android:layout_below="@id/text" android:layout_height="75dp" android:layout_width="match_parent" android:progressDrawable="@android:color/transparent" android:thumb="@drawable/color_picker_advanced_select_handle" android:translationY="25dp"/>
|
||||
|
||||
|
||||
|
||||
</RelativeLayout>
|
||||
@@ -0,0 +1,36 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright 2013 The Chromium Authors. All rights reserved.
|
||||
Use of this source code is governed by a BSD-style license that can be
|
||||
found in the LICENSE file.
|
||||
-->
|
||||
<LinearLayout android:layout_height="wrap_content" android:layout_width="match_parent" android:orientation="vertical" android:padding="15dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
|
||||
|
||||
<ScrollView android:layout_height="wrap_content" android:layout_width="match_parent">
|
||||
|
||||
|
||||
|
||||
<org.chromium.ui.ColorPickerAdvanced android:id="@+id/color_picker_advanced" android:layout_height="wrap_content" android:layout_width="match_parent"/>
|
||||
|
||||
|
||||
</ScrollView>
|
||||
|
||||
|
||||
|
||||
<org.chromium.ui.ColorPickerSimple android:background="@drawable/color_picker_border" android:divider="@color/color_picker_border_color" android:dividerHeight="1px" android:id="@+id/color_picker_simple" android:layout_height="wrap_content" android:layout_width="match_parent" android:paddingLeft="1px" android:paddingRight="1px" android:paddingTop="1px"/>
|
||||
|
||||
|
||||
|
||||
<FrameLayout android:background="@drawable/color_picker_border" android:id="@+id/more_colors_button_border" android:layout_height="wrap_content" android:layout_width="match_parent" android:padding="1px">
|
||||
|
||||
|
||||
|
||||
<org.chromium.ui.ColorPickerMoreButton android:id="@+id/more_colors_button" android:layout_height="wrap_content" android:layout_width="match_parent" android:minHeight="48dp" android:text="@string/color_picker_button_more" android:textAppearance="?android:attr/textAppearanceSmall" style="?android:attr/buttonBarButtonStyle"/>
|
||||
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
|
||||
</LinearLayout>
|
||||
@@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright 2013 The Chromium Authors. All rights reserved.
|
||||
Use of this source code is governed by a BSD-style license that can be
|
||||
found in the LICENSE file.
|
||||
-->
|
||||
<RelativeLayout android:layout_height="wrap_content" android:layout_width="match_parent" android:paddingBottom="15dp" android:paddingLeft="20dp" android:paddingRight="20dp" android:paddingTop="15dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
|
||||
|
||||
<TextView android:ellipsize="end" android:id="@+id/title" android:layout_centerVertical="true" android:layout_height="wrap_content" android:layout_toLeftOf="@+id/selected_color_view_border" android:layout_width="match_parent" android:singleLine="true" android:textColor="#33B5E5" style="?android:attr/textAppearanceLarge"/>
|
||||
|
||||
|
||||
|
||||
<FrameLayout android:background="@drawable/color_picker_border" android:id="@+id/selected_color_view_border" android:layout_alignParentRight="true" android:layout_height="40dp" android:layout_width="40dp" android:padding="2px">
|
||||
|
||||
|
||||
|
||||
<View android:background="@android:color/black" android:id="@+id/selected_color_view" android:layout_height="match_parent" android:layout_width="match_parent"/>
|
||||
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
|
||||
|
||||
</RelativeLayout>
|
||||
@@ -0,0 +1,42 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright 2012 The Chromium Authors. All rights reserved.
|
||||
|
||||
Use of this source code is governed by a BSD-style license that can be
|
||||
found in the LICENSE file.
|
||||
-->
|
||||
|
||||
<!-- ScrollView is needed since sometimes the dialog does not fit in small screen devices. -->
|
||||
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:orientation="vertical"
|
||||
android:gravity="center">
|
||||
|
||||
<DatePicker
|
||||
android:id="@+id/date_picker"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:spinnersShown="true"
|
||||
android:calendarViewShown="false"
|
||||
android:datePickerMode="spinner"
|
||||
android:contentDescription="@string/accessibility_datetime_picker_date"
|
||||
/>
|
||||
|
||||
<TimePicker
|
||||
android:id="@+id/time_picker"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:timePickerMode="spinner"
|
||||
android:contentDescription="@string/accessibility_datetime_picker_time"
|
||||
/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</ScrollView>
|
||||
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright 2013 The Chromium Authors. All rights reserved.
|
||||
|
||||
Use of this source code is governed by a BSD-style license that can be
|
||||
found in the LICENSE file.
|
||||
-->
|
||||
<LinearLayout android:gravity="center_vertical" android:id="@+id/date_time_suggestion" android:layout_height="wrap_content" android:layout_width="match_parent" android:minHeight="44dp" android:orientation="horizontal" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
|
||||
<TextView android:ellipsize="end" android:id="@+id/date_time_suggestion_value" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:layout_width="wrap_content" android:singleLine="true" android:textSize="18sp"/>
|
||||
|
||||
|
||||
<TextView android:ellipsize="end" android:gravity="end" android:id="@+id/date_time_suggestion_label" android:layout_height="wrap_content" android:layout_marginRight="10dp" android:layout_weight="1" android:layout_width="0dp" android:singleLine="true" android:textColor="#8b8b8b" android:textSize="18sp"/>
|
||||
|
||||
|
||||
</LinearLayout>
|
||||
@@ -0,0 +1,32 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright 2014 The Chromium Authors. All rights reserved.
|
||||
|
||||
Use of this source code is governed by a BSD-style license that can be
|
||||
found in the LICENSE file.
|
||||
-->
|
||||
<LinearLayout android:gravity="center_vertical" android:layout_height="wrap_content" android:layout_width="match_parent" android:orientation="horizontal" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
|
||||
|
||||
<!-- These layout params are overwritten in DropdownAdapter.java -->
|
||||
|
||||
|
||||
<LinearLayout android:gravity="center_vertical" android:id="@+id/dropdown_label_wrapper" android:layout_height="0dp" android:layout_weight="1" android:layout_width="0dp" android:orientation="vertical">
|
||||
|
||||
|
||||
|
||||
<TextView android:ellipsize="end" android:id="@+id/dropdown_label" android:includeFontPadding="false" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:layout_width="wrap_content" android:singleLine="true" android:textAlignment="viewStart" android:textColor="#333" android:textSize="18sp"/>
|
||||
|
||||
|
||||
<TextView android:ellipsize="end" android:id="@+id/dropdown_sublabel" android:includeFontPadding="false" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:layout_width="wrap_content" android:singleLine="true" android:textAlignment="viewStart" android:textColor="#8b8b8b" android:textSize="14sp"/>
|
||||
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
|
||||
<ImageView android:id="@+id/dropdown_icon" android:layout_height="wrap_content" android:layout_margin="8dp" android:layout_width="wrap_content"/>
|
||||
|
||||
|
||||
|
||||
</LinearLayout>
|
||||
@@ -0,0 +1,50 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright 2013 The Chromium Authors. All rights reserved.
|
||||
|
||||
Use of this source code is governed by a BSD-style license that can be
|
||||
found in the LICENSE file.
|
||||
-->
|
||||
<LinearLayout android:gravity="start" android:layout_gravity="center_vertical" android:layout_height="wrap_content" android:layout_width="wrap_content" android:orientation="vertical" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
|
||||
|
||||
<TextView android:gravity="start" android:layout_height="wrap_content" android:layout_width="wrap_content" android:paddingBottom="5dp" android:paddingLeft="5dp" android:paddingRight="5dp" android:paddingTop="5dp" android:text="@string/time_picker_dialog_title" android:textColor="#33B5E5" android:textSize="20sp"/>
|
||||
|
||||
|
||||
|
||||
<View android:background="#33B5E5" android:layout_height="2dp" android:layout_width="match_parent" android:paddingBottom="5dp" android:paddingTop="5dp"/>
|
||||
|
||||
|
||||
|
||||
<LinearLayout android:gravity="center" android:layout_gravity="center_horizontal" android:layout_height="wrap_content" android:layout_width="wrap_content" android:orientation="horizontal">
|
||||
|
||||
|
||||
|
||||
<NumberPicker android:contentDescription="@string/accessibility_time_picker_hour" android:focusable="true" android:focusableInTouchMode="true" android:id="@+id/hour" android:layout_height="wrap_content" android:layout_marginLeft="4dp" android:layout_marginRight="4dp" android:layout_weight=".2" android:layout_width="0dp" android:textSize="12sp"/>
|
||||
|
||||
|
||||
<TextView android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="@string/time_picker_dialog_hour_minute_separator" android:textSize="12sp"/>
|
||||
|
||||
|
||||
<NumberPicker android:contentDescription="@string/accessibility_time_picker_minute" android:focusable="true" android:focusableInTouchMode="true" android:id="@+id/minute" android:layout_height="wrap_content" android:layout_marginLeft="4dp" android:layout_marginRight="4dp" android:layout_weight=".2" android:layout_width="0dp" android:textSize="12sp"/>
|
||||
|
||||
|
||||
<TextView android:id="@+id/second_colon" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="@string/time_picker_dialog_minute_second_separator" android:textSize="12sp"/>
|
||||
|
||||
|
||||
<NumberPicker android:contentDescription="@string/accessibility_time_picker_second" android:focusable="true" android:focusableInTouchMode="true" android:id="@+id/second" android:layout_height="wrap_content" android:layout_marginLeft="4dp" android:layout_marginRight="4dp" android:layout_weight=".2" android:layout_width="0dp" android:textSize="12sp"/>
|
||||
|
||||
|
||||
<TextView android:id="@+id/second_dot" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="@string/time_picker_dialog_second_subsecond_separator" android:textSize="12sp"/>
|
||||
|
||||
|
||||
<NumberPicker android:contentDescription="@string/accessibility_time_picker_milli" android:focusable="true" android:focusableInTouchMode="true" android:id="@+id/milli" android:layout_height="wrap_content" android:layout_marginLeft="4dp" android:layout_marginRight="4dp" android:layout_weight=".2" android:layout_width="0dp" android:textSize="12sp"/>
|
||||
|
||||
|
||||
<NumberPicker android:contentDescription="@string/accessibility_time_picker_ampm" android:focusable="true" android:focusableInTouchMode="true" android:id="@+id/ampm" android:layout_height="wrap_content" android:layout_marginLeft="4dp" android:layout_marginRight="4dp" android:layout_weight=".2" android:layout_width="0dp" android:textSize="12sp"/>
|
||||
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
</LinearLayout>
|
||||
@@ -0,0 +1,33 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright 2013 The Chromium Authors. All rights reserved.
|
||||
|
||||
Use of this source code is governed by a BSD-style license that can be
|
||||
found in the LICENSE file.
|
||||
-->
|
||||
<LinearLayout android:gravity="center" android:layout_gravity="center_horizontal" android:layout_height="wrap_content" android:layout_width="wrap_content" android:orientation="horizontal" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
|
||||
|
||||
<LinearLayout android:gravity="center" android:id="@+id/pickers" android:layout_height="wrap_content" android:layout_weight="1" android:layout_width="wrap_content" android:orientation="horizontal">
|
||||
|
||||
|
||||
|
||||
<!-- Position in year -->
|
||||
|
||||
|
||||
<NumberPicker android:contentDescription="@string/accessibility_date_picker_month" android:focusable="true" android:focusableInTouchMode="true" android:id="@+id/position_in_year" android:layout_height="wrap_content" android:layout_marginLeft="16dp" android:layout_marginRight="16dp" android:layout_width="wrap_content"/>
|
||||
|
||||
|
||||
|
||||
<!-- Year -->
|
||||
|
||||
|
||||
<NumberPicker android:contentDescription="@string/accessibility_date_picker_year" android:focusable="true" android:focusableInTouchMode="true" android:id="@+id/year" android:layout_height="wrap_content" android:layout_marginLeft="16dp" android:layout_marginRight="16dp" android:layout_width="wrap_content"/>
|
||||
|
||||
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
|
||||
</LinearLayout>
|
||||
@@ -0,0 +1,47 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright 2013 The Chromium Authors. All rights reserved.
|
||||
|
||||
Use of this source code is governed by a BSD-style license that can be
|
||||
found in the LICENSE file.
|
||||
-->
|
||||
<RelativeLayout android:background="@drawable/bubble" android:layout_height="wrap_content" android:layout_width="wrap_content" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
|
||||
|
||||
<LinearLayout android:id="@+id/top_view" android:layout_alignLeft="@+id/icon_view" android:layout_alignRight="@+id/text_wrapper" android:layout_height="wrap_content" android:layout_width="wrap_content" android:weightSum="1">
|
||||
|
||||
|
||||
|
||||
<View android:layout_height="0dp" android:layout_weight="0.25" android:layout_width="0dp" android:visibility="invisible"/>
|
||||
|
||||
|
||||
|
||||
<ImageView android:id="@+id/arrow_image" android:layout_alignParentLeft="true" android:layout_height="wrap_content" android:layout_marginBottom="7dp" android:layout_width="wrap_content" android:src="@drawable/bubble_arrow_up"/>
|
||||
|
||||
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
|
||||
<ImageView android:id="@id/icon_view" android:layout_alignParentLeft="true" android:layout_below="@id/top_view" android:layout_height="19dp" android:layout_marginRight="8dp" android:layout_width="19dp" android:src="@drawable/pageinfo_warning_major"/>
|
||||
|
||||
|
||||
|
||||
<LinearLayout android:id="@id/text_wrapper" android:layout_below="@id/top_view" android:layout_height="wrap_content" android:layout_toRightOf="@id/icon_view" android:layout_width="wrap_content" android:orientation="vertical">
|
||||
|
||||
|
||||
|
||||
<TextView android:id="@+id/main_text" android:layout_height="wrap_content" android:layout_width="wrap_content" android:maxWidth="300dp" android:textColor="@android:color/black" android:textSize="16sp"/>
|
||||
|
||||
|
||||
|
||||
<TextView android:id="@+id/sub_text" android:layout_height="wrap_content" android:layout_width="wrap_content" android:maxWidth="300dp" android:textColor="#444" android:textSize="13sp"/>
|
||||
|
||||
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
|
||||
|
||||
</RelativeLayout>
|
||||
@@ -0,0 +1,50 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<!-- Copyright 2013 The Chromium Authors. All rights reserved.
|
||||
|
||||
Use of this source code is governed by a BSD-style license that can be
|
||||
found in the LICENSE file.
|
||||
-->
|
||||
|
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item
|
||||
android:id="@+id/select_action_menu_select_all"
|
||||
android:icon="?android:attr/actionModeSelectAllDrawable"
|
||||
android:title="@android:string/selectAll"
|
||||
android:showAsAction="always|withText"
|
||||
android:alphabeticShortcut="a"
|
||||
/>
|
||||
<item
|
||||
android:id="@+id/select_action_menu_cut"
|
||||
android:icon="?android:attr/actionModeCutDrawable"
|
||||
android:title="@android:string/cut"
|
||||
android:showAsAction="always|withText"
|
||||
android:alphabeticShortcut="x"
|
||||
/>
|
||||
<item
|
||||
android:id="@+id/select_action_menu_copy"
|
||||
android:icon="?android:attr/actionModeCopyDrawable"
|
||||
android:title="@android:string/copy"
|
||||
android:showAsAction="always|withText"
|
||||
android:alphabeticShortcut="c"
|
||||
/>
|
||||
<item
|
||||
android:id="@+id/select_action_menu_paste"
|
||||
android:icon="?android:attr/actionModePasteDrawable"
|
||||
android:title="@android:string/paste"
|
||||
android:showAsAction="always|withText"
|
||||
android:alphabeticShortcut="v"
|
||||
/>
|
||||
<item
|
||||
android:id="@+id/select_action_menu_share"
|
||||
android:title="@string/actionbar_share"
|
||||
android:showAsAction="always|withText"
|
||||
style="@style/SelectActionMenuShare"
|
||||
/>
|
||||
<item
|
||||
android:id="@+id/select_action_menu_web_search"
|
||||
android:title="@string/actionbar_web_search"
|
||||
android:showAsAction="always|withText"
|
||||
style="@style/SelectActionMenuWebSearch"
|
||||
/>
|
||||
</menu>
|
||||
@@ -0,0 +1,206 @@
|
||||
// Copyright (c) 2013 Intel Corporation. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
var g_next_async_call_id = 0;
|
||||
var g_async_calls = [];
|
||||
var g_listeners = [];
|
||||
|
||||
// Preserve first element for "oncontactschange" way event listener.
|
||||
//
|
||||
// Compared with addEventListener, the main difference is there is only one
|
||||
// oncontactschange callback will be invoked. While addEventListener can
|
||||
// add multiple callbacks when event "contactschanged" arrives.
|
||||
//
|
||||
// This listener can be set as "oncontactschange = function(){...};"
|
||||
// and can be unset as "oncontactschange = null;"
|
||||
g_listeners[0] = null;
|
||||
var g_next_listener_id = 1;
|
||||
|
||||
function AsyncCall(resolve, reject) {
|
||||
this.resolve = resolve;
|
||||
this.reject = reject;
|
||||
}
|
||||
|
||||
function createPromise(msg) {
|
||||
var promise = new Promise(function(resolve, reject) {
|
||||
g_async_calls[g_next_async_call_id] = new AsyncCall(resolve, reject);
|
||||
});
|
||||
msg.asyncCallId = g_next_async_call_id;
|
||||
extension.postMessage(JSON.stringify(msg));
|
||||
++g_next_async_call_id;
|
||||
return promise;
|
||||
}
|
||||
|
||||
function _addConstProperty(obj, propertyKey, propertyValue) {
|
||||
Object.defineProperty(obj, propertyKey, {
|
||||
configurable: false,
|
||||
writable: false,
|
||||
value: propertyValue
|
||||
});
|
||||
}
|
||||
|
||||
function _createConstClone(obj) {
|
||||
var const_obj = {};
|
||||
for (var key in obj) {
|
||||
_addConstProperty(const_obj, key, obj[key]);
|
||||
}
|
||||
return const_obj;
|
||||
}
|
||||
|
||||
extension.setMessageListener(function(json) {
|
||||
var msg = JSON.parse(json);
|
||||
|
||||
if (msg.reply == 'contactschange') {
|
||||
for (var id in g_listeners) {
|
||||
if (typeof g_listeners[id] === 'function') {
|
||||
g_listeners[id](_createConstClone(msg.data));
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (msg.data) {
|
||||
if (!msg.data.hasOwnProperty("error") || !msg.data.error) {
|
||||
g_async_calls[msg.asyncCallId].resolve(msg.data);
|
||||
} else {
|
||||
g_async_calls[msg.asyncCallId].reject(msg.data);
|
||||
}
|
||||
} else {
|
||||
console.log("WARNING: Message from backend doesn't have data.")
|
||||
g_async_calls[msg.asyncCallId].resolve();
|
||||
}
|
||||
|
||||
delete g_async_calls[msg.asyncCallId];
|
||||
});
|
||||
|
||||
exports.save = function(contact) {
|
||||
var msg = {};
|
||||
msg['cmd'] = 'save';
|
||||
msg['contact'] = contact;
|
||||
return createPromise(msg);
|
||||
}
|
||||
|
||||
exports.find = function(options) {
|
||||
var msg = {};
|
||||
msg['cmd'] = 'find';
|
||||
msg['options'] = options;
|
||||
return createPromise(msg);
|
||||
};
|
||||
|
||||
exports.remove = function(contactId) {
|
||||
var msg = {};
|
||||
msg['cmd'] = 'remove';
|
||||
msg['contactId'] = contactId;
|
||||
return createPromise(msg);
|
||||
};
|
||||
|
||||
exports.clear = function() {
|
||||
var msg = {};
|
||||
msg['cmd'] = 'clear';
|
||||
return createPromise(msg);
|
||||
}
|
||||
|
||||
function _addListener(isOnChange, callback) {
|
||||
// Check validation of callback for addEventListener way.
|
||||
if (!isOnChange && (typeof callback !== 'function')) {
|
||||
console.log('Invalid parameters of callback!');
|
||||
return -1;
|
||||
}
|
||||
|
||||
// Check validation of callback for oncontactschanged way, it can be null or a function.
|
||||
if (isOnChange && (callback !== null) && (typeof callback !== 'function')) {
|
||||
console.log('Invalid parameters of callback!');
|
||||
return -1;
|
||||
}
|
||||
|
||||
var listener_id;
|
||||
if (isOnChange) { // Set callback to oncontactschange()
|
||||
g_listeners[0] = callback;
|
||||
listener_id = 0;
|
||||
} else { // Set callback by addEventListner()
|
||||
listener_id = g_next_listener_id;
|
||||
++g_next_listener_id;
|
||||
g_listeners[listener_id] = callback;
|
||||
}
|
||||
|
||||
// Notify native code there is valid listener.
|
||||
if (g_listeners[0] != null || g_listeners.length > 1) {
|
||||
var msg = { 'cmd': 'addEventListener' };
|
||||
extension.postMessage(JSON.stringify(msg));
|
||||
}
|
||||
|
||||
return listener_id;
|
||||
}
|
||||
|
||||
exports.addEventListener = function(eventName, callback) {
|
||||
if (eventName !== 'contactschange') {
|
||||
console.log("Invalid parameters of eventName: "+eventName);
|
||||
return -1;
|
||||
}
|
||||
return _addListener(false, callback);
|
||||
}
|
||||
|
||||
Object.defineProperty(exports, 'oncontactschange', {
|
||||
set: function(callback) {
|
||||
_addListener(true, callback);
|
||||
}
|
||||
});
|
||||
|
||||
window.ContactField = function(init) {
|
||||
this.types = init.types;
|
||||
this.preferred = init.preferred;
|
||||
this.value = init.value;
|
||||
};
|
||||
|
||||
window.ContactTelField = function(init) {
|
||||
this.carrier = init.carrier;
|
||||
this.types = init.types;
|
||||
this.preferred = init.preferred;
|
||||
this.value = init.value;
|
||||
};
|
||||
|
||||
window.ContactAddress = function(init) {
|
||||
this.types = init.types;
|
||||
this.preferred = init.preferred;
|
||||
this.streetAddress = init.streetAddress;
|
||||
this.locality = init.locality;
|
||||
this.region = init.region;
|
||||
this.postalCode = init.postalCode;
|
||||
this.countryName = init.countryName;
|
||||
};
|
||||
|
||||
window.ContactName = function(init) {
|
||||
this.displayName = init.displayName;
|
||||
this.honorificPrefixes = init.honorificPrefixes;
|
||||
this.givenNames = init.givenNames;
|
||||
this.additionalNames = init.additionalNames;
|
||||
this.familyNames = init.familyNames;
|
||||
this.honorificSuffixes = init.honorificSuffixes;
|
||||
this.nicknames = init.nicknames;
|
||||
};
|
||||
|
||||
window.Contact = function(init) {
|
||||
this.id = null;
|
||||
this.lastUpdated = new Date();
|
||||
this.name = init.name;
|
||||
this.emails = init.emails;
|
||||
this.photos = init.photos;
|
||||
this.urls = init.urls;
|
||||
this.categories = init.categories;
|
||||
this.addresses = init.addresses;
|
||||
this.phoneNumbers = init.phoneNumbers;
|
||||
this.organizations = init.organizations;
|
||||
this.jobTitles = init.jobTitles;
|
||||
this.birthday = init.birthday;
|
||||
this.notes = init.notes;
|
||||
this.impp = init.impp;
|
||||
this.anniversary = init.anniversary;
|
||||
this.gender = init.gender;
|
||||
};
|
||||
|
||||
window.ContactsChangeEvent = function(init) {
|
||||
this.added = init.added;
|
||||
this.modified = init.modified;
|
||||
this.removed = init.removed;
|
||||
};
|
||||
@@ -0,0 +1,231 @@
|
||||
// Copyright (c) 2013 Intel Corporation. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
var g_next_async_call_id = 0;
|
||||
var g_async_calls = [];
|
||||
var g_listeners = [];
|
||||
|
||||
// Preserve 4 spaces to hold onattach, ondetach, onconnect and ondisconnect's
|
||||
// callback functions.
|
||||
var g_next_listener_id = 4;
|
||||
|
||||
function AsyncCall(resolve, reject) {
|
||||
this.resolve = resolve;
|
||||
this.reject = reject;
|
||||
}
|
||||
|
||||
function createPromise(msg) {
|
||||
var promise = new Promise(function(resolve, reject) {
|
||||
g_async_calls[g_next_async_call_id] = new AsyncCall(resolve, reject);
|
||||
});
|
||||
msg.asyncCallId = g_next_async_call_id;
|
||||
extension.postMessage(JSON.stringify(msg));
|
||||
++g_next_async_call_id;
|
||||
return promise;
|
||||
}
|
||||
|
||||
exports.getCPUInfo = function() {
|
||||
var msg = {
|
||||
'cmd': 'getCPUInfo'
|
||||
};
|
||||
return createPromise(msg);
|
||||
};
|
||||
|
||||
exports.getAVCodecs = function() {
|
||||
var msg = {
|
||||
'cmd': 'getCodecsInfo'
|
||||
};
|
||||
return createPromise(msg);
|
||||
};
|
||||
|
||||
exports.getDisplayInfo = function() {
|
||||
var msg = {
|
||||
'cmd': 'getDisplayInfo'
|
||||
};
|
||||
return createPromise(msg);
|
||||
};
|
||||
|
||||
exports.getMemoryInfo = function() {
|
||||
var msg = {
|
||||
'cmd': 'getMemoryInfo'
|
||||
};
|
||||
return createPromise(msg);
|
||||
};
|
||||
|
||||
exports.getStorageInfo = function() {
|
||||
var msg = {
|
||||
'cmd': 'getStorageInfo'
|
||||
};
|
||||
return createPromise(msg);
|
||||
};
|
||||
|
||||
function _addConstProperty(obj, propertyKey, propertyValue) {
|
||||
Object.defineProperty(obj, propertyKey, {
|
||||
configurable: false,
|
||||
writable: false,
|
||||
value: propertyValue
|
||||
});
|
||||
}
|
||||
|
||||
function _createConstClone(obj) {
|
||||
var const_obj = {};
|
||||
for (var key in obj) {
|
||||
if (Array.isArray(obj[key])) {
|
||||
var obj_array = obj[key];
|
||||
var const_obj_array = [];
|
||||
for (var i = 0; i < obj_array.length; ++i) {
|
||||
var const_sub_obj = {};
|
||||
for (var sub_key in obj_array[i]) {
|
||||
_addConstProperty(const_sub_obj, sub_key, obj_array[i][sub_key]);
|
||||
}
|
||||
const_obj_array.push(const_sub_obj);
|
||||
}
|
||||
_addConstProperty(const_obj, key, const_obj_array);
|
||||
} else {
|
||||
_addConstProperty(const_obj, key, obj[key]);
|
||||
}
|
||||
}
|
||||
return const_obj;
|
||||
}
|
||||
|
||||
extension.setMessageListener(function(json) {
|
||||
var msg = JSON.parse(json);
|
||||
|
||||
if (msg.reply == 'attachStorage' ||
|
||||
msg.reply == 'detachStorage' ||
|
||||
msg.reply == 'connectDisplay' ||
|
||||
msg.reply == 'disconnectDisplay') {
|
||||
for (var id in g_listeners) {
|
||||
if (g_listeners[id]['eventName'] === msg.eventName) {
|
||||
var event = null;
|
||||
if (msg.eventName == 'displayconnect' ||
|
||||
msg.eventName == 'displaydisconnect') {
|
||||
event = new SystemDisplayEvent(msg.data);
|
||||
}
|
||||
if (msg.eventName == 'storageattach' ||
|
||||
msg.eventName == 'storagedetach') {
|
||||
event = new SystemStorageEvent(msg.data);
|
||||
}
|
||||
g_listeners[id]['callback'](event);
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (msg.data.error) {
|
||||
g_async_calls[msg.asyncCallId].reject(msg.data.error);
|
||||
} else {
|
||||
g_async_calls[msg.asyncCallId].resolve(_createConstClone(msg.data));
|
||||
}
|
||||
|
||||
delete g_async_calls[msg.asyncCallId];
|
||||
});
|
||||
|
||||
function _addEventListener(isOn, eventName, callback) {
|
||||
if (typeof eventName !== 'string') {
|
||||
console.log("Invalid parameters of eventName!");
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (!isOn && (typeof callback !== 'function')) {
|
||||
console.log("Invalid parameters of callback!");
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (isOn && (typeof callback !== null) && (typeof callback !== 'function')) {
|
||||
console.log("Invalid parameters of callback!");
|
||||
return -1;
|
||||
}
|
||||
|
||||
var listener = {
|
||||
'eventName': eventName,
|
||||
'callback': callback
|
||||
};
|
||||
|
||||
var listener_id;
|
||||
|
||||
if (isOn) {
|
||||
switch(listener.eventName) {
|
||||
case 'storageattach':
|
||||
g_listeners[0] = listener;
|
||||
listener_id = 0;
|
||||
break;
|
||||
|
||||
case 'storagedetach':
|
||||
g_listeners[1] = listener;
|
||||
listener_id = 1;
|
||||
break;
|
||||
|
||||
case 'displayconnect':
|
||||
g_listeners[2] = listener;
|
||||
listener_id = 2;
|
||||
break;
|
||||
|
||||
case 'displaydisconnect':
|
||||
g_listeners[3] = listener;
|
||||
listener_id = 3;
|
||||
break;
|
||||
|
||||
default:
|
||||
console.log("Invalid event name!");
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
listener_id = g_next_listener_id;
|
||||
g_next_listener_id += 1;
|
||||
g_listeners[listener_id] = listener;
|
||||
}
|
||||
|
||||
if (g_listeners[listener_id] != null) {
|
||||
var msg = {
|
||||
'cmd': 'addEventListener',
|
||||
'eventName': listener.eventName
|
||||
};
|
||||
extension.postMessage(JSON.stringify(msg));
|
||||
}
|
||||
|
||||
return listener_id;
|
||||
}
|
||||
|
||||
Object.defineProperty(exports, 'onstorageattach', {
|
||||
set: function(callback) {
|
||||
_addEventListener(true, 'storageattach', callback);
|
||||
}
|
||||
});
|
||||
|
||||
Object.defineProperty(exports, 'onstoragedetach', {
|
||||
set: function(callback) {
|
||||
_addEventListener(true, 'storagedetach', callback);
|
||||
}
|
||||
});
|
||||
|
||||
Object.defineProperty(exports, 'ondisplayconnect', {
|
||||
set: function(callback) {
|
||||
_addEventListener(true, 'displayconnect', callback);
|
||||
}
|
||||
});
|
||||
|
||||
Object.defineProperty(exports, 'ondisplaydisconnect', {
|
||||
set: function(callback) {
|
||||
_addEventListener(true, 'displaydisconnect', callback);
|
||||
}
|
||||
});
|
||||
|
||||
exports.addEventListener = function(eventName, callback) {
|
||||
return _addEventListener(false, eventName, callback);
|
||||
};
|
||||
|
||||
var _sendSyncMessage = function(msg) {
|
||||
return extension.internal.sendSyncMessage(JSON.stringify(msg));
|
||||
};
|
||||
|
||||
window.SystemDisplayEvent = function(data) {
|
||||
_addConstProperty(this, 'display', _createConstClone(data));
|
||||
this.prototype = new Event('SystemDisplayEvent');
|
||||
};
|
||||
|
||||
window.SystemStorageEvent = function(data) {
|
||||
_addConstProperty(this, 'storage', _createConstClone(data));
|
||||
this.prototype = new Event('SystemStorageEvent');
|
||||
};
|
||||
@@ -0,0 +1,9 @@
|
||||
/**
|
||||
* Copyright (c) 2014 Intel Corporation. All rights reserved.
|
||||
* Use of this source code is governed by a BSD-style license that can be
|
||||
* found in the LICENSE file.
|
||||
*/
|
||||
|
||||
window.screen.show = function() {
|
||||
extension.postMessage("hideLaunchScreen");
|
||||
};
|
||||
@@ -0,0 +1,359 @@
|
||||
// Copyright (c) 2013 Intel Corporation. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
var g_next_async_call_id = 0;
|
||||
var g_async_calls = [];
|
||||
var g_listeners = [];
|
||||
|
||||
// Preserve 6 spaces to hold onreceived, onsent, ondeliverysuccess,
|
||||
// ondeliveryerror, onserviceadded and onserviceremoved's
|
||||
// callback functions.
|
||||
var g_next_async_call_id = 6;
|
||||
|
||||
function AsyncCall(resolve, reject) {
|
||||
this.resolve = resolve;
|
||||
this.reject = reject;
|
||||
}
|
||||
|
||||
function createPromise(msg) {
|
||||
var promise = new Promise(function(resolve, reject) {
|
||||
g_async_calls[g_next_async_call_id] = new AsyncCall(resolve, reject);
|
||||
});
|
||||
msg.asyncCallId = g_next_async_call_id;
|
||||
extension.postMessage(JSON.stringify(msg));
|
||||
++g_next_async_call_id;
|
||||
return promise;
|
||||
}
|
||||
|
||||
function _isFunction(fn) {
|
||||
return !!fn && !fn.nodeName && fn.constructor != String
|
||||
&& fn.constructor != RegExp && fn.constructor != Array
|
||||
&& /function/i.test( fn + "" );
|
||||
}
|
||||
|
||||
function SmsManager() {}
|
||||
|
||||
SmsManager.prototype.type = "sms";
|
||||
|
||||
Object.defineProperty(SmsManager.prototype, 'serviceIDs', {
|
||||
get: function() {
|
||||
var _msg = {
|
||||
cmd: "msg_smsServiceId",
|
||||
}
|
||||
return JSON.parse(extension.internal.sendSyncMessage(JSON.stringify(_msg)));
|
||||
}
|
||||
});
|
||||
|
||||
SmsManager.prototype.send = function(to, text, serviceID) {
|
||||
var _msg = {
|
||||
cmd: "msg_smsSend",
|
||||
data: {
|
||||
phone: to,
|
||||
message: text,
|
||||
serviceID: serviceID
|
||||
}
|
||||
}
|
||||
return createPromise(_msg);
|
||||
}
|
||||
|
||||
SmsManager.prototype.clear = function(serviceID) {
|
||||
var _msg = {
|
||||
cmd: "msg_smsClear",
|
||||
data: {
|
||||
serviceID: serviceID
|
||||
}
|
||||
}
|
||||
return createPromise(_msg);
|
||||
}
|
||||
|
||||
SmsManager.prototype.segmentInfo = function(text, serviceID) {
|
||||
var _msg = {
|
||||
cmd: "msg_smsSegmentInfo",
|
||||
data: {
|
||||
text: text,
|
||||
serviceID: serviceID
|
||||
}
|
||||
}
|
||||
return createPromise(_msg);
|
||||
}
|
||||
|
||||
var sms = new SmsManager();
|
||||
exports.sms = sms;
|
||||
|
||||
Object.defineProperty(exports.sms, 'onreceived', {
|
||||
set: function(callback) {
|
||||
_addEventListener(true, 'received', callback);
|
||||
}
|
||||
});
|
||||
|
||||
Object.defineProperty(exports.sms, 'onsent', {
|
||||
set: function(callback) {
|
||||
_addEventListener(true, 'sent', callback);
|
||||
}
|
||||
});
|
||||
|
||||
Object.defineProperty(exports.sms, 'ondeliverysuccess', {
|
||||
set: function(callback) {
|
||||
_addEventListener(true, 'deliverysuccess', callback);
|
||||
}
|
||||
});
|
||||
|
||||
Object.defineProperty(exports.sms, 'ondeliveryerror', {
|
||||
set: function(callback) {
|
||||
_addEventListener(true, 'deliveryerror', callback);
|
||||
}
|
||||
});
|
||||
|
||||
Object.defineProperty(exports.sms, 'onserviceadded', {
|
||||
set: function(callback) {
|
||||
_addEventListener(true, 'serviceadded', callback);
|
||||
}
|
||||
});
|
||||
|
||||
Object.defineProperty(exports.sms, 'onserviceremoved', {
|
||||
set: function(callback) {
|
||||
_addEventListener(true, 'serviceremoved', callback);
|
||||
}
|
||||
});
|
||||
|
||||
function _addEventListener(isOn, eventName, callback) {
|
||||
if (typeof eventName !== 'string') {
|
||||
console.log("Invalid parameters of eventName!");
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (!isOn && (typeof callback !== 'function')) {
|
||||
console.log("Invalid parameters of callback!");
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (isOn && (typeof callback !== null) && (typeof callback !== 'function')) {
|
||||
console.log("Invalid parameters of callback!");
|
||||
return -1;
|
||||
}
|
||||
|
||||
var listener = {
|
||||
'eventName': eventName,
|
||||
'callback': callback
|
||||
};
|
||||
|
||||
var listener_id;
|
||||
|
||||
if (isOn) {
|
||||
switch(listener.eventName) {
|
||||
case 'received':
|
||||
g_listeners[0] = listener;
|
||||
listener_id = 0;
|
||||
break;
|
||||
case 'sent':
|
||||
g_listeners[1] = listener;
|
||||
listener_id = 1;
|
||||
break;
|
||||
case 'deliverysuccess':
|
||||
g_listeners[2] = listener;
|
||||
listener_id = 2;
|
||||
break;
|
||||
case 'deliveryerror':
|
||||
g_listeners[3] = listener;
|
||||
listener_id = 3;
|
||||
break;
|
||||
case 'serviceadded':
|
||||
g_listeners[4] = listener;
|
||||
listener_id = 4;
|
||||
break;
|
||||
case 'serviceremoved':
|
||||
g_listeners[5] = listener;
|
||||
listener_id = 5;
|
||||
break;
|
||||
default:
|
||||
console.log("Invalid event name!");
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
listener_id = g_next_async_call_id;
|
||||
g_next_async_call_id += 1;
|
||||
g_listeners[listener_id] = listener;
|
||||
}
|
||||
|
||||
return listener_id;
|
||||
}
|
||||
|
||||
exports.sms.addEventListener = function(eventName, callback) {
|
||||
return _addEventListener(false, eventName, callback);
|
||||
}
|
||||
|
||||
function handleEvent(msg) {
|
||||
for (var id in g_listeners) {
|
||||
if (g_listeners[id]['eventName'] === msg.cmd && g_listeners[id]['callback']) {
|
||||
g_listeners[id]['callback'](msg.data);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function MessagingCursor(element) {
|
||||
this.messageIndex = 0;
|
||||
this.element = element;
|
||||
}
|
||||
|
||||
MessagingCursor.prototype.next = function() {
|
||||
var ret = null;
|
||||
if (this.messageIndex > this.element.length) {
|
||||
this.messageIndex = this.element.length;
|
||||
} else {
|
||||
if (this.element) {
|
||||
ret = this.element[this.messageIndex];
|
||||
this.messageIndex++;
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
MessagingCursor.prototype.previous = function() {
|
||||
var ret = null;
|
||||
if (this.messageIndex < 0) {
|
||||
this.messageIndex = 0;
|
||||
} else {
|
||||
if (this.element) {
|
||||
ret = this.element[this.messageIndex];
|
||||
this.messageIndex--;
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
function handleFindMessages(msgObj) {
|
||||
if (msgObj.data.error) {
|
||||
if (_isFunction(g_promises[msgObj.asyncCallId].reject)) {
|
||||
g_promises[msgObj.asyncCallId].reject(msgObj.data.body);
|
||||
}
|
||||
} else {
|
||||
if (_isFunction(g_promises[msgObj.asyncCallId].resolve)) {
|
||||
var cursor = new MessagingCursor(msgObj.data.body.results);
|
||||
g_promises[msgObj.asyncCallId].resolve(cursor);
|
||||
}
|
||||
}
|
||||
|
||||
delete g_promises[msgObj.asyncCallId];
|
||||
}
|
||||
|
||||
function handlePromise(msgObj) {
|
||||
if (msgObj.data.error) {
|
||||
if (_isFunction(g_promises[msgObj.asyncCallId].reject)) {
|
||||
g_promises[msgObj.asyncCallId].reject(msgObj.data.body);
|
||||
}
|
||||
} else {
|
||||
if (_isFunction(g_promises[msgObj.asyncCallId].resolve)) {
|
||||
g_promises[msgObj.asyncCallId].resolve(msgObj.data.body);
|
||||
}
|
||||
}
|
||||
|
||||
delete g_promises[msgObj.asyncCallId];
|
||||
}
|
||||
|
||||
extension.setMessageListener(function(json) {
|
||||
var _msg = JSON.parse(json);
|
||||
|
||||
switch (_msg.cmd) {
|
||||
case "sent":
|
||||
case "received":
|
||||
case "deliverysuccess":
|
||||
case "deliveryerror":
|
||||
case "serviceadded":
|
||||
case "serviceadded": {
|
||||
handleEvent(_msg);
|
||||
break;
|
||||
}
|
||||
case "msg_findMessages_ret": {
|
||||
handleFindMessages(_msg);
|
||||
break;
|
||||
}
|
||||
case "msg_smsSend_ret":
|
||||
case "msg_smsClear_ret":
|
||||
case "msg_smsSegmentInfo_ret":
|
||||
case "msg_getMessage_ret":
|
||||
case "msg_deleteMessage_ret":
|
||||
case "msg_deleteConversation_ret":
|
||||
case "msg_markMessageRead_ret":
|
||||
case "msg_markConversationRead_ret": {
|
||||
handlePromise(_msg);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
});
|
||||
|
||||
exports.findMessages = function(filter, options) {
|
||||
var _msg = {
|
||||
cmd: "msg_findMessages",
|
||||
data: {
|
||||
filter: filter,
|
||||
options: options
|
||||
}
|
||||
}
|
||||
return createPromise(_msg);
|
||||
}
|
||||
|
||||
exports.findConversations = function(groupBy, filter, options) {
|
||||
// TODO:(shawn) Spec is not ready for this part.
|
||||
}
|
||||
|
||||
exports.getMessage = function(type, messageID) {
|
||||
var _msg = {
|
||||
cmd: "msg_getMessage",
|
||||
data: {
|
||||
type: type,
|
||||
messageID: messageID
|
||||
}
|
||||
}
|
||||
return createPromise(_msg);
|
||||
}
|
||||
|
||||
exports.deleteMessage = function(type, messageID) {
|
||||
var _msg = {
|
||||
cmd: "msg_deleteMessage",
|
||||
data: {
|
||||
type: type,
|
||||
messageID: messageID
|
||||
}
|
||||
}
|
||||
return createPromise(_msg);
|
||||
}
|
||||
|
||||
exports.deleteConversation = function(type, conversationID) {
|
||||
var _msg = {
|
||||
cmd: "msg_deleteConversation",
|
||||
data: {
|
||||
type: type,
|
||||
conversationID: conversationID
|
||||
}
|
||||
}
|
||||
return createPromise(_msg);
|
||||
}
|
||||
|
||||
exports.markMessageRead = function(type, messageID, value) {
|
||||
value = (typeof value === 'undefined') ? true : value;
|
||||
var _msg = {
|
||||
cmd: "msg_markMessageRead",
|
||||
data: {
|
||||
type: type,
|
||||
messageID: messageID,
|
||||
value: value
|
||||
}
|
||||
}
|
||||
return createPromise(_msg);
|
||||
}
|
||||
|
||||
exports.markConversationRead = function(type, conversationID, value) {
|
||||
value = (typeof value === 'undefined') ? true : value;
|
||||
var _msg = {
|
||||
cmd: "msg_markConversationRead",
|
||||
data: {
|
||||
type: type,
|
||||
conversationID: conversationID,
|
||||
value: value
|
||||
}
|
||||
}
|
||||
return createPromise(_msg);
|
||||
}
|
||||
@@ -0,0 +1,144 @@
|
||||
/**
|
||||
* Copyright (c) 2013 Intel Corporation. All rights reserved.
|
||||
* Use of this source code is governed by a BSD-style license that can be
|
||||
* found in the LICENSE file.
|
||||
*/
|
||||
|
||||
var v8toolsNative = requireNative("v8tools");
|
||||
|
||||
var DISPLAY_AVAILABLE_CHANGE_EVENT = "displayavailablechange";
|
||||
var _listeners = {};
|
||||
var _displayAvailable = false;
|
||||
var _nextRequestId = 0;
|
||||
var _showRequests = {};
|
||||
|
||||
function DOMError(msg) {
|
||||
this.name = msg;
|
||||
}
|
||||
|
||||
function ShowRequest(id, successCallback, errorCallback) {
|
||||
this._requestId = id;
|
||||
this._successCallback = successCallback;
|
||||
this._errorCallback = errorCallback;
|
||||
}
|
||||
|
||||
/* TODO(hmin): Add Promise support instead of callback approach. */
|
||||
function requestShowPresentation(url, successCallback, errorCallback) {
|
||||
if (typeof url !== "string" || typeof successCallback !== "function") {
|
||||
console.error("Invalid parameter for presentation.requestShow!");
|
||||
return;
|
||||
}
|
||||
|
||||
// errorCallback is optional.
|
||||
if (errorCallback && typeof errorCallback != "function") {
|
||||
console.error("Invalid parameter for presentation.requestShow!");
|
||||
return;
|
||||
}
|
||||
|
||||
var requestId = ++_nextRequestId;
|
||||
var request = new ShowRequest(requestId, successCallback, errorCallback);
|
||||
_showRequests[requestId] = request;
|
||||
// Requested url should be absolute.
|
||||
// If the requested url is relative, we need to combine it with baseUrl to make it absolute.
|
||||
var baseUrl = location.href.substring(0, location.href.lastIndexOf("/")+1);
|
||||
|
||||
var message = { "cmd": "RequestShow", "requestId": requestId, "url": url, "baseUrl": baseUrl };
|
||||
extension.postMessage(JSON.stringify(message));
|
||||
}
|
||||
|
||||
function addEventListener(name, callback, useCapture /* ignored */) {
|
||||
if (typeof name !== "string" || typeof callback !== "function") {
|
||||
console.error("Invalid parameter for presentation.addEventListener!");
|
||||
return;
|
||||
}
|
||||
|
||||
if (!_listeners[name])
|
||||
_listeners[name] = [];
|
||||
_listeners[name].push(callback);
|
||||
}
|
||||
|
||||
function removeEventListener(name, callback) {
|
||||
if (typeof name !== "string" || typeof callback !== "function") {
|
||||
console.error("Invalid parameter for presentation.removeEventListener!");
|
||||
return;
|
||||
}
|
||||
|
||||
if (_listeners[name]) {
|
||||
var index = _listeners[name].indexOf(callback);
|
||||
if (index != -1)
|
||||
_listeners[name].splice(index, 1);
|
||||
}
|
||||
}
|
||||
|
||||
function handleDisplayAvailableChange(isAvailable) {
|
||||
if (_displayAvailable == isAvailable)
|
||||
return;
|
||||
|
||||
_displayAvailable = isAvailable;
|
||||
if (!_listeners[DISPLAY_AVAILABLE_CHANGE_EVENT])
|
||||
return;
|
||||
|
||||
var length = _listeners[DISPLAY_AVAILABLE_CHANGE_EVENT].length;
|
||||
for (var i = 0; i < length; ++i) {
|
||||
_listeners[DISPLAY_AVAILABLE_CHANGE_EVENT][i].apply(null, null);
|
||||
}
|
||||
}
|
||||
|
||||
function handleShowSucceeded(requestId, viewId) {
|
||||
var request = _showRequests[requestId];
|
||||
if (request) {
|
||||
var view = v8toolsNative.getWindowObject(viewId);
|
||||
request._successCallback.apply(null, [view]);
|
||||
delete _showRequests[requestId];
|
||||
}
|
||||
}
|
||||
|
||||
function handleShowFailed(requestId, errorMessage) {
|
||||
var request = _showRequests[requestId];
|
||||
if (request) {
|
||||
var error = new DOMError(errorMessage);
|
||||
if (request._errorCallback)
|
||||
request._errorCallback.apply(null, [error]);
|
||||
delete _showRequests[requestId];
|
||||
}
|
||||
}
|
||||
|
||||
extension.setMessageListener(function(json) {
|
||||
var msg = JSON.parse(json);
|
||||
if (msg.cmd == "DisplayAvailableChange") {
|
||||
/* Using setTimeout here to ensure the error in user-defined event handler
|
||||
would be captured in developer tools. */
|
||||
setTimeout(function() {
|
||||
handleDisplayAvailableChange(msg.data);
|
||||
}, 0);
|
||||
} else if (msg.cmd == "ShowSucceeded") {
|
||||
setTimeout(function() {
|
||||
handleShowSucceeded(msg.requestId, parseInt(msg.data) /* view id */);
|
||||
}, 0);
|
||||
} else if (msg.cmd == "ShowFailed") {
|
||||
setTimeout(function() {
|
||||
handleShowFailed(msg.requestId, msg.data /* error message */);
|
||||
}, 0);
|
||||
} else {
|
||||
console.error("Invalid message : " + msg.cmd);
|
||||
}
|
||||
})
|
||||
|
||||
exports.requestShow = requestShowPresentation;
|
||||
exports.addEventListener = addEventListener;
|
||||
exports.removeEventListener = removeEventListener;
|
||||
exports.__defineSetter__("on" + DISPLAY_AVAILABLE_CHANGE_EVENT,
|
||||
function(callback) {
|
||||
if (callback)
|
||||
addEventListener(DISPLAY_AVAILABLE_CHANGE_EVENT, callback);
|
||||
else
|
||||
removeEventListener(DISPLAY_AVAILABLE_CHANGE_EVENT,
|
||||
this.ondisplayavailablechange);
|
||||
}
|
||||
);
|
||||
|
||||
exports.__defineGetter__("displayAvailable", function() {
|
||||
var res = extension.internal.sendSyncMessage("QueryDisplayAvailability");
|
||||
_displayAvailable = (res == "true" ? true : false);
|
||||
return _displayAvailable;
|
||||
});
|
||||
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<string name="actionbar_share">"አጋራ"</string>
|
||||
<string name="actionbar_web_search">"የድር ፍለጋ"</string>
|
||||
<string name="media_player_error_title">"ቪዲዮ ማጫወት አልተቻለም"</string>
|
||||
<string name="media_player_error_text_invalid_progressive_playback">"ይቅርታ፣ ይህ ቪዲዮ ወደዚህ መሣሪያ በዥረት ለመልቀቅ ልክ የሆነ አይደለም።"</string>
|
||||
<string name="media_player_error_text_unknown">"ይቅርታ፣ ይህ ቪዲዮ ሊጫወት አልቻለም።"</string>
|
||||
<string name="media_player_error_button">"ይሁን"</string>
|
||||
<string name="media_player_loading_video">"ቪዲዮን በመጫን ላይ"</string>
|
||||
<string name="profiler_started_toast">"መገለጫ ሰሪ ተጀምሯል"</string>
|
||||
<string name="profiler_stopped_toast">"መግለጫ ሰሪ ተጠናቅቋል። ውጤቶች በ%1$s ውስጥ ናቸው።"</string>
|
||||
<string name="profiler_no_storage_toast">"ውጫዊ ማከማቻ ዝግጁ ስላልሆነ መገለጫ ሰሪውን ማስጀመር አልተቻለም"</string>
|
||||
<string name="profiler_error_toast">"መገለጫ ሰሪውን ማስጀመር አልተሳካም"</string>
|
||||
</resources>
|
||||
@@ -0,0 +1,45 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<string name="low_memory_error">"በአነስተኛ ማህደረ ትውስታ ምክንያት ቀዳሚውን ክወና ማጠናቀቅ አልተቻለም"</string>
|
||||
<string name="opening_file_error">"የተመረጠውን ፋይል መክፈት አልተሳካም"</string>
|
||||
<string name="color_picker_button_more">"ተጨማሪ"</string>
|
||||
<string name="color_picker_hue">"ለይ ቀለም"</string>
|
||||
<string name="color_picker_saturation">"የቀለም ሙሌት"</string>
|
||||
<string name="color_picker_value">"እሴት"</string>
|
||||
<string name="color_picker_button_set">"አዘጋጅ"</string>
|
||||
<string name="color_picker_button_cancel">"ይቅር"</string>
|
||||
<string name="color_picker_dialog_title">"ቀለም ይምረጡ"</string>
|
||||
<string name="color_picker_button_red">"ቀይ"</string>
|
||||
<string name="color_picker_button_cyan">"ውሃ ሰማያዊ"</string>
|
||||
<string name="color_picker_button_blue">"ሰማያዊ"</string>
|
||||
<string name="color_picker_button_green">"አረንጓዴ"</string>
|
||||
<string name="color_picker_button_magenta">"ሮዝ"</string>
|
||||
<string name="color_picker_button_yellow">"ቢጫ"</string>
|
||||
<string name="color_picker_button_black">"ጥቁር"</string>
|
||||
<string name="color_picker_button_white">"ነጭ"</string>
|
||||
<string name="copy_to_clipboard_failure_message">"ወደ ቅንጥብ ሰሌዳው መቅዳት አልተሳካም"</string>
|
||||
<string name="accessibility_date_picker_month">"ወር"</string>
|
||||
<string name="accessibility_date_picker_year">"ዓመት"</string>
|
||||
<string name="date_picker_dialog_set">"አዘጋጅ"</string>
|
||||
<string name="month_picker_dialog_title">"ወር ያዘጋጁ"</string>
|
||||
<string name="accessibility_date_picker_week">"ሳምንት"</string>
|
||||
<string name="week_picker_dialog_title">"ሳምንት ያዘጋጁ"</string>
|
||||
<string name="time_picker_dialog_am">"ጥዋት"</string>
|
||||
<string name="time_picker_dialog_pm">"ከሰዓት"</string>
|
||||
<string name="time_picker_dialog_title">"ሰዓት ያዘጋጁ"</string>
|
||||
<string name="accessibility_time_picker_hour">"ሰዓት"</string>
|
||||
<string name="accessibility_time_picker_minute">"ደቂቃ"</string>
|
||||
<string name="accessibility_time_picker_second">"ሰከንድ"</string>
|
||||
<string name="accessibility_time_picker_milli">"ሚሊሰከንድ"</string>
|
||||
<string name="accessibility_time_picker_ampm">"ጥዋት/ከሰዓት"</string>
|
||||
<string name="time_picker_dialog_hour_minute_separator">":"</string>
|
||||
<string name="time_picker_dialog_minute_second_separator">":"</string>
|
||||
<string name="time_picker_dialog_second_subsecond_separator">"."</string>
|
||||
<string name="date_time_picker_dialog_title">"ቀን እና ሰዓት ያዘጋጁ"</string>
|
||||
<string name="accessibility_datetime_picker_date">"ቀን"</string>
|
||||
<string name="accessibility_datetime_picker_time">"ሰዓት"</string>
|
||||
<string name="date_picker_dialog_other_button_label">"ሌላ"</string>
|
||||
<string name="date_picker_dialog_title">"ቀን ያዘጋጁ"</string>
|
||||
<string name="date_picker_dialog_clear">"አጽዳ"</string>
|
||||
<string name="card_unmask_input_hint">"CVC"</string>
|
||||
</resources>
|
||||
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<string name="actionbar_share">"مشاركة"</string>
|
||||
<string name="actionbar_web_search">"بحث الويب"</string>
|
||||
<string name="media_player_error_title">"لا يمكن تشغيل الفيديو"</string>
|
||||
<string name="media_player_error_text_invalid_progressive_playback">"عذرًا، هذا الفيديو غير صالح للبث إلى هذا الجهاز."</string>
|
||||
<string name="media_player_error_text_unknown">"عذرًا، لا يمكن تشغيل هذا الفيديو."</string>
|
||||
<string name="media_player_error_button">"موافق"</string>
|
||||
<string name="media_player_loading_video">"تحميل الفيديو"</string>
|
||||
<string name="profiler_started_toast">"تم بدء المحلل"</string>
|
||||
<string name="profiler_stopped_toast">"انتهى المحلل. توجد النتائج في %1$s."</string>
|
||||
<string name="profiler_no_storage_toast">"لا يمكن بدء المحلل لأن وحدة التخزين الخارجية غير جاهزة"</string>
|
||||
<string name="profiler_error_toast">"أخفق بدء المحلل"</string>
|
||||
</resources>
|
||||
@@ -0,0 +1,45 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<string name="low_memory_error">"تعذر إكمال العملية السابقة نظرًا لانخفاض الذاكرة"</string>
|
||||
<string name="opening_file_error">"أخفق فتح الملف المحدد"</string>
|
||||
<string name="color_picker_button_more">"المزيد"</string>
|
||||
<string name="color_picker_hue">"تدرج اللون"</string>
|
||||
<string name="color_picker_saturation">"تشبع اللون"</string>
|
||||
<string name="color_picker_value">"القيمة"</string>
|
||||
<string name="color_picker_button_set">"تعيين"</string>
|
||||
<string name="color_picker_button_cancel">"إلغاء"</string>
|
||||
<string name="color_picker_dialog_title">"اختيار اللون"</string>
|
||||
<string name="color_picker_button_red">"أحمر"</string>
|
||||
<string name="color_picker_button_cyan">"سماوي"</string>
|
||||
<string name="color_picker_button_blue">"أزرق"</string>
|
||||
<string name="color_picker_button_green">"أخضر"</string>
|
||||
<string name="color_picker_button_magenta">"أرجواني"</string>
|
||||
<string name="color_picker_button_yellow">"أصفر"</string>
|
||||
<string name="color_picker_button_black">"أسود"</string>
|
||||
<string name="color_picker_button_white">"أبيض"</string>
|
||||
<string name="copy_to_clipboard_failure_message">"أخفق النسخ إلى الحافظة"</string>
|
||||
<string name="accessibility_date_picker_month">"شهر"</string>
|
||||
<string name="accessibility_date_picker_year">"عام"</string>
|
||||
<string name="date_picker_dialog_set">"تعيين"</string>
|
||||
<string name="month_picker_dialog_title">"تعيين الشهر"</string>
|
||||
<string name="accessibility_date_picker_week">"الأسبوع"</string>
|
||||
<string name="week_picker_dialog_title">"تعيين الأسبوع"</string>
|
||||
<string name="time_picker_dialog_am">"صباحًا"</string>
|
||||
<string name="time_picker_dialog_pm">"مساءً"</string>
|
||||
<string name="time_picker_dialog_title">"تعيين الوقت"</string>
|
||||
<string name="accessibility_time_picker_hour">"الساعات"</string>
|
||||
<string name="accessibility_time_picker_minute">"الدقائق"</string>
|
||||
<string name="accessibility_time_picker_second">"الثواني"</string>
|
||||
<string name="accessibility_time_picker_milli">"مللي ثانية"</string>
|
||||
<string name="accessibility_time_picker_ampm">"صباحًا/مساءً"</string>
|
||||
<string name="time_picker_dialog_hour_minute_separator">":"</string>
|
||||
<string name="time_picker_dialog_minute_second_separator">":"</string>
|
||||
<string name="time_picker_dialog_second_subsecond_separator">"."</string>
|
||||
<string name="date_time_picker_dialog_title">"تعيين التاريخ والوقت"</string>
|
||||
<string name="accessibility_datetime_picker_date">"التاريخ"</string>
|
||||
<string name="accessibility_datetime_picker_time">"الوقت"</string>
|
||||
<string name="date_picker_dialog_other_button_label">"أخرى"</string>
|
||||
<string name="date_picker_dialog_title">"تعيين التاريخ"</string>
|
||||
<string name="date_picker_dialog_clear">"محو"</string>
|
||||
<string name="card_unmask_input_hint">"CVC"</string>
|
||||
</resources>
|
||||
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<string name="actionbar_share">"Споделяне"</string>
|
||||
<string name="actionbar_web_search">"Търсене в мрежата"</string>
|
||||
<string name="media_player_error_title">"Видеоклипът не може да се пусне"</string>
|
||||
<string name="media_player_error_text_invalid_progressive_playback">"За съжаление този видеоклип не е валиден за поточно предаване към устройството."</string>
|
||||
<string name="media_player_error_text_unknown">"За съжаление този видеоклип не може да се пусне."</string>
|
||||
<string name="media_player_error_button">"OK"</string>
|
||||
<string name="media_player_loading_video">"Клип: Зарежда се"</string>
|
||||
<string name="profiler_started_toast">"Профайлерът стартира"</string>
|
||||
<string name="profiler_stopped_toast">"Профайлерът приключи. Резултатите са в/ъв „%1$s“."</string>
|
||||
<string name="profiler_no_storage_toast">"Не можем да стартираме профайлера, защото външното хранилище не е готово"</string>
|
||||
<string name="profiler_error_toast">"Стартирането на профайлера не бе успешно"</string>
|
||||
</resources>
|
||||
@@ -0,0 +1,45 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<string name="low_memory_error">"Предишната операция не можа да завърши поради недостиг на памет"</string>
|
||||
<string name="opening_file_error">"Файлът не можа да се отвори"</string>
|
||||
<string name="color_picker_button_more">"Още"</string>
|
||||
<string name="color_picker_hue">"Цветови тон"</string>
|
||||
<string name="color_picker_saturation">"Насищане"</string>
|
||||
<string name="color_picker_value">"Стойност"</string>
|
||||
<string name="color_picker_button_set">"Задаване"</string>
|
||||
<string name="color_picker_button_cancel">"Отказ"</string>
|
||||
<string name="color_picker_dialog_title">"Избор на цвят"</string>
|
||||
<string name="color_picker_button_red">"червено"</string>
|
||||
<string name="color_picker_button_cyan">"синьозелено"</string>
|
||||
<string name="color_picker_button_blue">"синьо"</string>
|
||||
<string name="color_picker_button_green">"зелено"</string>
|
||||
<string name="color_picker_button_magenta">"пурпурно"</string>
|
||||
<string name="color_picker_button_yellow">"жълто"</string>
|
||||
<string name="color_picker_button_black">"черно"</string>
|
||||
<string name="color_picker_button_white">"бяло"</string>
|
||||
<string name="copy_to_clipboard_failure_message">"Копирането в буферната памет не бе успешно"</string>
|
||||
<string name="accessibility_date_picker_month">"Месец"</string>
|
||||
<string name="accessibility_date_picker_year">"Година"</string>
|
||||
<string name="date_picker_dialog_set">"Задаване"</string>
|
||||
<string name="month_picker_dialog_title">"Задаване на месеца"</string>
|
||||
<string name="accessibility_date_picker_week">"Седмица"</string>
|
||||
<string name="week_picker_dialog_title">"Задаване на седмицата"</string>
|
||||
<string name="time_picker_dialog_am">"AM"</string>
|
||||
<string name="time_picker_dialog_pm">"PM"</string>
|
||||
<string name="time_picker_dialog_title">"Задаване на часа"</string>
|
||||
<string name="accessibility_time_picker_hour">"Час"</string>
|
||||
<string name="accessibility_time_picker_minute">"Mинута"</string>
|
||||
<string name="accessibility_time_picker_second">"Секунда"</string>
|
||||
<string name="accessibility_time_picker_milli">"Милисекунда"</string>
|
||||
<string name="accessibility_time_picker_ampm">"AM/PM"</string>
|
||||
<string name="time_picker_dialog_hour_minute_separator">":"</string>
|
||||
<string name="time_picker_dialog_minute_second_separator">":"</string>
|
||||
<string name="time_picker_dialog_second_subsecond_separator">"."</string>
|
||||
<string name="date_time_picker_dialog_title">"Задаване на датата и часа"</string>
|
||||
<string name="accessibility_datetime_picker_date">"Дата"</string>
|
||||
<string name="accessibility_datetime_picker_time">"Време"</string>
|
||||
<string name="date_picker_dialog_other_button_label">"Друго"</string>
|
||||
<string name="date_picker_dialog_title">"Задаване на датата"</string>
|
||||
<string name="date_picker_dialog_clear">"Изчистване"</string>
|
||||
<string name="card_unmask_input_hint">"Код за сигурност"</string>
|
||||
</resources>
|
||||
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<string name="actionbar_share">"Comparteix"</string>
|
||||
<string name="actionbar_web_search">"Cerca al web"</string>
|
||||
<string name="media_player_error_title">"No es pot reproduir el vídeo"</string>
|
||||
<string name="media_player_error_text_invalid_progressive_playback">"Aquest vídeo no és vàlid per reproduir-lo en temps real en aquest dispositiu."</string>
|
||||
<string name="media_player_error_text_unknown">"No es pot reproduir aquest vídeo."</string>
|
||||
<string name="media_player_error_button">"D\'acord"</string>
|
||||
<string name="media_player_loading_video">"Carregant vídeo"</string>
|
||||
<string name="profiler_started_toast">"El generador de perfils s\'ha iniciat."</string>
|
||||
<string name="profiler_stopped_toast">"El generador de perfils ha finalitzat. Els resultats són a %1$s."</string>
|
||||
<string name="profiler_no_storage_toast">"No es pot iniciar el generador de perfils perquè l\'emmagatzematge extern no està preparat."</string>
|
||||
<string name="profiler_error_toast">"S\'ha produït un error en iniciar el generador de perfils."</string>
|
||||
</resources>
|
||||
@@ -0,0 +1,45 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<string name="low_memory_error">"No es pot completar l\'operació anterior perquè hi ha poca memòria."</string>
|
||||
<string name="opening_file_error">"No s\'ha pogut obrir fitxer sel."</string>
|
||||
<string name="color_picker_button_more">"Més"</string>
|
||||
<string name="color_picker_hue">"To"</string>
|
||||
<string name="color_picker_saturation">"Saturació"</string>
|
||||
<string name="color_picker_value">"Valor"</string>
|
||||
<string name="color_picker_button_set">"Configura"</string>
|
||||
<string name="color_picker_button_cancel">"Cancel·la"</string>
|
||||
<string name="color_picker_dialog_title">"Selecció de color"</string>
|
||||
<string name="color_picker_button_red">"Vermell"</string>
|
||||
<string name="color_picker_button_cyan">"Cian"</string>
|
||||
<string name="color_picker_button_blue">"Blau"</string>
|
||||
<string name="color_picker_button_green">"Verd"</string>
|
||||
<string name="color_picker_button_magenta">"Magenta"</string>
|
||||
<string name="color_picker_button_yellow">"Groc"</string>
|
||||
<string name="color_picker_button_black">"Negre"</string>
|
||||
<string name="color_picker_button_white">"Blanc"</string>
|
||||
<string name="copy_to_clipboard_failure_message">"No s\'ha pogut copiar el contingut al porta-retalls."</string>
|
||||
<string name="accessibility_date_picker_month">"Mes"</string>
|
||||
<string name="accessibility_date_picker_year">"Any"</string>
|
||||
<string name="date_picker_dialog_set">"Configura"</string>
|
||||
<string name="month_picker_dialog_title">"Defineix el mes"</string>
|
||||
<string name="accessibility_date_picker_week">"Setmana"</string>
|
||||
<string name="week_picker_dialog_title">"Defineix la setmana"</string>
|
||||
<string name="time_picker_dialog_am">"a.m."</string>
|
||||
<string name="time_picker_dialog_pm">"p.m."</string>
|
||||
<string name="time_picker_dialog_title">"Defineix l\'hora"</string>
|
||||
<string name="accessibility_time_picker_hour">"Hora"</string>
|
||||
<string name="accessibility_time_picker_minute">"Minut"</string>
|
||||
<string name="accessibility_time_picker_second">"Segon"</string>
|
||||
<string name="accessibility_time_picker_milli">"Mil·lisegon"</string>
|
||||
<string name="accessibility_time_picker_ampm">"a. m./p. m."</string>
|
||||
<string name="time_picker_dialog_hour_minute_separator">":"</string>
|
||||
<string name="time_picker_dialog_minute_second_separator">":"</string>
|
||||
<string name="time_picker_dialog_second_subsecond_separator">"."</string>
|
||||
<string name="date_time_picker_dialog_title">"Defineix la data i l\'hora"</string>
|
||||
<string name="accessibility_datetime_picker_date">"Data"</string>
|
||||
<string name="accessibility_datetime_picker_time">"Hora"</string>
|
||||
<string name="date_picker_dialog_other_button_label">"Altres"</string>
|
||||
<string name="date_picker_dialog_title">"Defineix la data"</string>
|
||||
<string name="date_picker_dialog_clear">"Esborra"</string>
|
||||
<string name="card_unmask_input_hint">"CVC"</string>
|
||||
</resources>
|
||||
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<string name="actionbar_share">"Sdílet"</string>
|
||||
<string name="actionbar_web_search">"Vyhledávání na webu"</string>
|
||||
<string name="media_player_error_title">"Video nelze přehrát"</string>
|
||||
<string name="media_player_error_text_invalid_progressive_playback">"Video do zařízení nelze streamovat."</string>
|
||||
<string name="media_player_error_text_unknown">"Toto video nelze přehrát."</string>
|
||||
<string name="media_player_error_button">"OK"</string>
|
||||
<string name="media_player_loading_video">"Načítání videa"</string>
|
||||
<string name="profiler_started_toast">"Nástroj profiler byl spuštěn"</string>
|
||||
<string name="profiler_stopped_toast">"Nástroj profiler byl ukončen. Výsledky naleznete v souboru %1$s."</string>
|
||||
<string name="profiler_no_storage_toast">"Nástroj profiler nelze spustit, protože externí zařízení není připraveno"</string>
|
||||
<string name="profiler_error_toast">"Spuštění nástroje profiler se nezdařilo"</string>
|
||||
</resources>
|
||||
@@ -0,0 +1,45 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<string name="low_memory_error">"Předchozí operaci nelze dokončit z důvodu nedostatku paměti"</string>
|
||||
<string name="opening_file_error">"Vybraný soubor nelze otevřít"</string>
|
||||
<string name="color_picker_button_more">"Více"</string>
|
||||
<string name="color_picker_hue">"Odstín"</string>
|
||||
<string name="color_picker_saturation">"Sytost"</string>
|
||||
<string name="color_picker_value">"Hodnota"</string>
|
||||
<string name="color_picker_button_set">"Nastavit"</string>
|
||||
<string name="color_picker_button_cancel">"Zrušit"</string>
|
||||
<string name="color_picker_dialog_title">"Výběr barvy"</string>
|
||||
<string name="color_picker_button_red">"Červená"</string>
|
||||
<string name="color_picker_button_cyan">"Azurová"</string>
|
||||
<string name="color_picker_button_blue">"Modrá"</string>
|
||||
<string name="color_picker_button_green">"Zelená"</string>
|
||||
<string name="color_picker_button_magenta">"Purpurová"</string>
|
||||
<string name="color_picker_button_yellow">"Žlutá"</string>
|
||||
<string name="color_picker_button_black">"Černá"</string>
|
||||
<string name="color_picker_button_white">"Bílá"</string>
|
||||
<string name="copy_to_clipboard_failure_message">"Zkopírování obsahu do schránky se nezdařilo"</string>
|
||||
<string name="accessibility_date_picker_month">"Měsíc"</string>
|
||||
<string name="accessibility_date_picker_year">"Rok"</string>
|
||||
<string name="date_picker_dialog_set">"Nastavit"</string>
|
||||
<string name="month_picker_dialog_title">"Nastavení měsíce"</string>
|
||||
<string name="accessibility_date_picker_week">"Týden"</string>
|
||||
<string name="week_picker_dialog_title">"Nastavení týdne"</string>
|
||||
<string name="time_picker_dialog_am">"AM"</string>
|
||||
<string name="time_picker_dialog_pm">"PM"</string>
|
||||
<string name="time_picker_dialog_title">"Nastavení času"</string>
|
||||
<string name="accessibility_time_picker_hour">"Hodina"</string>
|
||||
<string name="accessibility_time_picker_minute">"Minuta"</string>
|
||||
<string name="accessibility_time_picker_second">"Sekunda"</string>
|
||||
<string name="accessibility_time_picker_milli">"Milisekunda"</string>
|
||||
<string name="accessibility_time_picker_ampm">"AM/PM"</string>
|
||||
<string name="time_picker_dialog_hour_minute_separator">":"</string>
|
||||
<string name="time_picker_dialog_minute_second_separator">":"</string>
|
||||
<string name="time_picker_dialog_second_subsecond_separator">","</string>
|
||||
<string name="date_time_picker_dialog_title">"Nastavení data a času"</string>
|
||||
<string name="accessibility_datetime_picker_date">"Datum"</string>
|
||||
<string name="accessibility_datetime_picker_time">"Čas"</string>
|
||||
<string name="date_picker_dialog_other_button_label">"Ostatní"</string>
|
||||
<string name="date_picker_dialog_title">"Nastavení data"</string>
|
||||
<string name="date_picker_dialog_clear">"Vymazat"</string>
|
||||
<string name="card_unmask_input_hint">"Bezpečnostní kód platební karty (CVC)"</string>
|
||||
</resources>
|
||||
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<string name="actionbar_share">"Del"</string>
|
||||
<string name="actionbar_web_search">"Websøgning"</string>
|
||||
<string name="media_player_error_title">"Videoen kan ikke afspilles"</string>
|
||||
<string name="media_player_error_text_invalid_progressive_playback">"Denne video er ikke gyldig til streaming på denne enhed."</string>
|
||||
<string name="media_player_error_text_unknown">"Denne video kan ikke afspilles."</string>
|
||||
<string name="media_player_error_button">"OK"</string>
|
||||
<string name="media_player_loading_video">"Videoen indlæses"</string>
|
||||
<string name="profiler_started_toast">"Profileringsværktøjet er startet"</string>
|
||||
<string name="profiler_stopped_toast">"Profileringsværktøjet er færdigt. Resultaterne er i %1$s."</string>
|
||||
<string name="profiler_no_storage_toast">"Profileringsværktøjet kan ikke startes, fordi det eksterne lager ikke er klar"</string>
|
||||
<string name="profiler_error_toast">"Profileringsværktøjet kunne ikke startes"</string>
|
||||
</resources>
|
||||
@@ -0,0 +1,45 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<string name="low_memory_error">"Den tidligerere handling kunne ikke fuldføres på grund af manglende hukommelse"</string>
|
||||
<string name="opening_file_error">"Den valgte fil kunne ikke åbnes"</string>
|
||||
<string name="color_picker_button_more">"Mere"</string>
|
||||
<string name="color_picker_hue">"Farvetone"</string>
|
||||
<string name="color_picker_saturation">"Mætning"</string>
|
||||
<string name="color_picker_value">"Værdi"</string>
|
||||
<string name="color_picker_button_set">"Angiv"</string>
|
||||
<string name="color_picker_button_cancel">"Annuller"</string>
|
||||
<string name="color_picker_dialog_title">"Vælg farve"</string>
|
||||
<string name="color_picker_button_red">"Rød"</string>
|
||||
<string name="color_picker_button_cyan">"Cyan"</string>
|
||||
<string name="color_picker_button_blue">"Blå"</string>
|
||||
<string name="color_picker_button_green">"Grøn"</string>
|
||||
<string name="color_picker_button_magenta">"Magenta"</string>
|
||||
<string name="color_picker_button_yellow">"Gul"</string>
|
||||
<string name="color_picker_button_black">"Sort"</string>
|
||||
<string name="color_picker_button_white">"Hvid"</string>
|
||||
<string name="copy_to_clipboard_failure_message">"Der kunne ikke kopieres til udklipsholder"</string>
|
||||
<string name="accessibility_date_picker_month">"Måned"</string>
|
||||
<string name="accessibility_date_picker_year">"År"</string>
|
||||
<string name="date_picker_dialog_set">"Angiv"</string>
|
||||
<string name="month_picker_dialog_title">"Angiv måned"</string>
|
||||
<string name="accessibility_date_picker_week">"Uge"</string>
|
||||
<string name="week_picker_dialog_title">"Angiv uge"</string>
|
||||
<string name="time_picker_dialog_am">"AM"</string>
|
||||
<string name="time_picker_dialog_pm">"PM"</string>
|
||||
<string name="time_picker_dialog_title">"Angiv klokkeslæt"</string>
|
||||
<string name="accessibility_time_picker_hour">"Time"</string>
|
||||
<string name="accessibility_time_picker_minute">"Minut"</string>
|
||||
<string name="accessibility_time_picker_second">"Sekund"</string>
|
||||
<string name="accessibility_time_picker_milli">"Millisekund"</string>
|
||||
<string name="accessibility_time_picker_ampm">"AM/PM"</string>
|
||||
<string name="time_picker_dialog_hour_minute_separator">":"</string>
|
||||
<string name="time_picker_dialog_minute_second_separator">":"</string>
|
||||
<string name="time_picker_dialog_second_subsecond_separator">"."</string>
|
||||
<string name="date_time_picker_dialog_title">"Angiv dato og klokkeslæt"</string>
|
||||
<string name="accessibility_datetime_picker_date">"Dato"</string>
|
||||
<string name="accessibility_datetime_picker_time">"Tid"</string>
|
||||
<string name="date_picker_dialog_other_button_label">"Andet"</string>
|
||||
<string name="date_picker_dialog_title">"Angiv dato"</string>
|
||||
<string name="date_picker_dialog_clear">"Ryd"</string>
|
||||
<string name="card_unmask_input_hint">"CVC"</string>
|
||||
</resources>
|
||||
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<string name="actionbar_share">"Teilen"</string>
|
||||
<string name="actionbar_web_search">"Websuche"</string>
|
||||
<string name="media_player_error_title">"Videowiedergabe nicht möglich"</string>
|
||||
<string name="media_player_error_text_invalid_progressive_playback">"Leider ist dieses Video nicht für Streaming auf diesem Gerät gültig."</string>
|
||||
<string name="media_player_error_text_unknown">"Dieses Video kann leider nicht abgespielt werden."</string>
|
||||
<string name="media_player_error_button">"OK"</string>
|
||||
<string name="media_player_loading_video">"Video wird geladen"</string>
|
||||
<string name="profiler_started_toast">"Profiler gestartet"</string>
|
||||
<string name="profiler_stopped_toast">"Profiler ist fertig. Die Ergebnisse befinden sich in der Datei %1$s."</string>
|
||||
<string name="profiler_no_storage_toast">"Profiler kann nicht gestartet werden, da der externe Speicher nicht bereit ist."</string>
|
||||
<string name="profiler_error_toast">"Profiler konnte nicht gestartet werden."</string>
|
||||
</resources>
|
||||
@@ -0,0 +1,45 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<string name="low_memory_error">"Zu wenig Speicher für vorherige Operation"</string>
|
||||
<string name="opening_file_error">"Fehler beim Öffnen der Datei"</string>
|
||||
<string name="color_picker_button_more">"Mehr"</string>
|
||||
<string name="color_picker_hue">"Farbton"</string>
|
||||
<string name="color_picker_saturation">"Sättigung"</string>
|
||||
<string name="color_picker_value">"Wert"</string>
|
||||
<string name="color_picker_button_set">"Festlegen"</string>
|
||||
<string name="color_picker_button_cancel">"Abbrechen"</string>
|
||||
<string name="color_picker_dialog_title">"Farbe auswählen"</string>
|
||||
<string name="color_picker_button_red">"Rot"</string>
|
||||
<string name="color_picker_button_cyan">"Cyan"</string>
|
||||
<string name="color_picker_button_blue">"Blau"</string>
|
||||
<string name="color_picker_button_green">"Grün"</string>
|
||||
<string name="color_picker_button_magenta">"Magenta"</string>
|
||||
<string name="color_picker_button_yellow">"Gelb"</string>
|
||||
<string name="color_picker_button_black">"Schwarz"</string>
|
||||
<string name="color_picker_button_white">"Weiß"</string>
|
||||
<string name="copy_to_clipboard_failure_message">"Fehler beim Kopieren in die Zwischenablage"</string>
|
||||
<string name="accessibility_date_picker_month">"Monat"</string>
|
||||
<string name="accessibility_date_picker_year">"Jahr"</string>
|
||||
<string name="date_picker_dialog_set">"Festlegen"</string>
|
||||
<string name="month_picker_dialog_title">"Monat festlegen"</string>
|
||||
<string name="accessibility_date_picker_week">"Woche"</string>
|
||||
<string name="week_picker_dialog_title">"Woche festlegen"</string>
|
||||
<string name="time_picker_dialog_am">"AM"</string>
|
||||
<string name="time_picker_dialog_pm">"PM"</string>
|
||||
<string name="time_picker_dialog_title">"Uhrzeit festlegen"</string>
|
||||
<string name="accessibility_time_picker_hour">"Stunde"</string>
|
||||
<string name="accessibility_time_picker_minute">"Minute"</string>
|
||||
<string name="accessibility_time_picker_second">"Sekunde"</string>
|
||||
<string name="accessibility_time_picker_milli">"Millisekunde"</string>
|
||||
<string name="accessibility_time_picker_ampm">"AM/PM"</string>
|
||||
<string name="time_picker_dialog_hour_minute_separator">":"</string>
|
||||
<string name="time_picker_dialog_minute_second_separator">":"</string>
|
||||
<string name="time_picker_dialog_second_subsecond_separator">"."</string>
|
||||
<string name="date_time_picker_dialog_title">"Datum und Uhrzeit festlegen"</string>
|
||||
<string name="accessibility_datetime_picker_date">"Datum"</string>
|
||||
<string name="accessibility_datetime_picker_time">"Zeit"</string>
|
||||
<string name="date_picker_dialog_other_button_label">"Sonstiges"</string>
|
||||
<string name="date_picker_dialog_title">"Datum festlegen"</string>
|
||||
<string name="date_picker_dialog_clear">"Löschen"</string>
|
||||
<string name="card_unmask_input_hint">"CVC"</string>
|
||||
</resources>
|
||||
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<string name="actionbar_share">"Κοινή χρήση"</string>
|
||||
<string name="actionbar_web_search">"Αναζήτηση στον Ιστό"</string>
|
||||
<string name="media_player_error_title">"Αδύνατη αναπαραγωγή βίντεο"</string>
|
||||
<string name="media_player_error_text_invalid_progressive_playback">"Δυστυχώς, αυτό το βίντεο δεν είναι έγκυρο για ροή σε αυτήν τη συσκευή."</string>
|
||||
<string name="media_player_error_text_unknown">"Δυστυχώς, δεν είναι δυνατή η αναπαραγωγή αυτού του βίντεο."</string>
|
||||
<string name="media_player_error_button">"OK"</string>
|
||||
<string name="media_player_loading_video">"Φόρτωση βίντεο"</string>
|
||||
<string name="profiler_started_toast">"Η λειτουργία του προγράμματος προφίλ έχει ξεκινήσει"</string>
|
||||
<string name="profiler_stopped_toast">"Η λειτουργία του προγράμματος προφίλ ολοκληρώθηκε. Τα αποτελέσματα βρίσκονται στο αρχείο %1$s."</string>
|
||||
<string name="profiler_no_storage_toast">"Δεν είναι δυνατή η έναρξη του προγράμματος προφίλ επειδή ο εξωτερικός χώρος αποθήκευσης δεν είναι έτοιμος"</string>
|
||||
<string name="profiler_error_toast">"Αποτυχία έναρξης προγράμματος προφίλ"</string>
|
||||
</resources>
|
||||
@@ -0,0 +1,45 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<string name="low_memory_error">"Δεν ήταν δυνατή η ολοκλήρωση της προηγούμενης λειτουργίας λόγω χαμηλού επιπέδου μνήμης"</string>
|
||||
<string name="opening_file_error">"Αποτυχ. ανοίγμ. επιλεγμ. αρχείου"</string>
|
||||
<string name="color_picker_button_more">"Περισσότερα"</string>
|
||||
<string name="color_picker_hue">"Απόχρωση"</string>
|
||||
<string name="color_picker_saturation">"Κορεσμός"</string>
|
||||
<string name="color_picker_value">"Τιμή"</string>
|
||||
<string name="color_picker_button_set">"Ορισμός"</string>
|
||||
<string name="color_picker_button_cancel">"Ακύρωση"</string>
|
||||
<string name="color_picker_dialog_title">"Επιλογή χρώματος"</string>
|
||||
<string name="color_picker_button_red">"Κόκκινο"</string>
|
||||
<string name="color_picker_button_cyan">"Κυανό"</string>
|
||||
<string name="color_picker_button_blue">"Μπλε"</string>
|
||||
<string name="color_picker_button_green">"Πράσινο"</string>
|
||||
<string name="color_picker_button_magenta">"Ματζέντα"</string>
|
||||
<string name="color_picker_button_yellow">"Κίτρινο"</string>
|
||||
<string name="color_picker_button_black">"Μαύρο"</string>
|
||||
<string name="color_picker_button_white">"Λευκό"</string>
|
||||
<string name="copy_to_clipboard_failure_message">"Αποτυχία αντιγραφής στο πρόχειρο"</string>
|
||||
<string name="accessibility_date_picker_month">"Μήνας"</string>
|
||||
<string name="accessibility_date_picker_year">"Έτος"</string>
|
||||
<string name="date_picker_dialog_set">"Ορισμός"</string>
|
||||
<string name="month_picker_dialog_title">"Ορισμός μήνα"</string>
|
||||
<string name="accessibility_date_picker_week">"Εβδομάδα"</string>
|
||||
<string name="week_picker_dialog_title">"Ορισμός εβδομάδας"</string>
|
||||
<string name="time_picker_dialog_am">"π.μ."</string>
|
||||
<string name="time_picker_dialog_pm">"μ.μ."</string>
|
||||
<string name="time_picker_dialog_title">"Ορισμός χρόνου"</string>
|
||||
<string name="accessibility_time_picker_hour">"Ώρα"</string>
|
||||
<string name="accessibility_time_picker_minute">"Λεπτό"</string>
|
||||
<string name="accessibility_time_picker_second">"Δευτερόλεπτο"</string>
|
||||
<string name="accessibility_time_picker_milli">"Χιλιοστό του δευτερολέπτου"</string>
|
||||
<string name="accessibility_time_picker_ampm">"Π.Μ./Μ.Μ."</string>
|
||||
<string name="time_picker_dialog_hour_minute_separator">":"</string>
|
||||
<string name="time_picker_dialog_minute_second_separator">":"</string>
|
||||
<string name="time_picker_dialog_second_subsecond_separator">"."</string>
|
||||
<string name="date_time_picker_dialog_title">"Ορισμός ημερομηνίας και ώρας"</string>
|
||||
<string name="accessibility_datetime_picker_date">"Ημερομηνία"</string>
|
||||
<string name="accessibility_datetime_picker_time">"Ώρα"</string>
|
||||
<string name="date_picker_dialog_other_button_label">"Άλλο"</string>
|
||||
<string name="date_picker_dialog_title">"Ορισμός ημερομηνίας"</string>
|
||||
<string name="date_picker_dialog_clear">"Διαγραφή"</string>
|
||||
<string name="card_unmask_input_hint">"CVC"</string>
|
||||
</resources>
|
||||
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<string name="actionbar_share">"Share"</string>
|
||||
<string name="actionbar_web_search">"Web search"</string>
|
||||
<string name="media_player_error_title">"Cannot play video"</string>
|
||||
<string name="media_player_error_text_invalid_progressive_playback">"Sorry, this video is not valid for streaming to this device."</string>
|
||||
<string name="media_player_error_text_unknown">"Sorry, this video cannot be played."</string>
|
||||
<string name="media_player_error_button">"OK"</string>
|
||||
<string name="media_player_loading_video">"Loading video"</string>
|
||||
<string name="profiler_started_toast">"Profiler started"</string>
|
||||
<string name="profiler_stopped_toast">"Profiler finished. Results are in %1$s."</string>
|
||||
<string name="profiler_no_storage_toast">"Can\'t start profiler because external storage is not ready"</string>
|
||||
<string name="profiler_error_toast">"Failed to start profiler"</string>
|
||||
</resources>
|
||||
@@ -0,0 +1,45 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<string name="low_memory_error">"Unable to complete previous operation due to low memory"</string>
|
||||
<string name="opening_file_error">"Failed to open selected file"</string>
|
||||
<string name="color_picker_button_more">"More"</string>
|
||||
<string name="color_picker_hue">"Hue"</string>
|
||||
<string name="color_picker_saturation">"Saturation"</string>
|
||||
<string name="color_picker_value">"Value"</string>
|
||||
<string name="color_picker_button_set">"Set"</string>
|
||||
<string name="color_picker_button_cancel">"Cancel"</string>
|
||||
<string name="color_picker_dialog_title">"Select colour"</string>
|
||||
<string name="color_picker_button_red">"Red"</string>
|
||||
<string name="color_picker_button_cyan">"Cyan"</string>
|
||||
<string name="color_picker_button_blue">"Blue"</string>
|
||||
<string name="color_picker_button_green">"Green"</string>
|
||||
<string name="color_picker_button_magenta">"Magenta"</string>
|
||||
<string name="color_picker_button_yellow">"Yellow"</string>
|
||||
<string name="color_picker_button_black">"Black"</string>
|
||||
<string name="color_picker_button_white">"White"</string>
|
||||
<string name="copy_to_clipboard_failure_message">"Failed to copy to the clipboard"</string>
|
||||
<string name="accessibility_date_picker_month">"Month"</string>
|
||||
<string name="accessibility_date_picker_year">"Year"</string>
|
||||
<string name="date_picker_dialog_set">"Set"</string>
|
||||
<string name="month_picker_dialog_title">"Set month"</string>
|
||||
<string name="accessibility_date_picker_week">"Week"</string>
|
||||
<string name="week_picker_dialog_title">"Set week"</string>
|
||||
<string name="time_picker_dialog_am">"a.m."</string>
|
||||
<string name="time_picker_dialog_pm">"p.m."</string>
|
||||
<string name="time_picker_dialog_title">"Set time"</string>
|
||||
<string name="accessibility_time_picker_hour">"Hour"</string>
|
||||
<string name="accessibility_time_picker_minute">"Minute"</string>
|
||||
<string name="accessibility_time_picker_second">"Second"</string>
|
||||
<string name="accessibility_time_picker_milli">"Millisecond"</string>
|
||||
<string name="accessibility_time_picker_ampm">"AM/PM"</string>
|
||||
<string name="time_picker_dialog_hour_minute_separator">":"</string>
|
||||
<string name="time_picker_dialog_minute_second_separator">":"</string>
|
||||
<string name="time_picker_dialog_second_subsecond_separator">"."</string>
|
||||
<string name="date_time_picker_dialog_title">"Set date and time"</string>
|
||||
<string name="accessibility_datetime_picker_date">"Date"</string>
|
||||
<string name="accessibility_datetime_picker_time">"Time"</string>
|
||||
<string name="date_picker_dialog_other_button_label">"Other"</string>
|
||||
<string name="date_picker_dialog_title">"Set date"</string>
|
||||
<string name="date_picker_dialog_clear">"Clear"</string>
|
||||
<string name="card_unmask_input_hint">"CVC"</string>
|
||||
</resources>
|
||||