diff --git a/res/drawable/ic_call_24dp.xml b/res/drawable/ic_call_24dp.xml new file mode 100644 index 00000000000..26bbde5f3ca --- /dev/null +++ b/res/drawable/ic_call_24dp.xml @@ -0,0 +1,29 @@ + + + + + diff --git a/res/layout/support_phone_dialog_content.xml b/res/layout/support_phone_dialog_content.xml new file mode 100644 index 00000000000..97bf567c1f6 --- /dev/null +++ b/res/layout/support_phone_dialog_content.xml @@ -0,0 +1,37 @@ + + + + + + \ No newline at end of file diff --git a/res/values/strings.xml b/res/values/strings.xml index 1086a979f55..09ded687a99 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -7530,6 +7530,11 @@ %s - %s + + + %s (%s) + + You\'re offline diff --git a/src/com/android/settings/dashboard/SupportItemAdapter.java b/src/com/android/settings/dashboard/SupportItemAdapter.java index 0c5a9c3fdd9..f1950a1ce98 100644 --- a/src/com/android/settings/dashboard/SupportItemAdapter.java +++ b/src/com/android/settings/dashboard/SupportItemAdapter.java @@ -41,6 +41,7 @@ import com.android.settings.R; import com.android.settings.overlay.SupportFeatureProvider; import com.android.settings.support.SupportDisclaimerDialogFragment; import com.android.settings.support.SupportPhone; +import com.android.settings.support.SupportPhoneDialogFragment; import java.util.ArrayList; import java.util.List; @@ -376,15 +377,23 @@ public final class SupportItemAdapter extends RecyclerView.Adapter CREATOR = new Creator() { + @Override + public SupportPhone createFromParcel(Parcel in) { + return new SupportPhone(in); + } + + @Override + public SupportPhone[] newArray(int size) { + return new SupportPhone[size]; + } + }; } diff --git a/src/com/android/settings/support/SupportPhoneDialogFragment.java b/src/com/android/settings/support/SupportPhoneDialogFragment.java new file mode 100644 index 00000000000..15d4a7d5e03 --- /dev/null +++ b/src/com/android/settings/support/SupportPhoneDialogFragment.java @@ -0,0 +1,71 @@ +/* + * Copyright (C) 2016 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.android.settings.support; + +import android.app.AlertDialog; +import android.app.Dialog; +import android.app.DialogFragment; +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.widget.TextView; + +import com.android.settings.R; + +import java.util.Locale; + +/** + * A dialog fragment that displays support phone numbers. + */ +public final class SupportPhoneDialogFragment extends DialogFragment implements + View.OnClickListener { + + public static final String TAG = "SupportPhoneDialog"; + private static final String EXTRA_PHONE = "extra_phone"; + + public static SupportPhoneDialogFragment newInstance(SupportPhone phone) { + final SupportPhoneDialogFragment fragment = new SupportPhoneDialogFragment(); + final Bundle bundle = new Bundle(2); + bundle.putParcelable(EXTRA_PHONE, phone); + fragment.setArguments(bundle); + return fragment; + } + + @Override + public Dialog onCreateDialog(Bundle savedInstanceState) { + final SupportPhone phone = getArguments().getParcelable(EXTRA_PHONE); + final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()) + .setTitle(R.string.support_international_phone_title); + final View content = LayoutInflater.from(builder.getContext()) + .inflate(R.layout.support_phone_dialog_content, null); + final TextView phoneView = (TextView) content.findViewById(R.id.phone_number); + final String formattedPhoneNumber = getContext().getString( + R.string.support_phone_international_format, + new Locale(phone.language).getDisplayLanguage(), phone.number); + phoneView.setText(formattedPhoneNumber); + phoneView.setOnClickListener(this); + return builder + .setView(content) + .create(); + } + + @Override + public void onClick(View v) { + final SupportPhone phone = getArguments().getParcelable(EXTRA_PHONE); + getActivity().startActivity(phone.getDialIntent()); + dismiss(); + } +}