package com.miris.ui.activity; import android.content.Intent; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.graphics.drawable.Drawable; import android.os.Build; import android.os.Bundle; import android.support.v4.view.PagerAdapter; import android.support.v4.view.ViewPager; import android.view.View; import android.view.ViewGroup; import android.view.Window; import android.view.WindowManager; import android.widget.Button; import android.widget.ImageView; import android.widget.RelativeLayout; import android.widget.TextView; import com.miris.R; import com.miris.net.SessionPreferences; import com.miris.ui.comp.CirclePageIndicator; import com.miris.ui.comp.ColorShades; /** * Created by Miris on 09.02.15. */ public class IntroActivity extends BaseActivity { private static final String SAVING_STATE_SLIDER_ANIMATION = "SliderAnimationSavingState"; private boolean isSliderAnimation = false; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Window window = getWindow(); window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS, WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); setContentView(R.layout.activity_intro_base); session = new SessionPreferences(getApplicationContext()); setshortcut(); Button btnLogin = (Button) findViewById(R.id.btn_login); btnLogin.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { session.setIntro(true); Intent intent = new Intent(getApplicationContext(), SignInActivity.class); intent.putExtra("intro", false); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); finish(); startActivity(intent); } }); ViewPager viewPager = (ViewPager) findViewById(R.id.pager); viewPager.setAdapter(new ViewPagerAdapter(R.array.icons, R.array.titles, R.array.hints)); CirclePageIndicator mIndicator = (CirclePageIndicator) findViewById(R.id.indicator); mIndicator.setViewPager(viewPager); viewPager.setPageTransformer(true, new CustomPageTransformer()); viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(final int position, float positionOffset, int positionOffsetPixels) { View landingBGView = findViewById(R.id.landing_backgrond); int colorBg[] = getResources().getIntArray(R.array.landing_bg); ColorShades shades = new ColorShades(); shades.setFromColor(colorBg[position % colorBg.length]) .setToColor(colorBg[(position + 1) % colorBg.length]) .setShade(positionOffset); landingBGView.setBackgroundColor(shades.generate()); } public void onPageSelected(int position) { } public void onPageScrollStateChanged(int state) { } }); } public class ViewPagerAdapter extends PagerAdapter { private int iconResId, titleArrayResId, hintArrayResId; public ViewPagerAdapter(int iconResId, int titleArrayResId, int hintArrayResId) { this.iconResId = iconResId; this.titleArrayResId = titleArrayResId; this.hintArrayResId = hintArrayResId; } @Override public int getCount() { return getResources().getIntArray(iconResId).length; } @Override public boolean isViewFromObject(View view, Object object) { return view == object; } @Override public Object instantiateItem(ViewGroup container, int position) { Drawable icon = getResources().obtainTypedArray(iconResId).getDrawable(position); String title = getResources().getStringArray(titleArrayResId)[position]; String hint = getResources().getStringArray(hintArrayResId)[position]; View itemView = getLayoutInflater().inflate(R.layout.viewpager_item, container, false); ImageView iconView = (ImageView) itemView.findViewById(R.id.landing_img_slide); TextView titleView = (TextView)itemView.findViewById(R.id.landing_txt_title); TextView hintView = (TextView)itemView.findViewById(R.id.landing_txt_hint); iconView.setImageDrawable(icon); titleView.setText(title); hintView.setText(hint); container.addView(itemView); return itemView; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((RelativeLayout) object); } } public class CustomPageTransformer implements ViewPager.PageTransformer { public void transformPage(View view, float position) { int pageWidth = view.getWidth(); View imageView = view.findViewById(R.id.landing_img_slide); View contentView = view.findViewById(R.id.landing_txt_hint); View txt_title = view.findViewById(R.id.landing_txt_title); if (position < -1) { } else if (position <= 0) { setTranslationX(view,pageWidth * -position); if (contentView != null) { // But swipe the contentView setTranslationX(contentView,pageWidth * position); setTranslationX(txt_title,pageWidth * position); setAlpha(contentView,1 + position); setAlpha(txt_title,1 + position); } if (imageView != null) { setAlpha(imageView,1 + position); } } else if (position <= 1) { setTranslationX(view, pageWidth * -position); if (contentView != null) { setTranslationX(contentView,pageWidth * position); setTranslationX(txt_title,pageWidth * position); setAlpha(contentView, 1 - position); setAlpha(txt_title, 1 - position); } if (imageView != null) { setAlpha(imageView,1 - position); } } } } private void setAlpha(View view, float alpha) { if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB && ! isSliderAnimation) { view.setAlpha(alpha); } } private void setTranslationX(View view, float translationX) { if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB && ! isSliderAnimation) { view.setTranslationX(translationX); } } public void onSaveInstanceState(Bundle outstate) { if(outstate != null) { outstate.putBoolean(SAVING_STATE_SLIDER_ANIMATION, isSliderAnimation); } super.onSaveInstanceState(outstate); } public void onRestoreInstanceState(Bundle inState) { if(inState != null) { isSliderAnimation = inState.getBoolean(SAVING_STATE_SLIDER_ANIMATION,false); } super.onRestoreInstanceState(inState); } private void setshortcut() { try { PackageManager pm = this.getPackageManager(); PackageInfo packageInfo = pm.getPackageInfo(getPackageName(), 0); int VERSION = packageInfo.versionCode; int old_Ver = session.getShortcut(); if (old_Ver < VERSION) { Intent shortcutIntent = new Intent(Intent.ACTION_MAIN); shortcutIntent.addCategory(Intent.CATEGORY_LAUNCHER); shortcutIntent.setClassName(this, "com.miris.ui.activity.SignInActivity"); shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED); Intent intent = new Intent(); intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent); intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, getResources().getString(R.string.app_name)); intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, Intent.ShortcutIconResource.fromContext(this, R.drawable.ic_launcher)); intent.putExtra("duplicate", false); intent.setAction("com.android.launcher.action.INSTALL_SHORTCUT"); sendBroadcast(intent); session.setShortcut(VERSION); } } catch (Exception e) { } } }