<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.cashbuddy.paytmcash">
<!-- Required Permissions -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<!-- Change package name in below 2 lines of Permissions -->
<uses-permission android:name="com.droidoxy.easymoneyrewards.permission.C2D_MESSAGE" />
<permission android:name="com.cashbuddy.paytmcash.permission.C2D_MESSAGE" android:protectionLevel="signature" />
<application
android:name="com.cashbuddy.paytmcash.app.App"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.cashbuddy.paytmcash.AppActivity"
android:configChanges="keyboardHidden|orientation"
android:label="@string/app_name"
android:theme="@style/AppLTheme"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<!-- Registering Additional Activities -->
<activity android:name="com.cashbuddy.paytmcash.VideosActivity" />
<activity android:name="com.cashbuddy.paytmcash.RecoveryActivity" />
<activity android:name="com.cashbuddy.paytmcash.RedeemActivity" />
<activity android:name="com.cashbuddy.paytmcash.InstructionsActivity" />
<activity android:name="com.cashbuddy.paytmcash.EarningHistoryActivity" />
<activity android:name="com.cashbuddy.paytmcash.RedeemHistoryActivity" />
<activity android:name="com.cashbuddy.paytmcash.AboutActivity" />
<activity android:name="com.cashbuddy.paytmcash.ReferActivity" />
<activity android:name="com.cashbuddy.paytmcash.ErrorActivity" />
<activity android:name="com.cashbuddy.paytmcash.MainActivity" android:theme="@style/AppLTheme" />
<activity android:name="com.cashbuddy.paytmcash.LoginActivity" android:configChanges="keyboardHidden|orientation" android:screenOrientation="portrait" />
<activity android:name="com.cashbuddy.paytmcash.SignupActivity" android:configChanges="keyboardHidden|orientation" android:screenOrientation="portrait" />
<activity android:name="com.cashbuddy.paytmcash.IntroActivity" android:theme="@style/AppTheme.NoActionBar" />
<!-- The Finest Artist Activities -->
<activity android:name="com.thefinestartist.ytpa.YouTubePlayerActivity" android:configChanges="keyboardHidden|orientation|screenSize" android:screenOrientation="sensor" android:theme="@android:style/Theme.NoTitleBar.Fullscreen" />
<meta-data android:name="com.thefinestartist.ytpa.YouTubePlayerActivity.ApiKey" android:value="AIzaSyAOfxiG4aV66h3XmssCEkP3qCvCqMbDGDI" />
<!-- StartApp Components -->
<activity
android:name="com.startapp.android.publish.ads.list3d.List3DActivity"
android:theme="@android:style/Theme" />
<activity
android:name="com.startapp.android.publish.adsCommon.activities.OverlayActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:theme="@android:style/Theme.Translucent" />
<activity
android:name="com.startapp.android.publish.adsCommon.activities.FullScreenActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:theme="@android:style/Theme" />
<service android:name="com.startapp.android.publish.common.metaData.PeriodicMetaDataService" />
<service android:name="com.startapp.android.publish.common.metaData.InfoEventService" />
<receiver android:name="com.startapp.android.publish.common.metaData.BootCompleteListener" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
<!-- End of StartApp activities integration -->
<!-- Component that firebase needs -->
<service android:name="com.cashbuddy.paytmcash.MyFirebaseMessagingService">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
<service android:name="com.cashbuddy.paytmcash.MyFirebaseInstanceIDService">
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
</intent-filter>
</service>
<!-- the libraries that google play service configuration need to use -->
<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
<activity android:name="com.google.android.gms.ads.AdActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" android:theme="@android:style/Theme.Translucent" />
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="[ADMOB_APP_ID]"/>
</application>
</manifest>
Я могу помочь с частью этого, поскольку я портирую Разработчика C++ приложение, которое использует TNT с 2007 до 2009. Переключатель к Unicode в D2009 является запоздалым и приветствуется. Однако неудачно, что переход, вероятно, легче для тех, кто имеет Не нужный unicode в прошлом и вероятно все еще не делает. Если, как я, Вы нуждались в Unicode и использовали большое управление TNT Troy Wolbrink для обеспечения его, у Вас есть скорее более сложное задание...
Хорошие новости - то, что существует новая версия TNTControls из программного обеспечения TMS, которое поддерживает D2009. Я не посмотрел на это, но ожидаю, что это - просто слой 'фасада' по собственным компонентам VCL для упрощения мобильности. Я полагал бы это, если Ваши другие библиотеки могут быть восстановлены для использования его.
Однако можно лучше возвращаться к собственным средствам управления VCL, и причиной являются строковые типы. Управление TNT всегда использовало WideString для передачи строк Unicode назад и вперед, и Вы можете сделать, чтобы WideString использовал рассеянный через Ваш собственный код. Это будет работать, но это не идеально, поскольку WideString должен действительно просто использоваться для взаимодействующего с COM, поскольку это 'переносит' тип COM BSTR. Собственные строки unicode в D2009 считаются на ссылку и должны быть значительно быстрее.
Если Вы действительно решаете заменить компоненты TNT собственными VCL, можно использовать команду "Replace Components" GExperts - или, возможно, легче, сделать поиск и замену в.DFM и.PAS файлах (который Вы ДЕЙСТВИТЕЛЬНО имеете в текстовой форме, делаете не Вас) заменять TTNT T.
Установка GExperts; существует "Компонент замены" дополнение IDE, которое может помочь преобразованию TTntXXX к средствам управления TXXXX. Попробуйте на этот раз, и если все в порядке просто проверка "Замена везде в проекте".
SpTbx и VirtualTrees могут только быть перекомпилированы - они оба поддержка D2009.
Если бы Вы использовали обертки WinAPI только для вызова API Unicode, то они должны работать в D2009 также.
Это оставляет Вас со средствами управления TntLX (TntLXForms, TntLXRegistry...). Так как они не поддерживаются, может быть это, хорошее время для изменения их так или иначе.
Я рекомендую следующие ресурсы:
Глава 3 Руководства Delphi Marco Cantu 2009 года (Портирующий на unicode) http://www.marcocantu.com/dh2009/
Статьи Nick Hodges (Delphi в Мире Unicode) http://blogs.codegear.com/nickhodges/2008/11/20/39149
Я думаю так или иначе, что это будет большой работой. Вероятно, больше, чем если бы Вы не сделали всей работы для создания этого unicode совместимый прежде. Я лично забыл бы о средствах управления Unicode TM и вернулся бы к vcl. Это будет экономить больше усилий в будущем. (ничто против тех средств управления, заметьте.)
Также помните, что строка D2009, не то же самое как Widestring D2007, который Вы, несомненно, использовали в своем приложении. Так все экземпляры Widestring, который Вы так старательно изменили от строки (который был AnsiString), потребность возвратиться снова для строкового представления (который является теперь unicodestring).