aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/de/pixart/messenger/ui/IntroActivity.java
diff options
context:
space:
mode:
authorChristian Schneppe <christian@pix-art.de>2019-09-21 12:22:32 +0200
committerChristian Schneppe <christian@pix-art.de>2019-09-21 12:22:32 +0200
commit041351b176843d9ba0be2813a16e4623ebfeee65 (patch)
treed297eb81f4d262d9ef7b5c391c7779770193ce26 /src/main/java/de/pixart/messenger/ui/IntroActivity.java
parent82ff5d12389321fe7effae29269f902e16f54179 (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.java134
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.
+ }
+}