diff options
author | Christian Schneppe <christian@pix-art.de> | 2019-09-21 12:22:32 +0200 |
---|---|---|
committer | Christian Schneppe <christian@pix-art.de> | 2019-09-21 12:22:32 +0200 |
commit | 041351b176843d9ba0be2813a16e4623ebfeee65 (patch) | |
tree | d297eb81f4d262d9ef7b5c391c7779770193ce26 /src/main/java/de/pixart/messenger/ui/IntroActivity.java | |
parent | 82ff5d12389321fe7effae29269f902e16f54179 (diff) |
introduce app intro and some help screens
Diffstat (limited to 'src/main/java/de/pixart/messenger/ui/IntroActivity.java')
-rw-r--r-- | src/main/java/de/pixart/messenger/ui/IntroActivity.java | 134 |
1 files changed, 134 insertions, 0 deletions
diff --git a/src/main/java/de/pixart/messenger/ui/IntroActivity.java b/src/main/java/de/pixart/messenger/ui/IntroActivity.java new file mode 100644 index 000000000..802072efe --- /dev/null +++ b/src/main/java/de/pixart/messenger/ui/IntroActivity.java @@ -0,0 +1,134 @@ +package de.pixart.messenger.ui; + +import android.content.Intent; +import android.os.Bundle; + +import androidx.annotation.Nullable; +import androidx.fragment.app.Fragment; + +import com.github.paolorotolo.appintro.AppIntro; +import com.github.paolorotolo.appintro.AppIntroFragment; +import com.github.paolorotolo.appintro.model.SliderPage; + +import de.pixart.messenger.R; + +import static de.pixart.messenger.ui.util.IntroHelper.SaveIntroShown; + +public class IntroActivity extends AppIntro { + public static final String ACTIVITY = "activity"; + public static final String MULTICHAT = "multi_chat"; + public static final String START_UI = "StartUI"; + public static final String CONVERSATIONS_ACTIVITY = "ConversationsActivity"; + public static final String CONTACT_DETAILS_ACTIVITY = "ContactDetailsActivity"; + public static final String CONFERENCE_DETAILS_ACTIVITY = "ConferenceDetailsActivity"; + String activity = null; + boolean mode_multi = false; + + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + final int backgroundColor = getResources().getColor(R.color.primary_dark); + final int barColor = getResources().getColor(R.color.primary); + final int separatorColor = getResources().getColor(R.color.accent); + + setBarColor(barColor); + setSeparatorColor(separatorColor); + setProgressButtonEnabled(true); + showSkipButton(false); + setBackButtonVisibilityWithDone(true); + setGoBackLock(true); + setFadeAnimation(); + + final Intent intent = getIntent(); + if (intent != null) { + activity = intent.getStringExtra(ACTIVITY); + mode_multi = intent.getBooleanExtra(MULTICHAT, false); + } + if (activity == null) { + finish(); + } + switch (activity) { + case START_UI: + SliderPage welcome = new SliderPage(); + welcome.setTitle(getString(R.string.welcome_header)); + welcome.setDescription(getString(R.string.intro_desc_main)); + welcome.setImageDrawable(R.drawable.main_logo); + welcome.setBgColor(backgroundColor); + addSlide(AppIntroFragment.newInstance(welcome)); + + SliderPage permissions = new SliderPage(); + permissions.setTitle(getString(R.string.intro_permissions)); + permissions.setDescription(getString(R.string.intro_desc_permissions)); + permissions.setImageDrawable(R.drawable.intro_memory_icon); + permissions.setBgColor(backgroundColor); + addSlide(AppIntroFragment.newInstance(permissions)); + + SliderPage account = new SliderPage(); + account.setTitle(getString(R.string.intro_account)); + account.setDescription(getString(R.string.intro_desc_account)); + account.setImageDrawable(R.drawable.intro_account_icon); + account.setBgColor(backgroundColor); + addSlide(AppIntroFragment.newInstance(account)); + + SliderPage startChatting = new SliderPage(); + startChatting.setTitle(getString(R.string.intro_start_chatting)); + startChatting.setDescription(getString(R.string.intro_desc_start_chatting)); + startChatting.setImageDrawable(R.drawable.intro_start_chat_icon); + startChatting.setBgColor(backgroundColor); + addSlide(AppIntroFragment.newInstance(startChatting)); + break; + case CONVERSATIONS_ACTIVITY: + SliderPage openChat = new SliderPage(); + openChat.setTitle(getString(R.string.intro_start_chatting)); + openChat.setDescription(getString(R.string.intro_desc_open_chat)); + openChat.setImageDrawable(R.drawable.intro_start_chat_icon); + openChat.setBgColor(backgroundColor); + addSlide(AppIntroFragment.newInstance(openChat)); + + SliderPage chatDetails = new SliderPage(); + chatDetails.setTitle(getString(R.string.intro_chat_details)); + chatDetails.setDescription(getString(R.string.intro_desc_chat_details)); + chatDetails.setImageDrawable(R.drawable.intro_account_details_icon); + chatDetails.setBgColor(backgroundColor); + addSlide(AppIntroFragment.newInstance(chatDetails)); + + if (mode_multi) { + SliderPage highlightUser = new SliderPage(); + highlightUser.setTitle(getString(R.string.intro_highlight_user)); + highlightUser.setDescription(getString(R.string.intro_desc_highlight_user)); + highlightUser.setImageDrawable(R.drawable.intro_account_details_icon); + highlightUser.setBgColor(backgroundColor); + addSlide(AppIntroFragment.newInstance(highlightUser)); + } + break; + case CONTACT_DETAILS_ACTIVITY: + case CONFERENCE_DETAILS_ACTIVITY: + SliderPage openChatDetails = new SliderPage(); + openChatDetails.setTitle(getString(R.string.intro_chat_details)); + openChatDetails.setDescription(getString(R.string.intro_desc_open_chat_details)); + openChatDetails.setImageDrawable(R.drawable.intro_account_details_icon); + openChatDetails.setBgColor(backgroundColor); + addSlide(AppIntroFragment.newInstance(openChatDetails)); + } + } + + @Override + public void onSkipPressed(Fragment currentFragment) { + super.onSkipPressed(currentFragment); + finish(); + } + + @Override + public void onDonePressed(Fragment currentFragment) { + super.onDonePressed(currentFragment); + SaveIntroShown(getBaseContext(), activity, mode_multi); + finish(); + } + + @Override + public void onSlideChanged(@Nullable Fragment oldFragment, @Nullable Fragment newFragment) { + super.onSlideChanged(oldFragment, newFragment); + // Do something when the slide changes. + } +} |