assignedControls = new HashSet<>();
- /** Color integer value to be applied to the refresh layout's progress indicator. */
+ /**
+ * Color integer value to be applied to the refresh layout's progress indicator.
+ */
private int tintColor = DEFAULT_TINT_COLOR;
/**
@@ -48,14 +55,55 @@ public class RefreshControlProxy extends KrollProxy
*/
private TiSwipeRefreshLayout swipeRefreshLayout;
- /** Creates a new Titanium "RefreshControl" proxy binding. */
+ /**
+ * Creates a new Titanium "RefreshControl" proxy binding.
+ */
public RefreshControlProxy()
{
super();
}
+ /**
+ * Unassigns the given view from a RefreshControlProxy instance that was once assigned to
+ * it via the assignTo() method. A view is expected to call this method when removed from the
+ * window or to disable pull-down refresh support.
+ *
+ * @param view The view to be unassigned from a refresh control, if currently assigned. Can be null.
+ */
+ public static void unassignFrom(TiSwipeRefreshLayout view)
+ {
+ // Validate argument.
+ if (view == null) {
+ return;
+ }
+
+ // Attempt to find a refresh control that is currently assigned to the given view.
+ RefreshControlProxy proxy = null;
+ for (RefreshControlProxy nextProxy : RefreshControlProxy.assignedControls) {
+ if ((nextProxy != null) && (nextProxy.swipeRefreshLayout == view)) {
+ proxy = nextProxy;
+ break;
+ }
+ }
+ if (proxy == null) {
+ return;
+ }
+
+ // Remove the refresh event listener.
+ proxy.swipeRefreshLayout.setOnRefreshListener(null);
+
+ // Disable pull-down refresh support.
+ proxy.endRefreshing();
+ proxy.swipeRefreshLayout.setSwipeRefreshEnabled(false);
+
+ // Unassign the view from the refresh control.
+ RefreshControlProxy.assignedControls.remove(proxy);
+ proxy.swipeRefreshLayout = null;
+ }
+
/**
* Fetches the JavaScript type name of this proxy object.
+ *
* @return Returns the unique type name of this proxy object.
*/
@Override
@@ -69,6 +117,7 @@ public String getApiName()
*
* Expected to be called on the runtime thread when the
* JavaScript Ti.UI.createRefreshControl() function has been invoked.
+ *
* @param properties Dictionary of property settings.
*/
@Override
@@ -94,7 +143,8 @@ public void handleCreationDict(KrollDict properties)
/**
* Called when a single property setting has been changed.
* Expected to be called on the JavaScript runtime thread.
- * @param name The unique name of the property that was changed.
+ *
+ * @param name The unique name of the property that was changed.
* @param value The property new value. Can be null.
*/
@Override
@@ -116,9 +166,9 @@ public void onPropertyChanged(String name, Object value)
/**
* Stores the given tint color value to be applied to the refresh progress indicator.
- * @param colorName
- * The color value to be applied. Expected to be a string such as "red", "blue", "#00FF00", etc.
- * Can be null, in which case, the progress indicator will revert back to its default color.
+ *
+ * @param colorName The color value to be applied. Expected to be a string such as "red", "blue", "#00FF00", etc.
+ * Can be null, in which case, the progress indicator will revert back to its default color.
*/
private void onTintColorChanged(Object colorName)
{
@@ -141,7 +191,9 @@ private void onTintColorChanged(Object colorName)
this.swipeRefreshLayout.setColorSchemeColors(tintColor);
}
- /** Displays the refresh progress indicator if a SwipeRefreshLayout is currently assigned. */
+ /**
+ * Displays the refresh progress indicator if a SwipeRefreshLayout is currently assigned.
+ */
@Kroll.method
public void beginRefreshing()
{
@@ -162,7 +214,9 @@ public void beginRefreshing()
fireEvent(TiC.EVENT_REFRESH_START, null);
}
- /** Hides the refresh progress indicator if a SwipeRefreshLayout is currently assigned. */
+ /**
+ * Hides the refresh progress indicator if a SwipeRefreshLayout is currently assigned.
+ */
@Kroll.method
public void endRefreshing()
{
@@ -195,10 +249,10 @@ public void endRefreshing()
*
* If this refresh control is currently assigned to another view, then it will be automatically
* unassigned from the previous view before being assigned the given view.
- * @param view
- * The view to be assigned to this refresh control.
- *
- * Can be null, in which case, this method will do nothing.
+ *
+ * @param view The view to be assigned to this refresh control.
+ *
+ * Can be null, in which case, this method will do nothing.
*/
public void assignTo(TiSwipeRefreshLayout view)
{
@@ -222,7 +276,8 @@ public void assignTo(TiSwipeRefreshLayout view)
// Set up the given view for pull-down refresh support.
view.setColorSchemeColors(this.tintColor);
view.setSwipeRefreshEnabled(true);
- view.setOnRefreshListener(new TiSwipeRefreshLayout.OnRefreshListener() {
+ view.setOnRefreshListener(new TiSwipeRefreshLayout.OnRefreshListener()
+ {
@Override
public void onRefresh()
{
@@ -232,42 +287,4 @@ public void onRefresh()
}
});
}
-
- /**
- * Unassigns the given view from a RefreshControlProxy instance that was once assigned to
- * it via the assignTo() method. A view is expected to call this method when removed from the
- * window or to disable pull-down refresh support.
- * @param view
- * The view to be unassigned from a refresh control, if currently assigned. Can be null.
- */
- public static void unassignFrom(TiSwipeRefreshLayout view)
- {
- // Validate argument.
- if (view == null) {
- return;
- }
-
- // Attempt to find a refresh control that is currently assigned to the given view.
- RefreshControlProxy proxy = null;
- for (RefreshControlProxy nextProxy : RefreshControlProxy.assignedControls) {
- if ((nextProxy != null) && (nextProxy.swipeRefreshLayout == view)) {
- proxy = nextProxy;
- break;
- }
- }
- if (proxy == null) {
- return;
- }
-
- // Remove the refresh event listener.
- proxy.swipeRefreshLayout.setOnRefreshListener(null);
-
- // Disable pull-down refresh support.
- proxy.endRefreshing();
- proxy.swipeRefreshLayout.setSwipeRefreshEnabled(false);
-
- // Unassign the view from the refresh control.
- RefreshControlProxy.assignedControls.remove(proxy);
- proxy.swipeRefreshLayout = null;
- }
}
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/ScrollViewProxy.java b/android/modules/ui/src/java/ti/modules/titanium/ui/ScrollViewProxy.java
index 020ddb62cc8..81ee8644f2d 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/ScrollViewProxy.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/ScrollViewProxy.java
@@ -1,22 +1,24 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
*/
package ti.modules.titanium.ui;
+import android.app.Activity;
+
import org.appcelerator.kroll.KrollDict;
import org.appcelerator.kroll.annotations.Kroll;
import org.appcelerator.titanium.TiC;
import org.appcelerator.titanium.proxy.TiViewProxy;
-import org.appcelerator.titanium.view.TiUIView;
import org.appcelerator.titanium.util.TiConvert;
+import org.appcelerator.titanium.view.TiUIView;
-import ti.modules.titanium.ui.widget.TiUIScrollView;
-import android.app.Activity;
import java.util.HashMap;
+import ti.modules.titanium.ui.widget.TiUIScrollView;
+
@Kroll.proxy(creatableInModule = UIModule.class,
propertyAccessors = {
TiC.PROPERTY_CONTENT_HEIGHT,
@@ -28,7 +30,7 @@
TiC.PROPERTY_CAN_CANCEL_EVENTS,
TiC.PROPERTY_OVER_SCROLL_MODE,
TiC.PROPERTY_REFRESH_CONTROL
-})
+ })
public class ScrollViewProxy extends TiViewProxy
{
private static final int MSG_FIRST_ID = TiViewProxy.MSG_LAST_ID + 1;
@@ -65,18 +67,18 @@ public void scrollTo(int x, int y, @Kroll.argument(optional = true) HashMap args
handleScrollTo(x, y, animated);
}
- @Kroll.setProperty
- public void setScrollingEnabled(Object enabled)
- {
- getScrollView().setScrollingEnabled(enabled);
- }
-
@Kroll.getProperty
public boolean getScrollingEnabled()
{
return getScrollView().getScrollingEnabled();
}
+ @Kroll.setProperty
+ public void setScrollingEnabled(Object enabled)
+ {
+ getScrollView().setScrollingEnabled(enabled);
+ }
+
@Kroll.method
public void scrollToBottom()
{
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/ScrollableViewProxy.java b/android/modules/ui/src/java/ti/modules/titanium/ui/ScrollableViewProxy.java
index a11fab32103..b3ab5c08940 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/ScrollableViewProxy.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/ScrollableViewProxy.java
@@ -1,14 +1,13 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
*/
package ti.modules.titanium.ui;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.concurrent.atomic.AtomicBoolean;
+import android.app.Activity;
+import android.os.Message;
import org.appcelerator.kroll.KrollDict;
import org.appcelerator.kroll.annotations.Kroll;
@@ -17,24 +16,24 @@
import org.appcelerator.titanium.util.TiConvert;
import org.appcelerator.titanium.view.TiUIView;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.concurrent.atomic.AtomicBoolean;
+
import ti.modules.titanium.ui.widget.TiUIScrollableView;
-import android.app.Activity;
-import android.os.Message;
@Kroll.proxy(creatableInModule = UIModule.class,
propertyAccessors = {
- TiC.PROPERTY_CURRENT_PAGE,
TiC.PROPERTY_CACHE_SIZE,
TiC.PROPERTY_CLIP_VIEWS,
TiC.PROPERTY_PADDING,
- TiC.PROPERTY_SCROLLING_ENABLED,
TiC.PROPERTY_SHOW_PAGING_CONTROL,
TiC.PROPERTY_OVER_SCROLL_MODE
-})
+ })
public class ScrollableViewProxy extends TiViewProxy
{
+ public static final int MIN_CACHE_SIZE = 3;
private static final String TAG = "TiScrollableView";
-
private static final int MSG_FIRST_ID = TiViewProxy.MSG_LAST_ID + 1;
public static final int MSG_HIDE_PAGER = MSG_FIRST_ID + 101;
public static final int MSG_MOVE_PREV = MSG_FIRST_ID + 102;
@@ -43,12 +42,9 @@ public class ScrollableViewProxy extends TiViewProxy
public static final int MSG_SET_CURRENT = MSG_FIRST_ID + 107;
public static final int MSG_SET_ENABLED = MSG_FIRST_ID + 109;
public static final int MSG_LAST_ID = MSG_FIRST_ID + 999;
-
private static final int DEFAULT_PAGING_CONTROL_TIMEOUT = 3000;
- public static final int MIN_CACHE_SIZE = 3;
-
protected AtomicBoolean inScroll;
- private List views = new ArrayList<>();
+ private final List views = new ArrayList<>();
private TiUIScrollableView scrollableView;
public ScrollableViewProxy()
@@ -360,6 +356,14 @@ public boolean getScrollingEnabled()
: getProperties().optBoolean(TiC.PROPERTY_SCROLLING_ENABLED, true);
}
+ @Kroll.setProperty
+ public void setScrollingEnabled(boolean value)
+ {
+ if (scrollableView != null) {
+ scrollableView.setEnabled(value);
+ }
+ }
+
@Kroll.getProperty
public int getCurrentPage()
{
@@ -367,6 +371,16 @@ public int getCurrentPage()
: getProperties().optInt(TiC.PROPERTY_CURRENT_PAGE, 0);
}
+ @Kroll.setProperty
+ public void setCurrentPage(int currentPage)
+ {
+ setProperty(TiC.PROPERTY_CURRENT_PAGE, currentPage);
+
+ if (scrollableView != null) {
+ scrollableView.setCurrentPage(currentPage);
+ }
+ }
+
@Override
public void releaseViews()
{
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/SearchBarProxy.java b/android/modules/ui/src/java/ti/modules/titanium/ui/SearchBarProxy.java
index a308c18c462..0bfadaae48c 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/SearchBarProxy.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/SearchBarProxy.java
@@ -1,11 +1,7 @@
-/**
- * TiDev Titanium Mobile
- * Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
- * Licensed under the terms of the Apache Public License
- * Please see the LICENSE included with this distribution for details.
- */
package ti.modules.titanium.ui;
+import android.app.Activity;
+
import org.appcelerator.kroll.KrollDict;
import org.appcelerator.kroll.annotations.Kroll;
import org.appcelerator.titanium.TiC;
@@ -14,7 +10,6 @@
import org.appcelerator.titanium.view.TiUIView;
import ti.modules.titanium.ui.widget.searchbar.TiUISearchBar;
-import android.app.Activity;
@Kroll.proxy(creatableInModule = UIModule.class,
propertyAccessors = {
@@ -30,7 +25,7 @@
TiC.PROPERTY_PROMPT,
TiC.PROPERTY_PROMPT_ID,
TiC.PROPERTY_VALUE
-})
+ })
public class SearchBarProxy extends TiViewProxy
{
public SearchBarProxy()
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/ShortcutItemProxy.java b/android/modules/ui/src/java/ti/modules/titanium/ui/ShortcutItemProxy.java
index 9f30a4b3d09..fd3827ca0b4 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/ShortcutItemProxy.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/ShortcutItemProxy.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/ShortcutModule.java b/android/modules/ui/src/java/ti/modules/titanium/ui/ShortcutModule.java
index 110cc07ad8d..7e28cb5f563 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/ShortcutModule.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/ShortcutModule.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/SliderProxy.java b/android/modules/ui/src/java/ti/modules/titanium/ui/SliderProxy.java
index 8f914f7e04f..eff016c99ed 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/SliderProxy.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/SliderProxy.java
@@ -1,18 +1,19 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
*/
package ti.modules.titanium.ui;
+import android.app.Activity;
+
import org.appcelerator.kroll.annotations.Kroll;
import org.appcelerator.titanium.TiC;
import org.appcelerator.titanium.proxy.TiViewProxy;
import org.appcelerator.titanium.view.TiUIView;
import ti.modules.titanium.ui.widget.TiUISlider;
-import android.app.Activity;
@Kroll.proxy(creatableInModule = UIModule.class,
propertyAccessors = {
@@ -27,7 +28,7 @@
TiC.PROPERTY_TINT_COLOR,
TiC.PROPERTY_TRACK_TINT_COLOR,
TiC.PROPERTY_VALUE
-})
+ })
public class SliderProxy extends TiViewProxy
{
public SliderProxy()
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/SwitchProxy.java b/android/modules/ui/src/java/ti/modules/titanium/ui/SwitchProxy.java
index b06793c8806..f3758a97fa9 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/SwitchProxy.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/SwitchProxy.java
@@ -1,17 +1,19 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
*/
package ti.modules.titanium.ui;
+import android.app.Activity;
+
import org.appcelerator.kroll.annotations.Kroll;
import org.appcelerator.titanium.TiC;
import org.appcelerator.titanium.proxy.TiViewProxy;
import org.appcelerator.titanium.view.TiUIView;
+
import ti.modules.titanium.ui.widget.TiUISwitch;
-import android.app.Activity;
@Kroll.proxy(creatableInModule = UIModule.class,
propertyAccessors = {
@@ -23,8 +25,12 @@
TiC.PROPERTY_COLOR,
TiC.PROPERTY_FONT,
TiC.PROPERTY_TEXT_ALIGN,
- TiC.PROPERTY_VERTICAL_ALIGN
-})
+ TiC.PROPERTY_TINT_COLOR,
+ TiC.PROPERTY_ON_TINT_COLOR,
+ TiC.PROPERTY_VERTICAL_ALIGN,
+ TiC.PROPERTY_ON_THUMB_COLOR,
+ TiC.PROPERTY_THUMB_COLOR
+ })
public class SwitchProxy extends TiViewProxy
{
public SwitchProxy()
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/TabGroupProxy.java b/android/modules/ui/src/java/ti/modules/titanium/ui/TabGroupProxy.java
index 5d7f2131bbb..0c76925eb2e 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/TabGroupProxy.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/TabGroupProxy.java
@@ -1,14 +1,20 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
*/
package ti.modules.titanium.ui;
-import java.lang.ref.WeakReference;
-import java.util.ArrayList;
-import java.util.HashMap;
+import android.app.Activity;
+import android.content.Intent;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+
+import androidx.annotation.NonNull;
+import androidx.appcompat.app.ActionBar;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.appcompat.widget.Toolbar;
import org.appcelerator.kroll.KrollDict;
import org.appcelerator.kroll.annotations.Kroll;
@@ -27,20 +33,15 @@
import org.appcelerator.titanium.util.TiRHelper;
import org.appcelerator.titanium.util.TiUIHelper;
+import java.lang.ref.WeakReference;
+import java.util.ArrayList;
+import java.util.HashMap;
+
import ti.modules.titanium.ui.android.AndroidModule;
import ti.modules.titanium.ui.widget.tabgroup.TiUIAbstractTabGroup;
import ti.modules.titanium.ui.widget.tabgroup.TiUIBottomNavigationTabGroup;
import ti.modules.titanium.ui.widget.tabgroup.TiUITabLayoutTabGroup;
-import android.app.Activity;
-import android.content.Intent;
-import android.os.Bundle;
-import androidx.annotation.NonNull;
-import androidx.appcompat.app.ActionBar;
-import androidx.appcompat.app.AppCompatActivity;
-import androidx.appcompat.widget.Toolbar;
-import android.view.LayoutInflater;
-
@Kroll.proxy(creatableInModule = UIModule.class,
propertyAccessors = {
TiC.PROPERTY_TABS_BACKGROUND_COLOR,
@@ -49,27 +50,24 @@
TiC.PROPERTY_AUTO_TAB_TITLE,
TiC.PROPERTY_EXIT_ON_CLOSE,
TiC.PROPERTY_SMOOTH_SCROLL_ON_TAB_CLICK
-})
+ })
public class TabGroupProxy extends TiWindowProxy implements TiActivityWindow
{
private static final String TAG = "TabGroupProxy";
private static final String PROPERTY_POST_TAB_GROUP_CREATED = "postTabGroupCreated";
private static final int MSG_FIRST_ID = TiWindowProxy.MSG_LAST_ID + 1;
-
+ protected static final int MSG_LAST_ID = MSG_FIRST_ID + 999;
private static final int MSG_ADD_TAB = MSG_FIRST_ID + 100;
private static final int MSG_REMOVE_TAB = MSG_FIRST_ID + 101;
private static final int MSG_SET_ACTIVE_TAB = MSG_FIRST_ID + 102;
private static final int MSG_GET_ACTIVE_TAB = MSG_FIRST_ID + 103;
private static final int MSG_SET_TABS = MSG_FIRST_ID + 104;
private static final int MSG_DISABLE_TAB_NAVIGATION = MSG_FIRST_ID + 105;
-
- protected static final int MSG_LAST_ID = MSG_FIRST_ID + 999;
-
- private ArrayList tabs = new ArrayList<>();
+ private static int id_toolbar;
+ private final ArrayList tabs = new ArrayList<>();
private WeakReference tabGroupActivity = new WeakReference<>(null);
private Object selectedTab; // NOTE: Can be TabProxy or Number
private String tabGroupTitle = null;
- private static int id_toolbar;
private boolean autoTabTitle = false;
public TabGroupProxy()
@@ -167,12 +165,6 @@ public Object getActiveTab()
}
}
- private TabProxy getActiveTabProxy()
- {
- Object activeTab = getActiveTab();
- return (activeTab != null) ? parseTab(activeTab) : null;
- }
-
@Kroll.setProperty
public void setActiveTab(Object tabOrIndex)
{
@@ -197,6 +189,12 @@ public void setActiveTab(Object tabOrIndex)
}
}
+ private TabProxy getActiveTabProxy()
+ {
+ Object activeTab = getActiveTab();
+ return (activeTab != null) ? parseTab(activeTab) : null;
+ }
+
@Kroll.getProperty(name = "activity")
public ActivityProxy _getActivity()
{
@@ -337,7 +335,7 @@ protected void handleOpen(KrollDict options)
topActivity.startActivity(intent);
topActivity.overridePendingTransition(0, 0);
} else if (options.containsKey(TiC.PROPERTY_ACTIVITY_ENTER_ANIMATION)
- || options.containsKey(TiC.PROPERTY_ACTIVITY_EXIT_ANIMATION)) {
+ || options.containsKey(TiC.PROPERTY_ACTIVITY_EXIT_ANIMATION)) {
topActivity.startActivity(intent);
int enterAnimation = TiConvert.toInt(options.get(TiC.PROPERTY_ACTIVITY_ENTER_ANIMATION), 0);
int exitAnimation = TiConvert.toInt(options.get(TiC.PROPERTY_ACTIVITY_EXIT_ANIMATION), 0);
@@ -364,6 +362,10 @@ public void windowCreated(TiBaseActivity activity, Bundle savedInstanceState)
if (getProperty(TiC.PROPERTY_STYLE) == null
|| ((Integer) getProperty(TiC.PROPERTY_STYLE)) == AndroidModule.TABS_STYLE_DEFAULT) {
view = new TiUITabLayoutTabGroup(this, activity);
+
+ if (getProperty(TiC.PROPERTY_TAB_MODE) != null) {
+ ((TiUITabLayoutTabGroup) view).setTabMode((Integer) getProperty(TiC.PROPERTY_TAB_MODE));
+ }
} else {
view = new TiUIBottomNavigationTabGroup(this, activity);
}
@@ -565,7 +567,7 @@ public void onTabSelected(TabProxy tabProxy)
tabProxy.onSelectionChanged(true);
tabProxy.onFocusChanged(true, focusEventData);
- tabProxy.fireEvent(TiC.EVENT_SELECTED, null, false);
+ tabProxy.fireEvent(TiC.EVENT_SELECTED, focusEventData.clone(), false);
}
@Override
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/TabProxy.java b/android/modules/ui/src/java/ti/modules/titanium/ui/TabProxy.java
index 21426142160..09ea35d055f 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/TabProxy.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/TabProxy.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
@@ -24,7 +24,9 @@
TiC.PROPERTY_ACTIVE_TINT_COLOR,
TiC.PROPERTY_ACTIVE_TITLE_COLOR,
TiC.PROPERTY_BADGE,
- TiC.PROPERTY_BADGE_COLOR,
+ TiC.PROPERTY_BADGE_COLOR, // DEPRECATED: Superseded by PROPERTY_BADGE_BACKGROUND_COLOR.
+ TiC.PROPERTY_BADGE_BACKGROUND_COLOR,
+ TiC.PROPERTY_BADGE_TEXT_COLOR,
TiC.PROPERTY_ICON,
TiC.PROPERTY_TINT_COLOR,
TiC.PROPERTY_TITLE,
@@ -245,7 +247,8 @@ public void onPropertyChanged(String name, Object value)
tabGroupView.updateTabIcon(this.tabGroupProxy.getTabIndex(this));
} else if (name.equals(TiC.PROPERTY_BADGE)) {
tabGroupView.updateBadge(this.tabGroupProxy.getTabIndex(this));
- } else if (name.equals(TiC.PROPERTY_BADGE_COLOR)) {
+ } else if (name.equals(TiC.PROPERTY_BADGE_COLOR) || name.equals(TiC.PROPERTY_BADGE_BACKGROUND_COLOR)
+ || name.equals(TiC.PROPERTY_BADGE_TEXT_COLOR)) {
tabGroupView.updateBadgeColor(this.tabGroupProxy.getTabIndex(this));
}
}
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/TabbedBarProxy.java b/android/modules/ui/src/java/ti/modules/titanium/ui/TabbedBarProxy.java
index 0fae780ecb5..f497d506bce 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/TabbedBarProxy.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/TabbedBarProxy.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/TableViewProxy.java b/android/modules/ui/src/java/ti/modules/titanium/ui/TableViewProxy.java
index 0585e120475..65bc33c7acd 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/TableViewProxy.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/TableViewProxy.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
@@ -128,6 +128,11 @@ static public TableViewSectionProxy processSection(Object obj)
*/
@Kroll.method
public void appendRow(Object rows, @Kroll.argument(optional = true) KrollDict animation)
+ {
+ appendRowInternal(rows, animation, false);
+ }
+
+ private void appendRowInternal(Object rows, KrollDict animation, boolean internalUpdate)
{
final List rowList = new ArrayList<>();
@@ -190,7 +195,11 @@ public void appendRow(Object rows, @Kroll.argument(optional = true) KrollDict an
// Allow updating rows after iteration.
shouldUpdate = true;
- update();
+
+ // don't update when coming from setData loop
+ if (!internalUpdate) {
+ update();
+ }
}
/**
@@ -405,7 +414,7 @@ public String getApiName()
return "Ti.UI.TableView";
}
- // NOTE: For internal use only.
+ @Kroll.getProperty
public KrollDict getContentOffset()
{
final TiTableView tableView = getTableView();
@@ -508,7 +517,7 @@ public void setData(Object[] data)
final TableViewRowProxy row = (TableViewRowProxy) d;
// Handle TableViewRow.
- appendRow(row, null);
+ appendRowInternal(row, null, true);
} else if (d instanceof Object[]) {
setData((Object[]) d);
@@ -519,7 +528,7 @@ public void setData(Object[] data)
// Handle TableViewRow dictionary.
row.handleCreationDict(new KrollDict((HashMap) d));
- appendRow(row, null);
+ appendRowInternal(row, null, true);
} else if (d instanceof TableViewSectionProxy) {
final TableViewSectionProxy section = (TableViewSectionProxy) d;
@@ -531,7 +540,6 @@ public void setData(Object[] data)
// Allow updating rows after iteration.
shouldUpdate = true;
-
update();
}
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/TableViewRowProxy.java b/android/modules/ui/src/java/ti/modules/titanium/ui/TableViewRowProxy.java
index 07039e27fb2..04781c1de63 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/TableViewRowProxy.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/TableViewRowProxy.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
@@ -234,7 +234,7 @@ public void setHolder(TableViewHolder holder)
/**
* Override getRect() to amend dimensions.
*
- * @return Dictinary of view dimensions.
+ * @return Dictionary of view dimensions.
*/
@Override
public KrollDict getRect()
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/TableViewScrollPositionModule.java b/android/modules/ui/src/java/ti/modules/titanium/ui/TableViewScrollPositionModule.java
index 371b7094b77..56d2f6f17b2 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/TableViewScrollPositionModule.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/TableViewScrollPositionModule.java
@@ -1,6 +1,6 @@
/**
- * Appcelerator Titanium Mobile
- * Copyright (c) 2009-2020 by Appcelerator, Inc. All Rights Reserved.
+ * Titanium SDK
+ * Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
*/
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/TableViewSectionProxy.java b/android/modules/ui/src/java/ti/modules/titanium/ui/TableViewSectionProxy.java
index 513accfa7fe..faeb0786187 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/TableViewSectionProxy.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/TableViewSectionProxy.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/TextAreaProxy.java b/android/modules/ui/src/java/ti/modules/titanium/ui/TextAreaProxy.java
index 81e82d72d4c..d88956f5f91 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/TextAreaProxy.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/TextAreaProxy.java
@@ -1,11 +1,13 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
*/
package ti.modules.titanium.ui;
+import android.app.Activity;
+
import org.appcelerator.kroll.KrollDict;
import org.appcelerator.kroll.KrollModule;
import org.appcelerator.kroll.annotations.Kroll;
@@ -15,7 +17,6 @@
import org.appcelerator.titanium.view.TiUIView;
import ti.modules.titanium.ui.widget.TiUIText;
-import android.app.Activity;
@Kroll.proxy(creatableInModule = UIModule.class,
propertyAccessors = {
@@ -32,6 +33,7 @@
TiC.PROPERTY_ENABLE_RETURN_KEY,
TiC.PROPERTY_FONT,
TiC.PROPERTY_FULLSCREEN,
+ TiC.PROPERTY_HINT_TEXT_ID,
TiC.PROPERTY_HINT_TEXT,
TiC.PROPERTY_HINT_TEXT_COLOR,
TiC.PROPERTY_HINT_TYPE,
@@ -45,7 +47,7 @@
TiC.PROPERTY_VERTICAL_ALIGN,
TiC.PROPERTY_PADDING,
TiC.PROPERTY_RETURN_KEY_TYPE
-})
+ })
public class TextAreaProxy extends TiViewProxy
{
public TextAreaProxy()
@@ -61,6 +63,14 @@ public TextAreaProxy()
defaultValues.put(TiC.PROPERTY_HINT_TYPE, UIModule.HINT_TYPE_STATIC);
}
+ @Override
+ protected KrollDict getLangConversionTable()
+ {
+ KrollDict table = new KrollDict();
+ table.put(TiC.PROPERTY_HINT_TEXT, TiC.PROPERTY_HINT_TEXT_ID);
+ return table;
+ }
+
@Override
public void handleCreationArgs(KrollModule createdInModule, Object[] args)
{
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/TextFieldProxy.java b/android/modules/ui/src/java/ti/modules/titanium/ui/TextFieldProxy.java
index 0327176f03c..b594c7fadbb 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/TextFieldProxy.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/TextFieldProxy.java
@@ -1,11 +1,13 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
*/
package ti.modules.titanium.ui;
+import android.app.Activity;
+
import org.appcelerator.kroll.KrollDict;
import org.appcelerator.kroll.KrollModule;
import org.appcelerator.kroll.annotations.Kroll;
@@ -15,7 +17,6 @@
import org.appcelerator.titanium.view.TiUIView;
import ti.modules.titanium.ui.widget.TiUIText;
-import android.app.Activity;
@Kroll.proxy(creatableInModule = UIModule.class,
propertyAccessors = {
@@ -46,7 +47,7 @@
TiC.PROPERTY_VERTICAL_ALIGN,
TiC.PROPERTY_RETURN_KEY_TYPE,
TiC.PROPERTY_PADDING
-})
+ })
public class TextFieldProxy extends TiViewProxy
{
public TextFieldProxy()
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/TiDialogProxy.java b/android/modules/ui/src/java/ti/modules/titanium/ui/TiDialogProxy.java
index 92113c487bc..2fe493d11a0 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/TiDialogProxy.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/TiDialogProxy.java
@@ -1,19 +1,19 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
*/
package ti.modules.titanium.ui;
+import android.app.Activity;
+
import org.appcelerator.kroll.KrollDict;
import org.appcelerator.kroll.annotations.Kroll;
import org.appcelerator.kroll.common.CurrentActivityListener;
import org.appcelerator.titanium.proxy.TiViewProxy;
import org.appcelerator.titanium.util.TiUIHelper;
-import android.app.Activity;
-
@Kroll.proxy(parentModule = UIModule.class,
propertyAccessors = {
"title",
@@ -24,7 +24,7 @@
"options",
"selectedIndex",
"cancel"
-})
+ })
public abstract class TiDialogProxy extends TiViewProxy
{
protected boolean showing = false;
@@ -38,7 +38,8 @@ public TiDialogProxy()
public void show(final KrollDict options)
{
showing = true;
- TiUIHelper.waitForCurrentActivity(new CurrentActivityListener() {
+ TiUIHelper.waitForCurrentActivity(new CurrentActivityListener()
+ {
@Override
public void onCurrentActivityReady(Activity activity)
{
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/ToolbarProxy.java b/android/modules/ui/src/java/ti/modules/titanium/ui/ToolbarProxy.java
index ec1cd8a6912..0599bdf2f09 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/ToolbarProxy.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/ToolbarProxy.java
@@ -1,13 +1,16 @@
package ti.modules.titanium.ui;
import android.app.Activity;
-import androidx.appcompat.widget.Toolbar;
import android.view.View;
+
+import androidx.appcompat.widget.Toolbar;
+
import org.appcelerator.kroll.annotations.Kroll;
import org.appcelerator.titanium.TiC;
import org.appcelerator.titanium.proxy.TiToolbarProxy;
import org.appcelerator.titanium.proxy.TiViewProxy;
import org.appcelerator.titanium.view.TiUIView;
+
import ti.modules.titanium.ui.widget.TiToolbar;
@Kroll.proxy(creatableInModule = UIModule.class,
@@ -26,7 +29,7 @@
TiC.PROPERTY_SUBTITLE_TEXT_COLOR,
TiC.PROPERTY_CONTENT_INSET_END_WITH_ACTIONS,
TiC.PROPERTY_CONTENT_INSET_START_WITH_NAVIGATION
-})
+ })
public class ToolbarProxy extends TiToolbarProxy
{
private static final java.lang.String TAG = "Toolbar";
@@ -53,6 +56,7 @@ public TiUIView createView(Activity activity)
/**
* Sets the activity this proxy's view should be attached to.
+ *
* @param activity The activity this proxy's view should be attached to.
*/
@Override
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/UIModule.java b/android/modules/ui/src/java/ti/modules/titanium/ui/UIModule.java
index 1397ba527ba..19d77525a1f 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/UIModule.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/UIModule.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
@@ -443,6 +443,24 @@ public class UIModule extends KrollModule implements TiApplication.Configuration
@Kroll.constant
public static final int USER_INTERFACE_STYLE_UNSPECIFIED = Configuration.UI_MODE_NIGHT_UNDEFINED;
+ @Kroll.constant
+ public static final int BREAK_SIMPLE = 0;
+ @Kroll.constant
+ public static final int BREAK_HIGH_QUALITY = 1;
+ @Kroll.constant
+ public static final int BREAK_BALANCED = 2;
+
+ @Kroll.constant
+ public static final int HYPHEN_NONE = 0;
+ @Kroll.constant
+ public static final int HYPHEN_NORMAL = 1;
+ @Kroll.constant
+ public static final int HYPHEN_FULL = 2;
+ @Kroll.constant
+ public static final int HYPHEN_NORMAL_FAST = 3;
+ @Kroll.constant
+ public static final int HYPHEN_FULL_FAST = 4;
+
protected static final int MSG_LAST_ID = KrollProxy.MSG_LAST_ID + 101;
public UIModule()
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/ViewProxy.java b/android/modules/ui/src/java/ti/modules/titanium/ui/ViewProxy.java
index 23d840c7417..bef8a67c97c 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/ViewProxy.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/ViewProxy.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/WebViewProxy.java b/android/modules/ui/src/java/ti/modules/titanium/ui/WebViewProxy.java
index fa415b5f176..d0506b36a19 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/WebViewProxy.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/WebViewProxy.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
@@ -54,29 +54,27 @@
TiC.PROPERTY_OVER_SCROLL_MODE,
TiC.PROPERTY_CACHE_MODE,
TiC.PROPERTY_LIGHT_TOUCH_ENABLED,
- TiC.PROPERTY_ON_LINK
-})
+ TiC.PROPERTY_ON_LINK,
+ TiC.PROPERTY_SCROLLBARS
+ })
+
public class WebViewProxy extends ViewProxy implements Handler.Callback, OnLifecycleEvent, interceptOnBackPressedEvent
{
+ public static final String OPTIONS_IN_SETHTML = "optionsInSetHtml";
private static final String TAG = "WebViewProxy";
private static final int MSG_FIRST_ID = ViewProxy.MSG_LAST_ID + 1;
-
+ protected static final int MSG_LAST_ID = MSG_FIRST_ID + 999;
private static final int MSG_GO_BACK = MSG_FIRST_ID + 101;
private static final int MSG_GO_FORWARD = MSG_FIRST_ID + 102;
private static final int MSG_RELOAD = MSG_FIRST_ID + 103;
private static final int MSG_STOP_LOADING = MSG_FIRST_ID + 104;
private static final int MSG_RELEASE = MSG_FIRST_ID + 110;
-
- protected static final int MSG_LAST_ID = MSG_FIRST_ID + 999;
+ private static final Map fevalJSRequests = new HashMap<>();
+ private static final int frequestID = 0;
private static String fusername;
private static String fpassword;
- private static int frequestID = 0;
- private static final Map fevalJSRequests = new HashMap<>();
-
- private Message postCreateMessage;
PrintManager printManager;
-
- public static final String OPTIONS_IN_SETHTML = "optionsInSetHtml";
+ private Message postCreateMessage;
public WebViewProxy()
{
@@ -88,6 +86,15 @@ public WebViewProxy()
defaultValues.put(TiC.PROPERTY_ZOOM_LEVEL, 1.0);
}
+ private static void sendPostCreateMessage(WebView view, Message postCreateMessage)
+ {
+ WebView.WebViewTransport transport = (WebView.WebViewTransport) postCreateMessage.obj;
+ if (transport != null) {
+ transport.setWebView(view);
+ }
+ postCreateMessage.sendToTarget();
+ }
+
@Override
public TiUIView createView(Activity activity)
{
@@ -130,40 +137,6 @@ public Object evalJS(String code, @Kroll.argument(optional = true) KrollFunction
return view.getJSValue(code);
}
- private static class EvalJSRunnable implements Runnable
- {
- private final TiUIWebView view;
- private final KrollObject krollObject;
- private final String code;
- private final KrollFunction callback;
-
- public EvalJSRunnable(TiUIWebView view, KrollObject krollObject, String code, KrollFunction callback)
- {
- this.view = view;
- this.krollObject = krollObject;
- this.code = code;
- this.callback = callback;
- }
-
- public void run()
- {
- // Runs the "old" API we built
- String result = view.getJSValue(code);
- callback.callAsync(krollObject, new Object[] { result });
- }
-
- public void runAsync()
- {
- // Runs the newer API provided by Android
- view.getWebView().evaluateJavascript(code, new ValueCallback() {
- public void onReceiveValue(String value)
- {
- callback.callAsync(krollObject, new Object[] { value });
- }
- });
- }
- }
-
@Kroll.getProperty
public String getHtml()
{
@@ -242,6 +215,16 @@ public void setBasicAuthentication(String username, String password)
getWebView().setBasicAuthentication(username, password);
}
+ @Kroll.getProperty
+ public String getUserAgent()
+ {
+ TiUIWebView currWebView = getWebView();
+ if (currWebView != null) {
+ return currWebView.getUserAgentString();
+ }
+ return "";
+ }
+
@Kroll.setProperty
public void setUserAgent(String userAgent)
{
@@ -252,13 +235,13 @@ public void setUserAgent(String userAgent)
}
@Kroll.getProperty
- public String getUserAgent()
+ public HashMap getRequestHeaders()
{
TiUIWebView currWebView = getWebView();
if (currWebView != null) {
- return currWebView.getUserAgentString();
+ return currWebView.getRequestHeaders();
}
- return "";
+ return new HashMap();
}
@Kroll.setProperty
@@ -272,16 +255,6 @@ public void setRequestHeaders(HashMap params)
}
}
- @Kroll.getProperty
- public HashMap getRequestHeaders()
- {
- TiUIWebView currWebView = getWebView();
- if (currWebView != null) {
- return currWebView.getRequestHeaders();
- }
- return new HashMap();
- }
-
@Kroll.method
public boolean canGoBack()
{
@@ -431,9 +404,17 @@ public int getPluginState()
}
@Kroll.setProperty
- public void setDisableContextMenu(boolean disableContextMenu)
+ public void setPluginState(int pluginState)
{
- setPropertyAndFire(TiC.PROPERTY_DISABLE_CONTEXT_MENU, disableContextMenu);
+ switch (pluginState) {
+ case TiUIWebView.PLUGIN_STATE_OFF:
+ case TiUIWebView.PLUGIN_STATE_ON:
+ case TiUIWebView.PLUGIN_STATE_ON_DEMAND:
+ setPropertyAndFire(TiC.PROPERTY_PLUGIN_STATE, pluginState);
+ break;
+ default:
+ setPropertyAndFire(TiC.PROPERTY_PLUGIN_STATE, TiUIWebView.PLUGIN_STATE_OFF);
+ }
}
@Kroll.getProperty
@@ -446,17 +427,9 @@ public boolean getDisableContextMenu()
}
@Kroll.setProperty
- public void setPluginState(int pluginState)
+ public void setDisableContextMenu(boolean disableContextMenu)
{
- switch (pluginState) {
- case TiUIWebView.PLUGIN_STATE_OFF:
- case TiUIWebView.PLUGIN_STATE_ON:
- case TiUIWebView.PLUGIN_STATE_ON_DEMAND:
- setPropertyAndFire(TiC.PROPERTY_PLUGIN_STATE, pluginState);
- break;
- default:
- setPropertyAndFire(TiC.PROPERTY_PLUGIN_STATE, TiUIWebView.PLUGIN_STATE_OFF);
- }
+ setPropertyAndFire(TiC.PROPERTY_DISABLE_CONTEXT_MENU, disableContextMenu);
}
@Kroll.method
@@ -475,12 +448,6 @@ public void resume()
}
}
- @Kroll.setProperty(runOnUiThread = true)
- public void setEnableZoomControls(boolean enabled)
- {
- setPropertyAndFire(TiC.PROPERTY_ENABLE_ZOOM_CONTROLS, enabled);
- }
-
@Kroll.getProperty
public boolean getEnableZoomControls()
{
@@ -492,6 +459,12 @@ public boolean getEnableZoomControls()
return enabled;
}
+ @Kroll.setProperty(runOnUiThread = true)
+ public void setEnableZoomControls(boolean enabled)
+ {
+ setPropertyAndFire(TiC.PROPERTY_ENABLE_ZOOM_CONTROLS, enabled);
+ }
+
@Kroll.getProperty
public float getZoomLevel()
{
@@ -516,12 +489,6 @@ public void setZoomLevel(float value)
}
}
- @Kroll.setProperty
- public void setAllowFileAccess(boolean enabled)
- {
- setPropertyAndFire(TiC.PROPERTY_ALLOW_FILE_ACCESS, enabled);
- }
-
@Kroll.getProperty
public boolean getAllowFileAccess()
{
@@ -533,6 +500,12 @@ public boolean getAllowFileAccess()
return enabled;
}
+ @Kroll.setProperty
+ public void setAllowFileAccess(boolean enabled)
+ {
+ setPropertyAndFire(TiC.PROPERTY_ALLOW_FILE_ACCESS, enabled);
+ }
+
@Kroll.getProperty
public double getProgress()
{
@@ -569,15 +542,6 @@ public void setPostCreateMessage(Message postCreateMessage)
}
}
- private static void sendPostCreateMessage(WebView view, Message postCreateMessage)
- {
- WebView.WebViewTransport transport = (WebView.WebViewTransport) postCreateMessage.obj;
- if (transport != null) {
- transport.setWebView(view);
- }
- postCreateMessage.sendToTarget();
- }
-
/**
* Don't release the web view when it's removed. TIMOB-7808
*/
@@ -655,4 +619,39 @@ public String getApiName()
{
return "Ti.UI.WebView";
}
+
+ private static class EvalJSRunnable implements Runnable
+ {
+ private final TiUIWebView view;
+ private final KrollObject krollObject;
+ private final String code;
+ private final KrollFunction callback;
+
+ public EvalJSRunnable(TiUIWebView view, KrollObject krollObject, String code, KrollFunction callback)
+ {
+ this.view = view;
+ this.krollObject = krollObject;
+ this.code = code;
+ this.callback = callback;
+ }
+
+ public void run()
+ {
+ // Runs the "old" API we built
+ String result = view.getJSValue(code);
+ callback.callAsync(krollObject, new Object[] { result });
+ }
+
+ public void runAsync()
+ {
+ // Runs the newer API provided by Android
+ view.getWebView().evaluateJavascript(code, new ValueCallback()
+ {
+ public void onReceiveValue(String value)
+ {
+ callback.callAsync(krollObject, new Object[] { value });
+ }
+ });
+ }
+ }
}
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/WindowProxy.java b/android/modules/ui/src/java/ti/modules/titanium/ui/WindowProxy.java
index 7d1f053e936..43d68e76c01 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/WindowProxy.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/WindowProxy.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
@@ -7,30 +7,6 @@
package ti.modules.titanium.ui;
-import java.lang.ref.WeakReference;
-import java.util.HashMap;
-
-import org.appcelerator.kroll.KrollDict;
-import org.appcelerator.kroll.KrollPromise;
-import org.appcelerator.kroll.annotations.Kroll;
-import org.appcelerator.kroll.common.Log;
-import org.appcelerator.titanium.TiActivity;
-import org.appcelerator.titanium.TiActivityWindow;
-import org.appcelerator.titanium.TiActivityWindows;
-import org.appcelerator.titanium.TiApplication;
-import org.appcelerator.titanium.TiBaseActivity;
-import org.appcelerator.titanium.TiC;
-import org.appcelerator.titanium.TiDimension;
-import org.appcelerator.titanium.TiRootActivity;
-import org.appcelerator.titanium.TiTranslucentActivity;
-import org.appcelerator.titanium.proxy.ActivityProxy;
-import org.appcelerator.titanium.proxy.TiWindowProxy;
-import org.appcelerator.titanium.util.TiColorHelper;
-import org.appcelerator.titanium.util.TiConvert;
-import org.appcelerator.titanium.util.TiRHelper;
-import org.appcelerator.titanium.view.TiUIView;
-import ti.modules.titanium.ui.widget.TiView;
-
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
@@ -40,11 +16,9 @@
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.os.Message;
-import androidx.annotation.NonNull;
-import androidx.annotation.Nullable;
-import androidx.appcompat.app.ActionBar;
-import androidx.appcompat.app.AppCompatActivity;
-import androidx.appcompat.widget.Toolbar;
+import android.text.Spannable;
+import android.text.SpannableStringBuilder;
+import android.text.style.ForegroundColorSpan;
import android.transition.ChangeBounds;
import android.transition.ChangeClipBounds;
import android.transition.ChangeImageTransform;
@@ -59,24 +33,57 @@
import android.view.ViewGroup.LayoutParams;
import android.view.Window;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.appcompat.app.ActionBar;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.appcompat.widget.Toolbar;
+
+import org.appcelerator.kroll.KrollDict;
+import org.appcelerator.kroll.KrollPromise;
+import org.appcelerator.kroll.annotations.Kroll;
+import org.appcelerator.kroll.common.Log;
+import org.appcelerator.titanium.TiActivity;
+import org.appcelerator.titanium.TiActivityWindow;
+import org.appcelerator.titanium.TiActivityWindows;
+import org.appcelerator.titanium.TiApplication;
+import org.appcelerator.titanium.TiBaseActivity;
+import org.appcelerator.titanium.TiC;
+import org.appcelerator.titanium.TiDimension;
+import org.appcelerator.titanium.TiRootActivity;
+import org.appcelerator.titanium.TiTranslucentActivity;
+import org.appcelerator.titanium.proxy.ActivityProxy;
+import org.appcelerator.titanium.proxy.TiWindowProxy;
+import org.appcelerator.titanium.util.TiColorHelper;
+import org.appcelerator.titanium.util.TiConvert;
+import org.appcelerator.titanium.util.TiRHelper;
+import org.appcelerator.titanium.view.TiUIView;
+
+import java.lang.ref.WeakReference;
+import java.util.HashMap;
+
+import ti.modules.titanium.ui.widget.TiView;
+
@Kroll.proxy(creatableInModule = UIModule.class,
propertyAccessors = {
TiC.PROPERTY_MODAL,
TiC.PROPERTY_WINDOW_PIXEL_FORMAT,
TiC.PROPERTY_FLAG_SECURE,
- TiC.PROPERTY_BAR_COLOR
-})
+ TiC.PROPERTY_BAR_COLOR,
+ TiC.PROPERTY_STATUS_BAR_COLOR
+ })
+
public class WindowProxy extends TiWindowProxy implements TiActivityWindow
{
private static final String TAG = "WindowProxy";
private static final String PROPERTY_POST_WINDOW_CREATED = "postWindowCreated";
private static final int MSG_FIRST_ID = TiWindowProxy.MSG_LAST_ID + 1;
+ protected static final int MSG_LAST_ID = MSG_FIRST_ID + 999;
private static final int MSG_SET_PIXEL_FORMAT = MSG_FIRST_ID + 100;
private static final int MSG_SET_TITLE = MSG_FIRST_ID + 101;
- protected static final int MSG_LAST_ID = MSG_FIRST_ID + 999;
-
private static int id_toolbar;
+ private int barColor = -1;
private WeakReference windowActivity;
@@ -151,7 +158,7 @@ protected void handleOpen(KrollDict options)
topActivity.startActivity(intent);
topActivity.overridePendingTransition(0, 0);
} else if (options.containsKey(TiC.PROPERTY_ACTIVITY_ENTER_ANIMATION)
- || options.containsKey(TiC.PROPERTY_ACTIVITY_EXIT_ANIMATION)) {
+ || options.containsKey(TiC.PROPERTY_ACTIVITY_EXIT_ANIMATION)) {
topActivity.startActivity(intent);
int enterAnimation = TiConvert.toInt(options.get(TiC.PROPERTY_ACTIVITY_ENTER_ANIMATION), 0);
int exitAnimation = TiConvert.toInt(options.get(TiC.PROPERTY_ACTIVITY_EXIT_ANIMATION), 0);
@@ -206,7 +213,7 @@ protected void handleClose(@NonNull KrollDict options)
if (!animated) {
activity.overridePendingTransition(0, 0);
} else if (options.containsKey(TiC.PROPERTY_ACTIVITY_ENTER_ANIMATION)
- || options.containsKey(TiC.PROPERTY_ACTIVITY_EXIT_ANIMATION)) {
+ || options.containsKey(TiC.PROPERTY_ACTIVITY_EXIT_ANIMATION)) {
int enterAnimation = TiConvert.toInt(options.get(TiC.PROPERTY_ACTIVITY_ENTER_ANIMATION), 0);
int exitAnimation = TiConvert.toInt(options.get(TiC.PROPERTY_ACTIVITY_EXIT_ANIMATION), 0);
activity.overridePendingTransition(enterAnimation, exitAnimation);
@@ -314,12 +321,49 @@ public void windowCreated(TiBaseActivity activity, Bundle savedInstanceState)
Log.w(TAG, "Trying to set a barColor on a Window with ActionBar disabled. Property will be ignored.");
}
}
+
+ if (hasProperty(TiC.PROPERTY_STATUS_BAR_COLOR)) {
+ int colorInt = TiColorHelper.parseColor(
+ TiConvert.toString(getProperty(TiC.PROPERTY_STATUS_BAR_COLOR)), activity);
+ win.setStatusBarColor(colorInt);
+ }
+
+ // Handle titleAttributes property.
+ if (hasProperty(TiC.PROPERTY_TITLE_ATTRIBUTES)) {
+ KrollDict innerAttributes = getProperties().getKrollDict(TiC.PROPERTY_TITLE_ATTRIBUTES);
+ int colorInt = TiColorHelper.parseColor(
+ TiConvert.toString(innerAttributes.getString(TiC.PROPERTY_COLOR)), activity);
+ ActionBar actionBar = activity.getSupportActionBar();
+
+ if (actionBar != null) {
+ changeTitleColor(actionBar, colorInt);
+ } else {
+ Log.w(TAG,
+ "Trying to set a titleAttributes on a Window with ActionBar disabled. Property will be ignored.");
+ }
+ }
activity.getActivityProxy().getDecorView().add(this);
// Need to handle the cached activity proxy properties and url window in the JS side.
callPropertySync(PROPERTY_POST_WINDOW_CREATED, null);
}
+ private void changeTitleColor(ActionBar actionBar, int colorInt)
+ {
+ SpannableStringBuilder ssb;
+ if (actionBar.getTitle() instanceof SpannableStringBuilder) {
+ ssb = (SpannableStringBuilder) actionBar.getTitle();
+ } else {
+ String abTitle = TiConvert.toString(actionBar.getTitle());
+ ssb = new SpannableStringBuilder(abTitle);
+ }
+
+ barColor = colorInt;
+ ssb.setSpan(new ForegroundColorSpan(colorInt),
+ 0, ssb.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE);
+ actionBar.setTitle(ssb);
+ }
+
@Override
public void onWindowActivityCreated()
{
@@ -361,7 +405,7 @@ protected void fillIntent(Activity activity, Intent intent)
}
if (hasProperty(TiC.PROPERTY_WINDOW_PIXEL_FORMAT)) {
intent.putExtra(TiC.PROPERTY_WINDOW_PIXEL_FORMAT,
- TiConvert.toInt(getProperty(TiC.PROPERTY_WINDOW_PIXEL_FORMAT), PixelFormat.UNKNOWN));
+ TiConvert.toInt(getProperty(TiC.PROPERTY_WINDOW_PIXEL_FORMAT), PixelFormat.UNKNOWN));
}
// Set the splitActionBar property
@@ -382,7 +426,7 @@ public void onPropertyChanged(String name, Object value)
} else if (TiC.PROPERTY_TITLE.equals(name)) {
getMainHandler().obtainMessage(MSG_SET_TITLE, value).sendToTarget();
} else if (TiC.PROPERTY_TOP.equals(name) || TiC.PROPERTY_BOTTOM.equals(name)
- || TiC.PROPERTY_LEFT.equals(name) || TiC.PROPERTY_RIGHT.equals(name)) {
+ || TiC.PROPERTY_LEFT.equals(name) || TiC.PROPERTY_RIGHT.equals(name)) {
// The "top", "bottom", "left" and "right" properties do not work for heavyweight windows.
return;
} else if (TiC.PROPERTY_HIDES_BACK_BUTTON.equals(name)) {
@@ -409,9 +453,40 @@ public void onPropertyChanged(String name, Object value)
}
}
}
+
+ if (name.equals(TiC.PROPERTY_STATUS_BAR_COLOR)) {
+ if (windowActivity != null && windowActivity.get() != null) {
+ AppCompatActivity activity = windowActivity.get();
+ int colorInt = TiColorHelper.parseColor(TiConvert.toString(value), activity);
+ activity.getWindow().setStatusBarColor(colorInt);
+ }
+ }
+
+ if (name.equals(TiC.PROPERTY_TITLE_ATTRIBUTES)) {
+ if (windowActivity != null && windowActivity.get() != null) {
+ // Get a reference to the ActionBar.
+ AppCompatActivity activity = windowActivity.get();
+ ActionBar actionBar = activity.getSupportActionBar();
+ // Check if it is available ( app is using a theme with one or a Toolbar is used as one ).
+ if (actionBar != null) {
+ HashMap innerAttributes = (HashMap) value;
+ changeTitleColor(actionBar,
+ TiConvert.toColor(innerAttributes.get(TiC.PROPERTY_COLOR), activity));
+ } else {
+ // Log a warning if there is no ActionBar available.
+ Log.w(TAG, "There is no ActionBar available for this Window.");
+ }
+ }
+ }
super.onPropertyChanged(name, value);
}
+ @Kroll.getProperty
+ public boolean getSustainedPerformanceMode()
+ {
+ return TiConvert.toBoolean(getProperty(TiC.PROPERTY_SUSTAINED_PERFORMANCE_MODE), false);
+ }
+
@Kroll.setProperty
public void setSustainedPerformanceMode(boolean mode)
{
@@ -422,12 +497,6 @@ public void setSustainedPerformanceMode(boolean mode)
}
}
- @Kroll.getProperty
- public boolean getSustainedPerformanceMode()
- {
- return TiConvert.toBoolean(getProperty(TiC.PROPERTY_SUSTAINED_PERFORMANCE_MODE), false);
- }
-
@Override
@Kroll.setProperty(retain = false)
public void setWidth(Object width)
@@ -465,7 +534,7 @@ public boolean handleMessage(Message msg)
if (activity != null) {
Window win = activity.getWindow();
if (win != null) {
- win.setFormat(TiConvert.toInt((Object) (msg.obj), PixelFormat.UNKNOWN));
+ win.setFormat(TiConvert.toInt(msg.obj, PixelFormat.UNKNOWN));
win.getDecorView().invalidate();
}
}
@@ -474,7 +543,23 @@ public boolean handleMessage(Message msg)
case MSG_SET_TITLE: {
Activity activity = getWindowActivity();
if (activity != null) {
- activity.setTitle(TiConvert.toString((Object) (msg.obj), ""));
+ activity.setTitle(TiConvert.toString(msg.obj, ""));
+
+ if (windowActivity != null && windowActivity.get() != null
+ && windowActivity.get().getSupportActionBar() != null) {
+ ActionBar actionBar = windowActivity.get().getSupportActionBar();
+ if (actionBar.getTitle() instanceof SpannableStringBuilder) {
+ SpannableStringBuilder stringBuilder =
+ new SpannableStringBuilder(TiConvert.toString(msg.obj, ""));
+ if (barColor != -1) {
+ stringBuilder.setSpan(new ForegroundColorSpan(barColor),
+ 0, stringBuilder.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE);
+ }
+ actionBar.setTitle(stringBuilder);
+ } else {
+ actionBar.setTitle(TiConvert.toString(msg.obj, ""));
+ }
+ }
}
return true;
}
@@ -512,7 +597,8 @@ private void setWindowWidthHeight(Object width, Object height)
/**
* Helper method to apply activity transitions.
- * @param win The window holding the activity.
+ *
+ * @param win The window holding the activity.
* @param props The property dictionary.
*/
private void applyActivityTransitions(Window win, KrollDict props)
@@ -558,8 +644,9 @@ private void applyActivityTransitions(Window win, KrollDict props)
/**
* Creates a transition for the supplied transition type.
+ *
* @param props The property dictionary.
- * @param key The transition type
+ * @param key The transition type
* @return A Transition or null if UIModule.TRANSITION_NONE or unknown transition is specified.
*/
@SuppressLint({ "InlinedApi", "RtlHardcoded" })
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/_2DMatrixProxy.java b/android/modules/ui/src/java/ti/modules/titanium/ui/_2DMatrixProxy.java
index 2a95c8d5215..6ebac3ceaec 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/_2DMatrixProxy.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/_2DMatrixProxy.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/activityindicatorstyle/ActivityIndicatorStyleModule.java b/android/modules/ui/src/java/ti/modules/titanium/ui/activityindicatorstyle/ActivityIndicatorStyleModule.java
index c10b4101aa2..60823cf4464 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/activityindicatorstyle/ActivityIndicatorStyleModule.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/activityindicatorstyle/ActivityIndicatorStyleModule.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/android/AndroidModule.java b/android/modules/ui/src/java/ti/modules/titanium/ui/android/AndroidModule.java
index a11b39f061e..b6d6db771df 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/android/AndroidModule.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/android/AndroidModule.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
@@ -192,6 +192,11 @@ public class AndroidModule extends KrollModule
@Kroll.constant
public static final int TABS_STYLE_BOTTOM_NAVIGATION = 1;
+ @Kroll.constant
+ public static final int TAB_MODE_FIXED = 1;
+ @Kroll.constant
+ public static final int TAB_MODE_SCROLLABLE = 0;
+
@Kroll.constant
public static final int TRANSITION_NONE = TiUIView.TRANSITION_NONE;
@Kroll.constant
@@ -248,6 +253,15 @@ public class AndroidModule extends KrollModule
@Kroll.constant
public static final int SCROLL_FLAG_SNAP_MARGINS = 32;
+ @Kroll.constant
+ public static final int WEBVIEW_SCROLLBARS_DEFAULT = 0;
+ @Kroll.constant
+ public static final int WEBVIEW_SCROLLBARS_HIDE_VERTICAL = 1;
+ @Kroll.constant
+ public static final int WEBVIEW_SCROLLBARS_HIDE_HORIZONTAL = 2;
+ @Kroll.constant
+ public static final int WEBVIEW_SCROLLBARS_HIDE_ALL = 3;
+
public AndroidModule()
{
super();
@@ -323,6 +337,11 @@ public String harmonizedColor(String value)
return String.format("#%06X",
(0xFFFFFF & MaterialColors.harmonizeWithPrimary(TiApplication.getAppCurrentActivity(), color)));
}
+ @Kroll.method
+ public void moveToBackground()
+ {
+ TiApplication.getAppRootOrCurrentActivity().moveTaskToBack(true);
+ }
@Override
public String getApiName()
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/android/CardViewProxy.java b/android/modules/ui/src/java/ti/modules/titanium/ui/android/CardViewProxy.java
index d563749ef7f..e1c2db91a01 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/android/CardViewProxy.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/android/CardViewProxy.java
@@ -1,18 +1,19 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
*/
package ti.modules.titanium.ui.android;
+import android.app.Activity;
+
import org.appcelerator.kroll.annotations.Kroll;
import org.appcelerator.titanium.TiC;
import org.appcelerator.titanium.proxy.TiViewProxy;
import org.appcelerator.titanium.view.TiUIView;
import ti.modules.titanium.ui.widget.TiUICardView;
-import android.app.Activity;
@Kroll.proxy(creatableInModule = AndroidModule.class,
propertyAccessors = {
@@ -26,7 +27,7 @@
TiC.PROPERTY_PADDING_LEFT,
TiC.PROPERTY_PADDING_RIGHT,
TiC.PROPERTY_PADDING_TOP
-})
+ })
public class CardViewProxy extends TiViewProxy
{
private static final int MSG_FIRST_ID = TiViewProxy.MSG_LAST_ID + 1;
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/android/CollapseToolbarProxy.java b/android/modules/ui/src/java/ti/modules/titanium/ui/android/CollapseToolbarProxy.java
index 14de4eb1806..0855777e2ff 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/android/CollapseToolbarProxy.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/android/CollapseToolbarProxy.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/android/DrawerLayoutProxy.java b/android/modules/ui/src/java/ti/modules/titanium/ui/android/DrawerLayoutProxy.java
index 8bb0668ded1..ee4aaada098 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/android/DrawerLayoutProxy.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/android/DrawerLayoutProxy.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/android/FloatingActionButtonProxy.java b/android/modules/ui/src/java/ti/modules/titanium/ui/android/FloatingActionButtonProxy.java
index aa009df4909..deeb9b5335b 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/android/FloatingActionButtonProxy.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/android/FloatingActionButtonProxy.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/android/ProgressIndicatorProxy.java b/android/modules/ui/src/java/ti/modules/titanium/ui/android/ProgressIndicatorProxy.java
index d8c57a19606..f596f29d3c3 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/android/ProgressIndicatorProxy.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/android/ProgressIndicatorProxy.java
@@ -1,11 +1,13 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
*/
package ti.modules.titanium.ui.android;
+import android.app.Activity;
+
import org.appcelerator.kroll.KrollDict;
import org.appcelerator.kroll.annotations.Kroll;
import org.appcelerator.titanium.TiC;
@@ -13,7 +15,6 @@
import ti.modules.titanium.ui.TiDialogProxy;
import ti.modules.titanium.ui.widget.TiUIProgressIndicator;
-import android.app.Activity;
@Kroll.proxy(creatableInModule = AndroidModule.class,
propertyAccessors = {
@@ -26,7 +27,7 @@
TiC.PROPERTY_MAX,
TiC.PROPERTY_CANCELABLE,
TiC.PROPERTY_CANCELED_ON_TOUCH_OUTSIDE
-})
+ })
@Kroll.dynamicApis(methods = { "hide", "show" })
public class ProgressIndicatorProxy extends TiDialogProxy
{
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/android/SearchViewProxy.java b/android/modules/ui/src/java/ti/modules/titanium/ui/android/SearchViewProxy.java
index 8728894e579..d120d62e76d 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/android/SearchViewProxy.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/android/SearchViewProxy.java
@@ -1,18 +1,19 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
*/
package ti.modules.titanium.ui.android;
+import android.app.Activity;
+
import org.appcelerator.kroll.annotations.Kroll;
import org.appcelerator.titanium.TiC;
import org.appcelerator.titanium.proxy.TiViewProxy;
import org.appcelerator.titanium.view.TiUIView;
import ti.modules.titanium.ui.widget.searchview.TiUISearchView;
-import android.app.Activity;
@Kroll.proxy(creatableInModule = AndroidModule.class,
propertyAccessors = {
@@ -22,7 +23,7 @@
TiC.PROPERTY_HINT_TEXT,
TiC.PROPERTY_HINT_TEXT_COLOR,
TiC.PROPERTY_VALUE
-})
+ })
public class SearchViewProxy extends TiViewProxy
{
private static final String TAG = "SearchProxy";
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/android/SnackbarProxy.java b/android/modules/ui/src/java/ti/modules/titanium/ui/android/SnackbarProxy.java
index 45676206310..86c5246d475 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/android/SnackbarProxy.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/android/SnackbarProxy.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/android/TiPreferencesActivity.java b/android/modules/ui/src/java/ti/modules/titanium/ui/android/TiPreferencesActivity.java
index 59f223c4467..eb0bf78fb7b 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/android/TiPreferencesActivity.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/android/TiPreferencesActivity.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/android/TiPreferencesFragment.java b/android/modules/ui/src/java/ti/modules/titanium/ui/android/TiPreferencesFragment.java
index 8d6842acc73..4108d4ac59e 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/android/TiPreferencesFragment.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/android/TiPreferencesFragment.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/clipboard/ClipboardModule.java b/android/modules/ui/src/java/ti/modules/titanium/ui/clipboard/ClipboardModule.java
index 6558fa7e420..e28f741ad5a 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/clipboard/ClipboardModule.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/clipboard/ClipboardModule.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiArrowView.java b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiArrowView.java
index 5cb54c69ba0..1e3bbcad932 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiArrowView.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiArrowView.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiImageView.java b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiImageView.java
index ef83f324bc0..769de54feeb 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiImageView.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiImageView.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiSwipeRefreshLayout.java b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiSwipeRefreshLayout.java
index f8651e1e8be..4459cc9e422 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiSwipeRefreshLayout.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiSwipeRefreshLayout.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
@@ -93,8 +93,8 @@ public void setSwipeRefreshEnabled(boolean value)
* Updates this view's width and height based on the given width and height constraints.
*
* Given arguments size and size mode can be extracted by the Android "View.MeasureSpec" class.
- * @param widthMeasureSpec Provides the parent's width contraints and size mode.
- * @param heightMeasureSpec Provides the parent's height contraints and size mode.
+ * @param widthMeasureSpec Provides the parent's width constraints and size mode.
+ * @param heightMeasureSpec Provides the parent's height constraints and size mode.
*/
@Override
public void onMeasure(int widthMeasureSpec, int heightMeasureSpec)
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIActivityIndicator.java b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIActivityIndicator.java
index d00d4f5ee10..5f56dcb2dfc 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIActivityIndicator.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIActivityIndicator.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIButton.java b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIButton.java
index 55333075c2d..6d5a773221e 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIButton.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIButton.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIButtonBar.java b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIButtonBar.java
index be72910eb79..cc9f66c6c3c 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIButtonBar.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIButtonBar.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUICardView.java b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUICardView.java
index e4158e69917..a5fa30a9e66 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUICardView.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUICardView.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUICollapseToolbar.java b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUICollapseToolbar.java
index 8ce6b55859c..d422c829803 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUICollapseToolbar.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUICollapseToolbar.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIDialog.java b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIDialog.java
index f02db20fbaf..1fc4ab9f9ad 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIDialog.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIDialog.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIDrawerLayout.java b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIDrawerLayout.java
index 04dd608595c..984b1f338e2 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIDrawerLayout.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIDrawerLayout.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIEditText.java b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIEditText.java
index f06e8b30cf8..d17f7fe63cb 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIEditText.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIEditText.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
@@ -443,7 +443,7 @@ public boolean onTouchEvent(MotionEvent event)
// Request the parent to scroll if one of the following is true:
// - EditText is not scrollable. (ie: All text fits within the box.)
- // - EditText is scrollabe, but cannot scroll any further in given direction.
+ // - EditText is scrollable, but cannot scroll any further in given direction.
if (!isScrollEnabled || !canScrollFurther) {
wasHandled = dispatchNestedPreScroll(deltaX, deltaY, null, null);
wasHandled |= dispatchNestedScroll(0, 0, deltaX, deltaY, null);
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIFloatingActionButton.java b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIFloatingActionButton.java
index 473ffab6813..c63fd5d79a1 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIFloatingActionButton.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIFloatingActionButton.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
@@ -7,6 +7,7 @@
package ti.modules.titanium.ui.widget;
import android.content.res.ColorStateList;
+import android.graphics.PorterDuff;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
@@ -54,6 +55,9 @@ public void processProperties(KrollDict d)
if (d.containsKey("maxImageSize")) {
setMaxImageSize(TiConvert.toInt(d.get("maxImageSize")));
}
+ if (d.containsKey(TiC.PROPERTY_TINT_COLOR)) {
+ setTintColor(d.getString("tintColor"));
+ }
if (d.containsKeyAndNotNull(TiC.PROPERTY_TOUCH_FEEDBACK_COLOR)) {
ColorStateList colorStateList = null;
colorStateList = ColorStateList.valueOf(
@@ -91,6 +95,12 @@ private void setImage(Object obj)
}
}
+ public void setTintColor(String color)
+ {
+ int tintColor = TiConvert.toColor(color, TiApplication.getAppCurrentActivity());
+ fab.setColorFilter(tintColor, PorterDuff.Mode.SRC_IN);
+ }
+
@Override
public void propertyChanged(String key, Object oldValue, Object newValue, KrollProxy proxy)
{
@@ -106,6 +116,8 @@ public void propertyChanged(String key, Object oldValue, Object newValue, KrollP
ColorStateList colorStateList = null;
colorStateList = ColorStateList.valueOf(TiConvert.toColor(newValue, proxy.getActivity()));
fab.setRippleColor(colorStateList);
+ } else if (key.equals(TiC.PROPERTY_TINT_COLOR)) {
+ setTintColor(TiConvert.toString(newValue));
}
}
}
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIImageView.java b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIImageView.java
index ee029db2312..70aa2a6d7a3 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIImageView.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIImageView.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUILabel.java b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUILabel.java
index 374de058775..3198fdbea7a 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUILabel.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUILabel.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
@@ -22,6 +22,7 @@
import ti.modules.titanium.ui.UIModule;
import ti.modules.titanium.ui.AttributedStringProxy;
import android.graphics.Color;
+import android.os.Build;
import android.text.Html;
import android.text.Layout;
import android.text.Selection;
@@ -34,6 +35,7 @@
import android.text.style.URLSpan;
import android.text.util.Linkify;
import android.text.TextPaint;
+import android.util.TypedValue;
import android.view.Gravity;
import android.view.MotionEvent;
import androidx.annotation.NonNull;
@@ -245,7 +247,7 @@ private void adjustTextFontSize(@NonNull MaterialTextView textView)
{
int value = textView.getWidth();
{
- // Exlude the view's padding and borders.
+ // Exclude the view's padding and borders.
value -= textView.getTotalPaddingLeft() + textView.getTotalPaddingRight();
}
if ((this.layoutParams != null) && (this.layoutParams.optionWidth != null)
@@ -470,6 +472,18 @@ public void processProperties(KrollDict d)
}
}
+ if (d.containsKey(TiC.PROPERTY_BREAK_STRATEGY)) {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
+ tv.setBreakStrategy(TiConvert.toInt(d.get(TiC.PROPERTY_BREAK_STRATEGY)));
+ }
+ }
+
+ if (d.containsKey(TiC.PROPERTY_HYPHENATION_FREQUENCY)) {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
+ tv.setHyphenationFrequency(TiConvert.toInt(d.get(TiC.PROPERTY_HYPHENATION_FREQUENCY)));
+ }
+ }
+
// This needs to be the last operation.
updateLabelText();
tv.invalidate();
@@ -597,11 +611,19 @@ public void propertyChanged(String key, Object oldValue, Object newValue, KrollP
} else {
TextViewCompat.setAutoSizeTextTypeWithDefaults(tv, TextViewCompat.AUTO_SIZE_TEXT_TYPE_NONE);
if (oldFontSize != -1) {
- tv.setTextSize(android.util.TypedValue.COMPLEX_UNIT_PX, oldFontSize);
+ tv.setTextSize(TypedValue.COMPLEX_UNIT_PX, oldFontSize);
tv.requestLayout();
}
}
+ } else if (key.equals(TiC.PROPERTY_BREAK_STRATEGY)) {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
+ tv.setBreakStrategy(TiConvert.toInt(newValue));
+ }
+ } else if (key.equals(TiC.PROPERTY_HYPHENATION_FREQUENCY)) {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
+ tv.setHyphenationFrequency(TiConvert.toInt(newValue));
+ }
} else {
super.propertyChanged(key, oldValue, newValue, proxy);
}
@@ -777,4 +799,16 @@ private void updateLabelText()
textView.setText(text, MaterialTextView.BufferType.NORMAL);
textView.requestLayout();
}
+
+ public int getLineCount()
+ {
+ MaterialTextView textView = (MaterialTextView) getNativeView();
+ return textView.getLineCount();
+ }
+
+ public String getVisibleText()
+ {
+ MaterialTextView textView = (MaterialTextView) getNativeView();
+ return textView.getLayout().getText().toString();
+ }
}
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIListView.java b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIListView.java
index 7bfd9b81c24..a5af9a599fb 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIListView.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIListView.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIMaskedImage.java b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIMaskedImage.java
index 52bc6c7ed2b..96815bd63f0 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIMaskedImage.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIMaskedImage.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
@@ -125,7 +125,7 @@ public void processProperties(KrollDict properties)
}
/**
- * Called when one of the proxy's properies have changed.
+ * Called when one of the proxy's properties have changed.
*
* Expected to be called on the main UI thread.
* @param key The unique name of the property.
@@ -1295,7 +1295,7 @@ public boolean drawTo(Canvas canvas)
Drawable imageDrawable = getMaskedDrawable().getImageDrawable();
Bitmap imageBitmap = getBitmapFrom(imageDrawable);
if (imageBitmap != null) {
- // Draw the image drawable's bitmap ourselves with given blend mode. (Most optmized.)
+ // Draw the image drawable's bitmap ourselves with given blend mode. (Most optimized.)
bufferedCanvas.drawBitmap(imageBitmap, null, targetBounds, bufferedPaint);
} else if (imageDrawable != null) {
// Draw the image via its drawable with given blend mode. (Least optimized.)
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUINotification.java b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUINotification.java
index faaa4f8fd93..9d80290295e 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUINotification.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUINotification.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIOptionBar.java b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIOptionBar.java
index 4a9ad24215f..cc18e9b3e95 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIOptionBar.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIOptionBar.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
@@ -7,6 +7,7 @@
package ti.modules.titanium.ui.widget;
import android.content.Context;
+import android.content.res.ColorStateList;
import android.graphics.drawable.Drawable;
import android.view.View;
import android.view.ViewGroup;
@@ -207,6 +208,58 @@ private void addButton(String title, String accessibilityLabel, Drawable imageDr
MaterialButton button = new MaterialButton(context, null, attributeId);
button.setEnabled(isEnabled);
button.setText(title);
+ if (proxy.hasPropertyAndNotNull(TiC.PROPERTY_SELECTED_BACKGROUND_COLOR)) {
+ ColorStateList oldColors = button.getBackgroundTintList();
+ int col = TiConvert.toColor((String) proxy.getProperty(TiC.PROPERTY_SELECTED_BACKGROUND_COLOR), context);
+ ColorStateList trackStates = new ColorStateList(
+ new int[][] {
+ new int[] { -android.R.attr.state_checked },
+ new int[] { android.R.attr.state_checked },
+ },
+ new int[] {
+ oldColors.getColorForState(new int[] { -android.R.attr.state_checked }, R.attr.colorOnSurface),
+ col
+ }
+ );
+ button.setBackgroundTintList(trackStates);
+ }
+ if (proxy.hasPropertyAndNotNull("selectedBorderColor")) {
+ ColorStateList oldColors = button.getStrokeColor();
+ int col = TiConvert.toColor((String) proxy.getProperty("selectedBorderColor"), context);
+ ColorStateList trackStates = new ColorStateList(
+ new int[][] {
+ new int[] { -android.R.attr.state_checked },
+ new int[] { android.R.attr.state_checked },
+ },
+ new int[] {
+ oldColors.getColorForState(new int[] { -android.R.attr.state_checked }, R.attr.colorOnSurface),
+ col
+ }
+ );
+ button.setStrokeColor(trackStates);
+ }
+ if (proxy.hasPropertyAndNotNull("selectedTextColor") || proxy.hasPropertyAndNotNull(TiC.PROPERTY_COLOR)) {
+ int textCol = button.getCurrentHintTextColor();
+ int selCol = button.getCurrentTextColor();
+
+ if (proxy.hasPropertyAndNotNull("selectedTextColor")) {
+ selCol = TiConvert.toColor((String) proxy.getProperty("selectedTextColor"), context);
+ }
+ if (proxy.hasPropertyAndNotNull(TiC.PROPERTY_COLOR)) {
+ textCol = TiConvert.toColor((String) proxy.getProperty(TiC.PROPERTY_COLOR), context);
+ }
+ ColorStateList trackStates = new ColorStateList(
+ new int[][] {
+ new int[] { -android.R.attr.state_checked },
+ new int[] { android.R.attr.state_checked },
+ },
+ new int[] {
+ textCol,
+ selCol,
+ }
+ );
+ button.setTextColor(trackStates);
+ }
if ((accessibilityLabel != null) && !accessibilityLabel.isEmpty()) {
button.setContentDescription(accessibilityLabel);
}
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIProgressBar.java b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIProgressBar.java
index db9530e7bf1..10af08949ab 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIProgressBar.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIProgressBar.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIProgressIndicator.java b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIProgressIndicator.java
index 0f7d1df9be6..f8f00deb589 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIProgressIndicator.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIProgressIndicator.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIRelativeLayout.java b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIRelativeLayout.java
index 8aff81ce460..8c39308cb8f 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIRelativeLayout.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIRelativeLayout.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIScrollView.java b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIScrollView.java
index 4d3eaa81d92..4dded6d0761 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIScrollView.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIScrollView.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
@@ -114,7 +114,7 @@ public void setParentContentWidth(int width)
/**
* Gets the value set via the setParentContentWidth() method.
- * Note that this value is not assignd automatically. The owner must assign it.
+ * Note that this value is not assigned automatically. The owner must assign it.
* @return Returns the parent view's width, excluding its left/right padding.
*/
public int getParentContentWidth()
@@ -136,7 +136,7 @@ public void setParentContentHeight(int height)
/**
* Gets the value set via the setParentContentHeight() method.
- * Note that this value is not assignd automatically. The owner must assign it.
+ * Note that this value is not assigned automatically. The owner must assign it.
* @return Returns the parent view's height, excluding its top/bottom padding.
*/
public int getParentContentHeight()
@@ -353,6 +353,9 @@ protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec)
private AttributeSet getAttributeSet(Context context, int resourceId)
{
AttributeSet attr = null;
+ if (context == null || context.getResources() == null) {
+ return null;
+ }
try {
XmlPullParser parser = context.getResources().getXml(resourceId);
try {
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIScrollableView.java b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIScrollableView.java
index 9b475630873..28d681cba11 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIScrollableView.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIScrollableView.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUISlider.java b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUISlider.java
index 93261e217de..ecf70157c02 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUISlider.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUISlider.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUISnackbar.java b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUISnackbar.java
index 57eff22eff4..c523cb43d6e 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUISnackbar.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUISnackbar.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUISwitch.java b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUISwitch.java
index 7b0b469aef4..da3bb4a1112 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUISwitch.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUISwitch.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
@@ -7,13 +7,17 @@
package ti.modules.titanium.ui.widget;
import android.app.Activity;
+import android.content.res.ColorStateList;
import android.view.View;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
+
import androidx.appcompat.widget.AppCompatToggleButton;
+
import com.google.android.material.checkbox.MaterialCheckBox;
import com.google.android.material.chip.Chip;
import com.google.android.material.switchmaterial.SwitchMaterial;
+
import org.appcelerator.kroll.KrollDict;
import org.appcelerator.kroll.KrollProxy;
import org.appcelerator.kroll.common.Log;
@@ -23,13 +27,14 @@
import org.appcelerator.titanium.util.TiConvert;
import org.appcelerator.titanium.util.TiUIHelper;
import org.appcelerator.titanium.view.TiUIView;
+
import ti.modules.titanium.ui.UIModule;
public class TiUISwitch extends TiUIView implements OnCheckedChangeListener
{
private static final String TAG = "TiUISwitch";
- private View.OnLayoutChangeListener layoutListener;
+ private final View.OnLayoutChangeListener layoutListener;
private boolean oldValue = false;
public TiUISwitch(TiViewProxy proxy)
@@ -37,7 +42,8 @@ public TiUISwitch(TiViewProxy proxy)
super(proxy);
Log.d(TAG, "Creating a switch", Log.DEBUG_MODE);
- this.layoutListener = new View.OnLayoutChangeListener() {
+ this.layoutListener = new View.OnLayoutChangeListener()
+ {
@Override
public void onLayoutChange(
View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom)
@@ -58,6 +64,62 @@ public void processProperties(KrollDict d)
setStyle(TiConvert.toInt(d.get(TiC.PROPERTY_STYLE), UIModule.SWITCH_STYLE_SLIDER));
}
+ if (d.containsKeyAndNotNull(TiC.PROPERTY_THUMB_COLOR)
+ || d.containsKeyAndNotNull(TiC.PROPERTY_ON_THUMB_COLOR)) {
+ CompoundButton currentButton = (CompoundButton) getNativeView();
+ if (currentButton instanceof SwitchMaterial) {
+
+ int colActive = d.containsKeyAndNotNull(TiC.PROPERTY_ON_THUMB_COLOR)
+ ? TiConvert.toColor(d, TiC.PROPERTY_ON_THUMB_COLOR)
+ : TiConvert.toColor(d, TiC.PROPERTY_THUMB_COLOR);
+ int colNormal = d.containsKeyAndNotNull(TiC.PROPERTY_THUMB_COLOR)
+ ? TiConvert.toColor(d, TiC.PROPERTY_THUMB_COLOR)
+ : TiConvert.toColor(d, TiC.PROPERTY_ON_THUMB_COLOR);
+
+ ColorStateList trackStates = new ColorStateList(
+ new int[][] {
+ new int[] { -android.R.attr.state_enabled },
+ new int[] { android.R.attr.state_checked },
+ new int[] {}
+ },
+ new int[] {
+ colNormal,
+ colActive,
+ colNormal
+ }
+ );
+ ((SwitchMaterial) currentButton).setThumbTintList(trackStates);
+ }
+ }
+
+ if (d.containsKeyAndNotNull(TiC.PROPERTY_TINT_COLOR)
+ || d.containsKeyAndNotNull(TiC.PROPERTY_ON_TINT_COLOR)) {
+ CompoundButton currentButton = (CompoundButton) getNativeView();
+ if (currentButton instanceof SwitchMaterial) {
+
+ int colActive = d.containsKeyAndNotNull(TiC.PROPERTY_ON_TINT_COLOR)
+ ? TiConvert.toColor(d, TiC.PROPERTY_ON_TINT_COLOR)
+ : TiConvert.toColor(d, TiC.PROPERTY_TINT_COLOR);
+ int colNormal = d.containsKeyAndNotNull(TiC.PROPERTY_TINT_COLOR)
+ ? TiConvert.toColor(d, TiC.PROPERTY_TINT_COLOR)
+ : TiConvert.toColor(d, TiC.PROPERTY_ON_TINT_COLOR);
+
+ ColorStateList trackStates = new ColorStateList(
+ new int[][] {
+ new int[] { -android.R.attr.state_enabled },
+ new int[] { android.R.attr.state_checked },
+ new int[] {}
+ },
+ new int[] {
+ colNormal,
+ colActive,
+ colNormal
+ }
+ );
+ ((SwitchMaterial) currentButton).setTrackTintList(trackStates);
+ }
+ }
+
if (d.containsKey(TiC.PROPERTY_VALUE)) {
oldValue = TiConvert.toBoolean(d, TiC.PROPERTY_VALUE);
}
@@ -151,7 +213,7 @@ public void propertyChanged(String key, Object oldValue, Object newValue, KrollP
} else {
super.propertyChanged(key, oldValue, newValue, proxy);
}
- }
+ }
@Override
public void onCheckedChanged(CompoundButton btn, boolean value)
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUITabbedBar.java b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUITabbedBar.java
index f7e8aff3e45..8ca71d59e4b 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUITabbedBar.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUITabbedBar.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
@@ -10,6 +10,7 @@
import android.content.Context;
import android.content.res.Configuration;
import android.graphics.Color;
+import android.graphics.PorterDuff;
import android.graphics.drawable.Drawable;
import android.view.MenuItem;
import androidx.annotation.ColorInt;
@@ -133,9 +134,11 @@ protected void onLayout(boolean changed, int l, int t, int r, int b)
// no selected color specified but a text color -> use that
selectedTextColor = textColor;
}
-
this.tabLayout.setTabTextColors(textColor, selectedTextColor);
}
+ if (getProxy().hasPropertyAndNotNull(TiC.PROPERTY_ACTIVE_TINT_COLOR)) {
+ setTintColor(this.tabLayout.getTabAt(0), TiC.PROPERTY_ACTIVE_TINT_COLOR);
+ }
setNativeView(this.tabLayout);
}
@@ -261,6 +264,10 @@ private void addItem(Object value)
if (value instanceof Drawable) {
tab.setIcon(((Drawable) value));
TiUITabLayoutTabGroup.scaleIconToFit(tab);
+
+ if (proxy.hasPropertyAndNotNull(TiC.PROPERTY_TINT_COLOR)) {
+ setTintColor(tab, TiC.PROPERTY_TINT_COLOR);
+ }
} else {
tab.setText(value.toString());
}
@@ -282,6 +289,14 @@ private void addItem(Object value)
}
}
+ private void setTintColor(TabLayout.Tab tab, String color)
+ {
+ if (tab != null && tab.getIcon() != null) {
+ tab.getIcon().setColorFilter(TiConvert.toColor(proxy.getProperty(color),
+ TiApplication.getAppCurrentActivity()), PorterDuff.Mode.SRC_IN);
+ }
+ }
+
// Handle switching styles after creation
public void setNewStyle(int newStyle)
{
@@ -394,6 +409,10 @@ private void onTabIndexChangedTo(int index)
// First, update the proxy's "index" property.
proxy.setProperty(TiC.PROPERTY_INDEX, index);
+ if (proxy.hasPropertyAndNotNull(TiC.PROPERTY_ACTIVE_TINT_COLOR)) {
+ setTintColor(this.tabLayout.getTabAt(index), TiC.PROPERTY_ACTIVE_TINT_COLOR);
+ }
+
// Last, fire a "click" event.
if (!skipClickEvent) {
KrollDict data = new KrollDict();
@@ -406,7 +425,10 @@ private void onTabIndexChangedTo(int index)
@Override
public void onTabUnselected(TabLayout.Tab tab)
{
- // No override
+ // set old tint color again
+ if (proxy.hasPropertyAndNotNull(TiC.PROPERTY_TINT_COLOR)) {
+ setTintColor(tab, TiC.PROPERTY_TINT_COLOR);
+ }
}
@Override
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUITableView.java b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUITableView.java
index edfb9d4969d..5f8c3946523 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUITableView.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUITableView.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIText.java b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIText.java
index 314c5077797..da19265a5b2 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIText.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIText.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
@@ -136,6 +136,22 @@ public void onLayoutChange(
this.tv.setOnEditorActionListener(this);
this.tv.setOnFocusChangeListener(this);
this.tv.setIncludeFontPadding(true);
+ if (proxy.hasListeners("empty")) {
+ this.tv.setOnKeyListener(new View.OnKeyListener()
+ {
+ @Override
+ public boolean onKey(View v, int keyCode, KeyEvent event)
+ {
+ if (tv.getText().length() == 0) {
+ KrollDict data = new KrollDict();
+ data.put("keyCode", keyCode);
+ fireEvent("empty", data);
+ }
+ return false;
+ }
+ });
+ }
+
if (field) {
this.tv.setGravity(Gravity.CENTER_VERTICAL | Gravity.START);
} else {
@@ -798,7 +814,7 @@ public void handleKeyboard(KrollDict d)
}
// Update fullscreen edit handling.
- // We might have to diable it due to Google bugs with password handling of certain input types.
+ // We might have to disable it due to Google bugs with password handling of certain input types.
handleFullscreen(d);
// Force keyboard to use English if enabled. (Not all keyboards honor this setting.)
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiView.java b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiView.java
index 863bebf64a3..d03d7585f38 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiView.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiView.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/listview/ItemTouchHandler.java b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/listview/ItemTouchHandler.java
index c3b692ce27c..60b3445ec8a 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/listview/ItemTouchHandler.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/listview/ItemTouchHandler.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/listview/ListItemProxy.java b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/listview/ListItemProxy.java
index a29720872e4..4de91d69ff7 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/listview/ListItemProxy.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/listview/ListItemProxy.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
@@ -580,7 +580,7 @@ public ListViewProxy getListViewProxy()
/**
* Override getRect() to amend dimensions.
*
- * @return Dictinary of view dimensions.
+ * @return Dictionary of view dimensions.
*/
@Override
public KrollDict getRect()
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/listview/ListSectionProxy.java b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/listview/ListSectionProxy.java
index 403b9e2da7e..a431c8822d3 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/listview/ListSectionProxy.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/listview/ListSectionProxy.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
@@ -23,8 +23,7 @@
TiC.PROPERTY_FOOTER_TITLE,
TiC.PROPERTY_FOOTER_VIEW,
TiC.PROPERTY_HEADER_TITLE,
- TiC.PROPERTY_HEADER_VIEW,
- TiC.PROPERTY_ITEMS
+ TiC.PROPERTY_HEADER_VIEW
})
public class ListSectionProxy extends TiViewProxy
{
@@ -196,6 +195,12 @@ public KrollDict[] getItems()
return dataItems;
}
+ @Kroll.setProperty
+ public void setItems(Object value)
+ {
+ setItems(value, null);
+ }
+
/**
* Obtain ListItemProxy from index in section.
*
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/listview/ListViewAdapter.java b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/listview/ListViewAdapter.java
index 8b8cd69195e..dc59801541c 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/listview/ListViewAdapter.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/listview/ListViewAdapter.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
@@ -16,9 +16,9 @@
import android.content.Context;
import android.view.ViewGroup;
-import android.widget.RelativeLayout;
import androidx.annotation.NonNull;
+import androidx.constraintlayout.widget.ConstraintLayout;
public class ListViewAdapter extends TiRecyclerViewAdapter
{
@@ -112,7 +112,7 @@ public void onBindViewHolder(@NonNull ListViewHolder holder, int position)
public ListViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType)
{
// Create new TableViewHolder instance.
- final RelativeLayout layout = (RelativeLayout) inflater.inflate(id_holder, null);
+ final ConstraintLayout layout = (ConstraintLayout) inflater.inflate(id_holder, null);
return new ListViewHolder(parent.getContext(), layout);
}
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/listview/ListViewHolder.java b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/listview/ListViewHolder.java
index a4c2d0c39a6..0a400cd4705 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/listview/ListViewHolder.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/listview/ListViewHolder.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
@@ -18,6 +18,7 @@
import org.appcelerator.titanium.view.TiCompositeLayout;
import org.appcelerator.titanium.view.TiUIView;
+import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Context;
import android.content.res.Resources;
@@ -33,6 +34,8 @@
import android.widget.ImageView;
import android.widget.TextView;
+import androidx.constraintlayout.widget.ConstraintLayout;
+import androidx.constraintlayout.widget.ConstraintSet;
import androidx.recyclerview.widget.RecyclerView;
import java.lang.ref.WeakReference;
@@ -70,7 +73,7 @@ public ListViewHolder(final Context context, final ViewGroup viewGroup)
// Header attributes.
setTitleAttributes("header", context, this.headerTitle);
- this.container = viewGroup.findViewById(R.id.titanium_ui_listview_holder_outer_content_container);
+ this.container = viewGroup.findViewById(R.id.titanium_ui_listview_holder);
this.leftImage = viewGroup.findViewById(R.id.titanium_ui_listview_holder_left_image);
@@ -92,6 +95,7 @@ public ListViewHolder(final Context context, final ViewGroup viewGroup)
* @param proxy ListItemProxy to bind.
* @param selected Is row selected.
*/
+ @SuppressLint("ClickableViewAccessibility")
public void bind(final ListItemProxy proxy, final boolean selected)
{
reset();
@@ -165,7 +169,6 @@ public void bind(final ListItemProxy proxy, final boolean selected)
this.rightImage.setVisibility(View.VISIBLE);
RecyclerView.ViewHolder mViewHolder = this;
-
this.rightImage.setOnTouchListener(new View.OnTouchListener()
{
@Override
@@ -252,7 +255,7 @@ public boolean onTouch(View view, MotionEvent motionEvent)
borderView.setAddStatesFromChildren(true);
// Amend maximum size for content to parent ListView measured height.
- this.content.setChildFillHeight(nativeListView.getMeasuredHeight());
+ this.container.setMinimumHeight(nativeListView.getMeasuredHeight());
// Add ListViewItem to content.
this.content.addView(borderView, view.getLayoutParams());
@@ -311,7 +314,7 @@ private void reset()
* Set header and footer views of holder.
*
* @param listViewProxy ListView proxy.
- * @param properties Properties containing header and footer entires.
+ * @param properties Properties containing header and footer entries.
* @param updateHeader Boolean to determine if the header should be updated.
* @param updateFooter Boolean to determine if the footer should be updated.
*/
@@ -362,6 +365,16 @@ private void setHeaderFooter(TiViewProxy listViewProxy,
this.header.addView(headerView, view.getLayoutParams());
this.header.setVisibility(View.VISIBLE);
+
+ ConstraintSet constraintSet = new ConstraintSet();
+ constraintSet.clone((ConstraintLayout) this.container);
+ constraintSet.connect(R.id.titanium_ui_listview_holder_content, ConstraintSet.TOP,
+ R.id.titanium_ui_listview_holder_header, ConstraintSet.BOTTOM, 0);
+ constraintSet.connect(R.id.titanium_ui_listview_holder_left_image, ConstraintSet.TOP,
+ R.id.titanium_ui_listview_holder_header, ConstraintSet.BOTTOM, 0);
+ constraintSet.connect(R.id.titanium_ui_listview_holder_right_image, ConstraintSet.TOP,
+ R.id.titanium_ui_listview_holder_header, ConstraintSet.BOTTOM, 0);
+ constraintSet.applyTo((ConstraintLayout) this.container);
}
}
}
@@ -396,6 +409,16 @@ private void setHeaderFooter(TiViewProxy listViewProxy,
this.footer.addView(footerView, view.getLayoutParams());
this.footer.setVisibility(View.VISIBLE);
+
+ ConstraintSet constraintSet = new ConstraintSet();
+ constraintSet.clone((ConstraintLayout) this.container);
+ constraintSet.connect(R.id.titanium_ui_listview_holder_content, ConstraintSet.BOTTOM,
+ R.id.titanium_ui_listview_holder_footer, ConstraintSet.TOP, 0);
+ constraintSet.connect(R.id.titanium_ui_listview_holder_left_image, ConstraintSet.BOTTOM,
+ R.id.titanium_ui_listview_holder_footer, ConstraintSet.TOP, 0);
+ constraintSet.connect(R.id.titanium_ui_listview_holder_right_image, ConstraintSet.BOTTOM,
+ R.id.titanium_ui_listview_holder_footer, ConstraintSet.TOP, 0);
+ constraintSet.applyTo((ConstraintLayout) this.container);
}
}
}
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/listview/ListViewProxy.java b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/listview/ListViewProxy.java
index 991bdf9e534..79b5769f8f8 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/listview/ListViewProxy.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/listview/ListViewProxy.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
@@ -450,7 +450,7 @@ public void setActivity(Activity activity)
}
}
- // NOTE: For internal use only.
+ @Kroll.getProperty
public KrollDict getContentOffset()
{
final TiListView listView = getListView();
@@ -562,6 +562,11 @@ private void processProperty(String name, Object value)
if (listView != null) {
listView.setContinousUpdate(TiConvert.toBoolean(value, false));
}
+ } else if (name.equals("forceUpdates")) {
+ final TiListView listView = getListView();
+ if (listView != null) {
+ listView.setForceUpdates(TiConvert.toBoolean(value, false));
+ }
}
}
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/listview/RecyclerViewProxy.java b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/listview/RecyclerViewProxy.java
index 2739ef161be..bdbccae4d6f 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/listview/RecyclerViewProxy.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/listview/RecyclerViewProxy.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/listview/TiListView.java b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/listview/TiListView.java
index 73b5e4d492d..e4cee03582b 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/listview/TiListView.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/listview/TiListView.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
@@ -56,6 +56,7 @@ public class TiListView extends TiSwipeRefreshLayout implements OnSearchChangeLi
private SelectionTracker tracker = null;
private boolean isScrolling = false;
private boolean continuousUpdate = false;
+ private boolean forceUpdate = false;
private int lastScrollDeltaY;
private int scrollOffsetX = 0;
private int scrollOffsetY = 0;
@@ -157,7 +158,8 @@ public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy)
if (continuousUpdate) {
if (lastVisibleItem != TiConvert.toInt(payload.get(TiC.PROPERTY_FIRST_VISIBLE_ITEM_INDEX))
|| lastVisibleSection
- != TiConvert.toInt(payload.get(TiC.PROPERTY_FIRST_VISIBLE_SECTION_INDEX))) {
+ != TiConvert.toInt(payload.get(TiC.PROPERTY_FIRST_VISIBLE_SECTION_INDEX))
+ || forceUpdate) {
proxy.fireSyncEvent(TiC.EVENT_SCROLLING, payload);
lastVisibleItem = TiConvert.toInt(payload.get(TiC.PROPERTY_FIRST_VISIBLE_ITEM_INDEX));
lastVisibleSection = TiConvert.toInt(payload.get(TiC.PROPERTY_FIRST_VISIBLE_SECTION_INDEX));
@@ -282,6 +284,7 @@ public boolean inSelectionHotspot(@NonNull MotionEvent e)
final boolean allowsMultipleSelection
= properties.optBoolean(TiC.PROPERTY_ALLOWS_MULTIPLE_SELECTION_DURING_EDITING, false);
continuousUpdate = properties.optBoolean(TiC.PROPERTY_CONTINUOUS_UPDATE, false);
+ forceUpdate = properties.optBoolean("forceUpdates", false);
if (properties.optBoolean(TiC.PROPERTY_FIXED_SIZE, false)) {
this.recyclerView.setHasFixedSize(true);
@@ -398,6 +401,8 @@ public KrollDict generateScrollPayload()
payload.put(TiC.PROPERTY_FIRST_VISIBLE_SECTION, null);
payload.put(TiC.PROPERTY_FIRST_VISIBLE_SECTION_INDEX, -1);
}
+
+ payload.put(TiC.PROPERTY_TOP, recyclerView.computeVerticalScrollOffset());
}
// Define visible item count.
@@ -627,7 +632,7 @@ public void setSeparator(int color, int height)
}
/**
- * Starts dragging programatically.
+ * Starts dragging programmatically.
*
* @param vHolder The dedicated view holder
*/
@@ -662,6 +667,7 @@ public void update(boolean force)
|| properties.containsKeyAndNotNull(TiC.PROPERTY_FOOTER_VIEW);
String query = properties.optString(TiC.PROPERTY_SEARCH_TEXT, filterQuery);
+ filterQuery = query;
final boolean caseInsensitive = properties.optBoolean(TiC.PROPERTY_CASE_INSENSITIVE_SEARCH, true);
if (query != null && caseInsensitive) {
query = query.toLowerCase();
@@ -817,6 +823,11 @@ public void setContinousUpdate(boolean value)
continuousUpdate = value;
}
+ public void setForceUpdates(boolean value)
+ {
+ forceUpdate = value;
+ }
+
public void update()
{
this.update(false);
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/listview/TiNestedRecyclerView.java b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/listview/TiNestedRecyclerView.java
index ca3a18e6e53..659bb6094f2 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/listview/TiNestedRecyclerView.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/listview/TiNestedRecyclerView.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/listview/TiRecyclerViewAdapter.java b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/listview/TiRecyclerViewAdapter.java
index 7fe53e5c763..cca19084f9b 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/listview/TiRecyclerViewAdapter.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/listview/TiRecyclerViewAdapter.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
@@ -117,7 +117,7 @@ public void update(List newModels, boolean force)
return;
}
- final var diffResult = DiffUtil.calculateDiff(new DiffCallback(newModelsClone, this.models));
+ final var diffResult = DiffUtil.calculateDiff(new AsyncListDiffer(newModelsClone, this.models));
// Update models.
this.models = newModelsClone;
@@ -129,13 +129,13 @@ public void update(List newModels, boolean force)
/**
* Define DiffUtil.Callback to optimize updating the adapter.
*/
- private class DiffCallback extends DiffUtil.Callback
+ private class AsyncListDiffer extends DiffUtil.Callback
{
List newViews;
List oldViews;
- public DiffCallback(List newViews, List oldViews)
+ public AsyncListDiffer(List newViews, List oldViews)
{
this.newViews = newViews;
this.oldViews = oldViews;
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/listview/TiRecyclerViewHolder.java b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/listview/TiRecyclerViewHolder.java
index a031321b7c1..ed14fd3f194 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/listview/TiRecyclerViewHolder.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/listview/TiRecyclerViewHolder.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/picker/TiUIDatePicker.java b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/picker/TiUIDatePicker.java
index 4d1462acad1..1f0c29e857c 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/picker/TiUIDatePicker.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/picker/TiUIDatePicker.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
@@ -7,6 +7,7 @@
package ti.modules.titanium.ui.widget.picker;
import android.os.Build;
+import android.view.Gravity;
import android.view.View;
import android.widget.DatePicker;
import android.widget.DatePicker.OnDateChangedListener;
@@ -100,6 +101,15 @@ public TiUIDatePicker(@NonNull PickerProxy proxy)
};
textInputLayout.getEditText().setOnClickListener(clickListener);
textInputLayout.setEndIconOnClickListener(clickListener);
+
+ if (proxy.hasPropertyAndNotNull(TiC.PROPERTY_TEXT_ALIGN)) {
+ String textAlign = TiConvert.toString(proxy.getProperty(TiC.PROPERTY_TEXT_ALIGN));
+ if (textAlign.equals("center")) {
+ textInputLayout.getEditText().setGravity(Gravity.CENTER_VERTICAL | Gravity.CENTER);
+ } else if (textAlign.equals("right")) {
+ textInputLayout.getEditText().setGravity(Gravity.CENTER_VERTICAL | Gravity.END);
+ }
+ }
view = textInputLayout;
}
}
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/picker/TiUIPlainDropDownPicker.java b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/picker/TiUIPlainDropDownPicker.java
index 93430873f21..751a38e36ba 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/picker/TiUIPlainDropDownPicker.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/picker/TiUIPlainDropDownPicker.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/picker/TiUIPlainPicker.java b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/picker/TiUIPlainPicker.java
index fb87e1369ed..2ddf4b3dc41 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/picker/TiUIPlainPicker.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/picker/TiUIPlainPicker.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/picker/TiUIPlainSpinnerPicker.java b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/picker/TiUIPlainSpinnerPicker.java
index 8c6323090e2..52b78c7b9ec 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/picker/TiUIPlainSpinnerPicker.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/picker/TiUIPlainSpinnerPicker.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/picker/TiUITimePicker.java b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/picker/TiUITimePicker.java
index 82c071c95f6..1fe6d1e4618 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/picker/TiUITimePicker.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/picker/TiUITimePicker.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/searchbar/TiUISearchBar.java b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/searchbar/TiUISearchBar.java
index 1beb9d1f5d0..9730dc4f64a 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/searchbar/TiUISearchBar.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/searchbar/TiUISearchBar.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/searchview/TiUISearchView.java b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/searchview/TiUISearchView.java
index 11bfb293d7e..fe5227e0795 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/searchview/TiUISearchView.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/searchview/TiUISearchView.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/tabgroup/TiUIAbstractTabGroup.java b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/tabgroup/TiUIAbstractTabGroup.java
index 12221d51955..67957c1309b 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/tabgroup/TiUIAbstractTabGroup.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/tabgroup/TiUIAbstractTabGroup.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
@@ -357,7 +357,7 @@ protected boolean hasCustomBackground(TiViewProxy tabProxy)
}
/**
- * Method for creating a RippleDrawable to be used as a bacgkround for an item in the Controller.
+ * Method for creating a RippleDrawable to be used as a background for an item in the Controller.
* Creates the RippleDrawable for two states - the provided state and its negative value.
* If the properties are not set the method falls back to the colorPrimary of the current theme.
* The previous implementation of TabGroup added the ripple effect by default for tabs, thus this
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/tabgroup/TiUIBottomNavigationTabGroup.java b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/tabgroup/TiUIBottomNavigationTabGroup.java
index 03f69a23a1c..1ead9f66615 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/tabgroup/TiUIBottomNavigationTabGroup.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/tabgroup/TiUIBottomNavigationTabGroup.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
@@ -25,7 +25,7 @@
import com.google.android.material.bottomnavigation.BottomNavigationItemView;
import com.google.android.material.bottomnavigation.BottomNavigationMenuView;
import com.google.android.material.bottomnavigation.BottomNavigationView;
-import com.google.android.material.bottomnavigation.LabelVisibilityMode;
+import com.google.android.material.navigation.NavigationBarView;
import com.google.android.material.shape.CornerFamily;
import com.google.android.material.shape.MaterialShapeDrawable;
import com.google.android.material.shape.ShapeAppearanceModel;
@@ -180,6 +180,14 @@ public void onLayoutChange(
// Set the ViewPager as a native view.
setNativeView(this.tabGroupViewPager);
+ if (!TiConvert.toBoolean(this.proxy.getProperty(TiC.PROPERTY_TAB_BAR_VISIBLE), true)) {
+ TiCompositeLayout.LayoutParams params = new TiCompositeLayout.LayoutParams();
+ params.autoFillsWidth = true;
+ params.optionBottom = new TiDimension(0, TiDimension.TYPE_BOTTOM);
+ this.tabGroupViewPager.setLayoutParams(params);
+ // FIXME change "500" to a calculate value https://github.com/tidev/titanium-sdk/issues/13900
+ this.mBottomNavigationView.setTranslationY(500);
+ }
}
/**
@@ -230,14 +238,14 @@ public void addTabItemInController(TiViewProxy tabProxy)
final int shiftMode = proxy.getProperties().optInt(TiC.PROPERTY_SHIFT_MODE, 1);
switch (shiftMode) {
case 0:
- this.mBottomNavigationView.setLabelVisibilityMode(LabelVisibilityMode.LABEL_VISIBILITY_LABELED);
+ this.mBottomNavigationView.setLabelVisibilityMode(NavigationBarView.LABEL_VISIBILITY_LABELED);
break;
case 1:
- this.mBottomNavigationView.setLabelVisibilityMode(LabelVisibilityMode.LABEL_VISIBILITY_AUTO);
+ this.mBottomNavigationView.setLabelVisibilityMode(NavigationBarView.LABEL_VISIBILITY_AUTO);
break;
case 2:
// NOTE: Undocumented for now, will create new property that has parity with iOS.
- this.mBottomNavigationView.setLabelVisibilityMode(LabelVisibilityMode.LABEL_VISIBILITY_UNLABELED);
+ this.mBottomNavigationView.setLabelVisibilityMode(NavigationBarView.LABEL_VISIBILITY_UNLABELED);
break;
}
}
@@ -336,11 +344,17 @@ public void updateTabBackgroundDrawable(int index)
try {
// BottomNavigationMenuView rebuilds itself after adding a new item, so we need to reset the colors each time.
TiViewProxy tabProxy = tabs.get(index).getProxy();
- if (hasCustomBackground(tabProxy) || hasCustomIconTint(tabProxy)) {
+ boolean hasTouchFeedbackColor = tabProxy.hasPropertyAndNotNull(TiC.PROPERTY_TOUCH_FEEDBACK_COLOR);
+ if (hasCustomBackground(tabProxy) || hasCustomIconTint(tabProxy) || hasTouchFeedbackColor) {
BottomNavigationMenuView bottomMenuView =
((BottomNavigationMenuView) this.mBottomNavigationView.getChildAt(0));
Drawable drawable = createBackgroundDrawableForState(tabProxy, android.R.attr.state_checked);
- drawable = new RippleDrawable(createRippleColorStateListFrom(getActiveColor(tabProxy)), drawable, null);
+ int color = getActiveColor(tabProxy);
+ if (hasTouchFeedbackColor) {
+ color = TiConvert.toColor(tabProxy.getProperty(TiC.PROPERTY_TOUCH_FEEDBACK_COLOR),
+ tabProxy.getActivity());
+ }
+ drawable = new RippleDrawable(createRippleColorStateListFrom(color), drawable, null);
bottomMenuView.getChildAt(index).setBackground(drawable);
}
} catch (Exception e) {
@@ -435,11 +449,24 @@ public void updateBadgeColor(int index)
// TODO: reset to default value when property is null
if (tabProxy.hasPropertyAndNotNull(TiC.PROPERTY_BADGE_COLOR)) {
+ Log.w(TAG, "badgeColor is deprecated. Use badgeBackgroundColor instead.");
int menuItemId = this.mBottomNavigationView.getMenu().getItem(index).getItemId();
BadgeDrawable badgeDrawable = this.mBottomNavigationView.getOrCreateBadge(menuItemId);
badgeDrawable.setBackgroundColor(
TiConvert.toColor(tabProxy.getProperty(TiC.PROPERTY_BADGE_COLOR), tabProxy.getActivity()));
}
+ if (tabProxy.hasPropertyAndNotNull(TiC.PROPERTY_BADGE_BACKGROUND_COLOR)) {
+ int menuItemId = this.mBottomNavigationView.getMenu().getItem(index).getItemId();
+ BadgeDrawable badgeDrawable = this.mBottomNavigationView.getOrCreateBadge(menuItemId);
+ badgeDrawable.setBackgroundColor(
+ TiConvert.toColor(tabProxy.getProperty(TiC.PROPERTY_BADGE_BACKGROUND_COLOR), tabProxy.getActivity()));
+ }
+ if (tabProxy.hasPropertyAndNotNull(TiC.PROPERTY_BADGE_TEXT_COLOR)) {
+ int menuItemId = this.mBottomNavigationView.getMenu().getItem(index).getItemId();
+ BadgeDrawable badgeDrawable = this.mBottomNavigationView.getOrCreateBadge(menuItemId);
+ badgeDrawable.setBadgeTextColor(
+ TiConvert.toColor(tabProxy.getProperty(TiC.PROPERTY_BADGE_TEXT_COLOR), tabProxy.getActivity()));
+ }
}
@Override
@@ -474,6 +501,7 @@ public void updateTabIcon(int index)
final Drawable drawable = TiUIHelper.getResourceDrawable(tabProxy.getProperty(TiC.PROPERTY_ICON));
this.mBottomNavigationView.getMenu().getItem(index).setIcon(drawable);
+ updateIconTint();
}
@Override
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/tabgroup/TiUITab.java b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/tabgroup/TiUITab.java
index e193bf15723..cedabd77715 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/tabgroup/TiUITab.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/tabgroup/TiUITab.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/tabgroup/TiUITabLayoutTabGroup.java b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/tabgroup/TiUITabLayoutTabGroup.java
index 6d5196a2264..97d81da263e 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/tabgroup/TiUITabLayoutTabGroup.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/tabgroup/TiUITabLayoutTabGroup.java
@@ -1,11 +1,12 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
*/
package ti.modules.titanium.ui.widget.tabgroup;
+import org.appcelerator.kroll.KrollDict;
import org.appcelerator.kroll.common.Log;
import org.appcelerator.titanium.TiBaseActivity;
import org.appcelerator.titanium.TiC;
@@ -329,10 +330,21 @@ public void updateBadgeColor(int index)
// TODO: reset to default value when property is null
if (tabProxy.hasPropertyAndNotNull(TiC.PROPERTY_BADGE_COLOR)) {
+ Log.w(TAG, "badgeColor is deprecated. Use badgeBackgroundColor instead.");
BadgeDrawable badgeDrawable = this.mTabLayout.getTabAt(index).getOrCreateBadge();
badgeDrawable.setBackgroundColor(
TiConvert.toColor(tabProxy.getProperty(TiC.PROPERTY_BADGE_COLOR), tabProxy.getActivity()));
}
+ if (tabProxy.hasPropertyAndNotNull(TiC.PROPERTY_BADGE_BACKGROUND_COLOR)) {
+ BadgeDrawable badgeDrawable = this.mTabLayout.getTabAt(index).getOrCreateBadge();
+ badgeDrawable.setBackgroundColor(
+ TiConvert.toColor(tabProxy.getProperty(TiC.PROPERTY_BADGE_BACKGROUND_COLOR), tabProxy.getActivity()));
+ }
+ if (tabProxy.hasPropertyAndNotNull(TiC.PROPERTY_BADGE_TEXT_COLOR)) {
+ BadgeDrawable badgeDrawable = this.mTabLayout.getTabAt(index).getOrCreateBadge();
+ badgeDrawable.setBadgeTextColor(
+ TiConvert.toColor(tabProxy.getProperty(TiC.PROPERTY_BADGE_TEXT_COLOR), tabProxy.getActivity()));
+ }
}
@Override
@@ -350,6 +362,7 @@ public void updateTabIcon(int index)
TabLayout.Tab tab = this.mTabLayout.getTabAt(index);
tab.setIcon(TiUIHelper.getResourceDrawable(tabProxy.getProperty(TiC.PROPERTY_ICON)));
scaleIconToFit(tab);
+ updateIconTint();
}
@Override
@@ -400,6 +413,22 @@ public void onTabUnselected(TabLayout.Tab tab)
@Override
public void onTabReselected(TabLayout.Tab tab)
{
+ if (tab != null) {
+ int index = tab.getPosition();
+ if ((index >= 0) && (index < this.tabs.size())) {
+ TiViewProxy tabProxy = this.tabs.get(index).getProxy();
+ if (tabProxy != null && tabProxy.hasListeners(TiC.EVENT_SELECTED)) {
+ KrollDict data = new KrollDict();
+ data.put("index", index);
+ tabProxy.fireEvent(TiC.EVENT_SELECTED, data, false);
+ }
+ }
+ }
+ }
+
+ public void setTabMode(int value)
+ {
+ this.mTabLayout.setTabMode(value);
}
private LinearLayout getTabLinearLayoutForIndex(int index)
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/tableview/TableViewAdapter.java b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/tableview/TableViewAdapter.java
index d56b02e58f1..2cdf03bed21 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/tableview/TableViewAdapter.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/tableview/TableViewAdapter.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/tableview/TableViewHolder.java b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/tableview/TableViewHolder.java
index dd3f55b1363..64475c68cbd 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/tableview/TableViewHolder.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/tableview/TableViewHolder.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/tableview/TiTableView.java b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/tableview/TiTableView.java
index 9349652c58a..68de264bf0b 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/tableview/TiTableView.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/tableview/TiTableView.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/webview/TiUIWebView.java b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/webview/TiUIWebView.java
index c12a149c79d..e7099c1dee4 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/webview/TiUIWebView.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/webview/TiUIWebView.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
@@ -456,6 +456,14 @@ public void processProperties(KrollDict d)
if (d.containsKey(TiC.PROPERTY_ZOOM_LEVEL)) {
zoomBy(getWebView(), TiConvert.toFloat(d, TiC.PROPERTY_ZOOM_LEVEL));
}
+
+ if (d.containsKey(TiC.PROPERTY_SCROLLBARS)) {
+ int scrollbarValue = TiConvert.toInt(d, TiC.PROPERTY_SCROLLBARS);
+ webView.setVerticalScrollBarEnabled(scrollbarValue == AndroidModule.WEBVIEW_SCROLLBARS_DEFAULT
+ || scrollbarValue == AndroidModule.WEBVIEW_SCROLLBARS_HIDE_HORIZONTAL);
+ webView.setHorizontalScrollBarEnabled(scrollbarValue == AndroidModule.WEBVIEW_SCROLLBARS_DEFAULT
+ || scrollbarValue == AndroidModule.WEBVIEW_SCROLLBARS_HIDE_VERTICAL);
+ }
}
@Override
@@ -496,6 +504,12 @@ public void propertyChanged(String key, Object oldValue, Object newValue, KrollP
zoomBy(webView, TiConvert.toFloat(newValue, 1.0f));
} else if (TiC.PROPERTY_USER_AGENT.equals(key)) {
((WebViewProxy) getProxy()).setUserAgent(TiConvert.toString(newValue));
+ } else if (TiC.PROPERTY_SCROLLBARS.equals(key)) {
+ int scrollbarValue = TiConvert.toInt(newValue);
+ webView.setVerticalScrollBarEnabled(scrollbarValue == AndroidModule.WEBVIEW_SCROLLBARS_DEFAULT
+ || scrollbarValue == AndroidModule.WEBVIEW_SCROLLBARS_HIDE_HORIZONTAL);
+ webView.setHorizontalScrollBarEnabled(scrollbarValue == AndroidModule.WEBVIEW_SCROLLBARS_DEFAULT
+ || scrollbarValue == AndroidModule.WEBVIEW_SCROLLBARS_HIDE_VERTICAL);
} else {
super.propertyChanged(key, oldValue, newValue, proxy);
}
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/webview/TiWebChromeClient.java b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/webview/TiWebChromeClient.java
index 275005a43d0..9dc644f4e28 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/webview/TiWebChromeClient.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/webview/TiWebChromeClient.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
@@ -135,7 +135,7 @@ public void onRequestPermissionsResult(
/**
* Called when the HTML is requesting permission to do WebRTC audio/video capture or access a media resource.
* This method will prompt the end-user for permission to grant access to the requested web resource.
- * @param request Object providing the grant/deny callback and the resoruces being requested.
+ * @param request Object providing the grant/deny callback and the resources being requested.
*/
@Override
public void onPermissionRequest(final PermissionRequest request)
@@ -539,7 +539,7 @@ public void onError(Activity activity, int requestCode, Exception ex)
}
};
- // Display the file chooser or catpure activity.
+ // Display the file chooser or capture activity.
try {
Intent intent = createFileChooserIntentFrom(chooserParams);
activity.launchActivityForResult(intent, activity.getUniqueResultCode(), resultHandler);
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/webview/TiWebViewBinding.java b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/webview/TiWebViewBinding.java
index bf0548b1ab4..3b12250d2b0 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/webview/TiWebViewBinding.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/webview/TiWebViewBinding.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
@@ -22,6 +22,7 @@
import org.appcelerator.kroll.common.Log;
import org.appcelerator.kroll.util.KrollAssetHelper;
import org.appcelerator.titanium.TiApplication;
+import org.appcelerator.titanium.proxy.TiViewProxy;
import org.appcelerator.titanium.util.TiConvert;
import org.json.JSONException;
import org.json.JSONObject;
@@ -88,12 +89,14 @@ public class TiWebViewBinding
private AppBinding appBinding;
private TiReturn tiReturn;
private WebView webView;
+ private TiViewProxy proxy;
private boolean interfacesAdded = false;
- public TiWebViewBinding(WebView webView)
+ public TiWebViewBinding(WebView webView, TiViewProxy proxy)
{
codeSnippets = new Stack();
this.webView = webView;
+ this.proxy = proxy;
apiBinding = new ApiBinding();
appBinding = new AppBinding();
tiReturn = new TiReturn();
@@ -238,6 +241,7 @@ public void fireEvent(String event, String json)
if (json != null && !json.equals("undefined")) {
dict = new KrollDict(new JSONObject(json));
}
+ dict.put("source", proxy);
module.fireEvent(event, dict);
} catch (JSONException e) {
Log.e(TAG, "Error parsing event JSON", e);
diff --git a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/webview/TiWebViewClient.java b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/webview/TiWebViewClient.java
index 81f6f9ffd85..3d455af0654 100644
--- a/android/modules/ui/src/java/ti/modules/titanium/ui/widget/webview/TiWebViewClient.java
+++ b/android/modules/ui/src/java/ti/modules/titanium/ui/widget/webview/TiWebViewClient.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
@@ -45,7 +45,7 @@ public TiWebViewClient(TiUIWebView tiWebView, WebView webView)
{
super();
this.webView = tiWebView;
- binding = new TiWebViewBinding(webView);
+ binding = new TiWebViewBinding(webView, tiWebView.getProxy());
}
@Override
diff --git a/android/modules/utils/src/java/ti/modules/titanium/utils/UtilsModule.java b/android/modules/utils/src/java/ti/modules/titanium/utils/UtilsModule.java
index ce42048551a..67b6266c4c5 100644
--- a/android/modules/utils/src/java/ti/modules/titanium/utils/UtilsModule.java
+++ b/android/modules/utils/src/java/ti/modules/titanium/utils/UtilsModule.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/modules/xml/src/java/ti/modules/titanium/xml/AttrProxy.java b/android/modules/xml/src/java/ti/modules/titanium/xml/AttrProxy.java
index b79018cc334..7072ff184bc 100644
--- a/android/modules/xml/src/java/ti/modules/titanium/xml/AttrProxy.java
+++ b/android/modules/xml/src/java/ti/modules/titanium/xml/AttrProxy.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/modules/xml/src/java/ti/modules/titanium/xml/CDATASectionProxy.java b/android/modules/xml/src/java/ti/modules/titanium/xml/CDATASectionProxy.java
index bf3def1c1bd..d72fa76833d 100644
--- a/android/modules/xml/src/java/ti/modules/titanium/xml/CDATASectionProxy.java
+++ b/android/modules/xml/src/java/ti/modules/titanium/xml/CDATASectionProxy.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/modules/xml/src/java/ti/modules/titanium/xml/CharacterDataProxy.java b/android/modules/xml/src/java/ti/modules/titanium/xml/CharacterDataProxy.java
index 3015aa012ea..ffa9a11bea9 100644
--- a/android/modules/xml/src/java/ti/modules/titanium/xml/CharacterDataProxy.java
+++ b/android/modules/xml/src/java/ti/modules/titanium/xml/CharacterDataProxy.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/modules/xml/src/java/ti/modules/titanium/xml/CommentProxy.java b/android/modules/xml/src/java/ti/modules/titanium/xml/CommentProxy.java
index 2a128371fd6..9e67f80a978 100644
--- a/android/modules/xml/src/java/ti/modules/titanium/xml/CommentProxy.java
+++ b/android/modules/xml/src/java/ti/modules/titanium/xml/CommentProxy.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/modules/xml/src/java/ti/modules/titanium/xml/DOMImplementationProxy.java b/android/modules/xml/src/java/ti/modules/titanium/xml/DOMImplementationProxy.java
index 6a0d2f26fab..106fcd2b7df 100644
--- a/android/modules/xml/src/java/ti/modules/titanium/xml/DOMImplementationProxy.java
+++ b/android/modules/xml/src/java/ti/modules/titanium/xml/DOMImplementationProxy.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/modules/xml/src/java/ti/modules/titanium/xml/DocumentFragmentProxy.java b/android/modules/xml/src/java/ti/modules/titanium/xml/DocumentFragmentProxy.java
index 8165ff557a6..171015477bf 100644
--- a/android/modules/xml/src/java/ti/modules/titanium/xml/DocumentFragmentProxy.java
+++ b/android/modules/xml/src/java/ti/modules/titanium/xml/DocumentFragmentProxy.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/modules/xml/src/java/ti/modules/titanium/xml/DocumentProxy.java b/android/modules/xml/src/java/ti/modules/titanium/xml/DocumentProxy.java
index 8ab64f9261f..c1034d09d2c 100644
--- a/android/modules/xml/src/java/ti/modules/titanium/xml/DocumentProxy.java
+++ b/android/modules/xml/src/java/ti/modules/titanium/xml/DocumentProxy.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/modules/xml/src/java/ti/modules/titanium/xml/DocumentTypeProxy.java b/android/modules/xml/src/java/ti/modules/titanium/xml/DocumentTypeProxy.java
index 12b6e375df3..310ea3c4621 100644
--- a/android/modules/xml/src/java/ti/modules/titanium/xml/DocumentTypeProxy.java
+++ b/android/modules/xml/src/java/ti/modules/titanium/xml/DocumentTypeProxy.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/modules/xml/src/java/ti/modules/titanium/xml/ElementProxy.java b/android/modules/xml/src/java/ti/modules/titanium/xml/ElementProxy.java
index 783fcc25f3e..2af678120b0 100644
--- a/android/modules/xml/src/java/ti/modules/titanium/xml/ElementProxy.java
+++ b/android/modules/xml/src/java/ti/modules/titanium/xml/ElementProxy.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/modules/xml/src/java/ti/modules/titanium/xml/EntityProxy.java b/android/modules/xml/src/java/ti/modules/titanium/xml/EntityProxy.java
index 2d549005d7c..24575b12453 100644
--- a/android/modules/xml/src/java/ti/modules/titanium/xml/EntityProxy.java
+++ b/android/modules/xml/src/java/ti/modules/titanium/xml/EntityProxy.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/modules/xml/src/java/ti/modules/titanium/xml/EntityReferenceProxy.java b/android/modules/xml/src/java/ti/modules/titanium/xml/EntityReferenceProxy.java
index e2b69f8e3fe..8825fadfdd8 100644
--- a/android/modules/xml/src/java/ti/modules/titanium/xml/EntityReferenceProxy.java
+++ b/android/modules/xml/src/java/ti/modules/titanium/xml/EntityReferenceProxy.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/modules/xml/src/java/ti/modules/titanium/xml/NamedNodeMapProxy.java b/android/modules/xml/src/java/ti/modules/titanium/xml/NamedNodeMapProxy.java
index de09c95f5d1..2170ba3b4a8 100644
--- a/android/modules/xml/src/java/ti/modules/titanium/xml/NamedNodeMapProxy.java
+++ b/android/modules/xml/src/java/ti/modules/titanium/xml/NamedNodeMapProxy.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
@@ -25,6 +25,9 @@ public NamedNodeMapProxy(NamedNodeMap map)
@Kroll.getProperty
public int getLength()
{
+ if (map == null) {
+ return 0;
+ }
return map.getLength();
}
diff --git a/android/modules/xml/src/java/ti/modules/titanium/xml/NodeListProxy.java b/android/modules/xml/src/java/ti/modules/titanium/xml/NodeListProxy.java
index 47f5beea128..7b074df935a 100644
--- a/android/modules/xml/src/java/ti/modules/titanium/xml/NodeListProxy.java
+++ b/android/modules/xml/src/java/ti/modules/titanium/xml/NodeListProxy.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/modules/xml/src/java/ti/modules/titanium/xml/NodeProxy.java b/android/modules/xml/src/java/ti/modules/titanium/xml/NodeProxy.java
index 5cf5889838c..3ddd3631e34 100644
--- a/android/modules/xml/src/java/ti/modules/titanium/xml/NodeProxy.java
+++ b/android/modules/xml/src/java/ti/modules/titanium/xml/NodeProxy.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/modules/xml/src/java/ti/modules/titanium/xml/NotationProxy.java b/android/modules/xml/src/java/ti/modules/titanium/xml/NotationProxy.java
index 33d757fbbb4..18c9cfc50c9 100644
--- a/android/modules/xml/src/java/ti/modules/titanium/xml/NotationProxy.java
+++ b/android/modules/xml/src/java/ti/modules/titanium/xml/NotationProxy.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/modules/xml/src/java/ti/modules/titanium/xml/ProcessingInstructionProxy.java b/android/modules/xml/src/java/ti/modules/titanium/xml/ProcessingInstructionProxy.java
index 38e75875da6..8a14deabbbf 100644
--- a/android/modules/xml/src/java/ti/modules/titanium/xml/ProcessingInstructionProxy.java
+++ b/android/modules/xml/src/java/ti/modules/titanium/xml/ProcessingInstructionProxy.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/modules/xml/src/java/ti/modules/titanium/xml/TextProxy.java b/android/modules/xml/src/java/ti/modules/titanium/xml/TextProxy.java
index 24306ac1052..561e7be924e 100644
--- a/android/modules/xml/src/java/ti/modules/titanium/xml/TextProxy.java
+++ b/android/modules/xml/src/java/ti/modules/titanium/xml/TextProxy.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/modules/xml/src/java/ti/modules/titanium/xml/XMLModule.java b/android/modules/xml/src/java/ti/modules/titanium/xml/XMLModule.java
index 3ec0c112e94..b8cfa27af81 100644
--- a/android/modules/xml/src/java/ti/modules/titanium/xml/XMLModule.java
+++ b/android/modules/xml/src/java/ti/modules/titanium/xml/XMLModule.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/modules/xml/src/java/ti/modules/titanium/xml/XPathNodeListProxy.java b/android/modules/xml/src/java/ti/modules/titanium/xml/XPathNodeListProxy.java
index f1d35f8cb50..766c481efbe 100644
--- a/android/modules/xml/src/java/ti/modules/titanium/xml/XPathNodeListProxy.java
+++ b/android/modules/xml/src/java/ti/modules/titanium/xml/XPathNodeListProxy.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/modules/xml/src/java/ti/modules/titanium/xml/XPathUtil.java b/android/modules/xml/src/java/ti/modules/titanium/xml/XPathUtil.java
index f0fb7413c97..e264a015a7b 100644
--- a/android/modules/xml/src/java/ti/modules/titanium/xml/XPathUtil.java
+++ b/android/modules/xml/src/java/ti/modules/titanium/xml/XPathUtil.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/notes.md b/android/notes.md
index a7140dc4a46..af6e08f5d2e 100644
--- a/android/notes.md
+++ b/android/notes.md
@@ -19,7 +19,7 @@ TODOs!!!
Testing V8-inspector/debugger
========
The goal is to be able to debug apps via Chrome Devtools or Studio.
-We hook up a websocket server in JSDebugger.java to talk to DevTools. This carries the messages back and forth (basically wbesaockets are the "base" protocol that the isnpector protocol travels over)
+We hook up a websocket server in JSDebugger.java to talk to DevTools. This carries the messages back and forth (basically websockets are the "base" protocol that the inspector protocol travels over)
- Use multiple terminal tabs/windows:
- One for running a test app to debug with:
diff --git a/android/package.json b/android/package.json
index e44b893a543..cb890f2d580 100644
--- a/android/package.json
+++ b/android/package.json
@@ -1,7 +1,7 @@
{
"name": "titanium-mobile-android",
"title": "Android",
- "description": "TiDev Titanium Mobile Android",
+ "description": "Titanium SDK Android",
"keywords": [
"tidev",
"titanium",
@@ -19,15 +19,15 @@
"minSDKVersion": "21",
"compileSDKVersion": "33",
"vendorDependencies": {
- "android sdk": ">=23.x <=33.x",
- "android build tools": ">=30.0.2 <=33.x",
+ "android sdk": ">=23.x <=34.x",
+ "android build tools": ">=30.0.2 <=34.x",
"android platform tools": "33.x",
- "android tools": "<=26.x",
+ "android tools": "<=34.x",
"android ndk": ">=r21 <=r22b",
"java": ">=11.x"
},
"engines": {
- "node": ">=12.13.0"
+ "node": ">=16.0.0"
},
"repository": {
"type": "git",
diff --git a/android/runtime/common/src/java/org/appcelerator/kroll/JSError.java b/android/runtime/common/src/java/org/appcelerator/kroll/JSError.java
index 5f48b01ae07..339b4ce94f3 100644
--- a/android/runtime/common/src/java/org/appcelerator/kroll/JSError.java
+++ b/android/runtime/common/src/java/org/appcelerator/kroll/JSError.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/runtime/common/src/java/org/appcelerator/kroll/KrollApplication.java b/android/runtime/common/src/java/org/appcelerator/kroll/KrollApplication.java
index 695cd69d264..8048027c64e 100644
--- a/android/runtime/common/src/java/org/appcelerator/kroll/KrollApplication.java
+++ b/android/runtime/common/src/java/org/appcelerator/kroll/KrollApplication.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/runtime/common/src/java/org/appcelerator/kroll/KrollEvaluator.java b/android/runtime/common/src/java/org/appcelerator/kroll/KrollEvaluator.java
index bfbadcb3794..c61ef567697 100644
--- a/android/runtime/common/src/java/org/appcelerator/kroll/KrollEvaluator.java
+++ b/android/runtime/common/src/java/org/appcelerator/kroll/KrollEvaluator.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/runtime/common/src/java/org/appcelerator/kroll/KrollEventCallback.java b/android/runtime/common/src/java/org/appcelerator/kroll/KrollEventCallback.java
index cae41b42b26..6a436e840ff 100644
--- a/android/runtime/common/src/java/org/appcelerator/kroll/KrollEventCallback.java
+++ b/android/runtime/common/src/java/org/appcelerator/kroll/KrollEventCallback.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/runtime/common/src/java/org/appcelerator/kroll/KrollException.java b/android/runtime/common/src/java/org/appcelerator/kroll/KrollException.java
index a07c2e76e78..ab44b10199d 100644
--- a/android/runtime/common/src/java/org/appcelerator/kroll/KrollException.java
+++ b/android/runtime/common/src/java/org/appcelerator/kroll/KrollException.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/runtime/common/src/java/org/appcelerator/kroll/KrollExceptionHandler.java b/android/runtime/common/src/java/org/appcelerator/kroll/KrollExceptionHandler.java
index c9342a80460..cd4ce021338 100644
--- a/android/runtime/common/src/java/org/appcelerator/kroll/KrollExceptionHandler.java
+++ b/android/runtime/common/src/java/org/appcelerator/kroll/KrollExceptionHandler.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/runtime/common/src/java/org/appcelerator/kroll/KrollExternalModule.java b/android/runtime/common/src/java/org/appcelerator/kroll/KrollExternalModule.java
index e20b8df2edf..9cdc13b2c8e 100644
--- a/android/runtime/common/src/java/org/appcelerator/kroll/KrollExternalModule.java
+++ b/android/runtime/common/src/java/org/appcelerator/kroll/KrollExternalModule.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/runtime/common/src/java/org/appcelerator/kroll/KrollFunction.java b/android/runtime/common/src/java/org/appcelerator/kroll/KrollFunction.java
index 880b5b21214..36d3db849ab 100644
--- a/android/runtime/common/src/java/org/appcelerator/kroll/KrollFunction.java
+++ b/android/runtime/common/src/java/org/appcelerator/kroll/KrollFunction.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/runtime/common/src/java/org/appcelerator/kroll/KrollInvocation.java b/android/runtime/common/src/java/org/appcelerator/kroll/KrollInvocation.java
index 2535f265540..afd13f4a978 100644
--- a/android/runtime/common/src/java/org/appcelerator/kroll/KrollInvocation.java
+++ b/android/runtime/common/src/java/org/appcelerator/kroll/KrollInvocation.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/runtime/common/src/java/org/appcelerator/kroll/KrollLogging.java b/android/runtime/common/src/java/org/appcelerator/kroll/KrollLogging.java
index 4b10cc9eead..107c39ed9d5 100644
--- a/android/runtime/common/src/java/org/appcelerator/kroll/KrollLogging.java
+++ b/android/runtime/common/src/java/org/appcelerator/kroll/KrollLogging.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/runtime/common/src/java/org/appcelerator/kroll/KrollObject.java b/android/runtime/common/src/java/org/appcelerator/kroll/KrollObject.java
index c650e2e963e..670a5d5d867 100644
--- a/android/runtime/common/src/java/org/appcelerator/kroll/KrollObject.java
+++ b/android/runtime/common/src/java/org/appcelerator/kroll/KrollObject.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/runtime/common/src/java/org/appcelerator/kroll/KrollProxySupport.java b/android/runtime/common/src/java/org/appcelerator/kroll/KrollProxySupport.java
index 7ad6165ccee..bb309c0cdac 100644
--- a/android/runtime/common/src/java/org/appcelerator/kroll/KrollProxySupport.java
+++ b/android/runtime/common/src/java/org/appcelerator/kroll/KrollProxySupport.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/runtime/common/src/java/org/appcelerator/kroll/KrollRuntime.java b/android/runtime/common/src/java/org/appcelerator/kroll/KrollRuntime.java
index 1ab88718e09..04a3edf2f77 100644
--- a/android/runtime/common/src/java/org/appcelerator/kroll/KrollRuntime.java
+++ b/android/runtime/common/src/java/org/appcelerator/kroll/KrollRuntime.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/runtime/common/src/java/org/appcelerator/kroll/common/AsyncResult.java b/android/runtime/common/src/java/org/appcelerator/kroll/common/AsyncResult.java
index c4dd942d520..41739402734 100644
--- a/android/runtime/common/src/java/org/appcelerator/kroll/common/AsyncResult.java
+++ b/android/runtime/common/src/java/org/appcelerator/kroll/common/AsyncResult.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/runtime/common/src/java/org/appcelerator/kroll/common/CurrentActivityListener.java b/android/runtime/common/src/java/org/appcelerator/kroll/common/CurrentActivityListener.java
index f41a38d8697..dc8eec96d85 100644
--- a/android/runtime/common/src/java/org/appcelerator/kroll/common/CurrentActivityListener.java
+++ b/android/runtime/common/src/java/org/appcelerator/kroll/common/CurrentActivityListener.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/runtime/common/src/java/org/appcelerator/kroll/common/Log.java b/android/runtime/common/src/java/org/appcelerator/kroll/common/Log.java
index b6d8965952d..9cf579f8617 100644
--- a/android/runtime/common/src/java/org/appcelerator/kroll/common/Log.java
+++ b/android/runtime/common/src/java/org/appcelerator/kroll/common/Log.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/runtime/common/src/java/org/appcelerator/kroll/common/TiConfig.java b/android/runtime/common/src/java/org/appcelerator/kroll/common/TiConfig.java
index 9f5a7c5aecc..737e07ba7d8 100644
--- a/android/runtime/common/src/java/org/appcelerator/kroll/common/TiConfig.java
+++ b/android/runtime/common/src/java/org/appcelerator/kroll/common/TiConfig.java
@@ -1,13 +1,11 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
*/
package org.appcelerator.kroll.common;
-import android.util.Config;
-
/**
* A replacement class for org.appcelerator.titanium.config.TitaniumConfig so that I can change
* settings via tiapp.xml
@@ -24,9 +22,9 @@ public class TiConfig
* <property name="ti.android.debug" type="bool">true</property>
*
*/
- public static boolean LOGD = Config.DEBUG;
- public static boolean LOGV = Config.DEBUG;
- public static boolean DEBUG = Config.DEBUG;
- public static boolean RELEASE = !Config.DEBUG;
- public static boolean PROFILE = Config.PROFILE;
+ public static boolean LOGD = false;
+ public static boolean LOGV = false;
+ public static boolean DEBUG = false;
+ public static boolean RELEASE = true;
+ public static boolean PROFILE = false;
}
diff --git a/android/runtime/common/src/java/org/appcelerator/kroll/common/TiDeployData.java b/android/runtime/common/src/java/org/appcelerator/kroll/common/TiDeployData.java
index 969b5b34574..33d1af83f41 100644
--- a/android/runtime/common/src/java/org/appcelerator/kroll/common/TiDeployData.java
+++ b/android/runtime/common/src/java/org/appcelerator/kroll/common/TiDeployData.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/runtime/common/src/java/org/appcelerator/kroll/common/TiMessenger.java b/android/runtime/common/src/java/org/appcelerator/kroll/common/TiMessenger.java
index 3a93cd0fa51..9fc774e7de3 100644
--- a/android/runtime/common/src/java/org/appcelerator/kroll/common/TiMessenger.java
+++ b/android/runtime/common/src/java/org/appcelerator/kroll/common/TiMessenger.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/runtime/common/src/java/org/appcelerator/kroll/util/KrollAssetCache.java b/android/runtime/common/src/java/org/appcelerator/kroll/util/KrollAssetCache.java
index 12c4c6a03d4..f7aad768b50 100644
--- a/android/runtime/common/src/java/org/appcelerator/kroll/util/KrollAssetCache.java
+++ b/android/runtime/common/src/java/org/appcelerator/kroll/util/KrollAssetCache.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/runtime/common/src/java/org/appcelerator/kroll/util/KrollAssetHelper.java b/android/runtime/common/src/java/org/appcelerator/kroll/util/KrollAssetHelper.java
index d76c5e7b216..2b0e365e15f 100644
--- a/android/runtime/common/src/java/org/appcelerator/kroll/util/KrollAssetHelper.java
+++ b/android/runtime/common/src/java/org/appcelerator/kroll/util/KrollAssetHelper.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/runtime/common/src/java/org/appcelerator/kroll/util/KrollStreamHelper.java b/android/runtime/common/src/java/org/appcelerator/kroll/util/KrollStreamHelper.java
index ef96fa4214b..925e5dfa54c 100644
--- a/android/runtime/common/src/java/org/appcelerator/kroll/util/KrollStreamHelper.java
+++ b/android/runtime/common/src/java/org/appcelerator/kroll/util/KrollStreamHelper.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/runtime/v8/src/java/org/appcelerator/kroll/runtime/v8/GCWatcher.java b/android/runtime/v8/src/java/org/appcelerator/kroll/runtime/v8/GCWatcher.java
index 3e29cda1e09..90003cad8ed 100644
--- a/android/runtime/v8/src/java/org/appcelerator/kroll/runtime/v8/GCWatcher.java
+++ b/android/runtime/v8/src/java/org/appcelerator/kroll/runtime/v8/GCWatcher.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/runtime/v8/src/java/org/appcelerator/kroll/runtime/v8/JSDebugger.java b/android/runtime/v8/src/java/org/appcelerator/kroll/runtime/v8/JSDebugger.java
index f102321f7b4..7bcce6ab960 100644
--- a/android/runtime/v8/src/java/org/appcelerator/kroll/runtime/v8/JSDebugger.java
+++ b/android/runtime/v8/src/java/org/appcelerator/kroll/runtime/v8/JSDebugger.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
@@ -205,7 +205,7 @@ public void onMessage(WebSocket conn, String message)
{
inspectorMessages.offer(message); // put message into queue
- // if we haven't initialied yet, sniff the incoming messages
+ // if we haven't initialized yet, sniff the incoming messages
if (!JSDebugger.this.ready.get()) {
// copy any waiting messages into our initial queue
String nextMessage = inspectorMessages.poll();
diff --git a/android/runtime/v8/src/java/org/appcelerator/kroll/runtime/v8/ReferenceTable.java b/android/runtime/v8/src/java/org/appcelerator/kroll/runtime/v8/ReferenceTable.java
index 3ff9421a664..b1a7e86949d 100644
--- a/android/runtime/v8/src/java/org/appcelerator/kroll/runtime/v8/ReferenceTable.java
+++ b/android/runtime/v8/src/java/org/appcelerator/kroll/runtime/v8/ReferenceTable.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/runtime/v8/src/java/org/appcelerator/kroll/runtime/v8/V8Function.java b/android/runtime/v8/src/java/org/appcelerator/kroll/runtime/v8/V8Function.java
index 9619d5f9b82..580c6729104 100644
--- a/android/runtime/v8/src/java/org/appcelerator/kroll/runtime/v8/V8Function.java
+++ b/android/runtime/v8/src/java/org/appcelerator/kroll/runtime/v8/V8Function.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/runtime/v8/src/java/org/appcelerator/kroll/runtime/v8/V8Object.java b/android/runtime/v8/src/java/org/appcelerator/kroll/runtime/v8/V8Object.java
index 28bf89265e4..91f74de371a 100644
--- a/android/runtime/v8/src/java/org/appcelerator/kroll/runtime/v8/V8Object.java
+++ b/android/runtime/v8/src/java/org/appcelerator/kroll/runtime/v8/V8Object.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/runtime/v8/src/java/org/appcelerator/kroll/runtime/v8/V8Runtime.java b/android/runtime/v8/src/java/org/appcelerator/kroll/runtime/v8/V8Runtime.java
index 7c6552200cb..7013952bdf1 100644
--- a/android/runtime/v8/src/java/org/appcelerator/kroll/runtime/v8/V8Runtime.java
+++ b/android/runtime/v8/src/java/org/appcelerator/kroll/runtime/v8/V8Runtime.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/runtime/v8/src/native/AndroidUtil.cpp b/android/runtime/v8/src/native/AndroidUtil.cpp
index f26e5f5d3a0..3a6944f59cd 100644
--- a/android/runtime/v8/src/native/AndroidUtil.cpp
+++ b/android/runtime/v8/src/native/AndroidUtil.cpp
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/runtime/v8/src/native/AndroidUtil.h b/android/runtime/v8/src/native/AndroidUtil.h
index c724ddffb08..4cd8a8721d3 100644
--- a/android/runtime/v8/src/native/AndroidUtil.h
+++ b/android/runtime/v8/src/native/AndroidUtil.h
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/runtime/v8/src/native/CMakeLists.txt b/android/runtime/v8/src/native/CMakeLists.txt
index 2a4cbc9cafe..4c363604f1b 100644
--- a/android/runtime/v8/src/native/CMakeLists.txt
+++ b/android/runtime/v8/src/native/CMakeLists.txt
@@ -1,11 +1,11 @@
################################################################################
-# TiDev Titanium Mobile
+# Titanium SDK
# Copyright TiDev, Inc. 04/07/2022-Present
# Licensed under the terms of the Apache Public License
# Please see the LICENSE included with this distribution for details.
################################################################################
-cmake_minimum_required(VERSION 3.10.2)
+cmake_minimum_required(VERSION 3.22.1)
# Set project/library name and have it use the C++ compiler.
# Note: Built library will be named "lib${PROJECT_NAME}.so".
diff --git a/android/runtime/v8/src/native/EventEmitter.cpp b/android/runtime/v8/src/native/EventEmitter.cpp
index 714b584fefe..61cf78cacec 100644
--- a/android/runtime/v8/src/native/EventEmitter.cpp
+++ b/android/runtime/v8/src/native/EventEmitter.cpp
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/runtime/v8/src/native/EventEmitter.h b/android/runtime/v8/src/native/EventEmitter.h
index 37030934d99..9b2e77922c6 100644
--- a/android/runtime/v8/src/native/EventEmitter.h
+++ b/android/runtime/v8/src/native/EventEmitter.h
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/runtime/v8/src/native/InspectorClient.cpp b/android/runtime/v8/src/native/InspectorClient.cpp
index 56ad737d032..ef3cc91fa9d 100644
--- a/android/runtime/v8/src/native/InspectorClient.cpp
+++ b/android/runtime/v8/src/native/InspectorClient.cpp
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
@@ -112,7 +112,7 @@ void InspectorClient::CallAndPauseOnStart(const v8::FunctionCallbackInfoIsString());
assert(args[1]->IsString());
- // Note that this differs from Node's implementation wher ethey expect the first arg to be a pre-compiled function
+ // Note that this differs from Node's implementation where they expect the first arg to be a pre-compiled function
// And a variable number of additional arguments to pass to that function.
// They wrap the source with a function just like Module.wrap for standard code
// Then compile the function and pass it into this method to schedule a pause and then invoke it.
diff --git a/android/runtime/v8/src/native/InspectorClient.h b/android/runtime/v8/src/native/InspectorClient.h
index 9b0f610f9b5..e6498c847b8 100644
--- a/android/runtime/v8/src/native/InspectorClient.h
+++ b/android/runtime/v8/src/native/InspectorClient.h
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/runtime/v8/src/native/InspectorFrontend.cpp b/android/runtime/v8/src/native/InspectorFrontend.cpp
index bf9850c9e8a..1fc8472425c 100644
--- a/android/runtime/v8/src/native/InspectorFrontend.cpp
+++ b/android/runtime/v8/src/native/InspectorFrontend.cpp
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/runtime/v8/src/native/InspectorFrontend.h b/android/runtime/v8/src/native/InspectorFrontend.h
index 5880690cb19..94a9c445942 100644
--- a/android/runtime/v8/src/native/InspectorFrontend.h
+++ b/android/runtime/v8/src/native/InspectorFrontend.h
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/runtime/v8/src/native/JNIUtil.cpp b/android/runtime/v8/src/native/JNIUtil.cpp
index 83f9a8a7c88..5edc315647c 100644
--- a/android/runtime/v8/src/native/JNIUtil.cpp
+++ b/android/runtime/v8/src/native/JNIUtil.cpp
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/runtime/v8/src/native/JNIUtil.h b/android/runtime/v8/src/native/JNIUtil.h
index d6eadfcd9a7..5c9f088016b 100644
--- a/android/runtime/v8/src/native/JNIUtil.h
+++ b/android/runtime/v8/src/native/JNIUtil.h
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/runtime/v8/src/native/JSDebugger.cpp b/android/runtime/v8/src/native/JSDebugger.cpp
index 47e8dbceb66..845db05eecb 100644
--- a/android/runtime/v8/src/native/JSDebugger.cpp
+++ b/android/runtime/v8/src/native/JSDebugger.cpp
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/runtime/v8/src/native/JSDebugger.h b/android/runtime/v8/src/native/JSDebugger.h
index acb8137fa12..9c96301db1a 100644
--- a/android/runtime/v8/src/native/JSDebugger.h
+++ b/android/runtime/v8/src/native/JSDebugger.h
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/runtime/v8/src/native/JSException.cpp b/android/runtime/v8/src/native/JSException.cpp
index 0207143f3e0..ae39f863cee 100644
--- a/android/runtime/v8/src/native/JSException.cpp
+++ b/android/runtime/v8/src/native/JSException.cpp
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/runtime/v8/src/native/JSException.h b/android/runtime/v8/src/native/JSException.h
index 83230200639..414df87f4e9 100644
--- a/android/runtime/v8/src/native/JSException.h
+++ b/android/runtime/v8/src/native/JSException.h
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/runtime/v8/src/native/JavaObject.cpp b/android/runtime/v8/src/native/JavaObject.cpp
index 253fdeb7195..de506240d2c 100644
--- a/android/runtime/v8/src/native/JavaObject.cpp
+++ b/android/runtime/v8/src/native/JavaObject.cpp
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/runtime/v8/src/native/JavaObject.h b/android/runtime/v8/src/native/JavaObject.h
index 9038a1bbac5..0c7349eeb34 100644
--- a/android/runtime/v8/src/native/JavaObject.h
+++ b/android/runtime/v8/src/native/JavaObject.h
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
@@ -15,7 +15,7 @@ namespace titanium {
// Provides an interface between a JavaScript object
// and a Java object instance. This class is also responsible
-// for mangaging the lifetime of the Java object reference
+// for managing the lifetime of the Java object reference
// so that it is properly collected once becoming unreachable
// from the JavaScript code.
class JavaObject : public EventEmitter
diff --git a/android/runtime/v8/src/native/KrollBindings.cpp b/android/runtime/v8/src/native/KrollBindings.cpp
index 88bde71df9f..777f856b9cf 100644
--- a/android/runtime/v8/src/native/KrollBindings.cpp
+++ b/android/runtime/v8/src/native/KrollBindings.cpp
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/runtime/v8/src/native/KrollBindings.h b/android/runtime/v8/src/native/KrollBindings.h
index 009f69cd421..afc5cfce969 100644
--- a/android/runtime/v8/src/native/KrollBindings.h
+++ b/android/runtime/v8/src/native/KrollBindings.h
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/runtime/v8/src/native/NativeObject.h b/android/runtime/v8/src/native/NativeObject.h
index 6387361f2ff..0d4c8b71a3b 100644
--- a/android/runtime/v8/src/native/NativeObject.h
+++ b/android/runtime/v8/src/native/NativeObject.h
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/runtime/v8/src/native/Proxy.cpp b/android/runtime/v8/src/native/Proxy.cpp
index 7adc6f44a65..b129dbcfca4 100644
--- a/android/runtime/v8/src/native/Proxy.cpp
+++ b/android/runtime/v8/src/native/Proxy.cpp
@@ -1,5 +1,5 @@
/*
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/runtime/v8/src/native/Proxy.h b/android/runtime/v8/src/native/Proxy.h
index f71dc37f1db..67825fcdc5c 100644
--- a/android/runtime/v8/src/native/Proxy.h
+++ b/android/runtime/v8/src/native/Proxy.h
@@ -1,5 +1,5 @@
/*
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/runtime/v8/src/native/ProxyFactory.cpp b/android/runtime/v8/src/native/ProxyFactory.cpp
index a2fa565d91c..85ad129561d 100644
--- a/android/runtime/v8/src/native/ProxyFactory.cpp
+++ b/android/runtime/v8/src/native/ProxyFactory.cpp
@@ -1,5 +1,5 @@
/*
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/runtime/v8/src/native/ProxyFactory.h b/android/runtime/v8/src/native/ProxyFactory.h
index cfbf8106416..61725148af5 100644
--- a/android/runtime/v8/src/native/ProxyFactory.h
+++ b/android/runtime/v8/src/native/ProxyFactory.h
@@ -1,5 +1,5 @@
/*
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/runtime/v8/src/native/ReferenceTable.cpp b/android/runtime/v8/src/native/ReferenceTable.cpp
index 897d90bf836..97010e67c12 100644
--- a/android/runtime/v8/src/native/ReferenceTable.cpp
+++ b/android/runtime/v8/src/native/ReferenceTable.cpp
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/runtime/v8/src/native/ReferenceTable.h b/android/runtime/v8/src/native/ReferenceTable.h
index b5b27304a7d..3cd1db4e16c 100644
--- a/android/runtime/v8/src/native/ReferenceTable.h
+++ b/android/runtime/v8/src/native/ReferenceTable.h
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/runtime/v8/src/native/TypeConverter.cpp b/android/runtime/v8/src/native/TypeConverter.cpp
index ce8f8e9c015..4ecb93062e9 100644
--- a/android/runtime/v8/src/native/TypeConverter.cpp
+++ b/android/runtime/v8/src/native/TypeConverter.cpp
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/runtime/v8/src/native/TypeConverter.h b/android/runtime/v8/src/native/TypeConverter.h
index 99abcdfad97..5a79c637f81 100644
--- a/android/runtime/v8/src/native/TypeConverter.h
+++ b/android/runtime/v8/src/native/TypeConverter.h
@@ -1,5 +1,5 @@
/*
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/runtime/v8/src/native/V8Function.cpp b/android/runtime/v8/src/native/V8Function.cpp
index 22a9a315e1f..9de6b41d3ed 100644
--- a/android/runtime/v8/src/native/V8Function.cpp
+++ b/android/runtime/v8/src/native/V8Function.cpp
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/runtime/v8/src/native/V8Object.cpp b/android/runtime/v8/src/native/V8Object.cpp
index cb1b1ea18b8..35d98925797 100644
--- a/android/runtime/v8/src/native/V8Object.cpp
+++ b/android/runtime/v8/src/native/V8Object.cpp
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/runtime/v8/src/native/V8Promise.cpp b/android/runtime/v8/src/native/V8Promise.cpp
index 8e7ab74ba66..79c0647674d 100644
--- a/android/runtime/v8/src/native/V8Promise.cpp
+++ b/android/runtime/v8/src/native/V8Promise.cpp
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/runtime/v8/src/native/V8Runtime.cpp b/android/runtime/v8/src/native/V8Runtime.cpp
index 154f80855ce..a5fa38068d6 100644
--- a/android/runtime/v8/src/native/V8Runtime.cpp
+++ b/android/runtime/v8/src/native/V8Runtime.cpp
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/runtime/v8/src/native/V8Runtime.h b/android/runtime/v8/src/native/V8Runtime.h
index 98926a4f8fa..8fc28c74914 100644
--- a/android/runtime/v8/src/native/V8Runtime.h
+++ b/android/runtime/v8/src/native/V8Runtime.h
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/runtime/v8/src/native/V8Util.cpp b/android/runtime/v8/src/native/V8Util.cpp
index ee8ea1883e0..18de9f46732 100644
--- a/android/runtime/v8/src/native/V8Util.cpp
+++ b/android/runtime/v8/src/native/V8Util.cpp
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/runtime/v8/src/native/V8Util.h b/android/runtime/v8/src/native/V8Util.h
index e8faec73605..a9623323e7e 100644
--- a/android/runtime/v8/src/native/V8Util.h
+++ b/android/runtime/v8/src/native/V8Util.h
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/runtime/v8/src/native/modules/APIModule.cpp b/android/runtime/v8/src/native/modules/APIModule.cpp
index 29582824928..a2628327880 100644
--- a/android/runtime/v8/src/native/modules/APIModule.cpp
+++ b/android/runtime/v8/src/native/modules/APIModule.cpp
@@ -1,5 +1,5 @@
/*
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
@@ -48,7 +48,7 @@ void APIModule::Initialize(Local target, Local context)
// Hook methods to the API prototype, notice these aren't hooked to API
// itself, instead we return a singleton of an API instance and export it
// as Ti.API
- // Not sure why we then hook apiName as instance proprty, since
+ // Not sure why we then hook apiName as instance property, since
// the difference is made moot by the singleton!
SetProtoMethod(isolate, constructor, "debug", logDebug);
SetProtoMethod(isolate, constructor, "info", logInfo);
diff --git a/android/runtime/v8/src/native/modules/APIModule.h b/android/runtime/v8/src/native/modules/APIModule.h
index c48c3f63f1d..2a4e6233d00 100644
--- a/android/runtime/v8/src/native/modules/APIModule.h
+++ b/android/runtime/v8/src/native/modules/APIModule.h
@@ -1,6 +1,6 @@
/*
- * Appcelerator Titanium Mobile
- * Copyright (c) 2011-2016 by Appcelerator, Inc. All Rights Reserved.
+ * Titanium SDK
+ * Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
*/
diff --git a/android/runtime/v8/src/native/modules/AssetsModule.cpp b/android/runtime/v8/src/native/modules/AssetsModule.cpp
index 844fb5f211b..400ffa08c28 100644
--- a/android/runtime/v8/src/native/modules/AssetsModule.cpp
+++ b/android/runtime/v8/src/native/modules/AssetsModule.cpp
@@ -1,5 +1,5 @@
/*
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/runtime/v8/src/native/modules/AssetsModule.h b/android/runtime/v8/src/native/modules/AssetsModule.h
index 2b978e48fb7..49fcaeab88b 100644
--- a/android/runtime/v8/src/native/modules/AssetsModule.h
+++ b/android/runtime/v8/src/native/modules/AssetsModule.h
@@ -1,6 +1,6 @@
/*
- * Appcelerator Titanium Mobile
- * Copyright (c) 2011-2016 by Appcelerator, Inc. All Rights Reserved.
+ * Titanium SDK
+ * Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
*/
diff --git a/android/runtime/v8/src/native/modules/ScriptsModule.cpp b/android/runtime/v8/src/native/modules/ScriptsModule.cpp
index 59d79645dda..40092181e64 100644
--- a/android/runtime/v8/src/native/modules/ScriptsModule.cpp
+++ b/android/runtime/v8/src/native/modules/ScriptsModule.cpp
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
@@ -253,7 +253,7 @@ void WrappedScript::EvalMachine(const FunctionCallbackInfo& args)
// Use the passed in context
MaybeLocal contextArg = args[sandbox_index]->ToObject(currentContext);
if (contextArg.IsEmpty()) {
- // FIXME Will this ever happen? This is not likley and probably the wrong way to handle this. We should at least log it...
+ // FIXME Will this ever happen? This is not likely and probably the wrong way to handle this. We should at least log it...
context.Reset(isolate, Context::New(isolate));
} else {
nContext = WrappedContext::Unwrap(isolate, contextArg.ToLocalChecked());
@@ -261,7 +261,7 @@ void WrappedScript::EvalMachine(const FunctionCallbackInfo& args)
}
}
- // Explicitly set up var to track context we shoudl use for compile/run of script.
+ // Explicitly set up var to track context we should use for compile/run of script.
// When "thisContext", use teh current context from the isolate. Otherwise use the context we set in the Persistent above
Local contextToUse = (context_flag == thisContext) ? currentContext : context.Get(isolate);
diff --git a/android/runtime/v8/src/native/modules/ScriptsModule.h b/android/runtime/v8/src/native/modules/ScriptsModule.h
index 3e82bdfb60c..e8c961c989f 100644
--- a/android/runtime/v8/src/native/modules/ScriptsModule.h
+++ b/android/runtime/v8/src/native/modules/ScriptsModule.h
@@ -1,6 +1,6 @@
/**
- * Appcelerator Titanium Mobile
- * Copyright (c) 2011-2016 by Appcelerator, Inc. All Rights Reserved.
+ * Titanium SDK
+ * Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
*/
diff --git a/android/runtime/v8/src/ndk-modules/libv8/CMakeLists.txt b/android/runtime/v8/src/ndk-modules/libv8/CMakeLists.txt
index d9979f8a329..07268433dbd 100644
--- a/android/runtime/v8/src/ndk-modules/libv8/CMakeLists.txt
+++ b/android/runtime/v8/src/ndk-modules/libv8/CMakeLists.txt
@@ -1,5 +1,5 @@
################################################################################
-# TiDev Titanium Mobile
+# Titanium SDK
# Copyright TiDev, Inc. 04/07/2022-Present
# Licensed under the terms of the Apache Public License
# Please see the LICENSE included with this distribution for details.
diff --git a/android/templates/build/AppInfo.java b/android/templates/build/AppInfo.java
index 45ce3eb7c8c..5fa19fa689c 100644
--- a/android/templates/build/AppInfo.java
+++ b/android/templates/build/AppInfo.java
@@ -52,10 +52,6 @@ public String getIcon() {
return "<%- tiapp.icon %>";
}
- public boolean isAnalyticsEnabled() {
- return <%- !!tiapp.analytics %>;
- }
-
public String getGUID() {
return "<%- tiapp.guid %>";
}
diff --git a/android/templates/build/app.build.gradle b/android/templates/build/app.build.gradle
index 4a1607f99fc..44f859dfa54 100644
--- a/android/templates/build/app.build.gradle
+++ b/android/templates/build/app.build.gradle
@@ -62,6 +62,7 @@ android {
storePassword tiKeystorePassword
keyAlias tiKeystoreAliasName
keyPassword tiKeystoreAliasPassword
+ enableV3Signing true
}
}
buildTypes {
diff --git a/android/templates/build/root.build.gradle b/android/templates/build/root.build.gradle
index 8df90e3f35f..c8b563a07cc 100644
--- a/android/templates/build/root.build.gradle
+++ b/android/templates/build/root.build.gradle
@@ -21,6 +21,6 @@ allprojects {
project.apply from: "${rootDir}/ti.constants.gradle"
}
-task clean(type: Delete) {
+tasks.register('clean', Delete) {
delete rootProject.buildDir
}
diff --git a/android/templates/build/ti.constants.gradle b/android/templates/build/ti.constants.gradle
index 0ea332c1cf9..503c2f006f1 100644
--- a/android/templates/build/ti.constants.gradle
+++ b/android/templates/build/ti.constants.gradle
@@ -1,6 +1,6 @@
/**
- * Appcelerator Titanium Mobile
- * Copyright (c) 2009-2021 by Axway. All Rights Reserved.
+ * Titanium SDK
+ * Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License.
* Please see the LICENSE included with this distribution for details.
*/
diff --git a/android/templates/module/generated/CommonJsSourceProvider.java b/android/templates/module/generated/CommonJsSourceProvider.java
index ba2a6e99218..dbb9c3a15b0 100644
--- a/android/templates/module/generated/CommonJsSourceProvider.java
+++ b/android/templates/module/generated/CommonJsSourceProvider.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/templates/module/generated/KrollGeneratedBindings.h b/android/templates/module/generated/KrollGeneratedBindings.h
index b0556e4e269..f6c9af5f3b1 100644
--- a/android/templates/module/generated/KrollGeneratedBindings.h
+++ b/android/templates/module/generated/KrollGeneratedBindings.h
@@ -1,5 +1,5 @@
/**
- * Axway TiDev Titanium Mobile
+ * Titanium SDK SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/templates/module/generated/TiModuleBootstrap.cpp b/android/templates/module/generated/TiModuleBootstrap.cpp
index 05a5e1dc5a1..940f6541b50 100644
--- a/android/templates/module/generated/TiModuleBootstrap.cpp
+++ b/android/templates/module/generated/TiModuleBootstrap.cpp
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/templates/module/generated/TiModuleBootstrap.java b/android/templates/module/generated/TiModuleBootstrap.java
index df0e0f01e38..dad00dde4c4 100644
--- a/android/templates/module/generated/TiModuleBootstrap.java
+++ b/android/templates/module/generated/TiModuleBootstrap.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/templates/module/generated/bootstrap.js b/android/templates/module/generated/bootstrap.js
index 33c0c13c41c..17fb3c6ee5b 100644
--- a/android/templates/module/generated/bootstrap.js
+++ b/android/templates/module/generated/bootstrap.js
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/templates/module/generated/build.gradle b/android/templates/module/generated/build.gradle
index f28a5aee09c..35106af223b 100644
--- a/android/templates/module/generated/build.gradle
+++ b/android/templates/module/generated/build.gradle
@@ -16,6 +16,7 @@ def tiModuleBindingsJsonPath = "${buildDir}/ti-generated/json/<%- moduleName %>.
android {
compileSdkVersion <%- compileSdkVersion %>
+ ndkVersion '22.1.7171670'
defaultConfig {
minSdkVersion 19
targetSdkVersion <%- compileSdkVersion %>
@@ -59,7 +60,8 @@ android {
arguments.addAll([
'APP_STL:=c++_shared',
"-j${Runtime.runtime.availableProcessors()}".toString(),
- '--output-sync=none'
+ '--output-sync=none',
+ 'APP_LD=deprecated'
])
}
}
@@ -162,13 +164,13 @@ project.afterEvaluate {
}
// Hook into Java compile task.
-tasks.withType(JavaCompile) {
+tasks.withType(JavaCompile).configureEach {
// Log all Java linting errors/warnings.
options.compilerArgs << "-Xlint:all"
// Execute our "generate-cpp-files.js" script after Java compile to finish generating C++ files.
// Depends on the JSON file produced by our "kroll-apt" Java annotation processor.
- // TODO: Our annnotation processor should do ALL of the proxy code generation. Don't piece-meal it.
+ // TODO: Our annotation processor should do ALL of the proxy code generation. Don't piece-meal it.
doLast {
exec {
environment 'TI_MODULE_BINDINGS_JSON_FILE', tiModuleBindingsJsonPath
@@ -246,7 +248,7 @@ publishing {
}
}
-// Load the module developer's optional "build.gradle" file from "/android" directory.
+// Load the module developer's optional "build.gradle" file from "/android" directory.
// This gradle file is expected to provide the module's "dependencies".
def moduleBuildGradlePath = "${projectDir}/../../build.gradle"
if (file(moduleBuildGradlePath).exists()) {
diff --git a/android/templates/module/generated/generate-cpp-files.js b/android/templates/module/generated/generate-cpp-files.js
index 821bb3fa274..a383a506681 100644
--- a/android/templates/module/generated/generate-cpp-files.js
+++ b/android/templates/module/generated/generate-cpp-files.js
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License.
* Please see the LICENSE included with this distribution for details.
@@ -60,7 +60,7 @@ function replacePlaceholders(text, placeholders) {
/** Generates C++ source files for the module. */
async function main() {
- // Load module's JSON file containing all proxy bindings generated by "kroll-apt" Java annotatation processor.
+ // Load module's JSON file containing all proxy bindings generated by "kroll-apt" Java annotation processor.
const bindingJsonPath = process.env.TI_MODULE_BINDINGS_JSON_FILE;
const bindingJson = JSON.parse(fs.readFileSync(bindingJsonPath));
const moduleClassName = Object.keys(bindingJson.modules)[0];
diff --git a/android/templates/module/java/template/android/src/{{ModuleIdAsFolder}}/ExampleProxy.java.ejs b/android/templates/module/java/template/android/src/{{ModuleIdAsFolder}}/ExampleProxy.java.ejs
index 227f79b7027..24a2e987cac 100644
--- a/android/templates/module/java/template/android/src/{{ModuleIdAsFolder}}/ExampleProxy.java.ejs
+++ b/android/templates/module/java/template/android/src/{{ModuleIdAsFolder}}/ExampleProxy.java.ejs
@@ -1,6 +1,6 @@
/**
* This file was auto-generated by the Titanium Module SDK helper for Android
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/templates/module/java/template/android/src/{{ModuleIdAsFolder}}/{{ModuleNameCamel}}Module.java.ejs b/android/templates/module/java/template/android/src/{{ModuleIdAsFolder}}/{{ModuleNameCamel}}Module.java.ejs
index 9fe48dc4981..03e1a19cc62 100644
--- a/android/templates/module/java/template/android/src/{{ModuleIdAsFolder}}/{{ModuleNameCamel}}Module.java.ejs
+++ b/android/templates/module/java/template/android/src/{{ModuleIdAsFolder}}/{{ModuleNameCamel}}Module.java.ejs
@@ -1,6 +1,6 @@
/**
* This file was auto-generated by the Titanium Module SDK helper for Android
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/templates/module/kotlin/template/android/src/{{ModuleIdAsFolder}}/ExampleProxy.kt.ejs b/android/templates/module/kotlin/template/android/src/{{ModuleIdAsFolder}}/ExampleProxy.kt.ejs
index 623a20ac9f3..7a25418ef08 100644
--- a/android/templates/module/kotlin/template/android/src/{{ModuleIdAsFolder}}/ExampleProxy.kt.ejs
+++ b/android/templates/module/kotlin/template/android/src/{{ModuleIdAsFolder}}/ExampleProxy.kt.ejs
@@ -1,6 +1,6 @@
/**
* This file was auto-generated by the Titanium Module SDK helper for Android
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/templates/module/kotlin/template/android/src/{{ModuleIdAsFolder}}/{{ModuleNameCamel}}Module.kt.ejs b/android/templates/module/kotlin/template/android/src/{{ModuleIdAsFolder}}/{{ModuleNameCamel}}Module.kt.ejs
index 0861d703f0c..df28b627267 100644
--- a/android/templates/module/kotlin/template/android/src/{{ModuleIdAsFolder}}/{{ModuleNameCamel}}Module.kt.ejs
+++ b/android/templates/module/kotlin/template/android/src/{{ModuleIdAsFolder}}/{{ModuleNameCamel}}Module.kt.ejs
@@ -1,6 +1,6 @@
/**
* This file was auto-generated by the Titanium Module SDK helper for Android
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/bootstrap.js.ejs b/android/titanium/bootstrap.js.ejs
index 8a04b29df1c..1245bd33f09 100644
--- a/android/titanium/bootstrap.js.ejs
+++ b/android/titanium/bootstrap.js.ejs
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/bootstrap.lazymodule.js.ejs b/android/titanium/bootstrap.lazymodule.js.ejs
index 833adce2d8c..eafa53fbe17 100644
--- a/android/titanium/bootstrap.lazymodule.js.ejs
+++ b/android/titanium/bootstrap.lazymodule.js.ejs
@@ -4,7 +4,7 @@ if (!('__propertiesDefined__' in <%- name %>)) {
if (mod.children) {
for (const child of mod.children) {
let fullAPIName = child.proxyAttrs.fullAPIName;
- // Drop leading 'Tiatnium' if in full aAPI name
+ // Drop leading 'Titanium' if in full aAPI name
if (fullAPIName.startsWith('Titanium.')) {
fullAPIName = fullAPIName.slice(9);
}
@@ -42,4 +42,4 @@ _%>
_%>
}
<%- name %>.__propertiesDefined__ = true;
-return <%- name %>;
\ No newline at end of file
+return <%- name %>;
diff --git a/android/titanium/build.gradle b/android/titanium/build.gradle
index 383477d1487..2e78280442e 100644
--- a/android/titanium/build.gradle
+++ b/android/titanium/build.gradle
@@ -2,7 +2,7 @@ import com.android.build.gradle.tasks.ExternalNativeCleanTask
import groovy.json.JsonSlurper
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License.
* Please see the LICENSE included with this distribution for details.
@@ -44,7 +44,7 @@ android {
compileSdkVersion 33
defaultConfig {
minSdkVersion 21
- targetSdkVersion 33
+ targetSdkVersion 34
versionName tiBuildVersionString
versionCode tiBuildVersionCode
buildConfigField('int', 'VERSION_CODE', tiBuildVersionCode.toString())
@@ -74,7 +74,7 @@ android {
}
externalNativeBuild {
cmake {
- version '3.10.2'
+ version '3.22.1'
path "${projectDir}/../runtime/v8/src/native/CMakeLists.txt"
}
}
@@ -125,7 +125,7 @@ android {
}
// Downloads/extracts V8 library and creates a cmake file for it. To be executed before C/C++ "build" or "clean".
-task updateV8Library() {
+tasks.register('updateV8Library') {
def packageJson = new JsonSlurper().parse(file("${projectDir}/../package.json"))
def v8MakeFilePath = "${projectDir}/../runtime/v8/src/ndk-modules/libv8/V8Settings.cmake"
inputs.property 'v8.version', packageJson.v8.version
@@ -139,8 +139,8 @@ task updateV8Library() {
def v8MakeFile = file(v8MakeFilePath)
v8MakeFile.getParentFile().mkdirs()
v8MakeFile.text = [
- "set(LIBV8_VERSION \"${packageJson.v8.version}\")",
- "set(LIBV8_MODE \"${packageJson.v8.mode}\")"
+ "set(LIBV8_VERSION \"${packageJson.v8.version}\")",
+ "set(LIBV8_MODE \"${packageJson.v8.mode}\")"
].join('\n') + '\n'
// Download/install the V8 library referenced in our "package.json", if not already done.
@@ -152,24 +152,24 @@ task updateV8Library() {
}
}
preBuild.dependsOn updateV8Library
-tasks.withType(ExternalNativeCleanTask) {
+tasks.withType(ExternalNativeCleanTask).configureEach {
dependsOn updateV8Library
}
// Checks our Java code against our style guidelines and for common coding mistakes using "checkstyle.xml".
// Will trigger a build failure if any violations have been detected.
// Customize all the Checkstyle tasks
-tasks.withType(Checkstyle) {
+tasks.withType(Checkstyle).configureEach {
// Specify all files that should be checked
classpath = files()
source android.sourceSets.main.java.srcDirs
}
// Execute Checkstyle on all files
-task checkJavaStyle(type: Checkstyle) {
+tasks.register('checkJavaStyle', Checkstyle) {
// include '**/*.java'
}
// Execute Checkstyle on all modified files
-task checkstyleChanged(type: Checkstyle) {
+tasks.register('checkstyleChanged', Checkstyle) {
include getChangedFiles()
}
@@ -196,7 +196,7 @@ def getChangedFiles() {
// Performs a transpile/polyfill/rollup of our "titanium_mobile/common/Resources" directory tree's JS files,
// takes a V8 snapshot of rolled-up files, and then generates a C++ header file of that snapshot to be compiled-in.
// Note: This supports incremental builds. Only executes when JS files change or snapshot output file is missing.
-task snapshotTiCommonFiles() {
+tasks.register('snapshotTiCommonFiles') {
inputs.dir "${projectDir}/../../common/Resources"
inputs.file "${projectDir}/../../build/lib/builder.js"
inputs.file "${projectDir}/../../build/lib/android/index.js"
@@ -221,7 +221,7 @@ project.afterEvaluate {
// Runs our "prebuild.js" script before the C/C++ compile, but after Java compile. (Mid-build script?)
// Generates C/C++ files providing our Android-only JS files via byte arrays.
-tasks.withType(JavaCompile) {
+tasks.withType(JavaCompile).configureEach {
dependsOn checkJavaStyle
dependsOn snapshotTiCommonFiles
doLast {
@@ -254,7 +254,7 @@ dependencies {
implementation 'androidx.exifinterface:exifinterface:1.3.6'
implementation "androidx.fragment:fragment:${project.ext.tiAndroidXFragmentLibVersion}"
implementation 'androidx.media:media:1.6.0'
- implementation 'androidx.recyclerview:recyclerview:1.3.0'
+ implementation 'androidx.recyclerview:recyclerview:1.3.2'
implementation 'androidx.recyclerview:recyclerview-selection:1.1.0'
implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0'
implementation 'androidx.transition:transition:1.4.1'
@@ -281,7 +281,7 @@ dependencies {
implementation fileTree(dir: 'lib', include: ['*.jar'])
// CameraX
- def camerax_version = '1.2.2'
+ def camerax_version = '1.2.3'
implementation "androidx.camera:camera-core:$camerax_version"
implementation "androidx.camera:camera-camera2:$camerax_version"
implementation "androidx.camera:camera-video:$camerax_version"
diff --git a/android/titanium/libv8-services.js b/android/titanium/libv8-services.js
index 5645a67cff9..cd737d24ad3 100644
--- a/android/titanium/libv8-services.js
+++ b/android/titanium/libv8-services.js
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License.
* Please see the LICENSE included with this distribution for details.
@@ -125,7 +125,7 @@ async function generateSnapshot(v8SnapshotHeaderFilePath, rollupFileContent) {
}
// Delete snapshot blob.
- await fs.unlink(blobPath);
+ await fs.remove(blobPath);
}
// Generate 'V8Snapshots.h' from template
@@ -171,33 +171,26 @@ async function createSnapshot() {
// Requests our server to create snapshot of rolled-up "ti.main" in a C++ header file.
let wasSuccessful = false;
try {
- // Post rolled-up "ti.main" script to server and obtain a snapshot ID as a response.
- // We will send an HTTP request for the snapshot code later.
+ // Post rolled-up "ti.main" script to server and obtain the V8Snapshot.h as a response.
console.log('Attempting to request snapshot...');
- const snapshotUrl = 'http://v8-snapshot.appcelerator.com'; // TODO: Migrate to Github Artifacts once ready
+ const snapshotUrl = 'https://v8-snapshot.titaniumsdk.com/gen';
const packageJsonData = await loadPackageJson();
const requestOptions = {
body: {
v8: packageJsonData.v8.version,
script: rollupFileContent
},
- json: true
+ json: true,
+ resolveWithFullResponse: true,
+ timeout: 60 * 1000 * 5
};
- const snapshotId = await request.post(snapshotUrl, requestOptions);
- // Request generated snapshot from server using `snapshotId` obtained from server above.
const MAX_ATTEMPTS = 20; // Time-out after two minutes.
let attempts;
for (attempts = 1; attempts <= MAX_ATTEMPTS; attempts++) {
- const response = await request.get(`${snapshotUrl}/snapshot/${snapshotId}`, {
- simple: false,
- resolveWithFullResponse: true
- });
+ const response = await request.post(snapshotUrl, requestOptions);
if (response.statusCode === 200) {
-
- // Server has finished creating a C++ header file containing all V8 snapshots.
- // Write it to file and flag that we're done.
console.log('Writing snapshot...');
await fs.writeFile(v8SnapshotHeaderFilePath, response.body);
wasSuccessful = true;
@@ -208,7 +201,6 @@ async function createSnapshot() {
console.log('Waiting for snapshot generation...');
await new Promise(resolve => setTimeout(resolve, 6000));
} else {
-
// Give up if received an unexpected response.
console.error('Could not generate snapshot, skipping...');
break;
@@ -230,7 +222,7 @@ async function createSnapshot() {
process.exit(1);
}
- // Generaet an empty C++ header. Allows build to succeed and app will load "ti.main.js" normally instead.
+ // Generate an empty C++ header. Allows build to succeed and app will load "ti.main.js" normally instead.
await fs.writeFile(v8SnapshotHeaderFilePath, '// Failed to generate V8 snapshots. See build log.');
}
}
@@ -285,7 +277,7 @@ function createSnapshotThenExit() {
/**
* Checks if the V8 library referenced by the "titanium_mobile/android/package.json" file is installed.
- * If not, then this function will automatically download/install it. Function will do nothing if alredy installed.
+ * If not, then this function will automatically download/install it. Function will do nothing if already installed.
*
* Will exit the process when the async operation ends. Intended to be called from the command line.
*/
diff --git a/android/titanium/prebuild.js b/android/titanium/prebuild.js
index 77e3fcb11d8..07a62e2f2b3 100644
--- a/android/titanium/prebuild.js
+++ b/android/titanium/prebuild.js
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License.
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/kroll/KrollDict.java b/android/titanium/src/java/org/appcelerator/kroll/KrollDict.java
index daeaafb9e3a..ef9e6fddf90 100644
--- a/android/titanium/src/java/org/appcelerator/kroll/KrollDict.java
+++ b/android/titanium/src/java/org/appcelerator/kroll/KrollDict.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/kroll/KrollModule.java b/android/titanium/src/java/org/appcelerator/kroll/KrollModule.java
index 8b4a7d22939..3c250804bcf 100644
--- a/android/titanium/src/java/org/appcelerator/kroll/KrollModule.java
+++ b/android/titanium/src/java/org/appcelerator/kroll/KrollModule.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/kroll/KrollModuleInfo.java b/android/titanium/src/java/org/appcelerator/kroll/KrollModuleInfo.java
index d639b300c4b..a9d5cb17ead 100644
--- a/android/titanium/src/java/org/appcelerator/kroll/KrollModuleInfo.java
+++ b/android/titanium/src/java/org/appcelerator/kroll/KrollModuleInfo.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/kroll/KrollNativeConverter.java b/android/titanium/src/java/org/appcelerator/kroll/KrollNativeConverter.java
index 0891a5367c4..33d1e0eac96 100644
--- a/android/titanium/src/java/org/appcelerator/kroll/KrollNativeConverter.java
+++ b/android/titanium/src/java/org/appcelerator/kroll/KrollNativeConverter.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/kroll/KrollPropertyChange.java b/android/titanium/src/java/org/appcelerator/kroll/KrollPropertyChange.java
index f5788a94349..198dc2f592f 100644
--- a/android/titanium/src/java/org/appcelerator/kroll/KrollPropertyChange.java
+++ b/android/titanium/src/java/org/appcelerator/kroll/KrollPropertyChange.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/kroll/KrollProxy.java b/android/titanium/src/java/org/appcelerator/kroll/KrollProxy.java
index f50e1d12a6f..110371b523b 100644
--- a/android/titanium/src/java/org/appcelerator/kroll/KrollProxy.java
+++ b/android/titanium/src/java/org/appcelerator/kroll/KrollProxy.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
@@ -513,7 +513,7 @@ public void extend(KrollDict options)
Object oldValue = properties.get(name);
Object value = options.get(name);
- // dont just fire the change event, make sure we set the property back on the KrollObject
+ // don't just fire the change event, make sure we set the property back on the KrollObject
// since the property change may not be driven from JS (KrollObject->Java proxy)
setProperty(name, value);
diff --git a/android/titanium/src/java/org/appcelerator/kroll/KrollProxyListener.java b/android/titanium/src/java/org/appcelerator/kroll/KrollProxyListener.java
index 6cf53276aca..7b01f959f7e 100644
--- a/android/titanium/src/java/org/appcelerator/kroll/KrollProxyListener.java
+++ b/android/titanium/src/java/org/appcelerator/kroll/KrollProxyListener.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/ITiAppInfo.java b/android/titanium/src/java/org/appcelerator/titanium/ITiAppInfo.java
index 2a8236efa05..a2dba973523 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/ITiAppInfo.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/ITiAppInfo.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
@@ -15,7 +15,6 @@ public interface ITiAppInfo {
String getCopyright();
String getDescription();
String getIcon();
- boolean isAnalyticsEnabled();
String getGUID();
boolean isFullscreen();
String getDeployType();
diff --git a/android/titanium/src/java/org/appcelerator/titanium/TiActivity.java b/android/titanium/src/java/org/appcelerator/titanium/TiActivity.java
index c30b1b9ac59..01848f332c2 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/TiActivity.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/TiActivity.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/TiActivitySupportHelpers.java b/android/titanium/src/java/org/appcelerator/titanium/TiActivitySupportHelpers.java
index 5a43a28d500..3906c1b19f9 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/TiActivitySupportHelpers.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/TiActivitySupportHelpers.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/TiActivityWindow.java b/android/titanium/src/java/org/appcelerator/titanium/TiActivityWindow.java
index 9ab42591d34..030f239f876 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/TiActivityWindow.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/TiActivityWindow.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/TiActivityWindows.java b/android/titanium/src/java/org/appcelerator/titanium/TiActivityWindows.java
index 26859c19866..e0021b9ce28 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/TiActivityWindows.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/TiActivityWindows.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/TiApplication.java b/android/titanium/src/java/org/appcelerator/titanium/TiApplication.java
index b1d3d9223bb..cbaef3950dd 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/TiApplication.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/TiApplication.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
@@ -14,6 +14,7 @@
import android.content.Intent;
import android.content.IntentFilter;
import android.content.res.Configuration;
+import android.os.Build;
import android.os.Looper;
import android.os.SystemClock;
import android.util.DisplayMetrics;
@@ -99,7 +100,6 @@ public abstract class TiApplication extends Application implements KrollApplicat
protected ITiAppInfo appInfo;
protected TiStylesheet stylesheet;
protected HashMap> modules;
- protected String[] filteredAnalyticsEvents;
public static AtomicBoolean isActivityTransition = new AtomicBoolean(false);
protected static ArrayList activityTransitionListeners = new ArrayList<>();
@@ -738,11 +738,6 @@ public KrollProxy unregisterProxy(String proxyId)
return proxy;
}
- public boolean isAnalyticsEnabled()
- {
- return false;
- }
-
/**
* Determines if Titanium's JavaScript runtime should run on the main UI thread or not
* based on the "tiapp.xml" property "run-on-main-thread".
@@ -755,26 +750,6 @@ public boolean runOnMainThread()
return true;
}
- public void setFilterAnalyticsEvents(String[] events)
- {
- filteredAnalyticsEvents = events;
- }
-
- public boolean isAnalyticsFiltered(String eventName)
- {
- if (filteredAnalyticsEvents == null) {
- return false;
- }
-
- for (int i = 0; i < filteredAnalyticsEvents.length; ++i) {
- String currentName = filteredAnalyticsEvents[i];
- if (eventName.equals(currentName)) {
- return true;
- }
- }
- return false;
- }
-
@Override
public String getDeployType()
{
@@ -987,7 +962,13 @@ public void onReceive(Context context, Intent intent)
}
};
- registerReceiver(localeReceiver, new IntentFilter(Intent.ACTION_LOCALE_CHANGED));
+ if (Build.VERSION.SDK_INT > Build.VERSION_CODES.TIRAMISU
+ && TiApplication.getInstance().getApplicationInfo().targetSdkVersion > Build.VERSION_CODES.TIRAMISU) {
+ int receiverFlags = Context.RECEIVER_EXPORTED;
+ registerReceiver(localeReceiver, new IntentFilter(Intent.ACTION_LOCALE_CHANGED), receiverFlags);
+ } else {
+ registerReceiver(localeReceiver, new IntentFilter(Intent.ACTION_LOCALE_CHANGED));
+ }
}
private void stopLocaleMonitor()
diff --git a/android/titanium/src/java/org/appcelerator/titanium/TiApplicationLifecycle.java b/android/titanium/src/java/org/appcelerator/titanium/TiApplicationLifecycle.java
index 38efa4f561e..13443d124d1 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/TiApplicationLifecycle.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/TiApplicationLifecycle.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
@@ -10,8 +10,6 @@
import android.app.Application;
import android.os.Bundle;
-import com.appcelerator.aps.APSAnalytics;
-
import org.appcelerator.kroll.KrollModule;
public class TiApplicationLifecycle implements Application.ActivityLifecycleCallbacks
@@ -50,11 +48,6 @@ public void onActivityStarted(Activity activity)
}
appModule.fireEvent(TiC.EVENT_RESUMED, null);
}
-
- // Post analytics for this event, if enabled.
- if (this.tiApp.isAnalyticsEnabled()) {
- APSAnalytics.getInstance().sendAppForegroundEvent();
- }
}
// Increment number of "started" activities. These are activities that are currently in the foreground.
@@ -76,11 +69,6 @@ public void onActivityStopped(Activity activity)
appModule.fireEvent(TiC.EVENT_PAUSE, null);
appModule.fireEvent(TiC.EVENT_PAUSED, null);
}
-
- // Post analytics for this event, if enabled.
- if (this.tiApp.isAnalyticsEnabled()) {
- APSAnalytics.getInstance().sendAppBackgroundEvent();
- }
}
// Decrement count of started/visible activities.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/TiBaseActivity.java b/android/titanium/src/java/org/appcelerator/titanium/TiBaseActivity.java
index 4f168e70d2f..8421b066570 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/TiBaseActivity.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/TiBaseActivity.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
@@ -34,6 +34,7 @@
import org.appcelerator.titanium.util.TiActivityResultHandler;
import org.appcelerator.titanium.util.TiActivitySupport;
import org.appcelerator.titanium.util.TiActivitySupportHelper;
+import org.appcelerator.titanium.util.TiColorHelper;
import org.appcelerator.titanium.util.TiConvert;
import org.appcelerator.titanium.util.TiLocaleManager;
import org.appcelerator.titanium.util.TiMenuSupport;
@@ -46,6 +47,8 @@
import org.appcelerator.titanium.view.TiInsetsProvider;
import android.app.Activity;
+
+import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatActivity;
import android.app.Dialog;
import android.content.Context;
@@ -67,6 +70,9 @@
import androidx.appcompat.widget.Toolbar;
import androidx.core.app.ActivityCompat;
+import android.text.Spannable;
+import android.text.SpannableStringBuilder;
+import android.text.style.ForegroundColorSpan;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
@@ -338,6 +344,7 @@ protected void updateTitle()
if (window.hasProperty(TiC.PROPERTY_TITLE)) {
String oldTitle = (String) getTitle();
String newTitle = TiConvert.toString(window.getProperty(TiC.PROPERTY_TITLE));
+ int colorInt = -1;
if (oldTitle == null) {
oldTitle = "";
@@ -347,12 +354,32 @@ protected void updateTitle()
newTitle = "";
}
+ if (window.hasProperty(TiC.PROPERTY_TITLE_ATTRIBUTES)) {
+ KrollDict innerAttributes = window.getProperties().getKrollDict(TiC.PROPERTY_TITLE_ATTRIBUTES);
+ colorInt = TiColorHelper.parseColor(
+ TiConvert.toString(innerAttributes.getString(TiC.PROPERTY_COLOR)), this);
+ }
+
if (!newTitle.equals(oldTitle)) {
final String fnewTitle = newTitle;
+ final int finalColorInt = colorInt;
runOnUiThread(new Runnable() {
public void run()
{
setTitle(fnewTitle);
+
+ ActionBar actionBar = getSupportActionBar();
+ if (actionBar != null) {
+ if (finalColorInt != -1) {
+ SpannableStringBuilder ssb;
+ ssb = new SpannableStringBuilder(fnewTitle);
+ ssb.setSpan(new ForegroundColorSpan(finalColorInt),
+ 0, ssb.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE);
+ actionBar.setTitle(ssb);
+ } else {
+ actionBar.setTitle(fnewTitle);
+ }
+ }
}
});
}
@@ -1575,7 +1602,7 @@ protected void onDestroy()
// "isFinishing" will return true if the Android OS won't restore this destroyed activity later.
// This happens when finish() method is called of end-user back navigates out of the activity.
- // Note: Will breturn false if system intends to restore the activity later, which happens if
+ // Note: Will return false if system intends to restore the activity later, which happens if
// system setting "Don't keep activities" is enabled or "Background process limit" was exceeded.
boolean isFinishing = isFinishing();
diff --git a/android/titanium/src/java/org/appcelerator/titanium/TiBaseService.java b/android/titanium/src/java/org/appcelerator/titanium/TiBaseService.java
index d47b35faa9f..644e14bd3cc 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/TiBaseService.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/TiBaseService.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
@@ -150,7 +150,7 @@ public void unsubscribe()
/**
* Called just before the JavaScript runtime is terminated.
*
- * Stops the service since the JavaScript file binded to it can no longer control it.
+ * Stops the service since the JavaScript file bound to it can no longer control it.
* @param runtime The runtime instance that is about to be terminated/disposed.
*/
@Override
diff --git a/android/titanium/src/java/org/appcelerator/titanium/TiBlob.java b/android/titanium/src/java/org/appcelerator/titanium/TiBlob.java
index d07f45c9f30..aa8c61cbf36 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/TiBlob.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/TiBlob.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
@@ -59,6 +59,7 @@ public class TiBlob extends KrollProxy
private int height;
private int uprightWidth;
private int uprightHeight;
+ private Object rotation;
// This handles the memory cache of images.
private final TiBlobLruCache mMemoryCache = TiBlobLruCache.getInstance();
@@ -74,6 +75,7 @@ private TiBlob(int type, Object data, String mimetype)
this.height = 0;
this.uprightWidth = 0;
this.uprightHeight = 0;
+ this.rotation = KrollRuntime.UNDEFINED;
}
/**
@@ -89,7 +91,7 @@ public static TiBlob blobFromString(String data)
/**
* Creates a blob from a file and sets a mimeType based on the file name.
* @param file the file used to create blob.
- * @return new instane of TiBlob.
+ * @return new instance of TiBlob.
*/
public static TiBlob blobFromFile(TiBaseFile file)
{
@@ -239,6 +241,7 @@ public void loadBitmapInfo()
this.height = opts.outHeight;
int rotation = getImageOrientation();
+ this.rotation = rotation;
if ((rotation == 90) || (rotation == 270)) {
this.uprightWidth = opts.outHeight;
this.uprightHeight = opts.outWidth;
@@ -411,6 +414,12 @@ public int getUprightWidth()
return this.uprightWidth;
}
+ @Kroll.getProperty
+ public Object getRotation()
+ {
+ return this.rotation;
+ }
+
@Kroll.getProperty
public int getSize()
{
diff --git a/android/titanium/src/java/org/appcelerator/titanium/TiC.java b/android/titanium/src/java/org/appcelerator/titanium/TiC.java
index b4e525c55e2..040d9a003fd 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/TiC.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/TiC.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
@@ -142,6 +142,8 @@ public class TiC
public static final String EVENT_PROPERTY_TAB = "tab";
public static final String EVENT_PROPERTY_THUMB_OFFSET = "thumbOffset";
public static final String EVENT_PROPERTY_THUMB_SIZE = "thumbSize";
+ public static final String PROPERTY_THUMB_COLOR = "thumbColor";
+ public static final String PROPERTY_ON_THUMB_COLOR = "onThumbColor";
public static final String EVENT_PROPERTY_TYPE = "type";
public static final String EVENT_PROPERTY_VELOCITY = "velocity";
public static final String EVENT_PROPERTY_X = "x";
@@ -228,6 +230,7 @@ public class TiC
public static final String PROPERTY_ACCESSIBILITY_HINT = "accessibilityHint";
public static final String PROPERTY_ACCESSIBILITY_LABEL = "accessibilityLabel";
public static final String PROPERTY_ACCESSIBILITY_VALUE = "accessibilityValue";
+ public static final String PROPERTY_ACCESSIBILITY_DISABLE_LONG = "accessibilityDisableLongPress";
public static final String PROPERTY_ACCESSORY_TYPE = "accessoryType";
public static final String PROPERTY_ACTION = "action";
public static final String PROPERTY_ACTION_VIEW = "actionView";
@@ -292,7 +295,9 @@ public class TiC
public static final String PROPERTY_BACKGROUND_SELECTED_COLOR = "backgroundSelectedColor";
public static final String PROPERTY_BACKGROUND_SELECTED_IMAGE = "backgroundSelectedImage";
public static final String PROPERTY_BADGE = "badge";
- public static final String PROPERTY_BADGE_COLOR = "badgeColor";
+ public static final String PROPERTY_BADGE_COLOR = "badgeColor"; // DEPRECATED: Superseded by PROPERTY_BADGE_BACKGROUND_COLOR.
+ public static final String PROPERTY_BADGE_BACKGROUND_COLOR = "badgeBackgroundColor";
+ public static final String PROPERTY_BADGE_TEXT_COLOR = "badgeTextColor";
public static final String PROPERTY_TARGET_ITEM_INDEX = "targetItemIndex";
public static final String PROPERTY_TARGET_SECTION = "targetSection";
public static final String PROPERTY_TARGET_SECTION_INDEX = "targetSectionIndex";
@@ -300,6 +305,7 @@ public class TiC
public static final String PROPERTY_TOUCH_FEEDBACK_COLOR = "touchFeedbackColor";
public static final String PROPERTY_TRANSITION_NAME = "transitionName";
public static final String PROPERTY_BAR_COLOR = "barColor";
+ public static final String PROPERTY_STATUS_BAR_COLOR = "statusBarColor";
public static final String PROPERTY_BASE_URL = "baseUrl";
public static final String PROPERTY_BASE_URL_WEBVIEW = "baseURL";
public static final String PROPERTY_BIG_TEXT = "bigText";
@@ -317,6 +323,7 @@ public class TiC
public static final String PROPERTY_BORDER_WIDTH = "borderWidth";
public static final String PROPERTY_BOTTOM = "bottom";
public static final String PROPERTY_BROTHER = "brother";
+ public static final String PROPERTY_BREAK_STRATEGY = "breakStrategy";
public static final String PROPERTY_BUTTON = "button";
public static final String PROPERTY_BUBBLE_PARENT = "bubbleParent";
public static final String PROPERTY_BUBBLES = "bubbles";
@@ -458,6 +465,7 @@ public class TiC
public static final String PROPERTY_FRAGMENT_ONLY = "fragmentOnly";
public static final String PROPERTY_HIDDEN_BEHAVIOR = "hiddenBehavior";
public static final String PROPERTY_HIDES_BACK_BUTTON = "hidesBackButton";
+ public static final String PROPERTY_HYPHENATION_FREQUENCY = "hyphenationFrequency";
public static final String PROPERTY_FREQUENCY = "frequency";
public static final String PROPERTY_FRIEND = "friend";
public static final String PROPERTY_FROM = "from";
@@ -553,6 +561,7 @@ public class TiC
public static final String PROPERTY_MAX_AGE = "maxAge";
public static final String PROPERTY_MAX_CLASSNAME = "maxClassname";
public static final String PROPERTY_MAX_ELEVATION = "maxElevation";
+ public static final String PROPERTY_MAX_IMAGES = "maxImages";
public static final String PROPERTY_MAX_LENGTH = "maxLength";
public static final String PROPERTY_MAX_LINES = "maxLines";
public static final String PROPERTY_MAX_ROW_HEIGHT = "maxRowHeight";
@@ -603,6 +612,7 @@ public class TiC
public static final String PROPERTY_ON_RESTART = "onRestart";
public static final String PROPERTY_ON_PAUSE = "onPause";
public static final String PROPERTY_ON_STOP = "onStop";
+ public static final String PROPERTY_ON_TINT_COLOR = "onTintColor";
public static final String PROPERTY_TLS_VERSION = "tlsVersion";
public static final String PROPERTY_ON_DESTROY = "onDestroy";
public static final String PROPERTY_ON_CREATE_WINDOW = "onCreateWindow";
@@ -632,6 +642,7 @@ public class TiC
public static final String PROPERTY_PASSWORD = "password";
public static final String PROPERTY_PASSWORD_MASK = "passwordMask";
public static final String PROPERTY_PATH = "path";
+ public static final String PROPERTY_PATH_ONLY = "pathOnly";
public static final String PROPERTY_PERSISTENT = "persistent";
public static final String PROPERTY_PHONE = "phone";
public static final String PROPERTY_PIN_IMAGE = "pinImage";
@@ -685,6 +696,7 @@ public class TiC
public static final String PROPERTY_SCROLL_ENABLED = "scrollEnabled";
public static final String PROPERTY_SCROLL_TYPE = "scrollType";
public static final String PROPERTY_SCROLLABLE = "scrollable";
+ public static final String PROPERTY_SCROLLBARS = "scrollbars";
public static final String PROPERTY_SEARCH = "search";
public static final String PROPERTY_SEARCH_AS_CHILD = "searchAsChild";
public static final String PROPERTY_SEARCH_TEXT = "searchText";
@@ -749,8 +761,10 @@ public class TiC
public static final String PROPERTY_SUPPORT_TOOLBAR = "supportToolbar";
public static final String PROPERTY_TABS = "tabs";
public static final String PROPERTY_TAB_OPEN = "tabOpen";
+ public static final String PROPERTY_TAB_BAR_VISIBLE = "tabBarVisible";
public static final String PROPERTY_TABS_BACKGROUND_COLOR = "tabsBackgroundColor";
public static final String PROPERTY_TABS_BACKGROUND_SELECTED_COLOR = "tabsBackgroundSelectedColor";
+ public static final String PROPERTY_TAB_MODE = "tabMode";
public static final String PROPERTY_TAG = "tag";
public static final String PROPERTY_TEMPLATE = "template";
public static final String PROPERTY_TEMPLATES = "templates";
@@ -767,6 +781,7 @@ public class TiC
public static final String PROPERTY_TINT = "tint";
public static final String PROPERTY_TINT_COLOR = "tintColor";
public static final String PROPERTY_TITLE = "title";
+ public static final String PROPERTY_TITLE_ATTRIBUTES = "titleAttributes";
public static final String PROPERTY_TITLE_COLOR = "titleColor";
public static final String PROPERTY_TITLE_CONDENSED = "titleCondensed";
public static final String PROPERTY_TITLEID = "titleid";
diff --git a/android/titanium/src/java/org/appcelerator/titanium/TiDimension.java b/android/titanium/src/java/org/appcelerator/titanium/TiDimension.java
index e32fa93137b..15b0482677c 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/TiDimension.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/TiDimension.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/TiExceptionHandler.java b/android/titanium/src/java/org/appcelerator/titanium/TiExceptionHandler.java
index 3defeaa7fc4..19b298815b6 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/TiExceptionHandler.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/TiExceptionHandler.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/TiFileProxy.java b/android/titanium/src/java/org/appcelerator/titanium/TiFileProxy.java
index a34ab1ec8d6..ef15fb744fc 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/TiFileProxy.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/TiFileProxy.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/TiLaunchActivity.java b/android/titanium/src/java/org/appcelerator/titanium/TiLaunchActivity.java
index 3bedde8b31d..0e0f0b44c2f 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/TiLaunchActivity.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/TiLaunchActivity.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/TiLifecycle.java b/android/titanium/src/java/org/appcelerator/titanium/TiLifecycle.java
index 0b94e91140b..918744eb043 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/TiLifecycle.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/TiLifecycle.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/TiPoint.java b/android/titanium/src/java/org/appcelerator/titanium/TiPoint.java
index 943a1ec2945..584727e5d07 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/TiPoint.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/TiPoint.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/TiProperties.java b/android/titanium/src/java/org/appcelerator/titanium/TiProperties.java
index be87b0653d2..e1283921d14 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/TiProperties.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/TiProperties.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
@@ -38,7 +38,7 @@ public TiProperties(Context context, String name, boolean clear)
{
preferences = context.getSharedPreferences(name, Context.MODE_PRIVATE);
if (clear) {
- preferences.edit().clear().commit();
+ preferences.edit().clear().apply();
}
}
@@ -103,7 +103,7 @@ public void setString(String key, String value)
} else {
editor.putString(key, value);
}
- editor.commit();
+ editor.apply();
}
/**
@@ -160,7 +160,7 @@ public void setInt(String key, int value)
SharedPreferences.Editor editor = preferences.edit();
editor.putInt(key, value);
- editor.commit();
+ editor.apply();
}
/**
@@ -208,7 +208,7 @@ public void setDouble(String key, double value)
SharedPreferences.Editor editor = preferences.edit();
editor.putString(key, value + "");
- editor.commit();
+ editor.apply();
}
/**
@@ -266,7 +266,7 @@ public void setBool(String key, boolean value)
SharedPreferences.Editor editor = preferences.edit();
editor.putBoolean(key, value);
- editor.commit();
+ editor.apply();
}
/**
@@ -311,7 +311,7 @@ public void setList(String key, String[] value)
}
editor.putInt(key + ".length", value.length);
- editor.commit();
+ editor.apply();
}
/**
@@ -377,7 +377,7 @@ public void removeProperty(String key)
if (preferences.contains(key)) {
SharedPreferences.Editor editor = preferences.edit();
editor.remove(key);
- editor.commit();
+ editor.apply();
}
}
@@ -386,7 +386,7 @@ public void removeProperty(String key)
*/
public void removeAllProperties()
{
- preferences.edit().clear().commit();
+ preferences.edit().clear().apply();
}
public static void setSystemProperties(JSONObject prop)
diff --git a/android/titanium/src/java/org/appcelerator/titanium/TiRootActivity.java b/android/titanium/src/java/org/appcelerator/titanium/TiRootActivity.java
index c12b6a62b16..7603287301b 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/TiRootActivity.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/TiRootActivity.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
@@ -186,7 +186,7 @@ protected void onCreate(Bundle savedInstanceState)
// Recreate this activity on the current task.
if (isActivityForResult) {
- // This activtiy was created via startActivityForResult().
+ // This activity was created via startActivityForResult().
// "Forward" the result handling to the next activity we're about to start-up.
Intent relaunchIntent = newIntent;
if (relaunchIntent == null) {
@@ -304,9 +304,9 @@ public void onDisposing(KrollRuntime runtime)
}
});
if (KrollRuntime.getActivityRefCount() > 0) {
- Activity currentActvitiy = getTiApp().getCurrentActivity();
- if (currentActvitiy != null) {
- currentActvitiy.finishAffinity();
+ Activity currentActivity = getTiApp().getCurrentActivity();
+ if (currentActivity != null) {
+ currentActivity.finishAffinity();
}
TiApplication.terminateActivityStack();
} else {
diff --git a/android/titanium/src/java/org/appcelerator/titanium/TiStylesheet.java b/android/titanium/src/java/org/appcelerator/titanium/TiStylesheet.java
index cced378c5ed..61c9e47de19 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/TiStylesheet.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/TiStylesheet.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/TiTranslucentActivity.java b/android/titanium/src/java/org/appcelerator/titanium/TiTranslucentActivity.java
index ec67d7920b9..4c3898ac6e1 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/TiTranslucentActivity.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/TiTranslucentActivity.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/io/TiBaseFile.java b/android/titanium/src/java/org/appcelerator/titanium/io/TiBaseFile.java
index 6780fd9ca1f..1c999464db9 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/io/TiBaseFile.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/io/TiBaseFile.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/io/TiContentFile.java b/android/titanium/src/java/org/appcelerator/titanium/io/TiContentFile.java
index 0360f574d8a..1268e5ed2db 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/io/TiContentFile.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/io/TiContentFile.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/io/TiFile.java b/android/titanium/src/java/org/appcelerator/titanium/io/TiFile.java
index 58e10388990..bcd12aca1b3 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/io/TiFile.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/io/TiFile.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
@@ -100,7 +100,7 @@ public boolean isWriteable()
/**
* Attempts to create a directory named by the trailing filename of this file.
* @param recursive whether to recursively create any missing parent directories in the path.
- * @return true if directory was sucessfully created, false otherwise.
+ * @return true if directory was successfully created, false otherwise.
*/
@Override
public boolean createDirectory(boolean recursive)
diff --git a/android/titanium/src/java/org/appcelerator/titanium/io/TiFileFactory.java b/android/titanium/src/java/org/appcelerator/titanium/io/TiFileFactory.java
index ff2f2a5f6df..9d609af38c7 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/io/TiFileFactory.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/io/TiFileFactory.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/io/TiFileProvider.java b/android/titanium/src/java/org/appcelerator/titanium/io/TiFileProvider.java
index 3377141c721..79f935db4e0 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/io/TiFileProvider.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/io/TiFileProvider.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/io/TiInputStreamWrapper.java b/android/titanium/src/java/org/appcelerator/titanium/io/TiInputStreamWrapper.java
index f635f19f87d..6ee4507532b 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/io/TiInputStreamWrapper.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/io/TiInputStreamWrapper.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/io/TiMockFile.java b/android/titanium/src/java/org/appcelerator/titanium/io/TiMockFile.java
index 4bbdcd69b39..4cc717de02f 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/io/TiMockFile.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/io/TiMockFile.java
@@ -1,5 +1,5 @@
/*
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/io/TiResourceFile.java b/android/titanium/src/java/org/appcelerator/titanium/io/TiResourceFile.java
index 615c8ef7e4c..6749c42fe30 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/io/TiResourceFile.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/io/TiResourceFile.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/io/TiStream.java b/android/titanium/src/java/org/appcelerator/titanium/io/TiStream.java
index f6ee32aceeb..087a17369a3 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/io/TiStream.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/io/TiStream.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
@@ -15,8 +15,8 @@
public interface TiStream {
/**
* Implementing classes should use this method to read data into a buffer.
- * Refer to Stream Spec for more details.
- * @param args arguments passed in. Must match the arguments listed in the Stream Spec .
+ * Refer to Stream Spec for more details.
+ * @param args arguments passed in. Must match the arguments listed in the Stream Spec.
* @return number of bytes read, -1 if no data is available.
* @throws Exception on error.
*/
@@ -34,8 +34,8 @@ public interface TiStream {
/**
* Implementing classes should use this method to write data from a buffer to this stream.
- * Refer to Stream Spec for more details.
- * @param args arguments passed in. Must match the arguments listed in the Stream Spec .
+ * Refer to Stream Spec for more details.
+ * @param args arguments passed in. Must match the arguments listed in the Stream Spec.
* @return number of bytes written, -1 if no data is available.
* @throws Exception on error.
*/
diff --git a/android/titanium/src/java/org/appcelerator/titanium/proxy/ActionBarProxy.java b/android/titanium/src/java/org/appcelerator/titanium/proxy/ActionBarProxy.java
index c05c09e4c64..e49244cc65c 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/proxy/ActionBarProxy.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/proxy/ActionBarProxy.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
@@ -7,14 +7,17 @@
package org.appcelerator.titanium.proxy;
import android.graphics.drawable.Drawable;
+
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatActivity;
+
import org.appcelerator.kroll.KrollProxy;
import org.appcelerator.kroll.annotations.Kroll;
import org.appcelerator.kroll.common.Log;
import org.appcelerator.titanium.TiC;
import org.appcelerator.titanium.util.TiConvert;
import org.appcelerator.titanium.util.TiUIHelper;
+import org.appcelerator.titanium.view.TiDrawableReference;
@SuppressWarnings("deprecation")
@Kroll.proxy(propertyAccessors = { TiC.PROPERTY_ON_HOME_ICON_ITEM_SELECTED, TiC.PROPERTY_CUSTOM_VIEW })
@@ -23,7 +26,7 @@ public class ActionBarProxy extends KrollProxy
private static final String TAG = "ActionBarProxy";
private static final String ACTION_BAR_NOT_AVAILABLE_MESSAGE = "ActionBar is not enabled";
- private ActionBar actionBar;
+ private final ActionBar actionBar;
private boolean showTitleEnabled = true;
public ActionBarProxy(AppCompatActivity activity)
@@ -33,7 +36,7 @@ public ActionBarProxy(AppCompatActivity activity)
// Guard against calls to ActionBar made before inflating the ActionBarView
if (actionBar != null) {
actionBar.setDisplayOptions(ActionBar.DISPLAY_USE_LOGO | ActionBar.DISPLAY_SHOW_HOME
- | ActionBar.DISPLAY_SHOW_TITLE);
+ | ActionBar.DISPLAY_SHOW_TITLE);
} else {
Log.w(TAG, "Trying to get a reference to ActionBar before its container was inflated.");
}
@@ -76,16 +79,6 @@ public void setHomeButtonEnabled(boolean homeButtonEnabled)
}
}
- @Kroll.setProperty
- public void setNavigationMode(int navigationMode)
- {
- if (actionBar != null) {
- actionBar.setNavigationMode(navigationMode);
- } else {
- Log.w(TAG, ACTION_BAR_NOT_AVAILABLE_MESSAGE);
- }
- }
-
@Kroll.setProperty
public void setBackgroundImage(String url)
{
@@ -102,27 +95,17 @@ public void setBackgroundImage(String url)
actionBar.setDisplayShowTitleEnabled(showTitleEnabled);
actionBar.setBackgroundDrawable(backgroundImage);
- }
- }
-
- @Kroll.setProperty
- public void setTitle(String title)
- {
- if (actionBar != null) {
- actionBar.setTitle(title);
- } else {
- Log.w(TAG, ACTION_BAR_NOT_AVAILABLE_MESSAGE);
- }
- }
-
- @Kroll.setProperty
- public void setSubtitle(String subTitle)
- {
- if (actionBar != null) {
- actionBar.setDisplayShowTitleEnabled(true);
- actionBar.setSubtitle(subTitle);
} else {
- Log.w(TAG, ACTION_BAR_NOT_AVAILABLE_MESSAGE);
+ // fallback check with TiDrawableReference
+ TiDrawableReference source = TiDrawableReference.fromUrl(this, url);
+ if (source.getDrawable() != null) {
+ actionBar.setDisplayShowTitleEnabled(!showTitleEnabled);
+ actionBar.setDisplayShowTitleEnabled(showTitleEnabled);
+ actionBar.setBackgroundDrawable(source.getDrawable());
+ } else {
+ // fail - show error
+ Log.e(TAG, "Image " + url + " not found");
+ }
}
}
@@ -152,6 +135,17 @@ public String getSubtitle()
return (String) actionBar.getSubtitle();
}
+ @Kroll.setProperty
+ public void setSubtitle(String subTitle)
+ {
+ if (actionBar != null) {
+ actionBar.setDisplayShowTitleEnabled(true);
+ actionBar.setSubtitle(subTitle);
+ } else {
+ Log.w(TAG, ACTION_BAR_NOT_AVAILABLE_MESSAGE);
+ }
+ }
+
@Kroll.getProperty
public String getTitle()
{
@@ -161,13 +155,33 @@ public String getTitle()
return (String) actionBar.getTitle();
}
+ @Kroll.setProperty
+ public void setTitle(String title)
+ {
+ if (actionBar != null) {
+ actionBar.setTitle(title);
+ } else {
+ Log.w(TAG, ACTION_BAR_NOT_AVAILABLE_MESSAGE);
+ }
+ }
+
@Kroll.getProperty
public int getNavigationMode()
{
if (actionBar == null) {
return 0;
}
- return (int) actionBar.getNavigationMode();
+ return actionBar.getNavigationMode();
+ }
+
+ @Kroll.setProperty
+ public void setNavigationMode(int navigationMode)
+ {
+ if (actionBar != null) {
+ actionBar.setNavigationMode(navigationMode);
+ } else {
+ Log.w(TAG, ACTION_BAR_NOT_AVAILABLE_MESSAGE);
+ }
}
@Kroll.method
diff --git a/android/titanium/src/java/org/appcelerator/titanium/proxy/ActivityProxy.java b/android/titanium/src/java/org/appcelerator/titanium/proxy/ActivityProxy.java
index c7113b3d27d..8628b135417 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/proxy/ActivityProxy.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/proxy/ActivityProxy.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/proxy/ColorProxy.java b/android/titanium/src/java/org/appcelerator/titanium/proxy/ColorProxy.java
index 1ca69af0ee2..002e2b41a60 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/proxy/ColorProxy.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/proxy/ColorProxy.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/proxy/DecorViewProxy.java b/android/titanium/src/java/org/appcelerator/titanium/proxy/DecorViewProxy.java
index f22d3bd6fe5..0d53785d908 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/proxy/DecorViewProxy.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/proxy/DecorViewProxy.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/proxy/IntentProxy.java b/android/titanium/src/java/org/appcelerator/titanium/proxy/IntentProxy.java
index c56b2dce51f..3eda037156d 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/proxy/IntentProxy.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/proxy/IntentProxy.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/proxy/MenuItemProxy.java b/android/titanium/src/java/org/appcelerator/titanium/proxy/MenuItemProxy.java
index 68f117c6a09..1651b09f9ae 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/proxy/MenuItemProxy.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/proxy/MenuItemProxy.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/proxy/MenuProxy.java b/android/titanium/src/java/org/appcelerator/titanium/proxy/MenuProxy.java
index b6f4f9f63db..a108947a82e 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/proxy/MenuProxy.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/proxy/MenuProxy.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/proxy/RProxy.java b/android/titanium/src/java/org/appcelerator/titanium/proxy/RProxy.java
index 9329dada2fb..dea6fbbab8e 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/proxy/RProxy.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/proxy/RProxy.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/proxy/ServiceProxy.java b/android/titanium/src/java/org/appcelerator/titanium/proxy/ServiceProxy.java
index 5eeee9319f1..c4d963aab68 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/proxy/ServiceProxy.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/proxy/ServiceProxy.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/proxy/TiViewProxy.java b/android/titanium/src/java/org/appcelerator/titanium/proxy/TiViewProxy.java
index 5080429c042..77a86fafa7f 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/proxy/TiViewProxy.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/proxy/TiViewProxy.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
@@ -53,10 +53,6 @@
TiC.PROPERTY_BACKGROUND_SELECTED_IMAGE,
TiC.PROPERTY_BACKGROUND_FOCUSED_IMAGE,
TiC.PROPERTY_BACKGROUND_DISABLED_IMAGE,
- TiC.PROPERTY_BACKGROUND_COLOR,
- TiC.PROPERTY_BACKGROUND_SELECTED_COLOR,
- TiC.PROPERTY_BACKGROUND_FOCUSED_COLOR,
- TiC.PROPERTY_BACKGROUND_DISABLED_COLOR,
TiC.PROPERTY_BACKGROUND_PADDING,
TiC.PROPERTY_BACKGROUND_GRADIENT,
// border properties
@@ -98,7 +94,8 @@
TiC.PROPERTY_TOUCH_FEEDBACK_COLOR,
TiC.PROPERTY_TRANSITION_NAME,
TiC.PROPERTY_HIDDEN_BEHAVIOR,
- TiC.PROPERTY_ANCHOR_POINT
+ TiC.PROPERTY_ANCHOR_POINT,
+ TiC.PROPERTY_ACCESSIBILITY_DISABLE_LONG
})
public abstract class TiViewProxy extends KrollProxy
{
@@ -1068,6 +1065,12 @@ public TiViewProxy getParent()
return this.parent.get();
}
+ @Kroll.setProperty
+ public void setBackgroundColor(String color)
+ {
+ setPropertyAndFire(TiC.PROPERTY_BACKGROUND_COLOR, color);
+ }
+
@Kroll.getProperty
public String getBackgroundColor()
{
@@ -1100,6 +1103,12 @@ public String getBackgroundColor()
return TiUIHelper.getBackgroundColorForState(tiBackgroundDrawable, TiUIHelper.BACKGROUND_DEFAULT_STATE_1);
}
+ @Kroll.setProperty
+ public void setBackgroundSelectedColor(String color)
+ {
+ setPropertyAndFire(TiC.PROPERTY_BACKGROUND_SELECTED_COLOR, color);
+ }
+
@Kroll.getProperty
public String getBackgroundSelectedColor()
{
@@ -1122,6 +1131,12 @@ public String getBackgroundSelectedColor()
return TiUIHelper.getBackgroundColorForState(backgroundDrawable, TiUIHelper.BACKGROUND_SELECTED_STATE);
}
+ @Kroll.setProperty
+ public void setBackgroundFocusedColor(String color)
+ {
+ setPropertyAndFire(TiC.PROPERTY_BACKGROUND_FOCUSED_COLOR, color);
+ }
+
@Kroll.getProperty
public String getBackgroundFocusedColor()
{
@@ -1144,6 +1159,12 @@ public String getBackgroundFocusedColor()
return TiUIHelper.getBackgroundColorForState(backgroundDrawable, TiUIHelper.BACKGROUND_FOCUSED_STATE);
}
+ @Kroll.setProperty
+ public void setBackgroundDisabledColor(String color)
+ {
+ setPropertyAndFire(TiC.PROPERTY_BACKGROUND_DISABLED_COLOR, color);
+ }
+
@Kroll.getProperty
public String getBackgroundDisabledColor()
{
diff --git a/android/titanium/src/java/org/appcelerator/titanium/proxy/TiWindowProxy.java b/android/titanium/src/java/org/appcelerator/titanium/proxy/TiWindowProxy.java
index 963bbf8b9ef..237924bbb95 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/proxy/TiWindowProxy.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/proxy/TiWindowProxy.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
@@ -51,6 +51,7 @@
TiC.PROPERTY_ON_BACK,
TiC.PROPERTY_TITLE,
TiC.PROPERTY_TITLEID,
+ TiC.PROPERTY_TITLE_ATTRIBUTES,
TiC.PROPERTY_WINDOW_SOFT_INPUT_MODE
})
public abstract class TiWindowProxy extends TiViewProxy
diff --git a/android/titanium/src/java/org/appcelerator/titanium/util/TiActivityResultHandler.java b/android/titanium/src/java/org/appcelerator/titanium/util/TiActivityResultHandler.java
index 93c5d221eea..96ffa3752c1 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/util/TiActivityResultHandler.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/util/TiActivityResultHandler.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/util/TiActivitySupport.java b/android/titanium/src/java/org/appcelerator/titanium/util/TiActivitySupport.java
index a2a9d758c13..08512e131f3 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/util/TiActivitySupport.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/util/TiActivitySupport.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/util/TiActivitySupportHelper.java b/android/titanium/src/java/org/appcelerator/titanium/util/TiActivitySupportHelper.java
index 00d5dd097d8..a0c11f1fe99 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/util/TiActivitySupportHelper.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/util/TiActivitySupportHelper.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/util/TiAnimationBuilder.java b/android/titanium/src/java/org/appcelerator/titanium/util/TiAnimationBuilder.java
index f36a653dcbb..32ed3fc6957 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/util/TiAnimationBuilder.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/util/TiAnimationBuilder.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/util/TiAnimationCurve.java b/android/titanium/src/java/org/appcelerator/titanium/util/TiAnimationCurve.java
index fb8e9b31acc..402b92cac0b 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/util/TiAnimationCurve.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/util/TiAnimationCurve.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/util/TiAnimationFactory.java b/android/titanium/src/java/org/appcelerator/titanium/util/TiAnimationFactory.java
index 4a89595746a..dbf99fa26c5 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/util/TiAnimationFactory.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/util/TiAnimationFactory.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/util/TiAnimationPair.java b/android/titanium/src/java/org/appcelerator/titanium/util/TiAnimationPair.java
index 9059d44c44d..85ea11716f8 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/util/TiAnimationPair.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/util/TiAnimationPair.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/util/TiBlobLruCache.java b/android/titanium/src/java/org/appcelerator/titanium/util/TiBlobLruCache.java
index 0bcf8fc15e6..0857388c16f 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/util/TiBlobLruCache.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/util/TiBlobLruCache.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/util/TiColorHelper.java b/android/titanium/src/java/org/appcelerator/titanium/util/TiColorHelper.java
index a84794be418..5bb0e6a9e9e 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/util/TiColorHelper.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/util/TiColorHelper.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/util/TiConvert.java b/android/titanium/src/java/org/appcelerator/titanium/util/TiConvert.java
index 38cae5901eb..34e371dd234 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/util/TiConvert.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/util/TiConvert.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/util/TiDeviceOrientation.java b/android/titanium/src/java/org/appcelerator/titanium/util/TiDeviceOrientation.java
index ac9418f6a60..8a974798c34 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/util/TiDeviceOrientation.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/util/TiDeviceOrientation.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
@@ -165,7 +165,7 @@ public static TiDeviceOrientation fromAndroidSurfaceRotationId(int value)
boolean isUprightOrientationPortrait = displayInfo.isUprightOrientationPortrait();
// Configure display info object with given rotation and device's upright orientation.
- // Note: The below width/height doesn't need to match the device's actual dispaly size.
+ // Note: The below width/height doesn't need to match the device's actual display size.
// They just need to indicate if the device is portrait/landscape for given rotation.
switch (value) {
case Surface.ROTATION_0:
@@ -302,7 +302,7 @@ public static TiDeviceOrientation from(Display display)
* Returns a portrait or landscape orientation if the display's upright orientation
* was successfully acquired.
*
- * Returns UNKNOWN if failed to aquire the default display's information.
+ * Returns UNKNOWN if failed to acquire the default display's information.
*/
public static TiDeviceOrientation fromUprightPositionOfDefaultDisplay()
{
@@ -321,7 +321,7 @@ public static TiDeviceOrientation fromUprightPositionOfDefaultDisplay()
* Returns a portrait or landscape orientation if the display's upright orientation
* was successfully acquired.
*
- * Returns UNKNOWN if given a null argument or failed to aquire display info.
+ * Returns UNKNOWN if given a null argument or failed to acquire display info.
*/
public static TiDeviceOrientation fromUprightPositionOf(Display display)
{
@@ -395,7 +395,7 @@ public int getHeight()
public boolean isUprightOrientationPortrait()
{
// Determine if the display size is portrait.
- // Note: A square display size is considred portrait. (The most commonly used orientation.)
+ // Note: A square display size is considered portrait. (The most commonly used orientation.)
boolean result;
switch (this.rotationId) {
case Surface.ROTATION_0:
diff --git a/android/titanium/src/java/org/appcelerator/titanium/util/TiDigestUtils.java b/android/titanium/src/java/org/appcelerator/titanium/util/TiDigestUtils.java
index 64c06ef7a56..997f5699993 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/util/TiDigestUtils.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/util/TiDigestUtils.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/util/TiDownloadListener.java b/android/titanium/src/java/org/appcelerator/titanium/util/TiDownloadListener.java
index 6e03b789698..4104229afad 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/util/TiDownloadListener.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/util/TiDownloadListener.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/util/TiDownloadManager.java b/android/titanium/src/java/org/appcelerator/titanium/util/TiDownloadManager.java
index b93f8c1b19c..e22eb5580e9 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/util/TiDownloadManager.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/util/TiDownloadManager.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
@@ -211,7 +211,7 @@ public InputStream blockingDownload(final URI uri) throws Exception
}
}
- // If we've acquried an HTTP/HTTPS download stream, then wrap the stream.
+ // If we've acquired an HTTP/HTTPS download stream, then wrap the stream.
// The stream wrapper will automatically close the HTTP connection when the stream has been closed.
if ((inputStream != null) && (connection instanceof HttpURLConnection)) {
final HttpURLConnection httpConnection = (HttpURLConnection) connection;
diff --git a/android/titanium/src/java/org/appcelerator/titanium/util/TiEventHelper.java b/android/titanium/src/java/org/appcelerator/titanium/util/TiEventHelper.java
index eb333c7653e..03f646e41b9 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/util/TiEventHelper.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/util/TiEventHelper.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/util/TiExifOrientation.java b/android/titanium/src/java/org/appcelerator/titanium/util/TiExifOrientation.java
index 94991f1a842..62d0b1deaf7 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/util/TiExifOrientation.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/util/TiExifOrientation.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/util/TiFileHelper.java b/android/titanium/src/java/org/appcelerator/titanium/util/TiFileHelper.java
index feb7bfead2b..174c4e5a81d 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/util/TiFileHelper.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/util/TiFileHelper.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/util/TiFileHelper2.java b/android/titanium/src/java/org/appcelerator/titanium/util/TiFileHelper2.java
index f86fbf18263..060100776ac 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/util/TiFileHelper2.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/util/TiFileHelper2.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
@@ -29,7 +29,7 @@ public static String getResourcesPath(String path)
/**
* Joins many String path segments into one path
* @param segments A vararg (or String array) of path segments
- * @return The passed-in segements normalized and joined by "/"
+ * @return The passed-in segments normalized and joined by "/"
*/
public static String joinSegments(String... segments)
{
diff --git a/android/titanium/src/java/org/appcelerator/titanium/util/TiImageCache.java b/android/titanium/src/java/org/appcelerator/titanium/util/TiImageCache.java
index a7490790d63..a7221aa6b71 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/util/TiImageCache.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/util/TiImageCache.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/util/TiImageHelper.java b/android/titanium/src/java/org/appcelerator/titanium/util/TiImageHelper.java
index 50a2e660656..7ae78c6fb24 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/util/TiImageHelper.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/util/TiImageHelper.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/util/TiImageInfo.java b/android/titanium/src/java/org/appcelerator/titanium/util/TiImageInfo.java
index c0b6e02e4c3..210f0bf91e5 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/util/TiImageInfo.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/util/TiImageInfo.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/util/TiIntentWrapper.java b/android/titanium/src/java/org/appcelerator/titanium/util/TiIntentWrapper.java
index dcfb34e93fc..46037096234 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/util/TiIntentWrapper.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/util/TiIntentWrapper.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/util/TiLoadImageManager.java b/android/titanium/src/java/org/appcelerator/titanium/util/TiLoadImageManager.java
index 5d3b8f29647..db82f91da70 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/util/TiLoadImageManager.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/util/TiLoadImageManager.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/util/TiLocaleManager.java b/android/titanium/src/java/org/appcelerator/titanium/util/TiLocaleManager.java
index 34c14b2ff88..9a6e4b59093 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/util/TiLocaleManager.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/util/TiLocaleManager.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/util/TiLocationHelper.java b/android/titanium/src/java/org/appcelerator/titanium/util/TiLocationHelper.java
index 3e03cd3cbb8..7ec31b8ee4b 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/util/TiLocationHelper.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/util/TiLocationHelper.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/util/TiMenuSupport.java b/android/titanium/src/java/org/appcelerator/titanium/util/TiMenuSupport.java
index eab1bd87121..0d51b6bc0e5 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/util/TiMenuSupport.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/util/TiMenuSupport.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/util/TiMimeTypeHelper.java b/android/titanium/src/java/org/appcelerator/titanium/util/TiMimeTypeHelper.java
index cfcad36dbb7..5608161a2aa 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/util/TiMimeTypeHelper.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/util/TiMimeTypeHelper.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/util/TiNinePatchHelper.java b/android/titanium/src/java/org/appcelerator/titanium/util/TiNinePatchHelper.java
index fb0ef23ae6a..0509e6ef62c 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/util/TiNinePatchHelper.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/util/TiNinePatchHelper.java
@@ -1,13 +1,11 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
*/
package org.appcelerator.titanium.util;
-import java.util.ArrayList;
-
import android.graphics.Bitmap;
import android.graphics.Color;
import android.graphics.Rect;
@@ -15,15 +13,11 @@
import android.graphics.drawable.Drawable;
import android.graphics.drawable.NinePatchDrawable;
+import java.util.ArrayList;
+
@SuppressWarnings("deprecation")
public class TiNinePatchHelper
{
- private static class SegmentColor
- {
- int index;
- int color;
- }
-
public Drawable process(Drawable d)
{
Drawable nd = d;
@@ -199,8 +193,8 @@ byte[] createChunk(Bitmap b)
numColors = colors.size();
// Figure out the size / looks like padded to 32bits.
- int size = 32 + // wasDeserialized, numXDivs, numYDivs, numColors, padLeft, padRight, padTop, padBottom
- numXDivs * 32 + numYDivs * 32 + numColors * 32;
+ int size = 32 // wasDeserialized, numXDivs, numYDivs, numColors, padLeft, padRight, padTop, padBottom
+ + numXDivs * 32 + numYDivs * 32 + numColors * 32;
chunk = new byte[size];
chunk[0] = 0;
@@ -245,4 +239,10 @@ private void toBytes(byte[] a, int offset, int v)
a[offset + 2] = (byte) ((0x00FF0000 & v) >> 16);
a[offset + 3] = (byte) ((0xFF000000 & v) >> 24);
}
+
+ private static class SegmentColor
+ {
+ int index;
+ int color;
+ }
}
diff --git a/android/titanium/src/java/org/appcelerator/titanium/util/TiPlatformHelper.java b/android/titanium/src/java/org/appcelerator/titanium/util/TiPlatformHelper.java
index 4e935e92dfa..e704ca4975a 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/util/TiPlatformHelper.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/util/TiPlatformHelper.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/util/TiPropertyResolver.java b/android/titanium/src/java/org/appcelerator/titanium/util/TiPropertyResolver.java
index 7ce1253fc07..53737cdbb7c 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/util/TiPropertyResolver.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/util/TiPropertyResolver.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/util/TiRHelper.java b/android/titanium/src/java/org/appcelerator/titanium/util/TiRHelper.java
index 3690b46abfe..eb6cbc50135 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/util/TiRHelper.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/util/TiRHelper.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/util/TiResponseCache.java b/android/titanium/src/java/org/appcelerator/titanium/util/TiResponseCache.java
index 4bc2b252571..abbae3d34d4 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/util/TiResponseCache.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/util/TiResponseCache.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
@@ -231,7 +231,7 @@ public static boolean peekFollowingRedirects(URI uri)
* @param uri The URI to fetch the endpoint of. Can be null.
* @return
* If the given URI is cached and references a redirect response, then the returned URI will
- * be the redirect's "location" URI.
+ * be the redirects "location" URI.
*
* If the given URI does not reference a redirect, then the given URI is returned.
*
diff --git a/android/titanium/src/java/org/appcelerator/titanium/util/TiSensorHelper.java b/android/titanium/src/java/org/appcelerator/titanium/util/TiSensorHelper.java
index 86af769f912..d158c8097c5 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/util/TiSensorHelper.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/util/TiSensorHelper.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/util/TiStreamHelper.java b/android/titanium/src/java/org/appcelerator/titanium/util/TiStreamHelper.java
index e90b8047c5e..26035ee5309 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/util/TiStreamHelper.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/util/TiStreamHelper.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/util/TiUIHelper.java b/android/titanium/src/java/org/appcelerator/titanium/util/TiUIHelper.java
index 16520a073d5..126de992a6d 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/util/TiUIHelper.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/util/TiUIHelper.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
@@ -713,7 +713,7 @@ public ImageDrawableLoader()
/**
* Loads the given image and returns it's decode bitmap wrapped in a drawable.
* @param filePath Path or URL to the image file to be loaded. Can be null.
- * @return Returns a drawble object used to draw the give image file.
+ * @return Returns a drawable object used to draw the give image file.
*
* Returns null if failed to load the image or if given a null argument.
*/
diff --git a/android/titanium/src/java/org/appcelerator/titanium/util/TiUrl.java b/android/titanium/src/java/org/appcelerator/titanium/util/TiUrl.java
index 414cec1a076..b3d5972513c 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/util/TiUrl.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/util/TiUrl.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/util/TiWeakList.java b/android/titanium/src/java/org/appcelerator/titanium/util/TiWeakList.java
index 6fe8e2a4405..b00e832e7bf 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/util/TiWeakList.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/util/TiWeakList.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/util/TiWeakMap.java b/android/titanium/src/java/org/appcelerator/titanium/util/TiWeakMap.java
index 03eac9436ad..6f6ad86ba5d 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/util/TiWeakMap.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/util/TiWeakMap.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/view/ITiWindowHandler.java b/android/titanium/src/java/org/appcelerator/titanium/view/ITiWindowHandler.java
index 9e97dc8cda4..31e1841a83d 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/view/ITiWindowHandler.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/view/ITiWindowHandler.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/view/Ti2DMatrix.java b/android/titanium/src/java/org/appcelerator/titanium/view/Ti2DMatrix.java
index d9c5e07b3a2..273d5e4ec81 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/view/Ti2DMatrix.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/view/Ti2DMatrix.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/view/TiActionBarStyleHandler.java b/android/titanium/src/java/org/appcelerator/titanium/view/TiActionBarStyleHandler.java
index b44c5f8051b..af373edf546 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/view/TiActionBarStyleHandler.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/view/TiActionBarStyleHandler.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/view/TiActivitySafeAreaMonitor.java b/android/titanium/src/java/org/appcelerator/titanium/view/TiActivitySafeAreaMonitor.java
index 61a75fadac9..35233b11a46 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/view/TiActivitySafeAreaMonitor.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/view/TiActivitySafeAreaMonitor.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/view/TiAnimation.java b/android/titanium/src/java/org/appcelerator/titanium/view/TiAnimation.java
index fc77e738c3e..dbbe2c63739 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/view/TiAnimation.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/view/TiAnimation.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/view/TiBackgroundColorWrapper.java b/android/titanium/src/java/org/appcelerator/titanium/view/TiBackgroundColorWrapper.java
index b015ffff69d..d2a7923a14d 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/view/TiBackgroundColorWrapper.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/view/TiBackgroundColorWrapper.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/view/TiBackgroundDrawable.java b/android/titanium/src/java/org/appcelerator/titanium/view/TiBackgroundDrawable.java
index b2ec67dc936..290e9178e2e 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/view/TiBackgroundDrawable.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/view/TiBackgroundDrawable.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/view/TiBorderWrapperView.java b/android/titanium/src/java/org/appcelerator/titanium/view/TiBorderWrapperView.java
index 947b15de033..1b9c6a94dbe 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/view/TiBorderWrapperView.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/view/TiBorderWrapperView.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/view/TiCompositeLayout.java b/android/titanium/src/java/org/appcelerator/titanium/view/TiCompositeLayout.java
index 7b59254c8b8..4ad50ad3d7d 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/view/TiCompositeLayout.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/view/TiCompositeLayout.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
@@ -60,13 +60,13 @@ public enum LayoutArrangement {
private boolean needsSort;
protected LayoutArrangement arrangement;
- // Used by horizonal arrangement calculations
+ // Used by horizontal arrangement calculations
private int horizontalLayoutTopBuffer = 0;
private int horizontalLayoutCurrentLeft = 0;
private int horizontalLayoutLineHeight = 0;
private boolean enableHorizontalWrap = true;
private int horizontalLayoutLastIndexBeforeWrap = 0;
- private int horiztonalLayoutPreviousRight = 0;
+ private int horizontalLayoutPreviousRight = 0;
int[] horizontal = new int[2];
int[] vertical = new int[2];
/**
@@ -252,7 +252,7 @@ public void setChildRelativeSizingTo(int width, int height)
/**
* Configures this layout to size and position child views that use a percentage based
- * width/height and top/bottom/left/right/center properties reatlive to this parent
+ * width/height and top/bottom/left/right/center properties relative to this parent
* layout's width and height.
*
* This is the default setting.
@@ -875,7 +875,7 @@ protected void onLayout(boolean changed, int l, int t, int r, int b)
horizontalLayoutLineHeight = 0;
horizontalLayoutTopBuffer = 0;
horizontalLayoutLastIndexBeforeWrap = 0;
- horiztonalLayoutPreviousRight = 0;
+ horizontalLayoutPreviousRight = 0;
updateRowForHorizontalWrap(right, i);
}
computeHorizontalLayoutPosition(params, childMeasuredWidth, childMeasuredHeight, right, top, bottom,
@@ -1002,19 +1002,19 @@ private void computeHorizontalLayoutPosition(TiCompositeLayout.LayoutParams para
TiDimension optionLeft = params.optionLeft;
TiDimension optionRight = params.optionRight;
- int left = horizontalLayoutCurrentLeft + horiztonalLayoutPreviousRight;
+ int left = horizontalLayoutCurrentLeft + horizontalLayoutPreviousRight;
int optionLeftValue = 0;
if (optionLeft != null) {
optionLeftValue = optionLeft.getAsPixels(this);
left += optionLeftValue;
}
- horiztonalLayoutPreviousRight = (optionRight == null) ? 0 : optionRight.getAsPixels(this);
+ horizontalLayoutPreviousRight = (optionRight == null) ? 0 : optionRight.getAsPixels(this);
// If it's fill width with horizontal wrap, just take up remaining
// space.
int right = left + measuredWidth;
- if (enableHorizontalWrap && ((right + horiztonalLayoutPreviousRight) > layoutRight || left >= layoutRight)) {
+ if (enableHorizontalWrap && ((right + horizontalLayoutPreviousRight) > layoutRight || left >= layoutRight)) {
// Too long for the current "line" that it's on. Need to move it
// down.
left = optionLeftValue;
diff --git a/android/titanium/src/java/org/appcelerator/titanium/view/TiDrawableReference.java b/android/titanium/src/java/org/appcelerator/titanium/view/TiDrawableReference.java
index 0fa8a0aeb0b..bcfb1f89777 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/view/TiDrawableReference.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/view/TiDrawableReference.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
@@ -272,7 +272,7 @@ public static TiDrawableReference fromDictionary(Activity activity, HashMap dict
* Does its best to determine the type of reference (url, blob, etc) based on object parameter.
*
* Uses the given proxy to resolve relative paths to an image file, if applicable.
- * @param proxy Used to acquire an activty and resolve relative paths if given object is a string path.
+ * @param proxy Used to acquire an activity and resolve relative paths if given object is a string path.
* @param object Reference to the image to be loaded such as a file, path, blob, etc.
* @return Returns an instance of TiDrawableReference wrapping the given object.
*/
diff --git a/android/titanium/src/java/org/appcelerator/titanium/view/TiGradientDrawable.java b/android/titanium/src/java/org/appcelerator/titanium/view/TiGradientDrawable.java
index dccba21b5f7..8c9e133334a 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/view/TiGradientDrawable.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/view/TiGradientDrawable.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/view/TiInsetsProvider.java b/android/titanium/src/java/org/appcelerator/titanium/view/TiInsetsProvider.java
index f162c663868..887379e2ccf 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/view/TiInsetsProvider.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/view/TiInsetsProvider.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/view/TiToolbarStyleHandler.java b/android/titanium/src/java/org/appcelerator/titanium/view/TiToolbarStyleHandler.java
index 89cf0ef3e36..7dea2d5287c 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/view/TiToolbarStyleHandler.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/view/TiToolbarStyleHandler.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/view/TiUIDecorView.java b/android/titanium/src/java/org/appcelerator/titanium/view/TiUIDecorView.java
index 57ee401fab3..a8f96c9fc98 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/view/TiUIDecorView.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/view/TiUIDecorView.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/org/appcelerator/titanium/view/TiUIFragment.java b/android/titanium/src/java/org/appcelerator/titanium/view/TiUIFragment.java
index e7189380b02..51f60f8eda2 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/view/TiUIFragment.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/view/TiUIFragment.java
@@ -131,7 +131,7 @@ public Fragment getFragment()
public boolean handleMessage(Message msg)
{
- //overwriting so descendents don't have to
+ //overwriting so descendants don't have to
return true;
}
diff --git a/android/titanium/src/java/org/appcelerator/titanium/view/TiUIView.java b/android/titanium/src/java/org/appcelerator/titanium/view/TiUIView.java
index ac0541d1344..73630f0c02a 100644
--- a/android/titanium/src/java/org/appcelerator/titanium/view/TiUIView.java
+++ b/android/titanium/src/java/org/appcelerator/titanium/view/TiUIView.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
@@ -45,7 +45,10 @@
import android.graphics.drawable.ShapeDrawable;
import android.os.Build;
import androidx.annotation.NonNull;
+import androidx.core.view.AccessibilityDelegateCompat;
import androidx.core.view.ViewCompat;
+import androidx.core.view.accessibility.AccessibilityNodeInfoCompat;
+
import android.text.TextUtils;
import android.util.Pair;
import android.util.SparseArray;
@@ -1915,6 +1918,12 @@ protected void registerForTouch(final View touchable)
boolean soundEnabled = TiConvert.toBoolean(proxy.getProperty(TiC.PROPERTY_SOUND_EFFECTS_ENABLED), true);
touchable.setSoundEffectsEnabled(soundEnabled);
}
+
+ if (proxy.hasPropertyAndNotNull(TiC.PROPERTY_ACCESSIBILITY_DISABLE_LONG)) {
+ if (TiConvert.toBoolean(proxy.getProperty(TiC.PROPERTY_ACCESSIBILITY_DISABLE_LONG))) {
+ removeAccessibilityLongClick();
+ }
+ }
registerTouchEvents(touchable);
// Previously, we used the single tap handling above to fire our click event. It doesn't
@@ -2363,4 +2372,19 @@ public String composeContentDescription()
}
return composeContentDescription(proxy.getProperties());
}
+
+ public void removeAccessibilityLongClick()
+ {
+ ViewCompat.setAccessibilityDelegate(nativeView, new AccessibilityDelegateCompat()
+ {
+ @Override
+ public void onInitializeAccessibilityNodeInfo(@NonNull View host,
+ @NonNull AccessibilityNodeInfoCompat info)
+ {
+ super.onInitializeAccessibilityNodeInfo(host, info);
+ info.removeAction(AccessibilityNodeInfoCompat.AccessibilityActionCompat.ACTION_LONG_CLICK);
+ info.setLongClickable(false);
+ }
+ });
+ }
}
diff --git a/android/titanium/src/java/ti/modules/titanium/BufferProxy.java b/android/titanium/src/java/ti/modules/titanium/BufferProxy.java
index 1207750d45a..1825b2082df 100644
--- a/android/titanium/src/java/ti/modules/titanium/BufferProxy.java
+++ b/android/titanium/src/java/ti/modules/titanium/BufferProxy.java
@@ -1,14 +1,11 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
*/
package ti.modules.titanium;
-import java.io.UnsupportedEncodingException;
-import java.util.Arrays;
-
import org.appcelerator.kroll.KrollDict;
import org.appcelerator.kroll.KrollModule;
import org.appcelerator.kroll.KrollProxy;
@@ -18,6 +15,9 @@
import org.appcelerator.titanium.TiC;
import org.appcelerator.titanium.util.TiConvert;
+import java.io.UnsupportedEncodingException;
+import java.util.Arrays;
+
import ti.modules.titanium.codec.CodecModule;
/**
@@ -28,7 +28,7 @@
TiC.PROPERTY_BYTE_ORDER,
TiC.PROPERTY_TYPE,
TiC.PROPERTY_VALUE
-})
+ })
public class BufferProxy extends KrollProxy
{
private static final String TAG = "BufferProxy";
@@ -170,13 +170,14 @@ protected void validateOffsetAndLength(int offset, int length, int bufferLength)
{
if (length > offset + bufferLength) {
throw new IllegalArgumentException("offset of " + offset + " and length of " + length
- + " is larger than the buffer length: " + bufferLength);
+ + " is larger than the buffer length: " + bufferLength);
}
}
/**
* Writes data from sourceBuffer into this.
- * @param position the offset position of this buffer.
+ *
+ * @param position the offset position of this buffer.
* @param sourceBuffer the source buffer to write from.
* @param sourceOffset the offset position of the sourceBuffer.
* @param sourceLength the length of the sourceBuffer.
@@ -372,6 +373,7 @@ public int getLength()
/**
* Sets the length of this buffer proxy by either growing or shrinking
* the allocated buffer space
+ *
* @param length The new length of this buffer proxy in bytes
*/
@Kroll.setProperty
diff --git a/android/titanium/src/java/ti/modules/titanium/TitaniumModule.java b/android/titanium/src/java/ti/modules/titanium/TitaniumModule.java
index 20cfb254ba6..365e373862a 100644
--- a/android/titanium/src/java/ti/modules/titanium/TitaniumModule.java
+++ b/android/titanium/src/java/ti/modules/titanium/TitaniumModule.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
@@ -263,7 +263,7 @@ public String stringFormat(String format, Object[] args)
}
} catch (Exception ex) {
- Log.e(TAG, "Error occured while formatting string", ex);
+ Log.e(TAG, "Error occurred while formatting string", ex);
return null;
}
}
diff --git a/android/titanium/src/java/ti/modules/titanium/codec/CodecModule.java b/android/titanium/src/java/ti/modules/titanium/codec/CodecModule.java
index 2a4e4363ff7..84ca4595e84 100644
--- a/android/titanium/src/java/ti/modules/titanium/codec/CodecModule.java
+++ b/android/titanium/src/java/ti/modules/titanium/codec/CodecModule.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/ti/modules/titanium/stream/BlobStreamProxy.java b/android/titanium/src/java/ti/modules/titanium/stream/BlobStreamProxy.java
index 5c029c0add5..3c24a288ce3 100644
--- a/android/titanium/src/java/ti/modules/titanium/stream/BlobStreamProxy.java
+++ b/android/titanium/src/java/ti/modules/titanium/stream/BlobStreamProxy.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/ti/modules/titanium/stream/BufferStreamProxy.java b/android/titanium/src/java/ti/modules/titanium/stream/BufferStreamProxy.java
index d2bb8f0f8bc..a289e2b2fa2 100644
--- a/android/titanium/src/java/ti/modules/titanium/stream/BufferStreamProxy.java
+++ b/android/titanium/src/java/ti/modules/titanium/stream/BufferStreamProxy.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/ti/modules/titanium/stream/FileStreamProxy.java b/android/titanium/src/java/ti/modules/titanium/stream/FileStreamProxy.java
index 8cc8c87b442..3a0688dd513 100644
--- a/android/titanium/src/java/ti/modules/titanium/stream/FileStreamProxy.java
+++ b/android/titanium/src/java/ti/modules/titanium/stream/FileStreamProxy.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/titanium/src/java/ti/modules/titanium/stream/StreamModule.java b/android/titanium/src/java/ti/modules/titanium/stream/StreamModule.java
index 36fa784c318..34930656894 100644
--- a/android/titanium/src/java/ti/modules/titanium/stream/StreamModule.java
+++ b/android/titanium/src/java/ti/modules/titanium/stream/StreamModule.java
@@ -1,5 +1,5 @@
/**
- * TiDev Titanium Mobile
+ * Titanium SDK
* Copyright TiDev, Inc. 04/07/2022-Present. All Rights Reserved.
* Licensed under the terms of the Apache Public License
* Please see the LICENSE included with this distribution for details.
diff --git a/android/untar.gradle b/android/untar.gradle
index d6a9b0531b0..145bb23b4eb 100644
--- a/android/untar.gradle
+++ b/android/untar.gradle
@@ -1,36 +1,36 @@
-/**
- * TiDev Titanium Mobile
- * Copyright TiDev, Inc. 04/07/2022-Present
- * Licensed under the terms of the Apache Public License.
- * Please see the LICENSE included with this distribution for details.
- */
-
-// Extracts a "*.tar" file using the same parameters as the ant task.
-// Used by our prebuild step to extract our "libv8-*.tar.bz2" file.
-task untar() {
- // Throw an error if required gradle property has not been set.
- if (!project.hasProperty('src')) {
- throw new InvalidUserDataException('You must set a "src" property.')
- }
-
- // Assign a default value to any unassigned properties.
- if (!project.hasProperty('compression')) {
- project.ext.compression = 'none'
- }
- if (!project.hasProperty('overwrite')) {
- project.ext.overwrite = 'true'
- }
- if (!project.hasProperty('dest')) {
- def sourceFile = new File(src)
- project.ext.dest = sourceFile.getParentFile().getPath()
- }
-
- // Use "ant" to extract the given tarball.
- ant.untar(
- compression: project.properties.compression,
- overwrite: project.properties.overwrite,
- src: project.properties.src,
- dest: project.properties.dest)
-}
-
-defaultTasks 'untar'
+/**
+ * Titanium SDK
+ * Copyright TiDev, Inc. 04/07/2022-Present
+ * Licensed under the terms of the Apache Public License.
+ * Please see the LICENSE included with this distribution for details.
+ */
+
+// Extracts a "*.tar" file using the same parameters as the ant task.
+// Used by our prebuild step to extract our "libv8-*.tar.bz2" file.
+tasks.register('untar') {
+ // Throw an error if required gradle property has not been set.
+ if (!project.hasProperty('src')) {
+ throw new InvalidUserDataException('You must set a "src" property.')
+ }
+
+ // Assign a default value to any unassigned properties.
+ if (!project.hasProperty('compression')) {
+ project.ext.compression = 'none'
+ }
+ if (!project.hasProperty('overwrite')) {
+ project.ext.overwrite = 'true'
+ }
+ if (!project.hasProperty('dest')) {
+ def sourceFile = new File(src)
+ project.ext.dest = sourceFile.getParentFile().getPath()
+ }
+
+ // Use "ant" to extract the given tarball.
+ ant.untar(
+ compression: project.properties.compression,
+ overwrite: project.properties.overwrite,
+ src: project.properties.src,
+ dest: project.properties.dest)
+}
+
+defaultTasks 'untar'
\ No newline at end of file
diff --git a/apidoc/Titanium/Android/ActionBar.yml b/apidoc/Titanium/Android/ActionBar.yml
index 2450257cbde..db9f36e9bb5 100644
--- a/apidoc/Titanium/Android/ActionBar.yml
+++ b/apidoc/Titanium/Android/ActionBar.yml
@@ -55,6 +55,15 @@ examples:
```
+
+ `app/controllers/index.js`:
+ ```
+ function doMenuClick() {}
+ function openSettings() {}
+ function doSearch() {}
+ $.index.open();
+ ```
+
`app/styles/index.tss`:
```
"MenuItem": {
@@ -85,7 +94,7 @@ examples:
win.activity.onCreate = () => {
const actionBar = win.activity.actionBar;
if (actionBar) {
- actionBar.backgroundImage = "/bg.png";
+ actionBar.backgroundImage = Ti.Filesystem.getFile(Ti.Filesystem.resourcesDirectory, 'bg.png').nativePath;
actionBar.title = "New Title";
actionBar.onHomeIconItemSelected = () => {
Ti.API.info("Home icon clicked!");
diff --git a/apidoc/Titanium/Android/Menu.yml b/apidoc/Titanium/Android/Menu.yml
index 25c672c2fe3..a59bdf70259 100644
--- a/apidoc/Titanium/Android/Menu.yml
+++ b/apidoc/Titanium/Android/Menu.yml
@@ -30,7 +30,7 @@ description: |
Menus must be added to tab groups using the tab group's
activity. These changes were required to support the Android 3.0 action bar.
- The TabGroup activity is available using [TabGroup.getActivity](Titanium.UI.TabGroup.getActivity).
+ The TabGroup activity is available using [TabGroup.activity](Titanium.UI.TabGroup.activity).
However, unlike a window's activity it is not currently possible to set properties on
the tab group's activity before the tab group is opened. To add a menu to a tab group,
set the `onCreateOptionsMenu` property to the tab group's `open` event listener, and
diff --git a/apidoc/Titanium/App/App.yml b/apidoc/Titanium/App/App.yml
index 94fc3cc3756..1cb0f8c7827 100644
--- a/apidoc/Titanium/App/App.yml
+++ b/apidoc/Titanium/App/App.yml
@@ -543,7 +543,7 @@ properties:
- name: idleTimerDisabled
summary: Determines whether the screen is locked when the device is idle.
- description: Set to `true` to disable the timer.
+ description: Set to `true` to disable the timer. For Android look at [Titanium.UI.View.keepScreenOn](Titanium.UI.View.keepScreenOn).
type: Boolean
platforms: [iphone, ipad, macos]
diff --git a/apidoc/Titanium/App/Properties/Properties.yml b/apidoc/Titanium/App/Properties/Properties.yml
index 8cfaa63d118..b4f8da99569 100644
--- a/apidoc/Titanium/App/Properties/Properties.yml
+++ b/apidoc/Titanium/App/Properties/Properties.yml
@@ -21,22 +21,20 @@ description: |
Then, you can retrieve the property during runtime with the following API call:
``` js
- var foo = Ti.App.Properties.getString('foo');
+ const foo = Ti.App.Properties.getString('foo');
```
- As of Release 3.2.0, any application properties defined in the `tiapp.xml` file are stored in the
+ Any application properties defined in the `tiapp.xml` file are stored in the
device's secure storage, making them read-only. Additionally, external access to these
properties is now restricted. Other iOS applications cannot access these properties and
- native Android modules must use the Titanium module API
- [TiApplication.getAppProperties](https://docs.appcelerator.com/module-apidoc/latest/android/org/appcelerator/platform/TiApplication.html#getAppProperties())
+ native Android modules must use the Titanium module API TiApplication.getAppProperties()
method to access these properties.
If you need to change the values during runtime, initially create the property with these APIs
rather than defining them in the `tiapp.xml` file.
- Prior to Release 3.2.0, application properties defined in the `tiapp.xml` file could be
- overwritten by these APIs and accessed externally by other applications and modules.
-
+ **Important**: Using this API in the Apple ecosystem requires the `NSPrivacyAccessedAPICategoryUserDefaults`
+ property set in the privacy manifest that was introduced in iOS 17. You can learn more about it [here](https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_use_of_required_reason_api).
extends: Titanium.Module
since: "0.5"
diff --git a/apidoc/Titanium/App/iOS/UserDefaults.yml b/apidoc/Titanium/App/iOS/UserDefaults.yml
index 7b67ff2fd22..b3c9e57c123 100644
--- a/apidoc/Titanium/App/iOS/UserDefaults.yml
+++ b/apidoc/Titanium/App/iOS/UserDefaults.yml
@@ -4,6 +4,9 @@ summary: |
The UserDefaults module is used for storing application-related data in property/value pairs
that persist beyond application sessions and device power cycles. UserDefaults allows the suiteName
of the UserDefaults to be specified at creation time.
+
+ **Important**: Using this API requires the `NSPrivacyAccessedAPICategoryUserDefaults` property set in the
+ privacy manifest that was introduced in iOS 17. You can learn more about it [here](https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_use_of_required_reason_api).
description: |
Unlike Titanium.App.Properties, Titanium.App.iOS.UserDefaults does not pull properties defined in the `tiapp.xml` file.
diff --git a/apidoc/Titanium/App/iOS/UserNotificationCenter.yml b/apidoc/Titanium/App/iOS/UserNotificationCenter.yml
index 75d8708585b..f9b32f8d54a 100644
--- a/apidoc/Titanium/App/iOS/UserNotificationCenter.yml
+++ b/apidoc/Titanium/App/iOS/UserNotificationCenter.yml
@@ -133,7 +133,7 @@ properties:
- name: userInfo
summary: Custom data object.
- type: Dictionary
+ type: UserInfoDictionary
- name: category
summary: Category identifier of the notification.
@@ -160,6 +160,19 @@ properties:
- identifier: The identifier of the region.
type: Dictionary
+---
+name: UserInfoDictionary
+summary: |
+ Dictionary object of parameters.
+platforms: [iphone, ipad, macos]
+
+properties:
+ - name: showInForground
+ summary: Show notification if app is in foreground
+ description: |
+ Boolean if a notification banner is shown if the app is in foreground.
+ type: Number
+
---
name: GetUserNotificationSettings
summary: |
diff --git a/apidoc/Titanium/Blob.yml b/apidoc/Titanium/Blob.yml
index 1a11dc10039..9e3fbd8c6c3 100644
--- a/apidoc/Titanium/Blob.yml
+++ b/apidoc/Titanium/Blob.yml
@@ -142,6 +142,13 @@ properties:
since: {android: "7.2.0", iphone: "0.9.0", ipad: "0.9.0", macos: "9.2.0"}
permission: read-only
+ - name: rotation
+ type: Number
+ summary: EXIF rotation of the image if available. Can be `undefined` if no orientation was found.
+ platforms: [android]
+ since: {android: "12.3.0"}
+ permission: read-only
+
methods:
- name: toString
returns:
diff --git a/apidoc/Titanium/CHANGELOG/1.3.mdoc b/apidoc/Titanium/CHANGELOG/1.3.mdoc
index eb78bacff87..436a7722a42 100644
--- a/apidoc/Titanium/CHANGELOG/1.3.mdoc
+++ b/apidoc/Titanium/CHANGELOG/1.3.mdoc
@@ -6,8 +6,6 @@ Please see the updated [Titanium Mobile Reference Documentation for 1.3](/apidoc
### Bug Fixes / Fixes
-You can also [view the details](https://appcelerator.lighthouseapp.com/projects/32238/milestones/68346-release-130) for the 1.3 milestone.
-
#### Android
- [#618] HTML WebView with Unicode Fails
@@ -191,4 +189,3 @@ As of the 1.3 release, this means you can directly build from within XCode (once
When building from XCode, make sure you set the proper configuration and target when doing a final build for release since Titanium does this for you when you run from inside Titanium Developer. When building for release, make sure you set the appropriate SDK version, iPhone Device target and the `Release` configuration.
If you're using a third-party Titanium module, you should not have to do anything different in 1.3 than you did before. Once you set the `` configuration in your `tiapp.xml` file, Titanium will appropriately reconfigure your XCode project with the appropriate library and library path - whether you initiate your build from inside XCode or Titanium Developer.
-
diff --git a/apidoc/Titanium/CHANGELOG/1.4.mdoc b/apidoc/Titanium/CHANGELOG/1.4.mdoc
index 3c2a661b162..906f4284cb5 100644
--- a/apidoc/Titanium/CHANGELOG/1.4.mdoc
+++ b/apidoc/Titanium/CHANGELOG/1.4.mdoc
@@ -4,7 +4,7 @@ Titanium Mobile 1.4.0 - 7/26/2010
This release includes general bug fixes and enhancements for Android and iPhone.
Please see the updated [Titanium Mobile Reference Documentation for 1.4](/apidoc/mobile/1.4).
-We have [fixed](https://appcelerator.lighthouseapp.com/projects/32238-titanium-mobile/tickets?q=milestone%3A%22Release+1.4.0%22+state%3Aclosed) 200+ reported (and unreported) issues since 1.3. Thanks for everyone's reported issues and patience as we have worked a little longer on this release than we had original anticipated.
+We have fixed reported (and unreported) issues since 1.3. Thanks for everyone's reported issues and patience as we have worked a little longer on this release than we had original anticipated.
We encountered many differences between the latest version of iOS 4 and the previous version we supported (3.1.3) and many differences between the various devices than we have never experienced before with iPhone OS.
@@ -83,4 +83,3 @@ Please note that we do not offer any support for running from master (unless dir
version of Titanium from a stable release. We appreciate everyone's desire to help us
test and run through issues as they're being developed! However, please remember that
master means unstable until officially released. Please use with caution!
-
diff --git a/apidoc/Titanium/CHANGELOG/1.5.0.mdoc b/apidoc/Titanium/CHANGELOG/1.5.0.mdoc
index 0f00b222506..a8bc06a6305 100644
--- a/apidoc/Titanium/CHANGELOG/1.5.0.mdoc
+++ b/apidoc/Titanium/CHANGELOG/1.5.0.mdoc
@@ -4,7 +4,7 @@ Titanium Mobile 1.5.0 - 12/10/2010
This release includes general bug fixes and enhancements for Android and iPhone.
Please see the updated [Titanium Mobile Reference Documentation for 1.5.0](/apidoc/mobile/1.5.0) *These will be updated by Monday*
-We have [addressed](https://appcelerator.lighthouseapp.com/tickets?q=milestone:%22Release+1.5.0%22+tagged:android+state:resolved&filter=) almost 300 issues since 1.4.0. Thanks for everyone's reported issues and patience as we have worked a little longer on this release than we had original anticipated.
+We have addressed almost 300 issues since 1.4.0. Thanks for everyone's reported issues and patience as we have worked a little longer on this release than we had original anticipated.
Android Breaking Change
---------------------------
@@ -14,7 +14,7 @@ There is one breaking change. The `Ti.UI.Android.createOptionMenu` and `Ti.UI.An
Android Changes
---------------
-This is a big release for our Android platform. We added over 60 [features](https://appcelerator.lighthouseapp.com/tickets?q=milestone:%22Release+1.5.0%22+tagged:android+tagged:feature+state:resolved&filter=) and addressed over 200 [other issues](https://appcelerator.lighthouseapp.com/tickets?q=milestone:%22Release+1.5.0%22+tagged:android+tagged:defect+state:resolved&filter=).
+This is a big release for our Android platform. We added over 60 features and addressed over 200 other issues.
- Android Activity exposed into each Javascript context as `Ti.Android.currentActivity`
- Core Android Objects: Activity, Intent, PendingIntent, Service, Menu, and MenuItem
diff --git a/apidoc/Titanium/CHANGELOG/1.6.0.mdoc b/apidoc/Titanium/CHANGELOG/1.6.0.mdoc
index bee698c8915..a9601f47494 100644
--- a/apidoc/Titanium/CHANGELOG/1.6.0.mdoc
+++ b/apidoc/Titanium/CHANGELOG/1.6.0.mdoc
@@ -4,7 +4,7 @@ Titanium Mobile 1.6.0 - 02/23/2011
This release includes general bug fixes and enhancements for Android and iPhone.
Please see the updated [Titanium Mobile Reference Documentation for 1.6.0](/apidoc/mobile/1.6.0)
-We [addressed](https://appcelerator.lighthouseapp.com/projects/32238-titanium-mobile/tickets?q=milestone%3A%22Release+1.6.0%22+state%3Aresolved&filter=) close to 300 issues since 1.5.0. A little over 150 for [android](https://appcelerator.lighthouseapp.com/projects/32238-titanium-mobile/tickets?q=milestone%3A%22Release+1.6.0%22+state%3Aresolved+tagged%3Aandroid&filter=), and about 120 for [iOS](https://appcelerator.lighthouseapp.com/projects/32238-titanium-mobile/tickets?q=milestone%3A%22Release+1.6.0%22+state%3Aresolved+tagged%3Aios&filter=), and several apidoc issues.
+We addressed close to 300 issues since 1.5.0. A little over 150 for android, and several apidoc issues.
Android Changes
---------------
@@ -48,4 +48,3 @@ Platform Developer Changes
--------------------------
- Beta Android NDK support in the tooling.
- Module declarations in `tiapp.xml` now accept a `platform` attribute
-
diff --git a/apidoc/Titanium/CHANGELOG/1.6.1.mdoc b/apidoc/Titanium/CHANGELOG/1.6.1.mdoc
index 6c25df26a14..c1656ca7b59 100644
--- a/apidoc/Titanium/CHANGELOG/1.6.1.mdoc
+++ b/apidoc/Titanium/CHANGELOG/1.6.1.mdoc
@@ -4,23 +4,23 @@ Titanium Mobile 1.6.1 - 03/15/2011
This release includes general bug fixes for Android and iPhone.
Please see the updated [Titanium Mobile Reference Documentation for 1.6.1](/apidoc/mobile/1.6.1)
-[Full list of Issues that were addressed in 1.6.1](https://appcelerator.lighthouseapp.com/projects/32238-titanium-mobile/tickets?q=tagged%3Arelease-1.6.1+state%3Aresolved&filter=)
+Full list of Issues that were addressed in 1.6.
Android Changes
---------------
-We addressed a few [issues](https://appcelerator.lighthouseapp.com/projects/32238-titanium-mobile/tickets?q=tagged%3Aandroid+tagged%3Arelease-1.6.1+state%3Aresolved&filter=), including:
+We addressed a few[issues
-- Added support for flags on Intents. [Ticket 3248](https://appcelerator.lighthouseapp.com/projects/32238/tickets/3248-android-support-intent-flags)
-- Use UTF8 encoding when compiling JS to bytecode [Ticket 3080](https://appcelerator.lighthouseapp.com/projects/32238-titanium-mobile/tickets/3080-android-deploy-corrupts-utf-8-characters)
-- Handle some edge cases for absolute app:// URL handling in compiled JS [Ticket 3312](https://appcelerator.lighthouseapp.com/projects/32238-titanium-mobile/tickets/3312-android-correctly-handle-app-urls-in-compiled-js)
-- Support custom backgroundColor for TabGroup, allow default activity overriding in tiapp.xml [Ticket 3290](https://appcelerator.lighthouseapp.com/projects/32238-titanium-mobile/tickets/3290-android-tabgroup-never-translucent-even-if-translucent-theme-applied-to-titabactivity)
-- Only create 1 ActivityProxy for lightweight windows, fixing activity lifecycle event listeners bring broken in some cases [Ticket 3220](https://appcelerator.lighthouseapp.com/projects/32238-titanium-mobile/tickets/3220-android-new-activityproxy-being-created-for-light-weight-windows)
+- Added support for flags on Intents. Ticket 3248
+- Use UTF8 encoding when compiling JS to bytecode Ticket 3080
+- Handle some edge cases for absolute app:// URL handling in compiled JS Ticket 3312
+- Support custom backgroundColor for TabGroup, allow default activity overriding in tiapp.xml Ticket 3290
+- Only create 1 ActivityProxy for lightweight windows, fixing activity lifecycle event listeners bring broken in some cases Ticket 3220
iOS Changes
-----------
-We addressed a few [issues](https://appcelerator.lighthouseapp.com/projects/32238-titanium-mobile/tickets?q=tagged%3Aios+tagged%3Arelease-1.6.1+state%3Aresolved&filter=), including:
+We addressed a few issues, including:
-- XCode4 support. [Ticket 3220](https://appcelerator.lighthouseapp.com/projects/32238-titanium-mobile/tickets/3320-ios-xcode-4-unable-to-use-push-cert-with-ks) [Ticket 3250](https://appcelerator.lighthouseapp.com/projects/32238-titanium-mobile/tickets/3250-timobile-160170-xcode-4-code-sign-errors-when-installing-to-device) [Ticket 3330](https://appcelerator.lighthouseapp.com/projects/32238-titanium-mobile/tickets/3330-ios-xcode-4-packaged-apps-fail-to-launch-in-organizer)
+- XCode4 support. Ticket 3220 Ticket 3250 Ticket 3330
- Fixes to allow support for Ti+ Barcode module.
-- Fixes for Facebook authorization on 3.1.x and Safari-disabled devices. [Ticket 3211](https://appcelerator.lighthouseapp.com/projects/32238-titanium-mobile/tickets/3211-ios-facebook-module-loggedin-never-true-when-safari-restricted)
+- Fixes for Facebook authorization on 3.1.x and Safari-disabled devices. Ticket 3211
diff --git a/apidoc/Titanium/CHANGELOG/1.6.2.mdoc b/apidoc/Titanium/CHANGELOG/1.6.2.mdoc
index dd4e80ac54c..6e532a71b61 100644
--- a/apidoc/Titanium/CHANGELOG/1.6.2.mdoc
+++ b/apidoc/Titanium/CHANGELOG/1.6.2.mdoc
@@ -4,11 +4,11 @@ Titanium Mobile 1.6.2 - 04/18/2011
This release includes general bug fixes for Android and iPhone.
Please see the updated [Titanium Mobile Reference Documentation for 1.6.2](/apidoc/mobile/1.6.2)
-[Full list of Issues that were addressed in 1.6.2](http://jira.appcelerator.org/secure/IssueNavigator.jspa?mode=hide&requestId=10133)
+Full list of Issues that were addressed in 1.6.2
iOS Changes
-----------
-We addressed a few [issues](http://jira.appcelerator.org/secure/IssueNavigator.jspa?mode=hide&requestId=10132), including:
+We addressed a few issues, including:
- iOS: Push Notifications causing rejections. [TIMOB-3595](https://jira-archive.titaniumsdk.com/TIMOB-3595) Apple changed their screening process for App Store submissions for iOS. If a binary contains the call for registering for push notifications, it must include an entitlement resource. The 1.6.2 SDK for iOS checks to see if the API is used and if it's not, strips out the push notification registration call so it can pass review.
- iOS: Remote Streaming 2 - no spinner is invoked on load [TIMOB-2743](https://jira-archive.titaniumsdk.com/TIMOB-2743) The spinner should be properly invoked when loading for remote streaming.
@@ -16,7 +16,7 @@ We addressed a few [issues](http://jira.appcelerator.org/secure/IssueNavigator.j
Android Changes
---------------
-We addressed a few [issues](http://jira.appcelerator.org/secure/IssueNavigator.jspa?mode=hide&requestId=10131), including:
+We addressed a few issues, including:
- Added support for Custom Fonts [TIMOB-3418](https://jira-archive.titaniumsdk.com/TIMOB-3418)
- Custom Attributes on Pickers [TIMOB-3225](https://jira-archive.titaniumsdk.com/TIMOB-3225)
diff --git a/apidoc/Titanium/CHANGELOG/1.7.0.mdoc b/apidoc/Titanium/CHANGELOG/1.7.0.mdoc
index 5b8286d62f5..0a42425f63f 100644
--- a/apidoc/Titanium/CHANGELOG/1.7.0.mdoc
+++ b/apidoc/Titanium/CHANGELOG/1.7.0.mdoc
@@ -4,7 +4,7 @@ Titanium Mobile 1.7.0 - 06/06/2011
This release candidate includes general bug fixes for Android and iPhone.
Please see the updated [Titanium Mobile Reference Documentation for 1.7.0](/apidoc/mobile/1.7.0)
-[Full list of Issues that were addressed in 1.7.0](http://jira.appcelerator.org/secure/IssueNavigator.jspa?mode=hide&requestId=10188)
+Full list of Issues that were addressed in 1.7.0
New Features on iOS and Android
-------------------------------
@@ -18,7 +18,7 @@ New Features on iOS and Android
Android Changes
---------------
-We addressed a few [issues](http://jira.appcelerator.org/secure/IssueNavigator.jspa?mode=hide&requestId=10189), including:
+We addressed a few issues, including:
- Fastdev
- [TIMOB-3599 - Android: Remote Images not showing up](https://jira-archive.titaniumsdk.com/TIMOB-3599)
@@ -44,7 +44,7 @@ We addressed a few [issues](http://jira.appcelerator.org/secure/IssueNavigator.j
iOS Changes
-----------
-We addressed a few [issues](http://jira.appcelerator.org/secure/IssueNavigator.jspa?mode=hide&requestId=10190), including:
+We addressed a few issues, including:
- [TIMOB-3210 - iPad: Popover PassThroughViews property exposure](https://jira-archive.titaniumsdk.com/TIMOB-3210)
- [TIMOB-3169 - iOS: Implement forceDialogAuth property in Facebook module](https://jira-archive.titaniumsdk.com/TIMOB-3169)
diff --git a/apidoc/Titanium/CHANGELOG/1.7.1.mdoc b/apidoc/Titanium/CHANGELOG/1.7.1.mdoc
index bbea3e163d2..11cbce686d4 100644
--- a/apidoc/Titanium/CHANGELOG/1.7.1.mdoc
+++ b/apidoc/Titanium/CHANGELOG/1.7.1.mdoc
@@ -7,5 +7,5 @@ Android did not change.
Please see the updated [Titanium Mobile Reference Documentation for 1.7.1](/apidoc/mobile/1.7.1)
-[Full list of Issues that were addressed in 1.7.1](http://jira.appcelerator.org/secure/IssueNavigator.jspa?mode=hide&requestId=10545)
+Full list of Issues that were addressed in 1.7.1
diff --git a/apidoc/Titanium/CHANGELOG/1.7.2.mdoc b/apidoc/Titanium/CHANGELOG/1.7.2.mdoc
index ccdfa6d598e..c2bfd9a5b79 100644
--- a/apidoc/Titanium/CHANGELOG/1.7.2.mdoc
+++ b/apidoc/Titanium/CHANGELOG/1.7.2.mdoc
@@ -4,14 +4,14 @@ Titanium Mobile 1.7.2 - 07/20/2011
This release candidate includes general bug fixes for Android and iPhone.
Please see the updated [Titanium Mobile Reference Documentation for 1.7.2](/apidoc/mobile/1.7.2)
-[Full list of Issues that were addressed in 1.7.2](http://jira.appcelerator.org/secure/IssueNavigator.jspa?mode=hide&requestId=10946)
+Full list of Issues that were addressed in 1.7.2
Android Changes
---------------
With release 1.7.2 we support deploying applications to Honeycomb tablet devices (API 11+). Support for tablet specific controls will come in a later release.
-We addressed several [issues](http://jira.appcelerator.org/secure/IssueNavigator.jspa?mode=hide&requestId=10945), including:
+We addressed several issues, including:
- [TIMOB-4612 - Android: Reading and writing large files cause ANR / Exceptions in Fastdev](https://jira-archive.titaniumsdk.com/TIMOB-4612)
- [TIMOB-4527 - Android: Can't build project that has "xlarge" art in it.](https://jira-archive.titaniumsdk.com/TIMOB-4527)
@@ -29,7 +29,7 @@ We addressed several [issues](http://jira.appcelerator.org/secure/IssueNavigator
iOS Changes
-----------
-We addressed several [issues](http://jira.appcelerator.org/secure/IssueNavigator.jspa?mode=hide&requestId=10947), including:
+We addressed several issues, including:
- [TIMOB-4611 - Debugger: Evaluation does not handle objects properly](https://jira-archive.titaniumsdk.com/TIMOB-4611)
- [TIMOB-4610 - iOS: app crashes when processing xml](https://jira-archive.titaniumsdk.com/TIMOB-4610)
diff --git a/apidoc/Titanium/CHANGELOG/1.7.3.mdoc b/apidoc/Titanium/CHANGELOG/1.7.3.mdoc
index e443a8be0d5..a2ad32c1554 100644
--- a/apidoc/Titanium/CHANGELOG/1.7.3.mdoc
+++ b/apidoc/Titanium/CHANGELOG/1.7.3.mdoc
@@ -4,12 +4,12 @@ Titanium Mobile 1.7.3 - 10/17/2011
This release candidate includes general bug fixes for Android and iPhone.
Please see the updated [Titanium Mobile Reference Documentation for 1.7.3](/apidoc/mobile/1.7.3)
-[Full list of Issues that were addressed in 1.7.3](http://jira.appcelerator.org/secure/IssueNavigator.jspa?mode=hide&requestId=11530)
+Full list of Issues that were addressed in 1.7.3
Android Changes
---------------
-We addressed several [issues](http://jira.appcelerator.org/secure/IssueNavigator.jspa?mode=hide&requestId=11931), including:
+We addressed several issues, including:
- [TIMOB-5123 - CommonJS Modules not included/functional in distribution build](https://jira-archive.titaniumsdk.com/TIMOB-5123)
- [TIMOB-4936 - require() raises an exception for JS module in 1.7.2](https://jira-archive.titaniumsdk.com/TIMOB-4936)
@@ -21,7 +21,7 @@ iOS Changes
The changes for iOS focused on addressing items identified as problems with iOS 5.
-We addressed several [issues](http://jira.appcelerator.org/secure/IssueNavigator.jspa?mode=hide&requestId=11932), including:
+We addressed several issues, including:
- [TIMOB-5313 - iOS5: Popover is not being displayed correctly and buttons are overlayed and message blogs are getting covered](https://jira-archive.titaniumsdk.com/TIMOB-5313)
- [TIMOB-5285 - Showing and Hiding Popover Causing App Crash](https://jira-archive.titaniumsdk.com/TIMOB-5285)
diff --git a/apidoc/Titanium/CHANGELOG/1.7.4.mdoc b/apidoc/Titanium/CHANGELOG/1.7.4.mdoc
index 09218206a85..2322ad0d15f 100644
--- a/apidoc/Titanium/CHANGELOG/1.7.4.mdoc
+++ b/apidoc/Titanium/CHANGELOG/1.7.4.mdoc
@@ -4,12 +4,12 @@ Titanium Mobile 1.7.4 - 10/31/2011
This release candidate includes general bug fixes for Android and iPhone.
Please see the updated [Titanium Mobile Reference Documentation for 1.7.4](/apidoc/mobile/1.7.4)
-[Full list of Issues that were addressed in 1.7.4](http://jira.appcelerator.org/secure/IssueNavigator.jspa?mode=hide&requestId=11934)
+Full list of Issues that were addressed in 1.7.4
Android Changes
---------------
-We addressed several [issues](http://jira.appcelerator.org/secure/IssueNavigator.jspa?mode=hide&requestId=12041), including:
+We addressed several issues, including:
- [TIMOB-5819 - Android: Percentage-based views need to be re-drawn on device rotation](https://jira-archive.titaniumsdk.com/TIMOB-5819)
- [TIMOB-5123 - CommonJS Modules not included/functional in distribution build](https://jira-archive.titaniumsdk.com/TIMOB-5123)
@@ -22,7 +22,7 @@ iOS Changes
-----------
Note on TIMOB-5805 below that `Titanium.Platform.id` was reverted to returning the UDID. Release 1.7.3 should not have returned the new ID since UDID was still available.
-We addressed several [issues](http://jira.appcelerator.org/secure/IssueNavigator.jspa?mode=hide&requestId=12042), including:
+We addressed several issues, including:
- [TIMOB-1419 - Update Titanium.Facebook to use Facebook's New OAuth 2.0 Authentication](https://jira-archive.titaniumsdk.com/TIMOB-1419)
- [TIMOB-5804 - iOS: Cannot launch app on device](https://jira-archive.titaniumsdk.com/TIMOB-5804)
diff --git a/apidoc/Titanium/CHANGELOG/1.7.5.mdoc b/apidoc/Titanium/CHANGELOG/1.7.5.mdoc
index 82caa431e1c..49bb58aba5d 100644
--- a/apidoc/Titanium/CHANGELOG/1.7.5.mdoc
+++ b/apidoc/Titanium/CHANGELOG/1.7.5.mdoc
@@ -11,7 +11,7 @@ No changes
iOS Changes
-----------
-We addressed two [issues](http://jira.appcelerator.org/secure/IssueNavigator.jspa?mode=hide&requestId=12047), including:
+We addressed two issues, including:
- [TIMOB-5494 - iOS: userDefaults not remembering the properties that were set](https://jira-archive.titaniumsdk.com/TIMOB-5494)
- [TIMOB-5229 - iOS: Cannot compile any projects to simulator when running Xcode 4.2 with iOS SDK 4.3](https://jira-archive.titaniumsdk.com/TIMOB-5229)
diff --git a/apidoc/Titanium/CHANGELOG/1.8.0.1.mdoc b/apidoc/Titanium/CHANGELOG/1.8.0.1.mdoc
index a710d9f4051..0dfb19c20df 100644
--- a/apidoc/Titanium/CHANGELOG/1.8.0.1.mdoc
+++ b/apidoc/Titanium/CHANGELOG/1.8.0.1.mdoc
@@ -15,16 +15,16 @@ Please note, the shipping version of the platform is versioned as *1.8.0.1*. All
Please see the updated [Titanium Mobile Reference Documentation for 1.8.0](/apidoc/mobile/1.8.0.1).
-[Full list of Issues that were addressed in 1.8.0](http://jira.appcelerator.org/secure/IssueNavigator.jspa?mode=hide&requestId=12036)
+Full list of Issues that were addressed in 1.8.0
Significant Changes In Titanium Mobile
--------------------------------------
-- [Several changes for platform parity.](http://jira.appcelerator.org/secure/IssueNavigator.jspa?mode=hide&requestId=12128)
-- V8 is the default runtime for Android devices providing a higher level of performance than the Rhino engine. If you would rather use Rhino, see the [tiapp.xml guide](http://wiki.appcelerator.org/display/guides/tiapp.xml+and+timodule.xml+Reference) and look for `ti.android.runtime`. Set it to `rhino` in your `tiapp.xml` file. Or in Titanium Studio, edit `tiapp.xml` and select a runtime from the Android Runtime list (on the Overview tab of the TiApp editor).
+- Several changes for platform parity.
+- V8 is the default runtime for Android devices providing a higher level of performance than the Rhino engine. If you would rather use Rhino, see the tiapp.xml guide and look for `ti.android.runtime`. Set it to `rhino` in your `tiapp.xml` file. Or in Titanium Studio, edit `tiapp.xml` and select a runtime from the Android Runtime list (on the Overview tab of the TiApp editor).
- We no longer support Android 2.1 (API 7).
- We no longer support iOS versions less than 4.0.
-- The new Android runtime support required updating modules support. Modules will have to be ported to `apiversion` 2. [Android Modules Porting Guide](http://wiki.appcelerator.org/display/guides/Android+Module+Porting+Guide+for+1.8.0.1)
+- The new Android runtime support required updating modules support. Modules will have to be ported to `apiversion` 2. Android Modules Porting Guide
- Replace deprecated API `globalPoint` with a member function on View called `convertPointToView`. [Android-TIMOB-5122](https://jira-archive.titaniumsdk.com/TIMOB-5122), [iOS-TIMOB-5121](https://jira-archive.titaniumsdk.com/TIMOB-5121)
- `Titanium.Platform.id` is deprecated in this release. A future release will provide alternative API(s). [TIMOB-5980](https://jira-archive.titaniumsdk.com/TIMOB-5980)
- `Titanium.UI.create3DMatrix` is deprecated, use `Titanium.UI.iOS.create3DMatrix` instead. [TIMOB-4990](https://jira-archive.titaniumsdk.com/TIMOB-4990)
@@ -49,12 +49,12 @@ The following is a regression in 1.8.0.1:
Introducing MobileWeb (Beta)
-----------------------------
-This version of Titanium Mobile now ships with a beta version of our MobileWeb platform. The MobileWeb platform allows you to use the Titanium tooling and APIs you are familiar with to target devices that support HTML5. [JIRA list of MobileWeb issues](http://jira.appcelerator.org/secure/IssueNavigator.jspa?mode=hide&requestId=12123)
+This version of Titanium Mobile now ships with a beta version of our MobileWeb platform. The MobileWeb platform allows you to use the Titanium tooling and APIs you are familiar with to target devices that support HTML5. JIRA list of MobileWeb issues
APIDoc Changes
--------------
-Another exciting addition to our product is an improved documentation system for our APIDocs. We published our [TDoc Specification](http://wiki.appcelerator.org/display/guides/TDoc+Specification) for our APIDoc and have been reworking the docs to comply with the spec. While the real magic is hidden in the source, we're able to actually use the documentation as the specification for the Titanium Mobile API. Our documentation now gets used as an HTML reference, in content assist, provides coverage data for platform parity analysis, and may be generated in other formats as required. Another gain is that we can annotate APIs to the method and property level with supported platforms, versions supported, deprecations, exclusions, and more. We have also worked on content changes and clarifications for many APIs.
+Another exciting addition to our product is an improved documentation system for our APIDocs. We published our TDoc Specification for our APIDoc and have been reworking the docs to comply with the spec. While the real magic is hidden in the source, we're able to actually use the documentation as the specification for the Titanium Mobile API. Our documentation now gets used as an HTML reference, in content assist, provides coverage data for platform parity analysis, and may be generated in other formats as required. Another gain is that we can annotate APIs to the method and property level with supported platforms, versions supported, deprecations, exclusions, and more. We have also worked on content changes and clarifications for many APIs.
The new APIDoc format uses some new conventions and annotations which may be unfamiliar. These include new conventions for describing types, and new annotations for describing how properties can be accessed.
@@ -75,11 +75,11 @@ Properties can be annotated with *permission* and *availability* annotations. Ne
Note that the new APIDocs include detail pages for events and properties, in addition to methods. The detail pages may contain additional information, such as longer descriptions, code samples, or default values.
-[JIRA List of APIDoc changes](http://jira.appcelerator.org/secure/IssueNavigator.jspa?mode=hide&requestId=12039)
+JIRA List of APIDoc changes
Android Changes
---------------
-We addressed a significant number of [issues](http://jira.appcelerator.org/secure/IssueNavigator.jspa?mode=hide&requestId=12037), including:
+We addressed a significant number of issues, including:
*Features:*
@@ -92,7 +92,7 @@ We addressed a significant number of [issues](http://jira.appcelerator.org/secur
- Expose Window Pixel Format on Heavyweight Windows [TIMOB-4104](https://jira-archive.titaniumsdk.com/TIMOB-4104)
- Enable plugins for WebViews [TIMOB-1607](https://jira-archive.titaniumsdk.com/TIMOB-1607)
- Expose Keep Screen On for Views [TIMOB-2102](https://jira-archive.titaniumsdk.com/TIMOB-2102)
-- [JIRA List of all Android Features](http://jira.appcelerator.org/secure/IssueNavigator.jspa?mode=hide&requestId=12124)
+- JIRA List of all Android Features
*Bug Fixes:*
@@ -107,13 +107,13 @@ We addressed a significant number of [issues](http://jira.appcelerator.org/secur
- Webview crashes on reopen [TIMOB-4357](https://jira-archive.titaniumsdk.com/TIMOB-4357)
- Support for SDK Tools r14/r15 style add-on folders [TIMOB-6135](https://jira-archive.titaniumsdk.com/TIMOB-6135)
- Android emulator fails to launch on Windows if there is a space in the SDCard path. [TIMOB-5393](https://jira-archive.titaniumsdk.com/TIMOB-5393)
-- [JIRA List of over 200 Android bug fixes](http://jira.appcelerator.org/secure/IssueNavigator.jspa?mode=hide&requestId=12127)
+- JIRA List of over 200 Android bug fixes
iOS Changes
-----------
-We addressed a significant number of [issues](http://jira.appcelerator.org/secure/IssueNavigator.jspa?mode=hide&requestId=12038), including:
+We addressed a significant number of issues, including:
*Features:*
@@ -125,7 +125,7 @@ We addressed a significant number of [issues](http://jira.appcelerator.org/secur
- Iteration on proxy keys and values [TIMOB-3299](https://jira-archive.titaniumsdk.com/TIMOB-3299)
- TLS Versioning for HttpClient [TIMOB-6311](https://jira-archive.titaniumsdk.com/TIMOB-6311)
- XML DOM Level 2 [TIMOB-4867](https://jira-archive.titaniumsdk.com/TIMOB-4867) [TIMOB-4868](https://jira-archive.titaniumsdk.com/TIMOB-4868) [TIMOB-5024](https://jira-archive.titaniumsdk.com/TIMOB-5024) [TIMOB-5029](https://jira-archive.titaniumsdk.com/TIMOB-5029)
-- [JIRA List of all iOS Features](http://jira.appcelerator.org/secure/IssueNavigator.jspa?mode=hide&requestId=12125)
+- JIRA List of all iOS Features
*Bug Fixes:*
@@ -147,4 +147,4 @@ We addressed a significant number of [issues](http://jira.appcelerator.org/secur
- CommonJS: Module variables not updated. [TIMOB-6688](https://jira-archive.titaniumsdk.com/TIMOB-6688)
- Packaging: Failing to include all optional icons during packaging causes errors in Xcode pre-submission verification. [TIMOB-6575](https://jira-archive.titaniumsdk.com/TIMOB-6575)
- Some modules designed for CommonJS not exporting, even with the "export" variable set. [TIMOB-6573](https://jira-archive.titaniumsdk.com/TIMOB-6573)
-- [JIRA list of over 200 iOS bug fixes](http://jira.appcelerator.org/secure/IssueNavigator.jspa?mode=hide&requestId=12126)
+- JIRA list of over 200 iOS bug fixes
diff --git a/apidoc/Titanium/CHANGELOG/1.8.1.mdoc b/apidoc/Titanium/CHANGELOG/1.8.1.mdoc
index 8148d74edac..37f6edf027a 100644
--- a/apidoc/Titanium/CHANGELOG/1.8.1.mdoc
+++ b/apidoc/Titanium/CHANGELOG/1.8.1.mdoc
@@ -7,16 +7,14 @@ improvements.
Please see the updated [Titanium Mobile Reference Documentation for 1.8.1](/apidoc/mobile/1.8.1).
-[Full list of Issues that were addressed in 1.8.1](http://jira.appcelerator.org/secure/IssueNavigator.jspa?mode=hide&requestId=12454)
+Full list of Issues that were addressed in 1.8.1
Significant Changes In Titanium Mobile
--------------------------------------
- As of Release 1.8.0.1, Xcode 3.2.6 is no longer supported. This was documented in
- the [Titanium Compatibility
- Matrix](https://wiki.appcelerator.org/display/guides/Titanium+Compatibility+Matrix),
- but mistakenly omitted from the release notes.
+ the Titanium Compatibility Matrix, but mistakenly omitted from the release notes.
Known Issues
@@ -53,7 +51,7 @@ The following sections list notable new features and bug fixes in Android.
- MapView not updating regions. [TIMOB-2104](https://jira-archive.titaniumsdk.com/TIMOB-2104)`
-For a complete list of Android fixes in this release, see: [Fixed Android Issues in JIRA](http://jira.appcelerator.org/secure/IssueNavigator.jspa?mode=hide&requestId=12455).
+For a complete list of Android fixes in this release, see: Fixed Android Issues in JIRA.
iOS Changes
@@ -113,7 +111,7 @@ The following sections list notable new features and bug fixes in iOS.
- The `getResponseHeader` method incorrectly used a case-sensitive match on response header names.
[TIMOB-6832](https://jira-archive.titaniumsdk.com/TIMOB-6832)
-For a complete list of iOS fixes in this release, see: [Fixed iOS Issues in JIRA](http://jira.appcelerator.org/secure/IssueNavigator.jspa?mode=hide&requestId=12456).
+For a complete list of iOS fixes in this release, see: Fixed iOS Issues in JIRA.
Mobile Web Changes
------------------
@@ -135,7 +133,7 @@ following UI objects are at or near parity with the other platforms:
- WebView
- Window
-For a complete list of Mobile Web fixes in this release, see: [Fixed Mobile Web Issues in JIRA](http://jira.appcelerator.org/secure/IssueNavigator.jspa?mode=hide&requestId=12457).
+For a complete list of Mobile Web fixes in this release, see: Fixed Mobile Web Issues in JIRA.
@@ -152,9 +150,9 @@ This release includes a number of documentation fixes and enhancements, includin
objects.
- A new guide section,
- [Debugging and Profiling](https://wiki.appcelerator.org/display/guides/Debugging+and+Profiling).
+ Debugging and Profiling.
-[Fixed Documentation Issues in JIRA](http://jira.appcelerator.org/secure/IssueNavigator.jspa?mode=hide&requestId=12458)
+Fixed Documentation Issues in JIRA
diff --git a/apidoc/Titanium/CHANGELOG/2.0.1.GA.mdoc b/apidoc/Titanium/CHANGELOG/2.0.1.GA.mdoc
index c5caa120847..7e59da2f4fc 100644
--- a/apidoc/Titanium/CHANGELOG/2.0.1.GA.mdoc
+++ b/apidoc/Titanium/CHANGELOG/2.0.1.GA.mdoc
@@ -42,12 +42,12 @@ includes all fixes included in Releases 1.8.1 and 1.8.2.
For a list of issues addressed in these releases, see the release notes for the previous
releases:
-* [Release Notes for Release 1.8.1](https://docs.appcelerator.com/titanium/release-notes/?version=1.8.1)
-* [Release Notes for Release 1.8.2](https://docs.appcelerator.com/titanium/release-notes/?version=1.8.2)
+* [Release Notes for Release 1.8.1](https://titaniumsdk.com/api/)
+* [Release Notes for Release 1.8.2](https://titaniumsdk.com/api/)
Note that Release 1.8.1 included fixes related to developing modules. If you are developing iOS or Android modules, see the 1.8.1 Release Notes for more information.
-Further information is available in the [Titanium Mobile SDK and Titanium Studio Documentation](https://docs.appcelerator.com/titanium/2.0/).
+Further information is available in the [Titanium Mobile SDK and Titanium Studio Documentation](https://titaniumsdk.com/api/).
@@ -68,7 +68,7 @@ Further information is available in the [Titanium Mobile SDK and Titanium Studio
### Layout System Updates
This release implements the [Composite Layout
-Specification](https://docs.appcelerator.com/titanium/latest/#!/guide/UI_Composite_Layout_Behavior_Spec),
+Specification](https://titaniumsdk.com/api/),
a major update to the UI layout system. The composite layout specification involves
several changes to the way the UI system lays out controls, so that all platforms can
follow a common layout model.
@@ -105,15 +105,12 @@ module:
To use ACS services, you must enable ACS for your project. See
[Appcelerator Cloud
-Services](https://docs.appcelerator.com/titanium/2.0/#!/guide/Appcelerator_Cloud_Services)
+Services](https://titaniumsdk.com/api/)
in the Titanium Mobile Guides
for details on how to enable ACS in a Titanium project.
For further documentation and examples of using ACS in Titanium, see the API reference for
-[`Titanium.Cloud`](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.Cloud).
-
-ACS also provides a REST API and native SDKs for many platforms. For more information,
-visit [cloud.appcelerator.com](http://cloud.appcelerator.com).
+[`Titanium.Cloud`](https://titaniumsdk.com/api/).
@@ -152,7 +149,7 @@ expose a device's contacts data to applications running in the browser.
Certain APIs are subject to limitations on Mobile Web because of the constraints
imposed on application running in the browser. For more information, see
-[Mobile Web Limitations](https://docs.appcelerator.com/titanium/#!/guide/Mobile_Web_Limitations).
+[Mobile Web Limitations](https://titaniumsdk.com/api/).
@@ -175,7 +172,7 @@ This release includes several improvements for geolocation on Android, and a new
For details on the new geolocation support, see:
-* [Titanium.Geolocation](https://docs.appcelerator.com/titanium/2.0/#!/api/Titanium.Geolocation)
+* [Titanium.Geolocation](https://titaniumsdk.com/api/)
@@ -185,9 +182,9 @@ In this release, the native APIs that can be used by native Android and iOS modu
been documented. The module APIs are not integrated into the main documentation site, but
you can find them at the following locations:
-* [Android Module API Reference](http://builds.appcelerator.com.s3.amazonaws.com/module-apidoc/2.0.0/android/index.html)
+* Android Module API Reference
-* [iOS Module API Reference](http://builds.appcelerator.com.s3.amazonaws.com/module-apidoc/2.0.0/ios/index.html)
+* iOS Module API Reference
@@ -329,10 +326,10 @@ what is currently supported in Mobile Web as well as known limitations.
This release includes a number of documentation fixes and enhancements, including the new
unified documentation site for the Titanium Mobile SDK and Titanium Studio:
-* [Titanium Mobile SDK and Titanium Studio Documentation](https://docs.appcelerator.com/titanium/2.0/)
+* [Titanium Mobile SDK and Titanium Studio Documentation](https://titaniumsdk.com/api/)
*Known Issues With the Documentation Site*
* Left-hand navigation tree occasionally stops scrolling. Reloading the site should
fix this problem.
-* Display anomalies when a large number of tabs are open.
\ No newline at end of file
+* Display anomalies when a large number of tabs are open.
diff --git a/apidoc/Titanium/CHANGELOG/2.1.0.GA.mdoc b/apidoc/Titanium/CHANGELOG/2.1.0.GA.mdoc
index a170d6443a6..51968718d17 100644
--- a/apidoc/Titanium/CHANGELOG/2.1.0.GA.mdoc
+++ b/apidoc/Titanium/CHANGELOG/2.1.0.GA.mdoc
@@ -28,10 +28,10 @@ in Release 2.0.2.
For a list of issues addressed in Release 2.0.2, see the release notes for the previous
releases:
-* [Release Notes for Release 2.0.2](https://docs.appcelerator.com/titanium/release-notes/?version=2.0.2.GA)
+* [Release Notes for Release 2.0.2](https://titaniumsdk.com/api/)
Further information is available in the updated [Titanium Mobile SDK and Titanium Studio
-Documentation](https://docs.appcelerator.com/titanium/2.1/).
+Documentation](https://titaniumsdk.com/api/).
@@ -45,7 +45,7 @@ Documentation](https://docs.appcelerator.com/titanium/2.1/).
* Parity enhancements for horizontal layouts. Horizontal layouts now follow the same
rules on iOS, Android and Mobile Web.
- A new property, [horizontalWrap](https://docs.appcelerator.com/titanium/2.1/index.html#!/api/Titanium.UI.View-property-horizontalWrap),
+ A new property, [horizontalWrap](https://titaniumsdk.com/api/),
has been added to enable or disable wrapping on horizontal layouts. With
`horizontalWrap` set to `false`, a horizontal layout lays out its children in a single
row, left to right. With `horizontalWrap` set to `true` (default) horizontal layout
@@ -54,7 +54,7 @@ Documentation](https://docs.appcelerator.com/titanium/2.1/).
this matches the iOS behavior in previous releases.
See the discussion of horizontal layout in the description for the
- [layout](https://docs.appcelerator.com/titanium/2.1/index.html#!/api/Titanium.UI.View-property-layout)
+ [layout](https://titaniumsdk.com/api/)
property for more details.
* Support for Android and iOS modules combining JavaScript and native code
@@ -74,7 +74,7 @@ Documentation](https://docs.appcelerator.com/titanium/2.1/).
it.
* Added `setObject` and `getObject` methods to
- [Ti.App.Properties](https://docs.appcelerator.com/titanium/2.1/index.html#!/api/Titanium.App.Properties)
+ [Ti.App.Properties](https://titaniumsdk.com/api/)
([TIMOB-322](https://jira-archive.titaniumsdk.com/TIMOB-322)).
* New unit test framework. This release includes the first version of the new Anvil unit
@@ -93,7 +93,7 @@ Documentation](https://docs.appcelerator.com/titanium/2.1/).
back into the common namespace and the previous deprecation is being reversed.
In this release, the
- [3DMatrix](https://docs.appcelerator.com/titanium/2.1/index.html#!/api/Titanium.UI.3DMatrix)
+ [3DMatrix](https://titaniumsdk.com/api/)
object and the `ANIMATION_CURVE` constants are being moved back into the common namespace.
@@ -165,7 +165,7 @@ The following section lists notable new iOS features and bug fixes in this relea
* TLS version fallback. With iOS Release 5.0, Apple changed the default TLS version for
secure HTTP from 1.0 to 1.2, causing secure HTTP connections to fail when
communicating with older servers. With this fix, when using
- [HTTPClient](https://docs.appcelerator.com/titanium/2.1/index.html#!/api/Titanium.Network.HTTPClient)
+ [HTTPClient](https://titaniumsdk.com/api/)
to access an HTTPS URL, if the initial connection fails _and no TLS version was
specified_, the HTTP client retries the connection using TLS 1.0.
@@ -178,7 +178,7 @@ The following section lists notable new iOS features and bug fixes in this relea
TLS 1.0.
* Enhancements to
- [ScrollableView](https://docs.appcelerator.com/titanium/2.1/index.html#!/api/Titanium.UI.ScrollableView).
+ [ScrollableView](https://titaniumsdk.com/api/).
Improvements include new properties for customizing the paging control appearance and position:
`pagingControlAlpha`, `pagingControlOnTop`, and `overlayEnabled`
([TIMOB-8995](https://jira-archive.titaniumsdk.com/TIMOB-8995)).
@@ -191,20 +191,20 @@ The following section lists notable new iOS features and bug fixes in this relea
* Support for custom `Info.plist` values in `tiapp.xml`. Many of the existing
iOS-specific `tiapp.xml` values are deprecated in favor of the new values.
- See [`tiapp.xml` and `timodule.xml` Reference](https://docs.appcelerator.com/titanium/2.1/index.html#!/guide/tiapp.xml_and_timodule.xml_Reference)
+ See [`tiapp.xml` and `timodule.xml` Reference](https://titaniumsdk.com/api/)
for details.
* Added drag and drop for map annotations ([TIMOB-1242](https://jira-archive.titaniumsdk.com/TIMOB-1242)).
-* Added `dragStart` and `dragEnd` events on [`TableView`](https://docs.appcelerator.com/titanium/2.1/index.html#!/api/Titanium.UI.TableView) objects.
+* Added `dragStart` and `dragEnd` events on [`TableView`](https://titaniumsdk.com/api/) objects.
-* Added [`TableView.setContentInsets`](https://docs.appcelerator.com/titanium/2.1/index.html#!/api/Titanium.UI.TableView-method-setContentInsets)
+* Added [`TableView.setContentInsets`](https://titaniumsdk.com/api/)
method to define padding around the table's contents.
* `Ti.App` supports a new [`paused`](Titanium.App.paused) event.
* Support for iOS system textures. The following constants, defined in
- [Ti.UI.iOS](https://docs.appcelerator.com/titanium/2.1/index.html#!/api/Titanium.UI.iOS),
+ [Ti.UI.iOS](https://titaniumsdk.com/api/),
can be used wherever a color value is required:
* `COLOR_GROUP_TABLEVIEW_BACKGROUND`. Background color for group table views.
diff --git a/apidoc/Titanium/CHANGELOG/2.1.2.GA.mdoc b/apidoc/Titanium/CHANGELOG/2.1.2.GA.mdoc
index c994eb7b854..90a4bc649e4 100644
--- a/apidoc/Titanium/CHANGELOG/2.1.2.GA.mdoc
+++ b/apidoc/Titanium/CHANGELOG/2.1.2.GA.mdoc
@@ -176,7 +176,7 @@ New Feature:
([TIMOB-10041](https://jira-archive.titaniumsdk.com/TIMOB-10041)).
This new feature adds the ability to receive location updates on significant location changes
only, greatly reducing battery usage. Enable this feature by setting the
- [trackSignificantLocationChange](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.Geolocation-property-trackSignificantLocationChange)
+ [trackSignificantLocationChange](https://titaniumsdk.com/api/)
property to `true`.
Bug Fixes:
@@ -227,25 +227,21 @@ version of the `ti.cloudpush` module, version 2.0.7. New features and fixes in t
The data that the application must store depends on the type of authentication in use.
* If using 2-legged OAuth or access key authentication, you must store and restore
- the [sessionId](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.Cloud.sessionId) value.
+ the [sessionId](https://titaniumsdk.com/api/) value.
* If using 3-legged OAuth, introduced in this release, you must store and restore the
- [accessToken](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.Cloud.accessToken) value. Unlike session IDs, access
+ [accessToken](https://titaniumsdk.com/api/) value. Unlike session IDs, access
tokens expire after a set period of time. After the access token expires, the user
will need to reauthenticate. The
- [expiresIn](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.Cloud.expiresIn)
+ [expiresIn](https://titaniumsdk.com/api/)
property is set when a secure login succeeds, and gives the lifespan of the new access token, in seconds.
* The Ti.Cloud module now supports secure login and secure user creation using 3-legged
OAuth. For more information, see:
- * [Users.secureCreate](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.Cloud.Users-method-secureCreate)
+ * [Users.secureCreate](https://titaniumsdk.com/api/)
- * [Users.secureLogin](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.Cloud.Users-method-secureLogin)
-
- For general information on ACS Authentication, see:
-
- *
+ * [Users.secureLogin](https://titaniumsdk.com/api/)
* The Ti.CloudPush module fixes an issue where badge numbers were not displayed on
Android 4.x devices.
@@ -267,22 +263,22 @@ This release includes a number of documentation fixes and enhancements, includin
The following APIs are new in this release:
-* [Titanium.Geolocation.trackSignificantLocationChange](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.Geolocation-property-trackSignificantLocationChange)
+* [Titanium.Geolocation.trackSignificantLocationChange](https://titaniumsdk.com/api/)
(iOS only)
-* [Titanium.UI.TextField.setSelection](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.TextArea-method-setSelection)
+* [Titanium.UI.TextField.setSelection](https://titaniumsdk.com/api/)
(Android only)
-* [Titanium.UI.TextArea.setSelection](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.TextArea-method-setSelection)
+* [Titanium.UI.TextArea.setSelection](https://titaniumsdk.com/api/)
(Android only)
-* [Titanium.UI.TextArea.scrollsToTop](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.TextArea-property-scrollsToTop)
+* [Titanium.UI.TextArea.scrollsToTop](https://titaniumsdk.com/api/)
(iOS only)
-* [Titanium.UI.TableView.scrollsToTop](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.TableView-property-scrollsToTop)
+* [Titanium.UI.TableView.scrollsToTop](https://titaniumsdk.com/api/)
(iOS only)
-* [Titanium.Cloud.accessToken](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.Cloud-property-accessToken)
-* [Titanium.Cloud.expiresIn](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.Cloud-property-expiresIn)
-* [Titanium.Cloud.sessionId](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.Cloud-property-sessionId)
-* [Titanium.Cloud.Users.secureCreate](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.Cloud.Users-method-secureCreate)
-* [Titanium.Cloud.Users.secureLogin](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.Cloud.Users-method-secureLogin)
-* [Titanium.Cloud.Users.secureStatus](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.Cloud.Users-method-secureStatus)
+* [Titanium.Cloud.accessToken](https://titaniumsdk.com/api/)
+* [Titanium.Cloud.expiresIn](https://titaniumsdk.com/api/)
+* [Titanium.Cloud.sessionId](https://titaniumsdk.com/api/)
+* [Titanium.Cloud.Users.secureCreate](https://titaniumsdk.com/api/)
+* [Titanium.Cloud.Users.secureLogin](https://titaniumsdk.com/api/)
+* [Titanium.Cloud.Users.secureStatus](https://titaniumsdk.com/api/)
@@ -303,4 +299,3 @@ The following APIs are deprecated in this release:
In the next major release, any APIs deprecated _prior to_
release 1.8 will be removed.
-
diff --git a/apidoc/Titanium/CHANGELOG/2.1.3.GA.mdoc b/apidoc/Titanium/CHANGELOG/2.1.3.GA.mdoc
index eae2d72dc27..2eb48c71951 100644
--- a/apidoc/Titanium/CHANGELOG/2.1.3.GA.mdoc
+++ b/apidoc/Titanium/CHANGELOG/2.1.3.GA.mdoc
@@ -47,7 +47,7 @@ iOS 6 changed the way that applications access the device's contacts. As a resul
2.1.3 introduces a new API to check or request authorization to access contacts.
Use the new
-[Ti.Contacts.contactsAuthorization](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.Contacts-property-contactsAuthorization)
+[Ti.Contacts.contactsAuthorization](https://titaniumsdk.com/api/)
property indicates whether the application is authorized to access contacts. It returns
one of four values:
@@ -58,13 +58,13 @@ one of four values:
The application should not attempt to reauthorize in this case.
* `AUTHORIZATION_UNKNOWN`. Current authorization state is unknown, and the application
should call the
- [requestAuthorization](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.Contacts-method-requestAuthorization)
+ [requestAuthorization](https://titaniumsdk.com/api/)
method to request authorization from the user.
On iOS prior to iOS 6, and on Android, `contactsAuthorization` always returns `AUTHORIZATION_AUTHORIZED`.
For more information and sample code using the new APIs, see the
-[Titanium.Contacts](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.Contacts)
+[Titanium.Contacts](https://titaniumsdk.com/api/)
reference page.
### iPhone 5 Assets and Splash Screens
diff --git a/apidoc/Titanium/CHANGELOG/2.1.4.GA.mdoc b/apidoc/Titanium/CHANGELOG/2.1.4.GA.mdoc
index 3fc6acf3fd2..08a98de98e8 100644
--- a/apidoc/Titanium/CHANGELOG/2.1.4.GA.mdoc
+++ b/apidoc/Titanium/CHANGELOG/2.1.4.GA.mdoc
@@ -18,7 +18,7 @@ Xcode 4.5.2.
This release has been tested on computers running Windows 8.
-* [Full list of Issues that were addressed in Release 2.1.4](http://jira.appcelerator.org/secure/IssueNavigator.jspa?mode=hide&requestId=14177)
+* Full list of Issues that were addressed in Release 2.1.4
diff --git a/apidoc/Titanium/CHANGELOG/3.0.0.GA.mdoc b/apidoc/Titanium/CHANGELOG/3.0.0.GA.mdoc
index 211a4e62191..c48300f0be2 100644
--- a/apidoc/Titanium/CHANGELOG/3.0.0.GA.mdoc
+++ b/apidoc/Titanium/CHANGELOG/3.0.0.GA.mdoc
@@ -36,13 +36,13 @@ Note that this release includes breaking changes. See
This release includes over 500 bug fixes and improvements:
-* [Full list of Issues that were addressed in Release 3.0.0](http://jira.appcelerator.org/secure/IssueNavigator.jspa?mode=hide&requestId=14142)
+* Full list of Issues that were addressed in Release 3.0.0
-* [Fixed Android Issues](http://jira.appcelerator.org/secure/IssueNavigator.jspa?mode=hide&requestId=14143)
+* Fixed Android Issues
-* [Fixed iOS Issues](http://jira.appcelerator.org/secure/IssueNavigator.jspa?mode=hide&requestId=13739)
+* Fixed iOS Issues
-* [Fixed Mobile Web Issues](http://jira.appcelerator.org/secure/IssueNavigator.jspa?mode=hide&requestId=14145)
+* Fixed Mobile Web Issues
See [New Features](#new) for a summary of new features in this release.
@@ -58,7 +58,7 @@ may require code changes to run your application on Titanium SDK 3.0.
### Node.js Requirement
You must install Node.js to use the new Titanium command-line interface (CLI) and Titanium
-SDK 3.0. See [Installing Node](https://docs.appcelerator.com/titanium/latest/#!/guide/Installing_Node) for
+SDK 3.0. See [Installing Node](https://titaniumsdk.com/api/) for
details.
@@ -80,7 +80,7 @@ A subsequent blog post will describe how you can take advantage of the action ba
In previous versions of the SDK, each tab group window was in its own activity. In SDK 3.0, the tab group has its own Android activity (exposed as TabGroup.activity
). The individual tab windows all share the same activity. This may affect you, for example, if you are creating a different options menu for each window, since you can only associate a single onCreateOptionsMenu
callback with the tab group.
-To switch menu items when the tabs are switched, you can use the new Activity.invalidateOptionsMenu
method whenever you want to change the contents of the options menu. For example, you could call invalidateOptionsMenu
in the focus event handler for each tab window, and add logic in the onCreateOptionsMenu
callback to create the appropriate menu items for the active tab.
+To switch menu items when the tabs are switched, you can use the new Activity.invalidateOptionsMenu
method whenever you want to change the contents of the options menu. For example, you could call invalidateOptionsMenu
in the focus event handler for each tab window, and add logic in the onCreateOptionsMenu
callback to create the appropriate menu items for the active tab.
#### Application Title Bar
@@ -93,11 +93,11 @@ To restore the previous behavior, set the TabGroup.navBarHidden
pro
### Android ActivityIndicator Changes
-In SDK 3.0, the Android ActivityIndicator
has been reimplemented to create parity with iOS and Mobile Web. The old ActivityIndicator
presented a modal dialog on Android. The new ActivityIndicator
is a view that must be added to another view or window in order to be displayed, as on iOS and Mobile Web. (Unlike the iOS activity indicator, however, the Android activity indicator can't be placed in the window title bar.)
+In SDK 3.0, the Android ActivityIndicator
has been reimplemented to create parity with iOS and Mobile Web. The old ActivityIndicator
presented a modal dialog on Android. The new ActivityIndicator
is a view that must be added to another view or window in order to be displayed, as on iOS and Mobile Web. (Unlike the iOS activity indicator, however, the Android activity indicator can't be placed in the window title bar.)
In addition, Android and Mobile Web now support Ti.UI.ActivityIndicatorStyle
, which contains the same constants as Ti.UI.iPhone.ActivityIndicatorStyle
. iOS will support Ti.UI.ActivityIndicatorStyle
in a subsequent release.
-A new, Android-specific ProgressIndicator
object replaces the old Android activity indicator. You can use ProgressIndicator to create either a modal dialog or a progress bar in the window title.
+A new, Android-specific ProgressIndicator
object replaces the old Android activity indicator. You can use ProgressIndicator to create either a modal dialog or a progress bar in the window title.
Code using the old Android activity indicator will break, since the new activity indicator must be added to a view. To update code for 3.0, you can switch to using the new activity indicator like you do on iOS or Mobile Web. Or to retain the previous behavior, switch to a ProgressIndicator
.
@@ -189,11 +189,11 @@ network. On Android, debugging takes places over a USB connection.
For details, see the following topics in the Titanium Guides:
-* [Debugging Titanium Applications](https://docs.appcelerator.com/titanium/latest/#!/guide/Debugging_Titanium_Applications)
+* [Debugging Titanium Applications](https://titaniumsdk.com/api/)
* [Debugging on Android
-Devices](https://docs.appcelerator.com/titanium/latest/#!/guide/Debugging_on_Android_Devices)
+Devices](https://titaniumsdk.com/api/)
* [Debugging on iOS
-Devices](https://docs.appcelerator.com/titanium/latest/#!/guide/Debugging_on_iOS_Devices)
+Devices](https://titaniumsdk.com/api/)
@@ -207,8 +207,8 @@ Titanium from the command line, you can install Alloy manually using `npm`.
For installation instructions and an introduction to the Alloy framework, see:
-* [Alloy Quick Start](https://docs.appcelerator.com/titanium/latest/#!/guide/Alloy_Quick_Start)
-* [Alloy Concepts](https://docs.appcelerator.com/titanium/latest/#!/guide/Alloy_Concepts)
+* [Alloy Quick Start](https://titaniumsdk.com/api/)
+* [Alloy Concepts](https://titaniumsdk.com/api/)
@@ -220,7 +220,7 @@ some tasks are delegated to the Python scripts, so Python is still required to b
projects.
To use this release, you must install Node.js. See
-[Installing Node](https://docs.appcelerator.com/titanium/latest/#!/guide/Installing_Node) for
+[Installing Node](https://titaniumsdk.com/api/) for
details.
For this release, Studio installs the new CLI and uses the new CLI when building with SDK
@@ -239,7 +239,7 @@ to create and build iOS and Android native modules.
For details, see:
* [Titanium Command-Line Interface
-Reference](https://docs.appcelerator.com/titanium/latest/#!/guide/Titanium_Command-Line_Interface_Reference)
+Reference](https://titaniumsdk.com/api/)
in the Titanium Guides.
@@ -402,7 +402,7 @@ for each tab window, this will not work.
For action items, you can add items to the action bar by creating menu items and
specifying the new
-[`showAsAction`](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.Android.MenuItem-property-showAsAction)
+[`showAsAction`](https://titaniumsdk.com/api/)
property to `SHOW_AS_ACTION_ALWAYS`, `SHOW_AS_ACTION_IF_ROOM`,
`SHOW_AS_ACTION_WITH_TEXT` or `SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW`. For example:
@@ -468,9 +468,9 @@ show the "up" affordance on a tab group's action bar you could use code like thi
See also:
-* [Android Action Bar](https://docs.appcelerator.com/titanium/latest/#!/guide/Android_Action_Bar) in the Titanium Guides.
+* [Android Action Bar](https://titaniumsdk.com/api/) in the Titanium Guides.
* [Action Bar](https://developer.android.com/guide/topics/ui/actionbar.html) in the Android API Guides.
-* [Android Themes](https://docs.appcelerator.com/titanium/latest/#!/guide/Android_Themes) in the Titanium Guides.
+* [Android Themes](https://titaniumsdk.com/api/) in the Titanium Guides.
@@ -503,13 +503,13 @@ specify the voice-over text associated with a given UI element.
In addition, there are several new system-level events related to accessibility. The new
-[accessibilityChanged](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.App-event-accessibilitychanged),
+[accessibilityChanged](https://titaniumsdk.com/api/),
event is fired when the system's accessibility mode is changed.
The application can also fire a system event to ask the system to make a voice
announcement. On iOS the application can also fire events to notify the accessibility system that the
layout or current screen has changed. For details on these events, see the discussion on
-the [Ti.App](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.App) reference
+the [Ti.App](https://titaniumsdk.com/api/) reference
page.
diff --git a/apidoc/Titanium/CHANGELOG/3.0.2.GA.mdoc b/apidoc/Titanium/CHANGELOG/3.0.2.GA.mdoc
index 228195bc6df..0594e363dc8 100644
--- a/apidoc/Titanium/CHANGELOG/3.0.2.GA.mdoc
+++ b/apidoc/Titanium/CHANGELOG/3.0.2.GA.mdoc
@@ -75,8 +75,8 @@ the command line, you can install Alloy manually using `npm`.
For installation instructions and an introduction to the Alloy framework, see:
- * [Alloy Quick Start](https://docs.appcelerator.com/titanium/latest/#!/guide/Alloy_Quick_Start)
- * [Alloy Framework](https://docs.appcelerator.com/titanium/latest/#!/guide/Alloy_Framework)
+ * [Alloy Quick Start](https://titaniumsdk.com/api/)
+ * [Alloy Framework](https://titaniumsdk.com/api/)
@@ -104,8 +104,7 @@ localized splash screen image takes precedence over the default splash screen
image.
For more information, see the "Localized Splash Screen" section in the [Icon
-and Splash Screens guide](https://docs.appcelerator.com/titanium/latest/#!/guid
-e/Icons_and_Splash_Screens).
+and Splash Screens guide](https://titaniumsdk.com/api/).
@@ -124,8 +123,7 @@ Google API Level 11 (Android 3.0) and later, and the Android manifest
`targetSDKVersion` key must be set in the `tiapp.xml` file.
For more information and an example, see the [Titanium.UI.Android.SearchView](
-https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.Android.Search
-View) reference page.
+https://titaniumsdk.com/api/) reference page.
@@ -144,14 +142,13 @@ Previously, you had to copy sounds from the `Resources` directory into the
external storage directory.
For more information, see the [resRawDirectory
-property](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium
-.Filesystem-property-resRawDirectory).
+property](https://titaniumsdk.com/api/).
## Fixed Issues and Enhancements
- * [Full list of issues that were addressed in Release 3.0.2 RC](http://jira.appcelerator.org/secure/IssueNavigator.jspa?mode=hide&requestId=14693)
+ * Full list of issues that were addressed in Release 3.0.2 RC
diff --git a/apidoc/Titanium/CHANGELOG/3.1.0.GA.mdoc b/apidoc/Titanium/CHANGELOG/3.1.0.GA.mdoc
index 5f11dbb0bd5..2faa758138d 100644
--- a/apidoc/Titanium/CHANGELOG/3.1.0.GA.mdoc
+++ b/apidoc/Titanium/CHANGELOG/3.1.0.GA.mdoc
@@ -48,7 +48,7 @@ See [New Features](#features) for a summary of new features in this release.
This release coincides with the General Availability Release of Tizen development support with the
Titanium SDK.
-Refer to [Installing the Tizen SDK](https://docs.appcelerator.com/titanium/latest/#!/guide/Installing_the_Tizen_SDK)
+Refer to [Installing the Tizen SDK](https://titaniumsdk.com/api/)
for information on getting started with Tizen development.
@@ -62,13 +62,11 @@ Note that BlackBerry is *not* included in SDK 3.1.0. To build for BlackBerry, yo
have the BlackBerry beta version of the Titanium SDK installed. For best results, use the BlackBerry
SDK with a 3.1.1 preview build of Studio, which includes support for Alloy on BlackBerry.
-The BlackBerry beta SDK and Studio preview are available from:
-
-* [http://preview.appcelerator.com/studio/bb](http://preview.appcelerator.com/studio/bb)
+The BlackBerry beta SDK and Studio preview are available.
Note that the BlackBerry beta SDK has not been tested for any other platforms.
-Refer to [Installing the BlackBerry NDK](https://docs.appcelerator.com/titanium/latest/#!/guide/Installing_the_BlackBerry_NDK)
+Refer to [Installing the BlackBerry NDK](https://titaniumsdk.com/api/)
for information on getting started with BlackBerry 10 development.
@@ -119,12 +117,7 @@ plugins:
1. Launch Titanium Studio.
2. Click **Help** > **Install New Software**.
3. In the **Work with** field, enter the update URL for the package you want to install
- and press **Enter**. The update URLs are:
-
- * PHP - http://download.appcelerator.com/aptana/studio3/php/update/stable
- * Ruby - http://download.appcelerator.com/aptana/studio3/ruby/update/stable
- * Pydev - http://download.appcelerator.com/aptana/studio3/pydev/update/stable
-
+ and press **Enter**.
4. In the **Available Software** dialog, select the checkbox next to the package name and click **Next**.
5. Follow the prompts to complete the installation wizard.
@@ -148,7 +141,7 @@ The new add-on module behaves the same as the built-in `Titanium.Facebook` proxy
supports the native iOS 6 Facebook login.
For more information, refer to
-[Modules.Facebook](https://docs.appcelerator.com/titanium/latest/#!/api/Modules.Facebook).
+[Modules.Facebook](https://titaniumsdk.com/api/).
@@ -189,7 +182,7 @@ exceptions:
ANNOTATION_GREEN and ANNOTATION_RED.
* **Support for custom annotation views.** Instead of a pin image, you can specify a
custom view for the pin using the
- [`customView`](https://docs.appcelerator.com/titanium/latest/#!/api/Modules.Map.Annotation-property-customView) property.
+ [`customView`](https://titaniumsdk.com/api/) property.
(This property has also been added to Titanium.Map.Annotation for iOS.)
@@ -218,8 +211,8 @@ exceptions:
constant instead.
For more information, refer to
-[Modules.Map](https://docs.appcelerator.com/titanium/latest/#!/api/Modules.Map) and
-[Google Maps v2 for Android](https://docs.appcelerator.com/titanium/latest/#!/guide/Google_Maps_v2_for_Android).
+[Modules.Map](https://titaniumsdk.com/api/) and
+[Google Maps v2 for Android](https://titaniumsdk.com/api/).
@@ -320,8 +313,8 @@ The differences listed are for the final planned list view and the current table
You have to manipulate them with the ListSection they are contained in.
For more information, refer to
-[Titanium.UI.ListView](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.ListView)
-and the [ListView guide](https://docs.appcelerator.com/titanium/latest/#!/guide/ListViews).
+[Titanium.UI.ListView](https://titaniumsdk.com/api/)
+and the [ListView guide](https://titaniumsdk.com/api/).
@@ -343,7 +336,7 @@ Studio 3.1.0 includes two new features related to Alloy:
The iOS EventKit framework, allowing access to calendar events and reminders, is now
available inside Titanium. See the
-[Titanium.Calendar API reference](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.Calendar)
+[Titanium.Calendar API reference](https://titaniumsdk.com/api/)
for details.
@@ -353,7 +346,7 @@ for details.
The iOS AutoPause API pauses the location updates when an application goes into the
background. We've implemented access to this new API in Titanium. For more information,
see
-[pauseLocationUpdateAutomatically](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.Geolocation-property-pauseLocationUpdateAutomatically)
+[pauseLocationUpdateAutomatically](https://titaniumsdk.com/api/)
in the Ti.Geolocation API reference.
@@ -380,11 +373,11 @@ and device.
For details on getting started with BlackBerry, see:
-* [Installing the BlackBerry NDK](https://docs.appcelerator.com/titanium/3.0/#!/guide/Installing_the_BlackBerry_NDK) in the Titanium Guides.
+* [Installing the BlackBerry NDK](https://titaniumsdk.com/api/) in the Titanium Guides.
For details on getting started with Tizen, see:
-* [Installing the Tizen SDK](https://docs.appcelerator.com/titanium/3.0/#!/guide/Installing_the_Tizen_SDK) in the Titanium Guides.
+* [Installing the Tizen SDK](https://titaniumsdk.com/api/) in the Titanium Guides.
Note that the platform support for these new platforms is *not* reflected in the API docs.
@@ -397,13 +390,13 @@ and NFC (Android) modules.
To support these new modules which are either currently packaged with the SDK or will be
packaged with the SDK in the future, API docs for optional modules are now available in
-the [Modules](https://docs.appcelerator.com/titanium/latest/#!/api/Modules) namespace in the API reference.
+the [Modules](https://titaniumsdk.com/api/) namespace in the API reference.
Docs for Facebook, Google Maps, and NFC are available on the documentation site:
-* [Facebook Module API reference](https://docs.appcelerator.com/titanium/latest/#!/api/Modules.Facebook)
-* [Google Maps v2 Module API reference](https://docs.appcelerator.com/titanium/latest/#!/api/Modules.Map)
-* [NFC Module API reference](https://docs.appcelerator.com/titanium/latest/#!/api/Modules.Nfc)
+* [Facebook Module API reference](https://titaniumsdk.com/api/)
+* [Google Maps v2 Module API reference](https://titaniumsdk.com/api/)
+* [NFC Module API reference](https://titaniumsdk.com/api/)
@@ -415,7 +408,7 @@ not guaranteed to remain the same, so updating an object when it is out of sync
unpredictable results.
To avoid this, listen for the
-[`reload`](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.Contacts-event-reload) event.
+[`reload`](https://titaniumsdk.com/api/) event.
When you receive a `reload` event, you should assume that any existing `Person` or `Group` objects
are invalid, and reload them from the `Contacts` module before modifying them.
@@ -460,7 +453,7 @@ The usage of the global context in CommonJS modules is unsupported and deprecate
and will be removed in a future Titanium SDK release.
For recommended practices, refer to
-[CommonJS Modules in Titanium](https://docs.appcelerator.com/titanium/latest/#!/guide/CommonJS_Modules_in_Titanium)
+[CommonJS Modules in Titanium](https://titaniumsdk.com/api/)
@@ -610,4 +603,3 @@ The following APIs are deprecated in Release 3.1.0.
Titanium.UI.iOS.AdView.error.message event property
-
diff --git a/apidoc/Titanium/CHANGELOG/3.1.1.GA.mdoc b/apidoc/Titanium/CHANGELOG/3.1.1.GA.mdoc
index 5af32d04be0..e173dd56be8 100644
--- a/apidoc/Titanium/CHANGELOG/3.1.1.GA.mdoc
+++ b/apidoc/Titanium/CHANGELOG/3.1.1.GA.mdoc
@@ -90,7 +90,7 @@ To install the Android 2.3.3 SDK, launch the Android SDK manager and select to i
**Android 2.3.3 (API 10)** package.
For instructions, refer to the "Installing Android Packages with Android SDK Manager" section of the
-[Installing the Android SDK guide](https://docs.appcelerator.com/titanium/latest/#!/guide/Installing_the_Android_SDK).
+[Installing the Android SDK guide](https://titaniumsdk.com/api/).
@@ -108,7 +108,7 @@ Starting with this Release, the minimum supported Tizen SDK version is 2.1. Due
architecture changes with the Tizen platform, you are required to create and add an author certificate.
For instructions, refer to the
-[Install the Tizen SDK guide](https://docs.appcelerator.com/titanium/latest/#!/guide/Installing_the_Tizen_SDK)
+[Install the Tizen SDK guide](https://titaniumsdk.com/api/)
and review the "Create an Author Certificate", "Register an Author Certificate" and "Configuring Studio" sections.
@@ -125,7 +125,7 @@ reference the `Titanium.Calendar` namespace.
Previously, when taking a picture using the `Titanium.Media.showCamera` method, a copy of the picture would
automatically be saved to the Android device's photo gallery, ignoring the setting of the
-[saveToPhotoGallery property](https://docs.appcelerator.com/titanium/latest/#!/api/CameraOptionsType-property-saveToPhotoGallery).
+[saveToPhotoGallery property](https://titaniumsdk.com/api/).
As of this Release, this unsupported behavior has been removed. To save a copy of the picture to
the device's photo gallery, you need to set the `saveToPhotoGallery` property to `true`.
@@ -147,7 +147,7 @@ to be added to the beginning of the URL. Previously, you did not need to specif
used the `Cloud.useSecure` property, which is removed, to enable or disable SSL.
For more information, see the "tiapp.xml Properties" section in
-[Titanium.Cloud](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.Cloud).
+[Titanium.Cloud](https://titaniumsdk.com/api/).
@@ -166,13 +166,13 @@ a separate download of a specially-built SDK. BlackBerry for Titanium is current
In this Release, the following API elements were added to the Android Google Maps v2 module:
- * [Map.isGooglePlayServicesAvailable method](https://docs.appcelerator.com/titanium/latest/#!/api/Modules.Map.View-method-isGooglePlayServicesAvailable)
+ * [Map.isGooglePlayServicesAvailable method](https://titaniumsdk.com/api/)
-- checks to see Google Play Services is available on the device.
- * [View.userLocationButton property](https://docs.appcelerator.com/titanium/latest/#!/api/Modules.Map.View-property-userLocationButton)
+ * [View.userLocationButton property](https://titaniumsdk.com/api/)
-- enables (set to `true`) or disables (set to `false`) the My Location button if the `userLocation` property is enabled.
- * [View.regionchanged event](https://docs.appcelerator.com/titanium/latest/#!/api/Modules.Map.View-event-regionchanged)
+ * [View.regionchanged event](https://titaniumsdk.com/api/)
-- returns two additional properties: `latitudeDelta` and `longitudeDelta`.
@@ -199,7 +199,7 @@ The Studio Node.ACS debugger does not catch breakpoints when a debug session fir
## Fixed Issues and Enhancements
- * [Full list of issues that were addressed in Release 3.1.1](http://jira.appcelerator.org/secure/IssueNavigator.jspa?mode=hide&requestId=15204)
+ * Full list of issues that were addressed in Release 3.1.1
diff --git a/apidoc/Titanium/CHANGELOG/3.1.2.GA.mdoc b/apidoc/Titanium/CHANGELOG/3.1.2.GA.mdoc
index cccb3e4a2be..548c1a1ccf2 100644
--- a/apidoc/Titanium/CHANGELOG/3.1.2.GA.mdoc
+++ b/apidoc/Titanium/CHANGELOG/3.1.2.GA.mdoc
@@ -42,7 +42,7 @@ This release coincides with the General Availability Release of BlackBerry 10 wi
The Titanium SDK supports features of the BlackBerry 10.0.9.x NDK. You can use newer versions of the BlackBerry 10 NDK to develop and build BlackBerry Titanium applications, but the new features are not available in the Titanium SDK.
-Refer to [Installing the BlackBerry NDK](https://docs.appcelerator.com/titanium/latest/#!/guide/Installing_the_BlackBerry_NDK) for information on getting started with BlackBerry 10 development.
+Refer to [Installing the BlackBerry NDK](https://titaniumsdk.com/api/) for information on getting started with BlackBerry 10 development.
@@ -61,7 +61,7 @@ This release includes preliminary support for iOS 7 beta and Xcode 5 Developer P
This release coincides with the release of Alloy 1.2.0, which now supports dynamic styling, creating ListView objects in markup with data binding enabled, and the Tizen platform.
- * [Dynamic Styles guide](https://docs.appcelerator.com/titanium/latest/#!/guide/Dynamic_Styles)
+ * [Dynamic Styles guide](https://titaniumsdk.com/api/)
* [Dynamic Styling Sample](https://github.com/tidev/alloy/tree/master/test/apps/advanced/dynamic_styling)
* [ListView Sample](https://github.com/tidev/alloy/tree/master/test/apps/ui/listview)
* [ListView with Data Binding Sample](https://github.com/tidev/alloy/tree/master/test/apps/models/binding_listview)
@@ -138,9 +138,9 @@ Previously, the map would not re-center itself, causing the info window to appea
As of this Release, the Titanium SDK and Appcelerator Cloud Services use Google Cloud Messaging (GCM) as the default protocol to support push notifications for the Android platform. To use GCM, create a Google API project to obtain a **Google API key** and **GCM sender ID**, then supply this information to the **Manage ACS** console. For the client application, use the `Titanium.CloudPush` module to receive the push notifications.
-For instructions on setting up GCM on the server side, see the "Configure Your App For Enabling Push Notifications" subsection under the "Push Notifications" section of the [ACS: Android SDK guide](https://docs.appcelerator.com/cloud/latest/#!/guide/android).
+For instructions on setting up GCM on the server side, see the "Configure Your App For Enabling Push Notifications" subsection under the "Push Notifications" section of the [ACS: Android SDK guide](https://titaniumsdk.com/api/).
-For instructions on configuring the client application to receive push notifications, see [Titanium.CloudPush](https://docs.appcelerator.com/platform/latest/#!/api/Titanium.CloudPush).
+For instructions on configuring the client application to receive push notifications, see [Titanium.CloudPush](https://titaniumsdk.com/api/).
@@ -150,31 +150,31 @@ As of this Release, the Cloud module supports subscribing, unsubscribing and sen
The following methods rely on the device token to send, subscribe or unsubscribe from push notifications:
- * [Cloud.PushNotifications.notifyTokens](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.Cloud.PushNotifications-method-notifyTokens)
- * [Cloud.PushNotifications.subscribeToken](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.Cloud.PushNotifications-method-subscribeToken)
- * [Cloud.PushNotifications.unsubscribeToken](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.Cloud.PushNotifications-method-unsubscribeToken)
+ * [Cloud.PushNotifications.notifyTokens](https://titaniumsdk.com/api/)
+ * [Cloud.PushNotifications.subscribeToken](https://titaniumsdk.com/api/)
+ * [Cloud.PushNotifications.unsubscribeToken](https://titaniumsdk.com/api/)
To retrieve your device token:
- * For Android, use the [CloudPush module](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.CloudPush).
+ * For Android, use the [CloudPush module](https://titaniumsdk.com/api/).
- * For iOS, use the [Titanium.Network.registerForPushNotifications](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.Network-method-registerForPushNotifications) method.
+ * For iOS, use the [Titanium.Network.registerForPushNotifications](https://titaniumsdk.com/api/) method.
### Android Activity Animations
-Heavyweight windows support animated transitions when you open or close them. In the parameter dictionary you pass to the Window's `open` or `close` method, set the [activityEnterAnimation](https://docs.appcelerator.com/titanium/latest/#!/api/openWindowParams-property-activityEnterAnimation) and [activityExitAnimation](https://docs.appcelerator.com/titanium/latest/#!/api/openWindowParams-property-activityExitAnimation) keys to animation resources. `activityEnterAnimation` sets the animation you want to run on the incoming activity, while `activityExitAnimation` sets the animation you want to run on the outgoing activity.
+Heavyweight windows support animated transitions when you open or close them. In the parameter dictionary you pass to the Window's `open` or `close` method, set the [activityEnterAnimation](https://titaniumsdk.com/api/) keys to animation resources. `activityEnterAnimation` sets the animation you want to run on the incoming activity, while `activityExitAnimation` sets the animation you want to run on the outgoing activity.
Animation resources are available through the R object. Use either `Titanium.Android.R` for built-in resources or `Titanium.App.Android.R` for resources that you package in your application.
-For more information, see the "Heavyweight Window Transitions in Android" section in the [Titanium.UI.Window API Reference guide](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.Window).
+For more information, see the "Heavyweight Window Transitions in Android" section in the [Titanium.UI.Window API Reference guide](https://titaniumsdk.com/api/).
### iOS Center Offset for Map Annotations
-As of this Release, you can apply an (x, y) offset to a map annotation by specifying its [centerOffset property](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.Map.Annotation-property-centerOffset). This property is only for the iOS platform.
+As of this Release, you can apply an (x, y) offset to a map annotation by specifying its [centerOffset property](https://titaniumsdk.com/api/). This property is only for the iOS platform.
@@ -182,8 +182,8 @@ As of this Release, you can apply an (x, y) offset to a map annotation by specif
This release introduces two new read-only properties to retrieve the last Titanium.Analytics event and Titanium.Geolocation location:
- * [Titanium.Analytics.lastEvent](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.Analytics-property-lastEvent)
- * [Titanium.Geolocation.lastGeolocation](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.Geolocation-property-lastGeolocation)
+ * [Titanium.Analytics.lastEvent](https://titaniumsdk.com/api/)
+ * [Titanium.Geolocation.lastGeolocation](https://titaniumsdk.com/api/)
@@ -222,7 +222,7 @@ Alloy 1.2.1 GA is expected to be released next week with the fix fully tested.
## Fixed Issues and Enhancements
- * [Full list of issues that were addressed in Release 3.1.2](http://jira.appcelerator.org/secure/IssueNavigator.jspa?mode=hide&requestId=15324)
+ * Full list of issues that were addressed in Release 3.1.2
diff --git a/apidoc/Titanium/CHANGELOG/3.1.3.GA.mdoc b/apidoc/Titanium/CHANGELOG/3.1.3.GA.mdoc
index be2a80052f9..52ed423ce8a 100644
--- a/apidoc/Titanium/CHANGELOG/3.1.3.GA.mdoc
+++ b/apidoc/Titanium/CHANGELOG/3.1.3.GA.mdoc
@@ -38,7 +38,7 @@ including the 64-bit iPhone 5S. A future SDK will provide support for 64-bit iOS
### Summary of Changes to the Titanium SDK
This section briefly lists the changes made to the Titanium SDK to support iOS 7. For details, see
-the [iOS 7 Migration guide](https://docs.appcelerator.com/titanium/latest/#!/guide/iOS_7_Migration_Guide).
+the [iOS 7 Migration guide](https://titaniumsdk.com/api/).
* New App icons and Spotlight & Settings icons for iOS 7.
* New Windows UI architecture:
@@ -113,8 +113,8 @@ removed in Release 3.2.0. Use the new `Titanium.UI.iOS.NavigationWindow` object
navigation controller.
For details about this new object, see the "Titanium.UI.iOS.NavigationWindow" section in the [iOS 7
-Migration guide](https://docs.appcelerator.com/titanium/latest/#!/guide/iOS_7_Migration_Guide) and
-[Titanium.UI.iOS.NavigationWindow API reference](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.iOS.NavigationWindow).
+Migration guide](https://titaniumsdk.com/api/) and
+[Titanium.UI.iOS.NavigationWindow API reference](https://titaniumsdk.com/api/).
@@ -137,7 +137,7 @@ unexpectedly
## Fixed Issues and Enhancements
- * [Full list of issues that were addressed in Release 3.1.3](http://jira.appcelerator.org/secure/IssueNavigator.jspa?mode=hide&requestId=15473)
+ * Full list of issues that were addressed in Release 3.1.3
diff --git a/apidoc/Titanium/CHANGELOG/3.2.0.GA.mdoc b/apidoc/Titanium/CHANGELOG/3.2.0.GA.mdoc
index 0d5582ab42e..a3492537a92 100644
--- a/apidoc/Titanium/CHANGELOG/3.2.0.GA.mdoc
+++ b/apidoc/Titanium/CHANGELOG/3.2.0.GA.mdoc
@@ -131,8 +131,8 @@ later.**
* Upgrade from Eclipse 3.7 (Indigo) to 4.3 (Kepler) to support Mac OS X 10.9 (Mavericks)
* Support for creating Github forks
-For more details, see [Studio 3.2.0 Changes](https://docs.appcelerator.com/titanium/latest/#!/guide/Studio_3.2.0_Changes)
-and [Titanium Studio Release Notes](https://docs.appcelerator.com/titanium/latest/#!/guide/Titanium_Studio_Release_Notes).
+For more details, see [Studio 3.2.0 Changes](https://titaniumsdk.com/api/)
+and [Titanium Studio Release Notes](https://titaniumsdk.com/api/).
### Tizen 2.2.1 Support
@@ -244,7 +244,7 @@ application to use the GCM protocol.
#### Fastdev Support
As of this Release, Fastdev support is deprecated and is disabled by default. To re-enable Fastdev,
-follow the directions in the [Fastdev Reference guide](https://docs.appcelerator.com/titanium/latest/#!/guide/Fastdev_Reference_for_Android).
+follow the directions in the [Fastdev Reference guide](https://titaniumsdk.com/api/).
#### Lightweight Windows
@@ -308,7 +308,7 @@ As of this Release, the Titanium SDK no longer supports iOS 5.x and the
#### Native Map Support
The `Titanium.Map` namespace no longer supports native maps on the iOS platform. This functionality
-is now available on the [ti.map add-on module](https://docs.appcelerator.com/titanium/latest/#!/api/Modules.Map)
+is now available on the [ti.map add-on module](https://titaniumsdk.com/api/)
with additional features only available for iOS 7.
The API calls are similar except the `addRoute` method no longer accepts a dictionary as a
@@ -384,11 +384,11 @@ No additions or changes were made to the existing APIs.
As of this Release, the application can create broadcast intents to pass to broadcast receivers. To
create a BroadcastIntent, use the
-[Titanium.Android.createBroadcastIntent](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.Android-method-createBroadcastIntent)
+[Titanium.Android.createBroadcastIntent](https://titaniumsdk.com/api/)
method, then use either the
-[Titanium.Android.sendBroadcast](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.Android.Activity-method-sendBroadcast)
+[Titanium.Android.sendBroadcast](https://titaniumsdk.com/api/)
or
-[Titanium.Android.sendBroadcastWithPermission](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.Android.Activity-method-sendBroadcastWithPermission)
+[Titanium.Android.sendBroadcastWithPermission](https://titaniumsdk.com/api/)
method to pass the intent to a BroadcastReceiver.
If you are using the `sendBroadcastWithPermssion` method, modify the `tiapp.xml` file to declare a
@@ -452,13 +452,13 @@ The ti.cloudpush module version number changed to 3.2.0 to match the SDK version
#### Cookie Management
This Release introduces the
-[Titanium.Network.Cookie](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.Network.Cookie)
+[Titanium.Network.Cookie](https://titaniumsdk.com/api/)
object and a number of new Titanium.Network methods to help the application manage cookies between
the Android system cookie store, utilized by WebViews, and the HTTPClient's cookie store.
For more information, see the "Android Platform Implementation Notes" in either
-[Titanium.Network.HTTPClient](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.Network.HTTPClient)
-or [Titanium.UI.WebView](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.WebView).
+[Titanium.Network.HTTPClient](https://titaniumsdk.com/api/)
+or [Titanium.UI.WebView](https://titaniumsdk.com/api/).
#### Extra, Extra High Density Support
@@ -478,19 +478,19 @@ The following ListView features were completed in this Release:
* Dynamic item loading
* Search support
-For more information, see the [ListViews guide](https://docs.appcelerator.com/titanium/latest/#!/guide/ListViews)
-and [Titanium.UI.ListView API reference](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.ListView).
+For more information, see the [ListViews guide](https://titaniumsdk.com/api/)
+and [Titanium.UI.ListView API reference](https://titaniumsdk.com/api/).
#### Map Module
The ti.map module supports the following new APIs:
- * [Map.Annotation.showInfoWindow](https://docs.appcelerator.com/titanium/latest/#!/api/Modules.Map.Annotation-property-showInfoWindow)
+ * [Map.Annotation.showInfoWindow](https://titaniumsdk.com/api/)
property. Shows or hides the view that is displayed on the annotation when clicked.
- * [Map.View.longclick](https://docs.appcelerator.com/titanium/latest/#!/api/Modules.Map.View-event-longclick)
+ * [Map.View.longclick](https://titaniumsdk.com/api/)
event. Fired when the user makes a long gesture on the map view.
- * [Map.View.zOrderOnTop](https://docs.appcelerator.com/titanium/latest/#!/api/Modules.Map.View-property-zOrderOnTop)
+ * [Map.View.zOrderOnTop](https://titaniumsdk.com/api/)
property. Controls whether the map view's surface is placed on top of its window. Note that
this will cover all other views that could appear on the map (e.g., the zoom controls, the my
location button).
@@ -501,9 +501,9 @@ The ti.map module supports the following new APIs:
The `Titanium.UI.WebView` class exposes two Android WebSettings APIs as two new properties:
- * [cacheMode](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.WebView-property-cacheMode):
+ * [cacheMode](https://titaniumsdk.com/api/):
assign a `Titanium.Android.WEBVIEW_*` constant to this property to override how the cache is used.
- * [lightTouchEnabled](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.WebView-property-lightTouchEnabled):
+ * [lightTouchEnabled](https://titaniumsdk.com/api/):
controls using light touches to make a selection and activate mouseovers, for example,
highlighting links in response to user interaction. Enabled by default (set to `true`). To
workaround [Android Issue 33651](https://code.google.com/p/android/issues/detail?id=33651), set
@@ -536,13 +536,13 @@ and apply specific attributes, such as font and kerning, to characters or range
string.
Create a
-[Titanium.UI.iOS.AttributedString](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.iOS.AttributedString)
+[Titanium.UI.iOS.AttributedString](https://titaniumsdk.com/api/)
object and assign it to one of the following properties:
- * [Titanium.UI.Label.attributedString](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.Label-property-attributedString)
- * [Titanium.UI.TextArea.attributedString](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.TextArea-property-attributedString)
- * [Titanium.UI.TextField.attributedString](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.TextField-property-attributedString)
- * [Titanium.UI.TextField.attributedHintText](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.TextField-property-attributedHintText)
+ * [Titanium.UI.Label.attributedString](https://titaniumsdk.com/api/)
+ * [Titanium.UI.TextArea.attributedString](https://titaniumsdk.com/api/)
+ * [Titanium.UI.TextField.attributedString](https://titaniumsdk.com/api/)
+ * [Titanium.UI.TextField.attributedHintText](https://titaniumsdk.com/api/)
@@ -580,13 +580,13 @@ The `Titanium.UI.iOS.Animator` object provides support for the built-in iOS dyna
which are supported on iOS 7 and later. The animator provides physics-related capabilities and
animations using the iOS physics engine.
-For more information, see the [Titanium.UI.iOS.Animator API reference](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.iOS.Animator).
+For more information, see the [Titanium.UI.iOS.Animator API reference](https://titaniumsdk.com/api/).
#### Font Text Styles
The `Font` object supports a new property,
-[textStyle](https://docs.appcelerator.com/titanium/latest/#!/api/Font-property-textStyle), available
+[textStyle](https://titaniumsdk.com/api/), available
for iOS 7 and later. Assign this property a `Titanium.UI.TEXT_STYLE_*` constant to use a predefined
text style. If this property is assigned a valid value, all other font properties are ignored.
@@ -595,10 +595,10 @@ text style. If this property is assigned a valid value, all other font properti
iOS 7 introduced new animation capabilities for transitioning Windows in a NavigationWindow or Tab.
Create a transition animation object with the
-[Titanium.UI.iOS.createTransitionAnimation](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.iOS-method-createTransitionAnimation)
+[Titanium.UI.iOS.createTransitionAnimation](https://titaniumsdk.com/api/)
method to specify animation objects to hide the current window and show the new window, then assign
the transition animation object to the Window's
-[transitionAnimation](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.Window-property-transitionAnimation)
+[transitionAnimation](https://titaniumsdk.com/api/)
property.
@@ -607,16 +607,16 @@ property.
iOS 7 introduced new background execution modes allowing the application to download large content
while its in the background. These background modes are exposed as the following Titanium APIs:
- * [URL session module](https://docs.appcelerator.com/titanium/latest/#!/api/Modules.URLSession): a
+ * [URL session module](https://titaniumsdk.com/api/): a
wrapper for the NSURLSession class that allows the application to download large content in the
background. This module provides the main functionality for the background execution modes,
such as creating the background download task and monitoring the download once it starts.
- * [backgroundfetch](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.App.iOS-event-backgroundfetch)
+ * [backgroundfetch](https://titaniumsdk.com/api/)
event: use to monitor signals from iOS to update the application while in the background.
- * [silentpush](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.App.iOS-event-silentpush)
+ * [silentpush](https://titaniumsdk.com/api/)
event: use to monitor a push notification to tell the application there is content to download.
-For more information, see the [iOS Background Services guide](https://docs.appcelerator.com/titanium/latest/#!/guide/iOS_Background_Services).
+For more information, see the [iOS Background Services guide](https://titaniumsdk.com/api/).
#### ListView Phase 2
@@ -629,8 +629,8 @@ The following ListView features were completed in this Release:
* Pull-to-refresh support
* Search support
-For more information, see the [ListViews guide](https://docs.appcelerator.com/titanium/latest/#!/guide/ListViews)
-and [Titanium.UI.ListView API reference](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.ListView).
+For more information, see the [ListViews guide](https://titaniumsdk.com/api/)
+and [Titanium.UI.ListView API reference](https://titaniumsdk.com/api/).
#### Map Module
@@ -639,13 +639,13 @@ As of this Release, the ti.map module provides native map support on the iOS pla
new iOS 7 feature that allows the map to be viewed in a 3D perspective.
For more information, see
-[iOS Map Kit](https://docs.appcelerator.com/titanium/latest/#!/guide/iOS_Map_Kit).
+[iOS Map Kit](https://titaniumsdk.com/api/).
#### Popover Content
The `Titanium.UI.iPad.Popover` class supports a new property,
-[contentView](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.iPad.Popover-property-contentView),
+[contentView](https://titaniumsdk.com/api/),
used to assign a view object as the content area of the popover before showing the popover. This is
now the preferred way to set the content area of a popover instead of using the `add` method.
@@ -659,7 +659,7 @@ controller.
iOS 6 introduced a new refresh control that can be used to implement the pull-to-refresh mechanism
for `ListView` and `TableView`. The Titanium SDK exposes this control as the
-[Titanium.UI.RefreshControl](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.RefreshControl)
+[Titanium.UI.RefreshControl](https://titaniumsdk.com/api/)
object.
#### StoreKit Module
@@ -674,7 +674,7 @@ Note that the ti.storekit module cannot be tested on the iOS simulator.
#### Window Title Attributes
The `Titanium.UI.Window` class supports a new property,
-[titleAttributes](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.Window-property-titleAttributes),
+[titleAttributes](https://titaniumsdk.com/api/),
used to specify the color, font, and shadow of the window's title.
Previously, the only way to specify these attributes was to create a custom Label object and assign
diff --git a/apidoc/Titanium/CHANGELOG/3.2.1.GA.mdoc b/apidoc/Titanium/CHANGELOG/3.2.1.GA.mdoc
index 1b4ac93b57a..8dee02f73a6 100644
--- a/apidoc/Titanium/CHANGELOG/3.2.1.GA.mdoc
+++ b/apidoc/Titanium/CHANGELOG/3.2.1.GA.mdoc
@@ -45,7 +45,7 @@ For a complete list of issues addressed in Alloy 1.3.1, see the Alloy
This Release coincides with the release of Studio 3.2.1.
For a complete list of issues addressed in Studio 3.2.1, see the Studio
-[Release Notes](https://docs.appcelerator.com/titanium/latest/#!/guide/Titanium_Studio_Release_Notes).
+[Release Notes](https://titaniumsdk.com/api/).
@@ -96,7 +96,7 @@ As of this Release, Tizen support is deprecated. Tizen support will be removed
Support for lightweight windows is deprecated in this Release and will be removed in Release 3.3.0.
-As [noted](https://docs.appcelerator.com/titanium/release-notes/?version=3.2.0.GA#lightweight_windows)
+As [noted](https://titaniumsdk.com/api/)
in Release 3.2.0, all windows are heavyweight and you cannot control the type of window created.
To re-add support for lightweight windows in Release 3.2.x, add the following to your tiapp.xml file:
@@ -107,14 +107,14 @@ To re-add support for lightweight windows in Release 3.2.x, add the following to
### Default Android SDK
-As [noted](https://docs.appcelerator.com/titanium/release-notes/?version=3.2.0.GA#build_command)
+As [noted](https://titaniumsdk.com/api/)
in Release 3.2.0, the latest installed Android SDK is used to build your application unless otherwise
specified in your `tiapp.xml` file. Previously, the minimum required SDK was used (Android
2.3.x/API level 10).
Because of this change, the appearance and behavior of your application will change if you did not
specify an Android SDK to build against. For examples of these changes, see
-[Android UI Differences](https://docs.appcelerator.com/titanium/latest/#!/guide/Android_UI_Differences).
+[Android UI Differences](https://titaniumsdk.com/api/).
If you want to keep the appearance or behavior of a specific Android SDK, add the `uses-sdk` element
to the Android manifest section of the `tiapp.xml` file with the `android:targetSdkVersion` attribute
diff --git a/apidoc/Titanium/CHANGELOG/3.2.3.GA.mdoc b/apidoc/Titanium/CHANGELOG/3.2.3.GA.mdoc
index d3fa9e26d40..996f88a74c0 100644
--- a/apidoc/Titanium/CHANGELOG/3.2.3.GA.mdoc
+++ b/apidoc/Titanium/CHANGELOG/3.2.3.GA.mdoc
@@ -86,7 +86,7 @@ Studio 3.2.3 includes the following enhancements:
* Display ACS OAuth keys and secrets in the tiapp.xml GUI overview tab
* Support Alloy data binding attributes in content assist
-For more information, see the [Release Notes](https://docs.appcelerator.com/titanium/latest/#!/guide/Titanium_Studio_Release_Notes).
+For more information, see the [Release Notes](https://titaniumsdk.com/api/).
@@ -109,7 +109,7 @@ Use the ActionBar's `subtitle` property to set the subtitle of the ActionBar.
### Cloud Module
The ti.cloud module included with this release exposes the ACS
-[push_notification/subscription/update.json](https://docs.appcelerator.com/cloud/latest/#!/api/PushNotifications-method-subscription_update)
+[push_notification/subscription/update.json](https://titaniumsdk.com/api/)
method as the `updateSubscription` method.
@@ -123,7 +123,7 @@ The following features are available only for the iOS platform:
#### Low Memory Warning Event
Monitor the
-[Titanium.App.memorywarning](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.App-event-memorywarning)
+[Titanium.App.memorywarning](https://titaniumsdk.com/api/)
event to receive a warning from the operating system about low memory availability.
As part of the low memoy warning from the OS, Titanium applications will automatically clean up
@@ -135,7 +135,7 @@ would not know when this occurred.
#### ScrollView Deceleration Rate
Use the ScrollView's
-[decelerationRate](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.ScrollView-property-decelerationRate)
+[decelerationRate](https://titaniumsdk.com/api/)
property to control the rate of deceleration when the user releases their finger to stop scrolling.
This property accepts a floating point number, and the
`Titanium.UI.iOS.SCROLL_DECELERATION_RATE_NORMAL` and
@@ -147,7 +147,7 @@ points for the deceleration rate.
#### ScrollView Scroll Event
ScrollView's
-[scroll](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.ScrollView-event-scroll)
+[scroll](https://titaniumsdk.com/api/)
event now returns two additional fields:
* `curZoomScale`: float value indicating the current zoom level
@@ -166,13 +166,13 @@ The ti.map module included with this release contains a bug fix for iOS
The following properties were added to the View class:
- * [compassEnabled](https://docs.appcelerator.com/titanium/latest/#!/api/Modules.Map.View-property-compassEnabled): Enable/disable the compass on the map
- * [maxZoomLevel](https://docs.appcelerator.com/titanium/latest/#!/api/Modules.Map.View-property-maxZoomLevel): Returns max zoom level of the map
- * [minZoomLevel](https://docs.appcelerator.com/titanium/latest/#!/api/Modules.Map.View-property-minZoomLevel): Returns min zoom level of the map
+ * [compassEnabled](https://titaniumsdk.com/api/): Enable/disable the compass on the map
+ * [maxZoomLevel](https://titaniumsdk.com/api/): Returns max zoom level of the map
+ * [minZoomLevel](https://titaniumsdk.com/api/): Returns min zoom level of the map
**Map Region Object**
-The following properties were added to the [Map Region object](https://docs.appcelerator.com/titanium/latest/#!/api/MapRegionTypev2) to modify the camera
+The following properties were added to the [Map Region object](https://titaniumsdk.com/api/) to modify the camera
view of the map region:
* `bearing`: Direction that the camera is pointing, in degrees clockwise from north
@@ -183,8 +183,8 @@ view of the map region:
The following APIs were added to the View class to support capturing an image of the map view:
- * [onsnapshotready](https://docs.appcelerator.com/titanium/latest/#!/api/Modules.Map.View-event-onsnapshotready) event: Fired when the snapshot is ready
- * [snapshot()](https://docs.appcelerator.com/titanium/latest/#!/api/Modules.Map.View-method-snapshot) method: Takes a snapshot of the map
+ * [onsnapshotready](https://titaniumsdk.com/api/) event: Fired when the snapshot is ready
+ * [snapshot()](https://titaniumsdk.com/api/) method: Takes a snapshot of the map
diff --git a/apidoc/Titanium/CHANGELOG/3.3.0.GA.mdoc b/apidoc/Titanium/CHANGELOG/3.3.0.GA.mdoc
index 4e6a31f20bb..3ec7c98427d 100644
--- a/apidoc/Titanium/CHANGELOG/3.3.0.GA.mdoc
+++ b/apidoc/Titanium/CHANGELOG/3.3.0.GA.mdoc
@@ -72,15 +72,15 @@ Note that this release includes feature and behavior changes. See [Notice of Fea
This release includes over 300 bug fixes and improvements:
- * [Full list of Issues that were addressed in Release 3.3.0](https://jira.appcelerator.org/issues/?filter=16132)
+ * Full list of Issues that were addressed in Release 3.3.0
- * [Fixed Android Issues](https://jira.appcelerator.org/issues/?filter=16133)
+ * Fixed Android Issues
- * [Fixed BlackBerry Issues](https://jira.appcelerator.org/issues/?filter=16134)
+ * Fixed BlackBerry Issues
- * [Fixed iOS Issues](https://jira.appcelerator.org/issues/?filter=16135)
+ * Fixed iOS Issues
- * [Fixed CLI Issues](https://jira.appcelerator.org/issues/?filter=16136)
+ * Fixed CLI Issues
@@ -124,7 +124,7 @@ This release coincides with the release of Studio 3.3.0.
* Genymotion virtual device support
* New Windows installer
-For more details, see the [Studio Release Notes](https://docs.appcelerator.com/titanium/latest/#!/guide/Titanium_Studio_Release_Notes).
+For more details, see the [Studio Release Notes](https://titaniumsdk.com/api/).
### Titanium CLI 3.3.0
@@ -183,13 +183,13 @@ Studio.
For information on getting started, see:
- * [Getting Started with the Windows Phone SDK](https://docs.appcelerator.com/titanium/latest/#!/guide/Getting_Started_with_the_Windows_Phone_SDK)
- * [Getting Started with the Windows 8 SDK](https://docs.appcelerator.com/titanium/latest/#!/guide/Getting_Started_with_the_Windows_8_SDK)
+ * [Getting Started with the Windows Phone SDK](https://titaniumsdk.com/api/)
+ * [Getting Started with the Windows 8 SDK](https://titaniumsdk.com/api/)
To access native features of the Windows Phone platform, create a module that uses the Titanium
Windows Phone 8 Reflection API to make calls to the native Windows Phone 8 API. For details on
adding native Windows Phone 8 functionality to your application, see
-[Windows Phone 8 Module Development Guide](https://docs.appcelerator.com/titanium/latest/#!/guide/Windows_Phone_8_Module_Development_Guide).
+[Windows Phone 8 Module Development Guide](https://titaniumsdk.com/api/).
@@ -208,13 +208,13 @@ Previously, you had to set a theme to display the action bar.
To hide the action bar, the application needs to wait for the main window or tab group to open, then
call the Activity's
-[actionbar.hide()](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.Android.ActionBar-method-hide)
+[actionbar.hide()](https://titaniumsdk.com/api/)
method; or create a theme that hides the action bar.
As of this Release, the `tiapp.xml` element, ``, which used to be able to hide the
action bar, has no effect on Android applications.
-For information about hiding the action bar, see [Android Action Bar: Hiding the Action Bar](https://docs.appcelerator.com/titanium/latest/#!/guide/Android_Action_Bar-section-36735509_AndroidActionBar-HidingtheActionBar).
+For information about hiding the action bar, see [Android Action Bar: Hiding the Action Bar](https://titaniumsdk.com/api/).
@@ -223,7 +223,7 @@ For information about hiding the action bar, see [Android Action Bar: Hiding the
As of this Release, support for lightweight windows (windows without an Android Activity) is
removed and using the `ti.android.useLegacyWindow` property in the `tiapp.xml` file has no effect.
-As previously mentioned ,
+As previously mentioned ,
all windows are heavyweight, and you cannot control the type of window created.
Prior to Release 3.2.0, all windows were lightweight by default and you had to explicitly create
@@ -265,14 +265,14 @@ use an AppCompat theme as the parent, for example:
-For more information about using Android Themes, see [Android Themes](https://docs.appcelerator.com/titanium/latest/#!/guide/Android_Themes).
+For more information about using Android Themes, see [Android Themes](https://titaniumsdk.com/api/).
#### View enabled property
As of this Release, the Android-specific `enabled` property for view components is deprecated. Use
the non-platform-specific
-[touchEnabled](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.View-property-touchEnabled)
+[touchEnabled](https://titaniumsdk.com/api/)
property to disable touch events for a view component.
@@ -314,7 +314,7 @@ was appended to the end of the version.
To achieve parity across platforms, the `Titanium.Database.ResultSet.fieldcount()` method has been
removed from the SDK. Use the read-only
-[Titanium.Database.ResultSet.fieldcount](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.Database.ResultSet-property-fieldCount)
+[Titanium.Database.ResultSet.fieldcount](https://titaniumsdk.com/api/)
property to retrieve the same information.
@@ -327,7 +327,7 @@ longer supported.
* The iOS-specific `Titanium.Network.HTTPClient` `clientCertificateIdentity` and `clientCertificates` properties are no longer supported.
Use the HTTPClient's
-[securityManager](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.Network.HTTPClient-property-securityManager)
+[securityManager](https://titaniumsdk.com/api/)
property to implement support for SSL Certificate Stores.
@@ -337,8 +337,8 @@ As of this release, the `Titanium.include` method is deprecated. This method wa
external JavaScript files into a project.
Instead, create a [CommonJS
-module](https://docs.appcelerator.com/titanium/latest/#!/guide/CommonJS_Modules_in_Titanium) and use
-the [require](https://docs.appcelerator.com/titanium/latest/#!/api/Global-method-require) method to
+module](https://titaniumsdk.com/api/) and use
+the [require](https://titaniumsdk.com/api/) method to
include external JavaScript.
@@ -356,9 +356,9 @@ This section lists new features and improvements only available on the Android p
#### ActionBar Improvements
This Release exposes the Android methods,
-[setDisplayShowHomeEnabled](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.Android.ActionBar-method-setDisplayShowHomeEnabled)
+[setDisplayShowHomeEnabled](https://titaniumsdk.com/api/)
and
-[setDisplayShowTitleEnabled](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.Android.ActionBar-method-setDisplayShowTitleEnabled),
+[setDisplayShowTitleEnabled](https://titaniumsdk.com/api/),
to programmatically show or hide the action bar home icon, and title and subtitle, respectively.
See also the *AppCompat Library* section below.
@@ -375,8 +375,8 @@ are a number of behavior changes to the application:
3. If the application is using a custom theme, the parent theme must be based off an AppCompat theme. The application cannot use the base Holo, Light or Dark themes.
For more information about using Android Themes and the Action Bar, see
-[Android Themes](https://docs.appcelerator.com/titanium/latest/#!/guide/Android_Themes) and
-[Android Action Bar](https://docs.appcelerator.com/titanium/latest/#!/guide/Android_Action_Bar), respectively.
+[Android Themes](https://titaniumsdk.com/api/) and
+[Android Action Bar](https://titaniumsdk.com/api/), respectively.
@@ -384,15 +384,15 @@ For more information about using Android Themes and the Action Bar, see
This Release introduces several application-level properties:
- * [appVersionCode](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.App.Android-property-appVersionCode): returns the version code (`android:versionCode`) of the application.
- * [appVersionName](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.App.Android-property-appVersionName): returns the version name (`android:versionName`) of the application.
- * [launchIntent](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.App.Android-property-launchIntent): returns the intent that was used to launch the application.
+ * [appVersionCode](https://titaniumsdk.com/api/) of the application.
+ * [appVersionName](https://titaniumsdk.com/api/) of the application.
+ * [launchIntent](https://titaniumsdk.com/api/): returns the intent that was used to launch the application.
#### AudioPlayer Improvements
This Release introduces the
-[time](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.Media.AudioPlayer-property-time)
+[time](https://titaniumsdk.com/api/)
property to report or set the current playback time of the AudioPlayer.
@@ -402,8 +402,8 @@ property to report or set the current playback time of the AudioPlayer.
This Release adds support for camera features to the Android platform that were previously only
available for iOS:
- * [Titanium.Media.cameraFlashMode](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.Media-property-cameraFlashMode) property: Use this property to control the device's camera flash mode.
- * [Titanium.Media.saveToPhotoGallery](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.Media-method-saveToPhotoGallery) method: Use this method to save the photo to the device's gallery.
+ * [Titanium.Media.cameraFlashMode](https://titaniumsdk.com/api/) property: Use this property to control the device's camera flash mode.
+ * [Titanium.Media.saveToPhotoGallery](https://titaniumsdk.com/api/) method: Use this method to save the photo to the device's gallery.
#### Genymotion Virtual Devices
@@ -415,13 +415,13 @@ Virtual Device manager. Genymotion emulators run a lot faster than the native An
devices provide more configurable options than the free Genymotion emulators. You can pay for an
enterprise license if you want more features with Genymotion.
-For more information about installing and using Genymotion virtual devices, see [Installing Genymotion](https://docs.appcelerator.com/titanium/latest/#!/guide/Installing_Genymotion).
+For more information about installing and using Genymotion virtual devices, see [Installing Genymotion](https://titaniumsdk.com/api/).
#### Label Padding
This Release introduces the
-[includeFontPadding](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.Label-property-includeFontPadding)
+[includeFontPadding](https://titaniumsdk.com/api/)
property to increase the padding above and below the label to display diacritical marks, such as
accents and subscript curls.
@@ -431,10 +431,10 @@ accents and subscript curls.
This Release introduces properties to show or hide a divider after the header or before the footer in either
a ListView or TableView:
- * [Titanium.UI.ListView.footerDividersEnabled](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.ListView-property-footerDividersEnabled): controls displaying a divider before the footer view.
- * [Titanium.UI.ListView.headerDividersEnabled](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.ListView-property-headerDividersEnabled): controls displaying a divider before the header view.
- * [Titanium.UI.TableView.footerDividersEnabled](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.TableView-property-footerDividersEnabled): controls displaying a divider before the footer view.
- * [Titanium.UI.TableView.headerDividersEnabled](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.TableView-property-headerDividersEnabled): controls displaying a divider before the header view.
+ * [Titanium.UI.ListView.footerDividersEnabled](https://titaniumsdk.com/api/): controls displaying a divider before the footer view.
+ * [Titanium.UI.ListView.headerDividersEnabled](https://titaniumsdk.com/api/): controls displaying a divider before the header view.
+ * [Titanium.UI.TableView.footerDividersEnabled](https://titaniumsdk.com/api/): controls displaying a divider before the footer view.
+ * [Titanium.UI.TableView.headerDividersEnabled](https://titaniumsdk.com/api/): controls displaying a divider before the header view.
This Release also adds the ability to disable animations when scrolling to an item in
ListView. When using the `scrollToItem` method, set the `animated` property of the
@@ -452,9 +452,9 @@ This Release adds Android platform support for the proximity sensor, which deter
holding the phone to their ear to shut down the phone's display. Use the following APIs to determine
the state of the proximity sensor:
- * [proximity event](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.App-event-proximity): fires when the sensor changes.
- * [proximityDetection property](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.App-property-proximityDetection): set to `true` to enable proximity detection.
- * [proximityState property](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.App-property-proximityState): indicates the state of the proximity detector.
+ * [proximity event](https://titaniumsdk.com/api/): fires when the sensor changes.
+ * [proximityDetection property](https://titaniumsdk.com/api/): set to `true` to enable proximity detection.
+ * [proximityState property](https://titaniumsdk.com/api/): indicates the state of the proximity detector.
Previously, these APIs were only available for the iOS platform.
@@ -463,7 +463,7 @@ Previously, these APIs were only available for the iOS platform.
#### WebView SSL Error Event
This Release introduces the
-[sslerror](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.WebView-event-sslerror)
+[sslerror](https://titaniumsdk.com/api/)
event that fires when an SSL error occurs during a request. Use this event to set the `ignoreSslError` property
to allow the request to proceed or fail.
@@ -472,8 +472,8 @@ to allow the request to proceed or fail.
This Release introduces two new properties to set flags on the window activity:
- * [flagSecure](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.Window-property-flagSecure): set to `true` to disable capturing the window in a screenshot or being dislayed in non-secure displays.
- * [windowFlags](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.Window-property-windowFlags): sets additional Window Manager Layout Parameter flags on the activity window.
+ * [flagSecure](https://titaniumsdk.com/api/): set to `true` to disable capturing the window in a screenshot or being dislayed in non-secure displays.
+ * [windowFlags](https://titaniumsdk.com/api/): sets additional Window Manager Layout Parameter flags on the activity window.
@@ -485,8 +485,8 @@ This section lists new features and improvements only available on the BlackBerr
#### applyProperties and removeAllChildren
As of this Release, the BlackBerry platform supports the
-[applyProperties](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.Proxy-method-applyProperties) and
-[removeAllChildren](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.View-method-removeAllChildren)
+[applyProperties](https://titaniumsdk.com/api/) and
+[removeAllChildren](https://titaniumsdk.com/api/)
methods.
@@ -499,7 +499,7 @@ This section lists new features and improvements only available on the iOS platf
#### Clipping Behavior
Use the
-[clipMode](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.View-property-clipMode)
+[clipMode](https://titaniumsdk.com/api/)
property to control the clipping behavior of the view component. Set this property to one of the
following constants:
@@ -511,7 +511,7 @@ By default, the view component uses the `CLIP_MODE_DEFAULT` behavior. Previousl
always enabled.
For more information, see the "iOS Clipping Behavior" section in the
-[Titanium.UI.View API Reference](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.View).
+[Titanium.UI.View API Reference](https://titaniumsdk.com/api/).
#### Core Motion Module
@@ -521,8 +521,8 @@ as the accelerometer, gyroscope, and magnetometer. The Core Motion module allows
measurements provided by these sensors.
For more information, see the
-[Core Motion Module guide](https://docs.appcelerator.com/titanium/latest/#!/guide/Core_Motion_Module) and
-[CoreMotion API Reference](https://docs.appcelerator.com/titanium/latest/#!/api/Modules.CoreMotion).
+[Core Motion Module guide](https://titaniumsdk.com/api/) and
+[CoreMotion API Reference](https://titaniumsdk.com/api/).
#### HTTPClient Improvements
@@ -540,16 +540,16 @@ for Android.
This Release introduces new APIs for ListView:
- * [Titanium.UI.View.pullBackgroundColor property](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.View-property-pullBackgroundColor): controls the background color of the wrapper view of the pull view of a ListView or TableView. Set this property on the view object contained in the pull view not on the ListView or the TableView.
- * [Titanium.UI.ListView.noresults event](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.ListView-event-noresults): fires if `searchText` or `searchView` returns no results.
+ * [Titanium.UI.View.pullBackgroundColor property](https://titaniumsdk.com/api/): controls the background color of the wrapper view of the pull view of a ListView or TableView. Set this property on the view object contained in the pull view not on the ListView or the TableView.
+ * [Titanium.UI.ListView.noresults event](https://titaniumsdk.com/api/): fires if `searchText` or `searchView` returns no results.
#### ScrollableView Move Methods
This Release adds iOS support for the
-[movePrevious](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.ScrollableView-method-movePrevious) and
-[moveNext](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.ScrollableView-method-moveNext)
+[movePrevious](https://titaniumsdk.com/api/) and
+[moveNext](https://titaniumsdk.com/api/)
methods to programmatically change the current view displayed in the scrollable view.
These methods plus the `scrollToView` method will animate the transition. If you do not want to
@@ -563,9 +563,9 @@ Previously, these APIs were only available for Android and BlackBerry.
This Release exposes iOS properties to customize the tint colors of a Switch:
- * [onTintColor](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.Switch-property-onTintColor): sets the tint color of the switch when it is on.
- * [thumbTintColor](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.Switch-property-thumbTintColor): sets the thumb color of the switch.
- * [tintColor](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.Switch-property-tintColor): sets the tint color of the switch when it is off. On iOS 7 and greater, this is only the outline color.
+ * [onTintColor](https://titaniumsdk.com/api/): sets the tint color of the switch when it is on.
+ * [thumbTintColor](https://titaniumsdk.com/api/): sets the thumb color of the switch.
+ * [tintColor](https://titaniumsdk.com/api/): sets the tint color of the switch when it is off. On iOS 7 and greater, this is only the outline color.
@@ -573,16 +573,16 @@ This Release exposes iOS properties to customize the tint colors of a Switch:
This Release introduces new properties to control the appearance of a Tab Group:
- * [navTintColor](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.TabGroup-property-navTintColor): sets the tint color of the tabs.
- * [titleAttributes](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.TabGroup-property-titleAttributes): sets the title attributes of the tab.
- * [translucent](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.TabGroup-property-translucent): controls the translucent behavior of the navigation bar of the tab.
+ * [navTintColor](https://titaniumsdk.com/api/): sets the tint color of the tabs.
+ * [titleAttributes](https://titaniumsdk.com/api/): sets the title attributes of the tab.
+ * [translucent](https://titaniumsdk.com/api/): controls the translucent behavior of the navigation bar of the tab.
#### Toolbar Background
This Release introduces the
-[extendBackground](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.iOS.Toolbar-property-extendBackground)
+[extendBackground](https://titaniumsdk.com/api/)
property to extend the background of the Toolbar into the iOS 7 status bar.
@@ -592,9 +592,9 @@ property to extend the background of the Toolbar into the iOS 7 status bar.
To add a shadow to a view component, use the following properties to control the appearance of the
shadow:
- * [viewShadowColor](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.View-property-viewShadowColor): sets the color of the shadow
- * [viewShadowOffset](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.View-property-viewShadowOffset): sets the offset of the shadow
- * [viewShadowRadius](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.View-property-viewShadowRadius): set the radius of the rounded corners of the shadow
+ * [viewShadowColor](https://titaniumsdk.com/api/): sets the color of the shadow
+ * [viewShadowOffset](https://titaniumsdk.com/api/): sets the offset of the shadow
+ * [viewShadowRadius](https://titaniumsdk.com/api/): set the radius of the rounded corners of the shadow
@@ -602,16 +602,16 @@ shadow:
To have the WebView handle application URLs, such as a phone number, which is normally sent to a
shared application, use the
-[handlePlatformUrl](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.WebView-property-handlePlatformUrl)
+[handlePlatformUrl](https://titaniumsdk.com/api/)
property to override the default behavior.
#### Window Navigation Buttons
This Release introduces the
-[leftNavButtons](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.Window-property-leftNavButtons)
+[leftNavButtons](https://titaniumsdk.com/api/)
and
-[rightNavButtons](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.Window-property-rightNavButtons)
+[rightNavButtons](https://titaniumsdk.com/api/)
properties to add multiples buttons to the left and right side of the iOS navigation bar.
Previously, only one button could be displayed in the left and right side of the iOS navigation bar.
@@ -622,7 +622,7 @@ Previously, only one button could be displayed in the left and right side of the
This Release introduces a new mechanism to support SSL certificates with the HTTPClient exposed as
the
-[securityManager](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.Network.HTTPClient-property-securityManager)
+[securityManager](https://titaniumsdk.com/api/)
property. This property is only available on the Android and iOS platforms.
@@ -630,7 +630,7 @@ property. This property is only available on the Android and iOS platforms.
### TableView Search Improvements
This Release introduces the
-[filterAnchored](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.TableView-property-filterAnchored)
+[filterAnchored](https://titaniumsdk.com/api/)
property for TableView to limit searches to the start of the string. For example, if this property is set to `true`,
searching for "ha" returns results for "Harold" and "Harvard", but not "Sharon" and "Jonathan".
If the property is set to `false`, the search returns all of the previous strings.
@@ -644,8 +644,8 @@ This Release introduces the `selection` property for TextArea and TextField to r
location and length of the currently selected text. This property can also be used to get the
current location of the cursor. This property is only available on the Android and iOS platforms.
- * [Titanium.UI.TextArea.selection](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.TextArea-property-selection): returns the currently selected text of the TextArea.
- * [Titanium.UI.TextField.selection](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.TextField-property-selection): returns the currently selected text of the TextField.
+ * [Titanium.UI.TextArea.selection](https://titaniumsdk.com/api/): returns the currently selected text of the TextArea.
+ * [Titanium.UI.TextField.selection](https://titaniumsdk.com/api/): returns the currently selected text of the TextField.
diff --git a/apidoc/Titanium/CHANGELOG/3.4.0.GA.mdoc b/apidoc/Titanium/CHANGELOG/3.4.0.GA.mdoc
index bf323a7898b..b22cb6a74c1 100644
--- a/apidoc/Titanium/CHANGELOG/3.4.0.GA.mdoc
+++ b/apidoc/Titanium/CHANGELOG/3.4.0.GA.mdoc
@@ -43,7 +43,7 @@ This is the general availability (GA) release version of the Titanium SDK 3.4.0.
Note that this release includes feature and behavior changes. See [Notice of Feature and Behavior Changes](#changes) for details.
-This release includes over 300 bug fixes and improvements, see the [full list of issues that were addressed in Release 3.4.0](https://jira.appcelerator.org/issues/?filter=16132)
+This release includes over 300 bug fixes and improvements, see the full list of issues that were addressed in Release 3.4.0
### Alloy 1.5.0
@@ -119,7 +119,7 @@ This Release coincides with the release of Studio 3.4.0.
* Add hyperlink detector to jump from i18n translation keys in Alloy View XML attributes to their definition in strings.xml files.
* Add ability to extract strings in Alloy XML files to i18n files.
-For more details, see the [Studio Release Notes](https://docs.appcelerator.com/titanium/latest/#!/guide/Studio_Release_Notes).
+For more details, see the [Studio Release Notes](https://titaniumsdk.com/api/).
### Titanium CLI 3.4.0
@@ -202,7 +202,7 @@ key to the iOS plist section of the project's `tiapp.xml` file.
Starting in iOS 8, the application must ask the user for permission before using local or push notifications.
For devices running iOS 8 and later, you need to register the application to use the notification services. Use the
-[Titanium.App.iOS.registerUserNotificationSettings()](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.App.iOS-method-registerUserNotificationSettings)
+[Titanium.App.iOS.registerUserNotificationSettings()](https://titaniumsdk.com/api/)
method to enroll the application in local notification services.
Pass the method a dictionary with the `types` property set to the notification types to use.
@@ -215,7 +215,7 @@ If the application needs to use push notifications, call the
`Titanium.Network.registerForPushNotifications()` method. Do not pass the notification types to use
to the `registerForPushNotifications()` method. Instead, pass the notification types to use with
the `registerUserNotificationSettings()` method. For an example, see
-[Subscribing to push notifications: Obtain a device token on iOS](https://docs.appcelerator.com/titanium/latest/#!/guide/Subscribing_to_push_notifications-section-37551717_Subscribingtopushnotifications-ObtainingadevicetokenoniOS).
+[Subscribing to push notifications: Obtain a device token on iOS](https://titaniumsdk.com/api/).
For iOS 7 and older, the application does not need to request the user's permission to use local notifications.
For push notification, use the `registerForPushNotifications()` method and pass in the notification types to use.
@@ -235,13 +235,13 @@ This section lists new features and improvements only available on the Android p
To be notified when an activity's lifecycle event is triggered, assign callbacks to the following activity properties:
- * [onCreate](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.Android.Activity-property-onCreate)
- * [onStart](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.Android.Activity-property-onStart)
- * [onResume](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.Android.Activity-property-onResume)
- * [onPause](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.Android.Activity-property-onPause)
- * [onStop](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.Android.Activity-property-onStop)
- * [onDestroy](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.Android.Activity-property-onDestroy)
- * [onRestart](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.Android.Activity-property-onRestart)
+ * [onCreate](https://titaniumsdk.com/api/)
+ * [onStart](https://titaniumsdk.com/api/)
+ * [onResume](https://titaniumsdk.com/api/)
+ * [onPause](https://titaniumsdk.com/api/)
+ * [onStop](https://titaniumsdk.com/api/)
+ * [onDestroy](https://titaniumsdk.com/api/)
+ * [onRestart](https://titaniumsdk.com/api/)
These properties deprecate the activity's lifecycle events (`create`, `destroy`, `pause`, `resume`, `start` and `stop`).
@@ -249,14 +249,14 @@ These properties deprecate the activity's lifecycle events (`create`, `destroy`,
#### HTTPClient file property
-This Release adds support for HTTPClient's [file](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.Network.HTTPClient-property-file) property. Use this property to target a local, writable file to receive the HTTP response data.
+This Release adds support for HTTPClient's [file](https://titaniumsdk.com/api/) property. Use this property to target a local, writable file to receive the HTTP response data.
Previously, the Android platform did not support this property.
#### TabGroup Activity
-As of this Release, you can set properties on the TabGroup's [activity](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.TabGroup-property-activity) before opening the tab group, which matches the same behavior as a Window activity.
+As of this Release, you can set properties on the TabGroup's [activity](https://titaniumsdk.com/api/) before opening the tab group, which matches the same behavior as a Window activity.
Prior to this Release, you can only set Activity properties from a TabGroup object after the tab group opens.
@@ -264,7 +264,7 @@ Prior to this Release, you can only set Activity properties from a TabGroup obje
#### Window theme property
-Starting with this Release, the Titanium SDK introduces the [theme](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.Window-property-theme) property for Windows. Use the `theme` property to override the global theme for an individual window. Set the property to the name of the theme you want to apply to the window. The property can only be set when creating the Window object and cannot be changed after it is set.
+Starting with this Release, the Titanium SDK introduces the [theme](https://titaniumsdk.com/api/) property for Windows. Use the `theme` property to override the global theme for an individual window. Set the property to the name of the theme you want to apply to the window. The property can only be set when creating the Window object and cannot be changed after it is set.
var win = Ti.UI.createWindow({theme: "Theme.AppCompat.Fullscreen"});
@@ -307,7 +307,7 @@ Prior to this Release, the camera preview would always rotate.
#### Geolocation
Starting with this Release, the application can monitor the
-[`authorization`](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.Geolocation-event-authorization)
+[`authorization`](https://titaniumsdk.com/api/)
event of the `Titanium.Geolocation` class. The event triggers when the application's authorization status changes.
This API is only available for iOS 8 and later.
@@ -319,14 +319,14 @@ This API is only available for iOS 8 and later.
Starting with this Release, you can create interactive notifications, where users can respond to application notifications without launching the application to the foreground. The user needs to reveal notification actions in the notification, then press a notification action to respond to the notification. This feature is available on devices running iOS 8 or later.
For more information, see
-[iOS Interactive Notifications guide](https://docs.appcelerator.com/titanium/latest/#!/guide/iOS_Interactive_Notifications).
+[iOS Interactive Notifications guide](https://titaniumsdk.com/api/).
#### Touch ID Module
The Touch ID module allows an application to use the iOS Touch ID security mechanism. Touch ID is a security mechanism that uses a fingerprint to authenticate the user. The fingerprint sensor is located in the Home button of the device. Users can use their fingerprint instead of entering their passcode for authentication.
-For more information, see the [Touch ID module API reference](https://docs.appcelerator.com/titanium/latest/#!/api/Modules.TouchId).
+For more information, see the [Touch ID module API reference](https://titaniumsdk.com/api/).
## Known Issues
diff --git a/apidoc/Titanium/CHANGELOG/3.4.1.GA.mdoc b/apidoc/Titanium/CHANGELOG/3.4.1.GA.mdoc
index 7acd501e61e..7961623abdb 100644
--- a/apidoc/Titanium/CHANGELOG/3.4.1.GA.mdoc
+++ b/apidoc/Titanium/CHANGELOG/3.4.1.GA.mdoc
@@ -51,7 +51,7 @@ installed on the device is not up-to-date. Appcelerator and Titanium modules th
include the CloudPush, GeoFence and Map modules.
Before using any APIs with these modules, call the module's
-[isGooglePlayServicesAvailable()](https://docs.appcelerator.com/platform/latest/#!/api/Modules.Map-method-isGooglePlayServicesAvailable)
+[isGooglePlayServicesAvailable()](https://titaniumsdk.com/api/)
method to check if the device has the required Google Play Services library installed.
var MapModule = require('ti.map');
@@ -82,7 +82,7 @@ method to check if the device has the required Google Play Services library inst
This Release coincides with the release of Studio 3.4.1. Notable fixed issues include support for
building Titanium applications with Android 5.0 and fixes for content assistance.
-See the [Studio Release Notes](https://docs.appcelerator.com/titanium/latest/#!/guide/Studio_Release_Notes).
+See the [Studio Release Notes](https://titaniumsdk.com/api/).
## Titanium CLI 3.4.1
diff --git a/apidoc/Titanium/CHANGELOG/3.5.0.GA.mdoc b/apidoc/Titanium/CHANGELOG/3.5.0.GA.mdoc
index 8f105753c23..73f42c8f836 100644
--- a/apidoc/Titanium/CHANGELOG/3.5.0.GA.mdoc
+++ b/apidoc/Titanium/CHANGELOG/3.5.0.GA.mdoc
@@ -28,8 +28,8 @@ This is the general availability (GA) release version of the Titanium SDK 3.5.0.
Note that this release includes feature and behavior changes. See [Notice of Feature and Behavior
Changes](#changes) for details.
-This release includes over 90 bug fixes and improvements, see the [full list of issues that were
-addressed in Release 3.5.0](https://jira.appcelerator.org/issues/?filter=16606). Notable issues
+This release includes over 90 bug fixes and improvements, see the full list of issues that were
+addressed in Release 3.5.0. Notable issues
include adding 64-bit build support for iOS and refactoring various APIs to use the newer iOS 8
APIs.
@@ -127,16 +127,16 @@ Session APIs, see the table below for the new APIs to use.
Prior to Release 3.5.0 Release 3.5.0 and later
Titanium.Media.audioLineType
property Use the
-Titanium.Media.currentRoute
+Titanium.Media.currentRoute
property
Titanium.Media.audioSessionMode
property Use the
-Titanium.Media.audioSessionCategory
+Titanium.Media.audioSessionCategory
property
Titanium.Media.linechange
event Use the
-Titanium.Media.routechange
+Titanium.Media.routechange
event
Titanium.Media.recordinginput
event Use the
-Titanium.Media.canRecord
+Titanium.Media.canRecord
property to check if the device supports recording audio
Titanium.Media.AUDIO_HEADPHONES
,
Titanium.Media.AUDIO_HEADPHONES_AND_MIC
,
@@ -158,7 +158,7 @@ methods have been removed and the `title`, `leftNavButton` and `rightNavButton`
been deprecated.
Assign the
-[`contentView`](https://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.iPad.Popover-property-contentView)
+[`contentView`](https://titaniumsdk.com/api/)
property of the `Popover` object to a View object to display as the contents of the popover. To
display a navigation bar that includes a title and navigation buttons, use a
`Titanium.UI.iOS.NavigationWindow` object as the root container of the content view.
@@ -170,8 +170,8 @@ As of this Release, the `Titanium.UI.Window.url` property is deprecated. This p
create a window with its own context using a JavaScript file.
The recommended way of creating windows with their own context is to either use the [Alloy
-Framework](https://docs.appcelerator.com/titanium/latest/#!/guide/Alloy_Framework) or a [CommonJS
-module](https://docs.appcelerator.com/titanium/latest/#!/guide/CommonJS_Modules_in_Titanium).
+Framework](https://titaniumsdk.com/api/) or a [CommonJS
+module](https://titaniumsdk.com/api/).
## Known Issues
diff --git a/apidoc/Titanium/CHANGELOG/3.5.1.GA.mdoc b/apidoc/Titanium/CHANGELOG/3.5.1.GA.mdoc
index e92ec4d17fa..0c370bc5ebc 100644
--- a/apidoc/Titanium/CHANGELOG/3.5.1.GA.mdoc
+++ b/apidoc/Titanium/CHANGELOG/3.5.1.GA.mdoc
@@ -31,7 +31,7 @@ of LiveView to support Node 0.12.x
Note that there is not a new version of Titanium Studio. Continue to use Titanium Studio 3.4.1.
See the [Studio Release
-Notes](https://docs.appcelerator.com/titanium/latest/#!/guide/Studio_Release_Notes).
+Notes](https://titaniumsdk.com/api/).
## Titanium CLI 3.4.2
diff --git a/apidoc/Titanium/CHANGELOG/4.0.0.GA.mdoc b/apidoc/Titanium/CHANGELOG/4.0.0.GA.mdoc
index 66296504647..12bbcd4cd8c 100644
--- a/apidoc/Titanium/CHANGELOG/4.0.0.GA.mdoc
+++ b/apidoc/Titanium/CHANGELOG/4.0.0.GA.mdoc
@@ -61,7 +61,7 @@ This is the general availability (GA) release version of the Titanium SDK 4.0.0.
Note that this release includes feature and behavior changes. See [Notice of Feature and Behavior Changes](#changes) for details.
-This release includes over 150 bug fixes and improvements, see the [full list of issues that were addressed in Release 4.0.0](https://jira.appcelerator.org/issues/?filter=16715)
+This release includes over 150 bug fixes and improvements, see the full list of issues that were addressed in Release 4.0.0
### Alloy 1.6.0
@@ -104,7 +104,7 @@ This Release coincides with the release of Studio 4.0.0.
* Update content assist for Alloy projects.
* Add hyperlink detector to jump from i18n translation keys in Alloy JavaScript and TSS attributes to their definition in strings.xml files.
-For more details, see the [Studio Release Notes](https://docs.appcelerator.com/platform/latest/#!/guide/Studio_Release_Notes).
+For more details, see the [Studio Release Notes](https://titaniumsdk.com/api/).
## Notice of Feature or Behavior Changes
@@ -134,7 +134,7 @@ The Facebook module was updated to use a newer version of the Facebook SDK for A
Some APIs were removed due to changes in the native Facebook SDKs and removal of the Facebook v1.0 REST APIs.
For details, see the Migration section in the
-[Facebook API reference](https://docs.appcelerator.com/platform/latest/#!/api/Modules.Facebook).
+[Facebook API reference](https://titaniumsdk.com/api/).
### iOS Platform
@@ -151,7 +151,7 @@ The Label `link` event now responds to a single tap rather than a long press.
#### iPad Split Window
-In iOS 8, the iPhone now supports the SplitView class. The `Titanium.UI.iPad.SplitWindow` class is deprecated and a new [Titanium.UI.iOS.SplitWindow](https://docs.appcelerator.com/platform/latest/#!/api/Titanium.UI.iOS.SplitWindow) class was added.
+In iOS 8, the iPhone now supports the SplitView class. The `Titanium.UI.iPad.SplitWindow` class is deprecated and a new [Titanium.UI.iOS.SplitWindow](https://titaniumsdk.com/api/) class was added.
Any application that uses the old iPad SplitWindow should transition to the new iOS SplitWindow.
@@ -170,7 +170,7 @@ This section lists new features and improvements only available on the Android p
As of this Release, the Android platform supports attributed strings using the [Titanium.UI.AttributedString](https://titaniumsdk.com/api/titanium/ui/attributedstring.html) class. Previously, this feature was only available for iOS.
-For more details, see the [Attributed String guide](https://docs.appcelerator.com/platform/latest/#!/guide/Attributed_Strings).
+For more details, see the [Attributed String guide](https://titaniumsdk.com/api/).
#### Material Theme
@@ -186,20 +186,20 @@ For details, see the "Material Theme" section in the
#### Module Lifecycle Hooks
Starting with this Release, an Android module proxy can respond to activity lifecycle events by overriding the activity lifecycle callbacks in the proxy, then in the JavaScript application, assign either a Window or TabGroup object to the proxy's
-[lifecycleContainer property](https://docs.appcelerator.com/platform/latest/#!/api/Titanium.Proxy-property-lifecycleContainer)
+[lifecycleContainer property](https://titaniumsdk.com/api/)
when creating the module proxy to monitor the lifecycle events of that object to trigger the module proxy's lifecycle events.
For details, see the "Activity Lifecycle Events" section in
-[Android Module Architecture guide](https://docs.appcelerator.com/platform/latest/#!/guide/Android_Module_Architecture).
+[Android Module Architecture guide](https://titaniumsdk.com/api/).
#### Notifications
The `Titanium.Android.Notifications` class exposes the following new properties:
- * [category](https://docs.appcelerator.com/platform/latest/#!/api/Titanium.Android.Notification-property-category): Set to a `Titanium.Android.CATEGORY_*` constant if the notification falls into one of the pre-defined notification categories. Android uses the category to determine where and how it should be displayed. Supported on Android 5.0 and greater.
- * [priority](https://docs.appcelerator.com/platform/latest/#!/api/Titanium.Android.Notification-property-priority): Set to a `Titanium.Android.PRIORITY_*` constant to determine where the notification is displayed in the drawer. Supported on Android 4.1 and greater.
- * [visibility](https://docs.appcelerator.com/platform/latest/#!/api/Titanium.Android.Notification-property-visibility): Set to a `Titanium.Android.VISIBILITY_*` constant to filter notifications in the lock screen. Supported on Android 5.0 and greater.
+ * [category](https://titaniumsdk.com/api/): Set to a `Titanium.Android.CATEGORY_*` constant if the notification falls into one of the pre-defined notification categories. Android uses the category to determine where and how it should be displayed. Supported on Android 5.0 and greater.
+ * [priority](https://titaniumsdk.com/api/): Set to a `Titanium.Android.PRIORITY_*` constant to determine where the notification is displayed in the drawer. Supported on Android 4.1 and greater.
+ * [visibility](https://titaniumsdk.com/api/): Set to a `Titanium.Android.VISIBILITY_*` constant to filter notifications in the lock screen. Supported on Android 5.0 and greater.
For details, see the
[Android Notifications guide](https://titaniumsdk.com/guide/Titanium_SDK/Titanium_SDK_How-tos/Notification_Services/Android_Notifications.html).
@@ -209,31 +209,31 @@ For details, see the
This Release adds support for scrollable tabs, where users can swipe to navigate between tabs in addition to tapping a tab in the tab bar. The following APIs were added:
- * [Titanium.UI.TabGroup.disableTabNavigation() method](https://docs.appcelerator.com/platform/latest/#!/apiTitanium.UI.TabGroup-method-disableTabNavigation): Enable or disables tab navigation, which displays or hides the tab bar, respectively.
- * [Titanium.UI.TabGroup.smoothScrollOnTabClick property](https://docs.appcelerator.com/platform/latest/#!/apiTitanium.UI.TabGroup-property-smoothScrollOnTabClick): Determines if the tab transition should be animated or not if the user taps the tab.
- * [Titanium.UI.TabGroup.swipeable property](https://docs.appcelerator.com/platform/latest/#!/apiTitanium.UI.TabGroup-property-swipeable): Determines if the user can swipe to navigate between tabs.
- * [Titanium.UI.Tab.selected event](https://docs.appcelerator.com/platform/latest/#!/apiTitanium.UI.Tab-event-selected): Fired when the tab is selected.
- * [Titanium.UI.Tab.unselected event](https://docs.appcelerator.com/platform/latest/#!/apiTitanium.UI.Tab-event-unselected): Fired when the tab is unselected.
+ * [Titanium.UI.TabGroup.disableTabNavigation() method](https://titaniumsdk.com/api/): Enable or disables tab navigation, which displays or hides the tab bar, respectively.
+ * [Titanium.UI.TabGroup.smoothScrollOnTabClick property](https://titaniumsdk.com/api/): Determines if the tab transition should be animated or not if the user taps the tab.
+ * [Titanium.UI.TabGroup.swipeable property](https://titaniumsdk.com/api/): Determines if the user can swipe to navigate between tabs.
+ * [Titanium.UI.Tab.selected event](https://titaniumsdk.com/api/): Fired when the tab is selected.
+ * [Titanium.UI.Tab.unselected event](https://titaniumsdk.com/api/): Fired when the tab is unselected.
#### Split Action Bar
This Release adds support for the split action bar, which displays action items in a separate bar at the bottom of the window instead of at the top. To create a split action bar, set the
-[splitActionBar property](https://docs.appcelerator.com/platform/latest/#!/api/Titanium.UI.Window-property-splitActionBar)
+[splitActionBar property](https://titaniumsdk.com/api/)
to `true` when creating a Window object.
#### TLS Support
As of this Release, the application can specify which TLS version to use with the HTTPClient. Set the HTTPClient's
-[tlsVersion](https://docs.appcelerator.com/platform/latest/#!/api/Titanium.Network.HTTPClient-property-tlsVersion)
+[tlsVersion](https://titaniumsdk.com/api/)
property to one of the `Titanium.Network.TLS_*` constants to force the TLS version to use.
Previously, this feature was only available for iOS.
For details, see the "TLS Support" section in the
-[HTTPClient API reference](https://docs.appcelerator.com/platform/latest/#!/api/Titanium.Network.HTTPClient).
+[HTTPClient API reference](https://titaniumsdk.com/api/).
#### Video Thumbnails
@@ -253,7 +253,7 @@ Previously, this feature was only available for iOS.
The Facebook module was updated to use a newer version of the Facebook SDK for Android and iOS. New features include the Like button and using the Facebook application's interface for dialogs if the Facebook app is also installed on device.
For details, see the
-[Facebook API reference](https://docs.appcelerator.com/platform/latest/#!/api/Modules.Facebook).
+[Facebook API reference](https://titaniumsdk.com/api/).
### iOS Platform
@@ -266,8 +266,8 @@ This section lists new features and improvements only available on the iOS platf
This Release exposes the following APIs to request permission to use the device's camera:
- * [Titanium.Media.requestCameraAccess()](https://docs.appcelerator.com/platform/latest/#!/api/Titanium.Media-method-requestCameraAccess): Request permission to use the device's camera.
- * [Titanium.Media.cameraAuthorizationStatus](https://docs.appcelerator.com/platform/latest/#!/api/Titanium.Media-property-cameraAuthorizationStatus): Retrieve the current authorization status for the camera.
+ * [Titanium.Media.requestCameraAccess()](https://titaniumsdk.com/api/): Request permission to use the device's camera.
+ * [Titanium.Media.cameraAuthorizationStatus](https://titaniumsdk.com/api/): Retrieve the current authorization status for the camera.
Note that the application will automatically request permission to use the camera if the camera
application is launched. The new APIs allow the application to explicitly request permission from
@@ -278,14 +278,14 @@ the user before the camera is launched.
The `Titanium.Contacts.Person` class exposes the following new properties:
- * [alternateBirthday](https://docs.appcelerator.com/platform/latest/#!/api/Titanium.Contacts.Person-property-alternateBirthday): Adds an alternate birthday to the contact.
- * [socialProfile](https://docs.appcelerator.com/platform/latest/#!/api/Titanium.Contacts.Person-property-socialProfile): Adds social profile information to the contact.
+ * [alternateBirthday](https://titaniumsdk.com/api/): Adds an alternate birthday to the contact.
+ * [socialProfile](https://titaniumsdk.com/api/): Adds social profile information to the contact.
#### Split Window
This Release introduces the
-[Titanium.UI.iOS.SplitWindow class](https://docs.appcelerator.com/platform/latest/#!/api/Titanium.UI.iOS.SplitWindow)
+[Titanium.UI.iOS.SplitWindow class](https://titaniumsdk.com/api/)
to support the SplitWindow object on both iPhone and iPad devices, introduced in iOS 8. Previously, this feature was only available for iPad. This class deprecates the `Titanium.UI.iPad.SplitWindow` class.
@@ -297,7 +297,7 @@ preferences that can be shared between multiple applications that are registered
application group permission.
For more details, see the
-[iOS Extension Guide](https://docs.appcelerator.com/platform/latest/#!/guide/Integrate_a_Native_iOS_App_Extension_or_WatchKit_App-section-43301277_IntegrateaNativeiOSAppExtensionorWatchKitApp-ShareDataBetweentheApplicationandExtension).
+[iOS Extension Guide](https://titaniumsdk.com/api/).
diff --git a/apidoc/Titanium/CHANGELOG/4.1.0.GA.mdoc b/apidoc/Titanium/CHANGELOG/4.1.0.GA.mdoc
index 11aed32d61d..72f7158cd9e 100644
--- a/apidoc/Titanium/CHANGELOG/4.1.0.GA.mdoc
+++ b/apidoc/Titanium/CHANGELOG/4.1.0.GA.mdoc
@@ -38,7 +38,7 @@ This Release introduces a number of new features. See [New Features](#features)
a summary of new features in this release.
This release includes over 150 bug fixes and improvements, see the
-[full list of issues that were addressed in Release 4.1.0](https://jira.appcelerator.org/issues/?filter=16879).
+full list of issues that were addressed in Release 4.1.0.
### CLI 4.1.0
@@ -47,7 +47,7 @@ This Release conincides with the release of Appcelerator CLI 4.1.0. Notable fix
the CLI include improvements to use the CLI from behind a proxy server.
For more details, see the
-[CLI Release Notes](https://docs.appcelerator.com/platform/latest/#!/guide/Appcelerator_CLI_Release_Notes).
+[CLI Release Notes](https://titaniumsdk.com/api/).
### iOS Support
@@ -67,7 +67,7 @@ This Release coincides with the release of Studio 4.1.0.
* Add ability to create Controllers, Styles and Views for Alloy Widgets.
For more details, see the
-[Studio Release Notes](https://docs.appcelerator.com/platform/latest/#!/guide/Studio_Release_Notes).
+[Studio Release Notes](https://titaniumsdk.com/api/).
### Windows Hybrid Support
@@ -89,11 +89,11 @@ that can be deployed to tablets.
For information on getting started, see:
- * [Installing the Windows Phone SDK](https://docs.appcelerator.com/platform/latest/#!/guide/Installing_the_Windows_Phone_SDK)
- * [Windows Platform Overview](https://docs.appcelerator.com/platform/latest/#!/guide/Windows_Platform_Overview)
- * [Windows UI Components and Conventions](https://docs.appcelerator.com/platform/latest/#!/guide/Windows_UI_Components_and_Conventions)
- * [Deploying to Windows Devices](https://docs.appcelerator.com/platform/latest/#!/guide/Deploying_to_Windows_Devices)
- * [Distributing Windows Applications](https://docs.appcelerator.com/platform/latest/#!/guide/Distributing_Windows_Applications)
+ * [Installing the Windows Phone SDK](https://titaniumsdk.com/api/)
+ * [Windows Platform Overview](https://titaniumsdk.com/api/)
+ * [Windows UI Components and Conventions](https://titaniumsdk.com/api/)
+ * [Deploying to Windows Devices](https://titaniumsdk.com/api/)
+ * [Distributing Windows Applications](https://titaniumsdk.com/api/)
## New Features
@@ -115,43 +115,43 @@ by using the `hintColorText` property.
#### HTTP Client
The HTTPClient
-[open method](https://docs.appcelerator.com/platform/latest/#!/api/Titanium.Network.HTTPClient-method-open)
+[open method](https://titaniumsdk.com/api/)
now supports the PATCH HTTP verb on Android.
#### Label
On Android, the application can set how tall in lines a label can be by using the
-[lines](https://docs.appcelerator.com/platform/latest/#!/api/Titanium.UI.Label-property-lines) and
-[maxline](https://docs.appcelerator.com/platform/latest/#!/api/Titanium.UI.Label-property-maxLines)
+[lines](https://titaniumsdk.com/api/) and
+[maxline](https://titaniumsdk.com/api/)
properties.
#### List View
In addition to the [List View improvements mentioned below](#list_view), on Android, use List View's
-[separatorHeight](https://docs.appcelerator.com/platform/latest/#!/api/Titanium.UI.ListView-property-separatorHeight)
+[separatorHeight](https://titaniumsdk.com/api/)
property to set the height of the line separator between list items.
#### Scrollable View
Android now supports the
-[cacheSize](https://docs.appcelerator.com/platform/latest/#!/api/Titanium.UI.ScrollableView-property-cacheSize)
+[cacheSize](https://titaniumsdk.com/api/)
property for ScrollableView. Previously, the API was only available for iOS.
### Audio Player
On Android, iOS and Windows Phone, the Titanium.Media.AudioPlayer module now fires the
-[error](https://docs.appcelerator.com/platform/latest/#!/api/Titanium.Media.AudioPlayer-event-error)
+[error](https://titaniumsdk.com/api/)
event when an error occurs playing the audio stream.
### Facebook Module
-The [requestDialogCompleted event](https://docs.appcelerator.com/platform/latest/#!/api/Modules.Facebook-event-requestDialogCompleted)
+The [requestDialogCompleted event](https://titaniumsdk.com/api/)
now returns a `data` field containing the response data from Facebook.
@@ -159,8 +159,8 @@ now returns a `data` field containing the response data from Facebook.
This Release introduces several List View improvements for both Android and iOS.
-Listen for the [scrollstart](https://docs.appcelerator.com/platform/latest/#!/api/Titanium.UI.ListView-event-scrollstart)
-and [scrollend](https://docs.appcelerator.com/platform/latest/#!/api/Titanium.UI.ListView-event-scrollend)
+Listen for the [scrollstart](https://titaniumsdk.com/api/)
+and [scrollend](https://titaniumsdk.com/api/)
to see when the List View starts or stops scrolling, respectively.
List View now supports adding multiple markers, which fires the `marker ` event when the user
@@ -171,9 +171,9 @@ scrolls to it. Previously, you could only set one marker at a time. For more det
### Map Module
The Map module now supports adding vector overlays on the map. For details, see the
-[Map.Circle](https://docs.appcelerator.com/platform/latest/#!/api/Modules.Map.Circle),
-[Map.Polygon](https://docs.appcelerator.com/platform/latest/#!/api/Modules.Map.Polygon) and
-[Map.Polyline](https://docs.appcelerator.com/platform/latest/#!/api/Modules.Map.Polyline) classes.
+[Map.Circle](https://titaniumsdk.com/api/),
+[Map.Polygon](https://titaniumsdk.com/api/) and
+[Map.Polyline](https://titaniumsdk.com/api/) classes.
@@ -186,8 +186,8 @@ This section lists new features and improvements only available on the iOS platf
As of this Release, the application can set and read file protection attributes. Use the
Titanium.Filesystem.File objects
-[setProtectionKey()](https://docs.appcelerator.com/platform/latest/#!/api/Titanium.Filesystem.File-method-setProtectionKey) and
-[getProtectionKey()](https://docs.appcelerator.com/platform/latest/#!/api/Titanium.Filesystem.File-method-getProtectionKey)
+[setProtectionKey()](https://titaniumsdk.com/api/) and
+[getProtectionKey()](https://titaniumsdk.com/api/)
methods to set and read the file object's protection attributes, respectively.
@@ -205,21 +205,21 @@ For details, see
#### Tab
On iOS, the application can set the title color of the active tab or inactive tabs by using the Tab object's
-[activeTitleColor](https://docs.appcelerator.com/platform/latest/#!/api/Titanium.UI.Tab-property-activeTitleColor)
-and [titleColor](https://docs.appcelerator.com/platform/latest/#!/api/Titanium.UI.Tab-property-titleColor)
+[activeTitleColor](https://titaniumsdk.com/api/)
+and [titleColor](https://titaniumsdk.com/api/)
properties, respectively.
### Region Locale
The Internationalization framework for Android and iOS now supports region locales. For details, see the
-[Internationalization guide](https://docs.appcelerator.com/platform/latest/#!/guide/Internationalization-section-29004892_Internationalization-Languagestrings).
+[Internationalization guide](https://titaniumsdk.com/api/).
### Uncaught Errors
The application can now catch and respond to unhandled JavaScript errors. Listen for the Titanium.App
-[uncaughtException event](https://docs.appcelerator.com/platform/latest/#!/api/Titanium.App-event-uncaughtException).
+[uncaughtException event](https://titaniumsdk.com/api/).
diff --git a/apidoc/Titanium/CHANGELOG/5.0.0.GA.mdoc b/apidoc/Titanium/CHANGELOG/5.0.0.GA.mdoc
index 7c55b622ae9..f611d63d5ff 100644
--- a/apidoc/Titanium/CHANGELOG/5.0.0.GA.mdoc
+++ b/apidoc/Titanium/CHANGELOG/5.0.0.GA.mdoc
@@ -54,7 +54,7 @@ a summary of new features in this release. Notable issues include support for
Android 6.0 (Marshmallow), iOS 9.0, watchOS 2 and direct API access for Windows.
This Release includes over 150 bug fixes and improvements, see the
-[full list of issues that were addressed in Release 5.0.0](https://jira.appcelerator.org/issues/?filter=16923).
+full list of issues that were addressed in Release 5.0.0.
### Android Support
@@ -71,7 +71,7 @@ which includes [Alloy 1.7.8](https://github.com/tidev/alloy/releases)
and [Titanium CLI 5.0.3](https://github.com/tidev/titanium/releases).
For more details, see the
-[CLI Release Notes](https://docs.appcelerator.com/platform/latest/#!/guide/Appcelerator_CLI_Release_Notes).
+[CLI Release Notes](https://titaniumsdk.com/api/).
### iOS and watchOS Support
@@ -86,7 +86,7 @@ iOS app extensions and watchOS 1 applications are not supported in this Release.
To get started with watchOS 2, see:
- * [Integrate a WatchKit App Built in Xcode](https://docs.appcelerator.com/platform/latest/#!/guide/Integrate_a_WatchKit_App_Built_in_Xcode)
+ * [Integrate a WatchKit App Built in Xcode](https://titaniumsdk.com/api/)
* [appc-sample-watchos2](https://github.com/appcelerator-developer-relations/appc-sample-watchos2)
@@ -96,7 +96,7 @@ This Release coincides with the release of Studio 4.3.0, which includes support
building, running and packaging watchOS 2 applications built in Xcode.
For more details, see the
-[Studio Release Notes](https://docs.appcelerator.com/platform/latest/#!/guide/Studio_Release_Notes).
+[Studio Release Notes](https://titaniumsdk.com/api/).
## Notice of Feature and Behavior Changes
@@ -112,7 +112,7 @@ network support, you can no longer set the expiration date of the cookie using t
property.
Instead, set the
-[maxAge](https://docs.appcelerator.com/platform/latest/#!/api/Titanium.Network.Cookie-property-maxAge)
+[maxAge](https://titaniumsdk.com/api/)
property of the Cookie object on the Android platform.
@@ -133,7 +133,7 @@ to the `ios plist` section of the `tiapp.xml` file, then add the `NSAllowArbitra
Note that you may need to whitelist URLs in order to connect to the web services.
For more information, see the _iOS 9 Application Note_ in the
-[Titanium.Network API reference](https://docs.appcelerator.com/platform/latest/#!/api/Titanium.Network).
+[Titanium.Network API reference](https://titaniumsdk.com/api/).
#### Contacts
@@ -169,14 +169,14 @@ Apple recommends not to include hard-coded IPv4 address literals in your applica
and to test the application with an IPv6 DNS64/NAT64 network.
For more information, see the _iOS 9 Application Note_ in the
-[Titanium.Network API reference](https://docs.appcelerator.com/platform/latest/#!/api/Titanium.Network).
+[Titanium.Network API reference](https://titaniumsdk.com/api/).
#### ListView Edit Actions
The `rowAction` event was renamed to the `editaction` event, which is fired when a user interacts
with a custom edit action in a list item. Update your application to listen for the
-[`editaction`](https://docs.appcelerator.com/platform/latest/#!/api/Titanium.UI.ListView-event-editaction) event.
+[`editaction`](https://titaniumsdk.com/api/) event.
@@ -209,7 +209,7 @@ This section lists new features and improvements only available on the Android p
#### Large Icon Support for Notifications
This Release supports adding a large icon to be shown in the content area of a notificaiton. Set the
-[largeIcon](https://docs.appcelerator.com/platform/latest/#!/api/Titanium.Android.Notification-property-largeIcon)
+[largeIcon](https://titaniumsdk.com/api/)
property of the Ti.Android.Notification object.
@@ -242,7 +242,7 @@ This section lists new features and improvements only available on the iOS platf
#### Attributed String Line Break
iOS now supports changing the line break behavior with AttributedStrings. Set the attribute type to
-[`ATTRIBUTE_LINE_BREAK`](https://docs.appcelerator.com/platform/latest/#!/api/Titanium.UI-property-ATTRIBUTE_LINE_BREAK)
+[`ATTRIBUTE_LINE_BREAK`](https://titaniumsdk.com/api/)
and the attribute value to an `ATTRIBUTE_LINE_BREAK_*` constant.
@@ -255,8 +255,8 @@ reading.
For more information, see:
- * [Titanium.App.iOS.UserActivity API reference](https://docs.appcelerator.com/platform/latest/#!/api/Titanium.App.iOS.UserActivity)
- * [Handoff User Activites guide](https://docs.appcelerator.com/platform/latest/#!/guide/Handoff_User_Activities)
+ * [Titanium.App.iOS.UserActivity API reference](https://titaniumsdk.com/api/)
+ * [Handoff User Activites guide](https://titaniumsdk.com/api/)
#### Icons and Launch Images
@@ -271,7 +271,7 @@ New Titanium projects will have the `DefaultIcon.png` file.
Note that the localized launch images in the `i18n` folder are not supported by Asset Catalog.
For more details, see the
-[Icons and Splash Screens guide](https://docs.appcelerator.com/platform/latest/#!/guide/Icons_and_Splash_Screens-section-29004897_IconsandSplashScreens-iOSgraphicassetrequirementsandoptions).
+[Icons and Splash Screens guide](https://titaniumsdk.com/api/).
#### Spotlight Search
@@ -281,15 +281,15 @@ the private on-device index or public Apple server-side index so the user can fi
For more information, see:
- * _Index Application Content_ section in [Titanium.App.iOS API reference](https://docs.appcelerator.com/platform/latest/#!/api/Titanium.App.iOS)
- * [Spotlight Search guide](https://docs.appcelerator.com/platform/latest/#!/guide/Spotlight_Search)
+ * _Index Application Content_ section in [Titanium.App.iOS API reference](https://titaniumsdk.com/api/)
+ * [Spotlight Search guide](https://titaniumsdk.com/api/)
* [appc-sample-appsearch](https://github.com/appcelerator-developer-relations/appc-sample-appsearch)
#### Watch Connectivity
To communicate with watchOS 2 applications, use the
-[Titanum.WatchSession API](https://docs.appcelerator.com/platform/latest/#!/api/Titanium.WatchSession)
+[Titanum.WatchSession API](https://titaniumsdk.com/api/)
to exchange data and files.
Note that the application must run on an iOS 9 iPhone that supports watch apps and a watchOS 2 watch,
@@ -297,7 +297,7 @@ and needs to be built with iOS 9 and Xcode 7.
To get started with Watch Connectivity, see:
- * [Integrate a WatchKit App Built in Xcode](https://docs.appcelerator.com/platform/latest/#!/guide/Integrate_a_WatchKit_App_Built_in_Xcode)
+ * [Integrate a WatchKit App Built in Xcode](https://titaniumsdk.com/api/)
* [appc-sample-watchos2](https://github.com/appcelerator-developer-relations/appc-sample-watchos2)
@@ -312,13 +312,13 @@ This section lists new features and improvements only available on the Windows p
The Windows Platform expands support for several APIs, including:
- * Support for [Titanium.UI.Clipboard](https://docs.appcelerator.com/platform/latest/#!/api/Titanium.UI.Clipboard)
- * Events for [Titanium.Media.AudioPlayer](https://docs.appcelerator.com/platform/latest/#!/api/Titanium.Media.AudioPlayer),
- [Titanium.Media.Sound](https://docs.appcelerator.com/platform/latest/#!/api/Titanium.Media.Sound) and
- [Titanium.Media.VideoPlayer](https://docs.appcelerator.com/platform/latest/#!/api/Titanium.Media.VideoPlayer)
- * Expanded support for [Titanium.UI.Button](https://docs.appcelerator.com/platform/latest/#!/api/Titanium.UI.Button)
- [Titanium.UI.ScrollView](https://docs.appcelerator.com/platform/latest/#!/api/Titanium.UI.ScrollView) and
- [Titanium.UI.View](https://docs.appcelerator.com/platform/latest/#!/api/Titanium.UI.View)
+ * Support for [Titanium.UI.Clipboard](https://titaniumsdk.com/api/)
+ * Events for [Titanium.Media.AudioPlayer](https://titaniumsdk.com/api/),
+ [Titanium.Media.Sound](https://titaniumsdk.com/api/) and
+ [Titanium.Media.VideoPlayer](https://titaniumsdk.com/api/)
+ * Expanded support for [Titanium.UI.Button](https://titaniumsdk.com/api/)
+ [Titanium.UI.ScrollView](https://titaniumsdk.com/api/) and
+ [Titanium.UI.View](https://titaniumsdk.com/api/)
For details, see the [New APIs section below](#new_apis).
@@ -335,7 +335,7 @@ To use the WinRT APIs, pass the `require()` method the fully qualified name of t
to use, then invoke API calls on the object.
For details, see the
-[Window Runtime Direct API Access](https://docs.appcelerator.com/platform/latest/#!/guide/Windows_Runtime_Direct_API_Access).
+[Window Runtime Direct API Access](https://titaniumsdk.com/api/).
## Known Issues
diff --git a/apidoc/Titanium/Calendar/Calendar.yml b/apidoc/Titanium/Calendar/Calendar.yml
index e9e47cc9d96..b51c18b9ef2 100644
--- a/apidoc/Titanium/Calendar/Calendar.yml
+++ b/apidoc/Titanium/Calendar/Calendar.yml
@@ -8,7 +8,7 @@ description: |
#### Android
On Android, calendar permissions must be explicitly configured in `tiapp.xml` in order to access the
- calendar and you have to use [requestCalendarPermissions](Titanium.Calendar.requestcalendarpermissions)
+ calendar and you have to use [requestCalendarPermissions](Titanium.Calendar.requestCalendarPermissions)
to request runtime permissions.
``` xml
diff --git a/apidoc/Titanium/Calendar/Event.yml b/apidoc/Titanium/Calendar/Event.yml
index 51d4831c44a..da4d8cbe140 100644
--- a/apidoc/Titanium/Calendar/Event.yml
+++ b/apidoc/Titanium/Calendar/Event.yml
@@ -72,7 +72,7 @@ methods:
- name: save
summary: Saves changes to an event permanently.
description: |
- This method raises an exception if it is passed an event from another event store.
+ This method raises an exception if it is passed an event from another calendar.
When an event is saved, it is updated in the Calendar database. Any fields you did
not modify are updated to reflect the most recent value in the database. If the
@@ -94,20 +94,21 @@ methods:
since: {android: "7.1.0", iphone: "3.1.0", ipad: "3.1.0"}
- name: remove
- summary: Removes an event from the event store.
+ summary: Removes an event from the calendar.
description: |
- This method raises an exception if it is passed an event from another event store.
+ This method raises an exception on iOS if an event from another calendar is used.
returns:
type: Boolean
parameters:
- name: span
summary: |
- The span to use. Indicates whether to remove future instances of the event in
+ iOS-only: The span to use. Indicates whether to remove future instances of the event in
the case of a recurring event.
type: Number
constants: Titanium.Calendar.SPAN_*
default:
- platforms: [iphone, ipad, macos]
+ since: {android: "12.4.0", iphone: "3.1.0", ipad: "3.1.0", macos: "9.2.0"}
+ platforms: [android, iphone, ipad, macos]
- name: refresh
summary: Updates the event's data with the current information in the Calendar database.
diff --git a/apidoc/Titanium/Filesystem/File.yml b/apidoc/Titanium/Filesystem/File.yml
index c4e5cb8aad7..e2a5f2b16d4 100644
--- a/apidoc/Titanium/Filesystem/File.yml
+++ b/apidoc/Titanium/Filesystem/File.yml
@@ -165,6 +165,9 @@ methods:
summary: Returns the creation Date for the file identified by this file object.
description: |
On Android, returns a Date whose `getTime()` value is 0 for resource files.
+
+ **Important**: When developing for the Apple ecosystem, using this API requires the `NSPrivacyAccessedAPICategoryFileTimestamp`
+ property set in the privacy manifest that was introduced in iOS 17. You can learn more about it [here](https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_use_of_required_reason_api).
returns:
type: Date
platforms: [iphone, ipad, android, macos]
@@ -255,6 +258,9 @@ methods:
summary: Returns the last modification Date for the file identified by this file object.
description: |
On Android, returns a Date whose `getTime()` value is 0 for resource files.
+
+ **Important**: When developing for the Apple ecosystem, using this API requires the `NSPrivacyAccessedAPICategoryFileTimestamp`
+ property set in the privacy manifest that was introduced in iOS 17. You can learn more about it [here](https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_use_of_required_reason_api).
returns:
type: Date
platforms: [iphone, ipad, android, macos]
@@ -346,6 +352,9 @@ methods:
identified by this file object is stored.
description: |
Free space is returned in bytes.
+
+ **Important**: When developing for the Apple ecosystem, using this API requires the `NSPrivacyAccessedAPICategoryDiskSpace`
+ property set in the privacy manifest that was introduced in iOS 17. You can learn more about it [here](https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_use_of_required_reason_api).
returns:
type: Number
diff --git a/apidoc/Titanium/Media/Media.yml b/apidoc/Titanium/Media/Media.yml
index 188ded1d2c3..8e6a97e518e 100644
--- a/apidoc/Titanium/Media/Media.yml
+++ b/apidoc/Titanium/Media/Media.yml
@@ -1228,6 +1228,13 @@ properties:
type: Number
permission: read-only
+ - name: NO_FOCUS
+ summary: Constant for camera didn't focus when taking a trying to take a picture.
+ type: Number
+ permission: read-only
+ since:
+ android: "12.2.1"
+
- name: VIDEO_CONTROL_DEFAULT
deprecated:
since: "7.0.0"
@@ -2228,6 +2235,20 @@ properties:
osver: {ios: {min: "14.0"}}
since: { android: "6.0.0", iphone: "9.2.0", ipad: "9.2.0" }
+ - name: maxImages
+ summary: Specifies the number of images a user can select at maximum.
+ description: |
+ Only available on Android API 21 and above and with `allowMultiple:true`
+ type: Boolean
+ platforms: [android]
+ since: { android: "12.5.0" }
+
+ - name: pathOnly
+ summary: Do not include the blob in the result
+ type: Boolean
+ platforms: [android]
+ since: { android: "12.5.0" }
+
- name: selectionLimit
summary: Specifies number of media item that can be selected.
description: |
@@ -2277,6 +2298,12 @@ properties:
summary: The media object, as a [Blob](Titanium.Blob).
type: Titanium.Blob
+ - name: path
+ summary: The path of the image when returning data from the gallery.
+ type: String
+ platforms: [android]
+ since: "12.5.0"
+
- name: mediaType
summary: The type of media, either `MEDIA_TYPE_PHOTO`, `MEDIA_TYPE_LIVEPHOTO` or `MEDIA_TYPE_VIDEO` defined in .
type: String
@@ -2370,7 +2397,7 @@ properties:
- name: code
summary: Error code, if applicable.
type: Number
- constants: [Titanium.Media.DEVICE_BUSY, Titanium.Media.NO_CAMERA, Titanium.Media.UNKNOWN_ERROR]
+ constants: [Titanium.Media.DEVICE_BUSY, Titanium.Media.NO_CAMERA, Titanium.Media.UNKNOWN_ERROR, Titanium.Media.NO_FOCUS]
accessors: false
- name: success
diff --git a/apidoc/Titanium/Media/VideoPlayer.yml b/apidoc/Titanium/Media/VideoPlayer.yml
index d36eafc5da8..d723797acb9 100644
--- a/apidoc/Titanium/Media/VideoPlayer.yml
+++ b/apidoc/Titanium/Media/VideoPlayer.yml
@@ -484,6 +484,17 @@ properties:
type: Number
default: 0
+ - name: fairPlayConfiguration
+ platforms: [iphone, ipad, macos]
+ summary: 'Handle DRM-encrypted video assets using the [Apple FairPlay Streaming API](https://developer.apple.com/streaming/fps/).'
+ description:
+ Secure the delivery of streaming media to devices through the HTTP Live Streaming (HLS) protocol. Using FairPlay Streaming (FPS)
+ technology, content providers, encoding vendors, and delivery networks can encrypt content, securely exchange keys,
+ and protect playback on iOS, iPadOS and macOS.
+ type: FairPlayConfiguration
+ availability: creation
+ since: "12.2.0"
+
- name: fullscreen
platforms: [android]
deprecated:
@@ -564,6 +575,15 @@ properties:
platforms: [iphone, ipad, macos]
type: MovieSize
+ - name: speed
+ summary: Playback speed of the video.
+ description: |
+ Playback speed of the video. Android: only available for API level >= 23.
+ type: Number
+ platforms: [android]
+ since: 12.4.0
+ availability: creation
+
- name: overlayView
summary: Use the overlay view to add additional custom views between the video content and the controls.
description: |
@@ -711,3 +731,16 @@ properties:
- name: height
summary: Height of the movie.
type: Number
+
+---
+name: FairPlayConfiguration
+summary: An object representing a FairPlay Streaming configuration.
+platforms: [iphone, ipad, macos]
+properties:
+ - name: licenseURL
+ summary: The FairPlay Streaming license URL to handle the server-side authentication flow.
+ type: String
+
+ - name: certificate
+ summary: The FairPlay Streaming public certificate to authenticate the content key request.
+ type: Titanium.Blob
diff --git a/apidoc/Titanium/Network/HTTPClient.yml b/apidoc/Titanium/Network/HTTPClient.yml
index 21f72dc2e05..d758baa8a6c 100644
--- a/apidoc/Titanium/Network/HTTPClient.yml
+++ b/apidoc/Titanium/Network/HTTPClient.yml
@@ -493,6 +493,13 @@ properties:
type: String
permission: read-only
+ - name: responseDictionary
+ summary: Response as JSON object.
+ description: Set to `null` if the content type returned by the server was not a JSON or if the content could
+ not be parsed.
+ type: String
+ permission: read-only
+
- name: responseXML
summary: Response object as an XML DOM Document object.
description:
diff --git a/apidoc/Titanium/Platform/Platform.yml b/apidoc/Titanium/Platform/Platform.yml
index 83e0d06fca8..a5542c59056 100644
--- a/apidoc/Titanium/Platform/Platform.yml
+++ b/apidoc/Titanium/Platform/Platform.yml
@@ -392,6 +392,9 @@ properties:
- name: uptime
summary: System uptime since last boot in seconds.
+ description: |
+ **Important**: When developing for the Apple ecosystem, using this API requires the `NSPrivacyAccessedAPICategorySystemBootTime`
+ property set in the privacy manifest that was introduced in iOS 17. You can learn more about it [here](https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_use_of_required_reason_api).
type: Number
permission: read-only
platforms: [android, iphone, ipad, macos]
diff --git a/apidoc/Titanium/UI/2DMatrix.yml b/apidoc/Titanium/UI/2DMatrix.yml
deleted file mode 100644
index 09490dc6b72..00000000000
--- a/apidoc/Titanium/UI/2DMatrix.yml
+++ /dev/null
@@ -1,298 +0,0 @@
----
-name: Titanium.UI.2DMatrix
-summary: The 2D Matrix is an object for holding values for an affine transformation matrix.
-description: |
- A 2D matrix is used to rotate, scale, translate, or skew the objects in a two-dimensional space.
- A 2D affine transformation can be represented by a 3 by 3 matrix:
-
-
-
-
- a
- b
- 0
-
-
- c
- d
- 0
-
-
- tx
- ty
- 1
-
-
-
-
- The third column is constant (0,0,1).
-
- On iOS, the matrix terms, `a`, `b`, `c`, `d`, `tx`, and `ty`,
- are available as properties. On Android, the matrix terms are not available as properties.
-
- Use the method to create a new 2D matrix. You can
- pass an optional dictionary to the method to initialize the
- matrix. For example, the following creates a new matrix with a 45 degree rotation.
-
- ``` js
- var m = Ti.UI.create2DMatrix({
- rotate: 45
- });
- ```
-
- If you pass no arguments, `create2DMatrix` returns an identity matrix.
-
-extends: Titanium.Proxy
-since: "0.9"
-platforms: [android, iphone, ipad, macos]
-deprecated:
- since: "8.0.0"
- notes: Use [Titanium.UI.Matrix2D](Titanium.UI.Matrix2D) for improved ES6+ compatibility instead.
-
-methods:
- - name: invert
- summary: Returns a matrix constructed by inverting this matrix.
- returns:
- type: Titanium.UI.2DMatrix
- - name: multiply
- summary: Returns a matrix constructed by combining two existing matrices.
- description: |
- The argument, `t2` is concatenated to the matrix instance against which the function is invoked. The
- resulting matrix is the result of multiplying this matrix by `t2`. You might perform several
- multiplications in order to create a single matrix that contains the cumulative effects of
- several transformations.
-
- Note that matrix operations are not commutative -- the order in which you concatenate matrices
- is important. That is, the result of multiplying matrix `t1` by matrix `t2` does not necessarily
- equal the result of multiplying matrix `t2` by matrix `t1`.
- returns:
- type: Titanium.UI.2DMatrix
- parameters:
- - name: t2
- summary: The second matrix.
- type: Titanium.UI.2DMatrix
-
- - name: rotate
- summary: Returns a matrix constructed by rotating this matrix.
- description: |
- There are two distinct versions of this method, depending on whether one argument
- or two are specified.
-
- * `rotate(angle)`. The standard `rotate` method.
- * `rotate(fromAngle, toAngle)`. Android only. Used for specifying rotation
- animations.
-
- In both cases, a positive value specifies clockwise rotation and a negative value
- specifies counter-clockwise rotation.
-
- Details for each version are discussed below.
-
- #### rotate(angle)
-
- Returns a matrix constructed by rotating this matrix.
-
- Note that the resulting matrix only expresses the final transformation, not the
- direction of the rotation. For example, the matrix produced by `m1.rotate(-10)`
- is identical to the matrix produced by `m1.rotate(350)` and `m1.rotate(710)`.
-
- Note that if you specify a rotation matrix as the `transform` property of an
- animation, the animation animates the view from its current rotation to the
- rotation represented by the matrix by its shortest path. So to rotate a view
- in a complete circle, the easiest method is to chain together three animations,
- rotating 120 degrees each time.
-
- For the purposes of animation, it should be noted that the rotation angle is
- normalized to the range -180 <= angle < 180. In other
- words, an angle of 180 degrees is normalized to -180. This makes no difference
- except when determining which direction an animation rotates. 179 degrees rotates
- rotate clockwise, but 180 degrees is normalized to -180, so rotates counter-clockwise.
-
- #### rotate(angle, toAngle) -- Android Only
-
- This is an Android-specific method used for creating rotation animations.
- Returns a `2DMatrix` object that represents a rotation from `angle` to `toAngle`.
-
- Angles are specified in degrees. Positive values represent clockwise rotation, and negative values
- represent counter-clockwise rotation. Values are not normalized, so for example an
- angle of 720 degrees represents two complete clockwise revolutions.
-
- The resulting object cannot be expressed as an affine transform, but can be used with the
- property to specify a rotation animation.
- returns:
- type: Titanium.UI.2DMatrix
- parameters:
- - name: angle
- summary: |
- Angle to rotate to, in degrees. On Android, if `toAngle` is specified, this specifies
- the starting angle for a rotation animation.
- type: Number
-
- - name: toAngle
- summary: Ending angle for a rotation animation, in degrees. Android only.
- type: Number
- optional: true
-
- - name: scale
- summary: |
- Returns a `2DMatrix` object that specifies a scaling animation from one scale to another.
- description: |
- There are two distinct versions of this method, depending on whether two arguments
- or four are specified.
-
- * `scale(sx, sy)`. The standard `scale` method.
- * `scale(fromSx, fromSy, toSx, toSy)`. Android only. Used for specifying a
- scaling animation from one size to another.
-
- #### scale(sx, sy)
-
- Returns a matrix constructed by applying a scale transform to this matrix.
- Scaling the current matrix by `sx` along the X axis and by `sy` along the Y axis.
-
- #### scale(sx, sy, toSx, toSy) -- Android Only
-
- This Android-specific method returns a `2DMatrix` object that can be used to
- create a scaling animation from one scale factor to another scale factor.
-
- The resulting object cannot be expressed as an affine transform, but can be used with the
- property to specify a scaling animation.
- returns:
- type: Titanium.UI.2DMatrix
- parameters:
- - name: sx
- summary: |
- Horizontal scaling factor. If `toSx` and `toSy` are specified,
- this specifies the starting horizontal scaling factor, at the beginning
- of an animation.
- type: Number
-
- - name: sy
- summary: |
- Vertical scaling factor. If `toSx` and `toSy` are specified,
- this specifies the starting vertical scaling factor, at the beginning of
- an animation.
- type: Number
-
- - name: toSx
- summary: |
- Ending horizontal scaling factor, at the end of an animation.
- If specified, `toSy` must be specified as well. Android only.
- type: Number
- optional: true
-
- - name: toSy
- summary: |
- Ending vertical scaling factor, at the end of an animation.
- If specified, `toSx` must be specified as well. Android only.
- type: Number
- optional: true
-
- - name: translate
- summary: Returns a matrix constructed by applying a translation transform to this matrix.
- returns:
- type: Titanium.UI.2DMatrix
- parameters:
- - name: tx
- summary: Horizontal component of the translation.
- type: Number
- - name: ty
- summary: Vertical component of the translation.
- type: Number
-
-properties:
- - name: a
- summary: The entry at position [1,1] in the matrix.
- type: Number
- exclude-platforms: [android]
- - name: b
- summary: The entry at position [1,2] in the matrix.
- type: Number
- exclude-platforms: [android]
- - name: c
- summary: The entry at position [2,1] in the matrix.
- type: Number
- exclude-platforms: [android]
- - name: d
- summary: The entry at position [2,2] in the matrix.
- type: Number
- exclude-platforms: [android]
- - name: tx
- summary: The entry at position [3,1] in the matrix.
- type: Number
- exclude-platforms: [android]
- - name: ty
- summary: The entry at position [3,2] in the matrix.
- type: Number
- exclude-platforms: [android]
-
-examples:
- - title: Apply a 2D Matrix to a Label
- example: |
- The following uses a 2D matrix to translate a label in the y direction.
-
- ``` js
- var win = Ti.UI.createWindow({
- backgroundColor: 'white'
- });
-
- var label = Ti.UI.createLabel({
- font:{fontSize:50},
- text:'Titanium',
- textAlign:'center',
- top: 100
- });
- win.add(label);
-
- var button = Ti.UI.createButton({
- title:'Animate',
- bottom:20,
- width:200, height:40
- });
- win.add(button);
-
- button.addEventListener('click', function(){
- var t1 = Ti.UI.create2DMatrix();
- t1 = t1.translate(0, 300);
- var a1 = Ti.UI.createAnimation();
- a1.transform = t1;
- a1.duration = 800;
- label.animate(a1);
- });
- win.open();
- ```
-
----
-name: MatrixCreationDict
-summary: Simple object passed to to initialize a matrix.
-description: |
- The matrix is initialized with the specified transforms.
-
- On iOS, rotation is always performed first, regardless of the order the
- properties are specified in.
-
- On Android, specifying both `scale` and `rotate` the same dictionary results
- in an incorrect transformation.
-
-properties:
- - name: scale
- summary: |
- Scale the matrix by the specified scaling factor. The same scaling factor is used
- for both horizontal and vertical scaling.
- type: Number
- optional: true
- default: 1
- - name: rotate
- summary: |
- Rotation angle, in degrees. See the [rotate](Titanium.UI.2DMatrix.rotate) method
- for a discussion of rotation.
- type: Number
- optional: true
- default: No rotation.
- - name: anchorPoint
- summary: |
- Point to rotate around, specified as a dictionary object with `x` and `y`
- properties, where { x: 0.5, y: 0.5 } represents the center of whatever is being
- rotated.
- type: Point
- optional: true
- default: (0.5, 0.5)
- platforms: [android]
diff --git a/apidoc/Titanium/UI/3DMatrix.yml b/apidoc/Titanium/UI/3DMatrix.yml
deleted file mode 100644
index c6360bfe99a..00000000000
--- a/apidoc/Titanium/UI/3DMatrix.yml
+++ /dev/null
@@ -1,189 +0,0 @@
----
-name: Titanium.UI.3DMatrix
-summary: The 3D Matrix is an object for holding values for a 3D affine transform.
-description: |
- The 3DMatrix is created by . A 3D transform is
- used to rotate, scale, translate, or skew the objects in three-dimensional
- space. A 3D transform is represented by a 4 by 4 matrix.
-
- You create an `identity matrix` by creating a 3D Matrix with an empty
- constructor.
-extends: Titanium.Proxy
-since: "0.9"
-platforms: [iphone, ipad, macos]
-deprecated:
- since: "8.0.0"
- notes: Use [Titanium.UI.Matrix3D](Titanium.UI.Matrix3D) for improved ES6+ compatibility instead.
-
-methods:
- - name: invert
- summary: Returns a matrix constructed by inverting this matrix.
- returns:
- type: Titanium.UI.3DMatrix
-
- - name: multiply
- summary: Returns a matrix constructed by combining two existing matrix.
- description: |
- The result of this function is the first matrix multiplied by the second matrix. You might perform
- several multiplications in order to create a single matrix that contains the cumulative effects of
- several transformations. Note that matrix operations are not commutative - the order in which
- you concatenate matrices is important. That is, the result of multiplying matrix t1 by matrix t2
- does not necessarily equal the result of multiplying matrix t2 by matrix t1.
- returns:
- type: Titanium.UI.3DMatrix
- parameters:
- - name: t2
- summary: Matrix to concatenate to this matrix.
- type: Titanium.UI.3DMatrix
-
- - name: rotate
- summary: Returns a matrix constructed by rotating this matrix.
- returns:
- type: Titanium.UI.3DMatrix
- parameters:
- - name: angle
- summary: The angle, in degrees, by which to rotate the matrix. A positive value specifies counterclockwise rotation and a negative value specifies clockwise rotation.
- type: Number
- - name: x
- summary: The x part of the vector about which to rotate.
- type: Number
- - name: y
- summary: The y part of the vector about which to rotate.
- type: Number
- - name: z
- summary: The z part of the vector about which to rotate.
- type: Number
-
- - name: scale
- summary: Returns a matrix constructed by scaling this matrix.
- returns:
- type: Titanium.UI.3DMatrix
-
- parameters:
- - name: sx
- summary: The value by which to scale x values of the matrix.
- type: Number
- - name: sy
- summary: The value by which to scale y values of the matrix.
- type: Number
- - name: sz
- summary: The value by which to scale z values of the matrix.
- type: Number
-
- - name: translate
- summary: Returns a matrix constructed by translating an existing matrix.
- returns:
- type: Titanium.UI.3DMatrix
- parameters:
- - name: tx
- summary: The value by which to move x values with the matrix.
- type: Number
- - name: ty
- summary: The value by which to move y values with the matrix.
- type: Number
- - name: tz
- summary: The value by which to move z values with the matrix.
- type: Number
-
-properties:
- - name: m11
- summary: The entry at position [1,1] in the matrix.
- type: Number
-
- - name: m12
- summary: The entry at position [1,2] in the matrix.
- type: Number
-
- - name: m13
- summary: The entry at position [1,3] in the matrix.
- type: Number
-
- - name: m14
- summary: The entry at position [1,4] in the matrix.
- type: Number
-
- - name: m21
- summary: The entry at position [2,1] in the matrix.
- type: Number
-
- - name: m22
- summary: The entry at position [2,2] in the matrix.
- type: Number
-
- - name: m23
- summary: The entry at position [2,3] in the matrix.
- type: Number
-
- - name: m24
- summary: The entry at position [2,4] in the matrix.
- type: Number
-
- - name: m31
- summary: The entry at position [3,1] in the matrix.
- type: Number
-
- - name: m32
- summary: The entry at position [3,2] in the matrix.
- type: Number
-
- - name: m33
- summary: The entry at position [3,3] in the matrix.
- type: Number
-
- - name: m34
- summary: The entry at position [3,4] in the matrix.
- type: Number
-
- - name: m41
- summary: The entry at position [4,1] in the matrix.
- type: Number
-
- - name: m42
- summary: The entry at position [4,2] in the matrix.
- type: Number
-
- - name: m43
- summary: The entry at position [4,3] in the matrix.
- type: Number
-
- - name: m44
- summary: The entry at position [4,4] in the matrix.
- type: Number
-
-examples:
- - title: Apply a 3D Matrix to a Label
- example: |
- Move a label through a translation that repositions it from 100px to 200px from the top of
- the display.
-
- ``` js
- var win = Ti.UI.createWindow({
- backgroundColor: 'white'
- });
-
- var label = Ti.UI.createLabel({
- font:{fontSize:50},
- text:'Titanium',
- textAlign:'center',
- top: 100
- });
- win.add(label);
-
- var button = Ti.UI.createButton({
- title:'Animate',
- bottom:20,
- width:200, height:40
- });
- win.add(button);
-
- button.addEventListener('click', function(){
- var t1 = Ti.UI.create3DMatrix();
- t1 = t1.translate(0, 100, 200);
- t1.m34 = 1.0/-90;
- var a1 = Ti.UI.createAnimation();
- a1.transform = t1;
- a1.duration = 800;
- label.animate(a1);
- });
- win.open();
- ```
diff --git a/apidoc/Titanium/UI/Android/Android.yml b/apidoc/Titanium/UI/Android/Android.yml
index 5fb3834c6d1..ef1be7069d2 100644
--- a/apidoc/Titanium/UI/Android/Android.yml
+++ b/apidoc/Titanium/UI/Android/Android.yml
@@ -29,6 +29,11 @@ methods:
type: String
since: { android: "12.0.0" }
+ - name: moveToBackground
+ summary: Moves the app to the background
+ platforms: [android]
+ since: { android: "12.4.0" }
+
- name: hideSoftKeyboard
summary: |
Hides the soft keyboard.
@@ -894,6 +899,20 @@ properties:
platforms: [android]
since: "8.0.0"
+ - name: TAB_MODE_FIXED
+ summary: Set the TabGroup tab mode to fixed (default).
+ type: Number
+ availability: creation
+ platforms: [android]
+ since: "12.2.0"
+
+ - name: TAB_MODE_SCROLLABLE
+ summary: Set the TabGroup tab mode to scrollable.
+ type: Number
+ availability: creation
+ platforms: [android]
+ since: "12.2.0"
+
- name: SCROLL_FLAG_ENTER_ALWAYS
summary: When entering (scrolling on screen) the view will scroll on any downwards scroll event, regardless of whether the scrolling view is also scrolling. This is commonly referred to as the 'quick return' pattern.
type: Number
@@ -937,12 +956,40 @@ properties:
since: "12.1.0"
- name: SCROLL_FLAG_SNAP_MARGINS
- summary: An additional flag to be used with 'snap'. If set, the view will be snapped to its top and bottom margins, as opposed to the edges of the view itself.
+ summary: An additional flag to be used with 'snap'. If set, the view will be snapped to its top and bottom margins, as opposed to the edges of the view itself.
type: Number
permission: read-only
platforms: [android]
since: "12.1.0"
+ - name: WEBVIEW_SCROLLBARS_DEFAULT
+ summary: Show horizontal and vertical scrollbar in a Ti.UI.WebView.
+ type: Number
+ permission: read-only
+ platforms: [android]
+ since: "12.3.0"
+
+ - name: WEBVIEW_SCROLLBARS_HIDE_VERTICAL
+ summary: Hide vertical scrollbar in a Ti.UI.WebView.
+ type: Number
+ permission: read-only
+ platforms: [android]
+ since: "12.3.0"
+
+ - name: WEBVIEW_SCROLLBARS_HIDE_HORIZONTAL
+ summary: Hide horizontal scrollbar in a Ti.UI.WebView.
+ type: Number
+ permission: read-only
+ platforms: [android]
+ since: "12.3.0"
+
+ - name: WEBVIEW_SCROLLBARS_HIDE_ALL
+ summary: Hide all scrollbars in a Ti.UI.WebView.
+ type: Number
+ permission: read-only
+ platforms: [android]
+ since: "12.3.0"
+
examples:
- title: Android Preferences Example
example: |
diff --git a/apidoc/Titanium/UI/Android/CollapseToolbar.yml b/apidoc/Titanium/UI/Android/CollapseToolbar.yml
index 353659bd4e7..ae3880070de 100644
--- a/apidoc/Titanium/UI/Android/CollapseToolbar.yml
+++ b/apidoc/Titanium/UI/Android/CollapseToolbar.yml
@@ -15,7 +15,7 @@ excludes:
events: [click, dblclick, doubletap, focus, keypressed, longclick, longpress, pinch, postlayout,
singletap, swipe, touchcancel, touchend, touchmove, touchstart, twofingertap]
methods: [add, animate, convertPointToView, remove, removeAllChildren, toImage, addEventListener, applyProperties,
- fireEvent, getViewById, hide, insertAt, removeEventListener, replaceAt, show, startLayout, updateLayout]
+ fireEvent, getViewById, hide, insertAt, removeEventListener, replaceAt, show]
properties: [accessibilityHidden, accessibilityHint, accessibilityLabel, accessibilityValue,
anchorPoint, animatedCenter, backgroundColor, backgroundDisabledColor,
backgroundDisabledImage, backgroundFocusedColor, backgroundFocusedImage, backgroundGradient,
diff --git a/apidoc/Titanium/UI/Android/FloatingActionButton.yml b/apidoc/Titanium/UI/Android/FloatingActionButton.yml
index 02d016ba4f5..b42eda0f788 100644
--- a/apidoc/Titanium/UI/Android/FloatingActionButton.yml
+++ b/apidoc/Titanium/UI/Android/FloatingActionButton.yml
@@ -17,7 +17,7 @@ excludes:
backgroundImage, backgroundLeftCap, backgroundRepeat, backgroundSelectedColor,
backgroundSelectedImage, backgroundTopCap, borderColor, borderRadius, borderWidth, center,
children, clipMode, focusable, height, horizontalWrap, keepScreenOn, layout, opacity, overrideCurrentAnimation,
- pullBackgroundColor, rect, size, softKeyboardOnFocus, tintColor, touchEnabled, touchFeedback, transform,
+ pullBackgroundColor, rect, size, softKeyboardOnFocus, touchEnabled, touchFeedback, transform,
viewShadowColor, viewShadowOffset, viewShadowRadius, width, zIndex]
events:
diff --git a/apidoc/Titanium/UI/Animation.yml b/apidoc/Titanium/UI/Animation.yml
index 5a4fbfcc10b..1a035486fd9 100644
--- a/apidoc/Titanium/UI/Animation.yml
+++ b/apidoc/Titanium/UI/Animation.yml
@@ -189,6 +189,16 @@ properties:
platforms: [iphone, ipad, macos]
since: "8.1.0"
+ - name: bounce
+ summary: The animation bounce. If set, the animation uses the iOS 17+ spring animation.
+ description: |
+ When `bounce` is 0, there are no bounces, positive values indicate increasing amounts of bounciness up to a maximum
+ of 1.0 (corresponding to undamped oscillation), and negative values indicate overdamped springs with a minimum value of -1.0.
+ type: Number
+ platforms: [iphone, ipad, macos]
+ since: "12.2.0"
+ osver: { ios: { min: "17.0" } }
+
- name: top
summary: Value of the `top` property at the end of the animation.
type: Number
diff --git a/apidoc/Titanium/UI/AttributedString.yml b/apidoc/Titanium/UI/AttributedString.yml
index 6265234dfa2..e64e60605f6 100644
--- a/apidoc/Titanium/UI/AttributedString.yml
+++ b/apidoc/Titanium/UI/AttributedString.yml
@@ -52,7 +52,7 @@ examples:
win.open();
- var text = 'Bacon ipsum dolor Appcelerator Titanium rocks! sit amet fatback leberkas salami sausage tongue strip steak.';
+ var text = 'Bacon ipsum dolor Titanium SDK rocks! sit amet fatback leberkas salami sausage tongue strip steak.';
var attr = Titanium.UI.createAttributedString({
text: text,
@@ -112,7 +112,7 @@ examples:
win.open();
- var text = 'Bacon ipsum dolor Appcelerator Titanium rocks! sit amet fatback leberkas salami sausage tongue strip steak.';
+ var text = 'Bacon ipsum dolor Titanium SDK rocks! sit amet fatback leberkas salami sausage tongue strip steak.';
var attr = Titanium.UI.createAttributedString({
text: text
@@ -133,3 +133,63 @@ examples:
win.add(label);
```
+ - title: Links with underline color.
+ example: |
+ ``` js
+ const win = Ti.UI.createWindow({
+ backgroundColor: 'gray',
+ layout: 'vertical'
+ });
+ const lbl_a = createLink();
+ const lbl_b = createLink();
+
+ colorLink(lbl_b);
+
+ win.add([lbl_a, lbl_b]);
+ win.open();
+
+ function createLink() {
+ const label = Ti.UI.createLabel({
+ top: 20,
+ attributedString: Ti.UI.createAttributedString({
+ text: 'Check out Titanium SDK',
+ attributes: [{
+ type: Ti.UI.ATTRIBUTE_LINK,
+ value: 'https://titaniumsdk.com',
+ range: [10, 12]
+ }]
+ })
+ });
+
+ label.addEventListener('link', e => {
+ Ti.Platform.openURL(e.url);
+ });
+
+ return label;
+ }
+
+ function colorLink(lbl) {
+ const attributedString = lbl.attributedString;
+ const textColor = 'purple';
+ const underlineColor = 'yellow';
+
+ for (const attribute of attributedString.attributes) {
+ if (attribute.type === Ti.UI.ATTRIBUTE_LINK) {
+
+ // Set new link color.
+ attributedString.addAttribute({
+ type: Ti.UI.ATTRIBUTE_FOREGROUND_COLOR,
+ value: textColor,
+ range: attribute.range
+ });
+
+ // Set new underline color.
+ attributedString.addAttribute({
+ type: Ti.UI.ATTRIBUTE_UNDERLINE_COLOR,
+ value: underlineColor,
+ range: attribute.range
+ });
+ }
+ }
+ }
+ ```
diff --git a/apidoc/Titanium/UI/Button.yml b/apidoc/Titanium/UI/Button.yml
index f302d6ee840..74d68bbeaee 100644
--- a/apidoc/Titanium/UI/Button.yml
+++ b/apidoc/Titanium/UI/Button.yml
@@ -380,6 +380,7 @@ examples:
- title: Simple Button Example
example: |
``` js
+ var win = Ti.UI.createWindow();
var button = Titanium.UI.createButton({
title: 'Hello',
top: 10,
@@ -390,6 +391,8 @@ examples:
{
Titanium.API.info("You clicked the button");
});
+ win.add(button);
+ win.open();
```
- title: Alloy XML Markup
diff --git a/apidoc/Titanium/UI/EmailDialog.yml b/apidoc/Titanium/UI/EmailDialog.yml
index 6bfba1ecb61..bb4bb80fe65 100644
--- a/apidoc/Titanium/UI/EmailDialog.yml
+++ b/apidoc/Titanium/UI/EmailDialog.yml
@@ -165,7 +165,7 @@ examples:
var emailDialog = Ti.UI.createEmailDialog()
emailDialog.subject = "Hello from Titanium";
emailDialog.toRecipients = ['foo@yahoo.com'];
- emailDialog.messageBody = 'Appcelerator Titanium Rocks! ';
+ emailDialog.messageBody = 'Titanium SDK Rocks! ';
var f = Ti.Filesystem.getFile('cricket.wav');
emailDialog.addAttachment(f);
emailDialog.open();
diff --git a/apidoc/Titanium/UI/ImageView.yml b/apidoc/Titanium/UI/ImageView.yml
index 462baa48608..f658608e7da 100644
--- a/apidoc/Titanium/UI/ImageView.yml
+++ b/apidoc/Titanium/UI/ImageView.yml
@@ -70,6 +70,26 @@ methods:
platforms: [android, iphone, ipad, macos]
returns:
type: Titanium.Blob
+
+ - name: addSymbolEffect
+ summary: Adds a symbol effect to the image view with specified options, animation, and callback.
+ platforms: [iphone, ipad, macos]
+ since: "12.4.0"
+ osver: { ios: { min: "17.0" } }
+ parameters:
+ - name: symbolEffect
+ summary: The symbol effect to add. One of `pulse`, `bounce`, `appear`, `disappear`, `variableColor` or `scale`.
+ type: String
+ - name: options
+ summary: The options for the symbol effect. One of `repeating`, `nonRepeating`, `repeatCount` or `speed`.
+ type: String
+ - name: animated
+ summary: A Boolean value that indicates whether to animate the addition of a `scale`, `appear`, or `disappear` effect.
+ type: Boolean
+ default: false
+ - name: callback
+ summary: A callback the system calls after the effect’s addition is complete.
+ type: Callback
events:
- name: change
diff --git a/apidoc/Titanium/UI/Label.yml b/apidoc/Titanium/UI/Label.yml
index c15839977d3..d1eee23015e 100644
--- a/apidoc/Titanium/UI/Label.yml
+++ b/apidoc/Titanium/UI/Label.yml
@@ -4,7 +4,7 @@ summary: A text label, with an optional background image.
description: |
| Android | iOS |
| ------- | --- |
- | ![Android](./label_andorid.png) | |
+ | ![Android](./label_android.png) | |
Use the method or **``** Alloy element to create a label.
extends: Titanium.UI.View
@@ -140,10 +140,28 @@ properties:
platforms: [android, iphone, ipad, macos]
- name: html
- summary: Simple HTML formatting.
- platforms: [android]
+ summary: Pass a HTML-based string and it will be formatted accordingly.
+ description: |
+ Note that complex html structures like images are not supported.
+ Use a for those cases.
+ platforms: [android, iphone, ipad, macos]
+ since: { android: "0.8.0", iphone: "12.3.0", ipad: "12.3.0", macos: "12.3.0" }
type: String
+ - name: breakStrategy
+ summary: Break strategy (control over paragraph layout). Check [Android breakStrategy](https://developer.android.com/reference/android/widget/TextView#attr_android:breakStrategy) for more infos.
+ platforms: [android]
+ type: Number
+ constants: Titanium.UI.BREAK_*
+ since: "12.3.0"
+
+ - name: hyphenationFrequency
+ summary: Frequency of automatic hyphenation. Check [Android hyphenationFrequency](https://developer.android.com/reference/android/widget/TextView#attr_android:hyphenationFrequency) for more infos.
+ platforms: [android]
+ type: Number
+ constants: Titanium.UI.HYPHEN_*
+ since: "12.3.0"
+
- name: includeFontPadding
summary: Includes extra top and bottom padding to make room for accents that go above normal ascent and descent.
platforms: [android]
@@ -157,6 +175,12 @@ properties:
type: Number
since: "4.1.0"
+ - name: lineCount
+ summary: Returns the amount of lines the content is acually using. Is equal or lower than `maxLines`.
+ type: Number
+ permission: read-only
+ since: "12.3.0"
+
- name: lineSpacing
summary: Line spacing of the [text](Titanium.UI.Label.text), as a dictionary with the properties `add` and `multiply`.
platforms: [android]
@@ -229,6 +253,12 @@ properties:
description: Only one of `text` or `textid` should be specified.
type: String
+ - name: visibleText
+ summary: Returns the actual text seen on the screen. If the text is ellipsized it will be different to the normal `text`.
+ platforms: [android]
+ type: String
+ permission: read-only
+ since: {android: "12.3.0"}
- name: wordWrap
summary: Enable or disable word wrapping in the label.
diff --git a/apidoc/Titanium/UI/ListItem.yml b/apidoc/Titanium/UI/ListItem.yml
index 30065848130..d29225625cb 100644
--- a/apidoc/Titanium/UI/ListItem.yml
+++ b/apidoc/Titanium/UI/ListItem.yml
@@ -674,12 +674,27 @@ properties:
---
name: RowActionType
-summary: Represents the custom edit action for a ListItem.
+summary: Represents the custom edit action for a ListItem or TableViewRow.
description: |
- By default when a listItem has [canEdit](Titanium.UI.ListItem.canEdit) set to true, a left swipe on the the row presens the 'Delete' button.
+ Edit actions can be used to add contextual buttons to your list items / table view rows. The configuration of
+ this API is the same for list items (if you use ) and table view rows (if you use
-
+
diff --git a/apidoc/Titanium/UI/Matrix2D.yml b/apidoc/Titanium/UI/Matrix2D.yml
index a7f1577b3d0..22df97ff886 100644
--- a/apidoc/Titanium/UI/Matrix2D.yml
+++ b/apidoc/Titanium/UI/Matrix2D.yml
@@ -226,9 +226,7 @@ examples:
The following uses a 2D matrix to translate a label in the y direction.
``` js
- var win = Ti.UI.createWindow({
- backgroundColor: 'white'
- });
+ var win = Ti.UI.createWindow();
var label = Ti.UI.createLabel({
font: { fontSize: 50 },
diff --git a/apidoc/Titanium/UI/Matrix3D.yml b/apidoc/Titanium/UI/Matrix3D.yml
index 39947a43b70..699c0c4a715 100644
--- a/apidoc/Titanium/UI/Matrix3D.yml
+++ b/apidoc/Titanium/UI/Matrix3D.yml
@@ -154,9 +154,7 @@ examples:
the display.
``` js
- var win = Ti.UI.createWindow({
- backgroundColor: 'white'
- });
+ var win = Ti.UI.createWindow();
var label = Ti.UI.createLabel({
font: { fontSize : 50 },
diff --git a/apidoc/Titanium/UI/OptionBar.yml b/apidoc/Titanium/UI/OptionBar.yml
index 9c6fc680bf1..f96bbe19130 100644
--- a/apidoc/Titanium/UI/OptionBar.yml
+++ b/apidoc/Titanium/UI/OptionBar.yml
@@ -60,6 +60,30 @@ properties:
default: horizontal
availability: creation
+ - name: selectedBackgroundColor
+ summary: Background color of the selected button
+ type: [String, Titanium.UI.Color]
+ platforms: [android]
+ since: { android: "12.4.0"}
+
+ - name: selectedTextColor
+ summary: Text color of the selected button
+ type: [String, Titanium.UI.Color]
+ platforms: [android]
+ since: { android: "12.4.0"}
+
+ - name: selectedBorderColor
+ summary: Border color of the selected button
+ type: [String, Titanium.UI.Color]
+ platforms: [android]
+ since: { android: "12.4.0"}
+
+ - name: color
+ summary: Text color of the unselected button
+ type: [String, Titanium.UI.Color]
+ platforms: [android]
+ since: { android: "12.4.0"}
+
examples:
- title: Text-Only Buttons
example: |
diff --git a/apidoc/Titanium/UI/Picker.yml b/apidoc/Titanium/UI/Picker.yml
index f32ace414ae..6e808fb2c6f 100644
--- a/apidoc/Titanium/UI/Picker.yml
+++ b/apidoc/Titanium/UI/Picker.yml
@@ -282,6 +282,21 @@ properties:
since: "5.2.0"
default: "black"
+ - name: overrideUserInterfaceStyle
+ summary: Forces the picker to used assigned theme instead of the system theme.
+ description: |
+ When set to [USER_INTERFACE_STYLE_DARK](Titanium.UI.USER_INTERFACE_STYLE_DARK) or
+ [USER_INTERFACE_STYLE_LIGHT](Titanium.UI.USER_INTERFACE_STYLE_LIGHT), the picker will ignore
+ the system's current theme and use the theme assigned to this property instead.
+
+ When set to [USER_INTERFACE_STYLE_UNSPECIFIED](Titanium.UI.USER_INTERFACE_STYLE_UNSPECIFIED),
+ the picker will use the system's current theme.
+ type: Number
+ default: Titanium.UI.USER_INTERFACE_STYLE_UNSPECIFIED
+ constants: Titanium.UI.USER_INTERFACE_STYLE_*
+ osver: {ios: {min: "13.0"}}
+ since: "12.4.0"
+
- name: format24
summary: |
Determines whether the Time pickers display in 24-hour or 12-hour clock format.
@@ -394,6 +409,15 @@ properties:
platforms: [android]
since: "5.0.0"
+ - name: textAlign
+ summary: |
+ Horizontal text alignment of the date picker when using .
+ type: [String, Number]
+ constants: Titanium.UI.TEXT_ALIGNMENT_*
+ default: ,
+ platforms: [android]
+ since: "12.4.0"
+
- name: datePickerStyle
summary: Determines how a date or time picker should appear.
description: |
diff --git a/apidoc/Titanium/UI/PickerColumn.yml b/apidoc/Titanium/UI/PickerColumn.yml
index a7e67fb817e..55b78e6d2ed 100644
--- a/apidoc/Titanium/UI/PickerColumn.yml
+++ b/apidoc/Titanium/UI/PickerColumn.yml
@@ -24,8 +24,8 @@ excludes:
touchFeedback, touchFeedbackColor, transform, translationX, translationY, translationZ,
transitionName, verticalMotionEffect, viewShadowRadius, viewShadowColor, viewShadowOffset,
visible, width, horizontalWrap, keepScreenOn, tintColor, zIndex]
- methods: [add, animate, clearMotionEffects, finishLayout, hide, insertAt, remove,
- removeAllChildren, replaceAt, show, startLayout, toImage, updateLayout, convertPointToView,
+ methods: [add, animate, clearMotionEffects, hide, insertAt, remove,
+ removeAllChildren, replaceAt, show, toImage, convertPointToView,
getViewById]
events: [click, dblclick, doubletap, keypressed, longpress, pinch, singletap, swipe, touchcancel,
touchend, touchmove, touchstart, twofingertap]
diff --git a/apidoc/Titanium/UI/RefreshControl.yml b/apidoc/Titanium/UI/RefreshControl.yml
index 4300aad4161..1abd9a4c6c8 100644
--- a/apidoc/Titanium/UI/RefreshControl.yml
+++ b/apidoc/Titanium/UI/RefreshControl.yml
@@ -55,6 +55,14 @@ properties:
platforms: [android, iphone, ipad, macos]
since: { android: "6.2.0", iphone: "3.2.0", ipad: "3.2.0" }
+ - name: backgroundColor
+ summary: The background color for the refresh control, as a color name or hex triplet.
+ description: |
+ For information about color values, see the "Colors" section of .
+ type: [String, Titanium.UI.Color]
+ platforms: [iphone, ipad, macos]
+ since: { iphone: "12.4.0", ipad: "12.4.0", macos: "12.4.0" }
+
events:
- name: refreshstart
summary: |
diff --git a/apidoc/Titanium/UI/ScrollView.yml b/apidoc/Titanium/UI/ScrollView.yml
index 446d5eacaae..9121ebabc8d 100644
--- a/apidoc/Titanium/UI/ScrollView.yml
+++ b/apidoc/Titanium/UI/ScrollView.yml
@@ -412,7 +412,6 @@ examples:
``` js
var win = Ti.UI.createWindow({
- backgroundColor: 'white',
exitOnClose: true,
fullscreen: false,
title: 'ScrollView Demo'
@@ -443,9 +442,7 @@ examples:
Tables with SOFT_INPUT_ADJUST_PAN" section of .
``` js
- var win = Ti.UI.createWindow({
- backgroundColor:'white'
- });
+ var win = Ti.UI.createWindow();
if (Ti.UI.Android){
win.windowSoftInputMode = Ti.UI.Android.SOFT_INPUT_ADJUST_PAN;
diff --git a/apidoc/Titanium/UI/ScrollableView.yml b/apidoc/Titanium/UI/ScrollableView.yml
index 090829becc7..b7709d1b090 100644
--- a/apidoc/Titanium/UI/ScrollableView.yml
+++ b/apidoc/Titanium/UI/ScrollableView.yml
@@ -389,7 +389,10 @@ properties:
description: |
Set to `false` to allow the previous or next pages to be seen. Note that
ScrollableView's [width](Titanium.UI.ScrollableView.width) must be smaller than its parent
- view in order to make this property effective.
+ view in order to make this property effective on iOS.
+ For Android you have to set the [padding](Titanium.UI.ScrollableView.padding) property.
+
+ Check the `Scrollable View with multiple visible views` example for both platforms.
type: Boolean
availability: creation
default: true
@@ -442,6 +445,7 @@ examples:
scrollable view.
``` js
+ var win = Ti.UI.createWindow();
var img1 = Ti.UI.createImageView({
image:'http://upload.wikimedia.org/wikipedia/commons/thumb/e/ec/' +
'Mona_Lisa%2C_by_Leonardo_da_Vinci%2C_from_C2RMF_retouched.jpg/' +
diff --git a/apidoc/Titanium/UI/SearchBar.yml b/apidoc/Titanium/UI/SearchBar.yml
index f31bfa94502..1b5df5d10b2 100644
--- a/apidoc/Titanium/UI/SearchBar.yml
+++ b/apidoc/Titanium/UI/SearchBar.yml
@@ -9,7 +9,7 @@ description: |
Search bars are most commonly used for filtering the rows in a [TableView](Titanium.UI.TableView) and
[ListView](Titanium.UI.ListView). You can add a search bar to a table view via its
[search](Titanium.UI.TableView.search) property. You can add a search bar to a list view via its
- [searchView](Titanium.UI.TableView.searchView) property.
+ [searchBar](Titanium.UI.SearchBar) property.
A search bar can also be used on its own.
diff --git a/apidoc/Titanium/UI/ShortcutItem.yml b/apidoc/Titanium/UI/ShortcutItem.yml
index 23da9ec0d80..62c1c13b263 100644
--- a/apidoc/Titanium/UI/ShortcutItem.yml
+++ b/apidoc/Titanium/UI/ShortcutItem.yml
@@ -87,7 +87,7 @@ description: |
```
Static shortcuts can be translated in the `i18n//app.xml` file. Dynamic shortcuts can be translated by using the
- methods described [in the Wiki](https://wiki.appcelerator.org/display/guides2/Internationalization).
+ methods described in the Wiki.
extends: Titanium.Proxy
since: { android: 7.5.0, iphone: 9.1.0, ipad: 9.1.0 }
platforms: [android, iphone, ipad, macos]
@@ -123,7 +123,7 @@ properties:
- name: title
summary: Title of the shortcut.
description: |
- In iOS the title can be localized. See [here](https://wiki.appcelerator.org/display/guides2/Internationalization)
+ In iOS the title can be localized. See here
for more infos.
type: String
platforms: [android, iphone, ipad, macos]
@@ -132,7 +132,7 @@ properties:
- name: description
summary: Description of the shortcut.
description: |
- In iOS the description can be localized. See [here](https://wiki.appcelerator.org/display/guides2/Internationalization)
+ In iOS the description can be localized. See here
for more infos.
type: String
platforms: [android, iphone, ipad, macos]
diff --git a/apidoc/Titanium/UI/Switch.yml b/apidoc/Titanium/UI/Switch.yml
index 326e54165f7..4ff5536acd5 100644
--- a/apidoc/Titanium/UI/Switch.yml
+++ b/apidoc/Titanium/UI/Switch.yml
@@ -118,17 +118,41 @@ properties:
- name: tintColor
summary: The color used to tint the outline of the switch when it is turned off.
+ description: |
+ The color used to tint the outline of the switch when it is turned off.
+
+ Android: Track color of the Material Switch.
type: [String, Titanium.UI.Color]
default: undefined
- platforms: [iphone, ipad, macos]
- since: "3.3.0"
+ platforms: [android, iphone, ipad]
+ since: {android: 12.4.0, iphone: 3.3.0, ipad: 3.3.0}
+
+ - name: onThumbColor
+ description: |
+ The color used to tint the thumb icon of the switch when it is turned on.
+
+ Android: Active thumb color of the Material Switch.
+ type: [String, Titanium.UI.Color]
+ default: undefined
+ platforms: [android]
+ since: {android: 12.4.0}
+
+ - name: thumbColor
+ description: |
+ The color used to tint the thumb icon of the switch when it is turned off.
+
+ Android: Inactive thumb color of the Material Switch.
+ type: [String, Titanium.UI.Color]
+ default: undefined
+ platforms: [android]
+ since: {android: 12.4.0}
- name: onTintColor
summary: The color used to tint the appearance of the switch when it is turned on.
type: [String, Titanium.UI.Color]
default: undefined
- platforms: [iphone, ipad, macos]
- since: "3.3.0"
+ platforms: [android, iphone, ipad, macos]
+ since: {android: 12.4.0, iphone: 3.3.0, ipad: 3.3.0}
- name: thumbTintColor
summary: The color used to tint the appearance of the thumb.
diff --git a/apidoc/Titanium/UI/Tab.yml b/apidoc/Titanium/UI/Tab.yml
index 4427de74293..82b2d91f613 100644
--- a/apidoc/Titanium/UI/Tab.yml
+++ b/apidoc/Titanium/UI/Tab.yml
@@ -196,6 +196,9 @@ properties:
since: {android: "9.3.0"}
- name: badgeColor
+ deprecated:
+ since: "12.2.0"
+ notes: Use [Titanium.UI.Tab.badgeBackgroundColor](Titanium.UI.Tab.badgeBackgroundColor) instead.
summary: |
If this item displays a badge, this color will be used for the badge's background.
If set to null, the default background color will be used instead.
@@ -205,6 +208,25 @@ properties:
platforms: [android, iphone, ipad, macos]
since: {android: "9.3.0", iphone: "6.1.0", ipad: "6.1.0", macos: "9.2.0"}
+ - name: badgeBackgroundColor
+ summary: |
+ If this item displays a badge, this color will be used for the badge's background.
+ If set to null, the default background color will be used instead.
+ description: |
+ For information about color values, see the "Colors" section of .
+ type: [String, Titanium.UI.Color]
+ platforms: [android, iphone, ipad, macos]
+ since: {android: "12.2.0"}
+
+ - name: badgeTextColor
+ summary: |
+ Set the text color of the badge.
+ description: |
+ For information about color values, see the "Colors" section of .
+ type: [String, Titanium.UI.Color]
+ platforms: [android]
+ since: {android: "12.2.0"}
+
- name: icon
summary: Icon URL for this tab.
description: |
@@ -307,26 +329,6 @@ properties:
availability: creation
events:
- - name: blur
- summary: Fired when the tab loses focus.
- deprecated:
- since: "5.2.0"
- removed: "9.0.0"
- notes: Use [Titanium.UI.Tab.unselected](Titanium.UI.Tab.unselected) event instead.
- properties:
- - name: index
- summary: Index of the current active tab.
- type: Number
- - name: previousIndex
- summary: Index of the previous active tab.
- type: Number
- - name: tab
- summary: Current active tab object.
- type: Titanium.UI.Tab
- - name: previousTab
- summary: Previous active tab object.
- type: Titanium.UI.Tab
- platforms: [android, iphone, ipad]
- name: unselected
summary: Fired when the tab is no longer selected.
@@ -350,27 +352,6 @@ events:
summary: Fired when this tab is clicked in the tab group.
exclude-platforms: [iphone, ipad, macos]
- - name: focus
- summary: Fired when the tab gains focus.
- deprecated:
- since: "5.2.0"
- removed: "9.0.0"
- notes: Use [Titanium.UI.Tab.selected](Titanium.UI.Tab.selected) event instead.
- properties:
- - name: index
- summary: Index of the current active tab.
- type: Number
- - name: previousIndex
- summary: Index of the previous active tab.
- type: Number
- - name: tab
- summary: Current active tab object.
- type: Titanium.UI.Tab
- - name: previousTab
- summary: Previous active tab object.
- type: Titanium.UI.Tab
- platforms: [android, iphone, ipad]
-
- name: selected
summary: Fired when the tab is selected.
since: {android: "3.5.1", iphone: "5.2.0", ipad: "5.2.0"}
diff --git a/apidoc/Titanium/UI/TabGroup.yml b/apidoc/Titanium/UI/TabGroup.yml
index 90003f689d9..c789b8a7624 100644
--- a/apidoc/Titanium/UI/TabGroup.yml
+++ b/apidoc/Titanium/UI/TabGroup.yml
@@ -471,6 +471,21 @@ properties:
since: {android: "3.0.0", iphone: "3.0.0", ipad: "3.0.0"}
platforms: [android, iphone, ipad, macos]
+ - name: tabMode
+ summary: Property defining which tabMode is used for the TabGroup.
+ description: |
+ Sets the style of the TabGroup tabs.
+
+ [TAB_MODE_SCROLLABLE](Titanium.UI.Android.TAB_MODE_SCROLLABLE) is the best style for showing long tab titles and
+ enables horizontal scrolling (default).
+
+ [TAB_MODE_FIXED](Titanium.UI.Android.TAB_MODE_FIXED) will show all tabs at once.
+ availability: creation
+ constants: Titanium.UI.Android.TAB_MODE_*
+ since: "12.2.0"
+ type: Number
+ platforms: [android]
+
- name: tabsTintColor
summary: The tintColor to apply to the tabs.
description: |
diff --git a/apidoc/Titanium/UI/TabbedBar.yml b/apidoc/Titanium/UI/TabbedBar.yml
index b95826a26e3..6857a5eda60 100644
--- a/apidoc/Titanium/UI/TabbedBar.yml
+++ b/apidoc/Titanium/UI/TabbedBar.yml
@@ -44,12 +44,24 @@ properties:
availability: creation
platforms: [iphone, ipad, android, macos]
since: {iphone: "9.0.0", ipad: "9.0.0", android: "12.0.0"}
+ - name: selectedBackgroundColor
+ summary: Background color of the selected tab indicator.
+ type: [ String, Titanium.UI.Color ]
+ availability: creation
+ platforms: [android]
+ since: {android: "8.0.0"}
- name: selectedTextColor
summary: Color of the selected text
type: [ String, Titanium.UI.Color ]
availability: creation
platforms: [iphone, ipad, android, macos]
since: {iphone: "9.0.0", ipad: "9.0.0", android: "12.0.0"}
+ - name: activeTintColor
+ summary: Icon tint color of the selected tab
+ type: [ String, Titanium.UI.Color ]
+ availability: creation
+ platforms: [android]
+ since: {android: "12.5.0"}
- name: style
summary: Style of the tabbed bar.
description: |
@@ -60,10 +72,10 @@ properties:
The `BAR` style specifies a more compact style and allows the bar's background
color or gradient to show through.
- For Android:
- [Titanium.UI.TABS_STYLE_*]
- In Android [style](Titanium.UI.TabbedBar.style) is only supported in the creation dictionary
- of the proxy.
+
+ For Android use [Titanium.UI.TABS_STYLE_DEFAULT](Titanium.UI.TABS_STYLE_DEFAULT) or
+ [Titanium.UI.TABS_STYLE_BOTTOM_NAVIGATION](Titanium.UI.TABS_STYLE_BOTTOM_NAVIGATION) and
+ it is only supported in the creation dictionary of the proxy.
type: Number
default: Titanium.UI.iOS.SystemButtonStyle.PLAIN for iOS, Ti.UI.TABS_STYLE_DEFAULT for Android
examples:
diff --git a/apidoc/Titanium/UI/TableView.yml b/apidoc/Titanium/UI/TableView.yml
index 5a44df7c5e4..07837bbb172 100644
--- a/apidoc/Titanium/UI/TableView.yml
+++ b/apidoc/Titanium/UI/TableView.yml
@@ -57,15 +57,6 @@ description: |
To mitigate this, a `ScrollView` may be used instead of a table view, as demonstrated in the
[ScrollView](Titanium.UI.ScrollView), "Scroll View as a Table View", example.
- #### Known Issues
-
- There are known issues with the `sections` property and associated methods added in
- Release 3.0:
-
- * On iOS, the first two arguments to the `updateSection` method are reversed.
- ([TIMOB-12625](https://jira-archive.titaniumsdk.com/TIMOB-12625)). This issue has been
- addressed in Release 3.3.0 of the Titanium SDK
-
#### Row Editing and Moving Modes
Table views have an `editing` and a `moving` mode that may be activated to using their
@@ -704,6 +695,40 @@ events:
type: Boolean
since: '3.0.0'
+ - name: editaction
+ summary: Fired when the user interacts with one of the custom edit actions defined by .
+ description: |
+ Do not rely on the `source` property to determine which item fired the event. Use the
+ `row` and `section`, or the `index` to determine the table row that generated
+ the event.
+
+ Note that the `index` property of this event correspond to the list view state
+ before the user action.
+ platforms: [iphone, ipad, macos]
+ since: 12.4.0
+ properties:
+ - name: action
+ summary: The [title](RowActionType.title) as defined in the row action object.
+ type: String
+
+ - name: identifier
+ summary: |
+ The [identifier](RowActionType. identifier) of the row action. Only included in the event
+ if previously defined.
+ type: String
+
+ - name: row
+ summary: The row that fired this event.
+ type: [Titanium.UI.TableViewRow, Dictionary]
+
+ - name: section
+ summary: The section that fired this event.
+ type: Titanium.UI.TableViewSection
+
+ - name: index
+ summary: The index of the row that fired this event.
+ type: Number
+
methods:
- name: appendRow
summary: Appends a single row or an array of rows to the end of the table.
@@ -1082,6 +1107,12 @@ properties:
type: [String, Titanium.UI.Color]
default: transparent on non-iOS platforms, white on the iOS platform
+ - name: contentOffset
+ summary: X and Y coordinates to which to reposition the top-left point of the content region.
+ type: Point
+ since: {android: "12.4.0"}
+ platforms: [android]
+
- name: data
summary: Rows of the table view.
type: [Array, Array]
@@ -1425,6 +1456,14 @@ properties:
platforms: [iphone, ipad, macos]
availability: creation
+ - name: keyboardDismissMode
+ summary: The manner in which the keyboard is dismissed when a drag begins in the table view.
+ type: Number
+ constants: Titanium.UI.iOS.KEYBOARD_DISMISS_MODE_*
+ platforms: [iphone, ipad, macos]
+ default: Undefined (behaves like )
+ since: "12.2.0"
+
- name: showSearchBarInNavBar
summary: A Boolean indicating whether search bar will be in navigation bar.
description: |
@@ -1677,10 +1716,6 @@ examples:
sectionFish.add(Ti.UI.createTableViewRow({ title: 'Cod' }));
sectionFish.add(Ti.UI.createTableViewRow({ title: 'Haddock' }));
- // Prior to Release 3.0, you can only add and remove sections by setting the data property
- // table.data = [ sectionFish, sectionFruit, sectionVeg ];
- // Due to a known issue, TIMOB-12616, the section access methods and sections
- // property should not be used on iOS with Release 3.0.x.
table.insertSectionBefore(0, sectionFish);
```
@@ -1771,7 +1806,7 @@ examples:
``` xml
-
+
diff --git a/apidoc/Titanium/UI/TableViewRow.yml b/apidoc/Titanium/UI/TableViewRow.yml
index a5fb76598bc..a5e511827b9 100644
--- a/apidoc/Titanium/UI/TableViewRow.yml
+++ b/apidoc/Titanium/UI/TableViewRow.yml
@@ -226,6 +226,14 @@ properties:
platforms: [android, iphone, ipad, macos]
since: {android: "9.3.0", iphone: "3.2.0", ipad: "3.2.0", macos: "9.2.0"}
+ - name: editActions
+ summary: Specifies custom action items to be shown when when a list item is edited.
+ description: |
+ For more information see the "Editing Support" section of .
+ type: Array
+ since: 12.4.0
+ platforms: [iphone, ipad, macos]
+
- name: filterAlwaysInclude
summary: |
This row will always be visible when you filter your content.
diff --git a/apidoc/Titanium/UI/TextArea.yml b/apidoc/Titanium/UI/TextArea.yml
index 8b71278dbe2..99b1c9177cb 100644
--- a/apidoc/Titanium/UI/TextArea.yml
+++ b/apidoc/Titanium/UI/TextArea.yml
@@ -300,6 +300,14 @@ properties:
default: No hint text.
platforms: [android]
+ - name: hinttextid
+ summary: |
+ Key identifying a string from the locale file to use for the
+ [hintText](Titanium.UI.TextArea.hintText) property.
+ description: Only one of `hintText` or `hinttextid` should be specified.
+ type: String
+ since: "6.2.0"
+
- name: hintTextColor
summary: Color of hint text that displays when field is empty.
platforms: [android]
@@ -556,9 +564,7 @@ examples:
This example creates a highly customized text area.
``` js
- var win = Ti.UI.createWindow({
- backgroundColor: 'white'
- });
+ var win = Ti.UI.createWindow();
var textArea = Ti.UI.createTextArea({
borderWidth: 2,
borderColor: '#bbb',
@@ -622,7 +628,7 @@ examples:
``` xml
-
+