From ab1226fa318de1f5403f5dc8365e39d59ef78569 Mon Sep 17 00:00:00 2001 From: Jimmy Shih Date: Mon, 25 Nov 2013 15:09:12 -0800 Subject: [PATCH] Set dialog title divider for dialogfragment --- .../fragments/AboutDialogFragment.java | 6 +-- .../AbstractMyTracksDialogFragment.java | 47 +++++++++++++++++++ .../ChooseAccountDialogFragment.java | 5 +- .../ChooseActivityDialogFragment.java | 6 +-- .../ChooseActivityTypeDialogFragment.java | 2 + .../ConfirmDeleteDialogFragment.java | 5 +- .../fragments/ConfirmSyncDialogFragment.java | 5 +- .../fragments/DeleteMarkerDialogFragment.java | 5 +- .../fragments/EnableSyncDialogFragment.java | 5 +- .../fragments/EulaDialogFragment.java | 5 +- .../fragments/ExportDialogFragment.java | 6 +-- .../fragments/FileTypeDialogFragment.java | 5 +- .../fragments/FrequencyDialogFragment.java | 5 +- .../fragments/InstallEarthDialogFragment.java | 6 +-- .../fragments/MergeDialogFragment.java | 5 +- .../fragments/ShareTrackDialogFragment.java | 5 +- .../apps/mytracks/util/Api11Adapter.java | 5 ++ .../apps/mytracks/util/Api8Adapter.java | 26 ++++++---- .../apps/mytracks/util/ApiAdapter.java | 9 +++- .../apps/mytracks/util/DialogUtils.java | 20 ++++++++ 20 files changed, 126 insertions(+), 57 deletions(-) create mode 100644 MyTracks/src/com/google/android/apps/mytracks/fragments/AbstractMyTracksDialogFragment.java diff --git a/MyTracks/src/com/google/android/apps/mytracks/fragments/AboutDialogFragment.java b/MyTracks/src/com/google/android/apps/mytracks/fragments/AboutDialogFragment.java index 5f4c457ff..044693d41 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/fragments/AboutDialogFragment.java +++ b/MyTracks/src/com/google/android/apps/mytracks/fragments/AboutDialogFragment.java @@ -23,8 +23,6 @@ import android.app.Activity; import android.app.AlertDialog; import android.app.Dialog; import android.content.DialogInterface; -import android.os.Bundle; -import android.support.v4.app.DialogFragment; import android.support.v4.app.FragmentActivity; import android.view.View; import android.widget.TextView; @@ -34,7 +32,7 @@ import android.widget.TextView; * * @author Jimmy Shih */ -public class AboutDialogFragment extends DialogFragment { +public class AboutDialogFragment extends AbstractMyTracksDialogFragment { /** * Interface for caller of this dialog fragment. @@ -66,7 +64,7 @@ public class AboutDialogFragment extends DialogFragment { } @Override - public Dialog onCreateDialog(Bundle savedInstanceState) { + protected Dialog createDialog() { fragmentActivity = getActivity(); View view = fragmentActivity.getLayoutInflater().inflate(R.layout.about, null); TextView aboutVersion = (TextView) view.findViewById(R.id.about_version); diff --git a/MyTracks/src/com/google/android/apps/mytracks/fragments/AbstractMyTracksDialogFragment.java b/MyTracks/src/com/google/android/apps/mytracks/fragments/AbstractMyTracksDialogFragment.java new file mode 100644 index 000000000..f8d3a6d83 --- /dev/null +++ b/MyTracks/src/com/google/android/apps/mytracks/fragments/AbstractMyTracksDialogFragment.java @@ -0,0 +1,47 @@ +/* + * Copyright 2013 Google Inc. + * + * 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.google.android.apps.mytracks.fragments; + +import com.google.android.apps.mytracks.util.DialogUtils; + +import android.app.Dialog; +import android.content.DialogInterface; +import android.os.Bundle; +import android.support.v4.app.DialogFragment; + +/** + * Abstract My Tracks DialogFragment. + * + * @author Jimmy Shih + */ +public abstract class AbstractMyTracksDialogFragment extends DialogFragment { + + @Override + public Dialog onCreateDialog(Bundle savedInstanceState) { + final Dialog dialog = createDialog(); + dialog.setOnShowListener(new DialogInterface.OnShowListener() { + + @Override + public void onShow(DialogInterface dialogInterface) { + DialogUtils.setTitleDivier(getActivity(), dialog); + } + }); + return dialog; + } + + protected abstract Dialog createDialog(); +} \ No newline at end of file diff --git a/MyTracks/src/com/google/android/apps/mytracks/fragments/ChooseAccountDialogFragment.java b/MyTracks/src/com/google/android/apps/mytracks/fragments/ChooseAccountDialogFragment.java index 0adb3c39d..2ee648b29 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/fragments/ChooseAccountDialogFragment.java +++ b/MyTracks/src/com/google/android/apps/mytracks/fragments/ChooseAccountDialogFragment.java @@ -28,7 +28,6 @@ import android.app.Dialog; import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; import android.os.Bundle; -import android.support.v4.app.DialogFragment; import android.support.v4.app.FragmentActivity; /** @@ -36,7 +35,7 @@ import android.support.v4.app.FragmentActivity; * * @author Jimmy Shih */ -public class ChooseAccountDialogFragment extends DialogFragment { +public class ChooseAccountDialogFragment extends AbstractMyTracksDialogFragment { /** * Interface for caller of this dialog fragment. @@ -93,7 +92,7 @@ public class ChooseAccountDialogFragment extends DialogFragment { } @Override - public Dialog onCreateDialog(Bundle savedInstanceState) { + protected Dialog createDialog() { if (accounts.length == 0) { return new AlertDialog.Builder(fragmentActivity).setMessage( R.string.send_google_no_account_message).setTitle(R.string.send_google_no_account_title) diff --git a/MyTracks/src/com/google/android/apps/mytracks/fragments/ChooseActivityDialogFragment.java b/MyTracks/src/com/google/android/apps/mytracks/fragments/ChooseActivityDialogFragment.java index 1dba7e249..230f2bf27 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/fragments/ChooseActivityDialogFragment.java +++ b/MyTracks/src/com/google/android/apps/mytracks/fragments/ChooseActivityDialogFragment.java @@ -28,8 +28,6 @@ import android.content.pm.ActivityInfo; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.graphics.drawable.Drawable; -import android.os.Bundle; -import android.support.v4.app.DialogFragment; import android.support.v4.app.FragmentActivity; import android.support.v4.app.ShareCompat; import android.view.View; @@ -48,7 +46,7 @@ import java.util.List; * * @author Jimmy Shih */ -public class ChooseActivityDialogFragment extends DialogFragment { +public class ChooseActivityDialogFragment extends AbstractMyTracksDialogFragment { /** * Interface for caller of this dialog fragment. @@ -81,7 +79,7 @@ public class ChooseActivityDialogFragment extends DialogFragment { } @Override - public Dialog onCreateDialog(Bundle savedInstanceState) { + protected Dialog createDialog() { fragmentActivity = getActivity(); packageManager = fragmentActivity.getPackageManager(); List displayInfos = getDisplayInfos(); diff --git a/MyTracks/src/com/google/android/apps/mytracks/fragments/ChooseActivityTypeDialogFragment.java b/MyTracks/src/com/google/android/apps/mytracks/fragments/ChooseActivityTypeDialogFragment.java index 6f10a5caf..ed522904b 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/fragments/ChooseActivityTypeDialogFragment.java +++ b/MyTracks/src/com/google/android/apps/mytracks/fragments/ChooseActivityTypeDialogFragment.java @@ -17,6 +17,7 @@ package com.google.android.apps.mytracks.fragments; import com.google.android.apps.mytracks.util.ApiAdapterFactory; +import com.google.android.apps.mytracks.util.DialogUtils; import com.google.android.apps.mytracks.util.PreferencesUtils; import com.google.android.apps.mytracks.util.StringUtils; import com.google.android.apps.mytracks.util.TrackIconUtils; @@ -172,6 +173,7 @@ public class ChooseActivityTypeDialogFragment extends DialogFragment { } updateWeightContainer(weightContainer, position); weight.setText(weightValue); + DialogUtils.setTitleDivier(activity, alertDialog); } }); diff --git a/MyTracks/src/com/google/android/apps/mytracks/fragments/ConfirmDeleteDialogFragment.java b/MyTracks/src/com/google/android/apps/mytracks/fragments/ConfirmDeleteDialogFragment.java index 4774a113b..a1d071e06 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/fragments/ConfirmDeleteDialogFragment.java +++ b/MyTracks/src/com/google/android/apps/mytracks/fragments/ConfirmDeleteDialogFragment.java @@ -23,14 +23,13 @@ import android.app.Activity; import android.app.Dialog; import android.content.DialogInterface; import android.os.Bundle; -import android.support.v4.app.DialogFragment; /** * A DialogFragment to confirm delete. * * @author Jimmy Shih */ -public class ConfirmDeleteDialogFragment extends DialogFragment { +public class ConfirmDeleteDialogFragment extends AbstractMyTracksDialogFragment { /** * Interface for caller of this dialog fragment. @@ -80,7 +79,7 @@ public class ConfirmDeleteDialogFragment extends DialogFragment { } @Override - public Dialog onCreateDialog(Bundle savedInstanceState) { + protected Dialog createDialog() { final long[] trackIds = getArguments().getLongArray(KEY_TRACK_IDS); int titleId; int messageId; diff --git a/MyTracks/src/com/google/android/apps/mytracks/fragments/ConfirmSyncDialogFragment.java b/MyTracks/src/com/google/android/apps/mytracks/fragments/ConfirmSyncDialogFragment.java index 89867d894..13867d4c8 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/fragments/ConfirmSyncDialogFragment.java +++ b/MyTracks/src/com/google/android/apps/mytracks/fragments/ConfirmSyncDialogFragment.java @@ -25,7 +25,6 @@ import android.app.Dialog; import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; import android.os.Bundle; -import android.support.v4.app.DialogFragment; import android.support.v4.app.FragmentActivity; /** @@ -33,7 +32,7 @@ import android.support.v4.app.FragmentActivity; * * @author Jimmy Shih */ -public class ConfirmSyncDialogFragment extends DialogFragment { +public class ConfirmSyncDialogFragment extends AbstractMyTracksDialogFragment { /** * Interface for caller of this dialog fragment. @@ -77,7 +76,7 @@ public class ConfirmSyncDialogFragment extends DialogFragment { } @Override - public Dialog onCreateDialog(Bundle savedInstanceState) { + protected Dialog createDialog() { String googleAccount = PreferencesUtils.getString( fragmentActivity, R.string.google_account_key, PreferencesUtils.GOOGLE_ACCOUNT_DEFAULT); String message = getString( diff --git a/MyTracks/src/com/google/android/apps/mytracks/fragments/DeleteMarkerDialogFragment.java b/MyTracks/src/com/google/android/apps/mytracks/fragments/DeleteMarkerDialogFragment.java index 8c7062169..bf79840ed 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/fragments/DeleteMarkerDialogFragment.java +++ b/MyTracks/src/com/google/android/apps/mytracks/fragments/DeleteMarkerDialogFragment.java @@ -25,7 +25,6 @@ import android.app.Activity; import android.app.Dialog; import android.content.DialogInterface; import android.os.Bundle; -import android.support.v4.app.DialogFragment; import android.support.v4.app.FragmentActivity; /** @@ -33,7 +32,7 @@ import android.support.v4.app.FragmentActivity; * * @author Jimmy Shih */ -public class DeleteMarkerDialogFragment extends DialogFragment { +public class DeleteMarkerDialogFragment extends AbstractMyTracksDialogFragment { /** * Interface for caller of this dialog fragment. @@ -74,7 +73,7 @@ public class DeleteMarkerDialogFragment extends DialogFragment { } @Override - public Dialog onCreateDialog(Bundle savedInstanceState) { + protected Dialog createDialog() { final FragmentActivity fragmentActivity = getActivity(); final long[] markerIds = getArguments().getLongArray(KEY_MARKER_IDS); int titleId = markerIds.length > 1 ? R.string.generic_delete_selected_confirm_title diff --git a/MyTracks/src/com/google/android/apps/mytracks/fragments/EnableSyncDialogFragment.java b/MyTracks/src/com/google/android/apps/mytracks/fragments/EnableSyncDialogFragment.java index d19a0e2f6..ae2730bec 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/fragments/EnableSyncDialogFragment.java +++ b/MyTracks/src/com/google/android/apps/mytracks/fragments/EnableSyncDialogFragment.java @@ -25,7 +25,6 @@ import android.app.Dialog; import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; import android.os.Bundle; -import android.support.v4.app.DialogFragment; import android.support.v4.app.FragmentActivity; /** @@ -33,7 +32,7 @@ import android.support.v4.app.FragmentActivity; * * @author Jimmy Shih */ -public class EnableSyncDialogFragment extends DialogFragment { +public class EnableSyncDialogFragment extends AbstractMyTracksDialogFragment { /** * Interface for caller of this dialog fragment. @@ -77,7 +76,7 @@ public class EnableSyncDialogFragment extends DialogFragment { } @Override - public Dialog onCreateDialog(Bundle savedInstanceState) { + protected Dialog createDialog() { return new AlertDialog.Builder(fragmentActivity).setMessage(R.string.sync_drive_enable_message) .setNegativeButton(R.string.generic_no, new OnClickListener() { @Override diff --git a/MyTracks/src/com/google/android/apps/mytracks/fragments/EulaDialogFragment.java b/MyTracks/src/com/google/android/apps/mytracks/fragments/EulaDialogFragment.java index 4c7f15a51..c90dda157 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/fragments/EulaDialogFragment.java +++ b/MyTracks/src/com/google/android/apps/mytracks/fragments/EulaDialogFragment.java @@ -24,7 +24,6 @@ import android.app.AlertDialog; import android.app.Dialog; import android.content.DialogInterface; import android.os.Bundle; -import android.support.v4.app.DialogFragment; import android.support.v4.app.FragmentActivity; import android.text.SpannableString; import android.text.method.LinkMovementMethod; @@ -37,7 +36,7 @@ import android.widget.TextView; * * @author Jimmy Shih */ -public class EulaDialogFragment extends DialogFragment { +public class EulaDialogFragment extends AbstractMyTracksDialogFragment { /** * Interface for caller of this dialog fragment. @@ -86,7 +85,7 @@ public class EulaDialogFragment extends DialogFragment { } @Override - public Dialog onCreateDialog(Bundle savedInstanceState) { + protected Dialog createDialog() { fragmentActivity = getActivity(); boolean hasAccepted = getArguments().getBoolean(KEY_HAS_ACCEPTED); diff --git a/MyTracks/src/com/google/android/apps/mytracks/fragments/ExportDialogFragment.java b/MyTracks/src/com/google/android/apps/mytracks/fragments/ExportDialogFragment.java index 170ef62d3..7afe3f680 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/fragments/ExportDialogFragment.java +++ b/MyTracks/src/com/google/android/apps/mytracks/fragments/ExportDialogFragment.java @@ -25,8 +25,6 @@ import android.app.Activity; import android.app.AlertDialog; import android.app.Dialog; import android.content.DialogInterface; -import android.os.Bundle; -import android.support.v4.app.DialogFragment; import android.support.v4.app.FragmentActivity; import android.view.View; import android.widget.RadioButton; @@ -38,7 +36,7 @@ import android.widget.RadioGroup.OnCheckedChangeListener; * * @author Jimmy Shih */ -public class ExportDialogFragment extends DialogFragment { +public class ExportDialogFragment extends AbstractMyTracksDialogFragment { /** * Export types. @@ -82,7 +80,7 @@ public class ExportDialogFragment extends DialogFragment { } @Override - public Dialog onCreateDialog(Bundle savedInstanceState) { + protected Dialog createDialog() { FragmentActivity fragmentActivity = getActivity(); View view = fragmentActivity.getLayoutInflater().inflate(R.layout.export, null); diff --git a/MyTracks/src/com/google/android/apps/mytracks/fragments/FileTypeDialogFragment.java b/MyTracks/src/com/google/android/apps/mytracks/fragments/FileTypeDialogFragment.java index 5b9cd3135..88ed1c73b 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/fragments/FileTypeDialogFragment.java +++ b/MyTracks/src/com/google/android/apps/mytracks/fragments/FileTypeDialogFragment.java @@ -26,14 +26,13 @@ import android.app.Dialog; import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; import android.os.Bundle; -import android.support.v4.app.DialogFragment; /** * A DialogFragment to select a file type, gpx, kml, etc. * * @author Jimmy Shih */ -public class FileTypeDialogFragment extends DialogFragment { +public class FileTypeDialogFragment extends AbstractMyTracksDialogFragment { /** * Interface for caller of this dialog fragment. @@ -82,7 +81,7 @@ public class FileTypeDialogFragment extends DialogFragment { } @Override - public Dialog onCreateDialog(Bundle savedInstanceState) { + protected Dialog createDialog() { int size = getArguments().getInt(KEY_SIZE); int optionId = getArguments().getInt(KEY_OPTION_ID); final int titleId = getArguments().getInt(KEY_TITLE_ID); diff --git a/MyTracks/src/com/google/android/apps/mytracks/fragments/FrequencyDialogFragment.java b/MyTracks/src/com/google/android/apps/mytracks/fragments/FrequencyDialogFragment.java index 0816ddb72..3e95aa647 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/fragments/FrequencyDialogFragment.java +++ b/MyTracks/src/com/google/android/apps/mytracks/fragments/FrequencyDialogFragment.java @@ -24,7 +24,6 @@ import android.app.AlertDialog; import android.app.Dialog; import android.content.DialogInterface; import android.os.Bundle; -import android.support.v4.app.DialogFragment; import android.support.v4.app.FragmentActivity; /** @@ -32,7 +31,7 @@ import android.support.v4.app.FragmentActivity; * * @author Jimmy Shih */ -public class FrequencyDialogFragment extends DialogFragment { +public class FrequencyDialogFragment extends AbstractMyTracksDialogFragment { public static final String FREQUENCY_DIALOG_TAG = "frequencyDialog"; @@ -55,7 +54,7 @@ public class FrequencyDialogFragment extends DialogFragment { private FragmentActivity fragmentActivity; @Override - public Dialog onCreateDialog(Bundle savedInstanceState) { + protected Dialog createDialog() { fragmentActivity = getActivity(); final int preferenceId = getArguments().getInt(KEY_PREFERENCE_ID); diff --git a/MyTracks/src/com/google/android/apps/mytracks/fragments/InstallEarthDialogFragment.java b/MyTracks/src/com/google/android/apps/mytracks/fragments/InstallEarthDialogFragment.java index ed86f34bc..3b0d78fb6 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/fragments/InstallEarthDialogFragment.java +++ b/MyTracks/src/com/google/android/apps/mytracks/fragments/InstallEarthDialogFragment.java @@ -25,8 +25,6 @@ import android.content.ActivityNotFoundException; import android.content.DialogInterface; import android.content.Intent; import android.net.Uri; -import android.os.Bundle; -import android.support.v4.app.DialogFragment; import android.support.v4.app.FragmentActivity; import android.widget.Toast; @@ -35,14 +33,14 @@ import android.widget.Toast; * * @author Jimmy Shih */ -public class InstallEarthDialogFragment extends DialogFragment { +public class InstallEarthDialogFragment extends AbstractMyTracksDialogFragment { public static final String INSTALL_EARTH_DIALOG_TAG = "installEarthDialog"; private FragmentActivity fragmentActivity; @Override - public Dialog onCreateDialog(Bundle savedInstanceState) { + protected Dialog createDialog() { fragmentActivity = getActivity(); return new AlertDialog.Builder(fragmentActivity).setMessage( R.string.track_detail_install_earth_message).setNegativeButton(R.string.generic_no, null) diff --git a/MyTracks/src/com/google/android/apps/mytracks/fragments/MergeDialogFragment.java b/MyTracks/src/com/google/android/apps/mytracks/fragments/MergeDialogFragment.java index 09602f6c2..62873d364 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/fragments/MergeDialogFragment.java +++ b/MyTracks/src/com/google/android/apps/mytracks/fragments/MergeDialogFragment.java @@ -27,7 +27,6 @@ import android.app.Dialog; import android.content.DialogInterface; import android.database.Cursor; import android.os.Bundle; -import android.support.v4.app.DialogFragment; import android.util.SparseBooleanArray; import java.util.ArrayList; @@ -37,7 +36,7 @@ import java.util.ArrayList; * * @author Jimmy Shih */ -public class MergeDialogFragment extends DialogFragment { +public class MergeDialogFragment extends AbstractMyTracksDialogFragment { public static final String MERGE_DIALOG_TAG = "mergeDialog"; @@ -82,7 +81,7 @@ public class MergeDialogFragment extends DialogFragment { } @Override - public Dialog onCreateDialog(Bundle savedInstanceState) { + protected Dialog createDialog() { loadData(); return new AlertDialog.Builder(getActivity()).setMultiChoiceItems(items, checkedItems, null) .setNegativeButton(R.string.generic_cancel, null) diff --git a/MyTracks/src/com/google/android/apps/mytracks/fragments/ShareTrackDialogFragment.java b/MyTracks/src/com/google/android/apps/mytracks/fragments/ShareTrackDialogFragment.java index ac3e3f5ea..8dab973c8 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/fragments/ShareTrackDialogFragment.java +++ b/MyTracks/src/com/google/android/apps/mytracks/fragments/ShareTrackDialogFragment.java @@ -27,7 +27,6 @@ import android.database.Cursor; import android.net.Uri; import android.os.Bundle; import android.provider.ContactsContract; -import android.support.v4.app.DialogFragment; import android.support.v4.app.FragmentActivity; import android.support.v4.widget.SimpleCursorAdapter; import android.view.View; @@ -43,7 +42,7 @@ import android.widget.Toast; * * @author Jimmy Shih */ -public class ShareTrackDialogFragment extends DialogFragment { +public class ShareTrackDialogFragment extends AbstractMyTracksDialogFragment { /** * Interface for caller of this dialog fragment. @@ -92,7 +91,7 @@ public class ShareTrackDialogFragment extends DialogFragment { } @Override - public Dialog onCreateDialog(Bundle savedInstanceState) { + protected Dialog createDialog() { fragmentActivity = getActivity(); View view = fragmentActivity.getLayoutInflater().inflate(R.layout.share_track, null); diff --git a/MyTracks/src/com/google/android/apps/mytracks/util/Api11Adapter.java b/MyTracks/src/com/google/android/apps/mytracks/util/Api11Adapter.java index 1f22b81b3..7831aa02e 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/util/Api11Adapter.java +++ b/MyTracks/src/com/google/android/apps/mytracks/util/Api11Adapter.java @@ -184,4 +184,9 @@ public class Api11Adapter extends Api10Adapter { tabWidget.getChildAt(i).setBackgroundResource(R.drawable.tab_indicator_mytracks); } } + + @Override + public boolean hasDialogTitleDivider() { + return true; + } } diff --git a/MyTracks/src/com/google/android/apps/mytracks/util/Api8Adapter.java b/MyTracks/src/com/google/android/apps/mytracks/util/Api8Adapter.java index aef7cf8eb..d5b8cca9c 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/util/Api8Adapter.java +++ b/MyTracks/src/com/google/android/apps/mytracks/util/Api8Adapter.java @@ -43,13 +43,13 @@ import java.util.List; /** * API level 8 specific implementation of the {@link ApiAdapter}. - * + * * @author Bartlomiej Niechwiej */ public class Api8Adapter implements ApiAdapter { private static final String TAG = Api8Adapter.class.getSimpleName(); - + @Override public void applyPreferenceChanges(Editor editor) { editor.commit(); @@ -101,7 +101,8 @@ public class Api8Adapter implements ApiAdapter { } catch (InvocationTargetException e) { Log.d(TAG, "Unable to create insecure connection", e); } - return bluetoothDevice.createRfcommSocketToServiceRecord(BluetoothConnectionManager.MY_TRACKS_UUID); + return bluetoothDevice.createRfcommSocketToServiceRecord( + BluetoothConnectionManager.MY_TRACKS_UUID); } @Override @@ -143,23 +144,28 @@ public class Api8Adapter implements ApiAdapter { public void invalidMenu(Activity activity) { // Do nothing } - + @Override public boolean showEditTextClearButton() { return false; } - + @Override public void setTabBackground(TabWidget tabWidget) { - // Do nothing + // Do nothing } - + + @Override + public boolean hasDialogTitleDivider() { + return false; + } + @Override public boolean handleSearchKey(MenuItem menuItem) { // Return false and allow the framework to handle the search key. return false; } - + @Override public boolean isGoogleFeedbackAvailable() { return false; @@ -172,13 +178,13 @@ public class Api8Adapter implements ApiAdapter { @Override public void setAppWidgetSize(AppWidgetManager appWidgetManager, int appWidgetId, int size) { - // Do nothing + // Do nothing } @SuppressWarnings("deprecation") @Override public void removeGlobalLayoutListener( ViewTreeObserver observer, OnGlobalLayoutListener listener) { - observer.removeGlobalOnLayoutListener(listener); + observer.removeGlobalOnLayoutListener(listener); } } diff --git a/MyTracks/src/com/google/android/apps/mytracks/util/ApiAdapter.java b/MyTracks/src/com/google/android/apps/mytracks/util/ApiAdapter.java index 53aac42bb..d84465335 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/util/ApiAdapter.java +++ b/MyTracks/src/com/google/android/apps/mytracks/util/ApiAdapter.java @@ -191,7 +191,14 @@ public interface ApiAdapter { * @param tabWidget the tab widget */ public void setTabBackground(TabWidget tabWidget); - + + /** + * Returns true if has dialog title divider. + *

+ * Due to changes in API level 11. + */ + public boolean hasDialogTitleDivider(); + /** * Handles the search key press. Returns true if handled. *

diff --git a/MyTracks/src/com/google/android/apps/mytracks/util/DialogUtils.java b/MyTracks/src/com/google/android/apps/mytracks/util/DialogUtils.java index 733e1177d..a71fec673 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/util/DialogUtils.java +++ b/MyTracks/src/com/google/android/apps/mytracks/util/DialogUtils.java @@ -23,6 +23,10 @@ import android.app.Dialog; import android.app.ProgressDialog; import android.content.Context; import android.content.DialogInterface; +import android.view.View; +import android.view.ViewGroup; +import android.widget.FrameLayout; +import android.widget.LinearLayout; /** * Utilities for creating dialogs. @@ -101,4 +105,20 @@ public class DialogUtils { progressDialog.setTitle(R.string.generic_progress_title); return progressDialog; } + + public static void setTitleDivier(Context context, Dialog dialog) { + if (ApiAdapterFactory.getApiAdapter().hasDialogTitleDivider()) { + try { + ViewGroup decorView = (ViewGroup) dialog.getWindow().getDecorView(); + FrameLayout windowContentView = (FrameLayout) decorView.getChildAt(0); + FrameLayout contentView = (FrameLayout) windowContentView.getChildAt(0); + LinearLayout parentPanel = (LinearLayout) contentView.getChildAt(0); + LinearLayout topPanel = (LinearLayout) parentPanel.getChildAt(0); + View titleDivider = topPanel.getChildAt(2); + titleDivider.setBackgroundColor(context.getResources().getColor(R.color.holo_orange_dark)); + } catch (Exception e) { + // Can safely ignore + } + } + } }