package me.ccrama.redditslide.Activities; import android.content.Intent; import android.graphics.Color; import android.os.Build; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentStatePagerAdapter; import android.support.v4.content.ContextCompat; import android.support.v4.view.PagerAdapter; import android.support.v4.view.ViewPager; import android.support.v7.app.AppCompatActivity; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.Window; import android.view.WindowManager; import android.widget.ImageView; import android.widget.TextView; import com.afollestad.materialdialogs.AlertDialogWrapper; import me.ccrama.redditslide.ColorPreferences; import me.ccrama.redditslide.R; import me.ccrama.redditslide.Reddit; import me.ccrama.redditslide.Visuals.FontPreferences; import me.ccrama.redditslide.Visuals.Palette; import uz.shift.colorpicker.LineColorPicker; import uz.shift.colorpicker.OnColorChangedListener; /** * Created by ccrama on 3/5/2015. */ public class Tutorial extends AppCompatActivity { /** * The number of pages (wizard steps) to show in this demo. */ private static final int NUM_PAGES = 2; /** * The pager widget, which handles animation and allows swiping horizontally to access previous * and next wizard steps. */ private ViewPager mPager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getTheme().applyStyle(new FontPreferences(this).getCommentFontStyle().getResId(), true); getTheme().applyStyle(new FontPreferences(this).getPostFontStyle().getResId(), true); getTheme().applyStyle(new ColorPreferences(this).getFontStyle().getBaseId(), true); setContentView(R.layout.activity_tutorial); // Instantiate a ViewPager and a PagerAdapter. mPager = (ViewPager) findViewById(R.id.vp); /* The pager adapter, which provides the pages to the view pager widget. */ PagerAdapter mPagerAdapter = new ScreenSlidePagerAdapter(getSupportFragmentManager()); mPager.setAdapter(mPagerAdapter); if(getIntent().hasExtra("page")){ mPager.setCurrentItem(1); } if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { Window window = this.getWindow(); window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); window.setStatusBarColor(Palette.getDarkerColor(Color.parseColor("#FF5252"))); } } @Override public void onBackPressed() { if (mPager.getCurrentItem() == 0) { // If the user is currently looking at the first step, allow the system to handle the // Back button. This calls finish() on this activity and pops the back stack. } else { // Otherwise, select the previous step. mPager.setCurrentItem(mPager.getCurrentItem() - 1); } } public static class Welcome extends Fragment { @Override public void onResume() { super.onResume(); } @Override public View onCreateView(LayoutInflater inflater, final ViewGroup container, Bundle savedInstanceState) { View v = inflater.inflate(R.layout.fragment_welcome, container, false); v.findViewById(R.id.next).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ((Tutorial)getActivity()).mPager.setCurrentItem(1); } }); return v; } } int back; public static class Personalize extends Fragment { @Override public void onResume() { super.onResume(); } @Override public View onCreateView(LayoutInflater inflater, final ViewGroup container, Bundle savedInstanceState) { ((Tutorial)getActivity()).back = new ColorPreferences(getContext()).getFontStyle().getThemeType(); View v = inflater.inflate(R.layout.fragment_basicinfo, container, false); final View header = v.findViewById(R.id.header); ((ImageView)v.findViewById(R.id.tint_accent)).setColorFilter(getActivity().getResources().getColor(new ColorPreferences(getContext()).getFontStyle().getColor())); ((ImageView) v.findViewById(R.id.tint_primary)).setColorFilter(Palette.getDefaultColor()); header.setBackgroundColor(Palette.getDefaultColor()); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { Window window = getActivity().getWindow(); window.setStatusBarColor(Palette.getDarkerColor(Palette.getDefaultColor())); } v.findViewById(R.id.primary).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { LayoutInflater inflater = getActivity().getLayoutInflater(); final View dialoglayout = inflater.inflate(R.layout.choosemain, null); AlertDialogWrapper.Builder builder = new AlertDialogWrapper.Builder(getContext()); final TextView title = (TextView) dialoglayout.findViewById(R.id.title); title.setBackgroundColor(Palette.getDefaultColor()); LineColorPicker colorPicker = (LineColorPicker) dialoglayout.findViewById(R.id.picker); final LineColorPicker colorPicker2 = (LineColorPicker) dialoglayout.findViewById(R.id.picker2); colorPicker.setColors(ColorPreferences.getBaseColors(getContext())); int currentColor = Palette.getDefaultColor(); for (int i : colorPicker.getColors()) { for (int i2 : ColorPreferences.getColors(getContext(), i)) { if (i2 == currentColor) { colorPicker.setSelectedColor(i); colorPicker2.setColors(ColorPreferences.getColors(getContext(), i)); colorPicker2.setSelectedColor(i2); break; } } } colorPicker.setOnColorChangedListener(new OnColorChangedListener() { @Override public void onColorChanged(int c) { colorPicker2.setColors(ColorPreferences.getColors(getContext(), c)); colorPicker2.setSelectedColor(c); } }); colorPicker2.setOnColorChangedListener(new OnColorChangedListener() { @Override public void onColorChanged(int i) { title.setBackgroundColor(colorPicker2.getColor()); header.setBackgroundColor(colorPicker2.getColor()); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { Window window = getActivity().getWindow(); window.setStatusBarColor(Palette.getDarkerColor(colorPicker2.getColor())); } } }); dialoglayout.findViewById(R.id.ok).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Reddit.colors.edit().putInt("DEFAULTCOLOR", colorPicker2.getColor()).apply(); Intent i = new Intent( getActivity(), Tutorial.class); i.putExtra("page", 1); i.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); startActivity(i); getActivity().overridePendingTransition(0, 0); getActivity().finish(); getActivity().overridePendingTransition(0, 0); } }); builder.setView(dialoglayout); builder.show(); } }); v.findViewById(R.id.secondary).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { LayoutInflater inflater = getActivity().getLayoutInflater(); final View dialoglayout = inflater.inflate(R.layout.chooseaccent, null); AlertDialogWrapper.Builder builder = new AlertDialogWrapper.Builder(getActivity()); final TextView title = (TextView) dialoglayout.findViewById(R.id.title); title.setBackgroundColor(Palette.getDefaultColor()); final LineColorPicker colorPicker = (LineColorPicker) dialoglayout.findViewById(R.id.picker3); int[] arrs = new int[ColorPreferences.Theme.values().length / 7]; int i = 0; for (ColorPreferences.Theme type : ColorPreferences.Theme.values()) { if (type.getThemeType() == 0) { arrs[i] = ContextCompat.getColor(getActivity(), type.getColor()); i++; } } colorPicker.setColors(arrs); colorPicker.setSelectedColor(new ColorPreferences(getActivity()).getColor("")); dialoglayout.findViewById(R.id.ok).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { int color = colorPicker.getColor(); ColorPreferences.Theme t = null; for (ColorPreferences.Theme type : ColorPreferences.Theme.values()) { if (ContextCompat.getColor(getActivity(), type.getColor()) == color && ((Tutorial)getActivity()).back == type.getThemeType()) { t = type; break; } } new ColorPreferences(getActivity()).setFontStyle(t); Intent i = new Intent(getActivity(), Tutorial.class); i.putExtra("page", 1); i.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); startActivity(i); getActivity().overridePendingTransition(0, 0); getActivity().finish(); getActivity().overridePendingTransition(0, 0); } }); builder.setView(dialoglayout); builder.show(); } }); v.findViewById(R.id.base).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { LayoutInflater inflater = getActivity().getLayoutInflater(); final View dialoglayout = inflater.inflate(R.layout.choosethemesmall, null); AlertDialogWrapper.Builder builder = new AlertDialogWrapper.Builder(getActivity()); final TextView title = (TextView) dialoglayout.findViewById(R.id.title); title.setBackgroundColor(Palette.getDefaultColor()); dialoglayout.findViewById(R.id.black).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String[] names = new ColorPreferences(getActivity()).getFontStyle().getTitle().split("_"); String name = names[names.length - 1]; final String newName = name.replace("(", ""); for (ColorPreferences.Theme theme : ColorPreferences.Theme.values()) { if (theme.toString().contains(newName) && theme.getThemeType() == 2) { ((Tutorial)getActivity()).back = theme.getThemeType(); new ColorPreferences(getActivity()).setFontStyle(theme); Intent i = new Intent(getActivity(), Tutorial.class); i.putExtra("page", 1); i.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); startActivity(i); getActivity().overridePendingTransition(0, 0); getActivity().finish(); getActivity().overridePendingTransition(0, 0); break; } } } }); dialoglayout.findViewById(R.id.light).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String[] names = new ColorPreferences(getActivity()).getFontStyle().getTitle().split("_"); String name = names[names.length - 1]; final String newName = name.replace("(", ""); for (ColorPreferences.Theme theme : ColorPreferences.Theme.values()) { if (theme.toString().contains(newName) && theme.getThemeType() == 1) { new ColorPreferences(getActivity()).setFontStyle(theme); ((Tutorial)getActivity()).back = theme.getThemeType(); Intent i = new Intent(getActivity(), Tutorial.class); i.putExtra("page", 1); i.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); startActivity(i); getActivity().overridePendingTransition(0, 0); getActivity().finish(); getActivity().overridePendingTransition(0, 0); break; } } } }); dialoglayout.findViewById(R.id.dark).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String[] names = new ColorPreferences(getActivity()).getFontStyle().getTitle().split("_"); String name = names[names.length - 1]; final String newName = name.replace("(", ""); for (ColorPreferences.Theme theme : ColorPreferences.Theme.values()) { if (theme.toString().contains(newName) && theme.getThemeType() == 0) { new ColorPreferences(getActivity()).setFontStyle(theme); ((Tutorial)getActivity()).back = theme.getThemeType(); Intent i = new Intent(getActivity(), Tutorial.class); i.putExtra("page", 1); i.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); startActivity(i); getActivity().overridePendingTransition(0, 0); getActivity().finish(); getActivity().overridePendingTransition(0, 0); break; } } } }); dialoglayout.findViewById(R.id.blacklighter).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String[] names = new ColorPreferences(getActivity()).getFontStyle().getTitle().split("_"); String name = names[names.length - 1]; final String newName = name.replace("(", ""); for (ColorPreferences.Theme theme : ColorPreferences.Theme.values()) { if (theme.toString().contains(newName) && theme.getThemeType() == 4) { new ColorPreferences(getActivity()).setFontStyle(theme); ((Tutorial)getActivity()).back = theme.getThemeType(); Intent i = new Intent(getActivity(), Tutorial.class); i.putExtra("page", 1); i.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); startActivity(i); getActivity().overridePendingTransition(0, 0); getActivity().finish(); getActivity().overridePendingTransition(0, 0); break; } } } }); dialoglayout.findViewById(R.id.pixel).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String[] names = new ColorPreferences(getActivity()).getFontStyle().getTitle().split("_"); String name = names[names.length - 1]; final String newName = name.replace("(", ""); for (ColorPreferences.Theme theme : ColorPreferences.Theme.values()) { if (theme.toString().contains(newName) && theme.getThemeType() == 7) { new ColorPreferences(getActivity()).setFontStyle(theme); ((Tutorial)getActivity()).back = theme.getThemeType(); Intent i = new Intent(getActivity(), Tutorial.class); i.putExtra("page", 1); i.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); startActivity(i); getActivity().overridePendingTransition(0, 0); getActivity().finish(); getActivity().overridePendingTransition(0, 0); break; } } } }); dialoglayout.findViewById(R.id.sepia).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String[] names = new ColorPreferences(getActivity()).getFontStyle().getTitle().split("_"); String name = names[names.length - 1]; final String newName = name.replace("(", ""); for (ColorPreferences.Theme theme : ColorPreferences.Theme.values()) { if (theme.toString().contains(newName) && theme.getThemeType() == 5) { new ColorPreferences(getActivity()).setFontStyle(theme); ((Tutorial)getActivity()).back = theme.getThemeType(); Intent i = new Intent(getActivity(), Tutorial.class); i.putExtra("page", 1); i.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); startActivity(i); getActivity().overridePendingTransition(0, 0); getActivity().finish(); getActivity().overridePendingTransition(0, 0); break; } } } }); dialoglayout.findViewById(R.id.pixel).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String[] names = new ColorPreferences(getActivity()).getFontStyle().getTitle().split("_"); String name = names[names.length - 1]; final String newName = name.replace("(", ""); for (ColorPreferences.Theme theme : ColorPreferences.Theme.values()) { if (theme.toString().contains(newName) && theme.getThemeType() == 7) { new ColorPreferences(getActivity()).setFontStyle(theme); ((Tutorial)getActivity()).back = theme.getThemeType(); Intent i = new Intent(getActivity(), Tutorial.class); i.putExtra("page", 1); i.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); startActivity(i); getActivity().overridePendingTransition(0, 0); getActivity().finish(); getActivity().overridePendingTransition(0, 0); break; } } } }); dialoglayout.findViewById(R.id.red).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String[] names = new ColorPreferences(getActivity()).getFontStyle().getTitle().split("_"); String name = names[names.length - 1]; final String newName = name.replace("(", ""); for (ColorPreferences.Theme theme : ColorPreferences.Theme.values()) { if (theme.toString().contains(newName) && theme.getThemeType() == 6) { new ColorPreferences(getActivity()).setFontStyle(theme); ((Tutorial)getActivity()).back = theme.getThemeType(); Intent i = new Intent(getActivity(), Tutorial.class); i.putExtra("page", 1); i.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); startActivity(i); getActivity().overridePendingTransition(0, 0); getActivity().finish(); getActivity().overridePendingTransition(0, 0); break; } } } }); dialoglayout.findViewById(R.id.blue).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String[] names = new ColorPreferences(getActivity()).getFontStyle().getTitle().split("_"); String name = names[names.length - 1]; final String newName = name.replace("(", ""); for (ColorPreferences.Theme theme : ColorPreferences.Theme.values()) { if (theme.toString().contains(newName) && theme.getThemeType() == 3) { new ColorPreferences(getActivity()).setFontStyle(theme); ((Tutorial)getActivity()).back = theme.getThemeType(); Intent i = new Intent(getActivity(), Tutorial.class); i.putExtra("page", 1); i.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); startActivity(i); getActivity().overridePendingTransition(0, 0); getActivity().finish(); getActivity().overridePendingTransition(0, 0); break; } } } }); builder.setView(dialoglayout); builder.show(); } }); v.findViewById(R.id.next).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Reddit.colors.edit().putString("Tutorial", "S").commit(); Reddit.appRestart.edit().putString("startScreen", "a").apply(); Reddit.forceRestart(getActivity()); } }); return v; } } /** * A simple pager adapter that represents 5 ScreenSlidePageFragment objects, in * sequence. */ private class ScreenSlidePagerAdapter extends FragmentStatePagerAdapter { public ScreenSlidePagerAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int position) { if (position == 0) { return new Welcome(); } else { return new Personalize(); } } @Override public int getCount() { return NUM_PAGES; } } }