diff --git a/build.gradle b/build.gradle index accb11e27e06cdf0ecc910ee39d2b4914299a98a..f7cfb9638efc014e9307acffc9747fa7cb273650 100644 --- a/build.gradle +++ b/build.gradle @@ -104,6 +104,7 @@ dependencies { implementation 'org.snikket:webrtc-android:107.0.0' implementation 'com.github.woltapp:blurhash:master' implementation 'com.caverock:androidsvg-aar:1.4' + implementation 'com.tbuonomo.andrui:viewpagerdotsindicator:4.1.2' // INSERT } diff --git a/src/cheogram/java/eu/siacs/conversations/ui/WelcomeActivity.java b/src/cheogram/java/eu/siacs/conversations/ui/WelcomeActivity.java index 5c23520c596c8381b7e8c934b33bbc3bc2725901..8d3c35d73183bc3bd635294194ed74b1aaef0873 100644 --- a/src/cheogram/java/eu/siacs/conversations/ui/WelcomeActivity.java +++ b/src/cheogram/java/eu/siacs/conversations/ui/WelcomeActivity.java @@ -11,11 +11,15 @@ import android.security.KeyChainAliasCallback; import android.util.Log; import android.view.Menu; import android.view.MenuItem; +import android.view.View; +import android.view.ViewGroup; import android.widget.Toast; import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; import androidx.databinding.DataBindingUtil; +import androidx.viewpager.widget.PagerAdapter; +import androidx.viewpager.widget.ViewPager; import java.security.SecureRandom; import java.util.Arrays; @@ -138,6 +142,19 @@ public class WelcomeActivity extends XmppActivity implements XmppConnectionServi super.onCreate(savedInstanceState); getPreferences().edit().putStringSet("pstn_gateways", new HashSet<>()).apply(); ActivityWelcomeBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_welcome); + binding.slideshowPager.setAdapter(new WelcomePagerAdapter(binding.slideshowPager)); + binding.dotsIndicator.setViewPager(binding.slideshowPager); + binding.slideshowPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { + public void onPageScrollStateChanged(int state) { } + public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } + + public void onPageSelected(int position) { + binding.buttonNext.setVisibility(position > 1 ? View.GONE : View.VISIBLE); + } + }); + binding.buttonNext.setOnClickListener((v) -> + binding.slideshowPager.setCurrentItem(binding.slideshowPager.getCurrentItem() + 1) + ); setSupportActionBar(binding.toolbar); configureActionBar(getSupportActionBar(), false); binding.registerNewAccount.setOnClickListener(v -> { @@ -278,4 +295,37 @@ public class WelcomeActivity extends XmppActivity implements XmppConnectionServi } } + class WelcomePagerAdapter extends PagerAdapter { + protected View[] pages; + + public WelcomePagerAdapter(ViewPager p) { + super(); + pages = new View[]{ p.getChildAt(0), p.getChildAt(1), p.getChildAt(2) }; + for (View v : pages) { + p.removeView(v); + } + } + + @Override + public int getCount() { + return 3; + } + + @NonNull + @Override + public Object instantiateItem(@NonNull ViewGroup container, int position) { + container.addView(pages[position]); + return pages[position]; + } + + @Override + public boolean isViewFromObject(@NonNull View view, @NonNull Object o) { + return view == o; + } + + @Override + public void destroyItem(@NonNull ViewGroup container, int position, Object o) { + container.removeView(pages[position]); + } + } } diff --git a/src/cheogram/res/drawable/android_messages.xml b/src/cheogram/res/drawable/android_messages.xml new file mode 100644 index 0000000000000000000000000000000000000000..4b4fbff167fe31c9fbbca86eb84fb27365ee6dfc --- /dev/null +++ b/src/cheogram/res/drawable/android_messages.xml @@ -0,0 +1,26 @@ + + + + + + + + + + diff --git a/src/cheogram/res/drawable/irc.xml b/src/cheogram/res/drawable/irc.xml new file mode 100644 index 0000000000000000000000000000000000000000..e8b201e718a5e33802f91103f42c314ddd2f8465 --- /dev/null +++ b/src/cheogram/res/drawable/irc.xml @@ -0,0 +1,11 @@ + + + + diff --git a/src/cheogram/res/drawable/matrix.xml b/src/cheogram/res/drawable/matrix.xml new file mode 100644 index 0000000000000000000000000000000000000000..ded32a5861764e889416a2fba678c2dffd912a80 --- /dev/null +++ b/src/cheogram/res/drawable/matrix.xml @@ -0,0 +1,21 @@ + + + + + + + + + diff --git a/src/cheogram/res/font/archivoblack.ttf b/src/cheogram/res/font/archivoblack.ttf new file mode 100644 index 0000000000000000000000000000000000000000..16a1d8c38736e32e4170cc8333038cbd54eaed4b Binary files /dev/null and b/src/cheogram/res/font/archivoblack.ttf differ diff --git a/src/cheogram/res/font/poppins.ttf b/src/cheogram/res/font/poppins.ttf new file mode 100644 index 0000000000000000000000000000000000000000..be06e7fdca57d8fc360647d7b7a6a0c7b2da7e26 Binary files /dev/null and b/src/cheogram/res/font/poppins.ttf differ diff --git a/src/cheogram/res/layout/activity_welcome.xml b/src/cheogram/res/layout/activity_welcome.xml index c507da2523493363a1fb4d5ba26615881290d669..497fd0e353b4988e7d08a021a57a2b367ca0a1a6 100644 --- a/src/cheogram/res/layout/activity_welcome.xml +++ b/src/cheogram/res/layout/activity_welcome.xml @@ -1,5 +1,171 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -68,8 +236,10 @@ android:textSize="?TextSizeTitle" android:layout_width="match_parent" android:layout_height="wrap_content" + android:layout_marginBottom="10dp" android:layout_gravity="center" android:drawableLeft="@drawable/havejid" + android:fontFamily="@font/poppins" android:text="@string/i_already_have_an_account" android:textColor="?colorAccent" /> @@ -83,10 +253,61 @@ android:layout_height="wrap_content" android:layout_gravity="center" android:drawableLeft="@drawable/snikket" + android:fontFamily="@font/poppins" android:text="@string/i_am_snikket_user" android:textColor="?colorAccent" /> + + + + + + + + + +