Merge branch 'md3' into 'master'

Migrate app to Material Design 3

Closes #2460

See merge request briar/briar!1825
This commit is contained in:
akwizgran
2024-06-10 16:55:38 +00:00
100 changed files with 556 additions and 517 deletions

View File

@@ -1,5 +1,6 @@
package org.briarproject.briar.android.account;
import android.annotation.SuppressLint;
import android.app.KeyguardManager;
import android.content.ActivityNotFoundException;
import android.content.Intent;
@@ -113,6 +114,7 @@ public class UnlockActivity extends BaseActivity {
}
@Override
@SuppressLint("MissingSuperCall")
public void onBackPressed() {
moveTaskToBack(true);
}

View File

@@ -7,6 +7,8 @@ import android.view.Window;
import android.widget.CheckBox;
import android.widget.Toast;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import org.briarproject.android.dontkillmelib.wakelock.AndroidWakeLockManager;
import org.briarproject.bramble.api.system.Wakeful;
import org.briarproject.briar.R;
@@ -177,8 +179,8 @@ public abstract class BriarActivity extends BaseActivity {
}
protected void showDozeDialog(@StringRes int message) {
AlertDialog.Builder b =
new AlertDialog.Builder(this, R.style.BriarDialogTheme);
MaterialAlertDialogBuilder b =
new MaterialAlertDialogBuilder(this, R.style.BriarDialogTheme);
b.setMessage(message);
b.setView(R.layout.checkbox);
b.setPositiveButton(R.string.fix,

View File

@@ -10,6 +10,8 @@ import android.view.View;
import android.view.ViewGroup;
import android.widget.Toast;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import org.briarproject.bramble.api.sync.GroupId;
import org.briarproject.briar.R;
import org.briarproject.briar.android.activity.ActivityComponent;
@@ -27,7 +29,6 @@ import javax.inject.Inject;
import androidx.annotation.Nullable;
import androidx.annotation.UiThread;
import androidx.appcompat.app.AlertDialog;
import androidx.lifecycle.ViewModelProvider;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView.LayoutManager;
@@ -220,8 +221,8 @@ public class BlogFragment extends BaseFragment
}
private void showDeleteDialog() {
AlertDialog.Builder builder = new AlertDialog.Builder(requireContext(),
R.style.BriarDialogTheme);
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(
requireContext(), R.style.BriarDialogTheme);
builder.setTitle(getString(R.string.blogs_remove_blog));
builder.setMessage(
getString(R.string.blogs_remove_blog_dialog_message));

View File

@@ -4,6 +4,8 @@ import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import org.briarproject.bramble.api.sync.GroupId;
import org.briarproject.briar.R;
import org.briarproject.briar.android.activity.BaseActivity;
@@ -13,7 +15,6 @@ import org.briarproject.nullsafety.ParametersNotNullByDefault;
import javax.inject.Inject;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.DialogFragment;
import androidx.lifecycle.ViewModelProvider;
@@ -51,8 +52,8 @@ public class RssFeedDeleteFeedDialogFragment extends DialogFragment {
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
GroupId groupId = new GroupId(
requireNonNull(requireArguments().getByteArray(GROUP_ID)));
AlertDialog.Builder builder = new AlertDialog.Builder(requireActivity(),
R.style.BriarDialogTheme);
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(
requireActivity(), R.style.BriarDialogTheme);
builder.setTitle(getString(R.string.blogs_rss_remove_feed));
builder.setMessage(
getString(R.string.blogs_rss_remove_feed_dialog_message));

View File

@@ -4,6 +4,8 @@ import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import org.briarproject.briar.R;
import org.briarproject.briar.android.activity.BaseActivity;
import org.briarproject.nullsafety.MethodsNotNullByDefault;
@@ -12,7 +14,6 @@ import org.briarproject.nullsafety.ParametersNotNullByDefault;
import javax.inject.Inject;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.DialogFragment;
import androidx.lifecycle.ViewModelProvider;
@@ -47,8 +48,8 @@ public class RssFeedImportFailedDialogFragment extends DialogFragment {
@Override
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
AlertDialog.Builder builder =
new AlertDialog.Builder(requireActivity(),
MaterialAlertDialogBuilder builder =
new MaterialAlertDialogBuilder(requireActivity(),
R.style.BriarDialogTheme);
builder.setMessage(R.string.blogs_rss_feeds_import_error);
builder.setNegativeButton(R.string.cancel, null);

View File

@@ -55,6 +55,7 @@ public class NicknameFragment extends BaseFragment {
private TextInputLayout contactNameLayout;
private TextInputEditText contactNameInput;
private BriarButton addButton;
@Override
public String getUniqueTag() {
@@ -91,7 +92,7 @@ public class NicknameFragment extends BaseFragment {
contactNameLayout = v.findViewById(R.id.contactNameLayout);
contactNameInput = v.findViewById(R.id.contactNameInput);
BriarButton addButton = v.findViewById(R.id.addButton);
addButton = v.findViewById(R.id.addButton);
addButton.setOnClickListener(view -> onAddButtonClicked());
return v;
@@ -112,7 +113,7 @@ public class NicknameFragment extends BaseFragment {
@Nullable
private String getNicknameOrNull() {
Editable text = contactNameInput.getText();
if (text == null || text.toString().trim().length() == 0) {
if (text == null || text.toString().trim().isEmpty()) {
contactNameLayout.setError(getString(R.string.nickname_missing));
contactNameInput.requestFocus();
return null;
@@ -129,7 +130,10 @@ public class NicknameFragment extends BaseFragment {
private void onAddButtonClicked() {
String name = getNicknameOrNull();
if (name == null) return; // invalid nickname
if (name == null) { // invalid nickname
addButton.reset();
return;
}
LifecycleOwner owner = getViewLifecycleOwner();
viewModel.getAddContactResult().observe(owner, result -> {

View File

@@ -4,6 +4,7 @@ import android.content.DialogInterface.OnClickListener;
import android.os.Bundle;
import android.view.MenuItem;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.android.material.snackbar.Snackbar;
import org.briarproject.bramble.api.contact.PendingContactId;
@@ -21,7 +22,6 @@ import javax.annotation.Nullable;
import javax.inject.Inject;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AlertDialog;
import androidx.lifecycle.ViewModelProvider;
import androidx.recyclerview.widget.LinearLayoutManager;
@@ -110,7 +110,7 @@ public class PendingContactListActivity extends BriarActivity
// show warning dialog
OnClickListener removeListener = (dialog, which) ->
removePendingContact(item.getPendingContact().getId());
AlertDialog.Builder builder = new AlertDialog.Builder(
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(
PendingContactListActivity.this, R.style.BriarDialogTheme);
builder.setTitle(
getString(R.string.dialog_title_remove_pending_contact));

View File

@@ -19,6 +19,7 @@ import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.android.material.snackbar.Snackbar;
import org.briarproject.bramble.api.FeatureFlags;
@@ -101,7 +102,6 @@ import javax.inject.Inject;
import androidx.activity.result.ActivityResultLauncher;
import androidx.annotation.Nullable;
import androidx.annotation.UiThread;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.widget.ActionMenuView;
import androidx.appcompat.widget.Toolbar;
import androidx.core.app.ActivityCompat;
@@ -812,8 +812,8 @@ public class ConversationActivity extends BriarActivity
}
private void askToDeleteAllMessages() {
AlertDialog.Builder builder =
new AlertDialog.Builder(this, R.style.BriarDialogTheme);
MaterialAlertDialogBuilder builder =
new MaterialAlertDialogBuilder(this, R.style.BriarDialogTheme);
builder.setTitle(getString(R.string.dialog_title_delete_all_messages));
builder.setMessage(
getString(R.string.dialog_message_delete_all_messages));
@@ -892,8 +892,8 @@ public class ConversationActivity extends BriarActivity
}
String msg = join(fails, "\n\n");
// show dialog
AlertDialog.Builder builder =
new AlertDialog.Builder(this, R.style.BriarDialogTheme);
MaterialAlertDialogBuilder builder =
new MaterialAlertDialogBuilder(this, R.style.BriarDialogTheme);
builder.setTitle(
getString(R.string.dialog_title_not_all_messages_deleted));
builder.setMessage(msg);
@@ -904,8 +904,8 @@ public class ConversationActivity extends BriarActivity
private void askToRemoveContact() {
DialogInterface.OnClickListener okListener =
(dialog, which) -> removeContact();
AlertDialog.Builder builder =
new AlertDialog.Builder(ConversationActivity.this,
MaterialAlertDialogBuilder builder =
new MaterialAlertDialogBuilder(ConversationActivity.this,
R.style.BriarDialogTheme);
builder.setTitle(getString(R.string.dialog_title_delete_contact));
builder.setMessage(

View File

@@ -7,6 +7,8 @@ import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import org.briarproject.briar.R;
import org.briarproject.briar.android.activity.ActivityComponent;
import org.briarproject.briar.android.sharing.ForumSharingStatusActivity;
@@ -20,7 +22,6 @@ import org.briarproject.nullsafety.ParametersNotNullByDefault;
import javax.annotation.Nullable;
import javax.inject.Inject;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.widget.Toolbar;
import androidx.lifecycle.ViewModelProvider;
@@ -128,7 +129,7 @@ public class ForumActivity extends
private void showUnsubscribeDialog() {
OnClickListener okListener = (dialog, which) -> viewModel.deleteForum();
AlertDialog.Builder builder = new AlertDialog.Builder(this,
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(this,
R.style.BriarDialogTheme);
builder.setTitle(getString(R.string.dialog_title_leave_forum));
builder.setMessage(getString(R.string.dialog_message_leave_forum));

View File

@@ -13,6 +13,8 @@ import android.view.View;
import android.widget.CheckBox;
import android.widget.TextView;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import org.briarproject.briar.R;
import org.briarproject.briar.android.activity.BaseActivity;
import org.briarproject.briar.api.android.ScreenFilterMonitor;
@@ -27,7 +29,6 @@ import java.util.Collection;
import javax.annotation.Nullable;
import javax.inject.Inject;
import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.DialogFragment;
import static android.os.Build.VERSION.SDK_INT;
@@ -75,8 +76,8 @@ public class ScreenFilterDialogFragment extends DialogFragment {
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
Activity activity = getActivity();
if (activity == null) throw new IllegalStateException();
AlertDialog.Builder builder = new AlertDialog.Builder(activity,
R.style.BriarDialogThemeNoFilter);
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(
activity, R.style.BriarDialogThemeNoFilter);
builder.setTitle(R.string.screen_filter_title);
Bundle args = getArguments();
if (args == null) throw new IllegalStateException();

View File

@@ -6,12 +6,13 @@ import android.content.Intent;
import android.net.wifi.WifiManager;
import android.widget.Toast;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import org.briarproject.briar.R;
import androidx.activity.result.ActivityResultLauncher;
import androidx.activity.result.contract.ActivityResultContracts;
import androidx.annotation.StringRes;
import androidx.appcompat.app.AlertDialog;
import androidx.core.util.Consumer;
import androidx.fragment.app.FragmentActivity;
@@ -73,7 +74,8 @@ abstract class AbstractConditionManager {
void showRationale(Context ctx, @StringRes int title,
@StringRes int body, Runnable onContinueClicked,
Runnable onDismiss) {
AlertDialog.Builder builder = new AlertDialog.Builder(ctx);
MaterialAlertDialogBuilder builder =
new MaterialAlertDialogBuilder(ctx);
builder.setTitle(title);
builder.setMessage(body);
builder.setNeutralButton(R.string.continue_button,

View File

@@ -32,6 +32,7 @@ import static android.widget.Toast.LENGTH_LONG;
import static org.briarproject.bramble.api.crypto.DecryptionResult.KEY_STRENGTHENER_ERROR;
import static org.briarproject.bramble.api.crypto.DecryptionResult.SUCCESS;
import static org.briarproject.bramble.api.crypto.PasswordStrengthEstimator.QUITE_WEAK;
import static org.briarproject.bramble.api.crypto.PasswordStrengthEstimator.STRONG;
import static org.briarproject.briar.android.login.LoginUtils.createKeyStrengthenerErrorDialog;
import static org.briarproject.briar.android.util.UiUtils.hideSoftKeyboard;
import static org.briarproject.briar.android.util.UiUtils.setError;
@@ -123,12 +124,25 @@ public class ChangePasswordActivity extends BriarActivity
boolean passwordsMatch = firstPassword.equals(secondPassword);
float strength = viewModel.estimatePasswordStrength(firstPassword);
strengthMeter.setStrength(strength);
if (!firstPassword.isEmpty()) {
if (strength >= STRONG) {
newPasswordEntryWrapper.setHelperText(
getString(R.string.password_strong));
} else if (strength >= QUITE_WEAK) {
newPasswordEntryWrapper.setHelperText(
getString(R.string.password_quite_strong));
} else {
newPasswordEntryWrapper.setHelperTextEnabled(false);
}
}
setError(newPasswordEntryWrapper,
getString(R.string.password_too_weak),
firstPassword.length() > 0 && strength < QUITE_WEAK);
!firstPassword.isEmpty() && strength < QUITE_WEAK);
setError(newPasswordConfirmationWrapper,
getString(R.string.passwords_do_not_match),
secondPassword.length() > 0 && !passwordsMatch);
!secondPassword.isEmpty() && !passwordsMatch);
changePasswordButton.setEnabled(
!currentPassword.getText().toString().isEmpty() &&
passwordsMatch && strength >= QUITE_WEAK);

View File

@@ -2,6 +2,8 @@ package org.briarproject.briar.android.login;
import android.content.Context;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import org.briarproject.briar.R;
import org.briarproject.nullsafety.NotNullByDefault;
@@ -13,8 +15,8 @@ import static org.briarproject.briar.android.util.UiUtils.getDialogIcon;
class LoginUtils {
static AlertDialog createKeyStrengthenerErrorDialog(Context ctx) {
AlertDialog.Builder builder =
new AlertDialog.Builder(ctx, R.style.BriarDialogTheme);
MaterialAlertDialogBuilder builder =
new MaterialAlertDialogBuilder(ctx, R.style.BriarDialogTheme);
builder.setIcon(getDialogIcon(ctx, R.drawable.alerts_and_states_error));
builder.setTitle(R.string.dialog_title_cannot_check_password);
builder.setMessage(R.string.dialog_message_cannot_check_password);

View File

@@ -9,6 +9,7 @@ import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ProgressBar;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.android.material.textfield.TextInputEditText;
import com.google.android.material.textfield.TextInputLayout;
@@ -154,9 +155,11 @@ public class PasswordFragment extends BaseFragment implements TextWatcher {
}
private void onForgottenPasswordClick() {
AlertDialog.Builder builder = new AlertDialog.Builder(requireContext(),
R.style.BriarDialogTheme);
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(
requireContext(), R.style.BriarDialogTheme);
builder.setTitle(R.string.dialog_title_lost_password);
builder.setBackgroundInsetStart(25);
builder.setBackgroundInsetEnd(25);
builder.setMessage(R.string.dialog_message_lost_password);
builder.setPositiveButton(R.string.cancel, null);
builder.setNegativeButton(R.string.delete,

View File

@@ -1,5 +1,6 @@
package org.briarproject.briar.android.login;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.os.Bundle;
@@ -74,6 +75,7 @@ public class StartupActivity extends BaseActivity implements
}
@Override
@SuppressLint("MissingSuperCall")
public void onBackPressed() {
// Move task and activity to the background instead of showing another
// password prompt.

View File

@@ -11,6 +11,7 @@ import android.widget.RadioGroup;
import android.widget.ScrollView;
import com.google.android.material.animation.ArgbEvaluatorCompat;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import org.briarproject.briar.R;
import org.briarproject.briar.android.view.BriarButton;
@@ -24,7 +25,6 @@ import javax.inject.Inject;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;
import androidx.lifecycle.ViewModelProvider;
@@ -148,8 +148,8 @@ public class ErrorWizardFragment extends Fragment {
}
private void onUnlinkButtonClicked(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(requireContext(),
R.style.BriarDialogTheme);
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(
requireContext(), R.style.BriarDialogTheme);
builder.setTitle(R.string.mailbox_status_unlink_dialog_title);
builder.setMessage(R.string.mailbox_status_unlink_dialog_question);
builder.setPositiveButton(R.string.cancel,

View File

@@ -5,6 +5,8 @@ import android.view.MenuItem;
import android.widget.ProgressBar;
import android.widget.Toast;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import org.briarproject.bramble.api.mailbox.MailboxPairingState;
import org.briarproject.bramble.api.mailbox.MailboxPairingState.ConnectionError;
import org.briarproject.bramble.api.mailbox.MailboxPairingState.InvalidQrCode;
@@ -31,7 +33,6 @@ import org.briarproject.nullsafety.ParametersNotNullByDefault;
import javax.inject.Inject;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.lifecycle.ViewModelProvider;
@@ -249,8 +250,8 @@ public class MailboxActivity extends BriarActivity {
if (tellUserToWipeMailbox) {
showFragment(getSupportFragmentManager(), new BlankFragment(),
BlankFragment.TAG);
AlertDialog.Builder builder =
new AlertDialog.Builder(this, R.style.BriarDialogTheme);
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(
this, R.style.BriarDialogTheme);
builder.setTitle(R.string.mailbox_status_unlink_no_wipe_title);
builder.setMessage(R.string.mailbox_status_unlink_no_wipe_message);
builder.setNeutralButton(R.string.got_it,

View File

@@ -13,6 +13,8 @@ import android.widget.ImageView;
import android.widget.ProgressBar;
import android.widget.TextView;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import org.briarproject.bramble.api.mailbox.MailboxStatus;
import org.briarproject.briar.R;
import org.briarproject.briar.android.view.BriarButton;
@@ -214,8 +216,8 @@ public class MailboxStatusFragment extends Fragment {
}
private void onUnlinkButtonClicked(boolean showWarning) {
AlertDialog.Builder builder = new AlertDialog.Builder(requireContext(),
R.style.BriarDialogTheme);
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(
requireContext(), R.style.BriarDialogTheme);
builder.setTitle(R.string.mailbox_status_unlink_dialog_title);
String msg = getString(R.string.mailbox_status_unlink_dialog_question);
if (showWarning) {

View File

@@ -10,6 +10,8 @@ import android.net.Uri;
import android.os.Bundle;
import android.text.TextUtils;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import org.briarproject.briar.R;
import java.util.ArrayList;
@@ -17,7 +19,6 @@ import java.util.logging.Logger;
import javax.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import androidx.preference.ListPreference;
import androidx.preference.PreferenceFragmentCompat;
import androidx.preference.SwitchPreferenceCompat;
@@ -201,8 +202,8 @@ public class PanicPreferencesFragment extends PreferenceFragmentCompat
getActivity().finish();
};
AlertDialog.Builder builder = new AlertDialog.Builder(getContext(),
R.style.BriarDialogTheme);
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(
requireContext(), R.style.BriarDialogTheme);
builder.setTitle(getString(R.string.dialog_title_connect_panic_app));
CharSequence app = getString(R.string.unknown_app);

View File

@@ -6,6 +6,8 @@ import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import org.briarproject.briar.R;
import org.briarproject.briar.android.activity.ActivityComponent;
import org.briarproject.briar.android.privategroup.creation.GroupInviteActivity;
@@ -20,7 +22,6 @@ import org.briarproject.nullsafety.ParametersNotNullByDefault;
import javax.annotation.Nullable;
import javax.inject.Inject;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.widget.Toolbar;
import androidx.lifecycle.ViewModelProvider;
@@ -178,8 +179,8 @@ public class GroupActivity extends
}
private void showLeaveGroupDialog() {
AlertDialog.Builder builder =
new AlertDialog.Builder(this, R.style.BriarDialogTheme);
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(
this, R.style.BriarDialogTheme);
builder.setTitle(getString(R.string.groups_leave_dialog_title));
builder.setMessage(getString(R.string.groups_leave_dialog_message));
builder.setNegativeButton(R.string.dialog_button_leave,
@@ -189,8 +190,8 @@ public class GroupActivity extends
}
private void showDissolveGroupDialog() {
AlertDialog.Builder builder =
new AlertDialog.Builder(this, R.style.BriarDialogTheme);
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(
this, R.style.BriarDialogTheme);
builder.setTitle(getString(R.string.groups_dissolve_dialog_title));
builder.setMessage(getString(R.string.groups_dissolve_dialog_message));
builder.setNegativeButton(R.string.groups_dissolve_button,
@@ -206,8 +207,8 @@ public class GroupActivity extends
}
private void onGroupDissolved() {
AlertDialog.Builder builder =
new AlertDialog.Builder(this, R.style.BriarDialogTheme);
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(
this, R.style.BriarDialogTheme);
builder.setTitle(getString(R.string.groups_dissolved_dialog_title));
builder.setMessage(getString(R.string.groups_dissolved_dialog_message));
builder.setNeutralButton(R.string.ok, null);

View File

@@ -9,6 +9,8 @@ import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import org.briarproject.bramble.api.contact.ContactId;
import org.briarproject.bramble.api.db.DbException;
import org.briarproject.bramble.api.sync.GroupId;
@@ -26,7 +28,6 @@ import javax.annotation.Nullable;
import javax.inject.Inject;
import androidx.annotation.LayoutRes;
import androidx.appcompat.app.AlertDialog;
@MethodsNotNullByDefault
@ParametersNotNullByDefault
@@ -105,7 +106,8 @@ public class RevealContactsActivity extends ContactSelectorActivity
}
private void showOnboardingDialog() {
new AlertDialog.Builder(this, R.style.OnboardingDialogTheme)
new MaterialAlertDialogBuilder(this,
R.style.OnboardingDialogTheme)
.setMessage(getString(R.string.groups_reveal_dialog_message))
.setNeutralButton(R.string.got_it,
(dialog, which) -> dialog.cancel())

View File

@@ -1,5 +1,6 @@
package org.briarproject.briar.android.reporting;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
@@ -87,6 +88,7 @@ public class CrashReportActivity extends BaseActivity
}
@Override
@SuppressLint("MissingSuperCall")
public void onBackPressed() {
exit();
}

View File

@@ -10,6 +10,7 @@ import android.widget.ImageView;
import android.widget.TextView;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import org.briarproject.briar.R;
import org.briarproject.briar.android.activity.BaseActivity;
@@ -20,7 +21,6 @@ import org.briarproject.nullsafety.ParametersNotNullByDefault;
import javax.inject.Inject;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.DialogFragment;
import androidx.fragment.app.FragmentActivity;
import androidx.lifecycle.ViewModelProvider;
@@ -86,7 +86,7 @@ public class ConfirmAvatarDialogFragment extends DialogFragment {
);
int theme = R.style.BriarDialogTheme;
return new AlertDialog.Builder(activity, theme)
return new MaterialAlertDialogBuilder(activity, theme)
.setView(view)
.setTitle(R.string.dialog_confirm_profile_picture_title)
.setNegativeButton(R.string.cancel, null)

View File

@@ -1,9 +1,10 @@
package org.briarproject.briar.android.settings;
import android.app.AlertDialog;
import android.content.Intent;
import android.os.Bundle;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import org.briarproject.briar.R;
import org.briarproject.briar.android.Localizer;
import org.briarproject.briar.android.util.UiUtils;
@@ -101,8 +102,8 @@ public class DisplayFragment extends PreferenceFragmentCompat {
private boolean onLanguageChanged(Preference preference, Object newValue) {
ListPreference language = (ListPreference) preference;
if (!language.getValue().equals(newValue)) {
AlertDialog.Builder builder =
new AlertDialog.Builder(getActivity());
MaterialAlertDialogBuilder builder =
new MaterialAlertDialogBuilder(requireContext());
builder.setTitle(R.string.pref_language_title);
builder.setMessage(R.string.pref_language_changed);
builder.setPositiveButton(R.string.sign_out_button, (d, i) -> {

View File

@@ -18,7 +18,8 @@ import static androidx.core.content.ContextCompat.getColor;
public class BriarSnackbarBuilder {
@ColorRes
private int backgroundResId = R.color.briar_primary;
@Nullable
private Integer backgroundResId = null;
@StringRes
private int actionResId;
@Nullable
@@ -26,7 +27,11 @@ public class BriarSnackbarBuilder {
public Snackbar make(View view, CharSequence text, int duration) {
Snackbar s = Snackbar.make(view, text, duration);
s.getView().setBackgroundResource(backgroundResId);
if (backgroundResId != null) {
s.setBackgroundTint(getColor(view.getContext(), backgroundResId));
s.setTextColor(
getColor(view.getContext(), R.color.md_theme_onSecondary));
}
if (onClickListener != null) {
s.setActionTextColor(getColor(view.getContext(),
R.color.briar_button_text_positive));

View File

@@ -6,6 +6,8 @@ import android.content.Intent;
import android.location.LocationManager;
import android.net.Uri;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import org.briarproject.briar.R;
import org.briarproject.nullsafety.MethodsNotNullByDefault;
import org.briarproject.nullsafety.ParametersNotNullByDefault;
@@ -16,7 +18,6 @@ import androidx.activity.result.ActivityResultLauncher;
import androidx.annotation.Nullable;
import androidx.annotation.RequiresApi;
import androidx.annotation.StringRes;
import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.FragmentActivity;
import static android.Manifest.permission.BLUETOOTH_ADVERTISE;
@@ -108,8 +109,8 @@ public class PermissionUtils {
}
public static void showLocationDialog(Context ctx, boolean forBluetooth) {
AlertDialog.Builder builder =
new AlertDialog.Builder(ctx, R.style.BriarDialogTheme);
MaterialAlertDialogBuilder builder =
new MaterialAlertDialogBuilder(ctx, R.style.BriarDialogTheme);
builder.setTitle(R.string.permission_location_setting_title);
if (forBluetooth) {
builder.setMessage(R.string.permission_location_setting_body);
@@ -136,8 +137,8 @@ public class PermissionUtils {
public static void showDenialDialog(FragmentActivity ctx,
@StringRes int title, @StringRes int body, Runnable onDenied) {
AlertDialog.Builder builder =
new AlertDialog.Builder(ctx, R.style.BriarDialogTheme);
MaterialAlertDialogBuilder builder =
new MaterialAlertDialogBuilder(ctx, R.style.BriarDialogTheme);
builder.setTitle(title);
builder.setMessage(body);
builder.setPositiveButton(R.string.ok, getGoToSettingsListener(ctx));
@@ -148,8 +149,8 @@ public class PermissionUtils {
public static void showRationale(FragmentActivity ctx, @StringRes int title,
@StringRes int body, @Nullable Runnable onOk) {
AlertDialog.Builder builder =
new AlertDialog.Builder(ctx, R.style.BriarDialogTheme);
MaterialAlertDialogBuilder builder =
new MaterialAlertDialogBuilder(ctx, R.style.BriarDialogTheme);
builder.setTitle(title);
builder.setMessage(body);
builder.setNeutralButton(R.string.continue_button, (dialog, which) -> {

View File

@@ -28,6 +28,7 @@ import android.view.inputmethod.InputMethodManager;
import android.widget.TextView;
import android.widget.Toast;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.android.material.textfield.TextInputLayout;
import org.briarproject.bramble.api.contact.Contact;
@@ -52,7 +53,6 @@ import androidx.annotation.ColorRes;
import androidx.annotation.DrawableRes;
import androidx.annotation.Nullable;
import androidx.annotation.UiThread;
import androidx.appcompat.app.AlertDialog;
import androidx.core.content.ContextCompat;
import androidx.core.hardware.fingerprint.FingerprintManagerCompat;
import androidx.core.text.HtmlCompat;
@@ -322,7 +322,7 @@ public class UiUtils {
}
public static void showOnboardingDialog(Context ctx, String text) {
new AlertDialog.Builder(ctx, R.style.OnboardingDialogTheme)
new MaterialAlertDialogBuilder(ctx, R.style.OnboardingDialogTheme)
.setMessage(text)
.setNeutralButton(R.string.got_it,
(dialog, which) -> dialog.cancel())

View File

@@ -8,12 +8,13 @@ import android.widget.Button;
import android.widget.FrameLayout;
import android.widget.ProgressBar;
import com.google.android.material.button.MaterialButton;
import org.briarproject.briar.R;
import org.briarproject.nullsafety.NotNullByDefault;
import androidx.annotation.Nullable;
import androidx.appcompat.view.ContextThemeWrapper;
import androidx.appcompat.widget.AppCompatButton;
import static android.content.Context.LAYOUT_INFLATER_SERVICE;
import static androidx.transition.TransitionManager.beginDelayedTransition;
@@ -47,8 +48,8 @@ public class BriarButton extends FrameLayout {
attributes.recycle();
ContextThemeWrapper wrapper = new ContextThemeWrapper(context, style);
button = isInEditMode() ? new AppCompatButton(context) :
new AppCompatButton(wrapper, null, style);
button = isInEditMode() ? new MaterialButton(context) :
new MaterialButton(wrapper, null, style);
button.setText(text);
addView(button);
progressBar = findViewById(R.id.briar_button_progress_bar);

View File

@@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:color="@color/briar_button_text_disabled"
android:state_enabled="false"/>
<item
android:color="#ffffffff"/>
</selector>

View File

@@ -1,7 +0,0 @@
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="?attr/colorControlHighlight">
<item
android:id="@android:id/mask"
android:drawable="@drawable/button_outline_mask" />
<item android:drawable="@drawable/button_outline_background" />
</ripple>

View File

@@ -1,19 +0,0 @@
<inset xmlns:android="http://schemas.android.com/apk/res/android"
android:insetLeft="4dp"
android:insetTop="6dp"
android:insetRight="4dp"
android:insetBottom="6dp">
<shape
android:shape="rectangle">
<corners android:radius="2dp" />
<solid android:color="@android:color/transparent" />
<stroke
android:width="1dp"
android:color="@color/briar_button_outline" />
<padding
android:bottom="4dp"
android:left="8dp"
android:right="8dp"
android:top="4dp" />
</shape>
</inset>

View File

@@ -1,19 +0,0 @@
<inset xmlns:android="http://schemas.android.com/apk/res/android"
android:insetLeft="4dp"
android:insetTop="6dp"
android:insetRight="4dp"
android:insetBottom="6dp">
<shape
android:shape="rectangle">
<corners android:radius="2dp" />
<solid android:color="@android:color/white" />
<stroke
android:width="1dp"
android:color="@android:color/white" />
<padding
android:bottom="4dp"
android:left="8dp"
android:right="8dp"
android:top="4dp" />
</shape>
</inset>

View File

@@ -7,7 +7,7 @@
android:radius="32dp"/>
<solid
android:color="@color/briar_lime_600"/>
android:color="?colorTertiaryContainer"/>
</shape>

View File

@@ -7,7 +7,7 @@
android:radius="32dp"/>
<solid
android:color="@color/briar_accent"/>
android:color="?colorTertiary"/>
</shape>

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners
android:radius="32dp"/>
<solid
android:color="?colorSurfaceDim"/>
</shape>

View File

@@ -1,16 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:bottom="6dp"
android:left="4dp"
android:right="4dp"
android:top="6dp">
<shape android:shape="rectangle">
<corners android:radius="2dp" />
<solid android:color="@android:color/transparent" />
<stroke
android:width="1dp"
android:color="@color/briar_button_outline" />
</shape>
</item>
</layer-list>

View File

@@ -4,6 +4,7 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"
tools:context=".android.login.ChangePasswordActivity">
<androidx.constraintlayout.widget.ConstraintLayout
@@ -64,15 +65,27 @@
android:maxLines="1" />
</com.google.android.material.textfield.TextInputLayout>
<org.briarproject.briar.android.login.StrengthMeter
android:id="@+id/strength_meter"
android:layout_width="match_parent"
android:layout_height="10dp"
android:layout_marginTop="8dp"
android:visibility="invisible"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/new_password_entry_wrapper"
tools:visibility="visible" />
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/new_password_confirm_wrapper"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
app:errorEnabled="true"
app:hintEnabled="false"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/new_password_entry_wrapper"
app:layout_constraintTop_toBottomOf="@id/strength_meter"
app:passwordToggleEnabled="true">
<com.google.android.material.textfield.TextInputEditText
@@ -86,15 +99,6 @@
android:maxLines="1" />
</com.google.android.material.textfield.TextInputLayout>
<org.briarproject.briar.android.login.StrengthMeter
android:id="@+id/strength_meter"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="invisible"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/new_password_confirm_wrapper" />
<Button
android:id="@+id/change_password"
style="@style/BriarButton"
@@ -103,16 +107,20 @@
android:layout_marginTop="@dimen/margin_medium"
android:enabled="false"
android:text="@string/change_password"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/strength_meter"
app:layout_constraintTop_toBottomOf="@id/new_password_confirm_wrapper"
app:layout_constraintVertical_bias="1.0"
tools:enabled="true" />
<ProgressBar
<com.google.android.material.progressindicator.CircularProgressIndicator
android:id="@+id/progress_wheel"
style="@style/CircularProgress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="invisible"
app:layout_constraintBottom_toBottomOf="@+id/change_password"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="@id/change_password" />

View File

@@ -12,7 +12,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content">
<androidx.appcompat.widget.Toolbar
<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/toolbar"
style="@style/BriarToolbar"
android:layout_width="match_parent"
@@ -40,7 +40,7 @@
</LinearLayout>
</androidx.appcompat.widget.Toolbar>
</com.google.android.material.appbar.MaterialToolbar>
</com.google.android.material.appbar.AppBarLayout>

View File

@@ -35,8 +35,9 @@
android:text="@string/create_forum_button"
tools:enabled="true" />
<ProgressBar
<com.google.android.material.progressindicator.CircularProgressIndicator
android:id="@+id/createForumProgressBar"
style="@style/CircularProgress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"

View File

@@ -18,7 +18,7 @@
android:layout_height="wrap_content"
android:background="@color/msg_status_bubble_background">
<androidx.appcompat.widget.Toolbar
<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/toolbar"
style="@style/BriarToolbar"
android:layout_width="match_parent"
@@ -50,7 +50,7 @@
</LinearLayout>
</androidx.appcompat.widget.Toolbar>
</com.google.android.material.appbar.MaterialToolbar>
</com.google.android.material.appbar.AppBarLayout>

View File

@@ -5,9 +5,9 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
<ProgressBar
<com.google.android.material.progressindicator.CircularProgressIndicator
android:id="@+id/progressBar"
style="?android:progressBarStyleLarge"
style="@style/CircularProgress.Large"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"

View File

@@ -19,9 +19,9 @@
</org.briarproject.briar.android.view.LargeTextInputView>
<ProgressBar
<com.google.android.material.progressindicator.CircularProgressIndicator
android:id="@+id/progressBar"
style="?android:attr/progressBarStyleLarge"
style="@style/CircularProgress.Large"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"

View File

@@ -6,12 +6,14 @@
<!-- Button gets added programmatically so we can pass on the styles -->
<ProgressBar
<com.google.android.material.progressindicator.CircularProgressIndicator
android:id="@+id/briar_button_progress_bar"
style="@style/CircularProgress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:visibility="invisible"
tools:progress="50"
tools:visibility="visible" />
</merge>

View File

@@ -15,9 +15,9 @@
tools:listitem="@layout/list_item_contact"
tools:visibility="visible" />
<ProgressBar
<com.google.android.material.progressindicator.CircularProgressIndicator
android:id="@+id/progressBar"
style="?android:attr/progressBarStyleLarge"
style="@style/CircularProgress.Large"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"

View File

@@ -21,6 +21,7 @@
android:id="@+id/aliasEditLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
app:errorEnabled="true"
app:hintEnabled="false">
@@ -28,7 +29,6 @@
android:id="@+id/aliasEditText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:hint="@string/set_contact_alias_hint"
android:imeOptions="flagNoPersonalizedLearning"
android:inputType="text|textCapWords"
@@ -41,7 +41,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/margin_xxlarge"
android:layout_marginLeft="@dimen/margin_xxlarge"
android:layout_marginBottom="8dp"
android:gravity="end"
android:orientation="horizontal">

View File

@@ -19,9 +19,9 @@
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<ProgressBar
<com.google.android.material.progressindicator.CircularProgressIndicator
android:id="@+id/progressBar"
style="?android:attr/progressBarStyleLarge"
style="@style/CircularProgress.Large"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center" />

View File

@@ -34,7 +34,6 @@
android:text="@string/connect_via_bluetooth_intro"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/introImageView" />

View File

@@ -17,12 +17,12 @@
app:layout_constraintVertical_chainStyle="packed"
app:srcCompat="@drawable/il_bluetooth_connect" />
<ProgressBar
<com.google.android.material.progressindicator.LinearProgressIndicator
android:id="@+id/progressBar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:indeterminate="true"
app:indicatorColor="@color/briar_accent"
app:layout_constraintBottom_toTopOf="@+id/textView"
app:layout_constraintEnd_toEndOf="@+id/introImageView"
app:layout_constraintStart_toStartOf="@+id/introImageView"

View File

@@ -18,8 +18,7 @@
app:fab_fabDrawable="@drawable/ic_action_add"
app:fab_fabRippleColor="@android:color/transparent"
app:fab_menu="@menu/contact_list_actions"
app:fab_miniFabTextBackground="@color/briar_accent"
app:fab_miniFabTextColor="@android:color/white"
app:fab_miniFabTextBackground="?attr/colorPrimary"
app:layout_anchorGravity="bottom|right|end"
app:layout_behavior="org.briarproject.briar.android.view.SnackbarAwareBehavior" />

View File

@@ -5,7 +5,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.appcompat.widget.Toolbar
<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/toolbar"
style="@style/BriarToolbar"
android:layout_width="match_parent"
@@ -40,7 +40,7 @@
app:tint="?attr/colorControlNormal"
tools:ignore="ContentDescription" />
<androidx.appcompat.widget.SwitchCompat
<com.google.android.material.materialswitch.MaterialSwitch
android:id="@+id/switchDisappearingMessages"
android:layout_width="0dp"
android:layout_height="wrap_content"
@@ -50,6 +50,7 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/imageViewBomb"
tools:checked="true"
tools:enabled="true" />
<Button

View File

@@ -35,8 +35,9 @@
android:text="@string/groups_create_group_button"
tools:enabled="true" />
<ProgressBar
<com.google.android.material.progressindicator.CircularProgressIndicator
android:id="@+id/progressBar"
style="@style/CircularProgress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"

View File

@@ -37,9 +37,9 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/fallbackIntro" />
<ProgressBar
<com.google.android.material.progressindicator.CircularProgressIndicator
android:id="@+id/progressBar"
style="?android:progressBarStyle"
style="@style/CircularProgress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="invisible"

View File

@@ -59,19 +59,17 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginHorizontal="@dimen/margin_large"
android:drawablePadding="8dp"
android:text="@string/hotspot_button_start_sharing"
app:drawableLeftCompat="@drawable/ic_wifi_tethering"
app:drawableStartCompat="@drawable/ic_wifi_tethering"
app:drawableTint="@color/button_text"
app:icon="@drawable/ic_wifi_tethering"
app:iconTint="?attr/colorOnPrimary"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
tools:visibility="visible" />
<ProgressBar
<com.google.android.material.progressindicator.CircularProgressIndicator
android:id="@+id/progressBar"
style="?android:attr/progressBarStyle"
style="@style/CircularProgress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="invisible"

View File

@@ -76,11 +76,9 @@
android:layout_height="wrap_content"
android:layout_marginHorizontal="16dp"
android:layout_marginTop="6dp"
android:drawablePadding="8dp"
android:text="@string/hotspot_button_connected"
app:drawableLeftCompat="@drawable/ic_check_white"
app:drawableStartCompat="@drawable/ic_check_white"
app:drawableTint="@color/button_text"
app:icon="@drawable/ic_check_white"
app:iconTint="?attr/colorOnPrimary"
app:layout_constraintBottom_toTopOf="@+id/stopButton"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
@@ -94,11 +92,9 @@
android:layout_height="wrap_content"
android:layout_marginHorizontal="16dp"
android:layout_marginTop="6dp"
android:drawablePadding="8dp"
android:text="@string/hotspot_button_stop_sharing"
app:drawableLeftCompat="@drawable/ic_portable_wifi_off"
app:drawableStartCompat="@drawable/ic_portable_wifi_off"
app:drawableTint="@color/briar_red_500"
app:icon="@drawable/ic_portable_wifi_off"
app:iconTint="@color/briar_red_500"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"

View File

@@ -27,9 +27,9 @@
android:visibility="invisible"
tools:visibility="visible">
<ProgressBar
<com.google.android.material.progressindicator.CircularProgressIndicator
android:id="@+id/connect_progress"
style="?android:attr/progressBarStyleLarge"
style="@style/CircularProgress.Large"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toTopOf="@+id/connect_status"

View File

@@ -49,7 +49,7 @@
android:layout_height="1dp"
android:layout_margin="16dp"
android:alpha="0.5"
android:background="@color/briar_accent"
android:background="?colorTertiary"
app:layout_constraintBottom_toBottomOf="@+id/stepOne"
app:layout_constraintEnd_toStartOf="@+id/stepTwo"
app:layout_constraintStart_toEndOf="@+id/stepOne"
@@ -94,12 +94,12 @@
android:layout_width="38dp"
android:layout_height="38dp"
android:layout_marginTop="8dp"
android:background="@drawable/bubble_accent"
android:background="@drawable/bubble_current"
android:scaleType="center"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/imageView"
app:srcCompat="@drawable/ic_call_made"
app:tint="@android:color/white" />
app:tint="?colorOnTertiary" />
<TextView
android:id="@+id/yourLink"
@@ -137,11 +137,10 @@
style="@style/BriarButtonFlat.Positive.Tiny"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawablePadding="8dp"
android:enabled="false"
android:text="@string/copy_button"
app:drawableLeftCompat="@drawable/ic_content_copy"
app:drawableStartCompat="@drawable/ic_content_copy"
app:icon="@drawable/ic_content_copy"
app:iconPadding="8dp"
app:layout_constraintEnd_toStartOf="@id/shareButton"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintHorizontal_chainStyle="packed"
@@ -153,11 +152,10 @@
style="@style/BriarButtonFlat.Positive.Tiny"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawablePadding="8dp"
android:enabled="false"
android:text="@string/share_button"
app:drawableLeftCompat="@drawable/social_share_blue"
app:drawableStartCompat="@drawable/social_share_blue"
app:icon="@drawable/social_share_blue"
app:iconPadding="8dp"
app:layout_constraintBottom_toBottomOf="@id/copyButton"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/copyButton"
@@ -168,12 +166,12 @@
android:layout_width="38dp"
android:layout_height="38dp"
android:layout_marginTop="16dp"
android:background="@drawable/bubble_accent"
android:background="@drawable/bubble_current"
android:scaleType="center"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/copyButton"
app:srcCompat="@drawable/ic_call_received"
app:tint="@android:color/white" />
app:tint="?colorOnTertiary" />
<TextView
android:id="@+id/inputLink"
@@ -216,15 +214,14 @@
style="@style/BriarButtonFlat.Positive.Tiny"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawablePadding="8dp"
android:text="@string/paste_button"
app:drawableLeftCompat="@drawable/ic_content_paste"
app:drawableStartCompat="@drawable/ic_content_paste"
app:icon="@drawable/ic_content_paste"
app:iconPadding="8dp"
app:layout_constraintBottom_toTopOf="@+id/infoView"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/linkInputLayout"
app:layout_constraintBottom_toTopOf="@+id/infoView"
app:layout_constraintVertical_bias="0.0" />
<org.briarproject.briar.android.view.InfoView

View File

@@ -20,18 +20,19 @@
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_chainStyle="packed" />
<ProgressBar
<com.google.android.material.progressindicator.LinearProgressIndicator
android:id="@+id/progressBar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginHorizontal="@dimen/margin_xlarge"
android:layout_marginTop="@dimen/margin_xlarge"
android:max="100"
app:indicatorColor="@color/briar_accent"
app:layout_constraintBottom_toTopOf="@+id/info"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/title" />
app:layout_constraintTop_toBottomOf="@+id/title"
tools:progress="50" />
<TextView
android:id="@+id/info"

View File

@@ -52,11 +52,9 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="@dimen/margin_large"
android:drawablePadding="8dp"
android:text="@string/mailbox_setup_button_scan"
app:drawableLeftCompat="@drawable/ic_qr_code"
app:drawableStartCompat="@drawable/ic_qr_code"
app:drawableTint="@color/button_text"
app:icon="@drawable/ic_qr_code"
app:iconTint="?attr/colorOnPrimary"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"

View File

@@ -95,7 +95,6 @@
android:layout_marginTop="6dp"
android:text="@string/mailbox_error_wizard_button"
android:visibility="gone"
app:drawableTint="@color/briar_button_text_positive"
app:layout_constraintBottom_toTopOf="@+id/unlinkButton"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
@@ -114,8 +113,9 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<ProgressBar
<com.google.android.material.progressindicator.CircularProgressIndicator
android:id="@+id/unlinkProgress"
style="@style/CircularProgress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="invisible"

View File

@@ -49,7 +49,7 @@
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_margin="16dp"
android:background="@color/briar_accent"
android:background="?colorTertiary"
app:layout_constraintBottom_toBottomOf="@+id/stepOne"
app:layout_constraintEnd_toStartOf="@+id/stepTwo"
app:layout_constraintStart_toEndOf="@+id/stepOne"
@@ -96,13 +96,13 @@
android:layout_width="38dp"
android:layout_height="38dp"
android:layout_marginTop="32dp"
android:background="@drawable/bubble_accent"
android:background="@drawable/bubble_current"
android:scaleType="center"
app:layout_constraintBottom_toTopOf="@+id/contactNameLayout"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/imageView"
app:srcCompat="@drawable/ic_person"
app:tint="@android:color/white" />
app:tint="?colorOnTertiary" />
<TextView
android:id="@+id/nicknameIntro"

View File

@@ -7,7 +7,7 @@
android:background="@color/briar_primary"
android:orientation="vertical">
<androidx.appcompat.widget.Toolbar
<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/toolbar"
style="@style/BriarToolbar"
android:layout_width="match_parent"

View File

@@ -20,15 +20,17 @@
app:tint="@color/briar_accent"
tools:ignore="ContentDescription" />
<ProgressBar
<com.google.android.material.progressindicator.CircularProgressIndicator
android:id="@+id/progressBar"
style="?android:attr/progressBarStyleLarge"
style="@style/CircularProgress.Large"
android:layout_width="0dp"
android:layout_height="0dp"
app:indicatorColor="@color/briar_accent"
app:layout_constraintBottom_toBottomOf="@+id/imageView"
app:layout_constraintEnd_toEndOf="@+id/imageView"
app:layout_constraintStart_toStartOf="@+id/imageView"
app:layout_constraintTop_toTopOf="@+id/imageView" />
app:layout_constraintTop_toTopOf="@+id/imageView"
tools:progress="50" />
<TextView
android:id="@+id/textView"

View File

@@ -64,22 +64,21 @@
</com.google.android.material.textfield.TextInputLayout>
<TextView
<Button
android:id="@+id/btn_forgotten"
style="@style/BriarButtonFlat.Neutral"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:clickable="true"
android:focusable="true"
android:layout_marginBottom="8dp"
android:text="@string/forgotten_password"
android:textColor="?android:attr/textColorLink"
app:layout_constraintBottom_toTopOf="@+id/btn_sign_in"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/password_layout" />
<Button
<com.google.android.material.button.MaterialButton
android:id="@+id/btn_sign_in"
style="@style/BriarButton"
android:layout_width="match_parent"
@@ -89,8 +88,9 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<ProgressBar
<com.google.android.material.progressindicator.CircularProgressIndicator
android:id="@+id/progress_wheel"
style="@style/CircularProgress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="invisible"

View File

@@ -11,9 +11,9 @@
android:layout_height="wrap_content"
android:layout_margin="@dimen/margin_xlarge">
<ProgressBar
<com.google.android.material.progressindicator.CircularProgressIndicator
android:id="@+id/progress"
style="?android:attr/progressBarStyleLarge"
style="@style/CircularProgress.Large"
android:layout_width="@dimen/hero_square"
android:layout_height="@dimen/hero_square"
android:indeterminate="true"

View File

@@ -22,9 +22,9 @@
android:layout_height="wrap_content"
android:layout_margin="@dimen/margin_small" />
<ProgressBar
<com.google.android.material.progressindicator.CircularProgressIndicator
android:id="@+id/progressBar"
style="?android:attr/progressBarStyleLarge"
style="@style/CircularProgress.Large"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true" />

View File

@@ -40,6 +40,7 @@
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/margin_large"
android:layout_marginLeft="@dimen/margin_large"
android:layout_marginTop="8dp"
android:layout_marginEnd="@dimen/margin_large"
android:layout_marginRight="@dimen/margin_large"
app:hintEnabled="false"
@@ -109,9 +110,9 @@
tools:listitem="@layout/list_item_crash"
tools:visibility="visible" />
<ProgressBar
<com.google.android.material.progressindicator.CircularProgressIndicator
android:id="@+id/progress_wheel"
style="?android:attr/progressBarStyleLarge"
style="@style/CircularProgress.Large"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="invisible"

View File

@@ -42,9 +42,9 @@
android:text="@string/blogs_rss_feeds_import_button"
tools:enabled="true" />
<ProgressBar
<com.google.android.material.progressindicator.CircularProgressIndicator
android:id="@+id/progressBar"
style="?android:attr/progressBarStyle"
style="@style/CircularProgress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"

View File

@@ -68,15 +68,14 @@
</com.google.android.material.textfield.TextInputLayout>
<androidx.appcompat.widget.AppCompatButton
<Button
android:id="@+id/info_button"
style="@style/BriarButtonFlat.Positive"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableStart="@drawable/ic_info_white"
android:drawablePadding="8dp"
android:text="@string/more_info"
app:drawableTint="@color/briar_button_text_positive"
app:icon="@drawable/ic_info_white"
app:iconPadding="8dp"
app:layout_constraintBottom_toTopOf="@+id/next"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/nickname_entry_wrapper" />

View File

@@ -87,9 +87,9 @@
app:layout_constraintStart_toStartOf="parent"
tools:enabled="true" />
<ProgressBar
<com.google.android.material.progressindicator.CircularProgressIndicator
android:id="@+id/progress"
style="?android:attr/progressBarStyle"
style="@style/CircularProgress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="invisible"

View File

@@ -106,15 +106,14 @@
android:maxLines="1" />
</com.google.android.material.textfield.TextInputLayout>
<androidx.appcompat.widget.AppCompatButton
<Button
android:id="@+id/info_button"
style="@style/BriarButtonFlat.Positive"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableStart="@drawable/ic_info_white"
android:drawablePadding="8dp"
android:text="@string/more_info"
app:drawableTint="@color/briar_button_text_positive"
app:icon="@drawable/ic_info_white"
app:iconPadding="8dp"
app:layout_constraintBottom_toTopOf="@+id/next"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/password_confirm_wrapper" />
@@ -131,9 +130,9 @@
app:layout_constraintRight_toRightOf="parent"
tools:enabled="true" />
<ProgressBar
<com.google.android.material.progressindicator.CircularProgressIndicator
android:id="@+id/progress"
style="?android:attr/progressBarStyle"
style="@style/CircularProgress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="invisible"

View File

@@ -20,11 +20,12 @@
app:tint="@color/briar_accent"
tools:ignore="ContentDescription" />
<ProgressBar
<com.google.android.material.progressindicator.CircularProgressIndicator
android:id="@+id/progressBar"
style="?android:attr/progressBarStyleLarge"
style="@style/CircularProgress.Large"
android:layout_width="0dp"
android:layout_height="0dp"
app:indicatorColor="@color/briar_accent"
app:layout_constraintBottom_toBottomOf="@+id/imageView"
app:layout_constraintEnd_toEndOf="@+id/imageView"
app:layout_constraintStart_toStartOf="@+id/imageView"

View File

@@ -30,15 +30,15 @@
app:srcCompat="@drawable/il_transfer_data_receive"
tools:ignore="ContentDescription" />
<ProgressBar
<com.google.android.material.progressindicator.LinearProgressIndicator
android:id="@+id/progressBar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginHorizontal="@dimen/margin_xlarge"
android:layout_marginTop="@dimen/margin_xlarge"
android:indeterminate="true"
android:visibility="gone"
app:indicatorColor="@color/briar_accent"
app:layout_constraintBottom_toTopOf="@+id/introTextView"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"

View File

@@ -30,18 +30,19 @@
app:srcCompat="@drawable/il_transfer_data_send"
tools:ignore="ContentDescription" />
<ProgressBar
<com.google.android.material.progressindicator.LinearProgressIndicator
android:id="@+id/progressBar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginHorizontal="@dimen/margin_xlarge"
android:layout_marginTop="@dimen/margin_xlarge"
android:visibility="gone"
app:indicatorColor="@color/briar_accent"
app:layout_constraintBottom_toTopOf="@+id/introTextView"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/imageView"
tools:progress="50"
tools:visibility="visible" />
<TextView

View File

@@ -38,13 +38,15 @@
android:layout_marginEnd="8dp"
android:layout_marginRight="8dp"
android:layout_marginBottom="8dp"
app:backgroundTint="@color/briar_accent"
android:contentDescription="@string/close"
app:backgroundTint="?colorSecondary"
app:fabCustomSize="26dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0"
app:maxImageSize="18dp"
app:srcCompat="@drawable/ic_close" />
app:srcCompat="@drawable/ic_close"
app:tint="?colorOnSecondary" />
</merge>

View File

@@ -14,7 +14,6 @@
android:contentDescription="@string/info"
android:drawablePadding="@dimen/margin_medium"
android:gravity="center_vertical"
app:drawableLeftCompat="@drawable/ic_info_dark"
app:drawableStartCompat="@drawable/ic_info_dark"
app:drawableTint="?attr/colorControlNormal"
tools:text="Did you know that if you took all the veins out of your body and laid them out end to end, you would die?" />

View File

@@ -86,9 +86,9 @@
app:barrierDirection="bottom"
app:constraint_referenced_ids="nameContact1,nameContact2" />
<ProgressBar
<com.google.android.material.progressindicator.CircularProgressIndicator
android:id="@+id/progressBar"
style="?android:attr/progressBarStyleLarge"
style="@style/CircularProgress.Large"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="@dimen/margin_large"

View File

@@ -6,9 +6,9 @@
android:layout_height="match_parent"
tools:layout_height="200dp">
<ProgressBar
<com.google.android.material.progressindicator.CircularProgressIndicator
android:id="@+id/progressBar"
style="?android:attr/progressBarStyleLarge"
style="@style/CircularProgress.Large"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="16dp"

View File

@@ -6,9 +6,9 @@
android:layout_height="match_parent"
tools:layout_height="200dp">
<ProgressBar
<com.google.android.material.progressindicator.CircularProgressIndicator
android:id="@+id/progressBar"
style="?android:attr/progressBarStyleLarge"
style="@style/CircularProgress.Large"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="16dp"

View File

@@ -38,7 +38,7 @@
</LinearLayout>
<androidx.appcompat.widget.SwitchCompat
<com.google.android.material.materialswitch.MaterialSwitch
android:id="@+id/switchCompat"
android:layout_width="match_parent"
android:layout_height="wrap_content"

View File

@@ -36,7 +36,7 @@
<Button
android:id="@+id/button"
style="@style/BriarButton"
style="@style/BriarButtonOutline"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_margin="@dimen/margin_medium"
@@ -55,7 +55,7 @@
app:layout_constraintBottom_toBottomOf="@+id/button"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@+id/button"
app:srcCompat="@drawable/ic_help_outline_white"
app:srcCompat="@drawable/ic_info_white"
app:tint="@color/briar_button_text_positive" />
</merge>

View File

@@ -3,6 +3,7 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:background="?colorSecondary"
android:layout_height="wrap_content"
tools:layout_width="800dp"
tools:layout_height="75dp">

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<com.google.android.material.materialswitch.MaterialSwitch
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/switchWidget"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:focusable="false"
android:clickable="false"
android:background="@null" />

View File

@@ -4,8 +4,8 @@
xmlns:tools="http://schemas.android.com/tools"
tools:showIn="@layout/fragment_keyagreement_qr">
<ProgressBar
style="?android:attr/progressBarStyleLarge"
<com.google.android.material.progressindicator.CircularProgressIndicator
style="@style/CircularProgress.Large"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center" />

View File

@@ -33,10 +33,7 @@
<Button
android:id="@+id/compositeSendButton"
style="@style/BriarButton"
android:layout_marginStart="@dimen/margin_small"
android:layout_marginLeft="@dimen/margin_small"
android:layout_marginEnd="@dimen/margin_small"
android:layout_marginRight="@dimen/margin_small"
android:layout_margin="@dimen/margin_medium"
tools:text="@string/send" />
</merge>

View File

@@ -5,10 +5,12 @@
android:layout_height="wrap_content"
tools:context="org.briarproject.briar.android.navdrawer.NavDrawerActivity">
<androidx.appcompat.widget.Toolbar
<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/toolbar"
style="@style/BriarToolbar"
tools:subtitle="Subtitle"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
android:layout_height="wrap_content"
tools:title="MaterialToolbar title" />
</com.google.android.material.appbar.AppBarLayout>

View File

@@ -35,7 +35,7 @@
android:padding="4dp"
android:scaleType="center"
app:srcCompat="@drawable/social_send_now_white"
app:tint="@color/briar_accent" />
app:tint="?colorPrimary" />
<ImageView
android:id="@+id/bombBadge"
@@ -51,6 +51,7 @@
<ProgressBar
android:id="@+id/progressBar"
style="@style/CircularProgress"
android:layout_width="@dimen/text_input_height"
android:layout_height="@dimen/text_input_height"
android:visibility="invisible" />

View File

@@ -3,7 +3,6 @@
<color name="briar_primary">@color/briar_night_800</color>
<color name="briar_accent">@color/briar_lime_600</color>
<color name="preference_category">@color/briar_accent</color>
<color name="preference_category_background">@color/briar_night_950</color>
<color name="color_primary">@android:color/white</color>
@@ -18,7 +17,6 @@
<color name="card_background">@color/briar_night_800</color>
<color name="item_background_highlight">@color/briar_night_700</color>
<color name="briar_button_background_color">@color/briar_night_500</color>
<color name="briar_button_text_neutral">@color/briar_blue_400</color>
<color name="briar_button_text_disabled">#23cccccc</color>
@@ -32,4 +30,13 @@
<color name="il_lime">@color/briar_lime_400_new</color>
<color name="il_orange">@color/briar_orange_400</color>
<color name="il_red">@color/briar_red_500_new</color>
<color name="md_theme_tertiary">@color/briar_blue_400_new</color>
<color name="md_theme_onTertiary">@color/briar_blue_900</color>
<color name="md_theme_tertiaryContainer">@color/briar_blue_800_new</color>
<color name="md_theme_onTertiaryContainer">@color/briar_blue_300</color>
<color name="md_theme_onBackground">#E0E4D2</color>
<color name="md_theme_onSurface">#E0E4D2</color>
<color name="md_theme_surfaceDim">@color/briar_night_700_new</color>
<color name="md_theme_error">@color/briar_red_400</color>
</resources>

View File

@@ -1,19 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="briar_lime_950">#283E0F</color>
<color name="briar_lime_600">#67a60f</color>
<color name="briar_lime_600_new">#65A30D</color>
<color name="briar_lime_500">#82C91E</color>
<color name="briar_lime_400">#82c91e</color>
<color name="briar_lime_400_new">#A3E635</color>
<color name="briar_blue_900">#184080</color>
<color name="briar_blue_800">#134a81</color>
<color name="briar_blue_800_new">#1649A0</color>
<color name="briar_blue_600">#1b69b6</color>
<color name="briar_blue_600_new">#196FDE</color>
<color name="briar_blue_400">#418cd8</color>
<color name="briar_blue_400_new">#52ADF9</color>
<color name="briar_blue_300">#8BCAFD</color>
<color name="briar_blue_100">#DDEDFE</color>
<color name="briar_orange_200">#fed69f</color>
<color name="briar_orange_400">#FBBF24</color>
<color name="briar_orange_500">#fc9403</color>
<color name="briar_orange_500_new">#F59E0B</color>
<color name="briar_red_400">#f87171</color>
<color name="briar_red_500">#db3b21</color>
<color name="briar_red_500_new">#EF4444</color>
<color name="briar_red_600">#DC2626</color>
@@ -21,14 +30,18 @@
<color name="briar_night_950">#0e171f</color>
<color name="briar_night_800">#212d3b</color>
<color name="briar_night_700">#2e3d4f</color>
<color name="briar_night_700_new">#334155</color>
<color name="briar_night_600">#475569</color>
<color name="briar_night_500">#435b77</color>
<color name="briar_night_100">#F1F5F9</color>
<color name="briar_night_50">#ebf3fa</color>
<color name="briar_gray_900">#2e2e2e</color>
<color name="briar_gray_700">#374151</color>
<color name="briar_gray_500">#a7a7a7</color>
<color name="briar_gray_300">#cccccc</color>
<color name="briar_gray_200">#dfdfdf</color>
<color name="briar_gray_200_new">#E5E7EB</color>
<color name="briar_gray_100">#f2f2f2</color>
<color name="briar_brand_blue">@color/briar_night_700</color>
@@ -73,19 +86,34 @@
<color name="briar_text_secondary_inverse">#b4ffffff</color>
<color name="briar_text_tertiary_inverse">#80ffffff</color>
<color name="preference_category">@color/briar_night_500</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_400</color>
<color name="briar_button_text_neutral">@color/briar_night_500</color>
<color name="briar_button_text_negative">@color/briar_red_500</color>
<color name="briar_button_text_disabled">#28000000</color>
<color name="briar_button_outline">@android:color/secondary_text_dark</color>
<color name="thread_indicator">@color/briar_gray_500</color>
<color name="thread_item_background">@color/window_background</color>
<color name="thread_item_highlight">@android:color/white</color>
<color name="divider">@color/briar_gray_200</color>
<color name="md_theme_primary">@color/briar_lime_500</color>
<color name="md_theme_onPrimary">@color/briar_lime_950</color>
<color name="md_theme_primaryContainer">@color/briar_night_700</color>
<color name="md_theme_onPrimaryContainer">@android:color/white</color>
<color name="md_theme_inversePrimary">#98DA27</color>
<color name="md_theme_secondary">@color/briar_night_700</color>
<color name="md_theme_onSecondary">@android:color/white</color>
<color name="md_theme_tertiaryContainer">@color/briar_blue_100</color>
<color name="md_theme_onTertiaryContainer">@color/briar_blue_600_new</color>
<color name="md_theme_tertiary">@color/briar_blue_600_new</color>
<color name="md_theme_onTertiary">@android:color/white</color>
<color name="md_theme_onBackground">#191D12</color>
<color name="md_theme_onSurface">#191D12</color>
<color name="md_theme_surfaceDim">@color/briar_gray_200_new</color>
<color name="md_theme_error">@color/briar_red_600</color>
</resources>

View File

@@ -1,15 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<resources
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools">
<style name="BriarToolbar" parent="Widget.AppCompat.Toolbar">
<item name="android:background">?colorPrimary</item>
<item name="android:textColorPrimary">@color/briar_text_primary_inverse</item>
<item name="android:textSize">@dimen/text_size_medium</item>
<item name="colorPrimary">@color/briar_primary</item>
<item name="titleTextAppearance">@style/BriarToolbarTitleTextAppearance</item>
<item name="subtitleTextAppearance">@style/BriarToolbarSubTitleTextAppearance</item>
<style name="BriarToolbar" parent="Widget.Material3.Toolbar">
<item name="android:background">@color/briar_primary</item>
<item name="titleTextColor">@color/briar_text_primary_inverse</item>
<item name="subtitleTextColor">@color/briar_text_secondary_inverse</item>
<item name="android:theme">@style/BriarToolbarTheme</item>
<item name="popupTheme">@style/PopupMenu</item>
</style>
@@ -18,46 +13,36 @@
<item name="colorControlNormal">@color/briar_text_primary_inverse</item>
</style>
<style name="BriarToolbarTitleTextAppearance" parent="TextAppearance.Widget.AppCompat.Toolbar.Title">
<item name="android:textColor">@color/briar_text_primary_inverse</item>
</style>
<style name="BriarToolbarSubTitleTextAppearance" parent="TextAppearance.Widget.AppCompat.Toolbar.Subtitle">
<item name="android:textColor">@color/briar_text_secondary_inverse</item>
</style>
<style name="PopupMenu" parent="Theme.AppCompat.DayNight.DarkActionBar">
<style name="PopupMenu" parent="Theme.Material3.DayNight">
<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>
<style name="BriarButton" parent="Widget.AppCompat.Button.Colored">
<item name="android:theme">@style/ButtonTheme</item>
<style name="BriarButton" parent="Widget.Material3.Button">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">wrap_content</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>
<item name="android:minHeight">@dimen/button_size</item>
<item name="cornerRadius">6dp</item>
</style>
<style name="BriarButtonFlat" parent="Widget.AppCompat.Button.Borderless">
<style name="BriarButtonFlat" parent="Widget.Material3.Button.TextButton">
<item name="android:textSize">@dimen/text_size_medium</item>
</style>
<style name="BriarButtonFlat.Negative" parent="BriarButtonFlat">
<item name="android:textColor">@color/briar_button_text_negative</item>
<item name="iconTint">@color/briar_button_text_negative</item>
</style>
<style name="BriarButtonFlat.Positive" parent="BriarButtonFlat">
<item name="android:textColor">@color/briar_button_text_positive</item>
<item name="iconTint">@color/briar_button_text_positive</item>
</style>
<style name="BriarButtonFlat.Neutral" parent="BriarButtonFlat">
<item name="android:textColor">@color/briar_button_text_neutral</item>
<item name="iconTint">@color/briar_button_text_neutral</item>
</style>
<style name="BriarButtonFlat.Positive.Tiny" parent="BriarButtonFlat.Positive">
@@ -66,12 +51,13 @@
<item name="android:minWidth">@dimen/button_size</item>
</style>
<style name="BriarButtonOutline" parent="Widget.AppCompat.Button.Borderless">
<style name="BriarButtonOutline" parent="Widget.Material3.Button.OutlinedButton">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:textSize">@dimen/text_size_medium</item>
<item name="android:background">@drawable/button_outline</item>
<item name="android:padding">@dimen/margin_large</item>
<item name="android:minHeight">@dimen/button_size</item>
<item name="cornerRadius">6dp</item>
</style>
<style name="BriarButtonOutline.Negative" parent="BriarButtonOutline">
@@ -106,6 +92,17 @@
<item name="android:background">@color/thread_indicator</item>
</style>
<style name="CircularProgress" parent="Widget.Material3.CircularProgressIndicator">
<item name="android:indeterminate">true</item>
<item name="indicatorColor">@color/briar_accent</item>
</style>
<style name="CircularProgress.Large" parent="Widget.Material3.CircularProgressIndicator">
<item name="android:indeterminate">true</item>
<item name="indicatorColor">@color/briar_accent</item>
<item name="indicatorSize">76dp</item>
</style>
<style name="BriarAvatar">
<item name="civ_border_width">@dimen/avatar_border_width</item>
<item name="civ_border_color">?android:attr/textColorSecondary</item>
@@ -135,7 +132,7 @@
<item name="android:layout_height">match_parent</item>
<item name="android:layout_width">@dimen/forum_nested_line_width</item>
<item name="android:layout_marginLeft">5dp</item>
<item name="android:layout_marginStart" tools:targetApi="jelly_bean_mr1">5dp</item>
<item name="android:layout_marginStart">5dp</item>
<item name="android:background">@color/thread_indicator</item>
<item name="android:visibility">gone</item>
</style>
@@ -149,20 +146,28 @@
<style name="StepBubble">
<item name="android:layout_width">28dp</item>
<item name="android:layout_height">28dp</item>
<item name="android:background">@drawable/bubble_accent</item>
<item name="android:background">@drawable/bubble_current</item>
<item name="android:gravity">center</item>
<item name="android:textColor">@android:color/white</item>
<item name="android:textColor">?colorOnTertiary</item>
<item name="android:textSize">18sp</item>
</style>
<style name="StepBubble.Upcoming">
<item name="android:alpha">0.5</item>
<item name="android:background">@drawable/bubble_future</item>
<item name="android:textColor">?colorOnSurface</item>
</style>
<style name="StepBubble.Completed">
<item name="android:background">@drawable/bubble_completed</item>
<item name="android:scaleType">center</item>
<item name="tint">?colorOnTertiaryContainer</item>
<item name="srcCompat">@drawable/ic_check_white</item>
</style>
<style name="Preference.SwitchPreferenceCompat"
parent="@style/Preference.SwitchPreferenceCompat.Material"
tools:ignore="ResourceCycle">
<item name="widgetLayout">@layout/preference_switch</item>
</style>
</resources>

View File

@@ -1,16 +1,34 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<resources xmlns:tools="http://schemas.android.com/tools">
<style name="BriarTheme" parent="Theme.Material3.DayNight">
<item name="colorPrimary">@color/md_theme_primary</item>
<item name="colorOnPrimary">@color/md_theme_onPrimary</item>
<item name="colorPrimaryContainer">@color/md_theme_primary</item>
<item name="colorOnPrimaryContainer">@color/md_theme_onPrimary</item>
<item name="colorSecondary">@color/md_theme_secondary</item>
<item name="colorOnSecondary">@color/md_theme_onSecondary</item>
<item name="colorTertiary">@color/md_theme_tertiary</item>
<item name="colorOnTertiary">@color/md_theme_onTertiary</item>
<item name="colorTertiaryContainer">@color/md_theme_tertiaryContainer</item>
<item name="colorOnTertiaryContainer">@color/md_theme_onTertiaryContainer</item>
<item name="android:colorBackground">@color/window_background</item>
<item name="colorOnBackground">@color/md_theme_onBackground</item>
<item name="colorSurface">@color/card_background</item>
<item name="colorOnSurface">@color/md_theme_onSurface</item>
<item name="colorSurfaceDim">@color/md_theme_surfaceDim</item>
<item name="colorError">@color/md_theme_error</item>
<item name="android:statusBarColor">#000000</item>
<style name="BriarTheme" parent="Theme.AppCompat.DayNight.DarkActionBar">
<item name="colorPrimary">@color/briar_primary</item>
<item name="colorPrimaryDark">@color/briar_primary_dark</item>
<item name="colorAccent">@color/briar_accent</item>
<item name="android:textColorLink">@color/briar_text_link</item>
<item name="android:windowBackground">@color/window_background</item>
<item name="android:textColorLink">@color/briar_text_link</item>
<item name="android:windowAnimationStyle">@style/ActivityAnimation</item>
<item name="windowActionModeOverlay">true</item>
<item name="toolbarStyle">@style/BriarToolbar</item>
<item name="alertDialogTheme">@style/BriarDialogTheme.Neutral</item>
<item name="preferenceTheme">@style/PreferenceThemeOverlay.v14.Material</item>
<item name="preferenceTheme">@style/PreferenceThemeOverlay.v14</item>
<item name="android:forceDarkAllowed" tools:targetApi="q">false</item>
</style>
<style name="BriarTheme.NoActionBar" parent="BriarTheme">
@@ -30,10 +48,8 @@
<item name="android:activityCloseExitAnimation">@anim/screen_new_out</item>
</style>
<style name="BriarDialogTheme" parent="Theme.AppCompat.DayNight.Dialog.MinWidth">
<style name="BriarDialogTheme" parent="Theme.Material3.DayNight.Dialog">
<item name="colorPrimary">@color/briar_primary</item>
<item name="colorPrimaryDark">@color/briar_primary_dark</item>
<item name="colorAccent">@color/briar_accent</item>
<item name="buttonBarPositiveButtonStyle">@style/BriarButtonFlat.Positive</item>
<item name="buttonBarNeutralButtonStyle">@style/BriarButtonFlat.Neutral</item>
<item name="buttonBarNegativeButtonStyle">@style/BriarButtonFlat.Negative</item>
@@ -71,13 +87,11 @@
</style>
<style name="OnboardingDialogTheme" parent="BriarDialogTheme">
<item name="android:background">@color/briar_primary</item>
<item name="android:textColorPrimary">@color/briar_text_primary_inverse</item>
<item name="android:textColorSecondary">@color/briar_text_secondary_inverse</item>
<item name="buttonBarNeutralButtonStyle">@style/Widget.AppCompat.Button.Borderless</item>
<item name="android:background">@color/md_theme_primaryContainer</item>
<item name="android:textColorPrimary">@color/md_theme_onPrimaryContainer</item>
</style>
<style name="TranslucentTheme" parent="Theme.AppCompat.NoActionBar">
<style name="TranslucentTheme" parent="Theme.Material3.DayNight.NoActionBar">
<item name="android:colorBackgroundCacheHint">@null</item>
<item name="android:windowAnimationStyle">@android:style/Animation</item>
<item name="android:windowBackground">@android:color/transparent</item>

View File

@@ -19,6 +19,7 @@ import static androidx.test.espresso.Espresso.onView;
import static androidx.test.espresso.action.ViewActions.clearText;
import static androidx.test.espresso.action.ViewActions.click;
import static androidx.test.espresso.action.ViewActions.replaceText;
import static androidx.test.espresso.action.ViewActions.scrollTo;
import static androidx.test.espresso.action.ViewActions.typeText;
import static androidx.test.espresso.assertion.ViewAssertions.doesNotExist;
import static androidx.test.espresso.assertion.ViewAssertions.matches;
@@ -75,6 +76,7 @@ public class SetupActivityTest {
onView(withId(R.id.next)).check(matches(isEnabled()));
// clicking the button shows progress bar, no doze because SDK_INT==21
onView(withId(R.id.next)).perform(scrollTo());
onView(withId(R.id.next)).perform(click());
onView(withId(R.id.progress)).check(matches(isDisplayed()));
}