summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephen Bird <sbird@cyngn.com>2016-02-11 17:59:18 -0800
committerRichard MacGregor <rmacgregor@cyngn.com>2016-04-08 10:42:50 -0700
commit95562ec70e8c61a010a77279540a1149844d11ce (patch)
treed21be8ab6f432f65241a2a707dcbada20ff2f025
parente920421836093475f6325eca467d7d266586edda (diff)
downloadandroid_packages_apps_PhoneCommon-95562ec70e8c61a010a77279540a1149844d11ce.tar.gz
android_packages_apps_PhoneCommon-95562ec70e8c61a010a77279540a1149844d11ce.tar.bz2
android_packages_apps_PhoneCommon-95562ec70e8c61a010a77279540a1149844d11ce.zip
Move Credits Bar to Helper class
Change-Id: I38794d69853eddfc9324f8295486d0e1c8da2a79
-rw-r--r--src/com/android/phone/common/dialpad/CreditBarHelper.java93
-rw-r--r--src/com/android/phone/common/dialpad/DialpadView.java30
2 files changed, 97 insertions, 26 deletions
diff --git a/src/com/android/phone/common/dialpad/CreditBarHelper.java b/src/com/android/phone/common/dialpad/CreditBarHelper.java
new file mode 100644
index 0000000..ac698ad
--- /dev/null
+++ b/src/com/android/phone/common/dialpad/CreditBarHelper.java
@@ -0,0 +1,93 @@
+package com.android.phone.common.dialpad;
+
+import android.app.PendingIntent;
+import android.content.res.Resources;
+import android.text.TextUtils;
+import android.util.Log;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import com.android.phone.common.R;
+import com.android.phone.common.incall.CallMethodInfo;
+
+/**
+ * Helper method used to handle incall credit bars
+ *
+ * The credit bar's origin code comes from google. We've added a second credit bar in dialer that
+ * uses these same helper method.
+ */
+public class CreditBarHelper {
+
+ private static final String TAG = CreditBarHelper.class.getSimpleName();
+
+ public interface CreditBarVisibilityListener {
+ public void creditsBarVisibilityChanged(int visibility);
+ }
+
+ public static void clearCallRateInformation(ViewGroup v, CreditBarVisibilityListener cpvl) {
+ setCallRateInformation(v, null, null, null, cpvl);
+ }
+
+ public static void setCallRateInformation(ViewGroup creditsBar, String countryName,
+ String displayRate, final PendingIntent p,
+ CreditBarVisibilityListener cpvl) {
+ if (TextUtils.isEmpty(countryName) && TextUtils.isEmpty(displayRate) &&
+ p == null) {
+ creditsBar.setVisibility(View.GONE);
+ cpvl.creditsBarVisibilityChanged(View.GONE);
+ return;
+ }
+ creditsBar.setVisibility(View.VISIBLE);
+ cpvl.creditsBarVisibilityChanged(View.VISIBLE);
+ TextView ildCountry = (TextView) creditsBar.findViewById(R.id.ild_country);
+ TextView ildRate = (TextView) creditsBar.findViewById(R.id.ild_rate);
+
+ ildCountry.setText(countryName);
+ ildRate.setText(displayRate);
+ ildRate.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ try {
+ if (p != null) {
+ p.send();
+ } else {
+ Log.wtf(TAG, "The intent we attempted to fire was null");
+ }
+ } catch (PendingIntent.CanceledException e) {
+ e.printStackTrace();
+ }
+ }
+ });
+ }
+
+ public static void callMethodCredits(ViewGroup v, CallMethodInfo cmi, Resources r,
+ CreditBarVisibilityListener cpvl) {
+ String creditText = cmi.getCreditsDescriptionText(r);
+ String buttonText = null;
+ PendingIntent button;
+
+ boolean warnIfLow = false;
+ if (TextUtils.isEmpty(creditText)) {
+ clearCallRateInformation(v, cpvl);
+ return;
+ } else {
+ if (cmi.mIsAuthenticated) {
+ button = cmi.mManageCreditIntent;
+ if (cmi.usesSubscriptions()) {
+ buttonText = cmi.mSubscriptionButtonText;
+ } else {
+ if (cmi.getCurrencyAmount() <= cmi.mCreditWarn) {
+ warnIfLow = true;
+ }
+ buttonText = cmi.mCreditButtonText;
+ }
+ } else {
+ buttonText = r.getString(R.string.sign_in_credit_banner_text);
+ creditText = "";
+ button = cmi.mLoginIntent;
+ }
+ }
+ setCallRateInformation(v, creditText, buttonText, button, cpvl);
+ }
+}
diff --git a/src/com/android/phone/common/dialpad/DialpadView.java b/src/com/android/phone/common/dialpad/DialpadView.java
index 8d73e82..2b44b0d 100644
--- a/src/com/android/phone/common/dialpad/DialpadView.java
+++ b/src/com/android/phone/common/dialpad/DialpadView.java
@@ -280,32 +280,6 @@ public class DialpadView extends LinearLayout {
mCanDigitsBeEdited = canBeEdited;
}
- public void setCallRateInformation(String countryName, String displayRate,
- final PendingIntent p) {
- if (TextUtils.isEmpty(countryName) && TextUtils.isEmpty(displayRate) &&
- p == null) {
- mRateContainer.setVisibility(View.GONE);
- return;
- }
- mRateContainer.setVisibility(View.VISIBLE);
- mIldCountry.setText(countryName);
- mIldRate.setText(displayRate);
- mIldRate.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View view) {
- try {
- if (p != null) {
- p.send();
- } else {
- Log.wtf(TAG, "The intent we attempted to fire was null");
- }
- } catch (PendingIntent.CanceledException e) {
- e.printStackTrace();
- }
- }
- });
- }
-
public boolean canDigitsBeEdited() {
return mCanDigitsBeEdited;
}
@@ -512,4 +486,8 @@ public class DialpadView extends LinearLayout {
Context localeContext = getContext().createConfigurationContext(overrideConfig);
return localeContext.getResources();
}
+
+ public ViewGroup getRateContainer() {
+ return mRateContainer;
+ }
} \ No newline at end of file