diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 382a4ae9..b1976fae 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -74,8 +74,7 @@ - + diff --git a/libs/support-v4-19.0.1.jar b/libs/support-v4-19.0.1.jar deleted file mode 100644 index f469c580..00000000 Binary files a/libs/support-v4-19.0.1.jar and /dev/null differ diff --git a/res/layout/activity_tutorial.xml b/res/layout/activity_tutorial.xml index b42cb8cd..fab4100a 100644 --- a/res/layout/activity_tutorial.xml +++ b/res/layout/activity_tutorial.xml @@ -3,22 +3,62 @@ android:id="@+id/containerLayout" android:layout_width="match_parent" android:layout_height="match_parent" - android:background="#FFF" + android:background="#555" android:clipToPadding="false" android:fitsSystemWindows="true" android:orientation="vertical"> - + + + + + + + + + diff --git a/res/layout/fragment_step.xml b/res/layout/fragment_step.xml deleted file mode 100644 index 3f7dd171..00000000 --- a/res/layout/fragment_step.xml +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - - - - - diff --git a/res/layout/main.xml b/res/layout/main.xml deleted file mode 100644 index 0da95fc5..00000000 --- a/res/layout/main.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - diff --git a/src/com/hololo/tutorial/library/Step.java b/src/com/hololo/tutorial/library/Step.java deleted file mode 100644 index 613dbe6b..00000000 --- a/src/com/hololo/tutorial/library/Step.java +++ /dev/null @@ -1,108 +0,0 @@ -package com.hololo.tutorial.library; - -import android.os.Parcel; -import android.os.Parcelable; - -public class Step implements Parcelable { - - private String title; - private String content; - private String summary; - private int drawable; - private int backgroundColor; - - public String getTitle() { - return title; - } - - public String getContent() { - return content; - } - - public int getDrawable() { - return drawable; - } - - public int getBackgroundColor() { - return backgroundColor; - } - - public String getSummary() { - return summary; - } - - public static class Builder { - - private Step step; - - public Builder() { - step = new Step(); - } - - public Step build() { - return step; - } - - public Builder setTitle(String title) { - step.title = title; - return this; - } - - public Builder setContent(String content) { - step.content = content; - return this; - } - - public Builder setSummary(String summary) { - step.summary = summary; - return this; - } - - public Builder setDrawable(int drawable) { - step.drawable = drawable; - return this; - } - - public Builder setBackgroundColor(int backgroundColor) { - step.backgroundColor = backgroundColor; - return this; - } - } - - @Override - public int describeContents() { - return 0; - } - - @Override - public void writeToParcel(Parcel dest, int flags) { - dest.writeString(this.title); - dest.writeString(this.content); - dest.writeString(this.summary); - dest.writeInt(this.drawable); - dest.writeInt(this.backgroundColor); - } - - public Step() { - } - - protected Step(Parcel in) { - this.title = in.readString(); - this.content = in.readString(); - this.summary = in.readString(); - this.drawable = in.readInt(); - this.backgroundColor = in.readInt(); - } - - public static final Parcelable.Creator CREATOR = new Parcelable.Creator() { - @Override - public Step createFromParcel(Parcel source) { - return new Step(source); - } - - @Override - public Step[] newArray(int size) { - return new Step[size]; - } - }; -} diff --git a/src/com/hololo/tutorial/library/StepFragment.java b/src/com/hololo/tutorial/library/StepFragment.java deleted file mode 100644 index 5aa3bcc6..00000000 --- a/src/com/hololo/tutorial/library/StepFragment.java +++ /dev/null @@ -1,65 +0,0 @@ -package com.hololo.tutorial.library; - -import android.os.Bundle; -import android.support.v4.app.Fragment; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.ImageView; -import android.widget.LinearLayout; -import android.widget.TextView; - -import in.celest.xash3d.hl.R; - -public class StepFragment extends Fragment { - - private TextView title; - private TextView content; - private TextView summary; - private ImageView imageView; - private LinearLayout layout; - - private Step step; - - static StepFragment createFragment(Step step) { - StepFragment fragment = new StepFragment(); - Bundle bundle = new Bundle(); - bundle.putParcelable("step", step); - fragment.setArguments(bundle); - return fragment; - } - - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - - step = getArguments().getParcelable("step"); - } - - @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { - View view = inflater.inflate(R.layout.fragment_step, container, false); - - initViews(view); - initData(); - - return view; - } - - private void initData() { - title.setText(step.getTitle()); - content.setText(step.getContent()); - summary.setText(step.getSummary()); - imageView.setImageResource(step.getDrawable()); - layout.setBackgroundColor(step.getBackgroundColor()); - } - - private void initViews(View view) { - title = (TextView) view.findViewById(R.id.title); - content = (TextView) view.findViewById(R.id.content); - summary = (TextView) view.findViewById(R.id.summary); - imageView = (ImageView) view.findViewById(R.id.image); - layout = (LinearLayout) view.findViewById(R.id.container); - } - -} diff --git a/src/com/hololo/tutorial/library/StepPagerAdapter.java b/src/com/hololo/tutorial/library/StepPagerAdapter.java deleted file mode 100644 index a5ea587a..00000000 --- a/src/com/hololo/tutorial/library/StepPagerAdapter.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.hololo.tutorial.library; - -import android.support.v4.app.Fragment; -import android.support.v4.app.FragmentManager; -import android.support.v4.app.FragmentPagerAdapter; - -import java.util.List; - -public class StepPagerAdapter extends FragmentPagerAdapter { - private List stepList; - - public StepPagerAdapter(FragmentManager fm, List stepList) { - super(fm); - this.stepList = stepList; - } - - @Override - public Fragment getItem(int position) { - return StepFragment.createFragment(stepList.get(position)); - } - - @Override - public int getCount() { - return stepList.size(); - } -} diff --git a/src/com/hololo/tutorial/library/TutorialActivity.java b/src/com/hololo/tutorial/library/TutorialActivity.java deleted file mode 100644 index d2f392a0..00000000 --- a/src/com/hololo/tutorial/library/TutorialActivity.java +++ /dev/null @@ -1,216 +0,0 @@ -package com.hololo.tutorial.library; - -import android.app.Activity; -import android.os.Build; -import android.os.Bundle; -import android.support.v4.view.ViewPager; -import android.support.v4.app.FragmentActivity; -// import android.support.v7.app.AppCompatActivity; -import android.view.View; -import android.view.Window; -import android.view.WindowManager; -import android.widget.Button; -import android.widget.FrameLayout; -import android.widget.ImageView; -import android.widget.LinearLayout; -import android.widget.RelativeLayout; - -import java.util.ArrayList; -import java.util.List; -import su.xash.fwgslib.FWGSLib; -import in.celest.xash3d.hl.R; - -public class TutorialActivity extends FragmentActivity /* AppCompatActivity */ implements View.OnClickListener { - - private List steps; - private StepPagerAdapter adapter; - - private ViewPager pager; - private Button next, prev; - private LinearLayout indicatorLayout; - private FrameLayout containerLayout; - private RelativeLayout buttonContainer; - - private int currentItem; - - private String prevText, nextText, finishText, cancelText; - - @Override - protected void onCreate(Bundle savedInstanceState) - { - if( FWGSLib.sdk >= 21 ) // material - setTheme(0x0103022e); // Theme_Material_NoActionBar - else - setTheme(0x01030006); // Theme_NoTitleBar - super.onCreate(savedInstanceState); - - setContentView(R.layout.activity_tutorial); - steps = new ArrayList(); - initTexts(); - initViews(); - initAdapter(); - } - - private void initTexts() { - prevText = getString(R.string.prev); - cancelText = getString(R.string.cancel); - finishText = getString(R.string.finish); - nextText = getString(R.string.next); - } - - private void initAdapter() { - adapter = new StepPagerAdapter(getSupportFragmentManager(), steps); - pager.setAdapter(adapter); - pager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { - @Override - public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { - - } - - @Override - public void onPageSelected(int position) { - currentItem = position; - controlPosition(position); - } - - @Override - public void onPageScrollStateChanged(int state) { - - } - }); - } - - private void changeStatusBarColor(int backgroundColor) { - // Window window = getWindow(); - // window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); - // window.addFlags(0x80000000) //WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS - // window.setStatusBarColor(backgroundColor); - } - - private void controlPosition(int position) { - notifyIndicator(); - if (position == steps.size() - 1) { - next.setText(finishText); - prev.setText(prevText); - } else if (position == 0) { - prev.setText(cancelText); - next.setText(nextText); - } else { - prev.setText(prevText); - next.setText(nextText); - } - - containerLayout.setBackgroundColor(steps.get(position).getBackgroundColor()); - buttonContainer.setBackgroundColor(steps.get(position).getBackgroundColor()); - } - - private void initViews() { - currentItem = 0; - - pager = (ViewPager) findViewById(R.id.viewPager); - next = (Button) findViewById(R.id.next); - prev = (Button) findViewById(R.id.prev); - indicatorLayout = (LinearLayout) findViewById(R.id.indicatorLayout); - containerLayout = (FrameLayout) findViewById(R.id.containerLayout); - buttonContainer = (RelativeLayout) findViewById(R.id.buttonContainer); - - next.setOnClickListener(this); - prev.setOnClickListener(this); - } - - public void addFragment(Step step) { - steps.add(step); - adapter.notifyDataSetChanged(); - notifyIndicator(); - controlPosition(currentItem); - } - - public void addFragment(Step step, int position) { - steps.add(position, step); - adapter.notifyDataSetChanged(); - notifyIndicator(); - } - - public void notifyIndicator() { - if (indicatorLayout.getChildCount() > 0) - indicatorLayout.removeAllViews(); - - for (int i = 0; i < steps.size(); i++) { - ImageView imageView = new ImageView(this); - imageView.setPadding(8, 8, 8, 8); - int drawable = R.drawable.circle_black; - if (i == currentItem) - drawable = R.drawable.circle_white; - - imageView.setImageResource(drawable); - - final int finalI = i; - imageView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - changeFragment(finalI); - } - }); - - indicatorLayout.addView(imageView); - } - - } - - @Override - public void onBackPressed() { - if (currentItem == 0) { - super.onBackPressed(); - } else { - changeFragment(false); - } - } - - @Override - public void onClick(View v) { - if (v.getId() == R.id.next) { - changeFragment(true); - } else if (v.getId() == R.id.prev) { - changeFragment(false); - } - } - - private void changeFragment(int position) { - pager.setCurrentItem(position, true); - } - - private void changeFragment(boolean isNext) { - int item = currentItem; - if (isNext) { - item++; - } else { - item--; - } - - if (item < 0 || item == steps.size()) { - finishTutorial(); - } else - pager.setCurrentItem(item, true); - } - - public void finishTutorial() { - finish(); - } - - public void setPrevText(String text) { - prevText = text; - } - - public void setNextText(String text) { - nextText = text; - } - - public void setFinishText(String text) { - finishText = text; - } - - public void setCancelText(String text) { - cancelText = text; - } - -} diff --git a/src/in/celest/xash3d/XashTutorialActivity.java b/src/in/celest/xash3d/XashTutorialActivity.java index 8d18b210..e9c732d5 100644 --- a/src/in/celest/xash3d/XashTutorialActivity.java +++ b/src/in/celest/xash3d/XashTutorialActivity.java @@ -1,60 +1,208 @@ package in.celest.xash3d; -import com.hololo.tutorial.library.TutorialActivity; -import com.hololo.tutorial.library.Step; -import android.app.Activity; -import android.os.Build; -import android.os.Bundle; -import android.support.v4.view.ViewPager; -import android.support.v4.app.FragmentActivity; -// import android.support.v7.app.AppCompatActivity; -import android.view.View; -import android.view.Window; -import android.view.WindowManager; -import android.widget.Button; -import android.widget.FrameLayout; -import android.widget.ImageView; -import android.widget.LinearLayout; -import android.widget.RelativeLayout; -import android.graphics.Color; +import android.app.*; +import android.os.*; +import android.view.*; +import android.widget.*; +import in.celest.xash3d.hl.*; +import java.util.*; +import su.xash.fwgslib.*; -import java.util.ArrayList; -import java.util.List; - -import in.celest.xash3d.hl.R; - -public class XashTutorialActivity extends TutorialActivity +public class XashTutorialActivity extends Activity implements View.OnClickListener { + private Button next, prev; + private LinearLayout indicatorLayout; + private FrameLayout containerLayout; + private RelativeLayout buttonContainer; + private TextView title; + private TextView text; + private ImageView drawable; + + private int currentItem; + + private int prevText, nextText, finishText, cancelText; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + if( FWGSLib.sdk >= 21 ) // material + setTheme(0x0103022e); // Theme_Material_NoActionBar + else + setTheme(0x01030006); // Theme_NoTitleBar + setContentView(R.layout.activity_tutorial); + initTexts(); + initViews(); + changeFragment(0); + + } + - addFragment(new Step.Builder().setTitle(getString(R.string.page_title0)) - .setContent(getString(R.string.page_content0)) - .setBackgroundColor(Color.parseColor("#555555")) // int background color - .setDrawable(R.drawable.page0) // int top drawable - .build()); + private void initTexts() { + prevText = R.string.prev; + cancelText = R.string.cancel; + finishText = R.string.finish; + nextText = R.string.next; + } - addFragment(new Step.Builder().setTitle(getString(R.string.page_title1)) - .setContent(getString(R.string.page_content1)) - .setBackgroundColor(Color.parseColor("#555555")) // int background color - .setDrawable(R.drawable.page1_en) // int top drawable - .build()); - addFragment(new Step.Builder().setTitle(getString(R.string.page_title2)) - .setContent(getString(R.string.page_content2)) - .setBackgroundColor(Color.parseColor("#555555")) // int background color - .setDrawable(R.drawable.page2_en) // int top drawable - .build()); - addFragment(new Step.Builder().setTitle(getString(R.string.page_title3)) - .setContent(getString(R.string.page_content3)) - .setBackgroundColor(Color.parseColor("#555555")) // int background color - .setDrawable(R.drawable.page3_en) // int top drawable - .build()); - addFragment(new Step.Builder().setTitle(getString(R.string.page_title4)) - .setContent(getString(R.string.page_content4)) - .setBackgroundColor(Color.parseColor("#555555")) // int background color - .setDrawable(R.drawable.page4_en) - .build()); + private void initAdapter() { + /*adapter = new StepPagerAdapter(getSupportFragmentManager(), steps); + pager.setAdapter(adapter); + pager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { + @Override + public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { + + } + + @Override + public void onPageSelected(int position) { + currentItem = position; + controlPosition(position); + } + + @Override + public void onPageScrollStateChanged(int state) { + + } + });*/ + } + + private void changeStatusBarColor(int backgroundColor) { + // Window window = getWindow(); + // window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); + // window.addFlags(0x80000000) //WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS + // window.setStatusBarColor(backgroundColor); + } + + private void controlPosition( boolean last) { + notifyIndicator(); + if (last) { + next.setText(finishText); + prev.setText(prevText); + } else if ( currentItem == 0) { + prev.setText(cancelText); + next.setText(nextText); + } else { + prev.setText(prevText); + next.setText(nextText); + } + + //containerLayout.setBackgroundColor(steps.get(position).getBackgroundColor()); + //buttonContainer.setBackgroundColor(steps.get(position).getBackgroundColor()); + } + + private void initViews() { + currentItem = 0; + + // pager = (ViewPager) findViewById(R.id.viewPager); + next = (Button) findViewById(R.id.next); + prev = (Button) findViewById(R.id.prev); + indicatorLayout = (LinearLayout) findViewById(R.id.indicatorLayout); + containerLayout = (FrameLayout) findViewById(R.id.containerLayout); + buttonContainer = (RelativeLayout) findViewById(R.id.buttonContainer); + title = (TextView) findViewById(R.id.title); + text = (TextView) findViewById(R.id.content); + drawable = (ImageView) findViewById(R.id.image); + + next.setOnClickListener(this); + prev.setOnClickListener(this); + } + + + public void notifyIndicator() { + if (indicatorLayout.getChildCount() > 0) + indicatorLayout.removeAllViews(); + + for (int i = 0; i < 5; i++) { + ImageView imageView = new ImageView(this); + imageView.setPadding(8, 8, 8, 8); + int drawable = R.drawable.circle_black; + if (i == currentItem) + drawable = R.drawable.circle_white; + + imageView.setImageResource(drawable); + + final int finalI = i; + imageView.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + changeFragment(finalI); + } + }); + + indicatorLayout.addView(imageView); + } } + + @Override + public void onBackPressed() { + if (currentItem == 0) { + super.onBackPressed(); + } else { + changeFragment(false); + } + } + + @Override + public void onClick(View v) { + if (v.getId() == R.id.next) { + changeFragment(true); + } else if (v.getId() == R.id.prev) { + changeFragment(false); + } + } + + private void changeFragment(int position) { + currentItem = position; + updateStep(); + } + + private void changeFragment(boolean isNext) { + if (isNext) { + currentItem++; + } else { + currentItem--; + } + updateStep(); + } + + + void updateStep() + { + int titleres = getResources().getIdentifier("page_title" + String.valueOf(currentItem), "string", getPackageName()); + + if( titleres == 0 ) + { + finish(); + return; + } + int titlenext = getResources().getIdentifier("page_title" + String.valueOf(currentItem+1), "string", getPackageName()); + int contentres = getResources().getIdentifier("page_content" + String.valueOf(currentItem), "string", getPackageName()); + int drawableres = getResources().getIdentifier("page" + String.valueOf(currentItem), "drawable", getPackageName()); + if( drawableres == 0) + drawableres = getResources().getIdentifier("page" + String.valueOf(currentItem) + "_" + Locale.getDefault().getLanguage(), "drawable", getPackageName()); + if( drawableres == 0 ) + drawableres = getResources().getIdentifier("page" + String.valueOf(currentItem) + "_en", "drawable", getPackageName()); + + title.setText(titleres); + text.setText(contentres); + drawable.setImageResource(drawableres); + controlPosition(titlenext == 0); + } + + public void setPrevText(int text) { + prevText = text; + } + + public void setNextText(int text) { + nextText = text; + } + + public void setFinishText(int text) { + finishText = text; + } + + public void setCancelText(int text) { + cancelText = text; + } }