batch invitation

// FREEBIE
This commit is contained in:
Jake McGinty
2015-10-19 11:23:12 -07:00
committed by Moxie Marlinspike
parent 4371708fc4
commit 3e798a9863
47 changed files with 942 additions and 341 deletions

View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<translate
android:duration="350"
android:fromYDelta="100%"
android:toYDelta="0%" />
</set>

View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" >
<translate
android:duration="350"
android:fromYDelta="0%"
android:toYDelta="100%" />
</set>

Binary file not shown.

After

Width:  |  Height:  |  Size: 354 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 398 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 217 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 267 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 320 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 531 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 506 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 833 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 249 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 670 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 KiB

View File

@@ -0,0 +1,76 @@
<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<ImageView android:id="@+id/action_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:gravity="center_vertical"
android:clickable="true"
android:background="@drawable/circle_touch_highlight_background"
android:src="@drawable/ic_search_white_24dp" />
<LinearLayout android:id="@+id/toggle_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<EditText android:id="@+id/search_view"
android:layout_height="wrap_content"
android:layout_width="0px"
android:layout_weight="1"
android:layout_marginLeft="5dp"
android:hint="@string/contact_selection_activity__enter_name_or_number"
android:inputType="textPersonName"
style="@style/TextSecure.TitleTextStyle"
android:background="@android:color/transparent"
android:layout_gravity="center_vertical"
android:gravity="center_vertical"/>
<org.thoughtcrime.securesms.components.AnimatingToggle
android:id="@+id/button_toggle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center">
<ImageView android:id="@+id/search_dialpad"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:gravity="center_vertical"
android:clickable="true"
android:background="@drawable/circle_touch_highlight_background"
android:src="@drawable/ic_dialpad_white_24dp" />
<ImageView android:id="@+id/search_keyboard"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:gravity="center_vertical"
android:clickable="true"
android:visibility="gone"
android:background="@drawable/circle_touch_highlight_background"
android:src="@drawable/ic_keyboard_white_24dp" />
<ImageView android:id="@+id/search_clear"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:gravity="center_vertical"
android:clickable="true"
android:visibility="gone"
android:background="@drawable/circle_touch_highlight_background"
android:src="@drawable/ic_clear_white_24dp" />
</org.thoughtcrime.securesms.components.AnimatingToggle>
</LinearLayout>
</LinearLayout>
</merge>

View File

@@ -5,94 +5,17 @@
android:orientation="vertical"
xmlns:android="http://schemas.android.com/apk/res/android">
<android.support.v7.widget.Toolbar
<org.thoughtcrime.securesms.components.ContactFilterToolbar
android:id="@+id/toolbar"
android:layout_height="?attr/actionBarSize"
android:layout_width="match_parent"
android:minHeight="?attr/actionBarSize"
android:background="?attr/colorPrimary"
android:theme="@style/TextSecure.LightActionBar">
android:theme="@style/TextSecure.LightActionBar" />
<LinearLayout android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<ImageView android:id="@+id/action_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:gravity="center_vertical"
android:clickable="true"
android:background="@drawable/circle_touch_highlight_background"
android:src="@drawable/ic_search_white_24dp" />
<LinearLayout android:id="@+id/toggle_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<EditText android:id="@+id/search_view"
android:layout_height="wrap_content"
android:layout_width="0px"
android:layout_weight="1"
android:layout_marginLeft="5dp"
android:hint="@string/contact_selection_activity__enter_name_or_number"
android:inputType="textPersonName"
style="@style/TextSecure.TitleTextStyle"
android:background="@android:color/transparent"
android:layout_gravity="center_vertical"
android:gravity="center_vertical"/>
<org.thoughtcrime.securesms.components.AnimatingToggle
android:id="@+id/button_toggle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center">
<ImageView android:id="@+id/search_dialpad"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:gravity="center_vertical"
android:clickable="true"
android:background="@drawable/circle_touch_highlight_background"
android:src="@drawable/ic_dialpad_white_24dp" />
<ImageView android:id="@+id/search_keyboard"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:gravity="center_vertical"
android:clickable="true"
android:visibility="gone"
android:background="@drawable/circle_touch_highlight_background"
android:src="@drawable/ic_keyboard_white_24dp" />
<ImageView android:id="@+id/search_clear"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:gravity="center_vertical"
android:clickable="true"
android:visibility="gone"
android:background="@drawable/circle_touch_highlight_background"
android:src="@drawable/ic_clear_white_24dp" />
</org.thoughtcrime.securesms.components.AnimatingToggle>
</LinearLayout>
</LinearLayout>
</android.support.v7.widget.Toolbar>
<fragment
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/contact_selection_list_fragment"
android:name="org.thoughtcrime.securesms.ContactSelectionListFragment">
</fragment>
<fragment android:id="@+id/contact_selection_list_fragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:name="org.thoughtcrime.securesms.ContactSelectionListFragment" />
</LinearLayout>

