kopia lustrzana https://github.com/ryukoposting/Signal-Android
Add a feature flag system.
rodzic
a1245baf61
commit
70347e754c
|
@ -19,6 +19,7 @@ import org.thoughtcrime.securesms.logging.Log;
|
|||
import org.thoughtcrime.securesms.mms.MediaConstraints;
|
||||
import org.thoughtcrime.securesms.providers.BlobProvider;
|
||||
import org.thoughtcrime.securesms.recipients.Recipient;
|
||||
import org.thoughtcrime.securesms.util.FeatureFlags;
|
||||
import org.thoughtcrime.securesms.util.MediaUtil;
|
||||
import org.thoughtcrime.securesms.util.SingleLiveEvent;
|
||||
import org.thoughtcrime.securesms.util.TextSecurePreferences;
|
||||
|
@ -187,9 +188,11 @@ class MediaSendViewModel extends ViewModel {
|
|||
buttonState = (recipient != null) ? ButtonState.SEND : ButtonState.CONTINUE;
|
||||
|
||||
if (viewOnceState == ViewOnceState.GONE && viewOnceSupported()) {
|
||||
// TODO[reveal]
|
||||
// viewOnceState = TextSecurePreferences.isRevealableMessageEnabled(application) ? ViewOnceState.ENABLED : ViewOnceState.DISABLED;
|
||||
viewOnceState = ViewOnceState.GONE;
|
||||
if (FeatureFlags.VIEW_ONCE_SENDING) {
|
||||
viewOnceState = TextSecurePreferences.isRevealableMessageEnabled(application) ? ViewOnceState.ENABLED : ViewOnceState.DISABLED;
|
||||
} else {
|
||||
viewOnceState = ViewOnceState.GONE;
|
||||
}
|
||||
} else if (!viewOnceSupported()) {
|
||||
viewOnceState = ViewOnceState.GONE;
|
||||
}
|
||||
|
@ -449,8 +452,7 @@ class MediaSendViewModel extends ViewModel {
|
|||
}
|
||||
|
||||
boolean isViewOnce() {
|
||||
// TODO[reveal]
|
||||
return false;
|
||||
return FeatureFlags.VIEW_ONCE_SENDING && viewOnceState == ViewOnceState.ENABLED;
|
||||
}
|
||||
|
||||
private @NonNull List<Media> getSelectedMediaOrDefault() {
|
||||
|
@ -471,8 +473,7 @@ class MediaSendViewModel extends ViewModel {
|
|||
}
|
||||
|
||||
private HudState buildHudState() {
|
||||
// TODO[reveal]
|
||||
ViewOnceState updatedViewOnceState = ViewOnceState.GONE;
|
||||
ViewOnceState updatedViewOnceState = FeatureFlags.VIEW_ONCE_SENDING ? viewOnceState : ViewOnceState.GONE;
|
||||
List<Media> selectedMedia = getSelectedMediaOrDefault();
|
||||
int selectionCount = selectedMedia.size();
|
||||
ButtonState updatedButtonState = buttonState == ButtonState.COUNT && selectionCount == 0 ? ButtonState.GONE : buttonState;
|
||||
|
|
|
@ -16,6 +16,7 @@ import org.thoughtcrime.securesms.R;
|
|||
import org.thoughtcrime.securesms.database.model.StickerPackRecord;
|
||||
import org.thoughtcrime.securesms.mms.DecryptableStreamUriLoader.DecryptableUri;
|
||||
import org.thoughtcrime.securesms.mms.GlideRequests;
|
||||
import org.thoughtcrime.securesms.util.FeatureFlags;
|
||||
import org.thoughtcrime.securesms.util.adapter.SectionedRecyclerViewAdapter;
|
||||
import org.thoughtcrime.securesms.util.adapter.StableIdGenerator;
|
||||
|
||||
|
@ -222,10 +223,11 @@ final class StickerManagementAdapter extends SectionedRecyclerViewAdapter<String
|
|||
actionButtonImage.setImageResource(R.drawable.ic_x);
|
||||
actionButton.setOnClickListener(v -> eventListener.onStickerPackUninstallClicked(stickerPack.getPackId(), stickerPack.getPackKey()));
|
||||
|
||||
// TODO [Stickers]: Re-enable later
|
||||
// shareButton.setVisibility(View.VISIBLE);
|
||||
// shareButtonImage.setVisibility(View.VISIBLE);
|
||||
// shareButton.setOnClickListener(v -> eventListener.onStickerPackShareClicked(stickerPack.getPackId(), stickerPack.getPackKey()));
|
||||
if (FeatureFlags.STICKERS_SHARING) {
|
||||
shareButton.setVisibility(View.VISIBLE);
|
||||
shareButtonImage.setVisibility(View.VISIBLE);
|
||||
shareButton.setOnClickListener(v -> eventListener.onStickerPackShareClicked(stickerPack.getPackId(), stickerPack.getPackKey()));
|
||||
}
|
||||
} else {
|
||||
actionButtonImage.setImageResource(R.drawable.ic_arrow_down);
|
||||
actionButton.setOnClickListener(v -> eventListener.onStickerPackInstallClicked(stickerPack.getPackId(), stickerPack.getPackKey()));
|
||||
|
@ -235,9 +237,10 @@ final class StickerManagementAdapter extends SectionedRecyclerViewAdapter<String
|
|||
shareButton.setOnClickListener(null);
|
||||
}
|
||||
|
||||
// TODO [Stickers]: Delete later
|
||||
shareButton.setVisibility(View.GONE);
|
||||
shareButtonImage.setVisibility(View.GONE);
|
||||
if (!FeatureFlags.STICKERS_SHARING) {
|
||||
shareButton.setVisibility(View.GONE);
|
||||
shareButtonImage.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
itemView.setOnClickListener(v -> eventListener.onStickerPackClicked(stickerPack.getPackId(), stickerPack.getPackKey()));
|
||||
}
|
||||
|
|
|
@ -28,6 +28,7 @@ import org.thoughtcrime.securesms.mms.GlideApp;
|
|||
import org.thoughtcrime.securesms.stickers.StickerManifest.Sticker;
|
||||
import org.thoughtcrime.securesms.util.DynamicNoActionBarTheme;
|
||||
import org.thoughtcrime.securesms.util.DynamicTheme;
|
||||
import org.thoughtcrime.securesms.util.FeatureFlags;
|
||||
import org.thoughtcrime.securesms.util.ThemeUtil;
|
||||
import org.thoughtcrime.securesms.util.concurrent.SimpleTask;
|
||||
import org.whispersystems.libsignal.util.Pair;
|
||||
|
@ -147,8 +148,9 @@ public final class StickerPackPreviewActivity extends PassphraseRequiredActionBa
|
|||
if (manifest.isPresent()) {
|
||||
presentManifest(manifest.get().getManifest());
|
||||
presentButton(manifest.get().isInstalled());
|
||||
// TODO [Stickers]: Re-enable later
|
||||
// presentShareButton(manifest.get().isInstalled(), manifest.get().getManifest().getPackId(), manifest.get().getManifest().getPackKey());
|
||||
if (FeatureFlags.STICKERS_SHARING) {
|
||||
presentShareButton(manifest.get().isInstalled(), manifest.get().getManifest().getPackId(), manifest.get().getManifest().getPackKey());
|
||||
}
|
||||
} else {
|
||||
presentError();
|
||||
}
|
||||
|
|
|
@ -0,0 +1,13 @@
|
|||
package org.thoughtcrime.securesms.util;
|
||||
|
||||
/**
|
||||
* A location for constants that allows us to turn features on and off during development.
|
||||
* After a feature has been launched, the flag should be removed.
|
||||
*/
|
||||
public class FeatureFlags {
|
||||
/** Support for sharing stickers. */
|
||||
public static final boolean STICKERS_SHARING = false;
|
||||
|
||||
/** Send support for view-once photos. */
|
||||
public static final boolean VIEW_ONCE_SENDING = false;
|
||||
}
|
Ładowanie…
Reference in New Issue