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"> - + - - + + - +