Skip to content

Commit 29eff02

Browse files
committed
Merge remote-tracking branch 'upstream/master' into cust_remove_call_confirm
2 parents b075366 + e2f5fa6 commit 29eff02

File tree

31 files changed

+395
-151
lines changed

31 files changed

+395
-151
lines changed

app/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,8 @@ protobuf {
6161
}
6262
}
6363

64-
def canonicalVersionCode = 790
65-
def canonicalVersionName = "5.4.4"
64+
def canonicalVersionCode = 791
65+
def canonicalVersionName = "5.4.5"
6666

6767
def postFixSize = 100
6868
def abiPostFix = ['universal' : 0,

app/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,9 +124,9 @@ public void onCreate() {
124124
Log.i(TAG, "onCreate()");
125125
})
126126
.addBlocking("crash-handling", this::initializeCrashHandling)
127-
.addBlocking("notification-channels", () -> NotificationChannels.create(this))
128127
.addBlocking("eat-db", () -> DatabaseFactory.getInstance(this))
129128
.addBlocking("app-dependencies", this::initializeAppDependencies)
129+
.addBlocking("notification-channels", () -> NotificationChannels.create(this))
130130
.addBlocking("first-launch", this::initializeFirstEverAppLaunch)
131131
.addBlocking("app-migrations", this::initializeApplicationMigrations)
132132
.addBlocking("ring-rtc", this::initializeRingRtc)

app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationFragment.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1066,9 +1066,9 @@ private void moveToPosition(int position, @Nullable Runnable onMessageNotFound)
10661066
pulsePosition = position;
10671067
}
10681068

1069-
list.smoothScrollToPosition(p);
1069+
layoutManager.scrollToPositionWithOffset(p, list.getHeight() / 4);
10701070
} else {
1071-
layoutManager.scrollToPosition(p);
1071+
layoutManager.scrollToPositionWithOffset(p, list.getHeight() / 4);
10721072
getListAdapter().pulseAtPosition(position);
10731073
}
10741074
})

app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationReactionOverlay.java

Lines changed: 21 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -144,41 +144,6 @@ public void setListVerticalTranslation(float translationY) {
144144
maskView.setTargetParentTranslationY(translationY);
145145
}
146146

