Implement new Material3 spec.

This commit is contained in:
Alex Hart
2022-05-26 17:32:52 -03:00
committed by Greyson Parrelli
parent 556e480b06
commit 1b471e163d
374 changed files with 3219 additions and 3049 deletions

View File

@@ -14,7 +14,6 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.StringRes;
import com.dd.CircularProgressButton;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import org.signal.core.util.logging.Log;
@@ -26,6 +25,7 @@ import org.thoughtcrime.securesms.registration.viewmodel.BaseRegistrationViewMod
import org.thoughtcrime.securesms.util.LifecycleDisposable;
import org.thoughtcrime.securesms.util.ServiceUtil;
import org.thoughtcrime.securesms.util.ViewUtil;
import org.thoughtcrime.securesms.util.views.CircularProgressMaterialButton;
import java.util.concurrent.TimeUnit;
@@ -33,8 +33,6 @@ import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
import io.reactivex.rxjava3.disposables.Disposable;
import static org.thoughtcrime.securesms.registration.fragments.RegistrationViewDelegate.setDebugLogSubmitMultiTapView;
import static org.thoughtcrime.securesms.util.CircularProgressButtonUtil.cancelSpinning;
import static org.thoughtcrime.securesms.util.CircularProgressButtonUtil.setSpinning;
/**
* Base fragment used by registration and change number flow to deal with a registration locked account.
@@ -48,12 +46,12 @@ public abstract class BaseRegistrationLockFragment extends LoggingFragment {
*/
private static final int MINIMUM_PIN_LENGTH = 4;
private EditText pinEntry;
private View forgotPin;
protected CircularProgressButton pinButton;
private TextView errorLabel;
private TextView keyboardToggle;
private long timeRemaining;
private EditText pinEntry;
private View forgotPin;
protected CircularProgressMaterialButton pinButton;
private TextView errorLabel;
private TextView keyboardToggle;
private long timeRemaining;
private BaseRegistrationViewModel viewModel;
@@ -171,7 +169,7 @@ public abstract class BaseRegistrationLockFragment extends LoggingFragment {
return;
}
setSpinning(pinButton);
pinButton.setSpinning();
Disposable verify = viewModel.verifyCodeAndRegisterAccountWithRegistrationLock(pin)
.observeOn(AndroidSchedulers.mainThread())
@@ -194,7 +192,7 @@ public abstract class BaseRegistrationLockFragment extends LoggingFragment {
}
public void onIncorrectKbsRegistrationLockPin(@NonNull TokenData tokenData) {
cancelSpinning(pinButton);
pinButton.cancelSpinning();
pinEntry.getText().clear();
enableAndFocusPinEntry();
@@ -227,7 +225,7 @@ public abstract class BaseRegistrationLockFragment extends LoggingFragment {
}
public void onRateLimited() {
cancelSpinning(pinButton);
pinButton.cancelSpinning();
enableAndFocusPinEntry();
new MaterialAlertDialogBuilder(requireContext())
@@ -242,7 +240,7 @@ public abstract class BaseRegistrationLockFragment extends LoggingFragment {
}
public void onError() {
cancelSpinning(pinButton);
pinButton.cancelSpinning();
enableAndFocusPinEntry();
Toast.makeText(requireContext(), R.string.RegistrationActivity_error_connecting_to_service, Toast.LENGTH_LONG).show();

View File

@@ -22,7 +22,6 @@ import androidx.navigation.NavController;
import androidx.navigation.Navigation;
import androidx.navigation.fragment.NavHostFragment;
import com.dd.CircularProgressButton;
import com.google.android.gms.auth.api.phone.SmsRetriever;
import com.google.android.gms.auth.api.phone.SmsRetrieverClient;
import com.google.android.gms.common.ConnectionResult;
@@ -50,26 +49,25 @@ import org.thoughtcrime.securesms.util.PlayServicesUtil;
import org.thoughtcrime.securesms.util.SupportEmailUtil;
import org.thoughtcrime.securesms.util.ViewUtil;
import org.thoughtcrime.securesms.util.navigation.SafeNavigation;
import org.thoughtcrime.securesms.util.views.CircularProgressMaterialButton;
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
import io.reactivex.rxjava3.disposables.Disposable;
import static org.thoughtcrime.securesms.registration.fragments.RegistrationViewDelegate.setDebugLogSubmitMultiTapView;
import static org.thoughtcrime.securesms.registration.fragments.RegistrationViewDelegate.showConfirmNumberDialogIfTranslated;
import static org.thoughtcrime.securesms.util.CircularProgressButtonUtil.cancelSpinning;
import static org.thoughtcrime.securesms.util.CircularProgressButtonUtil.setSpinning;
public final class EnterPhoneNumberFragment extends LoggingFragment implements RegistrationNumberInputController.Callbacks {
private static final String TAG = Log.tag(EnterPhoneNumberFragment.class);
private LabeledEditText countryCode;
private LabeledEditText number;
private CircularProgressButton register;
private Spinner countrySpinner;
private View cancel;
private ScrollView scrollView;
private RegistrationViewModel viewModel;
private LabeledEditText countryCode;
private LabeledEditText number;
private CircularProgressMaterialButton register;
private Spinner countrySpinner;
private View cancel;
private ScrollView scrollView;
private RegistrationViewModel viewModel;
private final LifecycleDisposable disposables = new LifecycleDisposable();
@@ -179,7 +177,7 @@ public final class EnterPhoneNumberFragment extends LoggingFragment implements R
}
private void handleRequestVerification(@NonNull Context context, boolean fcmSupported) {
setSpinning(register);
register.setSpinning();
disableAllEntries();
if (fcmSupported) {
@@ -247,7 +245,7 @@ public final class EnterPhoneNumberFragment extends LoggingFragment implements R
Toast.makeText(register.getContext(), R.string.RegistrationActivity_unable_to_connect_to_service, Toast.LENGTH_LONG).show();
}
cancelSpinning(register);
register.cancelSpinning();
enableAllEntries();
});

View File

@@ -4,6 +4,7 @@ import androidx.annotation.NonNull;
import androidx.lifecycle.ViewModelProvider;
import androidx.navigation.Navigation;
import org.signal.core.util.concurrent.SimpleTask;
import org.signal.core.util.logging.Log;
import org.thoughtcrime.securesms.R;
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
@@ -16,14 +17,11 @@ import org.thoughtcrime.securesms.util.CommunicationActions;
import org.thoughtcrime.securesms.util.FeatureFlags;
import org.thoughtcrime.securesms.util.Stopwatch;
import org.thoughtcrime.securesms.util.SupportEmailUtil;
import org.signal.core.util.concurrent.SimpleTask;
import org.thoughtcrime.securesms.util.navigation.SafeNavigation;
import java.io.IOException;
import java.util.concurrent.TimeUnit;
import static org.thoughtcrime.securesms.util.CircularProgressButtonUtil.cancelSpinning;
public final class RegistrationLockFragment extends BaseRegistrationLockFragment {
private static final String TAG = Log.tag(RegistrationLockFragment.class);
@@ -68,7 +66,7 @@ public final class RegistrationLockFragment extends BaseRegistrationLockFragment
return null;
}, none -> {
cancelSpinning(pinButton);
pinButton.cancelSpinning();
SafeNavigation.safeNavigate(Navigation.findNavController(requireView()), RegistrationLockFragmentDirections.actionSuccessfulRegistration());
});
}