View File

@@ -1,20 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="32sp"
android:paddingLeft="10dp"
android:paddingRight="25dp">
<TextView android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="true"
android:ellipsize="marquee"
android:layout_centerVertical="true"
android:layout_alignParentLeft="true"
android:textSize="15sp"
android:textColor="?contact_selection_header_text"
android:textStyle="bold" />
</RelativeLayout>
<TextView android:layout_width="match_parent"
android:layout_height="32sp"
android:singleLine="true"
android:ellipsize="marquee"
android:layout_centerVertical="true"
android:layout_alignParentLeft="true"
android:textSize="15sp"
android:paddingLeft="10dp"
android:paddingRight="25dp"
android:textStyle="bold"
xmlns:android="http://schemas.android.com/apk/res/android" />

View File

@@ -35,16 +35,14 @@
android:textAppearance="?android:attr/textAppearanceSmall"
android:fontFamily="sans-serif-light" />
<TextView
android:id="@+id/label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="10dip"
android:ellipsize="end"
android:singleLine="true"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="?contact_selection_label_text"
android:fontFamily="sans-serif-light"/>
<TextView android:id="@+id/label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="10dip"
android:ellipsize="end"
android:singleLine="true"
android:textAppearance="?android:attr/textAppearanceSmall"
android:fontFamily="sans-serif-light"/>
</LinearLayout>

View File

@@ -0,0 +1,118 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ScrollView android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"
android:clickable="false">
<LinearLayout android:layout_gravity="center"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:orientation="vertical"
android:padding="10dp"
android:background="@color/signal_primary">
<ImageView android:id="@+id/heart"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:contentDescription="@string/InviteActivity_heart_content_description"
android:src="@drawable/love_heart" />
<TextView android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/white"
android:textSize="20sp"
android:text="@string/InviteActivity_friends_dont_let_friends_text_unencrypted"
android:gravity="center_horizontal"
android:layout_marginBottom="30dp"
android:layout_marginTop="18dp"
android:fontFamily="sans-serif-light"
android:paddingLeft="10dp"/>
<EditText android:id="@+id/invite_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minLines="2"
tools:text="Let's switch to Signal: http://sgnl.link/asdfdfsa"
android:background="@drawable/sent_bubble"
android:padding="10dp"
android:gravity="top"
android:inputType="textShortMessage|textMultiLine"
android:textColor="#ff333333"/>
<LinearLayout android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:gravity="center_horizontal"
android:orientation="horizontal">
<Button android:id="@+id/share_button"
android:drawablePadding="10dp"
android:drawableLeft="@drawable/ic_share_black_18dp"
android:text="@string/InviteActivity_share"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:ignore="ButtonStyle" />
<Button android:id="@+id/sms_button"
android:drawableLeft="@drawable/ic_message_black_18dp"
android:drawablePadding="10dp"
android:text="@string/InviteActivity_send_sms"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:ignore="ButtonStyle" />
</LinearLayout>
</LinearLayout>
</ScrollView>
<LinearLayout android:id="@+id/sms_send_frame"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
android:orientation="vertical"
android:visibility="gone">
<org.thoughtcrime.securesms.components.ContactFilterToolbar
android:id="@+id/contact_filter"
android:layout_height="?attr/actionBarSize"
android:layout_width="match_parent"
android:minHeight="?attr/actionBarSize"
android:background="?attr/colorPrimary"
android:theme="@style/TextSecure.LightActionBar" />
<fragment android:id="@+id/contact_selection_list_fragment"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:name="org.thoughtcrime.securesms.ContactSelectionListFragment"
tools:layout="@layout/contact_selection_list_fragment"/>
<LinearLayout android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="right"
android:padding="10dp"
android:orientation="horizontal">
<Button android:id="@+id/cancel_sms_button"
style="@style/Widget.AppCompat.Button.Borderless"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/InviteActivity_cancel" />
<Button android:id="@+id/send_sms_button"
style="@style/Widget.AppCompat.Button.Borderless"
android:textColor="@color/signal_primary"
android:enabled="false"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
tools:text="Send to 0 friends"/>
</LinearLayout>
</LinearLayout>
</FrameLayout>