147-
private OnLayoutChangeListener createUpdateViewPositionsOnLayoutChangeListener(@NonNull View maskTarget,
148-
int maskPaddingBottom,
149-
@NonNull PointF lastSeenDownPoint)
150-
{
151-
return new OnLayoutChangeListener() {
152-
@Override
153-
public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) {
154-
155-
final float scrubberTranslationY = Math.max(-scrubberDistanceFromTouchDown + actionBarHeight,
156-
lastSeenDownPoint.y - scrubberHeight - scrubberDistanceFromTouchDown - statusBarHeight);
157-
158-
final float halfWidth = scrubberWidth / 2f + scrubberHorizontalMargin;
159-
final float screenWidth = getResources().getDisplayMetrics().widthPixels;
160-
final float downX = ViewUtil.isLtr(ConversationReactionOverlay.this) ? lastSeenDownPoint.x : screenWidth - lastSeenDownPoint.x;
161-
final float scrubberTranslationX = Util.clamp(downX - halfWidth,
162-
scrubberHorizontalMargin,
163-
screenWidth + scrubberHorizontalMargin - halfWidth * 2) * (ViewUtil.isLtr(ConversationReactionOverlay.this) ? 1 : -1);
164-
165-
backgroundView.setTranslationX(scrubberTranslationX);
166-
backgroundView.setTranslationY(scrubberTranslationY);
167-
168-
foregroundView.setTranslationX(scrubberTranslationX);
169-
foregroundView.setTranslationY(scrubberTranslationY);
170-
171-
verticalScrubBoundary.update(lastSeenDownPoint.y - distanceFromTouchDownPointToTopOfScrubberDeadZone,
172-
lastSeenDownPoint.y + distanceFromTouchDownPointToBottomOfScrubberDeadZone);
173-
174-
maskView.setPadding(0, 0, 0, maskPaddingBottom);
175-
maskView.setTarget(maskTarget);
176-
177-
removeOnLayoutChangeListener(this);
178-
}
179-
};
180-
}
181-
182147
public void show(@NonNull Activity activity,
183148
@NonNull View maskTarget,
184149
@NonNull Recipient conversationRecipient,
@@ -206,7 +171,27 @@ public void show(@NonNull Activity activity,
206171
statusBarHeight = ViewUtil.getStatusBarHeight(this);
207172
}
208173

209-
addOnLayoutChangeListener(createUpdateViewPositionsOnLayoutChangeListener(maskTarget, maskPaddingBottom, lastSeenDownPoint));
174+
final float scrubberTranslationY = Math.max(-scrubberDistanceFromTouchDown + actionBarHeight,
175+
lastSeenDownPoint.y - scrubberHeight - scrubberDistanceFromTouchDown - statusBarHeight);
176+
177+
final float halfWidth = scrubberWidth / 2f + scrubberHorizontalMargin;
178+
final float screenWidth = getResources().getDisplayMetrics().widthPixels;
179+
final float downX = ViewUtil.isLtr(this) ? lastSeenDownPoint.x : screenWidth - lastSeenDownPoint.x;
180+
final float scrubberTranslationX = Util.clamp(downX - halfWidth,
181+
scrubberHorizontalMargin,
182+
screenWidth + scrubberHorizontalMargin - halfWidth * 2) * (ViewUtil.isLtr(this) ? 1 : -1);
183+
184+
backgroundView.setTranslationX(scrubberTranslationX);
185+
backgroundView.setTranslationY(scrubberTranslationY);
186+
187+
foregroundView.setTranslationX(scrubberTranslationX);
188+
foregroundView.setTranslationY(scrubberTranslationY);
189+
190+
verticalScrubBoundary.update(lastSeenDownPoint.y - distanceFromTouchDownPointToTopOfScrubberDeadZone,
191+
lastSeenDownPoint.y + distanceFromTouchDownPointToBottomOfScrubberDeadZone);
192+
193+
maskView.setPadding(0, 0, 0, maskPaddingBottom);
194+
maskView.setTarget(maskTarget);
210195

211196
hideAnimatorSet.end();
212197
toolbar.setVisibility(VISIBLE);

app/src/main/java/org/thoughtcrime/securesms/gcm/FcmReceiveService.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,21 @@
1414
import org.thoughtcrime.securesms.registration.PushChallengeRequest;
1515
import org.thoughtcrime.securesms.util.TextSecurePreferences;
1616

17+
import java.util.Locale;
18+
1719
public class FcmReceiveService extends FirebaseMessagingService {
1820

1921
private static final String TAG = FcmReceiveService.class.getSimpleName();
2022

2123

2224
@Override
2325
public void onMessageReceived(RemoteMessage remoteMessage) {
24-
Log.i(TAG, "onMessageReceived() ID: " + remoteMessage.getMessageId() + ", Delay: " + (System.currentTimeMillis() - remoteMessage.getSentTime()) + ", Original Priority: " + remoteMessage.getOriginalPriority());
26+
Log.i(TAG, String.format(Locale.US,
27+
"onMessageReceived() ID: %s, Delay: %d, Priority: %d, Original Priority: %d",
28+
remoteMessage.getMessageId(),
29+
(System.currentTimeMillis() - remoteMessage.getSentTime()),
30+
remoteMessage.getPriority(),
31+
remoteMessage.getOriginalPriority()));
2532

2633
String challenge = remoteMessage.getData().get("challenge");
2734
if (challenge != null) {

app/src/main/java/org/thoughtcrime/securesms/messages/IncomingMessageObserver.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ public synchronized void addDecryptionDrainedListener(@NonNull Runnable listener
112112
}
113113

114114
public boolean isDecryptionDrained() {
115-
return decryptionDrained;
115+
return decryptionDrained || networkAccess.isCensored(context);
116116
}
117117

118118
public void notifyDecryptionsDrained() {

app/src/main/java/org/thoughtcrime/securesms/sharing/ShareRepository.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import org.thoughtcrime.securesms.providers.BlobProvider;
2929
import org.thoughtcrime.securesms.util.MediaUtil;
3030
import org.thoughtcrime.securesms.util.TextSecurePreferences;
31+
import org.thoughtcrime.securesms.util.UriUtil;
3132
import org.thoughtcrime.securesms.util.Util;
3233
import org.whispersystems.libsignal.util.guava.Optional;
3334

@@ -77,6 +78,10 @@ void getResolved(@NonNull List<Uri> uris, @NonNull Callback<Optional<ShareData>>
7778
return ShareData.forPrimitiveTypes();
7879
}
7980

81+
if (!UriUtil.isValidExternalUri(context, uri)) {
82+
throw new IOException("Invalid external URI!");
83+
}
84+
8085
mimeType = getMimeType(context, uri, mimeType);
8186

8287
if (PartAuthority.isLocalUri(uri)) {
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package org.thoughtcrime.securesms.util;
2+
3+
import android.content.ContentResolver;
4+
import android.content.Context;
5+
import android.net.Uri;
6+
7+
import androidx.annotation.NonNull;
8+
9+
import java.io.File;
10+
import java.io.IOException;
11+
12+
public final class UriUtil {
13+
14+
/**
15+
* Ensures that an external URI is valid and doesn't contain any references to internal files or
16+
* any other trickiness.
17+
*/
18+
public static boolean isValidExternalUri(@NonNull Context context, @NonNull Uri uri) {
19+
if (ContentResolver.SCHEME_FILE.equals(uri.getScheme())) {
20+
try {
21+
File file = new File(uri.getPath());
22+
23+
return file.getCanonicalPath().equals(file.getPath()) &&
24+
!file.getCanonicalPath().startsWith("/data") &&
25+
!file.getCanonicalPath().contains(context.getPackageName());
26+
} catch (IOException e) {
27+
return false;
28+
}
29+
} else {
30+
return true;
31+
}
32+
}
33+
}

app/src/main/res/menu/conversation.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111

1212
<item android:title="@string/SearchToolbar_search"
1313
android:id="@+id/menu_search"
14-
app:actionViewClass="org.thoughtcrime.securesms.components.DarkSearchView"
14+
app:actionViewClass="org.thoughtcrime.securesms.components.SearchView"
1515
app:showAsAction="collapseActionView"/>
1616

1717
<item android:title="@string/conversation__menu_add_shortcut"

app/src/main/res/values-ar/strings.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@
7070
<string name="AttachmentUploadJob_uploading_media">جاري رفع الملف …</string>
7171
<string name="AttachmentUploadJob_compressing_video_start">جاري ضغط الفيديو…</string>
7272
<!--BackgroundMessageRetriever-->
73-
<string name="BackgroundMessageRetriever_checking_for_messages">يجلب الرسائل…</string>
73+
<string name="BackgroundMessageRetriever_checking_for_messages">يبحث عن الرسائل…</string>
7474
<!--BlockedUsersActivity-->
7575
<string name="BlockedUsersActivity__blocked_users">المستخدمون المحظورون</string>
7676
<string name="BlockedUsersActivity__add_blocked_user">أضف مستخدما محظورا</string>
@@ -2762,7 +2762,7 @@
27622762
<string name="ChatWallpaperFragment__wallpaper_preview_description">معاينة الخلفية</string>
27632763
<!--ChatWallpaperSelectionFragment-->
27642764
<string name="ChatWallpaperSelectionFragment__choose_from_photos">الاختيار من الصور</string>
2765-
<string name="ChatWallpaperSelectionFragment__presets">الإعدادات المسبقة</string>
2765+
<string name="ChatWallpaperSelectionFragment__presets">الإعدادات الأولية</string>
27662766
<!--ChatWallpaperPreviewActivity-->
27672767
<string name="ChatWallpaperPreviewActivity__preview">مُعاينة</string>
27682768
<string name="ChatWallpaperPreviewActivity__set_wallpaper">تعيين خلفية</string>

0 commit comments

Comments
 (0)