View File

@@ -31,8 +31,6 @@ import androidx.appcompat.app.AlertDialog;
import androidx.lifecycle.ViewModelProvider;
import androidx.navigation.Navigation;
import com.dd.CircularProgressButton;
import net.zetetic.database.sqlcipher.SQLiteDatabase;
import org.greenrobot.eventbus.EventBus;
@@ -58,25 +56,24 @@ import org.thoughtcrime.securesms.util.DateUtils;
import org.thoughtcrime.securesms.util.Util;
import org.signal.core.util.concurrent.SimpleTask;
import org.thoughtcrime.securesms.util.navigation.SafeNavigation;
import org.thoughtcrime.securesms.util.views.CircularProgressMaterialButton;
import java.io.IOException;
import java.util.Locale;
import static org.thoughtcrime.securesms.registration.fragments.RegistrationViewDelegate.setDebugLogSubmitMultiTapView;
import static org.thoughtcrime.securesms.util.CircularProgressButtonUtil.cancelSpinning;
import static org.thoughtcrime.securesms.util.CircularProgressButtonUtil.setSpinning;
public final class RestoreBackupFragment extends LoggingFragment {
private static final String TAG = Log.tag(RestoreBackupFragment.class);
private static final short OPEN_DOCUMENT_TREE_RESULT_CODE = 13782;
private TextView restoreBackupSize;
private TextView restoreBackupTime;
private TextView restoreBackupProgress;
private CircularProgressButton restoreButton;
private View skipRestoreButton;
private RegistrationViewModel viewModel;
private TextView restoreBackupSize;
private TextView restoreBackupTime;
private TextView restoreBackupProgress;
private CircularProgressMaterialButton restoreButton;
private View skipRestoreButton;
private RegistrationViewModel viewModel;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
@@ -261,7 +258,7 @@ public final class RestoreBackupFragment extends LoggingFragment {
InputMethodManager inputMethodManager = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
inputMethodManager.hideSoftInputFromWindow(prompt.getWindowToken(), 0);
setSpinning(restoreButton);
restoreButton.setSpinning();
skipRestoreButton.setVisibility(View.INVISIBLE);
String passphrase = prompt.getText().toString();
@@ -315,7 +312,7 @@ public final class RestoreBackupFragment extends LoggingFragment {
@Override
protected void onPostExecute(@NonNull BackupImportResult result) {
viewModel.markBackupCompleted();
cancelSpinning(restoreButton);
restoreButton.cancelSpinning();
skipRestoreButton.setVisibility(View.VISIBLE);
restoreBackupProgress.setText("");
@@ -365,7 +362,7 @@ public final class RestoreBackupFragment extends LoggingFragment {
restoreBackupProgress.setText(getString(R.string.RegistrationActivity_d_messages_so_far, count));
}
setSpinning(restoreButton);
restoreButton.setSpinning();
skipRestoreButton.setVisibility(View.INVISIBLE);
if (event.getType() == FullBackupBase.BackupEvent.Type.FINISHED) {

View File

@@ -22,7 +22,6 @@ import androidx.navigation.ActivityNavigator;
import androidx.navigation.Navigation;
import androidx.navigation.fragment.NavHostFragment;
import com.dd.CircularProgressButton;
import com.google.i18n.phonenumbers.PhoneNumberUtil;
import com.google.i18n.phonenumbers.Phonenumber;
@@ -40,12 +39,11 @@ import org.thoughtcrime.securesms.util.CommunicationActions;
import org.thoughtcrime.securesms.util.TextSecurePreferences;
import org.thoughtcrime.securesms.util.Util;
import org.thoughtcrime.securesms.util.navigation.SafeNavigation;
import org.thoughtcrime.securesms.util.views.CircularProgressMaterialButton;
import java.util.Optional;
import static org.thoughtcrime.securesms.registration.fragments.RegistrationViewDelegate.setDebugLogSubmitMultiTapView;
import static org.thoughtcrime.securesms.util.CircularProgressButtonUtil.cancelSpinning;
import static org.thoughtcrime.securesms.util.CircularProgressButtonUtil.setSpinning;
public final class WelcomeFragment extends LoggingFragment {
@@ -74,8 +72,8 @@ public final class WelcomeFragment extends LoggingFragment {
private static final int[] HEADERS = { R.drawable.ic_contacts_white_48dp, R.drawable.ic_folder_white_48dp };
private static final int[] HEADERS_API_29 = { R.drawable.ic_contacts_white_48dp };
private CircularProgressButton continueButton;
private RegistrationViewModel viewModel;
private CircularProgressMaterialButton continueButton;
private RegistrationViewModel viewModel;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
@@ -164,7 +162,7 @@ public final class WelcomeFragment extends LoggingFragment {
}
private void gatherInformationAndContinue(@NonNull View view) {
setSpinning(continueButton);
continueButton.setSpinning();
RestoreBackupFragment.searchForBackup(backup -> {
Context context = getContext();
@@ -177,7 +175,7 @@ public final class WelcomeFragment extends LoggingFragment {
initializeNumber();
cancelSpinning(continueButton);
continueButton.cancelSpinning();
if (backup == null) {
Log.i(TAG, "Skipping backup. No backup found, or no permission to look.");