Selaa lähdekoodia

Show done button when only single news is available

Bartosz Przybylski 9 vuotta sitten
vanhempi
commit
3a9b6833a6
1 muutettua tiedostoa jossa 195 lisäystä ja 194 poistoa
  1. 195 194
      src/com/owncloud/android/ui/activity/WhatsNewActivity.java

+ 195 - 194
src/com/owncloud/android/ui/activity/WhatsNewActivity.java

@@ -53,199 +53,200 @@ import com.owncloud.android.ui.whatsnew.ProgressIndicator;
  */
 public class WhatsNewActivity extends Activity {
 
-	private static final String KEY_LAST_SEEN_VERSION_CODE = "lastSeenVersionCode";
-
-	private ImageButton mForwardFinishButton;
-	private ProgressIndicator mProgress;
-	private LinearLayout mContentPanel;
-
-	private int mCurrentStep;
-
-	@Override
-	protected void onCreate(Bundle savedInstanceState) {
-		super.onCreate(savedInstanceState);
-		setContentView(R.layout.whats_new_activity);
-
-		mCurrentStep = 0;
-		mProgress = (ProgressIndicator) findViewById(R.id.progressIndicator);
-
-		final int listLength = FeatureList.getFiltered(getLastSeenVersionCode(), isFirstRun()).length;
-
-		mProgress.setNumberOfSteps(listLength);
-
-		mForwardFinishButton = (ImageButton) findViewById(R.id.forward);
-		mForwardFinishButton.setOnClickListener(new View.OnClickListener() {
-			@Override
-			public void onClick(View view) {
-				if (mProgress.hasNextStep()) {
-					mProgress.animateToNextStep();
-					mContentPanel.animate().x(-mContentPanel.getChildAt(++mCurrentStep).getLeft());
-				} else {
-					onFinish();
-					finish();
-				}
-				updateNextButtonIfNeeded();
-			}
-		});
-		Button skipButton = (Button) findViewById(R.id.skip);
-		skipButton.setOnClickListener(new View.OnClickListener() {
-			@Override
-			public void onClick(View view) {
-				onFinish();
-				finish();
-			}
-		});
-
-		TextView tv = (TextView)findViewById(R.id.welcomeText);
-		tv.setText(isFirstRun() ? R.string.welcome_to_oc_title : R.string.whats_new_title);
-
-
-		mContentPanel = (LinearLayout)findViewById(R.id.contentPanel);
-		LinearLayout.LayoutParams ll2 = (LinearLayout.LayoutParams) mContentPanel.getLayoutParams();
-		ll2.width = getScreenWidth()*listLength;
-		mContentPanel.setLayoutParams(ll2);
-
-		fillContentPanelWithFeatureData();
-	}
-
-	private void fillContentPanelWithFeatureData() {
-		LayoutInflater inflater = (LayoutInflater)getSystemService(LAYOUT_INFLATER_SERVICE);
-
-		for (FeatureItem item : FeatureList.getFiltered(getLastSeenVersionCode(), isFirstRun())) {
-			LinearLayout newElement = (LinearLayout)inflater.inflate(R.layout.whats_new_element, null);
-
-			LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(getScreenWidth(), ViewGroup.LayoutParams.MATCH_PARENT);
-			newElement.setLayoutParams(params);
-
-			mContentPanel.addView(newElement);
-			ImageView iv = (ImageView)newElement.findViewById(R.id.whatsNewImage);
-			if (item.shouldShowImage())
-				iv.setImageResource(item.getImage());
-
-			TextView tv2 = (TextView)newElement.findViewById(R.id.whatsNewTitle);
-			if (item.shouldShowTitleText())
-				tv2.setText(item.getTitleText());
-
-			tv2 = (TextView)newElement.findViewById(R.id.whatsNewText);
-			if (item.shouldShowContentText())
-				tv2.setText(item.getContentText());
-		}
-		mContentPanel.setOnTouchListener(new OnSwipeTouchListener(getApplicationContext()) {
-
-			@Override
-			public void onSwipeLeft() {
-				handleMoveToNext();
-			}
-
-			@Override
-			public void onSwipeRight() {
-				handleMoveToPrev();
-			}
-		});
-	}
-
-	@Override
-	public void onBackPressed() {
-		onFinish();
-		super.onBackPressed();
-	}
-
-
-	private void updateNextButtonIfNeeded() {
-		if (!mProgress.hasNextStep())
-			mForwardFinishButton.setImageResource(R.drawable.ic_ok);
-		else
-			mForwardFinishButton.setImageResource(R.drawable.ic_menu_forward);
-	}
-
-	private void handleMoveToNext() {
-		if (mProgress.hasNextStep()) {
-			mProgress.animateToNextStep();
-			mContentPanel.animate().x(-mContentPanel.getChildAt(++mCurrentStep).getLeft());
-			updateNextButtonIfNeeded();
-		}
-	}
-
-	private void handleMoveToPrev() {
-		if (mProgress.hasPrevStep()) {
-			mProgress.animateToPrevStep();
-			mContentPanel.animate().x(-mContentPanel.getChildAt(--mCurrentStep).getLeft());
-			updateNextButtonIfNeeded();
-		}
-	}
-
-	private void onFinish() {
-		SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(this);
-		SharedPreferences.Editor editor = pref.edit();
-		editor.putInt(KEY_LAST_SEEN_VERSION_CODE, BuildConfig.VERSION_CODE);
-		editor.apply();
-	}
-
-	private int getScreenWidth() {
-		DisplayMetrics dm = new DisplayMetrics();
-		getWindowManager().getDefaultDisplay().getMetrics(dm);
-		return dm.widthPixels;
-	}
-
-	static private int getLastSeenVersionCode() {
-		SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(MainApp.getAppContext());
-		return pref.getInt(KEY_LAST_SEEN_VERSION_CODE, 0);
-	}
-
-	static private boolean isFirstRun() {
-		if (getLastSeenVersionCode() != 0)
-			return false;
-		return AccountUtils.getCurrentOwnCloudAccount(MainApp.getAppContext()) == null;
-
-	}
-
-	static public void runIfNeeded(Context context) {
-		if (context instanceof WhatsNewActivity)
-			return;
-
-		if (FeatureList.getFiltered(getLastSeenVersionCode(), isFirstRun()).length > 0)
-			context.startActivity(new Intent(context, WhatsNewActivity.class));
-	}
-
-
-	public abstract class OnSwipeTouchListener implements View.OnTouchListener {
-
-		private final GestureDetector gestureDetector;
-
-		public OnSwipeTouchListener(Context context) {
-			gestureDetector = new GestureDetector(context, new GestureListener());
-		}
-
-		abstract public void onSwipeLeft();
-
-		abstract public void onSwipeRight();
-
-		public boolean onTouch(View v, MotionEvent event) {
-			return gestureDetector.onTouchEvent(event);
-		}
-
-		private final class GestureListener extends GestureDetector.SimpleOnGestureListener {
-
-			private static final int SWIPE_DISTANCE_THRESHOLD = 100;
-			private static final int SWIPE_VELOCITY_THRESHOLD = 100;
-
-			@Override
-			public boolean onDown(MotionEvent e) { return true; }
-
-			@Override
-			public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
-				final float distanceX = e2.getX() - e1.getX();
-				final float distanceY = e2.getY() - e1.getY();
-				if (Math.abs(distanceX) > Math.abs(distanceY) && Math.abs(distanceX) > SWIPE_DISTANCE_THRESHOLD && Math.abs(velocityX) > SWIPE_VELOCITY_THRESHOLD) {
-					if (distanceX > 0)
-						onSwipeRight();
-					else
-						onSwipeLeft();
-					return true;
-				}
-				return false;
-			}
-		}
-	}
+    private static final String KEY_LAST_SEEN_VERSION_CODE = "lastSeenVersionCode";
+
+    private ImageButton mForwardFinishButton;
+    private ProgressIndicator mProgress;
+    private LinearLayout mContentPanel;
+
+    private int mCurrentStep;
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.whats_new_activity);
+
+        mCurrentStep = 0;
+        mProgress = (ProgressIndicator) findViewById(R.id.progressIndicator);
+
+        final int listLength = FeatureList.getFiltered(getLastSeenVersionCode(), isFirstRun()).length;
+
+        mProgress.setNumberOfSteps(listLength);
+
+        mForwardFinishButton = (ImageButton) findViewById(R.id.forward);
+        mForwardFinishButton.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                if (mProgress.hasNextStep()) {
+                    mProgress.animateToNextStep();
+                    mContentPanel.animate().x(-mContentPanel.getChildAt(++mCurrentStep).getLeft());
+                } else {
+                    onFinish();
+                    finish();
+                }
+                updateNextButtonIfNeeded();
+            }
+        });
+        Button skipButton = (Button) findViewById(R.id.skip);
+        skipButton.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                onFinish();
+                finish();
+            }
+        });
+
+        TextView tv = (TextView)findViewById(R.id.welcomeText);
+        tv.setText(isFirstRun() ? R.string.welcome_to_oc_title : R.string.whats_new_title);
+
+
+        mContentPanel = (LinearLayout)findViewById(R.id.contentPanel);
+        LinearLayout.LayoutParams ll2 = (LinearLayout.LayoutParams) mContentPanel.getLayoutParams();
+        ll2.width = getScreenWidth()*listLength;
+        mContentPanel.setLayoutParams(ll2);
+
+        fillContentPanelWithFeatureData();
+        updateNextButtonIfNeeded();
+    }
+
+    private void fillContentPanelWithFeatureData() {
+        LayoutInflater inflater = (LayoutInflater)getSystemService(LAYOUT_INFLATER_SERVICE);
+
+        for (FeatureItem item : FeatureList.getFiltered(getLastSeenVersionCode(), isFirstRun())) {
+            LinearLayout newElement = (LinearLayout)inflater.inflate(R.layout.whats_new_element, null);
+
+            LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(getScreenWidth(), ViewGroup.LayoutParams.MATCH_PARENT);
+            newElement.setLayoutParams(params);
+
+            mContentPanel.addView(newElement);
+            ImageView iv = (ImageView)newElement.findViewById(R.id.whatsNewImage);
+            if (item.shouldShowImage())
+                iv.setImageResource(item.getImage());
+
+            TextView tv2 = (TextView)newElement.findViewById(R.id.whatsNewTitle);
+            if (item.shouldShowTitleText())
+                tv2.setText(item.getTitleText());
+
+            tv2 = (TextView)newElement.findViewById(R.id.whatsNewText);
+            if (item.shouldShowContentText())
+                tv2.setText(item.getContentText());
+        }
+        mContentPanel.setOnTouchListener(new OnSwipeTouchListener(getApplicationContext()) {
+
+            @Override
+            public void onSwipeLeft() {
+                handleMoveToNext();
+            }
+
+            @Override
+            public void onSwipeRight() {
+                handleMoveToPrev();
+            }
+        });
+    }
+
+    @Override
+    public void onBackPressed() {
+        onFinish();
+        super.onBackPressed();
+    }
+
+
+    private void updateNextButtonIfNeeded() {
+        if (!mProgress.hasNextStep())
+            mForwardFinishButton.setImageResource(R.drawable.ic_ok);
+        else
+            mForwardFinishButton.setImageResource(R.drawable.ic_menu_forward);
+    }
+
+    private void handleMoveToNext() {
+        if (mProgress.hasNextStep()) {
+            mProgress.animateToNextStep();
+            mContentPanel.animate().x(-mContentPanel.getChildAt(++mCurrentStep).getLeft());
+            updateNextButtonIfNeeded();
+        }
+    }
+
+    private void handleMoveToPrev() {
+        if (mProgress.hasPrevStep()) {
+            mProgress.animateToPrevStep();
+            mContentPanel.animate().x(-mContentPanel.getChildAt(--mCurrentStep).getLeft());
+            updateNextButtonIfNeeded();
+        }
+    }
+
+    private void onFinish() {
+        SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(this);
+        SharedPreferences.Editor editor = pref.edit();
+        editor.putInt(KEY_LAST_SEEN_VERSION_CODE, BuildConfig.VERSION_CODE);
+        editor.apply();
+    }
+
+    private int getScreenWidth() {
+        DisplayMetrics dm = new DisplayMetrics();
+        getWindowManager().getDefaultDisplay().getMetrics(dm);
+        return dm.widthPixels;
+    }
+
+    static private int getLastSeenVersionCode() {
+        SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(MainApp.getAppContext());
+        return pref.getInt(KEY_LAST_SEEN_VERSION_CODE, 0);
+    }
+
+    static private boolean isFirstRun() {
+        if (getLastSeenVersionCode() != 0)
+            return false;
+        return AccountUtils.getCurrentOwnCloudAccount(MainApp.getAppContext()) == null;
+
+    }
+
+    static public void runIfNeeded(Context context) {
+        if (context instanceof WhatsNewActivity)
+            return;
+
+        if (FeatureList.getFiltered(getLastSeenVersionCode(), isFirstRun()).length > 0)
+            context.startActivity(new Intent(context, WhatsNewActivity.class));
+    }
+
+
+    public abstract class OnSwipeTouchListener implements View.OnTouchListener {
+
+        private final GestureDetector gestureDetector;
+
+        public OnSwipeTouchListener(Context context) {
+            gestureDetector = new GestureDetector(context, new GestureListener());
+        }
+
+        abstract public void onSwipeLeft();
+
+        abstract public void onSwipeRight();
+
+        public boolean onTouch(View v, MotionEvent event) {
+            return gestureDetector.onTouchEvent(event);
+        }
+
+        private final class GestureListener extends GestureDetector.SimpleOnGestureListener {
+
+            private static final int SWIPE_DISTANCE_THRESHOLD = 100;
+            private static final int SWIPE_VELOCITY_THRESHOLD = 100;
+
+            @Override
+            public boolean onDown(MotionEvent e) { return true; }
+
+            @Override
+            public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
+                final float distanceX = e2.getX() - e1.getX();
+                final float distanceY = e2.getY() - e1.getY();
+                if (Math.abs(distanceX) > Math.abs(distanceY) && Math.abs(distanceX) > SWIPE_DISTANCE_THRESHOLD && Math.abs(velocityX) > SWIPE_VELOCITY_THRESHOLD) {
+                    if (distanceX > 0)
+                        onSwipeRight();
+                    else
+                        onSwipeLeft();
+                    return true;
+                }
+                return false;
+            }
+        }
+    }
 
 }