Compare commits

..

6 Commits

Author SHA1 Message Date
akwizgran
6778a2dee8 Move task to back rather than showing home screen. 2018-08-07 10:57:05 +01:00
akwizgran
ecb6661b12 Add comment. 2018-08-07 10:50:08 +01:00
akwizgran
677a6529f4 Code cleanup. 2018-08-07 10:43:10 +01:00
akwizgran
fb6c982e10 Don't check for isFinishing() in onStart(). 2018-08-07 10:33:50 +01:00
akwizgran
8e732d880f Merge branch '47-sign-in-reminder' into 'master'
Do not show sign-in reminder once PasswordActivity was opened

Closes #47

See merge request briar/briar!879
2018-08-06 09:38:05 +00:00
Torsten Grote
0b2594a693 Move SignIn reminder code into AndroidNotificationManager and don't show reminder once PasswordActivity was opened 2018-08-03 15:08:57 -03:00
81 changed files with 196 additions and 409 deletions

View File

@@ -10,6 +10,7 @@ import android.content.Intent;
import android.net.Uri;
import android.support.annotation.StringRes;
import android.support.annotation.UiThread;
import android.support.v4.app.NotificationCompat;
import android.support.v4.app.TaskStackBuilder;
import android.support.v4.content.ContextCompat;
@@ -33,8 +34,10 @@ import org.briarproject.bramble.util.StringUtils;
import org.briarproject.briar.R;
import org.briarproject.briar.android.contact.ConversationActivity;
import org.briarproject.briar.android.forum.ForumActivity;
import org.briarproject.briar.android.login.SignInReminderReceiver;
import org.briarproject.briar.android.navdrawer.NavDrawerActivity;
import org.briarproject.briar.android.privategroup.conversation.GroupActivity;
import org.briarproject.briar.android.splash.SplashScreenActivity;
import org.briarproject.briar.android.util.BriarNotificationBuilder;
import org.briarproject.briar.api.android.AndroidNotificationManager;
import org.briarproject.briar.api.blog.event.BlogPostAddedEvent;
@@ -62,13 +65,16 @@ import javax.inject.Inject;
import static android.app.Notification.DEFAULT_LIGHTS;
import static android.app.Notification.DEFAULT_SOUND;
import static android.app.Notification.DEFAULT_VIBRATE;
import static android.app.Notification.VISIBILITY_SECRET;
import static android.app.NotificationManager.IMPORTANCE_DEFAULT;
import static android.app.NotificationManager.IMPORTANCE_LOW;
import static android.content.Context.NOTIFICATION_SERVICE;
import static android.content.Intent.FLAG_ACTIVITY_CLEAR_TOP;
import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
import static android.os.Build.VERSION.SDK_INT;
import static android.support.v4.app.NotificationCompat.CATEGORY_MESSAGE;
import static android.support.v4.app.NotificationCompat.CATEGORY_SOCIAL;
import static android.support.v4.app.NotificationCompat.PRIORITY_LOW;
import static android.support.v4.app.NotificationCompat.VISIBILITY_SECRET;
import static java.util.logging.Level.WARNING;
import static org.briarproject.bramble.util.LogUtils.logException;
import static org.briarproject.briar.android.activity.BriarActivity.GROUP_ID;
@@ -107,6 +113,7 @@ class AndroidNotificationManagerImpl implements AndroidNotificationManager,
private int nextRequestId = 0;
private ContactId blockedContact = null;
private GroupId blockedGroup = null;
private boolean blockSignInReminder = false;
private boolean blockContacts = false, blockGroups = false;
private boolean blockForums = false, blockBlogs = false;
private boolean blockIntroductions = false;
@@ -612,6 +619,57 @@ class AndroidNotificationManagerImpl implements AndroidNotificationManager,
this::clearIntroductionSuccessNotification);
}
@Override
public void showSignInNotification() {
if (blockSignInReminder) return;
if (SDK_INT >= 26) {
String title = appContext
.getString(R.string.reminder_notification_channel_title);
NotificationChannel channel =
new NotificationChannel(REMINDER_CHANNEL_ID, title,
IMPORTANCE_LOW);
channel.setLockscreenVisibility(VISIBILITY_SECRET);
notificationManager.createNotificationChannel(channel);
}
NotificationCompat.Builder b =
new NotificationCompat.Builder(appContext, REMINDER_CHANNEL_ID);
b.setSmallIcon(R.drawable.ic_signout);
b.setColor(ContextCompat.getColor(appContext, R.color.briar_primary));
b.setContentTitle(
appContext.getText(R.string.reminder_notification_title));
b.setContentText(
appContext.getText(R.string.reminder_notification_text));
b.setAutoCancel(true);
b.setWhen(0); // Don't show the time
b.setPriority(PRIORITY_LOW);
// Add a 'Dismiss' action
String actionTitle =
appContext.getString(R.string.reminder_notification_dismiss);
Intent i1 = new Intent(appContext, SignInReminderReceiver.class);
i1.setAction(ACTION_DISMISS_REMINDER);
PendingIntent actionIntent =
PendingIntent.getBroadcast(appContext, 0, i1, 0);
b.addAction(0, actionTitle, actionIntent);
Intent i = new Intent(appContext, SplashScreenActivity.class);
i.setFlags(FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_CLEAR_TOP);
b.setContentIntent(PendingIntent.getActivity(appContext, 0, i, 0));
notificationManager.notify(REMINDER_NOTIFICATION_ID, b.build());
}
@Override
public void clearSignInNotification() {
notificationManager.cancel(REMINDER_NOTIFICATION_ID);
}
@Override
public void blockSignInNotification() {
blockSignInReminder = true;
}
@Override
public void blockNotification(GroupId g) {
androidExecutor.runOnUiThread((Runnable) () -> blockedGroup = g);

View File

@@ -61,7 +61,7 @@ public abstract class BriarActivity extends BaseActivity {
@Override
public void onStart() {
super.onStart();
if (!briarController.accountSignedIn() && !isFinishing()) {
if (!briarController.accountSignedIn()) {
Intent i = new Intent(this, PasswordActivity.class);
startActivityForResult(i, REQUEST_PASSWORD);
} else if (SDK_INT >= 23) {

View File

@@ -335,7 +335,7 @@ public class BlogFragment extends BaseFragment
View.OnClickListener onClick = v -> list.smoothScrollToPosition(0);
snackbar.setActionTextColor(ContextCompat
.getColor(getContext(),
R.color.briar_button_text_positive));
R.color.briar_button_positive));
snackbar.setAction(R.string.blogs_blog_post_scroll_to, onClick);
}
snackbar.show();

View File

@@ -250,7 +250,7 @@ public class FeedFragment extends BaseFragment implements
OnClickListener onClick = v -> list.smoothScrollToPosition(0);
s.setActionTextColor(ContextCompat
.getColor(getContext(),
R.color.briar_button_text_positive));
R.color.briar_button_positive));
s.setAction(R.string.blogs_blog_post_scroll_to, onClick);
}
s.show();

