diff --git a/.gitignore b/.gitignore
index bbe9448..1057638 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,3 +5,4 @@
.DS_Store
/build
/projectfilesbackup
+/bin
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 7557572..8447b37 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,11 @@
+## 2.17.0 (2020-07-30)
+
+- Add support to show Footer section in Landscape mode
+- Fix Wootric Sampling Rule property
+- Add log message
+- Fix opt-out button to retrieve text from server translations
+- Change Enter button action on feedback screen to advance to next screen
+
## 2.16.0 (2020-06-11)
- Add support for SamplingGroups
diff --git a/README.md b/README.md
index 21e90ad..830d128 100644
--- a/README.md
+++ b/README.md
@@ -28,14 +28,14 @@ If you use Maven, you can include this library as a dependency:
com.wootric
wootric-sdk-android
- 2.16.0
+ 2.17.0
```
### Using Gradle
```xml
-compile 'com.wootric:wootric-sdk-android:2.16.0'
+compile 'com.wootric:wootric-sdk-android:2.17.0'
```
## Initializing Wootric
diff --git a/WootricSDK-Android.iml b/WootricSDK-Android.iml
index ba3ea7e..3f4e92e 100644
--- a/WootricSDK-Android.iml
+++ b/WootricSDK-Android.iml
@@ -1,5 +1,5 @@
-
+
diff --git a/androidsdk/gradle.properties b/androidsdk/gradle.properties
index f6d42d0..f82de9d 100644
--- a/androidsdk/gradle.properties
+++ b/androidsdk/gradle.properties
@@ -1,5 +1,5 @@
-VERSION_NAME=2.16.0
-VERSION_CODE=2160
+VERSION_NAME=2.17.0
+VERSION_CODE=2170
GROUP=com.wootric
POM_DESCRIPTION=WootricSDK Android
diff --git a/androidsdk/src/main/java/com/wootric/androidsdk/Wootric.java b/androidsdk/src/main/java/com/wootric/androidsdk/Wootric.java
index 2e1d8ff..7942eb4 100644
--- a/androidsdk/src/main/java/com/wootric/androidsdk/Wootric.java
+++ b/androidsdk/src/main/java/com/wootric/androidsdk/Wootric.java
@@ -478,7 +478,7 @@ public void survey(String eventName) {
* Starts the survey if configuration is correctly set and elibility returns true.
*/
public void survey() {
- this.survey("");
+ this.survey(settings.getEventName());
}
public void showSurveyInActivity(Activity activity, String eventName) {
diff --git a/androidsdk/src/main/java/com/wootric/androidsdk/network/tasks/CheckEligibilityTask.java b/androidsdk/src/main/java/com/wootric/androidsdk/network/tasks/CheckEligibilityTask.java
index 0c94f4f..256dcc7 100644
--- a/androidsdk/src/main/java/com/wootric/androidsdk/network/tasks/CheckEligibilityTask.java
+++ b/androidsdk/src/main/java/com/wootric/androidsdk/network/tasks/CheckEligibilityTask.java
@@ -116,7 +116,7 @@ protected void onSuccess(String response) {
JSONObject jsonObject = new JSONObject(response);
if (jsonObject.has("sampling_rule")) {
- endUser.getProperties().put("Wootric sampling rule", jsonObject.getJSONObject("sampling_rule").getString("name"));
+ endUser.getProperties().put("Wootric Sampling Rule", jsonObject.getJSONObject("sampling_rule").getString("name"));
}
if (Utils.isNotEmpty(eventName)) {
diff --git a/androidsdk/src/main/java/com/wootric/androidsdk/network/tasks/WootricRemoteRequestTask.java b/androidsdk/src/main/java/com/wootric/androidsdk/network/tasks/WootricRemoteRequestTask.java
index 50ead47..bb24de9 100644
--- a/androidsdk/src/main/java/com/wootric/androidsdk/network/tasks/WootricRemoteRequestTask.java
+++ b/androidsdk/src/main/java/com/wootric/androidsdk/network/tasks/WootricRemoteRequestTask.java
@@ -50,8 +50,6 @@ public abstract class WootricRemoteRequestTask extends AsyncTask socialShare;
public LocalizedTexts() {}
@@ -63,6 +64,7 @@ public LocalizedTexts(LocalizedTexts localizedTexts) {
this.send = localizedTexts.send;
this.dismiss = localizedTexts.dismiss;
this.editScore = localizedTexts.editScore;
+ this.optOut = localizedTexts.optOut;
this.socialShare = localizedTexts.socialShare;
}
@@ -102,6 +104,8 @@ public String getEditScore() {
return editScore;
}
+ public String getOptOut() {return optOut; }
+
public String getSocialShareQuestion() {
return socialShare.get(SOCIAL_SHARE_QUESTION_KEY);
}
@@ -125,6 +129,7 @@ public void writeToParcel(Parcel dest, int flags) {
dest.writeString(this.send);
dest.writeString(this.dismiss);
dest.writeString(this.editScore);
+ dest.writeString(this.optOut);
dest.writeSerializable(this.socialShare);
}
@@ -137,6 +142,7 @@ private LocalizedTexts(Parcel in) {
this.send = in.readString();
this.dismiss = in.readString();
this.editScore = in.readString();
+ this.optOut = in.readString();
this.socialShare = (HashMap) in.readSerializable();
}
@@ -185,6 +191,7 @@ static LocalizedTexts fromJson(JSONObject localizedTextsJson, String surveyType)
localizedTexts.send = localizedTextsJson.optString("send");
localizedTexts.dismiss = localizedTextsJson.optString("dismiss");
localizedTexts.editScore = localizedTextsJson.optString("edit_score");
+ localizedTexts.optOut = localizedTextsJson.optString("opt_out_button");
JSONObject socialShareJson = localizedTextsJson.getJSONObject("social_share");
localizedTexts.socialShare = new HashMap<>();
diff --git a/androidsdk/src/main/java/com/wootric/androidsdk/objects/Settings.java b/androidsdk/src/main/java/com/wootric/androidsdk/objects/Settings.java
index 95ca83f..7b02baa 100644
--- a/androidsdk/src/main/java/com/wootric/androidsdk/objects/Settings.java
+++ b/androidsdk/src/main/java/com/wootric/androidsdk/objects/Settings.java
@@ -226,6 +226,8 @@ public String getBtnEditScore() {
return localizedTexts.getEditScore().toUpperCase();
}
+ public String getBtnOptOut() { return localizedTexts.getOptOut().toUpperCase(); }
+
public String getFollowupQuestion(int score) {
String followupQuestion = null;
diff --git a/androidsdk/src/main/java/com/wootric/androidsdk/views/SurveyFragment.java b/androidsdk/src/main/java/com/wootric/androidsdk/views/SurveyFragment.java
index 96e80a0..8493c7b 100644
--- a/androidsdk/src/main/java/com/wootric/androidsdk/views/SurveyFragment.java
+++ b/androidsdk/src/main/java/com/wootric/androidsdk/views/SurveyFragment.java
@@ -153,6 +153,7 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle sa
mFooter = (LinearLayout) view.findViewById(R.id.wootric_footer);
mBtnOptOut = (TextView) view.findViewById(R.id.wootric_btn_opt_out);
+ mBtnOptOut.setText(mSettings.getBtnOptOut());
if (mSettings.isShowOptOut()) {
mBtnOptOut.setVisibility(View.VISIBLE);
@@ -212,7 +213,7 @@ private void measurePhoneDialog() {
lp.height = screenHeight*4/5;
lp.width = screenWidth;
} else {
- lp.height = screenWidth;
+ lp.height = screenWidth*19/20;
lp.width = screenHeight*4/5;
}
} else {
@@ -226,7 +227,6 @@ private void measurePhoneDialog() {
}
window.setAttributes(lp);
- mFooter.setVisibility(isPortraitMode ? View.VISIBLE : View.GONE);
}
private void setupState(Bundle savedInstanceState) {
diff --git a/androidsdk/src/main/java/com/wootric/androidsdk/views/phone/SurveyLayoutPhone.java b/androidsdk/src/main/java/com/wootric/androidsdk/views/phone/SurveyLayoutPhone.java
index 2ac2e03..04724e0 100644
--- a/androidsdk/src/main/java/com/wootric/androidsdk/views/phone/SurveyLayoutPhone.java
+++ b/androidsdk/src/main/java/com/wootric/androidsdk/views/phone/SurveyLayoutPhone.java
@@ -33,8 +33,10 @@
import android.util.AttributeSet;
import android.util.Log;
import android.view.Gravity;
+import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
+import android.view.inputmethod.EditorInfo;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
import android.widget.LinearLayout;
@@ -189,6 +191,17 @@ private void initFeedbackViewElements() {
etFeedbackBackground.setColorFilter(mColorBlack, PorterDuff.Mode.SRC_ATOP);
etFeedbackBackground.setAlpha(26);
mEtFeedback.setOnFocusChangeListener(onEtFeedbackFocusChanged());
+ mEtFeedback.setImeActionLabel(mSettings.getBtnSubmit(), KeyEvent.KEYCODE_ENTER);
+ mEtFeedback.setImeOptions(EditorInfo.IME_ACTION_DONE);
+ mEtFeedback.setOnKeyListener(new OnKeyListener() {
+ public boolean onKey(View view, int keyCode, KeyEvent keyevent) {
+ if ((keyevent.getAction() == KeyEvent.ACTION_DOWN) && (keyCode == KeyEvent.KEYCODE_ENTER)) {
+ submitSurvey();
+ return true;
+ }
+ return false;
+ }
+ });
mBtnEditScore = (TextView) findViewById(R.id.wootric_btn_edit_score);
mBtnEditScore.setOnClickListener(onEditScoreClick());
diff --git a/androidsdk/src/main/java/com/wootric/androidsdk/views/support/SurveyFragment.java b/androidsdk/src/main/java/com/wootric/androidsdk/views/support/SurveyFragment.java
index db9d253..4459e29 100644
--- a/androidsdk/src/main/java/com/wootric/androidsdk/views/support/SurveyFragment.java
+++ b/androidsdk/src/main/java/com/wootric/androidsdk/views/support/SurveyFragment.java
@@ -154,6 +154,7 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle sa
mFooter = (LinearLayout) view.findViewById(R.id.wootric_footer);
mBtnOptOut = (TextView) view.findViewById(R.id.wootric_btn_opt_out);
+ mBtnOptOut.setText(mSettings.getBtnOptOut());
if (mSettings.isShowOptOut()) {
mBtnOptOut.setVisibility(View.VISIBLE);
@@ -213,7 +214,7 @@ private void measurePhoneDialog() {
lp.height = screenHeight*4/5;
lp.width = screenWidth;
} else {
- lp.height = screenWidth;
+ lp.height = screenWidth*19/20;
lp.width = screenHeight*4/5;
}
} else {
@@ -227,7 +228,6 @@ private void measurePhoneDialog() {
}
window.setAttributes(lp);
- mFooter.setVisibility(isPortraitMode ? View.VISIBLE : View.GONE);
}
private void setupState(Bundle savedInstanceState) {
diff --git a/androidsdk/src/main/java/com/wootric/androidsdk/views/tablet/SurveyLayoutTablet.java b/androidsdk/src/main/java/com/wootric/androidsdk/views/tablet/SurveyLayoutTablet.java
index fcdbe05..9c0e4ed 100644
--- a/androidsdk/src/main/java/com/wootric/androidsdk/views/tablet/SurveyLayoutTablet.java
+++ b/androidsdk/src/main/java/com/wootric/androidsdk/views/tablet/SurveyLayoutTablet.java
@@ -28,8 +28,10 @@
import android.os.Parcel;
import android.os.Parcelable;
import android.util.AttributeSet;
+import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
+import android.view.inputmethod.EditorInfo;
import android.view.inputmethod.InputMethodManager;
import android.widget.Button;
import android.widget.EditText;
@@ -137,6 +139,18 @@ private void init(Context context) {
mLayoutFollowup = (RelativeLayout) findViewById(R.id.wootric_layout_followup);
mTvFollowupQuestion = (TextView) mLayoutFollowup.findViewById(R.id.wootric_tv_followup);
mEtFeedback = (EditText) mLayoutFollowup.findViewById(R.id.wootric_et_feedback);
+ mEtFeedback.setImeOptions(EditorInfo.IME_ACTION_DONE);
+ mEtFeedback.setOnKeyListener(new OnKeyListener() {
+ public boolean onKey(View view, int keyCode, KeyEvent keyevent) {
+ if ((keyevent.getAction() == KeyEvent.ACTION_DOWN) && (keyCode == KeyEvent.KEYCODE_ENTER)) {
+ submitSurvey();
+ return true;
+ }
+ return false;
+ }
+ });
+
+
mBtnSubmit = (Button) mLayoutFollowup.findViewById(R.id.wootric_btn_submit);
mBtnSubmit.setOnClickListener(new OnClickListener() {
@Override
@@ -261,6 +275,7 @@ private void setTexts() {
mTvAnchorLikely.setText(mSettings.getAnchorLikely());
mTvAnchorNotLikely.setText(mSettings.getAnchorNotLikely());
mBtnSubmit.setText(mSettings.getBtnSubmit());
+ mEtFeedback.setImeActionLabel(mSettings.getBtnSubmit(), KeyEvent.KEYCODE_ENTER);
}
}
diff --git a/androidsdk/src/main/res/layout-sw600dp/wootric_nps_layout.xml b/androidsdk/src/main/res/layout-sw600dp/wootric_nps_layout.xml
index d2021a2..50df370 100644
--- a/androidsdk/src/main/res/layout-sw600dp/wootric_nps_layout.xml
+++ b/androidsdk/src/main/res/layout-sw600dp/wootric_nps_layout.xml
@@ -66,6 +66,8 @@
android:textCursorDrawable="@drawable/wootric_tablet_feedback_cursor"
android:textColor="#78000000"
android:background="@null"
+ android:imeOptions="actionDone"
+ android:inputType="text"
android:padding="16dp"
android:textSize="14sp"
android:maxLines="2"
diff --git a/androidsdk/src/main/res/layout/wootric_survey_layout.xml b/androidsdk/src/main/res/layout/wootric_survey_layout.xml
index a755d9f..9ea4618 100644
--- a/androidsdk/src/main/res/layout/wootric_survey_layout.xml
+++ b/androidsdk/src/main/res/layout/wootric_survey_layout.xml
@@ -21,39 +21,39 @@
android:layout_height="wrap_content"
android:orientation="vertical">
-
+
-
-
+
+
-
+