diff options
10 files changed, 66 insertions, 9 deletions
diff --git a/main/AndroidManifest.xml b/main/AndroidManifest.xml index abd1adb..f764462 100644 --- a/main/AndroidManifest.xml +++ b/main/AndroidManifest.xml @@ -56,7 +56,6 @@ <activity android:name=".CachePopup" android:label="@string/app_name" - android:theme="@style/popup_dark" android:windowSoftInputMode="stateHidden" android:configChanges="keyboardHidden|orientation" > </activity> @@ -219,7 +218,6 @@ android:authorities="cgeo.geocaching.apps.locusdatastorageprovider" /> <activity android:name="WaypointPopup" android:label="@string/app_name" - android:theme="@style/popup_dark" android:windowSoftInputMode="stateHidden" android:configChanges="keyboardHidden|orientation" > </activity> diff --git a/main/res/values/themes.xml b/main/res/values/themes.xml index ee80059..fdc2eeb 100644 --- a/main/res/values/themes.xml +++ b/main/res/values/themes.xml @@ -122,4 +122,36 @@ <item name="compass">0</item> </style> + <!-- TODO: Popup probably doesn't need all these fields set. Should delete unnecessary ones. --> + <style name="popup_light" parent="cgeo_popup"> + <!-- system values --> + + <!-- own values: colors --> + <item name="android:windowBackground">@color/just_white</item> + <item name="text_color">@color/text_light</item> + <item name="text_color_headline">@color/text_headline_light</item> + <item name="text_color_grey">@color/text_grey_light</item> + <item name="text_color_hint">@color/text_hint_light</item> + <item name="background_color">@color/background_light</item> + <item name="background_color_notice">@color/background_light_notice</item> + <item name="background_color_transparent">@color/background_light_transparent</item> + <item name="separator_color">@color/separator_light</item> + + <!-- own values: drawables --> + <item name="button">@drawable/action_button_light</item> + <item name="input">@drawable/input_bcg_light</item> + <item name="inventory">@drawable/inventory_background_light</item> + <item name="favourite">@drawable/favourite_background_light</item> + <item name="favourite_r">@drawable/favourite_background_red_light</item> + <item name="favourite_o">@drawable/favourite_background_orange_light</item> + <item name="favourite_g">@drawable/favourite_background_green_light</item> + <item name="close">@drawable/map_close_light</item> + <item name="log_img_icon">@drawable/log_img_light</item> + <item name="actionbar_compass">@drawable/actionbar_compass_light</item> + <item name="progressSpinnerLarge">@android:style/Widget.ProgressBar.Large.Inverse</item> + + <!-- own values: other --> + <item name="compass">1</item> + </style> + </resources>
\ No newline at end of file diff --git a/main/src/cgeo/geocaching/AbstractPopupActivity.java b/main/src/cgeo/geocaching/AbstractPopupActivity.java index c38d5ea..f903d00 100644 --- a/main/src/cgeo/geocaching/AbstractPopupActivity.java +++ b/main/src/cgeo/geocaching/AbstractPopupActivity.java @@ -1,6 +1,7 @@ package cgeo.geocaching; import cgeo.geocaching.activity.AbstractActivity; +import cgeo.geocaching.activity.ActivityMixin; import cgeo.geocaching.apps.cache.navi.NavigationAppFactory; import cgeo.geocaching.enumerations.CacheSize; import cgeo.geocaching.enumerations.LoadFlags; @@ -129,6 +130,8 @@ public abstract class AbstractPopupActivity extends AbstractActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + // set theme + this.setTheme(ActivityMixin.getDialogTheme()); // set layout setContentView(layout); setTitle(res.getString(R.string.detail)); diff --git a/main/src/cgeo/geocaching/activity/ActivityMixin.java b/main/src/cgeo/geocaching/activity/ActivityMixin.java index 8900593..de2dade 100644 --- a/main/src/cgeo/geocaching/activity/ActivityMixin.java +++ b/main/src/cgeo/geocaching/activity/ActivityMixin.java @@ -79,6 +79,22 @@ public final class ActivityMixin { } } + public static int getTheme() { + if (Settings.isLightSkin()) { + return R.style.light; + } + + return R.style.dark; + } + + public static int getDialogTheme() { + if (Settings.isLightSkin()) { + return R.style.popup_light; + } + + return R.style.popup_dark; + } + public static void showToast(final Activity activity, final String text) { if (StringUtils.isNotBlank(text)) { Toast toast = Toast.makeText(activity, text, Toast.LENGTH_LONG); diff --git a/main/src/cgeo/geocaching/export/FieldnoteExport.java b/main/src/cgeo/geocaching/export/FieldnoteExport.java index 39eae0e..5e1805a 100644 --- a/main/src/cgeo/geocaching/export/FieldnoteExport.java +++ b/main/src/cgeo/geocaching/export/FieldnoteExport.java @@ -1,8 +1,8 @@ package cgeo.geocaching.export; +import cgeo.geocaching.Geocache; import cgeo.geocaching.LogEntry; import cgeo.geocaching.R; -import cgeo.geocaching.Geocache; import cgeo.geocaching.cgData; import cgeo.geocaching.activity.ActivityMixin; import cgeo.geocaching.activity.Progress; @@ -22,6 +22,7 @@ import android.app.Dialog; import android.content.DialogInterface; import android.os.AsyncTask; import android.os.Environment; +import android.view.ContextThemeWrapper; import android.view.View; import android.widget.CheckBox; @@ -70,7 +71,8 @@ class FieldnoteExport extends AbstractExport { private Dialog getExportOptionsDialog(final List<Geocache> caches, final Activity activity) { AlertDialog.Builder builder = new AlertDialog.Builder(activity); - View layout = activity.getLayoutInflater().inflate(R.layout.fieldnote_export_dialog, null); + // AlertDialog has always dark style, so we have to apply it as well always + View layout = View.inflate(new ContextThemeWrapper(activity, R.style.dark), R.layout.fieldnote_export_dialog, null); builder.setView(layout); final CheckBox uploadOption = (CheckBox) layout.findViewById(R.id.upload); diff --git a/main/src/cgeo/geocaching/export/GpxExport.java b/main/src/cgeo/geocaching/export/GpxExport.java index d130e1f..74ee072 100644 --- a/main/src/cgeo/geocaching/export/GpxExport.java +++ b/main/src/cgeo/geocaching/export/GpxExport.java @@ -28,6 +28,7 @@ import android.net.Uri; import android.os.AsyncTask; import android.os.Environment; import android.util.Xml; +import android.view.ContextThemeWrapper; import android.view.View; import android.widget.CheckBox; import android.widget.TextView; @@ -67,7 +68,8 @@ class GpxExport extends AbstractExport { private Dialog getExportDialog(final List<Geocache> caches, final Activity activity) { AlertDialog.Builder builder = new AlertDialog.Builder(activity); - View layout = activity.getLayoutInflater().inflate(R.layout.gpx_export_dialog, null); + // AlertDialog has always dark style, so we have to apply it as well always + View layout = View.inflate(new ContextThemeWrapper(activity, R.style.dark), R.layout.gpx_export_dialog, null); builder.setView(layout); final TextView text = (TextView) layout.findViewById(R.id.info); diff --git a/main/src/cgeo/geocaching/ui/dialog/CoordinatesInputDialog.java b/main/src/cgeo/geocaching/ui/dialog/CoordinatesInputDialog.java index 224d527..dada8fd 100644 --- a/main/src/cgeo/geocaching/ui/dialog/CoordinatesInputDialog.java +++ b/main/src/cgeo/geocaching/ui/dialog/CoordinatesInputDialog.java @@ -47,7 +47,7 @@ public class CoordinatesInputDialog extends Dialog { private coordInputFormatEnum currentFormat = null; public CoordinatesInputDialog(final AbstractActivity context, final Geocache cache, final Geopoint gp, final IGeoData geo) { - super(context); + super(context, ActivityMixin.getTheme()); this.context = context; this.geo = geo; this.cache = cache; diff --git a/main/src/cgeo/geocaching/ui/dialog/CustomProgressDialog.java b/main/src/cgeo/geocaching/ui/dialog/CustomProgressDialog.java index 93d4b87..c2b722c 100644 --- a/main/src/cgeo/geocaching/ui/dialog/CustomProgressDialog.java +++ b/main/src/cgeo/geocaching/ui/dialog/CustomProgressDialog.java @@ -1,5 +1,6 @@ package cgeo.geocaching.ui.dialog; +import cgeo.geocaching.activity.ActivityMixin; import cgeo.geocaching.utils.Log; import android.app.ProgressDialog; @@ -18,7 +19,7 @@ import java.lang.reflect.Method; public class CustomProgressDialog extends ProgressDialog { public CustomProgressDialog(Context context) { - super(context); + super(context, ActivityMixin.getTheme()); } @Override diff --git a/main/src/cgeo/geocaching/ui/dialog/EditorDialog.java b/main/src/cgeo/geocaching/ui/dialog/EditorDialog.java index c73e25d..4db69e5 100644 --- a/main/src/cgeo/geocaching/ui/dialog/EditorDialog.java +++ b/main/src/cgeo/geocaching/ui/dialog/EditorDialog.java @@ -2,6 +2,7 @@ package cgeo.geocaching.ui.dialog; import cgeo.geocaching.CacheDetailActivity; import cgeo.geocaching.R; +import cgeo.geocaching.activity.ActivityMixin; import android.app.Dialog; import android.os.Bundle; @@ -17,7 +18,7 @@ public class EditorDialog extends Dialog { private EditorUpdate editorUpdate; public EditorDialog(CacheDetailActivity cacheDetailActivity, CharSequence editable) { - super(cacheDetailActivity); + super(cacheDetailActivity, ActivityMixin.getTheme()); this.editorText = editable; } diff --git a/main/src/cgeo/geocaching/ui/dialog/LiveMapInfoDialogBuilder.java b/main/src/cgeo/geocaching/ui/dialog/LiveMapInfoDialogBuilder.java index 9955958..862b1a0 100644 --- a/main/src/cgeo/geocaching/ui/dialog/LiveMapInfoDialogBuilder.java +++ b/main/src/cgeo/geocaching/ui/dialog/LiveMapInfoDialogBuilder.java @@ -7,6 +7,7 @@ import cgeo.geocaching.cgeoapplication; import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; +import android.view.ContextThemeWrapper; import android.view.View; import android.widget.CheckBox; @@ -15,7 +16,8 @@ public class LiveMapInfoDialogBuilder { public static AlertDialog create(Activity activity) { final AlertDialog.Builder builder = new AlertDialog.Builder(activity); - final View layout = activity.getLayoutInflater().inflate(R.layout.livemapinfo, null); + // AlertDialog has always dark style, so we have to apply it as well always + final View layout = View.inflate(new ContextThemeWrapper(activity, R.style.dark), R.layout.livemapinfo, null); builder.setView(layout); final CheckBox checkBoxHide = (CheckBox) layout.findViewById(R.id.live_map_hint_hide); |