View File

@@ -1,29 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:title="@string/text_secure_normal__menu_new_group"
android:id="@+id/menu_new_group"
android:icon="@android:drawable/ic_menu_add" />
android:id="@+id/menu_new_group" />
<item android:title="@string/text_secure_normal__menu_clear_passphrase"
android:id="@+id/menu_clear_passphrase"
android:icon="@android:drawable/ic_menu_close_clear_cancel" />
android:id="@+id/menu_clear_passphrase" />
<item android:title="@string/text_secure_normal__mark_all_as_read"
android:id="@+id/menu_mark_all_read"
android:icon="@android:drawable/ic_menu_set_as" />
android:id="@+id/menu_mark_all_read" />
<item android:title="@string/text_secure_normal__invite_friends"
android:id="@+id/menu_invite" />
<item android:title="@string/arrays__import_export"
android:id="@+id/menu_import_export"
android:icon="@android:drawable/ic_menu_upload" />
android:id="@+id/menu_import_export" />
<item android:title="@string/arrays__my_identity_key"
android:id="@+id/menu_my_identity"
android:icon="@android:drawable/ic_menu_view" />
android:id="@+id/menu_my_identity" />
<item android:title="@string/text_secure_normal__menu_settings"
android:id="@+id/menu_settings"
android:icon="@android:drawable/ic_menu_preferences" />
android:id="@+id/menu_settings" />
</menu>

View File

