From c3318b01adc54d8d18b84b37ccb35366a60572c9 Mon Sep 17 00:00:00 2001 From: Sergey Volkov Date: Tue, 4 Sep 2018 16:51:11 +0300 Subject: [PATCH 1/8] Apply clang-format formatting to all Java sources --- .clang-format | 26 ++++ src/yy/tidialogs/DatePickerProxy.java | 103 ++++++++------- src/yy/tidialogs/MultiPickerProxy.java | 176 ++++++++++++------------- src/yy/tidialogs/TidialogsModule.java | 6 +- src/yy/tidialogs/TimePickerProxy.java | 91 +++++++------ 5 files changed, 217 insertions(+), 185 deletions(-) create mode 100644 .clang-format diff --git a/.clang-format b/.clang-format new file mode 100644 index 0000000..3e6a508 --- /dev/null +++ b/.clang-format @@ -0,0 +1,26 @@ +--- +Language: Java +AccessModifierOffset: -4 +AllowShortBlocksOnASingleLine: false +AllowShortFunctionsOnASingleLine: None +AllowShortIfStatementsOnASingleLine: false +AllowShortLoopsOnASingleLine: false +# class, constructor, method should be next line +BreakBeforeBraces: Linux +# Keep '=' at end of line when wrapping, but move things like '&&', '||' to beginning of newline +BreakBeforeBinaryOperators: NonAssignment +# FIXME: break for brace after synchronized block, anonymous class declarations +BreakAfterJavaFieldAnnotations: true +ColumnLimit: 120 +IndentCaseLabels: true +IndentWidth: 4 +MaxEmptyLinesToKeep: 1 +SpaceBeforeAssignmentOperators: true +SpaceBeforeParens: ControlStatements +SpacesInParentheses: false +TabWidth: 4 +UseTab: ForContinuationAndIndentation +SpaceAfterCStyleCast: true +# Spaces inside {} for array literals, i.e. "new Object[] { args }" +Cpp11BracedListStyle: false +ReflowComments: false diff --git a/src/yy/tidialogs/DatePickerProxy.java b/src/yy/tidialogs/DatePickerProxy.java index 41d6521..179751a 100644 --- a/src/yy/tidialogs/DatePickerProxy.java +++ b/src/yy/tidialogs/DatePickerProxy.java @@ -16,8 +16,10 @@ import android.widget.DatePicker; @Kroll.proxy(creatableInModule = TidialogsModule.class) -public class DatePickerProxy extends TiViewProxy { - private class BasicDatePicker extends TiUIView { +public class DatePickerProxy extends TiViewProxy +{ + private class BasicDatePicker extends TiUIView + { private int year; private int month; @@ -26,57 +28,57 @@ private class BasicDatePicker extends TiUIView { private String okButtonTitle; private String cancelButtonTitle; - public BasicDatePicker(TiViewProxy proxy) { + public BasicDatePicker(TiViewProxy proxy) + { super(proxy); - } - private DatePickerDialog getDialog() { - DatePickerDialog picker = new DatePickerDialog(this.proxy.getActivity(), - new DatePickerDialog.OnDateSetListener() { - // when dialog box is closed, below method will be - // called. - public void onDateSet(DatePicker view, - int selectedYear, int selectedMonth, - int selectedDay) { - year = selectedYear; - month = selectedMonth; - day = selectedDay; - - KrollDict data = new KrollDict(); - - Calendar calendar = Calendar.getInstance(); - calendar.set(Calendar.YEAR, year); - calendar.set(Calendar.MONTH, month); - calendar.set(Calendar.DAY_OF_MONTH, day); - Date value = calendar.getTime(); - - data.put("value", value); - data.put("year", year); - data.put("month", month); - data.put("day", day); - fireEvent("click", data); - - } - }, year, month, day); + private DatePickerDialog getDialog() + { + DatePickerDialog picker = + new DatePickerDialog(this.proxy.getActivity(), new DatePickerDialog.OnDateSetListener() { + // when dialog box is closed, below method will be + // called. + public void onDateSet(DatePicker view, int selectedYear, int selectedMonth, int selectedDay) + { + year = selectedYear; + month = selectedMonth; + day = selectedDay; + + KrollDict data = new KrollDict(); + + Calendar calendar = Calendar.getInstance(); + calendar.set(Calendar.YEAR, year); + calendar.set(Calendar.MONTH, month); + calendar.set(Calendar.DAY_OF_MONTH, day); + Date value = calendar.getTime(); + + data.put("value", value); + data.put("year", year); + data.put("month", month); + data.put("day", day); + fireEvent("click", data); + } + }, year, month, day); picker.setCanceledOnTouchOutside(false); picker.setButton(DialogInterface.BUTTON_POSITIVE, okButtonTitle, picker); - picker.setButton(DialogInterface.BUTTON_NEGATIVE, cancelButtonTitle, - new DialogInterface.OnClickListener() { + picker.setButton(DialogInterface.BUTTON_NEGATIVE, cancelButtonTitle, new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - fireEvent("cancel", new KrollDict()); - } - }); + @Override + public void onClick(DialogInterface dialog, int which) + { + fireEvent("cancel", new KrollDict()); + } + }); return picker; } @Override - public void processProperties(KrollDict d) { + public void processProperties(KrollDict d) + { super.processProperties(d); Calendar c = Calendar.getInstance(); if (d.containsKey("value")) { @@ -105,7 +107,7 @@ public void processProperties(KrollDict d) { if (d.containsKey("okButtonTitle")) { okButtonTitle = d.getString("okButtonTitle"); } else { - okButtonTitle = this.proxy.getActivity().getApplication().getResources().getString(R.string.ok); + okButtonTitle = this.proxy.getActivity().getApplication().getResources().getString(R.string.ok); } if (d.containsKey("cancelButtonTitle")) { cancelButtonTitle = d.getString("cancelButtonTitle"); @@ -114,32 +116,37 @@ public void processProperties(KrollDict d) { } } - public void show() { + public void show() + { getDialog().show(); } - } - public DatePickerProxy() { + public DatePickerProxy() + { super(); } @Override - public TiUIView createView(Activity activity) { + public TiUIView createView(Activity activity) + { return new BasicDatePicker(this); } @Override - public void handleCreationDict(KrollDict options) { + public void handleCreationDict(KrollDict options) + { super.handleCreationDict(options); } @Override - protected void handleShow(KrollDict options) { + protected void handleShow(KrollDict options) + { super.handleShow(options); TiUIHelper.runUiDelayedIfBlock(new Runnable() { @Override - public void run() { + public void run() + { BasicDatePicker d = (BasicDatePicker) getOrCreateView(); d.show(); } diff --git a/src/yy/tidialogs/MultiPickerProxy.java b/src/yy/tidialogs/MultiPickerProxy.java index 996804c..ac40c2e 100644 --- a/src/yy/tidialogs/MultiPickerProxy.java +++ b/src/yy/tidialogs/MultiPickerProxy.java @@ -18,7 +18,6 @@ import org.appcelerator.titanium.view.TiUIView; import org.appcelerator.kroll.common.Log; - import android.R; import android.app.Activity; import android.app.AlertDialog; @@ -27,21 +26,23 @@ import android.graphics.Bitmap; import android.graphics.drawable.Drawable; - - @Kroll.proxy(creatableInModule = TidialogsModule.class) -public class MultiPickerProxy extends TiViewProxy { +public class MultiPickerProxy extends TiViewProxy +{ private static final String LCAT = "TiDialogs"; private KrollFunction onChange; - private class MultiPicker extends TiUIView { + private class MultiPicker extends TiUIView + { Builder builder; - public MultiPicker(TiViewProxy proxy) { + public MultiPicker(TiViewProxy proxy) + { super(proxy); } - private Builder getBuilder() { + private Builder getBuilder() + { if (builder == null) { builder = new AlertDialog.Builder(this.proxy.getActivity()); builder.setCancelable(true); @@ -50,7 +51,8 @@ private Builder getBuilder() { } @Override - public void processProperties(KrollDict properties) { + public void processProperties(KrollDict properties) + { super.processProperties(properties); String okButtonTitle; String cancelButtonTitle; @@ -69,29 +71,26 @@ public void processProperties(KrollDict properties) { getBuilder().setMessage(properties.getString("message")); } if (properties.containsKeyAndNotNull("icon")) { - Drawable icon = TiUIHelper.getResourceDrawable(resolveUrl(null, - properties.getString("icon"))); + Drawable icon = TiUIHelper.getResourceDrawable(resolveUrl(null, properties.getString("icon"))); getBuilder().setIcon(icon); } if (properties.containsKeyAndNotNull(TiC.PROPERTY_ANDROID_VIEW)) { Object o = properties.get(TiC.PROPERTY_ANDROID_VIEW); if (o instanceof TiUIView) { - TiUIView view = (TiUIView)o; + TiUIView view = (TiUIView) o; getBuilder().setCustomTitle(view.getNativeView()); } } if (properties.containsKey("okButtonTitle")) { okButtonTitle = properties.getString("okButtonTitle"); } else { - okButtonTitle = this.proxy.getActivity().getApplication() - .getResources().getString(R.string.ok); + okButtonTitle = this.proxy.getActivity().getApplication().getResources().getString(R.string.ok); } if (properties.containsKeyAndNotNull("cancelButtonTitle")) { cancelButtonTitle = properties.getString("cancelButtonTitle"); } else { - cancelButtonTitle = this.proxy.getActivity().getApplication() - .getResources().getString(R.string.cancel); + cancelButtonTitle = this.proxy.getActivity().getApplication().getResources().getString(R.string.cancel); } if (properties.containsKeyAndNotNull("canCancel")) { @@ -113,117 +112,112 @@ public void processProperties(KrollDict properties) { // are there any preselections? if (properties.containsKeyAndNotNull("selected")) { - List s = Arrays.asList(properties - .getStringArray("selected")); + List s = Arrays.asList(properties.getStringArray("selected")); for (int i = 0; i < options.length; i++) { checked[i] = s.contains(options[i]); if (checked[i] == true) { resultList[i] = Boolean.TRUE; selectedItems.add(i); // keep info about - // preselected items! + // preselected items! } } } - getBuilder().setMultiChoiceItems(options, checked, - new DialogInterface.OnMultiChoiceClickListener() { - // called whenever an item is clicked, toggles - // selection info - @Override - public void onClick(DialogInterface dialog, - int which, boolean isChecked) { - resultList[which] = isChecked; - Log.d(LCAT, resultList.toString()); - KrollDict kd = new KrollDict(); - kd.put("index", which); - kd.put("checked", isChecked); - kd.put("value", isChecked); - if (hasListeners("change")) { - fireEvent("change", kd); - } - if (onChange != null) - onChange.call(getKrollObject(), kd); - if (isChecked) { - // we can be sure, item is not already in - // selection list - selectedItems.add(which); - - } else if (selectedItems.contains(which)) { - selectedItems.remove(Integer.valueOf(which)); - } + getBuilder() + .setMultiChoiceItems(options, checked, + new DialogInterface.OnMultiChoiceClickListener() { + // called whenever an item is clicked, toggles + // selection info + @Override + public void onClick(DialogInterface dialog, int which, boolean isChecked) + { + resultList[which] = isChecked; + Log.d(LCAT, resultList.toString()); + KrollDict kd = new KrollDict(); + kd.put("index", which); + kd.put("checked", isChecked); + kd.put("value", isChecked); + if (hasListeners("change")) { + fireEvent("change", kd); + } + if (onChange != null) + onChange.call(getKrollObject(), kd); + if (isChecked) { + // we can be sure, item is not already in + // selection list + selectedItems.add(which); + + } else if (selectedItems.contains(which)) { + selectedItems.remove(Integer.valueOf(which)); + } + } + }) + + // ok returns indexes of selected items and the corresponding + // selected items -> wording is not the best + .setPositiveButton(okButtonTitle, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int id) + { + // convert to int array + + ArrayList selections = new ArrayList(); + for (Integer s : selectedItems) { + selections.add(options[s]); } - }) - - // ok returns indexes of selected items and the corresponding - // selected items -> wording is not the best - .setPositiveButton(okButtonTitle, - new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, - int id) { - // convert to int array - - ArrayList selections = new ArrayList(); - for (Integer s : selectedItems) { - selections.add(options[s]); - } - - KrollDict data = new KrollDict(); - data.put( - "indexes", - selectedItems - .toArray(new Integer[selectedItems - .size()])); - data.put("selections", selections - .toArray(new String[selections - .size()])); - data.put("result", resultList); - if (hasListeners("click")) - fireEvent("click", data); - } - }); + + KrollDict data = new KrollDict(); + data.put("indexes", selectedItems.toArray(new Integer[selectedItems.size()])); + data.put("selections", selections.toArray(new String[selections.size()])); + data.put("result", resultList); + if (hasListeners("click")) + fireEvent("click", data); + } + }); if (cancellable == true) { // cancel returns nothing - getBuilder().setNegativeButton(cancelButtonTitle, - new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, - int id) { - fireEvent("cancel", new KrollDict()); - } - }); + getBuilder().setNegativeButton(cancelButtonTitle, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int id) + { + fireEvent("cancel", new KrollDict()); + } + }); } else { getBuilder().setCancelable(false); } } - } - public void show() { + public void show() + { getBuilder().create().show(); builder = null; Log.d(LCAT, "show Dialog"); } - } - public MultiPickerProxy() { + public MultiPickerProxy() + { super(); } @Override - public TiUIView createView(Activity activity) { + public TiUIView createView(Activity activity) + { return new MultiPicker(this); } @Override - public void handleCreationDict(KrollDict options) { + public void handleCreationDict(KrollDict options) + { super.handleCreationDict(options); } @Override - protected void handleShow(KrollDict options) { + protected void handleShow(KrollDict options) + { super.handleShow(options); // If there's a lock on the UI message queue, there's a good chance // we're in the middle of activity stack transitions. An alert @@ -234,11 +228,11 @@ protected void handleShow(KrollDict options) { // AlertDialog. TiUIHelper.runUiDelayedIfBlock(new Runnable() { @Override - public void run() { + public void run() + { MultiPicker d = (MultiPicker) getOrCreateView(); d.show(); } }); } - } diff --git a/src/yy/tidialogs/TidialogsModule.java b/src/yy/tidialogs/TidialogsModule.java index 0d19134..ed34f81 100644 --- a/src/yy/tidialogs/TidialogsModule.java +++ b/src/yy/tidialogs/TidialogsModule.java @@ -5,10 +5,10 @@ import org.appcelerator.titanium.TiApplication; -@Kroll.module(name="Tidialogs", id="yy.tidialogs") +@Kroll.module(name = "Tidialogs", id = "yy.tidialogs") public class TidialogsModule extends KrollModule { - + public TidialogsModule() { super(); @@ -17,7 +17,5 @@ public TidialogsModule() @Kroll.onAppCreate public static void onAppCreate(TiApplication app) { - } } - diff --git a/src/yy/tidialogs/TimePickerProxy.java b/src/yy/tidialogs/TimePickerProxy.java index 2085db6..594c38c 100644 --- a/src/yy/tidialogs/TimePickerProxy.java +++ b/src/yy/tidialogs/TimePickerProxy.java @@ -17,8 +17,10 @@ import android.widget.TimePicker; @Kroll.proxy(creatableInModule = TidialogsModule.class) -public class TimePickerProxy extends TiViewProxy { - private class BasicDatePicker extends TiUIView { +public class TimePickerProxy extends TiViewProxy +{ + private class BasicDatePicker extends TiUIView + { private int hour; private int minute; @@ -26,57 +28,57 @@ private class BasicDatePicker extends TiUIView { private String okButtonTitle; private String cancelButtonTitle; - public BasicDatePicker(TiViewProxy proxy) { + public BasicDatePicker(TiViewProxy proxy) + { super(proxy); - } - private TimePickerDialog getDialog() { - TimePickerDialog picker = new TimePickerDialog(this.proxy.getActivity(), - new TimePickerDialog.OnTimeSetListener() { - - @Override - public void onTimeSet(TimePicker selectedTime, - int selectedHour, int selectedMinute) { - // TODO Auto-generated method stub + private TimePickerDialog getDialog() + { + TimePickerDialog picker = + new TimePickerDialog(this.proxy.getActivity(), new TimePickerDialog.OnTimeSetListener() { - hour = selectedHour; - minute = selectedMinute; + @Override + public void onTimeSet(TimePicker selectedTime, int selectedHour, int selectedMinute) + { + // TODO Auto-generated method stub - KrollDict data = new KrollDict(); + hour = selectedHour; + minute = selectedMinute; - Calendar calendar = Calendar.getInstance(); - calendar.set(Calendar.HOUR_OF_DAY, hour); - calendar.set(Calendar.MINUTE, minute); - Date value = calendar.getTime(); + KrollDict data = new KrollDict(); - data.put("value", value); - data.put("hour", hour); - data.put("minute", minute); - fireEvent("click", data); + Calendar calendar = Calendar.getInstance(); + calendar.set(Calendar.HOUR_OF_DAY, hour); + calendar.set(Calendar.MINUTE, minute); + Date value = calendar.getTime(); - } - }, hour, minute, DateFormat.is24HourFormat(this.proxy - .getActivity())); + data.put("value", value); + data.put("hour", hour); + data.put("minute", minute); + fireEvent("click", data); + } + }, hour, minute, DateFormat.is24HourFormat(this.proxy.getActivity())); picker.setCanceledOnTouchOutside(false); picker.setButton(DialogInterface.BUTTON_POSITIVE, okButtonTitle, picker); - picker.setButton(DialogInterface.BUTTON_NEGATIVE, cancelButtonTitle, - new DialogInterface.OnClickListener() { + picker.setButton(DialogInterface.BUTTON_NEGATIVE, cancelButtonTitle, new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - fireEvent("cancel", new KrollDict()); - } - }); + @Override + public void onClick(DialogInterface dialog, int which) + { + fireEvent("cancel", new KrollDict()); + } + }); return picker; } @Override - public void processProperties(KrollDict d) { + public void processProperties(KrollDict d) + { super.processProperties(d); Calendar c = Calendar.getInstance(); @@ -100,7 +102,7 @@ public void processProperties(KrollDict d) { if (d.containsKey("okButtonTitle")) { okButtonTitle = d.getString("okButtonTitle"); } else { - okButtonTitle = this.proxy.getActivity().getApplication().getResources().getString(R.string.ok); + okButtonTitle = this.proxy.getActivity().getApplication().getResources().getString(R.string.ok); } if (d.containsKey("cancelButtonTitle")) { cancelButtonTitle = d.getString("cancelButtonTitle"); @@ -109,32 +111,37 @@ public void processProperties(KrollDict d) { } } - public void show() { + public void show() + { getDialog().show(); } - } - public TimePickerProxy() { + public TimePickerProxy() + { super(); } @Override - public TiUIView createView(Activity activity) { + public TiUIView createView(Activity activity) + { return new BasicDatePicker(this); } @Override - public void handleCreationDict(KrollDict options) { + public void handleCreationDict(KrollDict options) + { super.handleCreationDict(options); } @Override - protected void handleShow(KrollDict options) { + protected void handleShow(KrollDict options) + { super.handleShow(options); TiUIHelper.runUiDelayedIfBlock(new Runnable() { @Override - public void run() { + public void run() + { BasicDatePicker d = (BasicDatePicker) getOrCreateView(); d.show(); } From a2d8535a89875cb653889c04c7846cc1f9536775 Mon Sep 17 00:00:00 2001 From: Sergey Volkov Date: Tue, 4 Sep 2018 17:38:58 +0300 Subject: [PATCH 2/8] Define base classes move common methods to base classes add "hide" method add "release" method --- src/yy/tidialogs/BaseDialogProxy.java | 36 +++++++++++++++++++++ src/yy/tidialogs/BaseUIDialog.java | 41 +++++++++++++++++++++++ src/yy/tidialogs/DatePickerProxy.java | 27 +++------------- src/yy/tidialogs/MultiPickerProxy.java | 45 ++++++-------------------- src/yy/tidialogs/TimePickerProxy.java | 27 +++------------- 5 files changed, 95 insertions(+), 81 deletions(-) create mode 100644 src/yy/tidialogs/BaseDialogProxy.java create mode 100644 src/yy/tidialogs/BaseUIDialog.java diff --git a/src/yy/tidialogs/BaseDialogProxy.java b/src/yy/tidialogs/BaseDialogProxy.java new file mode 100644 index 0000000..e37a84f --- /dev/null +++ b/src/yy/tidialogs/BaseDialogProxy.java @@ -0,0 +1,36 @@ +package yy.tidialogs; + +import org.appcelerator.kroll.KrollDict; +import org.appcelerator.kroll.annotations.Kroll; +import org.appcelerator.titanium.proxy.TiViewProxy; +import org.appcelerator.titanium.util.TiUIHelper; + +@Kroll.proxy +public abstract class BaseDialogProxy extends TiViewProxy +{ + + public BaseDialogProxy() + { + super(); + } + + @Override + protected void handleShow(KrollDict options) + { + super.handleShow(options); + // If there's a lock on the UI message queue, there's a good chance + // we're in the middle of activity stack transitions. An alert + // dialog should occur above the "topmost" activity, so if activity + // stack transitions are occurring, try to give them a chance to + // "settle" + // before determining which Activity should be the context for the + // AlertDialog. + TiUIHelper.runUiDelayedIfBlock(new Runnable() { + @Override + public void run() + { + getOrCreateView().show(); + } + }); + } +} diff --git a/src/yy/tidialogs/BaseUIDialog.java b/src/yy/tidialogs/BaseUIDialog.java new file mode 100644 index 0000000..ffd0952 --- /dev/null +++ b/src/yy/tidialogs/BaseUIDialog.java @@ -0,0 +1,41 @@ +package yy.tidialogs; + +import android.app.AlertDialog; + +import org.appcelerator.titanium.proxy.TiViewProxy; +import org.appcelerator.titanium.view.TiUIView; + +public abstract class BaseUIDialog extends TiUIView +{ + protected AlertDialog dialog; + + public BaseUIDialog(TiViewProxy proxy) + { + super(proxy); + } + + abstract protected AlertDialog getDialog(); + + @Override + public void show() + { + getDialog().show(); + } + + @Override + public void hide() + { + if (dialog != null) { + dialog.hide(); + } + } + + @Override + public void release() + { + if (dialog != null) { + dialog.dismiss(); + dialog = null; + } + } +} diff --git a/src/yy/tidialogs/DatePickerProxy.java b/src/yy/tidialogs/DatePickerProxy.java index 179751a..a9bedd8 100644 --- a/src/yy/tidialogs/DatePickerProxy.java +++ b/src/yy/tidialogs/DatePickerProxy.java @@ -6,7 +6,6 @@ import org.appcelerator.kroll.KrollDict; import org.appcelerator.kroll.annotations.Kroll; import org.appcelerator.titanium.proxy.TiViewProxy; -import org.appcelerator.titanium.util.TiUIHelper; import org.appcelerator.titanium.view.TiUIView; import android.R; @@ -16,9 +15,9 @@ import android.widget.DatePicker; @Kroll.proxy(creatableInModule = TidialogsModule.class) -public class DatePickerProxy extends TiViewProxy +public class DatePickerProxy extends BaseDialogProxy { - private class BasicDatePicker extends TiUIView + private class BasicDatePicker extends BaseUIDialog { private int year; @@ -33,7 +32,7 @@ public BasicDatePicker(TiViewProxy proxy) super(proxy); } - private DatePickerDialog getDialog() + protected DatePickerDialog getDialog() { DatePickerDialog picker = new DatePickerDialog(this.proxy.getActivity(), new DatePickerDialog.OnDateSetListener() { @@ -73,6 +72,7 @@ public void onClick(DialogInterface dialog, int which) } }); + dialog = picker; return picker; } @@ -115,11 +115,6 @@ public void processProperties(KrollDict d) cancelButtonTitle = this.proxy.getActivity().getApplication().getResources().getString(R.string.cancel); } } - - public void show() - { - getDialog().show(); - } } public DatePickerProxy() @@ -138,18 +133,4 @@ public void handleCreationDict(KrollDict options) { super.handleCreationDict(options); } - - @Override - protected void handleShow(KrollDict options) - { - super.handleShow(options); - TiUIHelper.runUiDelayedIfBlock(new Runnable() { - @Override - public void run() - { - BasicDatePicker d = (BasicDatePicker) getOrCreateView(); - d.show(); - } - }); - } } \ No newline at end of file diff --git a/src/yy/tidialogs/MultiPickerProxy.java b/src/yy/tidialogs/MultiPickerProxy.java index ac40c2e..cf6fe25 100644 --- a/src/yy/tidialogs/MultiPickerProxy.java +++ b/src/yy/tidialogs/MultiPickerProxy.java @@ -8,13 +8,9 @@ import org.appcelerator.kroll.KrollDict; import org.appcelerator.kroll.KrollFunction; import org.appcelerator.kroll.annotations.Kroll; -import org.appcelerator.titanium.TiBlob; import org.appcelerator.titanium.TiC; -import org.appcelerator.titanium.io.TiBaseFile; -import org.appcelerator.titanium.io.TiFileFactory; import org.appcelerator.titanium.proxy.TiViewProxy; import org.appcelerator.titanium.util.TiUIHelper; -import org.appcelerator.titanium.view.TiDrawableReference; import org.appcelerator.titanium.view.TiUIView; import org.appcelerator.kroll.common.Log; @@ -23,16 +19,15 @@ import android.app.AlertDialog; import android.app.AlertDialog.Builder; import android.content.DialogInterface; -import android.graphics.Bitmap; import android.graphics.drawable.Drawable; @Kroll.proxy(creatableInModule = TidialogsModule.class) -public class MultiPickerProxy extends TiViewProxy +public class MultiPickerProxy extends BaseDialogProxy { private static final String LCAT = "TiDialogs"; private KrollFunction onChange; - private class MultiPicker extends TiUIView + private class MultiPicker extends BaseUIDialog { Builder builder; @@ -41,6 +36,14 @@ public MultiPicker(TiViewProxy proxy) super(proxy); } + @Override + protected AlertDialog getDialog() + { + dialog = getBuilder().create(); + builder = null; + return dialog; + } + private Builder getBuilder() { if (builder == null) { @@ -189,13 +192,6 @@ public void onClick(DialogInterface dialog, int id) } } } - - public void show() - { - getBuilder().create().show(); - builder = null; - Log.d(LCAT, "show Dialog"); - } } public MultiPickerProxy() @@ -214,25 +210,4 @@ public void handleCreationDict(KrollDict options) { super.handleCreationDict(options); } - - @Override - protected void handleShow(KrollDict options) - { - super.handleShow(options); - // If there's a lock on the UI message queue, there's a good chance - // we're in the middle of activity stack transitions. An alert - // dialog should occur above the "topmost" activity, so if activity - // stack transitions are occurring, try to give them a chance to - // "settle" - // before determining which Activity should be the context for the - // AlertDialog. - TiUIHelper.runUiDelayedIfBlock(new Runnable() { - @Override - public void run() - { - MultiPicker d = (MultiPicker) getOrCreateView(); - d.show(); - } - }); - } } diff --git a/src/yy/tidialogs/TimePickerProxy.java b/src/yy/tidialogs/TimePickerProxy.java index 594c38c..e7f123a 100644 --- a/src/yy/tidialogs/TimePickerProxy.java +++ b/src/yy/tidialogs/TimePickerProxy.java @@ -6,7 +6,6 @@ import org.appcelerator.kroll.KrollDict; import org.appcelerator.kroll.annotations.Kroll; import org.appcelerator.titanium.proxy.TiViewProxy; -import org.appcelerator.titanium.util.TiUIHelper; import org.appcelerator.titanium.view.TiUIView; import android.R; @@ -17,9 +16,9 @@ import android.widget.TimePicker; @Kroll.proxy(creatableInModule = TidialogsModule.class) -public class TimePickerProxy extends TiViewProxy +public class TimePickerProxy extends BaseDialogProxy { - private class BasicDatePicker extends TiUIView + private class BasicDatePicker extends BaseUIDialog { private int hour; @@ -33,7 +32,7 @@ public BasicDatePicker(TiViewProxy proxy) super(proxy); } - private TimePickerDialog getDialog() + protected TimePickerDialog getDialog() { TimePickerDialog picker = new TimePickerDialog(this.proxy.getActivity(), new TimePickerDialog.OnTimeSetListener() { @@ -73,6 +72,7 @@ public void onClick(DialogInterface dialog, int which) } }); + dialog = picker; return picker; } @@ -110,11 +110,6 @@ public void processProperties(KrollDict d) cancelButtonTitle = this.proxy.getActivity().getApplication().getResources().getString(R.string.cancel); } } - - public void show() - { - getDialog().show(); - } } public TimePickerProxy() @@ -133,18 +128,4 @@ public void handleCreationDict(KrollDict options) { super.handleCreationDict(options); } - - @Override - protected void handleShow(KrollDict options) - { - super.handleShow(options); - TiUIHelper.runUiDelayedIfBlock(new Runnable() { - @Override - public void run() - { - BasicDatePicker d = (BasicDatePicker) getOrCreateView(); - d.show(); - } - }); - } } \ No newline at end of file From e57e72e6df631e66c4ea8e3f2b6cb7d75e30c6d7 Mon Sep 17 00:00:00 2001 From: Sergey Volkov Date: Tue, 4 Sep 2018 18:24:34 +0300 Subject: [PATCH 3/8] Add "minDate" and "maxDate" properties --- src/yy/tidialogs/DatePickerProxy.java | 98 ++++++++++++++++++++------- 1 file changed, 73 insertions(+), 25 deletions(-) diff --git a/src/yy/tidialogs/DatePickerProxy.java b/src/yy/tidialogs/DatePickerProxy.java index a9bedd8..f284991 100644 --- a/src/yy/tidialogs/DatePickerProxy.java +++ b/src/yy/tidialogs/DatePickerProxy.java @@ -5,15 +5,21 @@ import org.appcelerator.kroll.KrollDict; import org.appcelerator.kroll.annotations.Kroll; +import org.appcelerator.titanium.TiApplication; +import org.appcelerator.titanium.TiC; import org.appcelerator.titanium.proxy.TiViewProxy; import org.appcelerator.titanium.view.TiUIView; import android.R; import android.app.Activity; import android.app.DatePickerDialog; +import android.app.DatePickerDialog.OnDateSetListener; import android.content.DialogInterface; +import android.os.Build; import android.widget.DatePicker; +import ti.modules.titanium.ui.widget.picker.TiDatePickerDialog; + @Kroll.proxy(creatableInModule = TidialogsModule.class) public class DatePickerProxy extends BaseDialogProxy { @@ -24,6 +30,9 @@ private class BasicDatePicker extends BaseUIDialog private int month; private int day; + private Date maxDate; + private Date minDate; + private String okButtonTitle; private String cancelButtonTitle; @@ -34,31 +43,47 @@ public BasicDatePicker(TiViewProxy proxy) protected DatePickerDialog getDialog() { - DatePickerDialog picker = - new DatePickerDialog(this.proxy.getActivity(), new DatePickerDialog.OnDateSetListener() { - // when dialog box is closed, below method will be - // called. - public void onDateSet(DatePicker view, int selectedYear, int selectedMonth, int selectedDay) - { - year = selectedYear; - month = selectedMonth; - day = selectedDay; - - KrollDict data = new KrollDict(); - - Calendar calendar = Calendar.getInstance(); - calendar.set(Calendar.YEAR, year); - calendar.set(Calendar.MONTH, month); - calendar.set(Calendar.DAY_OF_MONTH, day); - Date value = calendar.getTime(); - - data.put("value", value); - data.put("year", year); - data.put("month", month); - data.put("day", day); - fireEvent("click", data); - } - }, year, month, day); + OnDateSetListener dateSetListener = new OnDateSetListener() { + // when dialog box is closed, below method will be + // called. + public void onDateSet(DatePicker view, int selectedYear, int selectedMonth, int selectedDay) + { + year = selectedYear; + month = selectedMonth; + day = selectedDay; + + KrollDict data = new KrollDict(); + + Calendar calendar = Calendar.getInstance(); + calendar.set(Calendar.YEAR, year); + calendar.set(Calendar.MONTH, month); + calendar.set(Calendar.DAY_OF_MONTH, day); + Date value = calendar.getTime(); + + data.put("value", value); + data.put("year", year); + data.put("month", month); + data.put("day", day); + fireEvent("click", data); + } + }; + DatePickerDialog picker; + + if ((Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) + && (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP)) { + picker = new TiDatePickerDialog(proxy.getActivity(), dateSetListener, year, month, day); + } else { + picker = new DatePickerDialog(TiApplication.getAppCurrentActivity(), dateSetListener, year, month, day); + } + + if (minDate != null) { + picker.getDatePicker().setMinDate(trimDate(minDate).getTime()); + } + + if (maxDate != null) { + picker.getDatePicker().setMaxDate(trimDate(maxDate).getTime()); + } + picker.setCanceledOnTouchOutside(false); picker.setButton(DialogInterface.BUTTON_POSITIVE, okButtonTitle, picker); @@ -104,6 +129,13 @@ public void processProperties(KrollDict d) } } + if (d.containsKey(TiC.PROPERTY_MIN_DATE)) { + minDate = (Date) d.get(TiC.PROPERTY_MIN_DATE); + } + if (d.containsKey(TiC.PROPERTY_MAX_DATE)) { + maxDate = (Date) d.get(TiC.PROPERTY_MAX_DATE); + } + if (d.containsKey("okButtonTitle")) { okButtonTitle = d.getString("okButtonTitle"); } else { @@ -133,4 +165,20 @@ public void handleCreationDict(KrollDict options) { super.handleCreationDict(options); } + + /** + * Trim hour, minute, second and millisecond from the date + * @param inDate input date + * @return return the trimmed date + */ + public static Date trimDate(Date inDate) + { + Calendar cal = Calendar.getInstance(); + cal.setTime(inDate); + cal.set(Calendar.HOUR_OF_DAY, 0); + cal.set(Calendar.MINUTE, 0); + cal.set(Calendar.SECOND, 0); + cal.set(Calendar.MILLISECOND, 0); + return cal.getTime(); + } } \ No newline at end of file From cce2b26a40c6f13fec9d4dc76cd05ebce672684d Mon Sep 17 00:00:00 2001 From: Sergey Volkov Date: Tue, 4 Sep 2018 18:28:47 +0300 Subject: [PATCH 4/8] Add "format24" property --- src/yy/tidialogs/TimePickerProxy.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/yy/tidialogs/TimePickerProxy.java b/src/yy/tidialogs/TimePickerProxy.java index e7f123a..00f01bd 100644 --- a/src/yy/tidialogs/TimePickerProxy.java +++ b/src/yy/tidialogs/TimePickerProxy.java @@ -6,6 +6,7 @@ import org.appcelerator.kroll.KrollDict; import org.appcelerator.kroll.annotations.Kroll; import org.appcelerator.titanium.proxy.TiViewProxy; +import org.appcelerator.titanium.util.TiConvert; import org.appcelerator.titanium.view.TiUIView; import android.R; @@ -23,6 +24,7 @@ private class BasicDatePicker extends BaseUIDialog private int hour; private int minute; + private boolean is24HourView; private String okButtonTitle; private String cancelButtonTitle; @@ -57,7 +59,7 @@ public void onTimeSet(TimePicker selectedTime, int selectedHour, int selectedMin data.put("minute", minute); fireEvent("click", data); } - }, hour, minute, DateFormat.is24HourFormat(this.proxy.getActivity())); + }, hour, minute, is24HourView); picker.setCanceledOnTouchOutside(false); @@ -99,6 +101,12 @@ public void processProperties(KrollDict d) } } + if (d.containsKey("format24")) { + is24HourView = TiConvert.toBoolean(d, "format24"); + } else { + is24HourView = DateFormat.is24HourFormat(this.proxy.getActivity()); + } + if (d.containsKey("okButtonTitle")) { okButtonTitle = d.getString("okButtonTitle"); } else { From a5a2ebc6cd217115ce6f3ed55031fb5e2cfd8694 Mon Sep 17 00:00:00 2001 From: Sergey Volkov Date: Tue, 4 Sep 2018 19:31:44 +0300 Subject: [PATCH 5/8] Use "dismiss" instead of "click" on "cancel" --- src/yy/tidialogs/BaseUIDialog.java | 22 ++++++++++++++++++++++ src/yy/tidialogs/DatePickerProxy.java | 11 ++--------- src/yy/tidialogs/MultiPickerProxy.java | 15 ++------------- src/yy/tidialogs/TimePickerProxy.java | 9 +-------- 4 files changed, 27 insertions(+), 30 deletions(-) diff --git a/src/yy/tidialogs/BaseUIDialog.java b/src/yy/tidialogs/BaseUIDialog.java index ffd0952..86ca0e7 100644 --- a/src/yy/tidialogs/BaseUIDialog.java +++ b/src/yy/tidialogs/BaseUIDialog.java @@ -2,16 +2,38 @@ import android.app.AlertDialog; +import org.appcelerator.kroll.KrollDict; import org.appcelerator.titanium.proxy.TiViewProxy; import org.appcelerator.titanium.view.TiUIView; +import android.content.DialogInterface; +import android.content.DialogInterface.OnDismissListener; + +import java.util.concurrent.atomic.AtomicInteger; + public abstract class BaseUIDialog extends TiUIView { protected AlertDialog dialog; + private AtomicInteger dismissCallCount = new AtomicInteger(0); + protected OnDismissListener dismissListener; + public BaseUIDialog(TiViewProxy proxy) { super(proxy); + dismissListener = new OnDismissListener() { + @Override + public void onDismiss(DialogInterface dialog) + { + if (dismissCallCount.get() == 0) { + dismissCallCount.incrementAndGet(); + KrollDict data = new KrollDict(); + data.put("cancel", true); + data.put("value", null); + fireEvent("cancel", data); + } + } + }; } abstract protected AlertDialog getDialog(); diff --git a/src/yy/tidialogs/DatePickerProxy.java b/src/yy/tidialogs/DatePickerProxy.java index f284991..b0d31f9 100644 --- a/src/yy/tidialogs/DatePickerProxy.java +++ b/src/yy/tidialogs/DatePickerProxy.java @@ -84,19 +84,12 @@ public void onDateSet(DatePicker view, int selectedYear, int selectedMonth, int picker.getDatePicker().setMaxDate(trimDate(maxDate).getTime()); } + picker.setOnDismissListener(dismissListener); + picker.setCanceledOnTouchOutside(false); picker.setButton(DialogInterface.BUTTON_POSITIVE, okButtonTitle, picker); - picker.setButton(DialogInterface.BUTTON_NEGATIVE, cancelButtonTitle, new DialogInterface.OnClickListener() { - - @Override - public void onClick(DialogInterface dialog, int which) - { - fireEvent("cancel", new KrollDict()); - } - }); - dialog = picker; return picker; } diff --git a/src/yy/tidialogs/MultiPickerProxy.java b/src/yy/tidialogs/MultiPickerProxy.java index cf6fe25..901a5f1 100644 --- a/src/yy/tidialogs/MultiPickerProxy.java +++ b/src/yy/tidialogs/MultiPickerProxy.java @@ -40,6 +40,7 @@ public MultiPicker(TiViewProxy proxy) protected AlertDialog getDialog() { dialog = getBuilder().create(); + dialog.setOnDismissListener(dismissListener); builder = null; return dialog; } @@ -177,19 +178,7 @@ public void onClick(DialogInterface dialog, int id) } }); - if (cancellable == true) { - - // cancel returns nothing - getBuilder().setNegativeButton(cancelButtonTitle, new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int id) - { - fireEvent("cancel", new KrollDict()); - } - }); - } else { - getBuilder().setCancelable(false); - } + getBuilder().setCancelable(cancellable); } } } diff --git a/src/yy/tidialogs/TimePickerProxy.java b/src/yy/tidialogs/TimePickerProxy.java index 00f01bd..b20f16b 100644 --- a/src/yy/tidialogs/TimePickerProxy.java +++ b/src/yy/tidialogs/TimePickerProxy.java @@ -65,14 +65,7 @@ public void onTimeSet(TimePicker selectedTime, int selectedHour, int selectedMin picker.setButton(DialogInterface.BUTTON_POSITIVE, okButtonTitle, picker); - picker.setButton(DialogInterface.BUTTON_NEGATIVE, cancelButtonTitle, new DialogInterface.OnClickListener() { - - @Override - public void onClick(DialogInterface dialog, int which) - { - fireEvent("cancel", new KrollDict()); - } - }); + picker.setOnDismissListener(dismissListener); dialog = picker; return picker; From 0d1ae81014fa05f3dd4688006e88262251dd3665 Mon Sep 17 00:00:00 2001 From: Sergey Volkov Date: Sun, 23 Sep 2018 15:12:20 +0300 Subject: [PATCH 6/8] Add fix for timepicker --- src/yy/tidialogs/TimePickerProxy.java | 58 +++++++++++++++++---------- 1 file changed, 36 insertions(+), 22 deletions(-) diff --git a/src/yy/tidialogs/TimePickerProxy.java b/src/yy/tidialogs/TimePickerProxy.java index b20f16b..44a5ec0 100644 --- a/src/yy/tidialogs/TimePickerProxy.java +++ b/src/yy/tidialogs/TimePickerProxy.java @@ -14,12 +14,15 @@ import android.app.TimePickerDialog; import android.content.DialogInterface; import android.text.format.DateFormat; +import android.os.Build; import android.widget.TimePicker; +import ti.modules.titanium.ui.widget.picker.TiTimePickerDialog; + @Kroll.proxy(creatableInModule = TidialogsModule.class) public class TimePickerProxy extends BaseDialogProxy { - private class BasicDatePicker extends BaseUIDialog + private class BasicTimePicker extends BaseUIDialog { private int hour; @@ -29,37 +32,48 @@ private class BasicDatePicker extends BaseUIDialog private String okButtonTitle; private String cancelButtonTitle; - public BasicDatePicker(TiViewProxy proxy) + public BasicTimePicker(TiViewProxy proxy) { super(proxy); } protected TimePickerDialog getDialog() { - TimePickerDialog picker = - new TimePickerDialog(this.proxy.getActivity(), new TimePickerDialog.OnTimeSetListener() { + TimePickerDialog.OnTimeSetListener timeSetListener = new TimePickerDialog.OnTimeSetListener() { + + @Override + public void onTimeSet(TimePicker selectedTime, int selectedHour, int selectedMinute) + { + // TODO Auto-generated method stub + + hour = selectedHour; + minute = selectedMinute; - @Override - public void onTimeSet(TimePicker selectedTime, int selectedHour, int selectedMinute) - { - // TODO Auto-generated method stub + KrollDict data = new KrollDict(); - hour = selectedHour; - minute = selectedMinute; + Calendar calendar = Calendar.getInstance(); + calendar.set(Calendar.HOUR_OF_DAY, hour); + calendar.set(Calendar.MINUTE, minute); + Date value = calendar.getTime(); - KrollDict data = new KrollDict(); + data.put("value", value); + data.put("hour", hour); + data.put("minute", minute); + fireEvent("click", data); + } + }; - Calendar calendar = Calendar.getInstance(); - calendar.set(Calendar.HOUR_OF_DAY, hour); - calendar.set(Calendar.MINUTE, minute); - Date value = calendar.getTime(); + // TimePickerDialog has a bug in Android 4.x + // If build version is using Android 4.x, use + // our TiTimePickerDialog. It was fixed from Android 5.0. + TimePickerDialog picker; - data.put("value", value); - data.put("hour", hour); - data.put("minute", minute); - fireEvent("click", data); - } - }, hour, minute, is24HourView); + if ((Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) + && (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP)) { + picker = new TiTimePickerDialog(proxy.getActivity(), timeSetListener, hour, minute, is24HourView); + } else { + picker = new TimePickerDialog(proxy.getActivity(), timeSetListener, hour, minute, is24HourView); + } picker.setCanceledOnTouchOutside(false); @@ -121,7 +135,7 @@ public TimePickerProxy() @Override public TiUIView createView(Activity activity) { - return new BasicDatePicker(this); + return new BasicTimePicker(this); } @Override From 221bdc86c9704006880c7e0eb4f6aa28629820d0 Mon Sep 17 00:00:00 2001 From: Sergey Volkov Date: Sun, 23 Sep 2018 15:12:51 +0300 Subject: [PATCH 7/8] Don't recreate dialog --- src/yy/tidialogs/DatePickerProxy.java | 3 +++ src/yy/tidialogs/MultiPickerProxy.java | 3 +++ src/yy/tidialogs/TimePickerProxy.java | 3 +++ 3 files changed, 9 insertions(+) diff --git a/src/yy/tidialogs/DatePickerProxy.java b/src/yy/tidialogs/DatePickerProxy.java index b0d31f9..d71a368 100644 --- a/src/yy/tidialogs/DatePickerProxy.java +++ b/src/yy/tidialogs/DatePickerProxy.java @@ -43,6 +43,9 @@ public BasicDatePicker(TiViewProxy proxy) protected DatePickerDialog getDialog() { + if (dialog != null) { + return (DatePickerDialog) dialog; + } OnDateSetListener dateSetListener = new OnDateSetListener() { // when dialog box is closed, below method will be // called. diff --git a/src/yy/tidialogs/MultiPickerProxy.java b/src/yy/tidialogs/MultiPickerProxy.java index 901a5f1..c46bd9d 100644 --- a/src/yy/tidialogs/MultiPickerProxy.java +++ b/src/yy/tidialogs/MultiPickerProxy.java @@ -39,6 +39,9 @@ public MultiPicker(TiViewProxy proxy) @Override protected AlertDialog getDialog() { + if (dialog != null) { + return dialog; + } dialog = getBuilder().create(); dialog.setOnDismissListener(dismissListener); builder = null; diff --git a/src/yy/tidialogs/TimePickerProxy.java b/src/yy/tidialogs/TimePickerProxy.java index 44a5ec0..e46008a 100644 --- a/src/yy/tidialogs/TimePickerProxy.java +++ b/src/yy/tidialogs/TimePickerProxy.java @@ -39,6 +39,9 @@ public BasicTimePicker(TiViewProxy proxy) protected TimePickerDialog getDialog() { + if (dialog != null) { + return (TimePickerDialog) dialog; + } TimePickerDialog.OnTimeSetListener timeSetListener = new TimePickerDialog.OnTimeSetListener() { @Override From 6bc63fcc5fc0eca1352040f037f357c295436fb7 Mon Sep 17 00:00:00 2001 From: Sergey Volkov Date: Fri, 2 Nov 2018 14:46:06 +0300 Subject: [PATCH 8/8] Use current app activity --- src/yy/tidialogs/DatePickerProxy.java | 9 ++++++--- src/yy/tidialogs/MultiPickerProxy.java | 9 ++++++--- src/yy/tidialogs/TimePickerProxy.java | 14 +++++++++----- 3 files changed, 21 insertions(+), 11 deletions(-) diff --git a/src/yy/tidialogs/DatePickerProxy.java b/src/yy/tidialogs/DatePickerProxy.java index d71a368..be9e5f0 100644 --- a/src/yy/tidialogs/DatePickerProxy.java +++ b/src/yy/tidialogs/DatePickerProxy.java @@ -74,7 +74,8 @@ public void onDateSet(DatePicker view, int selectedYear, int selectedMonth, int if ((Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) && (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP)) { - picker = new TiDatePickerDialog(proxy.getActivity(), dateSetListener, year, month, day); + picker = + new TiDatePickerDialog(TiApplication.getAppCurrentActivity(), dateSetListener, year, month, day); } else { picker = new DatePickerDialog(TiApplication.getAppCurrentActivity(), dateSetListener, year, month, day); } @@ -135,12 +136,14 @@ public void processProperties(KrollDict d) if (d.containsKey("okButtonTitle")) { okButtonTitle = d.getString("okButtonTitle"); } else { - okButtonTitle = this.proxy.getActivity().getApplication().getResources().getString(R.string.ok); + okButtonTitle = + TiApplication.getAppCurrentActivity().getApplication().getResources().getString(R.string.ok); } if (d.containsKey("cancelButtonTitle")) { cancelButtonTitle = d.getString("cancelButtonTitle"); } else { - cancelButtonTitle = this.proxy.getActivity().getApplication().getResources().getString(R.string.cancel); + cancelButtonTitle = + TiApplication.getAppCurrentActivity().getApplication().getResources().getString(R.string.cancel); } } } diff --git a/src/yy/tidialogs/MultiPickerProxy.java b/src/yy/tidialogs/MultiPickerProxy.java index c46bd9d..eabc2f7 100644 --- a/src/yy/tidialogs/MultiPickerProxy.java +++ b/src/yy/tidialogs/MultiPickerProxy.java @@ -8,6 +8,7 @@ import org.appcelerator.kroll.KrollDict; import org.appcelerator.kroll.KrollFunction; import org.appcelerator.kroll.annotations.Kroll; +import org.appcelerator.titanium.TiApplication; import org.appcelerator.titanium.TiC; import org.appcelerator.titanium.proxy.TiViewProxy; import org.appcelerator.titanium.util.TiUIHelper; @@ -51,7 +52,7 @@ protected AlertDialog getDialog() private Builder getBuilder() { if (builder == null) { - builder = new AlertDialog.Builder(this.proxy.getActivity()); + builder = new AlertDialog.Builder(TiApplication.getAppCurrentActivity()); builder.setCancelable(true); } return builder; @@ -91,13 +92,15 @@ public void processProperties(KrollDict properties) if (properties.containsKey("okButtonTitle")) { okButtonTitle = properties.getString("okButtonTitle"); } else { - okButtonTitle = this.proxy.getActivity().getApplication().getResources().getString(R.string.ok); + okButtonTitle = + TiApplication.getAppCurrentActivity().getApplication().getResources().getString(R.string.ok); } if (properties.containsKeyAndNotNull("cancelButtonTitle")) { cancelButtonTitle = properties.getString("cancelButtonTitle"); } else { - cancelButtonTitle = this.proxy.getActivity().getApplication().getResources().getString(R.string.cancel); + cancelButtonTitle = + TiApplication.getAppCurrentActivity().getApplication().getResources().getString(R.string.cancel); } if (properties.containsKeyAndNotNull("canCancel")) { diff --git a/src/yy/tidialogs/TimePickerProxy.java b/src/yy/tidialogs/TimePickerProxy.java index e46008a..8bdd2e4 100644 --- a/src/yy/tidialogs/TimePickerProxy.java +++ b/src/yy/tidialogs/TimePickerProxy.java @@ -5,6 +5,7 @@ import org.appcelerator.kroll.KrollDict; import org.appcelerator.kroll.annotations.Kroll; +import org.appcelerator.titanium.TiApplication; import org.appcelerator.titanium.proxy.TiViewProxy; import org.appcelerator.titanium.util.TiConvert; import org.appcelerator.titanium.view.TiUIView; @@ -71,11 +72,12 @@ public void onTimeSet(TimePicker selectedTime, int selectedHour, int selectedMin // our TiTimePickerDialog. It was fixed from Android 5.0. TimePickerDialog picker; + Activity activity = TiApplication.getAppCurrentActivity(); if ((Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) && (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP)) { - picker = new TiTimePickerDialog(proxy.getActivity(), timeSetListener, hour, minute, is24HourView); + picker = new TiTimePickerDialog(activity, timeSetListener, hour, minute, is24HourView); } else { - picker = new TimePickerDialog(proxy.getActivity(), timeSetListener, hour, minute, is24HourView); + picker = new TimePickerDialog(activity, timeSetListener, hour, minute, is24HourView); } picker.setCanceledOnTouchOutside(false); @@ -114,18 +116,20 @@ public void processProperties(KrollDict d) if (d.containsKey("format24")) { is24HourView = TiConvert.toBoolean(d, "format24"); } else { - is24HourView = DateFormat.is24HourFormat(this.proxy.getActivity()); + is24HourView = DateFormat.is24HourFormat(TiApplication.getAppCurrentActivity()); } if (d.containsKey("okButtonTitle")) { okButtonTitle = d.getString("okButtonTitle"); } else { - okButtonTitle = this.proxy.getActivity().getApplication().getResources().getString(R.string.ok); + okButtonTitle = + TiApplication.getAppCurrentActivity().getApplication().getResources().getString(R.string.ok); } if (d.containsKey("cancelButtonTitle")) { cancelButtonTitle = d.getString("cancelButtonTitle"); } else { - cancelButtonTitle = this.proxy.getActivity().getApplication().getResources().getString(R.string.cancel); + cancelButtonTitle = + TiApplication.getAppCurrentActivity().getApplication().getResources().getString(R.string.cancel); } } }