kopia lustrzana https://github.com/ryukoposting/Signal-Android
Add Photo onboarding card.
rodzic
f2533ac4b7
commit
bfbdbdcbc0
|
@ -17,6 +17,7 @@ public final class OnboardingValues extends SignalStoreValues {
|
||||||
private static final String SHOW_INVITE_FRIENDS = "onboarding.invite_friends";
|
private static final String SHOW_INVITE_FRIENDS = "onboarding.invite_friends";
|
||||||
private static final String SHOW_SMS = "onboarding.sms";
|
private static final String SHOW_SMS = "onboarding.sms";
|
||||||
private static final String SHOW_APPEARANCE = "onboarding.appearance";
|
private static final String SHOW_APPEARANCE = "onboarding.appearance";
|
||||||
|
private static final String SHOW_ADD_PHOTO = "onboarding.add_photo";
|
||||||
|
|
||||||
OnboardingValues(@NonNull KeyValueStore store) {
|
OnboardingValues(@NonNull KeyValueStore store) {
|
||||||
super(store);
|
super(store);
|
||||||
|
@ -28,6 +29,7 @@ public final class OnboardingValues extends SignalStoreValues {
|
||||||
putBoolean(SHOW_INVITE_FRIENDS, true);
|
putBoolean(SHOW_INVITE_FRIENDS, true);
|
||||||
putBoolean(SHOW_SMS, true);
|
putBoolean(SHOW_SMS, true);
|
||||||
putBoolean(SHOW_APPEARANCE, true);
|
putBoolean(SHOW_APPEARANCE, true);
|
||||||
|
putBoolean(SHOW_ADD_PHOTO, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -40,13 +42,15 @@ public final class OnboardingValues extends SignalStoreValues {
|
||||||
setShowInviteFriends(false);
|
setShowInviteFriends(false);
|
||||||
setShowSms(false);
|
setShowSms(false);
|
||||||
setShowAppearance(false);
|
setShowAppearance(false);
|
||||||
|
setShowAddPhoto(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean hasOnboarding(@NonNull Context context) {
|
public boolean hasOnboarding(@NonNull Context context) {
|
||||||
return shouldShowNewGroup() ||
|
return shouldShowNewGroup() ||
|
||||||
shouldShowInviteFriends() ||
|
shouldShowInviteFriends() ||
|
||||||
shouldShowSms(context) ||
|
shouldShowSms(context) ||
|
||||||
shouldShowAppearance();
|
shouldShowAppearance() ||
|
||||||
|
shouldShowAddPhoto();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setShowNewGroup(boolean value) {
|
public void setShowNewGroup(boolean value) {
|
||||||
|
@ -80,4 +84,12 @@ public final class OnboardingValues extends SignalStoreValues {
|
||||||
public boolean shouldShowAppearance() {
|
public boolean shouldShowAppearance() {
|
||||||
return getBoolean(SHOW_APPEARANCE, false);
|
return getBoolean(SHOW_APPEARANCE, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setShowAddPhoto(boolean value) {
|
||||||
|
putBoolean(SHOW_ADD_PHOTO, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean shouldShowAddPhoto(){
|
||||||
|
return getBoolean(SHOW_ADD_PHOTO, false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,10 +19,10 @@ import androidx.recyclerview.widget.RecyclerView;
|
||||||
import org.signal.core.util.logging.Log;
|
import org.signal.core.util.logging.Log;
|
||||||
import org.thoughtcrime.securesms.InviteActivity;
|
import org.thoughtcrime.securesms.InviteActivity;
|
||||||
import org.thoughtcrime.securesms.R;
|
import org.thoughtcrime.securesms.R;
|
||||||
import org.thoughtcrime.securesms.components.settings.app.AppSettingsActivity;
|
|
||||||
import org.thoughtcrime.securesms.conversationlist.ConversationListFragment;
|
import org.thoughtcrime.securesms.conversationlist.ConversationListFragment;
|
||||||
import org.thoughtcrime.securesms.groups.ui.creategroup.CreateGroupActivity;
|
import org.thoughtcrime.securesms.groups.ui.creategroup.CreateGroupActivity;
|
||||||
import org.thoughtcrime.securesms.keyvalue.SignalStore;
|
import org.thoughtcrime.securesms.keyvalue.SignalStore;
|
||||||
|
import org.thoughtcrime.securesms.profiles.manage.ManageProfileActivity;
|
||||||
import org.thoughtcrime.securesms.util.SmsUtil;
|
import org.thoughtcrime.securesms.util.SmsUtil;
|
||||||
import org.thoughtcrime.securesms.wallpaper.ChatWallpaperActivity;
|
import org.thoughtcrime.securesms.wallpaper.ChatWallpaperActivity;
|
||||||
|
|
||||||
|
@ -66,6 +66,7 @@ public class OnboardingMegaphoneView extends FrameLayout {
|
||||||
private static final int TYPE_INVITE = 1;
|
private static final int TYPE_INVITE = 1;
|
||||||
private static final int TYPE_SMS = 2;
|
private static final int TYPE_SMS = 2;
|
||||||
private static final int TYPE_APPEARANCE = 3;
|
private static final int TYPE_APPEARANCE = 3;
|
||||||
|
private static final int TYPE_ADD_PHOTO = 4;
|
||||||
|
|
||||||
private final Context context;
|
private final Context context;
|
||||||
private final MegaphoneActionController controller;
|
private final MegaphoneActionController controller;
|
||||||
|
@ -102,6 +103,7 @@ public class OnboardingMegaphoneView extends FrameLayout {
|
||||||
case TYPE_INVITE: return new InviteCardViewHolder(view);
|
case TYPE_INVITE: return new InviteCardViewHolder(view);
|
||||||
case TYPE_SMS: return new SmsCardViewHolder(view);
|
case TYPE_SMS: return new SmsCardViewHolder(view);
|
||||||
case TYPE_APPEARANCE: return new AppearanceCardViewHolder(view);
|
case TYPE_APPEARANCE: return new AppearanceCardViewHolder(view);
|
||||||
|
case TYPE_ADD_PHOTO: return new AddPhotoCardViewHolder(view);
|
||||||
default: throw new IllegalStateException("Invalid viewType! " + viewType);
|
default: throw new IllegalStateException("Invalid viewType! " + viewType);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -146,6 +148,10 @@ public class OnboardingMegaphoneView extends FrameLayout {
|
||||||
data.add(TYPE_APPEARANCE);
|
data.add(TYPE_APPEARANCE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (SignalStore.onboarding().shouldShowAddPhoto() && !SignalStore.misc().hasEverHadAnAvatar()) {
|
||||||
|
data.add(TYPE_ADD_PHOTO);
|
||||||
|
}
|
||||||
|
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -295,4 +301,32 @@ public class OnboardingMegaphoneView extends FrameLayout {
|
||||||
SignalStore.onboarding().setShowAppearance(false);
|
SignalStore.onboarding().setShowAppearance(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static class AddPhotoCardViewHolder extends CardViewHolder {
|
||||||
|
|
||||||
|
public AddPhotoCardViewHolder(@NonNull View itemView) {
|
||||||
|
super(itemView);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
int getButtonStringRes() {
|
||||||
|
return R.string.Megaphones_add_photo;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
int getImageRes() {
|
||||||
|
return R.drawable.ic_signal_add_photo;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
void onActionClicked(@NonNull MegaphoneActionController controller) {
|
||||||
|
controller.onMegaphoneNavigationRequested(ManageProfileActivity.getIntentForAvatarEdit(controller.getMegaphoneActivity()));
|
||||||
|
SignalStore.onboarding().setShowAddPhoto(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
void onCloseClicked() {
|
||||||
|
SignalStore.onboarding().setShowAddPhoto(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -959,6 +959,7 @@
|
||||||
<string name="Megaphones_invite_friends">Invite friends</string>
|
<string name="Megaphones_invite_friends">Invite friends</string>
|
||||||
<string name="Megaphones_use_sms">Use SMS</string>
|
<string name="Megaphones_use_sms">Use SMS</string>
|
||||||
<string name="Megaphones_appearance">Appearance</string>
|
<string name="Megaphones_appearance">Appearance</string>
|
||||||
|
<string name="Megaphones_add_photo">Add photo</string>
|
||||||
|
|
||||||
<!-- NotificationBarManager -->
|
<!-- NotificationBarManager -->
|
||||||
<string name="NotificationBarManager_signal_call_in_progress">Signal call in progress</string>
|
<string name="NotificationBarManager_signal_call_in_progress">Signal call in progress</string>
|
||||||
|
|
Ładowanie…
Reference in New Issue