Skip to content

Commit

Permalink
Merge pull request #117 from salemove/prelive
Browse files Browse the repository at this point in the history
Release 1.6.8
  • Loading branch information
deniss-mc authored Nov 4, 2021
2 parents 60b1cc0 + a122c79 commit f9fa110
Show file tree
Hide file tree
Showing 29 changed files with 359 additions and 68 deletions.
2 changes: 0 additions & 2 deletions app/src/main/java/com/glia/exampleapp/Application.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,8 @@ public void onCreate() {

SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
String appToken = sharedPreferences.getString(getString(R.string.pref_app_token), getString(R.string.app_token));
String apiToken = sharedPreferences.getString(getString(R.string.pref_api_token), getString(R.string.api_token));
String siteId = sharedPreferences.getString(getString(R.string.pref_site_id), getString(R.string.site_id));
GliaWidgetsConfig gliaConfig = new GliaWidgetsConfig.Builder()
.setApiToken(apiToken)
.setAppToken(appToken)
.setSiteId(siteId)
.setRegion("beta")
Expand Down
9 changes: 9 additions & 0 deletions app/src/main/res/values-v29/themes.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools">
<style name="Theme.GliaAndroidSDKWidgetsExample" parent="Theme.MaterialComponents.Light.NoActionBar">
<item name="colorPrimary">@color/color_primary</item>
<item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimary</item>
<item name="materialButtonStyle">@style/Application.GliaAndroidSdkWidgetsExample.Button</item>
<item name="android:forceDarkAllowed">false</item>
</style>
</resources>
1 change: 0 additions & 1 deletion app/src/main/res/values/donottranslate.xml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@
<string name="pref_font_color">font_color</string>
<string name="pref_font_size">font_size</string>
<string name="pref_header_title">header_title</string>
<string name="pref_api_token">api_token</string>
<string name="pref_app_token">app_token</string>
<string name="pref_site_id">site_id</string>
<string name="pref_company_name">company_name</string>
Expand Down
1 change: 0 additions & 1 deletion app/src/main/res/values/setup.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
<resources xmlns:tools="http://schemas.android.com/tools">
<string name="app_token" tools:ignore="ExtraTranslation">xWa2EKJTN35En26o</string>
<string name="site_id" tools:ignore="ExtraTranslation">72c76913-ff1b-48a6-b209-bbeb57bd8649</string>
<string name="api_token" tools:ignore="ExtraTranslation">aYDwJZ0TemP5ub9rwQBXcg</string>
<string name="queue_id" tools:ignore="ExtraTranslation">a0b87175-4ed1-44a7-9e78-e798f45d233f</string>
<!-- for bot-->
<!-- <string name="queue_id" tools:ignore="ExtraTranslation">9f7632ed-56be-4999-819d-381fc3ffa22c</string>-->
Expand Down
1 change: 0 additions & 1 deletion app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@
<string name="settings_chat_system_agent_bubble_color">System agent bubble color</string>
<string name="settings_chat_font_family">Chat message font family</string>
<string name="settings_header_title">Title</string>
<string name="settings_api_token">Api token</string>
<string name="settings_app_token">App token</string>
<string name="settings_site_id">Site id</string>
<string name="settings_chat_negative_color">Negative color</string>
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/res/values/themes.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools">

<style name="Theme.GliaAndroidSDKWidgetsExample" parent="Theme.MaterialComponents.DayNight.NoActionBar">
<style name="Theme.GliaAndroidSDKWidgetsExample" parent="Theme.MaterialComponents.Light.NoActionBar">
<item name="colorPrimary">@color/color_primary</item>
<item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimary</item>
<item name="materialButtonStyle">@style/Application.GliaAndroidSdkWidgetsExample.Button</item>
Expand Down
6 changes: 0 additions & 6 deletions app/src/main/res/xml/preferences.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,6 @@

<PreferenceCategory app:title="@string/settings_sdk_title">

<EditTextPreference
app:defaultValue="@string/api_token"
app:key="@string/pref_api_token"
app:title="@string/settings_api_token"
app:useSimpleSummaryProvider="true" />

<EditTextPreference
app:defaultValue="@string/app_token"
app:key="@string/pref_app_token"
Expand Down
4 changes: 2 additions & 2 deletions widgetssdk/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ android {
defaultConfig {
minSdkVersion 24
targetSdkVersion 30
versionCode 12
versionName "1.6.7"
versionCode 13
versionName "1.6.8"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
consumerProguardFiles "consumer-rules.pro"
}
Expand Down
4 changes: 4 additions & 0 deletions widgetssdk/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,10 @@
<intent>
<action android:name="android.support.customtabs.action.CustomTabsService" />
</intent>
<intent>
<action android:name="android.intent.action.SENDTO" />
<data android:scheme="*" />
</intent>
</queries>

</manifest>
2 changes: 2 additions & 0 deletions widgetssdk/src/main/java/com/glia/widgets/Constants.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,4 +25,6 @@ public class Constants {
* Global media timer interval value
*/
public static final int CALL_TIMER_INTERVAL_VALUE = 1000;

public static final String PHONE_NUMBER_REGEX = "^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$";
}
34 changes: 18 additions & 16 deletions widgetssdk/src/main/java/com/glia/widgets/GliaWidgetsConfig.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,11 @@ public class GliaWidgetsConfig {
private final int requestCode;

/**
* Deprecated since SDK version 1.6.5. Please use {@link GliaWidgetsConfig#GliaWidgetsConfig(String, String, Context, String, int)} instead.
* @deprecated Deprecated since SDK version 1.6.5. Please use {@link GliaWidgetsConfig#GliaWidgetsConfig(String, String, Context, String, int)} instead.
*/
@Deprecated
public GliaWidgetsConfig(String appToken, String apiToken, String siteId, Context context, String region, int requestCode) {
this.appToken = appToken;
this.siteId = siteId;
this.context = context;
this.region = region;
this.requestCode = requestCode;
this(appToken, siteId, context, region, requestCode);
}

public GliaWidgetsConfig(String appToken, String siteId, Context context, String region, int requestCode) {
Expand All @@ -50,10 +46,6 @@ public String getAppToken() {
return appToken;
}

public String getApiToken() {
return null;
}

public Context getContext() {
return context;
}
Expand All @@ -62,6 +54,15 @@ public String getRegion() {
return region;
}

/**
* @deprecated API token is no longer needed for SDK to function correctly.
* Deprecated since SDK version 1.6.5
*/
@Deprecated
public String getApiToken() {
return null;
}

public int getRequestCode() {
return requestCode;
}
Expand All @@ -75,7 +76,7 @@ public int getRequestCode() {
* <p>
* Required information is:
* <ul>
* <li>API token</li>
* <li>APP token</li>
* <li>Site ID</li>
* <li>Region</li>
* <li>Context</li>
Expand All @@ -85,8 +86,8 @@ public int getRequestCode() {
* <b>Usage example:</b>
* <pre>
* <code>
* GliaBuildConfig gliaBuildConfig = new GliaBuildConfig.Builder()
* .setAppToken("API_TOKEN")
* GliaBuildConfig gliaBuildConfig = new GliaBuildConfig.Builder(
* .setAppToken("APP_TOKEN")
* .setSiteId("SITE_ID")
* .setRegion(Regions.US)
* .setContext(getApplicationContext())
Expand All @@ -96,7 +97,6 @@ public int getRequestCode() {
*/
public static class Builder {
String appToken;
String apiToken;
String siteId;
Context context;
String region;
Expand All @@ -112,11 +112,13 @@ public Builder setAppToken(String appToken) {
}

/**
* API token is no longer needed for SDK to function correctly.
* @deprecated API token is no longer needed for SDK to function correctly.
* Deprecated since SDK version 1.6.5
*/
@Deprecated
public Builder setApiToken(String apiToken) { return this; }
public Builder setApiToken(String apiToken) {
return this;
}

/**
* @param siteId - your site ID
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -558,7 +558,7 @@ public void onNewVisitorMediaState(VisitorMediaState visitorMediaState) {
public void engagementEnded() {
Logger.d(TAG, "engagementEndedByOperator");
stop();
dialogController.showNoMoreOperatorsAvailableDialog();
dialogController.showEngagementEndedDialog();
}

@Override
Expand Down
27 changes: 25 additions & 2 deletions widgetssdk/src/main/java/com/glia/widgets/call/CallView.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,6 @@
import android.graphics.Typeface;
import android.media.AudioManager;
import android.net.Uri;
import android.os.Handler;
import android.os.Looper;
import android.provider.Settings;
import android.util.AttributeSet;
import android.view.Gravity;
Expand Down Expand Up @@ -408,6 +406,8 @@ public void navigateToChat() {
post(this::showExitQueueDialog);
} else if (dialogsState instanceof DialogsState.NoMoreOperatorsDialog) {
post(this::showNoMoreOperatorsAvailableDialog);
} else if (dialogsState instanceof DialogsState.EngagementEndedDialog) {
post(this::showEngagementEndedDialog);
} else if (dialogsState instanceof DialogsState.UpgradeDialog) {
post(() -> showUpgradeDialog(((DialogsState.UpgradeDialog) dialogsState).type));
} else if (dialogsState instanceof DialogsState.StartScreenSharingDialog) {
Expand Down Expand Up @@ -863,6 +863,29 @@ private void showAlertDialog(@StringRes int title, @StringRes int message,
buttonClickListener);
}

private void showEngagementEndedDialog() {
if (alertDialog != null) {
alertDialog.dismiss();
alertDialog = null;
}
alertDialog = Dialogs.showOperatorEndedEngagementDialog(
this.getContext(),
this.theme,
v -> {
dismissAlertDialog();
if (controller != null) {
controller.noMoreOperatorsAvailableDismissed();
}
if (chatHeadsController != null) {
chatHeadsController.chatEndedByUser();
}
if (onEndListener != null) {
onEndListener.onEnd();
}
callEnded();
});
}

private void showNoMoreOperatorsAvailableDialog() {
showAlertDialog(
R.string.glia_dialog_operators_unavailable_title,
Expand Down
73 changes: 66 additions & 7 deletions widgetssdk/src/main/java/com/glia/widgets/chat/ChatView.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@
import android.text.Editable;
import android.text.TextWatcher;
import android.util.AttributeSet;
import android.util.Patterns;
import android.view.View;
import android.webkit.URLUtil;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.RelativeLayout;
Expand All @@ -48,6 +48,7 @@
import com.airbnb.lottie.LottieProperty;
import com.airbnb.lottie.model.KeyPath;
import com.glia.androidsdk.chat.AttachmentFile;
import com.glia.widgets.Constants;
import com.glia.widgets.R;
import com.glia.widgets.UiTheme;
import com.glia.widgets.chat.adapter.ChatAdapter;
Expand Down Expand Up @@ -86,6 +87,7 @@
import java.io.File;
import java.io.IOException;
import java.util.List;
import java.util.regex.Pattern;
import java.util.stream.Collectors;

public class ChatView extends ConstraintLayout implements ChatAdapter.OnFileItemClickListener, ChatAdapter.OnImageItemClickListener, ChatAdapter.OnTextClickListener {
Expand Down Expand Up @@ -462,6 +464,12 @@ public void emitState(ChatState chatState) {
}

addAttachmentButton.setEnabled(chatState.isAttachmentButtonEnabled);

if (chatState.isAttachmentButtonVisible) {
addAttachmentButton.setVisibility(VISIBLE);
} else {
addAttachmentButton.setVisibility(GONE);
}
});
}

Expand Down Expand Up @@ -581,12 +589,13 @@ public void fileDownloadSuccess(AttachmentFile attachmentFile) {
} else if (dialogsState instanceof DialogsState.OverlayPermissionsDialog) {
post(this::showOverlayPermissionsDialog);
} else if (dialogsState instanceof DialogsState.EndEngagementDialog) {
post(() -> showEndEngagementDialog(
((DialogsState.EndEngagementDialog) dialogsState).operatorName));
post(() -> showEndEngagementDialog(((DialogsState.EndEngagementDialog) dialogsState).operatorName));
} else if (dialogsState instanceof DialogsState.UpgradeDialog) {
post(() -> showUpgradeDialog(((DialogsState.UpgradeDialog) dialogsState).type));
} else if (dialogsState instanceof DialogsState.NoMoreOperatorsDialog) {
post(this::showNoMoreOperatorsAvailableDialog);
} else if (dialogsState instanceof DialogsState.EngagementEndedDialog) {
post(this::showEngagementEndedDialog);
} else if (dialogsState instanceof DialogsState.StartScreenSharingDialog) {
post(this::showScreenSharingDialog);
} else if (dialogsState instanceof DialogsState.EndScreenSharingDialog) {
Expand Down Expand Up @@ -1094,6 +1103,29 @@ private void showAlertDialog(@StringRes int title,
buttonClickListener);
}

private void showEngagementEndedDialog() {
if (alertDialog != null) {
alertDialog.dismiss();
alertDialog = null;
}
alertDialog = Dialogs.showOperatorEndedEngagementDialog(
this.getContext(),
this.theme,
v -> {
dismissAlertDialog();
if (controller != null) {
controller.noMoreOperatorsAvailableDismissed();
}
if (chatHeadsController != null) {
chatHeadsController.chatEndedByUser();
}
if (onEndListener != null) {
onEndListener.onEnd();
}
chatEnded();
});
}

private void showNoMoreOperatorsAvailableDialog() {
showAlertDialog(
R.string.glia_dialog_operators_unavailable_title,
Expand Down Expand Up @@ -1328,15 +1360,42 @@ public void onRequestPermissionsResult(int requestCode, String[] permissions, in

@Override
public void onTextClick(String text) {
if (URLUtil.isValidUrl(text)) {
if (CustomTabActivityHelper.hasSupportedBrowser((Utils.getActivity(this.getContext())))) {
CustomTabActivityHelper.openCustomTab((Utils.getActivity(this.getContext())), text, theme.getBrandPrimaryColor(), theme.getBaseLightColor());
Activity activity = Utils.getActivity(this.getContext());

if (Patterns.WEB_URL.matcher(text).matches()) {
if (CustomTabActivityHelper.hasSupportedBrowser(activity)) {
int primaryColor = ContextCompat.getColor(this.getContext(), theme.getBrandPrimaryColor());
int baseLightColor = ContextCompat.getColor(this.getContext(), theme.getBaseLightColor());

CustomTabActivityHelper.openCustomTab(activity, text, primaryColor, baseLightColor);
} else {
this.getContext().startActivity(OperatorLinksActivity.intent(this.getContext(), text, theme));
activity.startActivity(OperatorLinksActivity.intent(activity, text, theme));
}
} else if (Patterns.EMAIL_ADDRESS.matcher(text).matches()) {
composeEmail(text, activity);
} else if (Pattern.matches(Constants.PHONE_NUMBER_REGEX, text)) {
composeCall(text, activity);
}
}

public void composeEmail(String email, Activity activity) {
Intent intent = new Intent(Intent.ACTION_SENDTO);
intent.putExtra(Intent.EXTRA_EMAIL, new String[]{email.trim()});
intent.setData(Uri.parse("mailto:"));

if (intent.resolveActivity(activity.getPackageManager()) != null) {
activity.startActivity(intent);
} else {
Toast.makeText(activity, activity.getString(R.string.glia_chat_no_email_app_msg), Toast.LENGTH_SHORT).show();
}
}

public void composeCall(String phoneNumber, Activity activity) {
Intent intent = new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse("tel:" + phoneNumber));
activity.startActivity(intent);
}

public interface OnBackClickedListener {
/**
* Callback which is used to notify the enclosing activity or fragment when the user
Expand Down
Loading

0 comments on commit f9fa110

Please sign in to comment.