View File

@@ -103,7 +103,7 @@ public class ForumListFragment extends BaseEventFragment implements
snackbar.getView().setBackgroundResource(R.color.briar_primary);
snackbar.setAction(R.string.show, this);
snackbar.setActionTextColor(ContextCompat
.getColor(getContext(), R.color.briar_button_text_positive));
.getColor(getContext(), R.color.briar_button_positive));
return contentView;
}

View File

@@ -1,6 +1,5 @@
package org.briarproject.briar.android.login;
import android.app.NotificationManager;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.NonNull;
@@ -20,22 +19,23 @@ import org.briarproject.briar.android.activity.BaseActivity;
import org.briarproject.briar.android.controller.BriarController;
import org.briarproject.briar.android.controller.handler.UiResultHandler;
import org.briarproject.briar.android.util.UiUtils;
import org.briarproject.briar.api.android.AndroidNotificationManager;
import javax.inject.Inject;
import static android.content.Intent.ACTION_MAIN;
import static android.content.Intent.CATEGORY_HOME;
import static android.content.Intent.FLAG_ACTIVITY_CLEAR_TASK;
import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
import static android.view.View.INVISIBLE;
import static android.view.View.VISIBLE;
import static org.briarproject.briar.api.android.AndroidNotificationManager.REMINDER_NOTIFICATION_ID;
public class PasswordActivity extends BaseActivity {
@Inject
AccountManager accountManager;
@Inject
AndroidNotificationManager notificationManager;
@Inject
PasswordController passwordController;
@@ -54,7 +54,8 @@ public class PasswordActivity extends BaseActivity {
overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
if (!accountManager.accountExists()) {
// TODO: Finish instead of deleting account?
// This can happen on older devices if the app is relaunched from
// recent apps after clearing data
deleteAccount();
return;
}
@@ -95,10 +96,8 @@ public class PasswordActivity extends BaseActivity {
setResult(RESULT_OK);
finish();
} else {
// Remove sign-in reminder notification
NotificationManager nm = (NotificationManager)
getSystemService(NOTIFICATION_SERVICE);
nm.cancel(REMINDER_NOTIFICATION_ID);
notificationManager.blockSignInNotification();
notificationManager.clearSignInNotification();
}
}
@@ -109,10 +108,8 @@ public class PasswordActivity extends BaseActivity {
@Override
public void onBackPressed() {
// Show the home screen rather than another password prompt
Intent intent = new Intent(ACTION_MAIN);
intent.addCategory(CATEGORY_HOME);
startActivity(intent);
// Move the whole task to the back, don't show another password prompt
moveTaskToBack(true);
}
private void deleteAccount() {

View File

@@ -1,43 +1,29 @@
package org.briarproject.briar.android.login;
import android.app.NotificationChannel;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.support.v4.app.NotificationCompat;
import android.support.v4.content.ContextCompat;
import org.briarproject.bramble.api.account.AccountManager;
import org.briarproject.briar.R;
import org.briarproject.briar.android.AndroidComponent;
import org.briarproject.briar.android.BriarApplication;
import org.briarproject.briar.android.navdrawer.NavDrawerActivity;
import org.briarproject.briar.api.android.AndroidNotificationManager;
import javax.inject.Inject;
import static android.app.NotificationManager.IMPORTANCE_LOW;
import static android.content.Context.NOTIFICATION_SERVICE;
import static android.content.Intent.ACTION_BOOT_COMPLETED;
import static android.content.Intent.ACTION_MY_PACKAGE_REPLACED;
import static android.content.Intent.FLAG_ACTIVITY_CLEAR_TOP;
import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
import static android.os.Build.VERSION.SDK_INT;
import static android.support.v4.app.NotificationCompat.PRIORITY_LOW;
import static android.support.v4.app.NotificationCompat.VISIBILITY_SECRET;
import static org.briarproject.briar.android.TestingConstants.FEATURE_FLAG_SIGN_IN_REMINDER;
import static org.briarproject.briar.android.settings.SettingsFragment.NOTIFY_SIGN_IN;
import static org.briarproject.briar.api.android.AndroidNotificationManager.REMINDER_CHANNEL_ID;
import static org.briarproject.briar.api.android.AndroidNotificationManager.REMINDER_NOTIFICATION_ID;
import static org.briarproject.briar.api.android.AndroidNotificationManager.ACTION_DISMISS_REMINDER;
public class SignInReminderReceiver extends BroadcastReceiver {
public static final String DISMISS_REMINDER = "dismissReminder";
@Inject
AccountManager accountManager;
@Inject
AndroidNotificationManager notificationManager;
@Override
public void onReceive(Context ctx, Intent intent) {
@@ -55,58 +41,12 @@ public class SignInReminderReceiver extends BroadcastReceiver {
!accountManager.hasDatabaseKey()) {
SharedPreferences prefs = app.getDefaultSharedPreferences();
if (prefs.getBoolean(NOTIFY_SIGN_IN, true)) {
showSignInNotification(ctx);
notificationManager.showSignInNotification();
}
}
} else if (action.equals(DISMISS_REMINDER)) {
dismissReminder(ctx);
} else if (action.equals(ACTION_DISMISS_REMINDER)) {
notificationManager.clearSignInNotification();
}
}
private void showSignInNotification(Context ctx) {
NotificationManager nm = (NotificationManager)
ctx.getSystemService(NOTIFICATION_SERVICE);
if (nm == null) return;
if (SDK_INT >= 26) {
NotificationChannel channel =
new NotificationChannel(REMINDER_CHANNEL_ID, ctx.getString(
R.string.reminder_notification_channel_title),
IMPORTANCE_LOW);
channel.setLockscreenVisibility(VISIBILITY_SECRET);
nm.createNotificationChannel(channel);
}
NotificationCompat.Builder b =
new NotificationCompat.Builder(ctx, REMINDER_CHANNEL_ID);
b.setSmallIcon(R.drawable.ic_signout);
b.setColor(ContextCompat.getColor(ctx, R.color.briar_primary));
b.setContentTitle(ctx.getText(R.string.reminder_notification_title));
b.setContentText(ctx.getText(R.string.reminder_notification_text));
b.setAutoCancel(true);
b.setWhen(0); // Don't show the time
b.setPriority(PRIORITY_LOW);
// Add a 'Dismiss' action
String actionTitle =
ctx.getString(R.string.reminder_notification_dismiss);
Intent i1 = new Intent(ctx, SignInReminderReceiver.class);
i1.setAction(DISMISS_REMINDER);
PendingIntent actionIntent = PendingIntent.getBroadcast(ctx, 0, i1, 0);
b.addAction(0, actionTitle, actionIntent);
Intent i = new Intent(ctx, NavDrawerActivity.class);
i.setFlags(FLAG_ACTIVITY_NEW_TASK | FLAG_ACTIVITY_CLEAR_TOP);
b.setContentIntent(PendingIntent.getActivity(ctx, 0, i, 0));
nm.notify(REMINDER_NOTIFICATION_ID, b.build());
}
private void dismissReminder(Context ctx) {
NotificationManager nm = (NotificationManager)
ctx.getSystemService(NOTIFICATION_SERVICE);
if (nm == null) return;
nm.cancel(REMINDER_NOTIFICATION_ID);
}
}

View File

@@ -77,7 +77,7 @@ public class GroupListFragment extends BaseFragment implements
snackbar.getView().setBackgroundResource(R.color.briar_primary);
snackbar.setAction(R.string.show, this);
snackbar.setActionTextColor(ContextCompat
.getColor(getContext(), R.color.briar_button_text_positive));
.getColor(getContext(), R.color.briar_button_positive));
return v;
}

