List of usage examples for android.text.format Time set
public void set(Time that)
From source file:de.ribeiro.android.gso.dataclasses.Pager.java
/** * Erstellt eine Stundeplan Seite des ViewPagers, inkl Header und Footer * <p/>/* w w w . ja v a 2s.c o m*/ * Hier wird die Wochenansicht generiert * * @param weekData * @param ctxt * @return * @author Tobias Janssen */ private View createWeekPage(WeekData weekData) { // in die Page kommen alle Elemente dieser Ansicht View page = inflater.inflate(R.layout.weeklayout, null); TableLayout tl = (TableLayout) page.findViewById(R.id.weekTimetable); LinearLayoutBordered ll = new LinearLayoutBordered(context); // Tagesberschrift erstellen: TableRow tr = new TableRow(context); for (int x = Calendar.SUNDAY; x < Calendar.SATURDAY; x++) { // einen neuen Rahmen fr das Tabellenfeld vorbereiten ll = new LinearLayoutBordered(context); ll.setBorderRight(true); ll.setBorderBottom(true); ll.setBorderTop(true); ll.setBorderSize(1); ll.setBackgroundColor(Color.WHITE); View textview = inflater.inflate(R.layout.textview, null); TextView tv = (TextView) textview.findViewById(R.id.textview); // berschriftentextgre einstellen tv.setTextSize(textSize); if (x == Calendar.SUNDAY) { tv.setText(timeslots[0]); tv.setTextColor(Color.parseColor("#3A599A")); } else { tv.setText(ResolveWeekDay(x)); } ll.addView(tv); tr.addView(ll); } tl.addView(tr); // den Stundenplan zusammensetzten // fr jeden tag List<Lesson> stunden = GetSchulstunden(); for (int y = 0; y < stunden.size(); y++) { tr = new TableRow(context); for (int x = Calendar.SUNDAY; x <= Calendar.FRIDAY; x++) { if (x == Calendar.SUNDAY) { addColumn(timeslots[y + 1], "#3A599A", tr); } else { // alle events dieses Tages durchgehen ob die zu dieser // schulstunde passen boolean lessonAdded = false; TextView lastTextView = null; for (ICalEvent ev : weekData.events) { // ist event an diesem tag? if (ev.DTSTART.get(Calendar.DAY_OF_WEEK) == x) { // ja // ist event zu dieser schulstunde? Time st = new Time(); st.set(ev.DTSTART.getTimeInMillis()); int start = GetSchulstundeOfDateTime(st); Time et = new Time(); et.set(ev.DTEND.getTimeInMillis() - 60000); int end = GetSchulstundeOfDateTime(et); // ende der schulstunde herausfinden if (((start != end) && y >= start && y <= end) || start == y || end == y) { // ja event ist in dieser stunde // ist eine Doopelbelegung fr diese Stunde? if (lessonAdded && lastTextView != null) { // ja, doppelbelegung String newText = ""; if (weekData.typeId.equalsIgnoreCase("4")) { newText = lastTextView.getText() + "\r\n" + ev.DESCRIPTION + " " + ev.SUMMARY; } else { newText = lastTextView.getText() + "\r\n" + ev.DESCRIPTION.replace(weekData.elementId, "") + " " + ev.SUMMARY + " " + ev.LOCATION; } lastTextView.setText(newText); } else { // prfen, ob dieses event eine gelschte // stunde ist if (ev.UID.equalsIgnoreCase("deleted")) { // gelschtes event lastTextView = addColumn(" --- " + " " + " --- " + " " + " --- ", "#FF0000", tr); } else { String color = "#3A599A"; if (ev.UID.equalsIgnoreCase("diff")) color = "#FF0000"; if (weekData.typeId.equalsIgnoreCase("4")) { lastTextView = addColumn(ev.DESCRIPTION + " " + ev.SUMMARY, color, tr); } else { lastTextView = addColumn(ev.DESCRIPTION.replace(weekData.elementId, "") + " " + ev.SUMMARY + " " + ev.LOCATION, color, tr); } } } lessonAdded = true; } } } if (!lessonAdded) { // ja event ist in dieser stunde addColumn("", "#3A599A", tr); } } } tl.addView(tr); } TextView syncTime = (TextView) page.findViewById(R.id.syncTime); Calendar sync = new GregorianCalendar(); sync.setTimeInMillis(weekData.syncTime); String minute = String.valueOf(sync.get(Calendar.MINUTE)); if (minute.length() == 1) minute = "0" + minute; syncTime.setText(weekData.elementId + " | Stand vom " + sync.get(Calendar.DAY_OF_MONTH) + "." + (sync.get(Calendar.MONTH) + 1) + "." + sync.get(Calendar.YEAR) + " " + sync.get(Calendar.HOUR_OF_DAY) + ":" + minute + " Uhr"); return page; }
From source file:com.xandy.calendar.AllInOneActivity.java
@Override protected void onResume() { super.onResume(); // Must register as the first activity because this activity can modify // the list of event handlers in it's handle method. This affects who // the rest of the handlers the controller dispatches to are. mController.registerFirstEventHandler(HANDLER_KEY, this); mOnSaveInstanceStateCalled = false;/* w ww . j a v a2 s.c om*/ mContentResolver.registerContentObserver(CalendarContract.Events.CONTENT_URI, true, mObserver); if (mUpdateOnResume) { initFragments(mController.getTime(), mController.getViewType(), null); mUpdateOnResume = false; } Time t = new Time(mTimeZone); t.set(mController.getTime()); mController.sendEvent(this, EventType.UPDATE_TITLE, t, t, -1, ViewType.CURRENT, mController.getDateFlags(), null, null); // Make sure the drop-down menu will get its date updated at midnight if (mActionBarMenuSpinnerAdapter != null) { mActionBarMenuSpinnerAdapter.refresh(this); } if (mControlsMenu != null) { mControlsMenu.setTitle(mHideControls ? mShowString : mHideString); } mPaused = false; if (mViewEventId != -1 && mIntentEventStartMillis != -1 && mIntentEventEndMillis != -1) { long currentMillis = System.currentTimeMillis(); long selectedTime = -1; if (currentMillis > mIntentEventStartMillis && currentMillis < mIntentEventEndMillis) { selectedTime = currentMillis; } mController.sendEventRelatedEventWithExtra(this, EventType.VIEW_EVENT, mViewEventId, mIntentEventStartMillis, mIntentEventEndMillis, -1, -1, EventInfo.buildViewExtraLong(mIntentAttendeeResponse, mIntentAllDay), selectedTime); mViewEventId = -1; mIntentEventStartMillis = -1; mIntentEventEndMillis = -1; mIntentAllDay = false; } Utils.setMidnightUpdater(mHandler, mTimeChangesUpdater, mTimeZone); // Make sure the today icon is up to date invalidateOptionsMenu(); mCalIntentReceiver = Utils.setTimeChangesReceiver(this, mTimeChangesUpdater); }
From source file:com.xandy.calendar.AllInOneActivity.java
private void initFragments(long timeMillis, int viewType, Bundle icicle) { if (DEBUG) {//w w w .j a v a 2 s .c o m Log.d(TAG, "Initializing to " + timeMillis + " for view " + viewType); } // FragmentTransaction ft = getFragmentManager().beginTransaction(); FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); if (mShowCalendarControls) { Fragment miniMonthFrag = new MonthByWeekFragment(timeMillis, true); ft.replace(R.id.mini_month, miniMonthFrag); mController.registerEventHandler(R.id.mini_month, (EventHandler) miniMonthFrag); Fragment selectCalendarsFrag = new SelectVisibleCalendarsFragment(); ft.replace(R.id.calendar_list, selectCalendarsFrag); mController.registerEventHandler(R.id.calendar_list, (EventHandler) selectCalendarsFrag); } if (!mShowCalendarControls || viewType == ViewType.EDIT) { mMiniMonth.setVisibility(View.GONE); mCalendarsList.setVisibility(View.GONE); } EventInfo info = null; if (viewType == ViewType.EDIT) { mPreviousView = GeneralPreferences.getSharedPreferences(this).getInt(GeneralPreferences.KEY_START_VIEW, GeneralPreferences.DEFAULT_START_VIEW); long eventId = -1; Intent intent = getIntent(); Uri data = intent.getData(); if (data != null) { try { eventId = Long.parseLong(data.getLastPathSegment()); } catch (NumberFormatException e) { if (DEBUG) { Log.d(TAG, "Create new event"); } } } else if (icicle != null && icicle.containsKey(BUNDLE_KEY_EVENT_ID)) { eventId = icicle.getLong(BUNDLE_KEY_EVENT_ID); } long begin = intent.getLongExtra(EXTRA_EVENT_BEGIN_TIME, -1); long end = intent.getLongExtra(EXTRA_EVENT_END_TIME, -1); info = new EventInfo(); if (end != -1) { info.endTime = new Time(); info.endTime.set(end); } if (begin != -1) { info.startTime = new Time(); info.startTime.set(begin); } info.id = eventId; // We set the viewtype so if the user presses back when they are // done editing the controller knows we were in the Edit Event // screen. Likewise for eventId mController.setViewType(viewType); mController.setEventId(eventId); } else { mPreviousView = viewType; } setMainPane(ft, R.id.main_pane, viewType, timeMillis, true); ft.commit(); // this needs to be after setMainPane() Time t = new Time(mTimeZone); t.set(timeMillis); if (viewType == ViewType.AGENDA && icicle != null) { mController.sendEvent(this, EventType.GO_TO, t, null, icicle.getLong(BUNDLE_KEY_EVENT_ID, -1), viewType); } else if (viewType != ViewType.EDIT) { mController.sendEvent(this, EventType.GO_TO, t, null, -1, viewType); } }
From source file:com.xandy.calendar.AllInOneActivity.java
@Override protected void onCreate(Bundle icicle) { if (Utils.getSharedPreference(this, OtherPreferences.KEY_OTHER_1, false)) { setTheme(R.style.CalendarTheme_WithActionBarWallpaper); }// www.j a v a2s.c o m super.onCreate(icicle); if (icicle != null && icicle.containsKey(BUNDLE_KEY_CHECK_ACCOUNTS)) { mCheckForAccounts = icicle.getBoolean(BUNDLE_KEY_CHECK_ACCOUNTS); } // Launch add google account if this is first time and there are no // accounts yet if (mCheckForAccounts && !Utils.getSharedPreference(this, GeneralPreferences.KEY_SKIP_SETUP, false)) { mHandler = new QueryHandler(this.getContentResolver()); mHandler.startQuery(0, null, Calendars.CONTENT_URI, new String[] { Calendars._ID }, null, null /* selection args */, null /* sort order */); } // This needs to be created before setContentView mController = CalendarController.getInstance(this); // Get time from intent or icicle long timeMillis = -1; int viewType = -1; final Intent intent = getIntent(); if (icicle != null) { timeMillis = icicle.getLong(BUNDLE_KEY_RESTORE_TIME); viewType = icicle.getInt(BUNDLE_KEY_RESTORE_VIEW, -1); } else { String action = intent.getAction(); if (Intent.ACTION_VIEW.equals(action)) { // Open EventInfo later timeMillis = parseViewAction(intent); } if (timeMillis == -1) { timeMillis = Utils.timeFromIntentInMillis(intent); } } if (viewType == -1 || viewType > ViewType.MAX_VALUE) { viewType = Utils.getViewTypeFromIntentAndSharedPref(this); } mTimeZone = Utils.getTimeZone(this, mHomeTimeUpdater); Time t = new Time(mTimeZone); t.set(timeMillis); if (DEBUG) { if (icicle != null && intent != null) { Log.d(TAG, "both, icicle:" + icicle.toString() + " intent:" + intent.toString()); } else { Log.d(TAG, "not both, icicle:" + icicle + " intent:" + intent); } } Resources res = getResources(); mHideString = res.getString(R.string.hide_controls); mShowString = res.getString(R.string.show_controls); mOrientation = res.getConfiguration().orientation; if (mOrientation == Configuration.ORIENTATION_LANDSCAPE) { mControlsAnimateWidth = (int) res.getDimension(R.dimen.calendar_controls_width); if (mControlsParams == null) { mControlsParams = new LayoutParams(mControlsAnimateWidth, 0); } mControlsParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); } else { // Make sure width is in between allowed min and max width values mControlsAnimateWidth = Math.max(res.getDisplayMetrics().widthPixels * 45 / 100, (int) res.getDimension(R.dimen.min_portrait_calendar_controls_width)); mControlsAnimateWidth = Math.min(mControlsAnimateWidth, (int) res.getDimension(R.dimen.max_portrait_calendar_controls_width)); } mControlsAnimateHeight = (int) res.getDimension(R.dimen.calendar_controls_height); mHideControls = !Utils.getSharedPreference(this, GeneralPreferences.KEY_SHOW_CONTROLS, true); mIsMultipane = Utils.getConfigBool(this, R.bool.multiple_pane_config); mIsTabletConfig = Utils.getConfigBool(this, R.bool.tablet_config); mShowAgendaWithMonth = Utils.getConfigBool(this, R.bool.show_agenda_with_month); mShowCalendarControls = Utils.getConfigBool(this, R.bool.show_calendar_controls); mShowEventDetailsWithAgenda = Utils.getConfigBool(this, R.bool.show_event_details_with_agenda); mShowEventInfoFullScreenAgenda = Utils.getConfigBool(this, R.bool.agenda_show_event_info_full_screen); mShowEventInfoFullScreen = Utils.getConfigBool(this, R.bool.show_event_info_full_screen); mCalendarControlsAnimationTime = res.getInteger(R.integer.calendar_controls_animation_time); Utils.setAllowWeekForDetailView(mIsMultipane); // setContentView must be called before configureActionBar setContentView(R.layout.all_in_one); if (mIsTabletConfig) { mDateRange = (TextView) findViewById(R.id.date_bar); mWeekTextView = (TextView) findViewById(R.id.week_num); } else { mDateRange = (TextView) getLayoutInflater().inflate(R.layout.date_range_title, null); } // configureActionBar auto-selects the first tab you add, so we need to // call it before we set up our own fragments to make sure it doesn't // overwrite us configureActionBar(viewType); mHomeTime = (TextView) findViewById(R.id.home_time); mMiniMonth = findViewById(R.id.mini_month); if (mIsTabletConfig && mOrientation == Configuration.ORIENTATION_PORTRAIT) { mMiniMonth.setLayoutParams( new RelativeLayout.LayoutParams(mControlsAnimateWidth, mControlsAnimateHeight)); } mCalendarsList = findViewById(R.id.calendar_list); mMiniMonthContainer = findViewById(R.id.mini_month_container); mSecondaryPane = findViewById(R.id.secondary_pane); // Must register as the first activity because this activity can modify // the list of event handlers in it's handle method. This affects who // the rest of the handlers the controller dispatches to are. mController.registerFirstEventHandler(HANDLER_KEY, this); initFragments(timeMillis, viewType, icicle); // Listen for changes that would require this to be refreshed SharedPreferences prefs = GeneralPreferences.getSharedPreferences(this); prefs.registerOnSharedPreferenceChangeListener(this); mContentResolver = getContentResolver(); }
From source file:com.android.calendar.AllInOneActivity.java
public void setupFloatingActionButton() { mFab.setOnClickListener(new View.OnClickListener() { @Override//from w w w . j av a 2 s.c o m public void onClick(View v) { //Create new Event Time t = new Time(); t.set(mController.getTime()); if (t.minute > 30) { t.hour++; t.minute = 0; } else if (t.minute > 0 && t.minute < 30) { t.minute = 30; } mController.sendEventRelatedEvent(this, EventType.CREATE_EVENT, -1, t.toMillis(true), 0, 0, 0, -1); } }); }
From source file:com.android.calendar.AllInOneActivity.java
@Override protected void onNewIntent(Intent intent) { String action = intent.getAction(); if (DEBUG)//from w ww. ja va 2 s. co m Log.d(TAG, "New intent received " + intent.toString()); // Don't change the date if we're just returning to the app's home if (Intent.ACTION_VIEW.equals(action) && !intent.getBooleanExtra(Utils.INTENT_KEY_HOME, false)) { long millis = parseViewAction(intent); if (millis == -1) { millis = Utils.timeFromIntentInMillis(intent); } if (millis != -1 && mViewEventId == -1 && mController != null) { Time time = new Time(mTimeZone); time.set(millis); time.normalize(true); mController.sendEvent(this, EventType.GO_TO, time, time, -1, ViewType.CURRENT); } } }
From source file:com.jogden.spunkycharts.traditionalchart.TraditionalChartFragmentAdapter.java
@Override public void bridge(DataClientInterface dataClient, DataConsumerInterface.InsertCallback iCallback) { _updateReady.set(false);/* w w w . j av a 2s. c o m*/ iCallback.clear(_symbol, (DataConsumerInterface) this); Pair<OHLC[], Time> pricePair = dataClient.getBulk(_symbol, null, DataClientLocalDebug.DATA_PRICE_DEF); Pair<Integer[], Time> volPair = dataClient.getBulk(_symbol, null, DataClientLocalDebug.DATA_VOL_DEF); final OHLC[] prices = pricePair.first; final Integer[] vols = volPair.first; int len = vols.length; if (prices.length != len) throw new IllegalStateException("price / volume getBulk size inconconsistency"); _updateTime.set(pricePair.second); --len; long endMs = _updateTime.toMillis(true); endMs /= GMS; endMs *= GMS; List<ContentValues> valsList = new ArrayList<ContentValues>(); Time t = new Time(); for (int i = 0; i < len; ++i) { t.set(endMs - ((len - i) * GMS)); valsList.add(_createContentValues(prices[i], vols[i], t)); /* Log.d("Data-Consumer-Get-Bulk", prices[i].toString() +" " + String.valueOf(vols[i]) + " " + t.format("%H:%M:%S")); */ } final long fEndMs = endMs; final int lastIndx = len; (new Thread() { public void run() { final int INCR = ApplicationPreferences.getTimeoutIncrement(); /* THIS HAS TO WAIT FOR POPULATE */ while (!_streamReady.get()) try { Thread.sleep(INCR); } catch (InterruptedException e) { } /* INITIALIZE OUR CACHE VALUES */ OHLC price = prices[lastIndx]; _lastPriceSeg.close = price.close; if (price.high > _lastPriceSeg.high) _lastPriceSeg.high = price.high; if (price.low < _lastPriceSeg.low) _lastPriceSeg.low = price.low; _lastVolSeg += vols[lastIndx]; _lastGranularPriceSeg = new OHLC(price); _lastGranularVolSeg = vols[lastIndx]; _lastGranularSegTime.set(fEndMs); _updateReady.set(true); } }).start(); iCallback.insertRows(valsList, _symbol, (DataConsumerInterface) this); }
From source file:com.android.calendar.AllInOneActivity.java
@Override protected void onResume() { super.onResume(); dynamicTheme.onResume(this); // Must register as the first activity because this activity can modify // the list of event handlers in it's handle method. This affects who // the rest of the handlers the controller dispatches to are. mController.registerFirstEventHandler(HANDLER_KEY, this); mOnSaveInstanceStateCalled = false;//ww w . j av a2s. c o m mContentResolver.registerContentObserver(CalendarContract.Events.CONTENT_URI, true, mObserver); if (mUpdateOnResume) { initFragments(mController.getTime(), mController.getViewType(), null); mUpdateOnResume = false; } Time t = new Time(mTimeZone); t.set(mController.getTime()); mController.sendEvent(this, EventType.UPDATE_TITLE, t, t, -1, ViewType.CURRENT, mController.getDateFlags(), null, null); if (mControlsMenu != null) { mControlsMenu.setTitle(mHideControls ? mShowString : mHideString); } mPaused = false; if (mViewEventId != -1 && mIntentEventStartMillis != -1 && mIntentEventEndMillis != -1) { long currentMillis = System.currentTimeMillis(); long selectedTime = -1; if (currentMillis > mIntentEventStartMillis && currentMillis < mIntentEventEndMillis) { selectedTime = currentMillis; } mController.sendEventRelatedEventWithExtra(this, EventType.VIEW_EVENT, mViewEventId, mIntentEventStartMillis, mIntentEventEndMillis, -1, -1, EventInfo.buildViewExtraLong(mIntentAttendeeResponse, mIntentAllDay), selectedTime); mViewEventId = -1; mIntentEventStartMillis = -1; mIntentEventEndMillis = -1; mIntentAllDay = false; } Utils.setMidnightUpdater(mHandler, mTimeChangesUpdater, mTimeZone); // Make sure the today icon is up to date invalidateOptionsMenu(); mCalIntentReceiver = Utils.setTimeChangesReceiver(this, mTimeChangesUpdater); }
From source file:cw.kop.autobackground.settings.WearSettingsFragment.java
private void drawDigital() { canvas = surfaceView.getHolder().lockCanvas(); if (canvas == null) { return;/* w w w . j a v a 2 s. c o m*/ } setPaints(); Time time = new Time(); time.setToNow(); time.set(time.toMillis(false) + timeOffset); float centerX = watchContainer.getWidth() * 0.222f; float centerY = watchContainer.getHeight() * 0.222f; if (imageBitmap != null) { canvas.drawBitmap(imageBitmap, 0, 0, bitmapPaint); } float x = xOffset + (time.hour < 10 ? hourPaint.measureText("0") : 0); float hourWidth = hourPaint.measureText("" + time.hour); float minuteWidth = minutePaint.measureText(String.format("%02d", time.minute)); canvas.drawText("" + time.hour, x - 2.0f, centerY - 2.0f, hourShadowPaint); canvas.drawText("" + time.hour, x, centerY, hourPaint); x += hourPaint.measureText("" + time.hour); canvas.drawText(timeSeparator, x - 2.0f, centerY - 2.0f, separatorShadowPaint); canvas.drawText(timeSeparator, x, centerY, separatorPaint); x += separatorWidth; canvas.drawText(String.format("%02d", time.minute), x - 2.0f, centerY - 2.0f, minuteShadowPaint); canvas.drawText(String.format("%02d", time.minute), x, centerY, minutePaint); x += minutePaint.measureText(String.format("%02d", time.minute)); canvas.drawText(timeSeparator, x - 2.0f, centerY - 2.0f, separatorShadowPaint); canvas.drawText(timeSeparator, x, centerY, separatorPaint); x += separatorWidth; canvas.drawText(String.format("%02d", time.second), x - 2.0f, centerY - 2.0f, secondShadowPaint); canvas.drawText(String.format("%02d", time.second), x, centerY, secondPaint); surfaceView.getHolder().unlockCanvasAndPost(canvas); }
From source file:com.android.calendar.AllInOneActivity.java
private void updateSecondaryTitleFields(long visibleMillisSinceEpoch) { mShowWeekNum = Utils.getShowWeekNumber(this); mTimeZone = Utils.getTimeZone(this, mHomeTimeUpdater); if (visibleMillisSinceEpoch != -1) { int weekNum = Utils.getWeekNumberFromTime(visibleMillisSinceEpoch, this); mWeekNum = weekNum;/*from w w w . j a v a 2s . c o m*/ } if (mShowWeekNum && (mCurrentView == ViewType.WEEK) && mIsTabletConfig && mWeekTextView != null) { String weekString = getResources().getQuantityString(R.plurals.weekN, mWeekNum, mWeekNum); mWeekTextView.setText(weekString); mWeekTextView.setVisibility(View.VISIBLE); } else if (visibleMillisSinceEpoch != -1 && mWeekTextView != null && mCurrentView == ViewType.DAY && mIsTabletConfig) { Time time = new Time(mTimeZone); time.set(visibleMillisSinceEpoch); int julianDay = Time.getJulianDay(visibleMillisSinceEpoch, time.gmtoff); time.setToNow(); int todayJulianDay = Time.getJulianDay(time.toMillis(false), time.gmtoff); String dayString = Utils.getDayOfWeekString(julianDay, todayJulianDay, visibleMillisSinceEpoch, this); mWeekTextView.setText(dayString); mWeekTextView.setVisibility(View.VISIBLE); } else if (mWeekTextView != null && (!mIsTabletConfig || mCurrentView != ViewType.DAY)) { mWeekTextView.setVisibility(View.GONE); } if (mHomeTime != null && (mCurrentView == ViewType.DAY || mCurrentView == ViewType.WEEK || mCurrentView == ViewType.AGENDA) && !TextUtils.equals(mTimeZone, Time.getCurrentTimezone())) { Time time = new Time(mTimeZone); time.setToNow(); long millis = time.toMillis(true); boolean isDST = time.isDst != 0; int flags = DateUtils.FORMAT_SHOW_TIME; if (DateFormat.is24HourFormat(this)) { flags |= DateUtils.FORMAT_24HOUR; } // Formats the time as String timeString = (new StringBuilder(Utils.formatDateRange(this, millis, millis, flags))).append(" ") .append(TimeZone.getTimeZone(mTimeZone).getDisplayName(isDST, TimeZone.SHORT, Locale.getDefault())) .toString(); mHomeTime.setText(timeString); mHomeTime.setVisibility(View.VISIBLE); // Update when the minute changes mHomeTime.removeCallbacks(mHomeTimeUpdater); mHomeTime.postDelayed(mHomeTimeUpdater, DateUtils.MINUTE_IN_MILLIS - (millis % DateUtils.MINUTE_IN_MILLIS)); } else if (mHomeTime != null) { mHomeTime.setVisibility(View.GONE); } }