@@ -115,8 +115,8 @@
<string name="ConversationActivity_transport_insecure_sms">Insecure SMS</string>
<string name="ConversationActivity_transport_insecure_mms">Insecure MMS</string>
<string name="ConversationActivity_transport_signal">Signal</string>
<string name="ConversationActivity_get_with_it">Get with it: %s</string>
<string name="ConversationActivity_lets_use_this_to_chat">Let\'s use this to chat: %s</string>
<string name="ConversationActivity_lets_switch_to_signal">Let\'s switch to Signal %1$s</string>
<string name="ConversationActivity_lets_use_this_to_chat">Let\'s use this to chat: %1$s</string>
<string name="ConversationActivity_error_leaving_group">Error leaving group...</string>
<string name="ConversationActivity_mms_not_supported_title">MMS not supported</string>
<string name="ConversationActivity_mms_not_supported_message">This message cannot be sent since your carrier doesn\'t support MMS.</string>
@@ -262,6 +262,20 @@
<string name="ImportFragment_no_encrypted_backup_found">No encrypted backup found!</string>
<string name="ImportFragment_restore_complete">Restore complete!</string>
<!-- InviteActivity -->
<string name="InviteActivity_share">Share</string>
<string name="InviteActivity_send_sms">Send SMS</string>
<string name="InviteActivity_cancel">Cancel</string>
<string name="InviteActivity_sending">Sending...</string>
<string name="InviteActivity_heart_content_description">Heart</string>
<string name="InviteActivity_invitations_sent">Invitations sent!</string>
<string name="InviteActivity_invite_to_signal">Invite to Signal</string>
<string name="InviteActivity_send_to_friends">SEND TO %1$s FRIEND(S)</string>
<string name="InviteActivity_send_sms_invites">Send %1$s SMS invite(s)?</string>
<string name="InviteActivity_lets_switch_to_signal">Let\'s switch to Signal: %1$s</string>
<string name="InviteActivity_no_app_to_share_to">It looks like you don\'t have any apps to share to.</string>
<string name="InviteActivity_friends_dont_let_friends_text_unencrypted">Friends don\'t let friends chat unencrypted.</string>
<!-- KeyScanningActivity -->
<string name="KeyScanningActivity_no_scanned_key_found_exclamation">No scanned key found!</string>
<string name="KeyScanningActivity_install_barcode_Scanner">Install Barcode Scanner?</string>
@@ -803,6 +817,7 @@
<string name="AndroidManifest__media_overview_named">All images with %1$s</string>
<string name="AndroidManifest__message_details">Message Details</string>
<string name="AndroidManifest_manage_linked_devices">Manage linked devices</string>
<string name="AndroidManifest__invite_friends">Invite friends</string>
<!-- arrays.xml -->
<string name="arrays__import_export">Import / export</string>
@@ -1031,6 +1046,7 @@
<string name="text_secure_normal__menu_settings">Settings</string>
<string name="text_secure_normal__menu_clear_passphrase">Lock</string>
<string name="text_secure_normal__mark_all_as_read">Mark all read</string>
<string name="text_secure_normal__invite_friends">Invite friends</string>
<!-- reminder_header -->
<string name="reminder_header_expired_build">Your build of Signal has expired!</string>
@@ -1048,6 +1064,9 @@
<string name="reminder_header_invite_title">Invite to Signal</string>
<string name="reminder_header_invite_text">Take your conversation with %1$s to the next level.</string>
<string name="reminder_header_invite_button">INVITE</string>
<string name="reminder_header_share_title">Invite your friends!</string>
<string name="reminder_header_share_text">The more friends use Signal, the better it gets.</string>
<string name="reminder_header_share_button">SHARE</string>
<string name="reminder_header_close_button">CLOSE</string>
<!-- MediaPreviewActivity -->

View File

@@ -44,6 +44,11 @@
<item name="android:textColorSecondary">#BFffffff</item>
</style>
<style name="TextSecure.FlatLightActionBar"
parent="@style/TextSecure.LightActionBar">
<item name="elevation">0dp</item>
</style>
<style name="TextSecure.DarkActionBar.TabBar"
parent="@style/Widget.AppCompat.ActionBar.TabBar">
<item name="background">@color/gray95</item>

View File

@@ -30,6 +30,13 @@
<item name="contact_selection_header_text">#66eeeeee</item>
</style>
<style name="TextSecure.HighlightTheme" parent="@style/TextSecure.LightTheme">
<item name="actionBarStyle">@style/TextSecure.FlatLightActionBar</item>
<item name="actionBarPopupTheme">@style/ThemeOverlay.AppCompat.Dark</item>
<item name="android:windowBackground">@color/signal_primary</item>
<item name="colorButtonNormal">@color/white</item>
</style>
<style name="TextSecure.LightIntroTheme" parent="@style/Theme.AppCompat.Light">
<!--<item name="colorPrimary">@android:color/transparent</item>-->
<item name="actionBarStyle">@style/TextSecure.IntroActionBar</item>