View File

@@ -49,6 +49,9 @@ public interface AndroidNotificationManager {
String BLOG_URI = "content://org.briarproject.briar/blog";
String INTRODUCTION_URI = "content://org.briarproject.briar/introduction";
// Actions for pending intents
String ACTION_DISMISS_REMINDER = "dismissReminder";
void clearContactNotification(ContactId c);
void clearAllContactNotifications();
@@ -67,6 +70,12 @@ public interface AndroidNotificationManager {
void clearAllIntroductionNotifications();
void showSignInNotification();
void clearSignInNotification();
void blockSignInNotification();
void blockContactNotification(ContactId c);
void unblockContactNotification(ContactId c);

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View File

@@ -1,17 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners
android:bottomLeftRadius="@dimen/message_bubble_radius_big"
android:bottomRightRadius="@dimen/message_bubble_radius_big"
android:topLeftRadius="@dimen/message_bubble_radius_small"
android:topRightRadius="@dimen/message_bubble_radius_big"/>
<padding
android:bottom="@dimen/message_bubble_padding_bottom"
android:left="@dimen/message_bubble_padding_sides"
android:right="@dimen/message_bubble_padding_sides"
android:top="@dimen/message_bubble_padding_top"/>
<solid
android:color="@color/msg_in"/>
</shape>

View File

@@ -1,11 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<stroke android:width="1dp" android:color="@color/msg_border"/>
<corners
android:bottomLeftRadius="@dimen/message_bubble_radius_big"
android:bottomRightRadius="@dimen/message_bubble_radius_big"
android:topLeftRadius="@dimen/message_bubble_radius_small"
android:topRightRadius="@dimen/message_bubble_radius_big"/>
</shape>

View File

@@ -1,17 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners
android:bottomLeftRadius="0dp"
android:bottomRightRadius="0dp"
android:topLeftRadius="@dimen/message_bubble_radius_small"
android:topRightRadius="@dimen/message_bubble_radius_big"/>
<padding
android:bottom="@dimen/message_bubble_padding_top"
android:left="@dimen/message_bubble_padding_sides"
android:right="@dimen/message_bubble_padding_sides"
android:top="@dimen/message_bubble_padding_top"/>
<solid
android:color="@color/msg_in"/>
</shape>

View File

@@ -1,17 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners
android:bottomLeftRadius="@dimen/message_bubble_radius_big"
android:bottomRightRadius="@dimen/message_bubble_radius_big"
android:topLeftRadius="@dimen/message_bubble_radius_big"
android:topRightRadius="@dimen/message_bubble_radius_small"/>
<padding
android:bottom="@dimen/message_bubble_padding_bottom"
android:left="@dimen/message_bubble_padding_sides"
android:right="@dimen/message_bubble_padding_sides"
android:top="@dimen/message_bubble_padding_top"/>
<solid
android:color="@color/msg_out"/>
</shape>

View File

@@ -1,17 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners
android:bottomLeftRadius="0dp"
android:bottomRightRadius="0dp"
android:topLeftRadius="@dimen/message_bubble_radius_big"
android:topRightRadius="@dimen/message_bubble_radius_small"/>
<padding
android:bottom="@dimen/message_bubble_padding_top"
android:left="@dimen/message_bubble_padding_sides"
android:right="@dimen/message_bubble_padding_sides"
android:top="@dimen/message_bubble_padding_top"/>
<solid
android:color="@color/msg_out"/>
</shape>

View File

@@ -1,17 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners
android:bottomLeftRadius="@dimen/message_bubble_radius_big"
android:bottomRightRadius="@dimen/message_bubble_radius_big"
android:topLeftRadius="@dimen/message_bubble_radius_small"
android:topRightRadius="@dimen/message_bubble_radius_big"/>
<padding
android:bottom="@dimen/message_bubble_padding_bottom"
android:left="@dimen/message_bubble_padding_sides"
android:right="@dimen/message_bubble_padding_sides"
android:top="@dimen/message_bubble_padding_top"/>
<solid
android:color="@color/notice_in"/>
</shape>

View File

@@ -1,17 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners
android:bottomLeftRadius="@dimen/message_bubble_radius_big"
android:bottomRightRadius="@dimen/message_bubble_radius_big"
android:topLeftRadius="0dp"
android:topRightRadius="0dp"/>
<padding
android:bottom="@dimen/message_bubble_padding_bottom"
android:left="@dimen/message_bubble_padding_sides"
android:right="@dimen/message_bubble_padding_sides"
android:top="@dimen/message_bubble_padding_bottom"/>
<solid
android:color="@color/notice_in"/>
</shape>

View File

@@ -1,17 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners
android:bottomLeftRadius="@dimen/message_bubble_radius_big"
android:bottomRightRadius="@dimen/message_bubble_radius_big"
android:topLeftRadius="@dimen/message_bubble_radius_big"
android:topRightRadius="@dimen/message_bubble_radius_small"/>
<padding
android:bottom="@dimen/message_bubble_padding_bottom"
android:left="@dimen/message_bubble_padding_sides"
android:right="@dimen/message_bubble_padding_sides"
android:top="@dimen/message_bubble_padding_top"/>
<solid
android:color="@color/notice_out"/>
</shape>

View File

@@ -1,17 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners
android:bottomLeftRadius="@dimen/message_bubble_radius_big"
android:bottomRightRadius="@dimen/message_bubble_radius_big"
android:topLeftRadius="0dp"
android:topRightRadius="0dp"/>
<padding
android:bottom="@dimen/message_bubble_padding_bottom"
android:left="@dimen/message_bubble_padding_sides"
android:right="@dimen/message_bubble_padding_sides"
android:top="@dimen/message_bubble_padding_bottom"/>
<solid
android:color="@color/notice_out"/>
</shape>

View File

@@ -1,6 +1,6 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:width="42dp"
android:height="42dp"
android:viewportHeight="24.0"
android:viewportWidth="24.0">
<path

View File

@@ -75,7 +75,7 @@
<Button
android:id="@+id/continueButton"
style="@style/BriarButton"
style="@style/BriarButton.Default"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"

View File

@@ -85,7 +85,7 @@
<Button
android:id="@+id/change_password"
style="@style/BriarButton"
style="@style/BriarButton.Default"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/strength_meter"

View File

@@ -38,7 +38,7 @@
<Button
android:id="@+id/download_briar_button"
style="@style/BriarButton"
style="@style/BriarButton.Default"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/margin_medium"

View File

@@ -60,7 +60,6 @@
android:layout_centerHorizontal="true"
android:layout_marginTop="@dimen/margin_large"
android:clickable="true"
android:focusable="true"
android:onClick="onForgottenPasswordClick"
android:text="@string/forgotten_password"
android:textColor="?android:attr/textColorLink"/>

View File

@@ -1,35 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="@dimen/margin_small"
tools:context=".android.blog.RssFeedImportActivity">
tools:context=".android.blogs.RssFeedImportActivity">
<android.support.v7.widget.CardView
<EditText
android:id="@+id/urlInput"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:elevation="@dimen/cardview_default_elevation"
app:cardBackgroundColor="@color/card_background"
app:cardCornerRadius="0dp"
app:cardUseCompatPadding="false">
<EditText
android:id="@+id/urlInput"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/transparent"
android:gravity="top"
android:hint="@string/blogs_rss_feeds_import_hint"
android:inputType="textUri"
android:padding="@dimen/margin_medium"
android:textColor="?android:attr/textColorPrimary"/>
</android.support.v7.widget.CardView>
android:gravity="top"
android:hint="@string/blogs_rss_feeds_import_hint"
android:inputType="textUri"
android:paddingLeft="@dimen/margin_large"
android:paddingRight="@dimen/margin_large"/>
<Button
android:id="@+id/importButton"

View File

@@ -66,7 +66,7 @@
<Button
android:id="@+id/continueButton"
style="@style/BriarButton"
style="@style/BriarButton.Default"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/margin_medium"

View File

@@ -42,7 +42,7 @@
<Button
android:id="@+id/next"
style="@style/BriarButton"
style="@style/BriarButton.Default"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/margin_activity_horizontal"

View File

@@ -36,7 +36,7 @@
<Button
android:id="@+id/next"
style="@style/BriarButton"
style="@style/BriarButton.Default"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:enabled="false"

View File

@@ -77,7 +77,7 @@
<Button
android:id="@+id/next"
style="@style/BriarButton"
style="@style/BriarButton.Default"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:enabled="false"

View File

@@ -5,29 +5,29 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/message_bubble_margin"
android:layout_marginLeft="@dimen/message_bubble_margin_tail"
android:layout_marginRight="@dimen/message_bubble_margin_non_tail"
android:layout_marginTop="@dimen/message_bubble_margin"
android:background="@drawable/msg_in"
android:elevation="@dimen/message_bubble_elevation"
android:orientation="vertical">
<org.thoughtcrime.securesms.components.emoji.EmojiTextView
android:id="@+id/text"
style="@style/TextMessage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="?android:attr/textColorPrimary"
android:textIsSelectable="true"
android:textSize="@dimen/text_size_medium"
tools:text="Short message"/>
<TextView
android:id="@+id/time"
style="@style/TextMessage.Timestamp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right|end"
android:layout_marginTop="@dimen/message_bubble_timestamp_margin"
android:maxLines="1"
android:textColor="?android:attr/textColorSecondary"
android:textSize="@dimen/text_size_tiny"
tools:text="Dec 24, 13:37"/>
</LinearLayout>

View File

@@ -11,31 +11,30 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right|end"
android:layout_marginBottom="@dimen/message_bubble_margin"
android:layout_marginLeft="@dimen/message_bubble_margin_non_tail"
android:layout_marginRight="@dimen/message_bubble_margin_tail"
android:layout_marginTop="@dimen/message_bubble_margin"
android:background="@drawable/msg_out"
android:elevation="@dimen/message_bubble_elevation">
android:background="@drawable/msg_out">
<org.thoughtcrime.securesms.components.emoji.EmojiTextView
android:id="@+id/text"
style="@style/TextMessage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/briar_text_primary_inverse"
android:textIsSelectable="true"
android:textSize="@dimen/text_size_medium"
tools:text="This is a long long long message that spans over several lines.\n\nIt ends here."/>
<TextView
android:id="@+id/time"
style="@style/TextMessage.Timestamp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/text"
android:layout_marginTop="@dimen/message_bubble_timestamp_margin"
android:maxLines="1"
android:textColor="@color/private_message_date_inverse"
android:textSize="@dimen/text_size_tiny"
tools:text="Dec 24, 13:37"/>
<ImageView

View File

@@ -4,46 +4,50 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/message_bubble_margin"
android:layout_marginLeft="@dimen/message_bubble_margin_tail"
android:layout_marginRight="@dimen/message_bubble_margin_non_tail"
android:layout_marginTop="@dimen/message_bubble_margin"
android:padding="1px"
android:background="@drawable/msg_in_border"
android:orientation="vertical">
<org.thoughtcrime.securesms.components.emoji.EmojiTextView
android:id="@+id/msgText"
style="@style/TextMessage"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="left|start"
android:layout_marginLeft="@dimen/message_bubble_margin_tail"
android:layout_marginRight="@dimen/message_bubble_margin_non_tail"
android:background="@drawable/msg_in_top"
android:textColor="?android:attr/textColorPrimary"
android:textIsSelectable="true"
android:textSize="@dimen/text_size_medium"
tools:text="Short message"/>
<RelativeLayout
android:id="@+id/layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/message_bubble_margin_tail"
android:layout_marginRight="@dimen/message_bubble_margin_non_tail"
android:background="@drawable/notice_in_bottom">
<org.thoughtcrime.securesms.components.emoji.EmojiTextView
android:id="@+id/text"
style="@style/TextMessage.Notice"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minWidth="80dp"
android:textColor="?android:attr/textColorSecondary"
android:textIsSelectable="true"
android:textSize="@dimen/text_size_medium"
android:textStyle="italic"
tools:text="@string/forum_invitation_received"/>
<TextView
android:id="@+id/time"
style="@style/TextMessage.Timestamp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignEnd="@+id/text"
android:layout_alignRight="@+id/text"
android:layout_below="@+id/text"
android:layout_marginTop="@dimen/message_bubble_timestamp_margin"
android:textColor="?android:attr/textColorTertiary"
android:textSize="@dimen/text_size_tiny"
tools:text="Dec 24, 13:37"/>
</RelativeLayout>

View File

@@ -5,49 +5,48 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/message_bubble_margin"
android:orientation="vertical">
<org.thoughtcrime.securesms.components.emoji.EmojiTextView
android:id="@+id/msgText"
style="@style/TextMessage"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/message_bubble_margin_non_tail"
android:layout_marginRight="@dimen/message_bubble_margin_tail"
android:background="@drawable/msg_out_top"
android:elevation="@dimen/message_bubble_elevation"
android:textColor="@color/briar_text_primary_inverse"
android:textIsSelectable="true"
android:textSize="@dimen/text_size_medium"
tools:text="This is a long long long message that spans over several lines.\n\nIt ends here."/>
<RelativeLayout
android:id="@+id/layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/message_bubble_margin"
android:layout_marginLeft="@dimen/message_bubble_margin_non_tail"
android:layout_marginRight="@dimen/message_bubble_margin_tail"
android:background="@drawable/notice_out_bottom"
android:elevation="@dimen/message_bubble_elevation">
android:background="@drawable/notice_out_bottom">
<org.thoughtcrime.securesms.components.emoji.EmojiTextView
android:id="@+id/text"
style="@style/TextMessage.Notice"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/private_message_date_inverse"
android:textColor="?android:attr/textColorSecondary"
android:textIsSelectable="true"
android:textSize="@dimen/text_size_medium"
android:textStyle="italic"
tools:text="@string/introduction_request_received"/>
<TextView
android:id="@+id/time"
style="@style/TextMessage.Timestamp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/text"
android:layout_marginTop="@dimen/message_bubble_timestamp_margin"
android:textColor="@color/private_message_date_inverse"
android:textColor="?android:attr/textColorTertiary"
android:textSize="@dimen/text_size_tiny"
tools:text="Dec 24, 13:37"/>
<android.support.v7.widget.AppCompatImageView
@@ -58,7 +57,7 @@
android:layout_marginLeft="@dimen/margin_medium"
android:layout_toEndOf="@+id/time"
android:layout_toRightOf="@+id/time"
app:tint="@color/private_message_date_inverse"
app:tint="?attr/colorControlNormal"
tools:ignore="ContentDescription"
tools:src="@drawable/message_delivered"/>

View File

@@ -4,45 +4,49 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/message_bubble_margin"
android:layout_marginLeft="@dimen/message_bubble_margin_tail"
android:layout_marginRight="@dimen/message_bubble_margin_non_tail"
android:layout_marginTop="@dimen/message_bubble_margin"
android:padding="1px"
android:background="@drawable/msg_in_border"
android:orientation="vertical">
<org.thoughtcrime.securesms.components.emoji.EmojiTextView
android:id="@+id/msgText"
style="@style/TextMessage"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/message_bubble_margin_tail"
android:layout_marginRight="@dimen/message_bubble_margin_non_tail"
android:background="@drawable/msg_in_top"
android:textColor="?android:attr/textColorPrimary"
android:textIsSelectable="true"
android:textSize="@dimen/text_size_medium"
tools:text="Short message"/>
<RelativeLayout
android:id="@+id/layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/message_bubble_margin_tail"
android:layout_marginRight="@dimen/message_bubble_margin_non_tail"
android:background="@drawable/notice_in_bottom">
<org.thoughtcrime.securesms.components.emoji.EmojiTextView
android:id="@+id/text"
style="@style/TextMessage.Notice"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minWidth="80dp"
android:textColor="?android:attr/textColorSecondary"
android:textIsSelectable="true"
android:textSize="@dimen/text_size_medium"
android:textStyle="italic"
tools:text="@string/introduction_request_received"/>
<TextView
android:id="@+id/time"
style="@style/TextMessage.Timestamp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignEnd="@+id/text"
android:layout_alignRight="@+id/text"
android:layout_below="@+id/acceptButton"
android:layout_marginTop="@dimen/message_bubble_timestamp_margin"
android:textColor="?android:attr/textColorTertiary"
android:textSize="@dimen/text_size_tiny"
tools:text="Dec 24, 13:37"/>
<Button

View File

@@ -35,7 +35,7 @@
<Button
android:id="@+id/button"
style="@style/BriarButton"
style="@style/BriarButton.Default"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="8dp"
@@ -52,7 +52,7 @@
android:layout_margin="8dp"
android:contentDescription="@string/help"
android:src="@drawable/ic_help_outline_white"
android:tint="@color/briar_button_text_positive"
android:tint="@color/briar_button_positive"
app:layout_constraintBottom_toBottomOf="@+id/button"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@+id/button"/>

View File

@@ -10,7 +10,7 @@
android:layout_width="@dimen/avatar_forum_size"
android:layout_height="@dimen/avatar_forum_size"
android:layout_gravity="bottom|left"
android:src="@color/briar_button_text_positive"/>
android:src="@color/briar_button_positive"/>
<android.support.v7.widget.AppCompatTextView
android:id="@+id/textAvatarView"

View File

@@ -20,7 +20,6 @@
android:id="@+id/emoji_toggle"
android:layout_width="@dimen/text_input_height"
android:layout_height="@dimen/text_input_height"
android:layout_gravity="bottom"
android:background="?attr/selectableItemBackground"
android:padding="@dimen/margin_small"
android:scaleType="center"
@@ -33,24 +32,21 @@
android:layout_weight="1"
android:background="@android:color/transparent"
android:inputType="textMultiLine|textCapSentences"
android:maxLines="4"
android:maxLines="3"
android:minHeight="@dimen/text_input_height"
android:paddingLeft="2dp"
android:textColor="?android:attr/textColorPrimary"
tools:ignore="RtlSymmetry"/>
android:textColorHint="?android:attr/textColorTertiary"/>
<android.support.v7.widget.AppCompatImageButton
android:id="@+id/btn_send"
android:layout_width="@dimen/text_input_height"
android:layout_height="@dimen/text_input_height"
android:layout_gravity="bottom"
android:background="?attr/selectableItemBackground"
android:clickable="true"
android:contentDescription="@string/send"
android:enabled="false"
android:focusable="true"
android:padding="4dp"
android:scaleType="center"
android:padding="@dimen/margin_small"
android:src="@drawable/social_send_now_white"
app:tint="@color/briar_accent"/>

View File

@@ -50,6 +50,7 @@
android:paddingRight="@dimen/margin_small"
android:paddingTop="@dimen/margin_small"
android:textColor="?android:attr/textColorPrimary"
android:textColorHint="?android:attr/textColorTertiary"
tools:ignore="RtlSymmetry"/>
</LinearLayout>

View File

@@ -1,30 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="briar_primary">@color/briar_blue_dark</color>
<color name="briar_accent">@color/briar_green</color>
<color name="preference_category">@color/briar_accent</color>
<color name="preference_category_background">@color/briar_black_almost</color>
<color name="preference_category_background">@color/divider</color>
<color name="color_primary">@color/briar_white</color>
<color name="msg_in">@color/briar_blue</color>
<color name="msg_out">@color/briar_blue_elio_light</color>
<color name="notice_in">@color/briar_blue_dark</color>
<color name="notice_out">@color/briar_blue_elio</color>
<color name="msg_border">@color/briar_blue_very_dark</color>
<color name="color_primary">#ffffff</color>
<color name="window_background">@color/briar_blue_very_dark</color>
<color name="card_background">@color/briar_blue_dark</color>
<color name="item_background_highlight">@color/briar_blue</color>
<color name="divider">#000000</color>
<color name="briar_button_background_color">@color/briar_blue_medium</color>
<color name="briar_button_text_neutral">@color/briar_blue_light</color>
<color name="briar_button_neutral">@color/briar_link</color>
<color name="briar_button_text_disabled">#23cccccc</color>
<color name="thread_indicator">@color/briar_blue</color>
<color name="thread_item_background">@color/window_background</color>
<color name="thread_item_highlight">@color/briar_black</color>
<color name="thread_item_highlight">#000000</color>
<color name="divider">@color/briar_black</color>
</resources>

View File

@@ -3,61 +3,42 @@
<color name="briar_blue">#2D3E50</color>
<color name="briar_blue_dark">#222E3C</color>
<color name="briar_blue_very_dark">#0F1720</color>
<color name="briar_blue_medium">#4F6C8C</color>
<color name="briar_blue_elio">#236087</color>
<color name="briar_blue_elio_light">#3C80A9</color>
<color name="briar_blue_light">#2A93C6</color>
<color name="briar_blue_grey">#EBEFF2</color>
<color name="briar_blue_light">#4F6C8C</color>
<color name="briar_green">#5C940D</color>
<color name="briar_green_light">#95D220</color>
<color name="briar_red">#ff0000</color>
<color name="briar_white">#FFFFFF</color>
<color name="briar_black">#000000</color>
<color name="briar_black_almost">#080C10</color>
<color name="briar_link">#2A93C6</color>
<color name="m_grey_300">#e0e0e0</color>
<color name="m_grey_500">#9e9e9e</color>
<color name="m_blue_grey_50">#eceff1</color>
<color name="window_background">#fffafafa</color>
<color name="card_background">@color/cardview_light_background</color>
<color name="item_background_highlight">#DCDCDC</color>
<color name="action_bar_text">#FFFFFF</color>
<color name="private_message_date_inverse">#e0e0e0</color>
<color name="forum_avatar_shadow">#99000000</color>
<color name="briar_primary">@color/briar_blue</color>
<color name="briar_primary_dark">@color/briar_blue_very_dark</color>
<color name="briar_accent">@color/briar_blue</color>
<color name="window_background">#E3EBEF</color>
<color name="card_background">@color/cardview_light_background</color>
<color name="item_background_highlight">#DCDCDC</color>
<color name="briar_warning_background">@color/briar_red</color>
<color name="action_bar_text">@color/briar_white</color>
<color name="private_message_date_inverse">@color/m_grey_300</color>
<color name="forum_avatar_shadow">#99000000</color>
<color name="briar_accent">@color/briar_blue</color>
<color name="color_primary">#dd000000</color>
<color name="msg_in">@color/briar_white</color>
<color name="msg_out">@color/briar_blue_elio_light</color>
<color name="notice_in">@color/briar_blue_grey</color>
<color name="notice_out">@color/briar_blue_elio</color>
<color name="msg_border">@color/briar_blue_dark</color>
<!-- text colors -->
<color name="briar_text_link">@color/briar_blue_light</color>
<color name="briar_text_link">@color/briar_link</color>
<color name="briar_text_primary">#df000000</color>
<color name="briar_text_primary_inverse">@color/briar_white</color>
<color name="briar_text_primary_inverse">#ffffff</color>
<color name="briar_text_secondary_inverse">#b4ffffff</color>
<color name="briar_text_tertiary_inverse">#80ffffff</color>
<color name="preference_category">@color/briar_blue_medium</color>
<color name="preference_category">@color/briar_blue_light</color>
<color name="preference_category_background">@color/window_background</color>
<color name="briar_button_background_color">@color/briar_accent</color>
<color name="briar_button_text_positive">@color/briar_blue_light</color>
<color name="briar_button_text_neutral">@color/briar_blue_medium</color>
<color name="briar_button_text_negative">@color/briar_red</color>
<color name="briar_button_positive">@color/briar_link</color>
<color name="briar_button_neutral">@color/briar_blue_light</color>
<color name="briar_button_negative">#ff0000</color>
<color name="briar_button_text_disabled">#28000000</color>
<color name="briar_warning_background">#ff0000</color>
<color name="thread_indicator">@color/m_grey_500</color>
<color name="thread_item_background">@color/m_blue_grey_50</color>
<color name="thread_item_highlight">@color/briar_white</color>
<color name="thread_indicator">#9e9e9e</color>
<color name="thread_item_background">#eceff1</color>
<color name="thread_item_highlight">#ffffff</color>
<color name="divider">#c1c1c1</color>
</resources>

View File

@@ -38,17 +38,9 @@
<dimen name="unread_bubble_padding_horizontal">6dp</dimen>
<dimen name="unread_bubble_size">19dp</dimen>
<dimen name="message_bubble_radius_big">16dp</dimen>
<dimen name="message_bubble_radius_small">4dp</dimen>
<dimen name="message_bubble_margin">6dp</dimen>
<dimen name="message_bubble_padding_sides">12dp</dimen>
<dimen name="message_bubble_padding_top">6dp</dimen>
<dimen name="message_bubble_padding_bottom">4dp</dimen>
<dimen name="message_bubble_timestamp_margin">4dp</dimen>
<dimen name="message_bubble_elevation">2dp</dimen>
<dimen name="message_bubble_margin_tail">8dp</dimen>
<dimen name="message_bubble_margin_tail">3dp</dimen>
<dimen name="message_bubble_margin_non_tail">30dp</dimen>
<dimen name="message_bubble_timestamp_margin">7dp</dimen>
<dimen name="forum_nested_line_width">2dp</dimen>
<dimen name="forum_nested_indicator">24dp</dimen>

View File

@@ -9,7 +9,6 @@
<item name="titleTextAppearance">@style/BriarToolbarTitleTextAppearance</item>
<item name="subtitleTextAppearance">@style/BriarToolbarSubTitleTextAppearance</item>
<item name="android:theme">@style/BriarToolbarTheme</item>
<item name="popupTheme">@style/PopupMenu</item>
</style>
<style name="BriarToolbarTheme">
@@ -24,35 +23,30 @@
<item name="android:textColor">@color/briar_text_secondary_inverse</item>
</style>
<style name="PopupMenu" parent="Theme.AppCompat.DayNight.DarkActionBar">
<item name="android:colorBackground">@color/window_background</item>
</style>
<style name="ButtonTheme" parent="Theme.AppCompat.DayNight">
<!-- A strange hack needed only to override button color on all API levels -->
<item name="colorAccent">@color/briar_button_background_color</item>
<style name="BriarButton.Default">
<item name="android:textAllCaps">true</item>
</style>
<style name="BriarButton" parent="Widget.AppCompat.Button.Colored">
<item name="android:theme">@style/ButtonTheme</item>
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:textColor">@color/button_text</item>
<item name="android:textSize">@dimen/text_size_medium</item>
<item name="android:padding">@dimen/margin_large</item>
<item name="android:textColor">@color/button_text</item>
</style>
<style name="BriarButtonFlat.Negative" parent="Widget.AppCompat.Button.Borderless">
<item name="android:textColor">@color/briar_button_text_negative</item>
<item name="android:textColor">@color/briar_button_negative</item>
<item name="android:textSize">@dimen/text_size_medium</item>
</style>
<style name="BriarButtonFlat.Positive" parent="Widget.AppCompat.Button.Borderless">
<item name="android:textColor">@color/briar_button_text_positive</item>
<item name="android:textColor">@color/briar_button_positive</item>
<item name="android:textSize">@dimen/text_size_medium</item>
</style>
<style name="BriarButtonFlat.Neutral" parent="Widget.AppCompat.Button.Borderless">
<item name="android:textColor">@color/briar_button_text_neutral</item>
<item name="android:textColor">@color/briar_button_neutral</item>
<item name="android:textSize">@dimen/text_size_medium</item>
</style>
@@ -73,8 +67,8 @@
<style name="Divider.ContactList" parent="Divider">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">1px</item>
<item name="android:layout_marginLeft">72dp</item>
<item name="android:layout_height">1dp</item>
<item name="android:layout_marginLeft">@dimen/margin_large</item>
</style>
<style name="Divider.ThreadItem" parent="Divider">
@@ -87,26 +81,6 @@
<item name="civ_border_color">?android:attr/textColorSecondary</item>
</style>
<style name="TextMessage">
<item name="android:textIsSelectable">true</item>
<item name="android:textSize">@dimen/text_size_medium</item>
<item name="android:textColor">?android:attr/textColorPrimary</item>
</style>
<style name="TextMessage.Notice">
<item name="android:textIsSelectable">true</item>
<item name="android:textSize">@dimen/text_size_small</item>
<item name="android:textColor">?android:attr/textColorSecondary</item>
<item name="android:textStyle">italic</item>
</style>
<style name="TextMessage.Timestamp">
<item name="android:textIsSelectable">false</item>
<item name="android:textSize">@dimen/text_size_tiny</item>
<item name="android:textColor">?android:attr/textColorTertiary</item>
<item name="android:maxLines">1</item>
</style>
<style name="DiscussionLevelIndicator">
<item name="android:layout_marginLeft">4dp</item>
<item name="android:background">@color/thread_indicator</item>