Loading res/layout/world_clock_item.xml +15 −3 Original line number Diff line number Diff line Loading @@ -31,8 +31,20 @@ android:ellipsize="none" android:textColor="@color/clock_white" /> <FrameLayout android:layout_width="wrap_content" android:layout_height="wrap_content"> <include layout="@layout/desk_clock_time_small" android:id="@+id/digital_clock" android:layout_width="wrap_content" android:layout_height="wrap_content"/> <com.android.deskclock.AnalogClock android:id="@+id/analog_clock" android:layout_width="@dimen/world_clock_analog_size" android:layout_height="@dimen/world_clock_analog_size" android:layout_gravity="center_horizontal" android:dial="@drawable/clock_analog_dial" android:hand_hour="@drawable/clock_analog_hour" android:hand_minute="@drawable/clock_analog_minute"/> </FrameLayout> </LinearLayout> res/values-sw600dp/dimens.xml +3 −0 Original line number Diff line number Diff line Loading @@ -52,4 +52,7 @@ <!-- Width of the clock, for use with alarm buttons. --> <dimen name="alarm_alert_display_width">550dip</dimen> <!-- Size of analog clock in world clock. --> <dimen name="world_clock_analog_size">200dip</dimen> </resources> res/values/dimens.xml +3 −0 Original line number Diff line number Diff line Loading @@ -83,4 +83,7 @@ <!-- Width of the clock, for use with alarm buttons. --> <dimen name="alarm_alert_display_width">304dip</dimen> <!-- Size of analog clock in world clock. --> <dimen name="world_clock_analog_size">100dip</dimen> </resources> src/com/android/deskclock/AnalogClock.java +27 −10 Original line number Diff line number Diff line Loading @@ -58,6 +58,8 @@ public class AnalogClock extends View { private float mHour; private boolean mChanged; private final Context mContext; private String mTimeZoneId; private boolean mNoSeconds = false; private float mDotRadius; private float mDotOffset; Loading Loading @@ -216,6 +218,7 @@ public class AnalogClock extends View { hourHand.draw(canvas); canvas.restore(); if (!mNoSeconds) { canvas.save(); canvas.rotate(mSeconds / 60.0f * 360.0f, x, y); Loading @@ -227,7 +230,7 @@ public class AnalogClock extends View { } secondHand.draw(canvas); canvas.restore(); } canvas.save(); canvas.rotate(mMinutes / 60.0f * 360.0f, x, y); Loading @@ -248,6 +251,10 @@ public class AnalogClock extends View { private void onTimeChanged() { mCalendar.setToNow(); if (mTimeZoneId != null) { mCalendar.switchTimezone(mTimeZoneId); } int hour = mCalendar.hour; int minute = mCalendar.minute; int second = mCalendar.second; Loading Loading @@ -289,5 +296,15 @@ public class AnalogClock extends View { time.toMillis(false), flags); setContentDescription(contentDescription); } public void setTimeZone(String id) { mTimeZoneId = id; onTimeChanged(); } public void enableSeconds(boolean enable) { mNoSeconds = !enable; } } src/com/android/deskclock/ClockFragment.java +50 −12 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package com.android.deskclock; import android.content.Context; import android.content.SharedPreferences; import android.content.SharedPreferences.OnSharedPreferenceChangeListener; import android.os.Bundle; import android.preference.PreferenceManager; import android.text.format.DateFormat; Loading @@ -42,7 +43,7 @@ import java.util.TimeZone; /** * TODO: Insert description here. (generated by isaackatz) */ public class ClockFragment extends DeskClockFragment { public class ClockFragment extends DeskClockFragment implements OnSharedPreferenceChangeListener { private static final String BUTTONS_HIDDEN_KEY = "buttons_hidden"; Loading @@ -55,6 +56,9 @@ public class ClockFragment extends DeskClockFragment { View mDigitalClock, mAnalogClock; WorldClockAdapter mAdapter; ListView mList; String mClockStyle; SharedPreferences mPrefs; public ClockFragment() { } Loading @@ -77,24 +81,32 @@ public class ClockFragment extends DeskClockFragment { mAdapter = new WorldClockAdapter(getActivity()); mList.setAdapter(mAdapter); refreshAlarm(); mPrefs = PreferenceManager.getDefaultSharedPreferences(getActivity()); mClockStyle = mPrefs.getString(SettingsActivity.KEY_CLOCK_STYLE, "digital"); return v; } @Override public void onResume () { super.onResume(); mPrefs.registerOnSharedPreferenceChangeListener(this); refreshAlarm(); // updateDate(); // No date at this point mButtons.setAlpha(mButtonsHidden ? 0 : 1); setClockStyle(); // Resume can invoked after changing the cities list. if (mAdapter != null) { mAdapter.reloadData(getActivity()); } // Resume can invoked after changing the clock style. mClockStyle = mPrefs.getString(SettingsActivity.KEY_CLOCK_STYLE, "digital"); setClockStyle(); } @Override public void onPause() { super.onPause(); mPrefs.unregisterOnSharedPreferenceChangeListener(this); } @Override public void onSaveInstanceState (Bundle outState) { Loading @@ -103,9 +115,7 @@ public class ClockFragment extends DeskClockFragment { } private void setClockStyle() { SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(getActivity()); String style = sharedPref.getString(SettingsActivity.KEY_CLOCK_STYLE, "digital"); if (style.equals("analog")) { if (mClockStyle.equals("analog")) { mDigitalClock.setVisibility(View.GONE); mAnalogClock.setVisibility(View.VISIBLE); } else { Loading Loading @@ -153,10 +163,18 @@ public class ClockFragment extends DeskClockFragment { } } @Override public void onSharedPreferenceChanged(SharedPreferences prefs, String key) { if (key == SettingsActivity.KEY_CLOCK_STYLE) { mClockStyle = prefs.getString(SettingsActivity.KEY_CLOCK_STYLE, "digital"); } } private class WorldClockAdapter extends BaseAdapter { Object [] mCitiesList; LayoutInflater mInflater; private boolean mIs24HoursMode; @SuppressWarnings("hiding") Context mContext; public WorldClockAdapter(Context context) { Loading Loading @@ -226,14 +244,34 @@ public class ClockFragment extends DeskClockFragment { View rightClock = view.findViewById(R.id.city_right); CityObj c = (CityObj)mCitiesList[index]; ((TextView)leftClock.findViewById(R.id.city_name)).setText(c.mCityName); DigitalClock clock = (DigitalClock)(leftClock.findViewById(R.id.digital_clock)); clock.setTimeZone(c.mTimeZone); DigitalClock dclock = (DigitalClock)(leftClock.findViewById(R.id.digital_clock)); AnalogClock aclock = (AnalogClock)(leftClock.findViewById(R.id.analog_clock)); if (mClockStyle.equals("analog")) { dclock.setVisibility(View.GONE); aclock.setVisibility(View.VISIBLE); aclock.setTimeZone(c.mTimeZone); aclock.enableSeconds(false); } else { aclock.setVisibility(View.GONE); dclock.setVisibility(View.VISIBLE); dclock.setTimeZone(c.mTimeZone); } if (index + 1 < mCitiesList.length) { c = (CityObj)mCitiesList[index + 1]; rightClock.setVisibility(View.VISIBLE); c = (CityObj)mCitiesList[index + 1]; ((TextView)rightClock.findViewById(R.id.city_name)).setText(c.mCityName); clock = (DigitalClock)(rightClock.findViewById(R.id.digital_clock)); clock.setTimeZone(c.mTimeZone); dclock = (DigitalClock)(rightClock.findViewById(R.id.digital_clock)); aclock = (AnalogClock)(rightClock.findViewById(R.id.analog_clock)); if (mClockStyle.equals("analog")) { dclock.setVisibility(View.GONE); aclock.setVisibility(View.VISIBLE); aclock.setTimeZone(c.mTimeZone); aclock.enableSeconds(false); } else { aclock.setVisibility(View.GONE); dclock.setVisibility(View.VISIBLE); dclock.setTimeZone(c.mTimeZone); } } else { rightClock.setVisibility(View.INVISIBLE); } Loading Loading
res/layout/world_clock_item.xml +15 −3 Original line number Diff line number Diff line Loading @@ -31,8 +31,20 @@ android:ellipsize="none" android:textColor="@color/clock_white" /> <FrameLayout android:layout_width="wrap_content" android:layout_height="wrap_content"> <include layout="@layout/desk_clock_time_small" android:id="@+id/digital_clock" android:layout_width="wrap_content" android:layout_height="wrap_content"/> <com.android.deskclock.AnalogClock android:id="@+id/analog_clock" android:layout_width="@dimen/world_clock_analog_size" android:layout_height="@dimen/world_clock_analog_size" android:layout_gravity="center_horizontal" android:dial="@drawable/clock_analog_dial" android:hand_hour="@drawable/clock_analog_hour" android:hand_minute="@drawable/clock_analog_minute"/> </FrameLayout> </LinearLayout>
res/values-sw600dp/dimens.xml +3 −0 Original line number Diff line number Diff line Loading @@ -52,4 +52,7 @@ <!-- Width of the clock, for use with alarm buttons. --> <dimen name="alarm_alert_display_width">550dip</dimen> <!-- Size of analog clock in world clock. --> <dimen name="world_clock_analog_size">200dip</dimen> </resources>
res/values/dimens.xml +3 −0 Original line number Diff line number Diff line Loading @@ -83,4 +83,7 @@ <!-- Width of the clock, for use with alarm buttons. --> <dimen name="alarm_alert_display_width">304dip</dimen> <!-- Size of analog clock in world clock. --> <dimen name="world_clock_analog_size">100dip</dimen> </resources>
src/com/android/deskclock/AnalogClock.java +27 −10 Original line number Diff line number Diff line Loading @@ -58,6 +58,8 @@ public class AnalogClock extends View { private float mHour; private boolean mChanged; private final Context mContext; private String mTimeZoneId; private boolean mNoSeconds = false; private float mDotRadius; private float mDotOffset; Loading Loading @@ -216,6 +218,7 @@ public class AnalogClock extends View { hourHand.draw(canvas); canvas.restore(); if (!mNoSeconds) { canvas.save(); canvas.rotate(mSeconds / 60.0f * 360.0f, x, y); Loading @@ -227,7 +230,7 @@ public class AnalogClock extends View { } secondHand.draw(canvas); canvas.restore(); } canvas.save(); canvas.rotate(mMinutes / 60.0f * 360.0f, x, y); Loading @@ -248,6 +251,10 @@ public class AnalogClock extends View { private void onTimeChanged() { mCalendar.setToNow(); if (mTimeZoneId != null) { mCalendar.switchTimezone(mTimeZoneId); } int hour = mCalendar.hour; int minute = mCalendar.minute; int second = mCalendar.second; Loading Loading @@ -289,5 +296,15 @@ public class AnalogClock extends View { time.toMillis(false), flags); setContentDescription(contentDescription); } public void setTimeZone(String id) { mTimeZoneId = id; onTimeChanged(); } public void enableSeconds(boolean enable) { mNoSeconds = !enable; } }
src/com/android/deskclock/ClockFragment.java +50 −12 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package com.android.deskclock; import android.content.Context; import android.content.SharedPreferences; import android.content.SharedPreferences.OnSharedPreferenceChangeListener; import android.os.Bundle; import android.preference.PreferenceManager; import android.text.format.DateFormat; Loading @@ -42,7 +43,7 @@ import java.util.TimeZone; /** * TODO: Insert description here. (generated by isaackatz) */ public class ClockFragment extends DeskClockFragment { public class ClockFragment extends DeskClockFragment implements OnSharedPreferenceChangeListener { private static final String BUTTONS_HIDDEN_KEY = "buttons_hidden"; Loading @@ -55,6 +56,9 @@ public class ClockFragment extends DeskClockFragment { View mDigitalClock, mAnalogClock; WorldClockAdapter mAdapter; ListView mList; String mClockStyle; SharedPreferences mPrefs; public ClockFragment() { } Loading @@ -77,24 +81,32 @@ public class ClockFragment extends DeskClockFragment { mAdapter = new WorldClockAdapter(getActivity()); mList.setAdapter(mAdapter); refreshAlarm(); mPrefs = PreferenceManager.getDefaultSharedPreferences(getActivity()); mClockStyle = mPrefs.getString(SettingsActivity.KEY_CLOCK_STYLE, "digital"); return v; } @Override public void onResume () { super.onResume(); mPrefs.registerOnSharedPreferenceChangeListener(this); refreshAlarm(); // updateDate(); // No date at this point mButtons.setAlpha(mButtonsHidden ? 0 : 1); setClockStyle(); // Resume can invoked after changing the cities list. if (mAdapter != null) { mAdapter.reloadData(getActivity()); } // Resume can invoked after changing the clock style. mClockStyle = mPrefs.getString(SettingsActivity.KEY_CLOCK_STYLE, "digital"); setClockStyle(); } @Override public void onPause() { super.onPause(); mPrefs.unregisterOnSharedPreferenceChangeListener(this); } @Override public void onSaveInstanceState (Bundle outState) { Loading @@ -103,9 +115,7 @@ public class ClockFragment extends DeskClockFragment { } private void setClockStyle() { SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(getActivity()); String style = sharedPref.getString(SettingsActivity.KEY_CLOCK_STYLE, "digital"); if (style.equals("analog")) { if (mClockStyle.equals("analog")) { mDigitalClock.setVisibility(View.GONE); mAnalogClock.setVisibility(View.VISIBLE); } else { Loading Loading @@ -153,10 +163,18 @@ public class ClockFragment extends DeskClockFragment { } } @Override public void onSharedPreferenceChanged(SharedPreferences prefs, String key) { if (key == SettingsActivity.KEY_CLOCK_STYLE) { mClockStyle = prefs.getString(SettingsActivity.KEY_CLOCK_STYLE, "digital"); } } private class WorldClockAdapter extends BaseAdapter { Object [] mCitiesList; LayoutInflater mInflater; private boolean mIs24HoursMode; @SuppressWarnings("hiding") Context mContext; public WorldClockAdapter(Context context) { Loading Loading @@ -226,14 +244,34 @@ public class ClockFragment extends DeskClockFragment { View rightClock = view.findViewById(R.id.city_right); CityObj c = (CityObj)mCitiesList[index]; ((TextView)leftClock.findViewById(R.id.city_name)).setText(c.mCityName); DigitalClock clock = (DigitalClock)(leftClock.findViewById(R.id.digital_clock)); clock.setTimeZone(c.mTimeZone); DigitalClock dclock = (DigitalClock)(leftClock.findViewById(R.id.digital_clock)); AnalogClock aclock = (AnalogClock)(leftClock.findViewById(R.id.analog_clock)); if (mClockStyle.equals("analog")) { dclock.setVisibility(View.GONE); aclock.setVisibility(View.VISIBLE); aclock.setTimeZone(c.mTimeZone); aclock.enableSeconds(false); } else { aclock.setVisibility(View.GONE); dclock.setVisibility(View.VISIBLE); dclock.setTimeZone(c.mTimeZone); } if (index + 1 < mCitiesList.length) { c = (CityObj)mCitiesList[index + 1]; rightClock.setVisibility(View.VISIBLE); c = (CityObj)mCitiesList[index + 1]; ((TextView)rightClock.findViewById(R.id.city_name)).setText(c.mCityName); clock = (DigitalClock)(rightClock.findViewById(R.id.digital_clock)); clock.setTimeZone(c.mTimeZone); dclock = (DigitalClock)(rightClock.findViewById(R.id.digital_clock)); aclock = (AnalogClock)(rightClock.findViewById(R.id.analog_clock)); if (mClockStyle.equals("analog")) { dclock.setVisibility(View.GONE); aclock.setVisibility(View.VISIBLE); aclock.setTimeZone(c.mTimeZone); aclock.enableSeconds(false); } else { aclock.setVisibility(View.GONE); dclock.setVisibility(View.VISIBLE); dclock.setTimeZone(c.mTimeZone); } } else { rightClock.setVisibility(View.INVISIBLE); } Loading