diff --git a/app/src/main/java/org/thoughtcrime/securesms/DeviceAddFragment.java b/app/src/main/java/org/thoughtcrime/securesms/DeviceAddFragment.java deleted file mode 100644 index afd05aecf9..0000000000 --- a/app/src/main/java/org/thoughtcrime/securesms/DeviceAddFragment.java +++ /dev/null @@ -1,114 +0,0 @@ -package org.thoughtcrime.securesms; - -import android.animation.Animator; -import android.annotation.TargetApi; -import android.content.res.Configuration; -import android.os.Build; -import android.os.Bundle; -import androidx.annotation.NonNull; -import androidx.fragment.app.Fragment; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewAnimationUtils; -import android.view.ViewGroup; -import android.view.animation.DecelerateInterpolator; -import android.widget.ImageView; -import android.widget.LinearLayout; - -import org.thoughtcrime.securesms.components.camera.CameraView; -import org.thoughtcrime.securesms.qr.ScanListener; -import org.thoughtcrime.securesms.qr.ScanningThread; -import org.thoughtcrime.securesms.util.ViewUtil; - -import network.loki.messenger.R; - -public class DeviceAddFragment extends Fragment { - - private ViewGroup container; - private LinearLayout overlay; - private ImageView devicesImage; - private CameraView scannerView; - private ScanningThread scanningThread; - private ScanListener scanListener; - - @Override - public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup viewGroup, Bundle bundle) { - this.container = ViewUtil.inflate(inflater, viewGroup, R.layout.device_add_fragment); - this.overlay = ViewUtil.findById(this.container, R.id.overlay); - this.scannerView = ViewUtil.findById(this.container, R.id.scanner); - this.devicesImage = ViewUtil.findById(this.container, R.id.devices); - - if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) { - this.overlay.setOrientation(LinearLayout.HORIZONTAL); - } else { - this.overlay.setOrientation(LinearLayout.VERTICAL); - } - - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { - this.container.addOnLayoutChangeListener(new View.OnLayoutChangeListener() { - @TargetApi(Build.VERSION_CODES.LOLLIPOP) - @Override - public void onLayoutChange(View v, int left, int top, int right, int bottom, - int oldLeft, int oldTop, int oldRight, int oldBottom) - { - v.removeOnLayoutChangeListener(this); - - Animator reveal = ViewAnimationUtils.createCircularReveal(v, right, bottom, 0, (int) Math.hypot(right, bottom)); - reveal.setInterpolator(new DecelerateInterpolator(2f)); - reveal.setDuration(800); - reveal.start(); - } - }); - } - - return this.container; - } - - @Override - public void onResume() { - super.onResume(); - this.scanningThread = new ScanningThread(); - this.scanningThread.setScanListener(scanListener); - this.scannerView.onResume(); - this.scannerView.setPreviewCallback(scanningThread); - this.scanningThread.start(); - } - - @Override - public void onPause() { - super.onPause(); - this.scannerView.onPause(); - this.scanningThread.stopScanning(); - } - - @Override - public void onConfigurationChanged(Configuration newConfiguration) { - super.onConfigurationChanged(newConfiguration); - - this.scannerView.onPause(); - - if (newConfiguration.orientation == Configuration.ORIENTATION_LANDSCAPE) { - overlay.setOrientation(LinearLayout.HORIZONTAL); - } else { - overlay.setOrientation(LinearLayout.VERTICAL); - } - - this.scannerView.onResume(); - this.scannerView.setPreviewCallback(scanningThread); - } - - - public ImageView getDevicesImage() { - return devicesImage; - } - - public void setScanListener(ScanListener scanListener) { - this.scanListener = scanListener; - - if (this.scanningThread != null) { - this.scanningThread.setScanListener(scanListener); - } - } - - -} diff --git a/app/src/main/java/org/thoughtcrime/securesms/MediaPreviewActivity.java b/app/src/main/java/org/thoughtcrime/securesms/MediaPreviewActivity.java index 407dfd920a..d31a41c8e2 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/MediaPreviewActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/MediaPreviewActivity.java @@ -55,7 +55,6 @@ import android.widget.Toast; import org.thoughtcrime.securesms.attachments.DatabaseAttachment; import org.thoughtcrime.securesms.components.MediaView; -import org.thoughtcrime.securesms.components.viewpager.ExtendedOnPageChangedListener; import org.thoughtcrime.securesms.database.Address; import org.thoughtcrime.securesms.database.MediaDatabase.MediaRecord; import org.thoughtcrime.securesms.database.loaders.PagingMediaLoader; @@ -472,11 +471,14 @@ public class MediaPreviewActivity extends PassphraseRequiredActionBarActivity im } - private class ViewPagerListener extends ExtendedOnPageChangedListener { + private class ViewPagerListener implements ViewPager.OnPageChangeListener { + + private int currentPage = -1; @Override public void onPageSelected(int position) { - super.onPageSelected(position); + if (currentPage != -1 && currentPage != position) onPageUnselected(currentPage); + currentPage = position; MediaItemAdapter adapter = (MediaItemAdapter)mediaPager.getAdapter(); @@ -489,7 +491,6 @@ public class MediaPreviewActivity extends PassphraseRequiredActionBarActivity im } - @Override public void onPageUnselected(int position) { MediaItemAdapter adapter = (MediaItemAdapter)mediaPager.getAdapter(); @@ -500,6 +501,16 @@ public class MediaPreviewActivity extends PassphraseRequiredActionBarActivity im adapter.pause(position); } } + + @Override + public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { + + } + + @Override + public void onPageScrollStateChanged(int state) { + + } } private static class SingleItemPagerAdapter extends PagerAdapter implements MediaItemAdapter { diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/AccessibleToggleButton.java b/app/src/main/java/org/thoughtcrime/securesms/components/AccessibleToggleButton.java deleted file mode 100644 index 70c0f73259..0000000000 --- a/app/src/main/java/org/thoughtcrime/securesms/components/AccessibleToggleButton.java +++ /dev/null @@ -1,53 +0,0 @@ -package org.thoughtcrime.securesms.components; - - -import android.content.Context; -import android.os.Build; -import androidx.annotation.RequiresApi; -import android.util.AttributeSet; -import android.widget.ToggleButton; - -public class AccessibleToggleButton extends ToggleButton { - - private OnCheckedChangeListener listener; - - @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) - public AccessibleToggleButton(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { - super(context, attrs, defStyleAttr, defStyleRes); - } - - public AccessibleToggleButton(Context context, AttributeSet attrs, int defStyleAttr) { - super(context, attrs, defStyleAttr); - } - - public AccessibleToggleButton(Context context, AttributeSet attrs) { - super(context, attrs); - } - - public AccessibleToggleButton(Context context) { - super(context); - } - - @Override - public void setOnCheckedChangeListener(OnCheckedChangeListener listener) { - super.setOnCheckedChangeListener(listener); - this.listener = listener; - } - - public void setChecked(boolean checked, boolean notifyListener) { - if (!notifyListener) { - super.setOnCheckedChangeListener(null); - } - - super.setChecked(checked); - - if (!notifyListener) { - super.setOnCheckedChangeListener(listener); - } - } - - public OnCheckedChangeListener getOnCheckedChangeListener() { - return this.listener; - } - -} diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/ControllableViewPager.java b/app/src/main/java/org/thoughtcrime/securesms/components/ControllableViewPager.java index 9b917fa135..5176fe64c3 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/ControllableViewPager.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/ControllableViewPager.java @@ -7,12 +7,10 @@ import androidx.viewpager.widget.ViewPager; import android.util.AttributeSet; import android.view.MotionEvent; -import org.thoughtcrime.securesms.components.viewpager.HackyViewPager; - /** * An implementation of {@link ViewPager} that disables swiping when the view is disabled. */ -public class ControllableViewPager extends HackyViewPager { +public class ControllableViewPager extends ViewPager { public ControllableViewPager(@NonNull Context context) { super(context); diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/recyclerview/DeleteItemAnimator.java b/app/src/main/java/org/thoughtcrime/securesms/components/recyclerview/DeleteItemAnimator.java deleted file mode 100644 index 4fc116565f..0000000000 --- a/app/src/main/java/org/thoughtcrime/securesms/components/recyclerview/DeleteItemAnimator.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.thoughtcrime.securesms.components.recyclerview; - - -import androidx.recyclerview.widget.DefaultItemAnimator; -import androidx.recyclerview.widget.RecyclerView; - -public class DeleteItemAnimator extends DefaultItemAnimator { - - public DeleteItemAnimator() { - setSupportsChangeAnimations(false); - } - - @Override - public boolean animateAdd(RecyclerView.ViewHolder viewHolder) { - dispatchAddFinished(viewHolder); - return false; - } - - @Override - public boolean animateMove(RecyclerView.ViewHolder viewHolder, int fromX, int fromY, int toX, int toY) { - dispatchMoveFinished(viewHolder); - return false; - } - - -} diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/registration/CallMeCountDownView.java b/app/src/main/java/org/thoughtcrime/securesms/components/registration/CallMeCountDownView.java deleted file mode 100644 index ab574e9670..0000000000 --- a/app/src/main/java/org/thoughtcrime/securesms/components/registration/CallMeCountDownView.java +++ /dev/null @@ -1,52 +0,0 @@ -package org.thoughtcrime.securesms.components.registration; - - -import android.content.Context; -import android.util.AttributeSet; - -import network.loki.messenger.R; - -public class CallMeCountDownView extends androidx.appcompat.widget.AppCompatButton { - - private int countDown; - - public CallMeCountDownView(Context context) { - super(context); - } - - public CallMeCountDownView(Context context, AttributeSet attrs) { - super(context, attrs); - } - - public CallMeCountDownView(Context context, AttributeSet attrs, int defStyleAttr) { - super(context, attrs, defStyleAttr); - } - - public void startCountDown(int countDown) { - this.countDown = countDown; - updateCountDown(); - } - - public void setCallEnabled() { - setText(R.string.RegistrationActivity_call); - setEnabled(true); - setAlpha(1.0f); - } - - private void updateCountDown() { - if (countDown > 0) { - setEnabled(false); - setAlpha(0.5f); - - countDown--; - - int minutesRemaining = countDown / 60; - int secondsRemaining = countDown - (minutesRemaining * 60); - - setText(getResources().getString(R.string.RegistrationActivity_call_me_instead_available_in, minutesRemaining, secondsRemaining)); - postDelayed(this::updateCountDown, 1000); - } else if (countDown == 0) { - setCallEnabled(); - } - } -} diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/registration/PulsingFloatingActionButton.java b/app/src/main/java/org/thoughtcrime/securesms/components/registration/PulsingFloatingActionButton.java deleted file mode 100644 index df117acd88..0000000000 --- a/app/src/main/java/org/thoughtcrime/securesms/components/registration/PulsingFloatingActionButton.java +++ /dev/null @@ -1,55 +0,0 @@ -package org.thoughtcrime.securesms.components.registration; - - -import android.animation.Animator; -import android.content.Context; -import com.google.android.material.floatingactionbutton.FloatingActionButton; -import android.util.AttributeSet; - -import org.thoughtcrime.securesms.animation.AnimationCompleteListener; - -public class PulsingFloatingActionButton extends FloatingActionButton { - - private boolean pulsing; - - public PulsingFloatingActionButton(Context context) { - super(context); - } - - public PulsingFloatingActionButton(Context context, AttributeSet attrs) { - super(context, attrs); - } - - public PulsingFloatingActionButton(Context context, AttributeSet attrs, int defStyleAttr) { - super(context, attrs, defStyleAttr); - } - - public void startPulse(long periodMillis) { - if (!pulsing) { - pulsing = true; - pulse(periodMillis); - } - } - - public void stopPulse() { - pulsing = false; - } - - private void pulse(long periodMillis) { - if (!pulsing) return; - - this.animate().scaleX(1.2f).scaleY(1.2f).setDuration(150).setListener(new AnimationCompleteListener() { - @Override - public void onAnimationEnd(Animator animation) { - clearAnimation(); - animate().scaleX(1.0f).scaleY(1.0f).setDuration(150).setListener(new AnimationCompleteListener() { - @Override - public void onAnimationEnd(Animator animation) { - PulsingFloatingActionButton.this.postDelayed(() -> pulse(periodMillis), periodMillis); - } - }).start(); - } - }).start(); - } - -} diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/registration/VerificationCodeView.java b/app/src/main/java/org/thoughtcrime/securesms/components/registration/VerificationCodeView.java deleted file mode 100644 index 793c152ba4..0000000000 --- a/app/src/main/java/org/thoughtcrime/securesms/components/registration/VerificationCodeView.java +++ /dev/null @@ -1,157 +0,0 @@ -package org.thoughtcrime.securesms.components.registration; - - -import android.content.Context; -import android.content.res.TypedArray; -import android.graphics.Color; -import android.os.Build; -import androidx.annotation.MainThread; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.annotation.RequiresApi; -import android.util.AttributeSet; -import android.util.TypedValue; -import android.view.View; -import android.view.animation.AlphaAnimation; -import android.view.animation.Animation; -import android.view.animation.AnimationSet; -import android.view.animation.OvershootInterpolator; -import android.view.animation.TranslateAnimation; -import android.widget.FrameLayout; -import android.widget.TextView; - -import com.annimon.stream.Collectors; -import com.annimon.stream.Stream; - -import network.loki.messenger.R; - -import java.util.ArrayList; -import java.util.List; - -public class VerificationCodeView extends FrameLayout { - - private final List codes = new ArrayList<>(6); - private final List containers = new ArrayList<>(6); - - private OnCodeEnteredListener listener; - private int index = 0; - - public VerificationCodeView(Context context) { - super(context); - initialize(context, null); - } - - public VerificationCodeView(Context context, @Nullable AttributeSet attrs) { - super(context, attrs); - initialize(context, attrs); - } - - public VerificationCodeView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { - super(context, attrs, defStyleAttr); - initialize(context, attrs); - } - - @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) - public VerificationCodeView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { - super(context, attrs, defStyleAttr, defStyleRes); - initialize(context, attrs); - } - - private void initialize(@NonNull Context context, @Nullable AttributeSet attrs) { - inflate(context, R.layout.verification_code_view, this); - - TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.VerificationCodeView); - - try { - TextView separator = findViewById(R.id.separator); - - this.codes.add(findViewById(R.id.code_zero)); - this.codes.add(findViewById(R.id.code_one)); - this.codes.add(findViewById(R.id.code_two)); - this.codes.add(findViewById(R.id.code_three)); - this.codes.add(findViewById(R.id.code_four)); - this.codes.add(findViewById(R.id.code_five)); - - this.containers.add(findViewById(R.id.container_zero)); - this.containers.add(findViewById(R.id.container_one)); - this.containers.add(findViewById(R.id.container_two)); - this.containers.add(findViewById(R.id.container_three)); - this.containers.add(findViewById(R.id.container_four)); - this.containers.add(findViewById(R.id.container_five)); - - Stream.of(codes).forEach(textView -> textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, typedArray.getDimension(R.styleable.VerificationCodeView_vcv_textSize, 30))); - Stream.of(codes).forEach(textView -> textView.setTextColor(typedArray.getColor(R.styleable.VerificationCodeView_vcv_textColor, Color.GRAY))); - - separator.setTextSize(TypedValue.COMPLEX_UNIT_SP, typedArray.getDimension(R.styleable.VerificationCodeView_vcv_textSize, 30)); - separator.setTextColor(typedArray.getColor(R.styleable.VerificationCodeView_vcv_textColor, Color.GRAY)); - - } finally { - if (typedArray != null) typedArray.recycle(); - } - } - - @MainThread - public void setOnCompleteListener(OnCodeEnteredListener listener) { - this.listener = listener; - } - - @MainThread - public void append(int value) { - if (index >= codes.size()) return; - - setInactive(containers); - setActive(containers.get(index)); - - TextView codeView = codes.get(index++); - - Animation translateIn = new TranslateAnimation(0, 0, codeView.getHeight(), 0); - translateIn.setInterpolator(new OvershootInterpolator()); - translateIn.setDuration(500); - - Animation fadeIn = new AlphaAnimation(0, 1); - fadeIn.setDuration(200); - - AnimationSet animationSet = new AnimationSet(false); - animationSet.addAnimation(fadeIn); - animationSet.addAnimation(translateIn); - animationSet.reset(); - animationSet.setStartTime(0); - - codeView.setText(String.valueOf(value)); - codeView.clearAnimation(); - codeView.startAnimation(animationSet); - - if (index == codes.size() && listener != null) { - listener.onCodeComplete(Stream.of(codes).map(TextView::getText).collect(Collectors.joining())); - } - } - - @MainThread - public void delete() { - if (index <= 0) return; - codes.get(--index).setText(""); - setInactive(containers); - setActive(containers.get(index)); - } - - @MainThread - public void clear() { - if (index != 0) { - Stream.of(codes).forEach(code -> code.setText("")); - index = 0; - } - setInactive(containers); - } - - private void setInactive(List views) { - Stream.of(views).forEach(c -> c.setBackgroundResource(R.drawable.labeled_edit_text_background_inactive)); - } - - private void setActive(@NonNull View container) { - container.setBackgroundResource(R.drawable.labeled_edit_text_background_active); - } - - public interface OnCodeEnteredListener { - void onCodeComplete(@NonNull String code); - } -} diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/registration/VerificationPinKeyboard.java b/app/src/main/java/org/thoughtcrime/securesms/components/registration/VerificationPinKeyboard.java deleted file mode 100644 index 79e419f03a..0000000000 --- a/app/src/main/java/org/thoughtcrime/securesms/components/registration/VerificationPinKeyboard.java +++ /dev/null @@ -1,212 +0,0 @@ -package org.thoughtcrime.securesms.components.registration; - - -import android.content.Context; -import android.graphics.PorterDuff; -import android.inputmethodservice.Keyboard; -import android.inputmethodservice.KeyboardView; -import android.os.Build; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.annotation.RequiresApi; -import android.util.AttributeSet; -import android.view.View; -import android.view.animation.Animation; -import android.view.animation.OvershootInterpolator; -import android.view.animation.ScaleAnimation; -import android.view.animation.TranslateAnimation; -import android.widget.FrameLayout; -import android.widget.ImageView; -import android.widget.ProgressBar; - -import network.loki.messenger.R; -import org.thoughtcrime.securesms.util.ViewUtil; -import org.thoughtcrime.securesms.util.concurrent.ListenableFuture; -import org.thoughtcrime.securesms.util.concurrent.SettableFuture; - -public class VerificationPinKeyboard extends FrameLayout { - - private KeyboardView keyboardView; - private ProgressBar progressBar; - private ImageView successView; - private ImageView failureView; - private ImageView lockedView; - - private OnKeyPressListener listener; - - public VerificationPinKeyboard(@NonNull Context context) { - super(context); - initialize(); - } - - public VerificationPinKeyboard(@NonNull Context context, @Nullable AttributeSet attrs) { - super(context, attrs); - initialize(); - } - - public VerificationPinKeyboard(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) { - super(context, attrs, defStyleAttr); - initialize(); - } - - @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) - public VerificationPinKeyboard(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) { - super(context, attrs, defStyleAttr, defStyleRes); - initialize(); - } - - private void initialize() { - inflate(getContext(), R.layout.verification_pin_keyboard_view, this); - - this.keyboardView = findViewById(R.id.keyboard_view); - this.progressBar = findViewById(R.id.progress); - this.successView = findViewById(R.id.success); - this.failureView = findViewById(R.id.failure); - this.lockedView = findViewById(R.id.locked); - - keyboardView.setPreviewEnabled(false); - keyboardView.setKeyboard(new Keyboard(getContext(), R.xml.pin_keyboard)); - keyboardView.setOnKeyboardActionListener(new KeyboardView.OnKeyboardActionListener() { - @Override - public void onPress(int primaryCode) { - if (listener != null) listener.onKeyPress(primaryCode); - } - @Override - public void onRelease(int primaryCode) {} - @Override - public void onKey(int primaryCode, int[] keyCodes) {} - @Override - public void onText(CharSequence text) {} - @Override - public void swipeLeft() {} - @Override - public void swipeRight() {} - @Override - public void swipeDown() {} - @Override - public void swipeUp() {} - }); - - displayKeyboard(); - } - - public void setOnKeyPressListener(@Nullable OnKeyPressListener listener) { - this.listener = listener; - } - - public void displayKeyboard() { - this.keyboardView.setVisibility(View.VISIBLE); - this.progressBar.setVisibility(View.GONE); - this.successView.setVisibility(View.GONE); - this.failureView.setVisibility(View.GONE); - this.lockedView.setVisibility(View.GONE); - } - - public void displayProgress() { - this.keyboardView.setVisibility(View.INVISIBLE); - this.progressBar.setVisibility(View.VISIBLE); - this.successView.setVisibility(View.GONE); - this.failureView.setVisibility(View.GONE); - this.lockedView.setVisibility(View.GONE); - } - - public ListenableFuture displaySuccess() { - SettableFuture result = new SettableFuture<>(); - - this.keyboardView.setVisibility(View.INVISIBLE); - this.progressBar.setVisibility(View.GONE); - this.failureView.setVisibility(View.GONE); - this.lockedView.setVisibility(View.GONE); - - this.successView.getBackground().setColorFilter(getResources().getColor(R.color.green_500), PorterDuff.Mode.SRC_IN); - - ScaleAnimation scaleAnimation = new ScaleAnimation(0, 1, 0, 1, - ScaleAnimation.RELATIVE_TO_SELF, 0.5f, - ScaleAnimation.RELATIVE_TO_SELF, 0.5f); - scaleAnimation.setInterpolator(new OvershootInterpolator()); - scaleAnimation.setDuration(800); - scaleAnimation.setAnimationListener(new Animation.AnimationListener() { - @Override - public void onAnimationStart(Animation animation) {} - - @Override - public void onAnimationEnd(Animation animation) { - result.set(true); - } - - @Override - public void onAnimationRepeat(Animation animation) {} - }); - - ViewUtil.animateIn(this.successView, scaleAnimation); - return result; - } - - public ListenableFuture displayFailure() { - SettableFuture result = new SettableFuture<>(); - - this.keyboardView.setVisibility(View.INVISIBLE); - this.progressBar.setVisibility(View.GONE); - this.failureView.setVisibility(View.GONE); - this.lockedView.setVisibility(View.GONE); - - this.failureView.getBackground().setColorFilter(getResources().getColor(R.color.red_500), PorterDuff.Mode.SRC_IN); - this.failureView.setVisibility(View.VISIBLE); - - TranslateAnimation shake = new TranslateAnimation(0, 30, 0, 0); - shake.setDuration(50); - shake.setRepeatCount(7); - shake.setAnimationListener(new Animation.AnimationListener() { - @Override - public void onAnimationStart(Animation animation) {} - - @Override - public void onAnimationEnd(Animation animation) { - result.set(true); - } - - @Override - public void onAnimationRepeat(Animation animation) {} - }); - - this.failureView.startAnimation(shake); - - return result; - } - - public ListenableFuture displayLocked() { - SettableFuture result = new SettableFuture<>(); - - this.keyboardView.setVisibility(View.INVISIBLE); - this.progressBar.setVisibility(View.GONE); - this.failureView.setVisibility(View.GONE); - this.lockedView.setVisibility(View.GONE); - - this.lockedView.getBackground().setColorFilter(getResources().getColor(R.color.green_500), PorterDuff.Mode.SRC_IN); - - ScaleAnimation scaleAnimation = new ScaleAnimation(0, 1, 0, 1, - ScaleAnimation.RELATIVE_TO_SELF, 0.5f, - ScaleAnimation.RELATIVE_TO_SELF, 0.5f); - scaleAnimation.setInterpolator(new OvershootInterpolator()); - scaleAnimation.setDuration(800); - scaleAnimation.setAnimationListener(new Animation.AnimationListener() { - @Override - public void onAnimationStart(Animation animation) {} - - @Override - public void onAnimationEnd(Animation animation) { - result.set(true); - } - - @Override - public void onAnimationRepeat(Animation animation) {} - }); - - ViewUtil.animateIn(this.lockedView, scaleAnimation); - return result; - } - - public interface OnKeyPressListener { - void onKeyPress(int keyCode); - } -} diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/reminder/DefaultSmsReminder.java b/app/src/main/java/org/thoughtcrime/securesms/components/reminder/DefaultSmsReminder.java deleted file mode 100644 index 02e7607296..0000000000 --- a/app/src/main/java/org/thoughtcrime/securesms/components/reminder/DefaultSmsReminder.java +++ /dev/null @@ -1,44 +0,0 @@ -package org.thoughtcrime.securesms.components.reminder; - -import android.annotation.TargetApi; -import android.content.Context; -import android.content.Intent; -import android.os.Build.VERSION_CODES; -import android.provider.Telephony; -import android.view.View; -import android.view.View.OnClickListener; - -import org.thoughtcrime.securesms.util.TextSecurePreferences; - -import network.loki.messenger.R; - -public class DefaultSmsReminder extends Reminder { - - @TargetApi(VERSION_CODES.KITKAT) - public DefaultSmsReminder(final Context context) { - super(context.getString(R.string.reminder_header_sms_default_title), - context.getString(R.string.reminder_header_sms_default_text)); - - final OnClickListener okListener = new OnClickListener() { - @Override - public void onClick(View v) { - TextSecurePreferences.setPromptedDefaultSmsProvider(context, true); - Intent intent = new Intent(Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT); - intent.putExtra(Telephony.Sms.Intents.EXTRA_PACKAGE_NAME, context.getPackageName()); - context.startActivity(intent); - } - }; - final OnClickListener dismissListener = new OnClickListener() { - @Override - public void onClick(View v) { - TextSecurePreferences.setPromptedDefaultSmsProvider(context, true); - } - }; - setOkListener(okListener); - setDismissListener(dismissListener); - } - - public static boolean isEligible(Context context) { - return false; - } -} diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/reminder/DozeReminder.java b/app/src/main/java/org/thoughtcrime/securesms/components/reminder/DozeReminder.java deleted file mode 100644 index bba6b4552f..0000000000 --- a/app/src/main/java/org/thoughtcrime/securesms/components/reminder/DozeReminder.java +++ /dev/null @@ -1,48 +0,0 @@ -package org.thoughtcrime.securesms.components.reminder; - - -import android.annotation.SuppressLint; -import android.content.Context; -import android.content.Intent; -import android.net.Uri; -import android.os.Build; -import android.os.PowerManager; -import android.provider.Settings; -import androidx.annotation.NonNull; -import androidx.annotation.RequiresApi; -import android.view.View; - -import network.loki.messenger.R; -import org.thoughtcrime.securesms.util.TextSecurePreferences; - -@SuppressLint("BatteryLife") -public class DozeReminder extends Reminder { - - @RequiresApi(api = Build.VERSION_CODES.M) - public DozeReminder(@NonNull final Context context) { - super(context.getString(R.string.DozeReminder_optimize_for_missing_play_services), - context.getString(R.string.DozeReminder_this_device_does_not_support_play_services_tap_to_disable_system_battery)); - - setOkListener(v -> { - TextSecurePreferences.setPromptedOptimizeDoze(context, true); - Intent intent = new Intent(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS, - Uri.parse("package:" + context.getPackageName())); - context.startActivity(intent); - }); - - setDismissListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - TextSecurePreferences.setPromptedOptimizeDoze(context, true); - } - }); - } - - public static boolean isEligible(Context context) { - return TextSecurePreferences.isFcmDisabled(context) && - !TextSecurePreferences.hasPromptedOptimizeDoze(context) && - Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && - !((PowerManager)context.getSystemService(Context.POWER_SERVICE)).isIgnoringBatteryOptimizations(context.getPackageName()); - } - -} diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/reminder/InviteReminder.java b/app/src/main/java/org/thoughtcrime/securesms/components/reminder/InviteReminder.java deleted file mode 100644 index d059e6a2f9..0000000000 --- a/app/src/main/java/org/thoughtcrime/securesms/components/reminder/InviteReminder.java +++ /dev/null @@ -1,33 +0,0 @@ -package org.thoughtcrime.securesms.components.reminder; - -import android.content.Context; -import android.os.AsyncTask; -import androidx.annotation.NonNull; -import android.view.View; -import android.view.View.OnClickListener; - -import network.loki.messenger.R; -import org.thoughtcrime.securesms.database.DatabaseFactory; -import org.thoughtcrime.securesms.recipients.Recipient; - -public class InviteReminder extends Reminder { - - public InviteReminder(final @NonNull Context context, - final @NonNull Recipient recipient) - { - super(context.getString(R.string.reminder_header_invite_title), - context.getString(R.string.reminder_header_invite_text, recipient.toShortString())); - - setDismissListener(new OnClickListener() { - @Override public void onClick(View v) { - new AsyncTask() { - - @Override protected Void doInBackground(Void... params) { - DatabaseFactory.getRecipientDatabase(context).setSeenInviteReminder(recipient, true); - return null; - } - }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); - } - }); - } -} diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/viewpager/ExtendedOnPageChangedListener.java b/app/src/main/java/org/thoughtcrime/securesms/components/viewpager/ExtendedOnPageChangedListener.java deleted file mode 100644 index ae679ddcea..0000000000 --- a/app/src/main/java/org/thoughtcrime/securesms/components/viewpager/ExtendedOnPageChangedListener.java +++ /dev/null @@ -1,29 +0,0 @@ -package org.thoughtcrime.securesms.components.viewpager; - - -import androidx.viewpager.widget.ViewPager; - -public abstract class ExtendedOnPageChangedListener implements ViewPager.OnPageChangeListener { - - private Integer currentPage = null; - - @Override - public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { - - } - - @Override - public void onPageSelected(int position) { - if (currentPage != null && currentPage != position) onPageUnselected(currentPage); - currentPage = position; - } - - public abstract void onPageUnselected(int position); - - @Override - public void onPageScrollStateChanged(int state) { - - } - - -} diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/viewpager/HackyViewPager.java b/app/src/main/java/org/thoughtcrime/securesms/components/viewpager/HackyViewPager.java deleted file mode 100644 index 7f139f1ba4..0000000000 --- a/app/src/main/java/org/thoughtcrime/securesms/components/viewpager/HackyViewPager.java +++ /dev/null @@ -1,43 +0,0 @@ -package org.thoughtcrime.securesms.components.viewpager; - - -import android.content.Context; -import androidx.viewpager.widget.ViewPager; -import android.util.AttributeSet; -import org.thoughtcrime.securesms.logging.Log; -import android.view.MotionEvent; - -/** - * Hacky fix for http://code.google.com/p/android/issues/detail?id=18990 - *

- * ScaleGestureDetector seems to mess up the touch events, which means that - * ViewGroups which make use of onInterceptTouchEvent throw a lot of - * IllegalArgumentException: pointerIndex out of range. - *

- * There's not much I can do in my code for now, but we can mask the result by - * just catching the problem and ignoring it. - * - * @author Chris Banes - */ -public class HackyViewPager extends ViewPager { - - private static final String TAG = HackyViewPager.class.getSimpleName(); - - public HackyViewPager(Context context) { - super(context); - } - - public HackyViewPager(Context context, AttributeSet attrs) { - super(context, attrs); - } - - @Override - public boolean onInterceptTouchEvent(MotionEvent ev) { - try { - return super.onInterceptTouchEvent(ev); - } catch (IllegalArgumentException e) { - Log.w(TAG, e); - return false; - } - } -} \ No newline at end of file diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/PercentFrameLayout.java b/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/PercentFrameLayout.java deleted file mode 100644 index 2a4cca8589..0000000000 --- a/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/PercentFrameLayout.java +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Copyright 2015 The WebRTC Project Authors. All rights reserved. - * - * Use of this source code is governed by a BSD-style license - * that can be found in the LICENSE file in the root of the source - * tree. An additional intellectual property rights grant can be found - * in the file PATENTS. All contributing project authors may - * be found in the AUTHORS file in the root of the source tree. - */ - -package org.thoughtcrime.securesms.components.webrtc; - -import android.content.Context; -import android.util.AttributeSet; -import android.view.View; -import android.view.ViewGroup; - -/** - * Simple container that confines the children to a subrectangle specified as percentage values of - * the container size. The children are centered horizontally and vertically inside the confined - * space. - */ -public class PercentFrameLayout extends ViewGroup { - private int xPercent = 0; - private int yPercent = 0; - private int widthPercent = 100; - private int heightPercent = 100; - - private boolean square = false; - private boolean hidden = false; - - public PercentFrameLayout(Context context) { - super(context); - } - - public PercentFrameLayout(Context context, AttributeSet attrs) { - super(context, attrs); - } - - public PercentFrameLayout(Context context, AttributeSet attrs, int defStyleAttr) { - super(context, attrs, defStyleAttr); - } - - public void setSquare(boolean square) { - this.square = square; - } - - public void setHidden(boolean hidden) { - this.hidden = hidden; - } - - public boolean isHidden() { - return this.hidden; - } - - public void setPosition(int xPercent, int yPercent, int widthPercent, int heightPercent) { - this.xPercent = xPercent; - this.yPercent = yPercent; - this.widthPercent = widthPercent; - this.heightPercent = heightPercent; - } - - @Override - public boolean shouldDelayChildPressedState() { - return false; - } - - @Override - protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { - final int width = getDefaultSize(Integer.MAX_VALUE, widthMeasureSpec); - final int height = getDefaultSize(Integer.MAX_VALUE, heightMeasureSpec); - - setMeasuredDimension(MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY), - MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY)); - - int childWidth = width * widthPercent / 100; - int childHeight = height * heightPercent / 100; - - if (square) { - if (width > height) childWidth = childHeight; - else childHeight = childWidth; - } - - if (hidden) { - childWidth = 1; - childHeight = 1; - } - - int childWidthMeasureSpec = MeasureSpec.makeMeasureSpec(childWidth, MeasureSpec.AT_MOST); - int childHeightMeasureSpec = MeasureSpec.makeMeasureSpec(childHeight, MeasureSpec.AT_MOST); - - for (int i = 0; i < getChildCount(); ++i) { - final View child = getChildAt(i); - if (child.getVisibility() != GONE) { - child.measure(childWidthMeasureSpec, childHeightMeasureSpec); - } - } - } - - @Override - protected void onLayout(boolean changed, int left, int top, int right, int bottom) { - final int width = right - left; - final int height = bottom - top; - // Sub-rectangle specified by percentage values. - final int subWidth = width * widthPercent / 100; - final int subHeight = height * heightPercent / 100; - final int subLeft = left + width * xPercent / 100; - final int subTop = top + height * yPercent / 100; - - - for (int i = 0; i < getChildCount(); ++i) { - final View child = getChildAt(i); - if (child.getVisibility() != GONE) { - final int childWidth = child.getMeasuredWidth(); - final int childHeight = child.getMeasuredHeight(); - // Center child both vertically and horizontally. - int childLeft = subLeft + (subWidth - childWidth) / 2; - int childTop = subTop + (subHeight - childHeight) / 2; - - if (hidden) { - childLeft = 0; - childTop = 0; - } - - child.layout(childLeft, childTop, childLeft + childWidth, childTop + childHeight); - } - } - } -} diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/WebRtcAnswerDeclineButton.java b/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/WebRtcAnswerDeclineButton.java deleted file mode 100644 index de2d4ba53b..0000000000 --- a/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/WebRtcAnswerDeclineButton.java +++ /dev/null @@ -1,312 +0,0 @@ -package org.thoughtcrime.securesms.components.webrtc; - - -import android.animation.Animator; -import android.animation.AnimatorSet; -import android.animation.ArgbEvaluator; -import android.animation.ObjectAnimator; -import android.content.Context; -import android.graphics.Color; -import android.os.Build; -import androidx.annotation.Nullable; -import androidx.annotation.RequiresApi; -import android.util.AttributeSet; -import android.view.MotionEvent; -import android.view.View; -import android.view.ViewGroup; -import android.view.animation.AccelerateInterpolator; -import android.view.animation.DecelerateInterpolator; -import android.widget.ImageView; -import android.widget.LinearLayout; -import android.widget.TextView; - -import network.loki.messenger.R; -import org.thoughtcrime.securesms.util.ViewUtil; - -public class WebRtcAnswerDeclineButton extends LinearLayout implements View.OnTouchListener { - - @SuppressWarnings("unused") - private static final String TAG = WebRtcAnswerDeclineButton.class.getSimpleName(); - - private static final int TOTAL_TIME = 1000; - private static final int SHAKE_TIME = 200; - - private static final int UP_TIME = (TOTAL_TIME - SHAKE_TIME) / 2; - private static final int DOWN_TIME = (TOTAL_TIME - SHAKE_TIME) / 2; - private static final int FADE_OUT_TIME = 300; - private static final int FADE_IN_TIME = 100; - private static final int SHIMMER_TOTAL = UP_TIME + SHAKE_TIME; - - private static final int ANSWER_THRESHOLD = 112; - private static final int DECLINE_THRESHOLD = 56; - - private TextView swipeUpText; - private ImageView fab; - private TextView swipeDownText; - - private ImageView arrowOne; - private ImageView arrowTwo; - private ImageView arrowThree; - private ImageView arrowFour; - - private float lastY; - - private boolean animating = false; - private boolean complete = false; - - private AnimatorSet animatorSet; - private AnswerDeclineListener listener; - - public WebRtcAnswerDeclineButton(Context context) { - super(context); - initialize(); - } - - public WebRtcAnswerDeclineButton(Context context, @Nullable AttributeSet attrs) { - super(context, attrs); - initialize(); - } - - public WebRtcAnswerDeclineButton(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { - super(context, attrs, defStyleAttr); - initialize(); - } - - @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) - public WebRtcAnswerDeclineButton(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { - super(context, attrs, defStyleAttr, defStyleRes); - initialize(); - } - - private void initialize() { - setOrientation(LinearLayout.VERTICAL); - setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)); - - inflate(getContext(), R.layout.webrtc_answer_decline_button, this); - - this.swipeUpText = findViewById(R.id.swipe_up_text); - this.fab = findViewById(R.id.answer); - this.swipeDownText = findViewById(R.id.swipe_down_text); - - this.arrowOne = findViewById(R.id.arrow_one); - this.arrowTwo = findViewById(R.id.arrow_two); - this.arrowThree = findViewById(R.id.arrow_three); - this.arrowFour = findViewById(R.id.arrow_four); - - this.fab.setOnTouchListener(this); - } - - public void startRingingAnimation() { - if (!animating) { - animating = true; - animateElements(0); - } - } - - public void stopRingingAnimation() { - if (animating) { - animating = false; - resetElements(); - } - } - - public void setAnswerDeclineListener(AnswerDeclineListener listener) { - this.listener = listener; - } - - @Override - public boolean onTouch(View v, MotionEvent event) { - - switch (event.getAction()) { - case MotionEvent.ACTION_DOWN: - resetElements(); - swipeUpText.animate().alpha(0).setDuration(200).start(); - swipeDownText.animate().alpha(0).setDuration(200).start(); - lastY = event.getRawY(); - break; - case MotionEvent.ACTION_CANCEL: - case MotionEvent.ACTION_UP: - swipeUpText.clearAnimation(); - swipeDownText.clearAnimation(); - swipeUpText.setAlpha(1); - swipeDownText.setAlpha(1); - fab.setRotation(0); - - if (Build.VERSION.SDK_INT >= 21) { - fab.getDrawable().setTint(getResources().getColor(R.color.green_600)); - fab.getBackground().setTint(Color.WHITE); - } - - animating = true; - animateElements(0); - break; - case MotionEvent.ACTION_MOVE: - float difference = event.getRawY() - lastY; - - float differenceThreshold; - float percentageToThreshold; - int backgroundColor; - int foregroundColor; - - if (difference <= 0) { - differenceThreshold = ViewUtil.dpToPx(getContext(), ANSWER_THRESHOLD); - percentageToThreshold = Math.min(1, (difference * -1) / differenceThreshold); - backgroundColor = (int) new ArgbEvaluator().evaluate(percentageToThreshold, getResources().getColor(R.color.green_100), getResources().getColor(R.color.green_600)); - - if (percentageToThreshold > 0.5) { - foregroundColor = Color.WHITE; - } else { - foregroundColor = getResources().getColor(R.color.green_600); - } - - fab.setTranslationY(difference); - - if (percentageToThreshold == 1 && listener != null) { - fab.setVisibility(View.INVISIBLE); - lastY = event.getRawY(); - if (!complete) { - complete = true; - listener.onAnswered(); - } - } - } else { - differenceThreshold = ViewUtil.dpToPx(getContext(), DECLINE_THRESHOLD); - percentageToThreshold = Math.min(1, difference / differenceThreshold); - backgroundColor = (int) new ArgbEvaluator().evaluate(percentageToThreshold, getResources().getColor(R.color.red_100), getResources().getColor(R.color.red_600)); - - if (percentageToThreshold > 0.5) { - foregroundColor = Color.WHITE; - } else { - foregroundColor = getResources().getColor(R.color.green_600); - } - - fab.setRotation(135 * percentageToThreshold); - - if (percentageToThreshold == 1 && listener != null) { - fab.setVisibility(View.INVISIBLE); - lastY = event.getRawY(); - - if (!complete) { - complete = true; - listener.onDeclined(); - } - } - } - - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { - fab.getBackground().setTint(backgroundColor); - fab.getDrawable().setTint(foregroundColor); - } - - break; - } - - return true; - } - - private void animateElements(int delay) { - ObjectAnimator fabUp = getUpAnimation(fab); - ObjectAnimator fabDown = getDownAnimation(fab); - ObjectAnimator fabShake = getShakeAnimation(fab); - - animatorSet = new AnimatorSet(); - animatorSet.play(fabUp).with(getUpAnimation(swipeUpText)); - animatorSet.play(fabShake).after(fabUp); - animatorSet.play(fabDown).with(getDownAnimation(swipeUpText)).after(fabShake); - - animatorSet.play(getFadeOut(swipeDownText)).with(fabUp); - animatorSet.play(getFadeIn(swipeDownText)).after(fabDown); - - animatorSet.play(getShimmer(arrowFour, arrowThree, arrowTwo, arrowOne)); - - animatorSet.addListener(new Animator.AnimatorListener() { - @Override - public void onAnimationStart(Animator animation) { - } - - @Override - public void onAnimationEnd(Animator animation) { - if (animating) animateElements(1000); - } - - @Override - public void onAnimationCancel(Animator animation) {} - @Override - public void onAnimationRepeat(Animator animation) {} - }); - - animatorSet.setStartDelay(delay); - animatorSet.start(); - } - - private Animator getShimmer(View... targets) { - AnimatorSet animatorSet = new AnimatorSet(); - int evenDuration = SHIMMER_TOTAL / targets.length; - int interval = 75; - - for (int i=0;i toolTipsManager.findAndDismiss(videoMuteButton), 4000); - } - } - - public static interface MuteButtonListener { - public void onToggle(boolean isMuted); - } - - public static interface CameraFlipButtonListener { - public void onToggle(); - } - - public static interface SpeakerButtonListener { - public void onSpeakerChange(boolean isSpeaker); - } - - public static interface BluetoothButtonListener { - public void onBluetoothChange(boolean isBluetooth); - } - - - - - -} diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationActivity.java b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationActivity.java index 37856c6283..77dfde63e1 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationActivity.java @@ -115,7 +115,6 @@ import org.thoughtcrime.securesms.components.identity.UnverifiedBannerView; import org.thoughtcrime.securesms.components.identity.UnverifiedSendDialog; import org.thoughtcrime.securesms.components.location.SignalPlace; import org.thoughtcrime.securesms.components.reminder.ExpiredBuildReminder; -import org.thoughtcrime.securesms.components.reminder.InviteReminder; import org.thoughtcrime.securesms.components.reminder.ReminderView; import org.thoughtcrime.securesms.components.reminder.ServiceOutageReminder; import org.thoughtcrime.securesms.contacts.ContactAccessor; @@ -786,8 +785,6 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity if (isSingleConversation() && isSecureText) { inflater.inflate(R.menu.conversation_secure, menu); - } else if (isSingleConversation()) { - inflater.inflate(R.menu.conversation_insecure, menu); } if (recipient != null && recipient.isMuted()) inflater.inflate(R.menu.conversation_muted, menu); @@ -885,7 +882,6 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity case R.id.menu_distribution_conversation: handleDistributionConversationEnabled(item); return true; case R.id.menu_edit_group: handleEditPushGroup(); return true; case R.id.menu_leave: handleLeavePushGroup(); return true; - case R.id.menu_invite: handleInviteLink(); return true; case R.id.menu_mute_notifications: handleMuteNotifications(); return true; case R.id.menu_unmute_notifications: handleUnmuteNotifications(); return true; // case R.id.menu_conversation_settings: handleConversationSettings(); return true; @@ -1027,20 +1023,6 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity startActivityForResult(intent, SMS_DEFAULT); } - private void handleInviteLink() { - String inviteText = getString(R.string.ConversationActivity_lets_switch_to_signal, getString(R.string.install_url)); - - if (isDefaultSms) { - composeText.appendInvite(inviteText); - } else { - Intent intent = new Intent(Intent.ACTION_SENDTO); - intent.setData(Uri.parse("smsto:" + recipient.getAddress().serialize())); - intent.putExtra("sms_body", inviteText); - intent.putExtra(Intent.EXTRA_TEXT, inviteText); - startActivity(intent); - } - } - private void handleResetSecureSession() { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle(R.string.ConversationActivity_reset_secure_session_question); @@ -1541,18 +1523,6 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity } else if (ServiceOutageReminder.isEligible(this)) { ApplicationContext.getInstance(this).getJobManager().add(new ServiceOutageDetectionJob()); reminderView.get().showReminder(new ServiceOutageReminder(this)); - } else if (TextSecurePreferences.isPushRegistered(this) && - TextSecurePreferences.isShowInviteReminders(this) && - !isSecureText && - !seenInvite && - !recipient.isGroupRecipient()) - { - InviteReminder reminder = new InviteReminder(this, recipient); - reminder.setOkListener(v -> { - handleInviteLink(); - reminderView.get().requestDismiss(); - }); - reminderView.get().showReminder(reminder); } else if (reminderView.resolved()) { reminderView.get().hide(); } diff --git a/app/src/main/res/layout/conversation_list_fragment.xml b/app/src/main/res/layout/conversation_list_fragment.xml deleted file mode 100644 index 0f56c5012b..0000000000 --- a/app/src/main/res/layout/conversation_list_fragment.xml +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/layout/media_preview_activity.xml b/app/src/main/res/layout/media_preview_activity.xml index 2f32fbc1d4..30b31230ad 100644 --- a/app/src/main/res/layout/media_preview_activity.xml +++ b/app/src/main/res/layout/media_preview_activity.xml @@ -20,7 +20,7 @@ - - - - - - - - - - - - - - - - - - - - - - - -