diff options
author | Stephen Bird <sbird@cyngn.com> | 2016-02-11 17:59:18 -0800 |
---|---|---|
committer | Richard MacGregor <rmacgregor@cyngn.com> | 2016-04-08 10:42:50 -0700 |
commit | 95562ec70e8c61a010a77279540a1149844d11ce (patch) | |
tree | d21be8ab6f432f65241a2a707dcbada20ff2f025 | |
parent | e920421836093475f6325eca467d7d266586edda (diff) | |
download | android_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.java | 93 | ||||
-rw-r--r-- | src/com/android/phone/common/dialpad/DialpadView.java | 30 |
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 |