Merge "syncslides: UI fixes"
diff --git a/projects/syncslides/app/src/main/java/io/v/android/apps/syncslides/NavigateFragment.java b/projects/syncslides/app/src/main/java/io/v/android/apps/syncslides/NavigateFragment.java
index 8ac2157..46dfc86 100644
--- a/projects/syncslides/app/src/main/java/io/v/android/apps/syncslides/NavigateFragment.java
+++ b/projects/syncslides/app/src/main/java/io/v/android/apps/syncslides/NavigateFragment.java
@@ -128,16 +128,18 @@
mFabSync.setVisibility(View.VISIBLE);
}
- mFabSync.setOnClickListener(new View.OnClickListener() {
+ mFabSync.setOnClickListener(new NavigateClickListener() {
@Override
public void onClick(View v) {
+ super.onClick(v);
sync();
mFabSync.setVisibility(View.INVISIBLE);
}
});
- View.OnClickListener previousSlideListener = new View.OnClickListener() {
+ View.OnClickListener previousSlideListener = new NavigateClickListener() {
@Override
public void onClick(View v) {
+ super.onClick(v);
previousSlide();
}
};
@@ -146,9 +148,10 @@
mPrevThumb = (ImageView) rootView.findViewById(R.id.prev_thumb);
mPrevThumb.setOnClickListener(previousSlideListener);
- View.OnClickListener nextSlideListener = new View.OnClickListener() {
+ View.OnClickListener nextSlideListener = new NavigateClickListener() {
@Override
public void onClick(View v) {
+ super.onClick(v);
nextSlide();
}
};
@@ -166,16 +169,18 @@
mNextThumb.setOnClickListener(nextSlideListener);
mQuestions = (ImageView) rootView.findViewById(R.id.questions);
// TODO(kash): Hide the mQuestions button if mRole == BROWSER.
- mQuestions.setOnClickListener(new View.OnClickListener() {
+ mQuestions.setOnClickListener(new NavigateClickListener() {
@Override
public void onClick(View v) {
+ super.onClick(v);
questionButton();
}
});
mCurrentSlide = (ImageView) rootView.findViewById(R.id.slide_current_medium);
- mCurrentSlide.setOnClickListener(new View.OnClickListener() {
+ mCurrentSlide.setOnClickListener(new NavigateClickListener() {
@Override
public void onClick(View v) {
+ super.onClick(v);
if (mRole == Role.AUDIENCE || mRole == Role.BROWSER) {
((PresentationActivity) getActivity()).showFullscreenSlide(mUserSlideNum);
}
@@ -193,6 +198,7 @@
unsync();
}
});
+
// The parent of mNotes needs to be focusable in order to clear focus
// from mNotes when done editing. We set the attributes in code rather
// than in XML because it is too easy to add an extra level of layout
@@ -203,9 +209,10 @@
parent.setFocusableInTouchMode(true);
View slideListIcon = rootView.findViewById(R.id.slide_list);
- slideListIcon.setOnClickListener(new View.OnClickListener() {
+ slideListIcon.setOnClickListener(new NavigateClickListener() {
@Override
public void onClick(View v) {
+ super.onClick(v);
if (mRole == Role.AUDIENCE) {
((PresentationActivity) getActivity()).showSlideList();
} else {
@@ -299,20 +306,26 @@
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_save:
- Toast.makeText(getContext(), "Saving notes", Toast.LENGTH_SHORT).show();
- mNotes.clearFocus();
- InputMethodManager inputManager =
- (InputMethodManager) getContext().
- getSystemService(Context.INPUT_METHOD_SERVICE);
- inputManager.hideSoftInputFromWindow(
- getActivity().getCurrentFocus().getWindowToken(),
- InputMethodManager.HIDE_NOT_ALWAYS);
- ((PresentationActivity) getActivity()).setUiImmersive(true);
+ saveNotes();
return true;
}
return false;
}
+ public void saveNotes() {
+ if (mEditing) {
+ Toast.makeText(getContext(), "Saving notes", Toast.LENGTH_SHORT).show();
+ mNotes.clearFocus();
+ InputMethodManager inputManager =
+ (InputMethodManager) getContext().
+ getSystemService(Context.INPUT_METHOD_SERVICE);
+ inputManager.hideSoftInputFromWindow(
+ getActivity().getCurrentFocus().getWindowToken(),
+ InputMethodManager.HIDE_NOT_ALWAYS);
+ ((PresentationActivity) getActivity()).setUiImmersive(true);
+ }
+ }
+
private void unsync() {
if (mRole == Role.AUDIENCE && mSynced) {
mSynced = false;
@@ -457,9 +470,10 @@
*/
private void handoffControl() {
//TODO(afergan): Change slide presenter to the audience member at mQuestionerPosition.
- View.OnClickListener snackbarClickListener = new View.OnClickListener() {
+ View.OnClickListener snackbarClickListener = new NavigateClickListener() {
@Override
public void onClick(View v) {
+ super.onClick(v);
//TODO(afergan): End handoff, presenter regains control of presentation.
}
};
@@ -505,4 +519,11 @@
thumbParams.height = (int) ((9 / 16.0) * grandparent.getMeasuredWidth());
}
}
-}
+
+ public class NavigateClickListener implements View.OnClickListener {
+ @Override
+ public void onClick(View v) {
+ saveNotes();
+ }
+ }
+}
\ No newline at end of file
diff --git a/projects/syncslides/app/src/main/java/io/v/android/apps/syncslides/PresentationActivity.java b/projects/syncslides/app/src/main/java/io/v/android/apps/syncslides/PresentationActivity.java
index 3ba5246..9ff1fa9 100644
--- a/projects/syncslides/app/src/main/java/io/v/android/apps/syncslides/PresentationActivity.java
+++ b/projects/syncslides/app/src/main/java/io/v/android/apps/syncslides/PresentationActivity.java
@@ -223,7 +223,7 @@
}
});
mRole = Role.PRESENTER;
- showNavigateFragment(0);
+ showNavigateFragmentWithBackStack(0);
}
/**
diff --git a/projects/syncslides/app/src/main/java/io/v/android/apps/syncslides/QuestionDialogFragment.java b/projects/syncslides/app/src/main/java/io/v/android/apps/syncslides/QuestionDialogFragment.java
index 1a4a9c5..539e081 100644
--- a/projects/syncslides/app/src/main/java/io/v/android/apps/syncslides/QuestionDialogFragment.java
+++ b/projects/syncslides/app/src/main/java/io/v/android/apps/syncslides/QuestionDialogFragment.java
@@ -43,6 +43,12 @@
return builder.create();
}
+ @Override
+ public void onDestroy() {
+ super.onDestroy();
+ ((PresentationActivity) getActivity()).setUiImmersive(true);
+ }
+
// Send back the position of the questioner to the NavigateFragment.
private void sendResult(int position) {
Intent intent = new Intent();
diff --git a/projects/syncslides/app/src/main/res/layout-land/fragment_navigate.xml b/projects/syncslides/app/src/main/res/layout-land/fragment_navigate.xml
index e751d5f..41119a1 100644
--- a/projects/syncslides/app/src/main/res/layout-land/fragment_navigate.xml
+++ b/projects/syncslides/app/src/main/res/layout-land/fragment_navigate.xml
@@ -18,10 +18,10 @@
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
+ android:background="@color/blue_grey_50"
android:gravity="left"
android:hint="@string/notes_hint"
- android:textSize="18sp"
- android:background="@color/blue_grey_50"/>
+ android:textSize="18sp" />
<RelativeLayout
android:layout_width="wrap_content"
@@ -33,6 +33,7 @@
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:adjustViewBounds="true"
+ android:background="@color/blue_grey_50"
android:scaleType="fitCenter" />
<TextView
@@ -60,6 +61,7 @@
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:adjustViewBounds="true"
+ android:background="@color/blue_grey_50"
android:scaleType="fitCenter" />
<TextView
diff --git a/projects/syncslides/app/src/main/res/layout/fragment_navigate.xml b/projects/syncslides/app/src/main/res/layout/fragment_navigate.xml
index b821dfc..a4d2556 100644
--- a/projects/syncslides/app/src/main/res/layout/fragment_navigate.xml
+++ b/projects/syncslides/app/src/main/res/layout/fragment_navigate.xml
@@ -27,7 +27,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
- android:scaleType="fitCenter"/>
+ android:scaleType="fitCenter" />
<TextView
android:id="@+id/slide_num_text"
@@ -39,7 +39,7 @@
android:background="@drawable/nav_hint"
android:paddingLeft="@dimen/nav_hint_padding"
android:paddingRight="@dimen/nav_hint_padding"
- android:textColor="@color/nav_hint_text"/>
+ android:textColor="@color/nav_hint_text" />
</RelativeLayout>
@@ -86,10 +86,10 @@
android:layout_height="wrap_content"
android:layout_alignRight="@id/questions"
android:layout_alignTop="@id/questions"
- android:gravity="center"
- android:textSize="@dimen/nav_question_num_size"
android:background="@drawable/orange_circle"
- android:textColor="@color/nav_question_num_text"/>
+ android:gravity="center"
+ android:textColor="@color/nav_question_num_text"
+ android:textSize="@dimen/nav_question_num_size" />
</RelativeLayout>
@@ -140,12 +140,12 @@
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
+ android:background="@color/blue_grey_50"
android:gravity="left"
android:hint="@string/notes_hint"
- android:textSize="18sp"
- android:scrollbars="vertical"
android:inputType="textMultiLine|textAutoComplete|textCapSentences"
- android:background="@color/blue_grey_50"/>
+ android:scrollbars="vertical"
+ android:textSize="18sp" />
<!-- Display the next and previous slide thumbnails. -->
<LinearLayout
@@ -166,6 +166,7 @@
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:adjustViewBounds="true"
+ android:background="@color/blue_grey_50"
android:scaleType="fitCenter" />
<TextView
@@ -193,6 +194,7 @@
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:adjustViewBounds="true"
+ android:background="@color/blue_grey_50"
android:scaleType="fitCenter" />
<TextView