Repository: zhaozeyx/ImageEditor-android
Branch: master
Commit: 60ee4657fcb7
Files: 508
Total size: 23.5 MB
Directory structure:
gitextract_fjxa1tr2/
├── .gitmodules
├── FotorSDKDemo/
│ ├── .classpath
│ ├── .project
│ ├── .settings/
│ │ └── org.eclipse.jdt.core.prefs
│ ├── .svn/
│ │ ├── entries
│ │ ├── format
│ │ └── pristine/
│ │ ├── 00/
│ │ │ └── 007c052d3bf36519905116e5ed7a3f07cd0f8f82.svn-base
│ │ ├── 03/
│ │ │ ├── 03036c275a2007f79ccdb5833685d86777990a3d.svn-base
│ │ │ └── 03f507869edea3375849d714e1dc9cfec5915365.svn-base
│ │ ├── 04/
│ │ │ └── 043b616c2477d480b1e37fd4fd00b17a76dfd790.svn-base
│ │ ├── 06/
│ │ │ └── 06d3b6ec1b46b557debf4cc78ab2eadf0a3ac890.svn-base
│ │ ├── 07/
│ │ │ ├── 070b79fa25398f4fa224b4626dd75e6c67df2c2e.svn-base
│ │ │ └── 0725f572c56c70ce91d4d40c4d9204235ef23f9c.svn-base
│ │ ├── 09/
│ │ │ └── 09da138ca7b7a7c3ee7571530448c97702d6de86.svn-base
│ │ ├── 0a/
│ │ │ └── 0a0d9478ede46410d5989641dbb2939d1034ddc1.svn-base
│ │ ├── 0b/
│ │ │ └── 0bbd0d2a43db36ec6f303a37a92e6ec6df5fcdab.svn-base
│ │ ├── 0c/
│ │ │ ├── 0c4712419da14d194f0812257ba40bd32de21e40.svn-base
│ │ │ └── 0c6d82a4c43926760c34d77cb7182c3167841513.svn-base
│ │ ├── 0d/
│ │ │ └── 0d332441cbc270af2413544d854c84ccd4f39121.svn-base
│ │ ├── 0f/
│ │ │ ├── 0f001a20db1399d973d388cc9ab42cb40947a0f5.svn-base
│ │ │ └── 0fa23e0c9fe055fc7671e5d3a43a97ed7d2673e4.svn-base
│ │ ├── 10/
│ │ │ ├── 104d538b6c30a22491607612ec934b942344d51d.svn-base
│ │ │ ├── 107d8032c156f778a72d9d22eea333a7b1d6828c.svn-base
│ │ │ ├── 108fa6b5bc6a26dee57333789683c3fd03e43f72.svn-base
│ │ │ └── 10e6e2e4786dc34083c47b574d164731f1fd9db0.svn-base
│ │ ├── 12/
│ │ │ ├── 12244ee01c7eff76c02a29c1743c3f3fdad680f2.svn-base
│ │ │ ├── 123b32dee8c0916be7b254b6f92958e301dc6d0c.svn-base
│ │ │ └── 12a1458fb42c49366faaed8171ddae503fb5ab15.svn-base
│ │ ├── 14/
│ │ │ └── 14454e2904eeb2945f745569a5641f6769839ac1.svn-base
│ │ ├── 15/
│ │ │ ├── 155e564c4426fb3b923154fa4e652fc6934ac4b9.svn-base
│ │ │ └── 1580f8d4727c72100fc52e92b664f91347882eaa.svn-base
│ │ ├── 16/
│ │ │ ├── 1616494bc0c12ac0a9ec007b1a0a586526b97064.svn-base
│ │ │ ├── 165822de404fab27a653765a13ce0e1bd68ea6d2.svn-base
│ │ │ ├── 165871e9fbe703c514e6adbf425510f41865537d.svn-base
│ │ │ ├── 16e6bad324c8afd2ad94a72688202ed35b39511f.svn-base
│ │ │ └── 16f1cbcb8a37822a0795b2dafdfc6c1ad5d798b1.svn-base
│ │ ├── 17/
│ │ │ ├── 172d1b11e61be611435d28b57f5c848e5f00a038.svn-base
│ │ │ ├── 1739a53b8c116fe6691b61e33ddec01d97e88878.svn-base
│ │ │ ├── 173b4efba62c8e1113726445e7ca5aab8fbe51fb.svn-base
│ │ │ ├── 179b81766b82ed39dc92cafa39d3140d117e9637.svn-base
│ │ │ └── 17dfcdbb7b1dd5f61b8f9ff7131397bdcdff5dae.svn-base
│ │ ├── 18/
│ │ │ ├── 1869f22f6b2ae8d22c81f06af763a8f1c48f39bf.svn-base
│ │ │ └── 18e37823a1a26d7253b1cfdd6d45c68dad171fff.svn-base
│ │ ├── 19/
│ │ │ ├── 191dda7a5142990cd980727d43b27e4802f0b321.svn-base
│ │ │ └── 19840b185149d6750f70ab0d662e03832a107e80.svn-base
│ │ ├── 1a/
│ │ │ └── 1a1b6d8c445a427921c3000c1383e598f708b67b.svn-base
│ │ ├── 1b/
│ │ │ ├── 1b00ad5c9d4d27518135c964ede6ab2d4fa2597e.svn-base
│ │ │ ├── 1b4b9d2f338f72d6dade85a786a23c82331387aa.svn-base
│ │ │ ├── 1b88893b7d15e5c0e680f5db6160020631f388f1.svn-base
│ │ │ └── 1bf19c2085868b9447cdf0163855885cc7994c89.svn-base
│ │ ├── 1e/
│ │ │ └── 1e0c2f74c138a1c6e42f01daa9a597812019d80e.svn-base
│ │ ├── 22/
│ │ │ └── 224d797b86b58491a29f35119a810b08d32268bf.svn-base
│ │ ├── 23/
│ │ │ └── 239ad79ba8eb1fd4dc046c18a81c00a63915f5b8.svn-base
│ │ ├── 25/
│ │ │ └── 252634a2dcbfd05ca7e5b69889f036a62f6adb25.svn-base
│ │ ├── 26/
│ │ │ ├── 262ed8683d11c1453b35d0107fe7abd58cbc1ed4.svn-base
│ │ │ ├── 2669873f891113a8f45506e825d0215306e95405.svn-base
│ │ │ └── 26836d081bcdd55e342d42c41930a2c8080d4c3b.svn-base
│ │ ├── 27/
│ │ │ ├── 2709b25879bca9f06f1ad9a29b0dc3d38267c407.svn-base
│ │ │ ├── 275269bd2e1ccac503cb43fc0c7f8efe6ae6f57a.svn-base
│ │ │ └── 27e5804d4d2cb888b89e5cfabb6824fcb97950e0.svn-base
│ │ ├── 28/
│ │ │ └── 28cc16730e4f03f97e077efa04843148f7f0eb0b.svn-base
│ │ ├── 29/
│ │ │ └── 297b7d83ff620a5063ef13a4a650586581f249da.svn-base
│ │ ├── 2a/
│ │ │ └── 2a16925f63f02ed070592452b023484c8c7d74f9.svn-base
│ │ ├── 2b/
│ │ │ ├── 2b9183863aa41af4a9ee6872efbec38dbe4ee4c0.svn-base
│ │ │ └── 2bc97b9c0275e37344ebaec28f1e1e703b122e04.svn-base
│ │ ├── 2e/
│ │ │ └── 2e7d9e357d7755af2a9c4fd6e66360bb46fada11.svn-base
│ │ ├── 2f/
│ │ │ ├── 2f837d0096fe345544ac838bf6ef47b6d28fd19f.svn-base
│ │ │ └── 2fc798884e09b229a782e7521f0514af17907663.svn-base
│ │ ├── 32/
│ │ │ ├── 3228fb7bd14e329a33acb71d67f2161e4d641b3a.svn-base
│ │ │ └── 32ab37fc1f7804290cfc05b9eae0b6d2e94f90d4.svn-base
│ │ ├── 33/
│ │ │ └── 3303039f37bb776905dd21392d2153fe149716a0.svn-base
│ │ ├── 34/
│ │ │ └── 3414a69cf6720ad8b2c59b2a4ab567c194f7972c.svn-base
│ │ ├── 35/
│ │ │ ├── 3515d10934a48b551b1402456f5b67b8666f229c.svn-base
│ │ │ └── 35cfe1bbbf58a190d123162eec48db046f53f7ca.svn-base
│ │ ├── 37/
│ │ │ └── 372b39f92fa0a3201ad76c089dc7a99b5f32f28c.svn-base
│ │ ├── 39/
│ │ │ └── 393dbfa86a7dc3538ebd47205ca0b65178cbaf9d.svn-base
│ │ ├── 3a/
│ │ │ └── 3a7f069c97e71ee06459dd0d2c206fa753b2c15b.svn-base
│ │ ├── 3b/
│ │ │ ├── 3b39a316b1658bf923042467679ce119d1371bda.svn-base
│ │ │ ├── 3b76a63e440aecbb07f6d8cf6779ce7f11f02331.svn-base
│ │ │ └── 3bb5415d1f04c900bd4f8c1e4e7073d6d969d8a5.svn-base
│ │ ├── 3c/
│ │ │ └── 3c755b5500ed67e7a115f31d4682bbdbedbb9973.svn-base
│ │ ├── 3d/
│ │ │ └── 3d58e2b27ddffa35119d3683bb36f3c9df5be2d7.svn-base
│ │ ├── 3e/
│ │ │ ├── 3e3d52eea62bb45233f43a2939d14cd6a04db981.svn-base
│ │ │ ├── 3e57edbe2aee66098186d9259aaf0d9847723cdf.svn-base
│ │ │ └── 3ef569381711504c6cb72917dc91c1a89b38600c.svn-base
│ │ ├── 3f/
│ │ │ ├── 3f65e30173ed2b70e5f2b0fc95e5660ae9d22e0a.svn-base
│ │ │ ├── 3f8064bff5f501960c5db56fd355a7caf85a73f4.svn-base
│ │ │ └── 3f9be07312106e729adac94b70ed33cd8512cab8.svn-base
│ │ ├── 40/
│ │ │ ├── 4002af0477e03ae32f1aabada0f53e97669a9dab.svn-base
│ │ │ └── 4066c773d5eee4a1edff9004aaf56212998a8145.svn-base
│ │ ├── 41/
│ │ │ ├── 41d153bc58aa386c2aecd8946ecc1097f65bf1ad.svn-base
│ │ │ └── 41fd2f1067816433d8a79a157c52bebf37bb9710.svn-base
│ │ ├── 42/
│ │ │ ├── 42d8c3015ce203c165397e1607e6f5d1d90ee430.svn-base
│ │ │ └── 42dd3daecfa9192c08fee4bbd3bea78b14dd6e62.svn-base
│ │ ├── 43/
│ │ │ └── 43ade5f94bd212b8f0341264306b882dec08eaf6.svn-base
│ │ ├── 44/
│ │ │ ├── 440b1c7c54c53a5ca58fc8f0823de5efeefffbb9.svn-base
│ │ │ └── 4456da451e2fd619e3db3ddc77b14d3baba318e6.svn-base
│ │ ├── 46/
│ │ │ ├── 468d410c689c1252872ae74e1c239d08da105828.svn-base
│ │ │ └── 46b4c15fb4ad1925a8d7e95736338aa7a9356b94.svn-base
│ │ ├── 47/
│ │ │ ├── 47444bc050df100e3ecf6da3b32fc3e72cedd3d7.svn-base
│ │ │ └── 47b0417634b07bfdb0ed6256262f4f2f4b7a856e.svn-base
│ │ ├── 48/
│ │ │ ├── 480e04ab9ddceb857cf30c1b1b6010c6342537d8.svn-base
│ │ │ ├── 4860d34e2aebd64d76ae4f5df50ad807e5e22c05.svn-base
│ │ │ └── 48d0faccfb224bbe9894149933cb2854ad3bb694.svn-base
│ │ ├── 49/
│ │ │ ├── 496f75bb24ef1405c8e73f308bdcb7151509d746.svn-base
│ │ │ └── 49e8e2f8c12a1fac6aaead26e96250e9ba960448.svn-base
│ │ ├── 4b/
│ │ │ └── 4b30bdfd51f28c45bfb86ab8484d8a7f7f6140e2.svn-base
│ │ ├── 4c/
│ │ │ ├── 4c0d320756d2018b3f2c3544923a939b87533800.svn-base
│ │ │ ├── 4c32cb13f7e191b3241c44246970ac9d7e713b92.svn-base
│ │ │ ├── 4c4eccd7d41781575811c734b85d67dff6154e6b.svn-base
│ │ │ ├── 4c4faf7a3fae4d0b1474561f0080995d358861ac.svn-base
│ │ │ └── 4c5bd4126c5c64210feffebd6ca48c1598729d04.svn-base
│ │ ├── 4d/
│ │ │ ├── 4d34f6dcb70ac598c17e6a49c25a45c02ce62a69.svn-base
│ │ │ └── 4dd33b6bbbb432013ab6a03d74120988b1b5dafa.svn-base
│ │ ├── 4e/
│ │ │ ├── 4e80bce2ed3fbd4a48bdff4f6f4164da875b96ff.svn-base
│ │ │ └── 4ed0557b7ff4cf07aba37568ccbd1de038264078.svn-base
│ │ ├── 4f/
│ │ │ ├── 4f53adf062407a2a7b2ca8256679b8900e465e4f.svn-base
│ │ │ └── 4f80723c94375d498af0db25808f75960a2c2473.svn-base
│ │ ├── 50/
│ │ │ ├── 502c0888a939f89f70dd678ab625659719dcacce.svn-base
│ │ │ └── 503d1f813c4b3f792fefcfe3693e3482ea2dfd77.svn-base
│ │ ├── 51/
│ │ │ ├── 51bbccc63169d80f42b31b3562188756e7faf856.svn-base
│ │ │ └── 51bcd08afdd26bc974a8473c30ac0c048b8da256.svn-base
│ │ ├── 52/
│ │ │ ├── 5204b3a546c606191efff19d064570f790216605.svn-base
│ │ │ ├── 52763619fa4bc22e847c1090e05d1c003fc8b5c0.svn-base
│ │ │ └── 52fda58379503aa334add378a8e6a4ab25584d9a.svn-base
│ │ ├── 53/
│ │ │ ├── 5342792b4917f6669851bccfd223afc98762257b.svn-base
│ │ │ └── 5387b7703a07a308df2d8e58a0cd74a04dc8d844.svn-base
│ │ ├── 55/
│ │ │ └── 5584dabbab31939f13204652d7d2e00e7e2130ef.svn-base
│ │ ├── 56/
│ │ │ └── 56eee8e2d7bb0a8d3373962f5d4280830d0c3908.svn-base
│ │ ├── 59/
│ │ │ ├── 593c2912e1d6e6037ba4ece31b487feb1df3f601.svn-base
│ │ │ ├── 599581f7be339f75fdc6bdf4a317ef9e445aaf2c.svn-base
│ │ │ └── 59ae41053ff0da6ad22693246f56e0f70c0bea6d.svn-base
│ │ ├── 5c/
│ │ │ ├── 5c1d209265523035372713c308b44f9031c72289.svn-base
│ │ │ └── 5c6ec0fdfb0db138935bab6cd5aa839d97402c1c.svn-base
│ │ ├── 5d/
│ │ │ └── 5dc4ab26970eb043b4c8f3cefad7adafb48caf6f.svn-base
│ │ ├── 5e/
│ │ │ └── 5e65a8e05db6ab2aaa56fbd0e2ee6dd2e6e3474c.svn-base
│ │ ├── 5f/
│ │ │ └── 5f0acebc023f848128fa38d876d9891373b56e2c.svn-base
│ │ ├── 60/
│ │ │ ├── 60179bf9db929e9c2394ab9becc01b3dd3e9bed7.svn-base
│ │ │ └── 601d0f18449ea3e367c25c0633849c1a5cf4a39c.svn-base
│ │ ├── 61/
│ │ │ ├── 612b00017064ed21957aa415e9840fb677afae93.svn-base
│ │ │ ├── 612fd096ed9ffb4a86958beb880d65ea39491c85.svn-base
│ │ │ └── 61495c1a4b90699e58836c323869d04f06b15620.svn-base
│ │ ├── 62/
│ │ │ ├── 6208926100d2583ba5d87f20227c4a604acd9382.svn-base
│ │ │ ├── 62791a9f1067cdb03c5d1028ae0891b663242ef6.svn-base
│ │ │ └── 62edbd46b41436760a3c09f3cadb3f1d82f28db2.svn-base
│ │ ├── 63/
│ │ │ ├── 6367919ce43bfe92d5479523fec0a5680822c1ca.svn-base
│ │ │ ├── 63b54e425f4ffad11fa680bc1cf572b119c86418.svn-base
│ │ │ └── 63ffd23296a2f78874d5fb751bd707121208718d.svn-base
│ │ ├── 64/
│ │ │ └── 64bc8985dfc7ed0da60e1b13c66003ac0f6a877b.svn-base
│ │ ├── 65/
│ │ │ ├── 6544d280df4df7d91dcb06c7de3dcf4d4fcd2d46.svn-base
│ │ │ └── 659a59cf3f55fb10ca29df177ef6ca4276fc1996.svn-base
│ │ ├── 66/
│ │ │ └── 6697aafe3ac76941b99f9c07c26a770eb1b266df.svn-base
│ │ ├── 67/
│ │ │ └── 67355c0eb0de2acb9cf3ae138f69c578ed984a61.svn-base
│ │ ├── 68/
│ │ │ ├── 68431f32b8d9d7f351e3590a2e8101e9b8d4c84f.svn-base
│ │ │ └── 68bcd275b049a2bb1d5cd85ca80e93beee19f2f1.svn-base
│ │ ├── 69/
│ │ │ └── 6997711b22a183018edac09ed79a2e57207bdbd8.svn-base
│ │ ├── 6b/
│ │ │ └── 6b685cd7417b2688e664013fbd943f808c27f0d5.svn-base
│ │ ├── 6c/
│ │ │ └── 6cbb57ba2355cf442e06899898ff5af55867103e.svn-base
│ │ ├── 6e/
│ │ │ ├── 6eaedbe74b81b8f220365b8eb6c3782366c41ab5.svn-base
│ │ │ └── 6ec4ed1b695bb6308aed00f2632ad59b65fce1ed.svn-base
│ │ ├── 70/
│ │ │ ├── 7028f8df21ad1ae3ba70044319215cb8c65d57eb.svn-base
│ │ │ └── 7068771eeeda8df42bcb7520bc3f53472f83f0bb.svn-base
│ │ ├── 73/
│ │ │ ├── 7398e363e0b9b636370da8a32e03de3dc22ed210.svn-base
│ │ │ ├── 73aeadd07a4bf19a75548d38c69e16ad772cc336.svn-base
│ │ │ ├── 73b168548249c4b9413f7457a66ba5b03df649bd.svn-base
│ │ │ └── 73d74fd28b870be544e505b67990814bf8cfeeeb.svn-base
│ │ ├── 74/
│ │ │ └── 74a30cd38611b15bb7ab53f135bf07c0fd7deb8a.svn-base
│ │ ├── 75/
│ │ │ ├── 7531f57ac71678e8bdde440906a3023f46284b44.svn-base
│ │ │ └── 753f88a86b7b62614582a464aa39815dcc11aa4e.svn-base
│ │ ├── 76/
│ │ │ ├── 76558b9539f6f4bd47172a5967607d32699c3255.svn-base
│ │ │ └── 768764aaceba888bd473a3474c94fb987e6b6ab0.svn-base
│ │ ├── 79/
│ │ │ ├── 797620391aac9db219bd1056fb531e43e212ddbc.svn-base
│ │ │ └── 79ecb6f98bbfd04362cf6c5dbeb1fb60283349f7.svn-base
│ │ ├── 7b/
│ │ │ ├── 7b16254adba579fa7a8eb12b7ca9eaffd4cbadcd.svn-base
│ │ │ ├── 7b93539091429ecbcf85d93278ecd2da2c9426ab.svn-base
│ │ │ ├── 7bc56bf8abce95597491da4f75b6e04101d1c1d8.svn-base
│ │ │ ├── 7bd52fef0b72d500aef22545fc4ae5c742d9180e.svn-base
│ │ │ └── 7bf0670c68c92c203241c3e75f43bc714560f069.svn-base
│ │ ├── 7c/
│ │ │ ├── 7c54016c22c06687e5e5e520639f75159fc26bd2.svn-base
│ │ │ └── 7c97e2760e11fafed4bfa319faf395e0fc044b96.svn-base
│ │ ├── 7d/
│ │ │ └── 7d77ecba550045d8b16f716b47443e93d2449011.svn-base
│ │ ├── 7e/
│ │ │ ├── 7e42ba096935226fd75d16121c893a18a933d10f.svn-base
│ │ │ └── 7eac42e387e1a7ab2099e86c2917dc0c4902258d.svn-base
│ │ ├── 7f/
│ │ │ ├── 7f1b7c041a69b31c81c88a2460d0eabde0d3c8b2.svn-base
│ │ │ ├── 7f4440893628e7afa0143d43f837417f2d181d7a.svn-base
│ │ │ └── 7fc76dd4b7d2df42241b9e3b32fd541eb1a71229.svn-base
│ │ ├── 80/
│ │ │ ├── 80478a6ea6a65c60dfb4f9a15c8cbf9c846389cc.svn-base
│ │ │ ├── 8074f618dc6c8d65d890e1321493e2bf2a1d546d.svn-base
│ │ │ ├── 80a5bf705cc6d7fa4b268670057ece4a18a40643.svn-base
│ │ │ └── 80dcc9c26e7755d486fb5f8179ee107358391eea.svn-base
│ │ ├── 81/
│ │ │ └── 81b8b4c54371b9e4d828afb28fbba7b53d337e14.svn-base
│ │ ├── 82/
│ │ │ └── 8236e7e4c47bc975b8c27269dd01ae5f5cb62623.svn-base
│ │ ├── 83/
│ │ │ └── 83ded14cdff196da97a2e0fa16d9415228191fa7.svn-base
│ │ ├── 84/
│ │ │ ├── 841adfbc3a67a83630fe4e8d59323c9a65bc7dc9.svn-base
│ │ │ ├── 844acf0a8d65b49a179e732d3cb60b769d1dc007.svn-base
│ │ │ └── 8456cc789280d81f492033281bfe763a98195264.svn-base
│ │ ├── 85/
│ │ │ ├── 85b0f4ac338ff0c57e79cb04a3484759505d43a6.svn-base
│ │ │ └── 85bc1e0a10025b6c4aa345e7ada281b7a222be7b.svn-base
│ │ ├── 86/
│ │ │ └── 8666e41075ef94a78ac595afbd1c22057881f2ea.svn-base
│ │ ├── 87/
│ │ │ └── 87ed1a7971ff8316e9c06cab3aa24a66628f5fd5.svn-base
│ │ ├── 88/
│ │ │ ├── 88086200176fa4174716c1498413d31868152bbf.svn-base
│ │ │ ├── 88672128e482f81485780d785042a0de90653ccf.svn-base
│ │ │ ├── 8877102eb0092dca155a7912553a38ea59dd0b7d.svn-base
│ │ │ └── 88e26cba511daf4293934d16cb43938d0f85a18a.svn-base
│ │ ├── 89/
│ │ │ ├── 890bb47791489368e99c0195e65da1893d5298e5.svn-base
│ │ │ └── 897466afec487ac93b1e691b0d32c053921d703d.svn-base
│ │ ├── 8a/
│ │ │ ├── 8a10f97888d40f0e95f38492c4a52b78328605f3.svn-base
│ │ │ ├── 8a55f6711de24bf36b97d208f5637250973bfb3a.svn-base
│ │ │ └── 8aebfef98a46c693de082a3e6e56cee2abe2b4ca.svn-base
│ │ ├── 8b/
│ │ │ ├── 8b28bb3beba839e479e84a54e71be7c78e8200de.svn-base
│ │ │ └── 8be257bc5d7693f62e1a362b1c456a5d0b72705d.svn-base
│ │ ├── 8c/
│ │ │ └── 8cb1a48fc88581b7e2e5855e1238c7da80cd3938.svn-base
│ │ ├── 8f/
│ │ │ └── 8fcbd6375e2dd1996cedaaf7e3a8950364b886a0.svn-base
│ │ ├── 91/
│ │ │ └── 918df1128aa29e930b499ddb9717293a7c7edd6d.svn-base
│ │ ├── 92/
│ │ │ └── 92fd8928bd6e3b7a6c8d6f6828a173bc2fb1dcdb.svn-base
│ │ ├── 93/
│ │ │ ├── 9378ea4758918618f3ca68b1b623f88a4bc9eead.svn-base
│ │ │ └── 93fcdfc6f7ce4a7199de5dec48fbc17f323a6608.svn-base
│ │ ├── 95/
│ │ │ ├── 957576b7f86587b65e7b367409d8473b0431c393.svn-base
│ │ │ ├── 95a4eb3af29a3beeabbde817bc588a78ddf10e0d.svn-base
│ │ │ └── 95abf644e02a344ce785c4da92c0dd5c26415b7a.svn-base
│ │ ├── 97/
│ │ │ ├── 9707a98557c27c45d90c32909d80a884476b8587.svn-base
│ │ │ ├── 97353b50fffbf78461e06e7df8ce8ed73c3b3ff0.svn-base
│ │ │ └── 975756f4219c90758891f1964f8028cecfb2c675.svn-base
│ │ ├── 98/
│ │ │ └── 98b66fdda8255fcf8ded6b705517aa48216218d6.svn-base
│ │ ├── 99/
│ │ │ ├── 9955f7f1e3c0db05fb428b4fd3e16eacc7402ae9.svn-base
│ │ │ └── 9969bc387bfdd8297a5fa77945b20785b603fd97.svn-base
│ │ ├── 9a/
│ │ │ ├── 9a475952207ff615974d1a3613e391d02b0f0dea.svn-base
│ │ │ ├── 9a641c4736e3d8f1a8c5f064a9108e7a29f03bd6.svn-base
│ │ │ └── 9ada2c0e806321f9bb3c7a6ce49707c4fdf664e1.svn-base
│ │ ├── 9c/
│ │ │ └── 9ccd2c84d73f450dc85be59fecf942f336a06eb9.svn-base
│ │ ├── 9d/
│ │ │ └── 9da5972490b164e1b1bbaede6cbd9a8dac321e16.svn-base
│ │ ├── 9e/
│ │ │ └── 9efa9da8094116c00abbe5caf55d4f981d21cf26.svn-base
│ │ ├── 9f/
│ │ │ ├── 9f6bfa62aa76b00c6effa5bdd5ddc809c7eb25d2.svn-base
│ │ │ ├── 9fa6a1ec83aa21110077788d9080718fe80ded47.svn-base
│ │ │ ├── 9fe5c764d6c2df51a97f6ea72642b71de6e49d74.svn-base
│ │ │ └── 9ff96ba0dbe9a1dc3994a9ac334ae84253988a32.svn-base
│ │ ├── a0/
│ │ │ ├── a058978066e296310b0224baa3e95484f15c8f3d.svn-base
│ │ │ ├── a058a76398ee1d977c3ccb9d799c5f02cf987f40.svn-base
│ │ │ └── a0c199fb0c472339da61f359c26d6ed7be09a81a.svn-base
│ │ ├── a1/
│ │ │ └── a1e3bda0c91a5191ca1dea31f45dcfe834accc4a.svn-base
│ │ ├── a3/
│ │ │ ├── a33eeaaaff41f46520323424ca79e399e2d53af2.svn-base
│ │ │ ├── a38075b8fb1b83550f1a05dacf4605786fe578aa.svn-base
│ │ │ └── a396b072ee70577a67f05e9a3e191e6b53027175.svn-base
│ │ ├── a4/
│ │ │ ├── a40ab46d233a41873b0b6305185cec21dd3eafbb.svn-base
│ │ │ └── a479407b3caaa90ad4a148d5455163b49b4215a6.svn-base
│ │ ├── a5/
│ │ │ ├── a51ab63cb226b77e4b11c7d516e0259a5f747e93.svn-base
│ │ │ ├── a556148b66359e94f7ccde75022d7b2b489d8164.svn-base
│ │ │ └── a5b5ca45da347e01b26e995a77d7ef21006ad211.svn-base
│ │ ├── a6/
│ │ │ ├── a6eaa9c8a5673577177d7ba1716963e4d6eb2c99.svn-base
│ │ │ └── a6f6b0da9fa33debc4577ba5f27723e8ecdc4d9d.svn-base
│ │ ├── a8/
│ │ │ ├── a84eb6e222dc8904c5558e435007c6f092727b7a.svn-base
│ │ │ ├── a8692537e0f47513d72685cbafb1b5f4109ecad3.svn-base
│ │ │ ├── a869edc0b1dd4338f482e20397e2dbe62912a059.svn-base
│ │ │ └── a86c614156384f301eb403398a3997097b05d62b.svn-base
│ │ ├── a9/
│ │ │ ├── a98cecac96dab90bff5a7d390e2b08b5297a8e48.svn-base
│ │ │ └── a9bfa28be6d44bc8d9141b6de3cb79ce07e18896.svn-base
│ │ ├── aa/
│ │ │ ├── aa1f5f1723de9aee2669dc44a26fbc0ce776d35f.svn-base
│ │ │ └── aa91bd20a01c02603ac8f4df60bef48758548c2d.svn-base
│ │ ├── ab/
│ │ │ ├── ab6b7ab673e2ad57e58f43cf6df469e7660c1182.svn-base
│ │ │ └── abe54d476058834734160b48fae6bc5471b8c286.svn-base
│ │ ├── ac/
│ │ │ └── ac007b202d175b1dbeee1e0b39c40b9bf2aaf2d1.svn-base
│ │ ├── ad/
│ │ │ ├── ad47ceaace42ef6f11b3aa1053ca4cd5b7690453.svn-base
│ │ │ ├── ad9e9267bc0cf1e8dd2be128bc64261b575b012a.svn-base
│ │ │ ├── ada4e79c592f3c54546b7587b48f2b232d95ce2f.svn-base
│ │ │ └── adda71dce0dbafaa465632a171aea826b0827811.svn-base
│ │ ├── af/
│ │ │ ├── af94415c039bc36f20fbe1a2879838752bcc261b.svn-base
│ │ │ ├── afaa4cc1820f9992969da150808bc0b865975646.svn-base
│ │ │ └── afc1bf1787c384436565994646909db35fe7e06f.svn-base
│ │ ├── b1/
│ │ │ ├── b129b276e01126de5b3b753572ac67cbfc19454c.svn-base
│ │ │ ├── b1635c8c489c829078124cb786ddef7fa6874308.svn-base
│ │ │ └── b17381433e988ec03360565dbe335798109b0ce5.svn-base
│ │ ├── b3/
│ │ │ └── b331a6ca47e1ef2d3b5a05ddec3284e368eac891.svn-base
│ │ ├── b4/
│ │ │ ├── b4009a4a73e3d207910decdd4c081653fc95ff2d.svn-base
│ │ │ ├── b40958146e888a9831f92e71c21822d9aad33ac2.svn-base
│ │ │ └── b47317a6d4f96222e98001583822da7a10e1666a.svn-base
│ │ ├── b5/
│ │ │ ├── b56b06dc60421a7f13ee470af0aa108b7cc4aaf9.svn-base
│ │ │ └── b5a923804f15b9b66af6f011650509c196365dc6.svn-base
│ │ ├── b6/
│ │ │ ├── b60de2ae0e779f56470d60616f20e0a2c2691125.svn-base
│ │ │ ├── b63a097de0cd21e7c8acb72e4604812de94ee27a.svn-base
│ │ │ ├── b686a1f6d9b224580847d33a8c9e9cd4121385f5.svn-base
│ │ │ └── b6f7ae0cdeccc15fddcaf944fd79f0caeee9c8e1.svn-base
│ │ ├── b7/
│ │ │ ├── b71bbcc3ed5f313aab07143365c17954dea611cb.svn-base
│ │ │ ├── b786870b4a198837c81a932a5573ed97c1f9b330.svn-base
│ │ │ └── b7c7bda0c8206ab1507ad2a8b5b984a47d35a7bb.svn-base
│ │ ├── b9/
│ │ │ └── b9f3ebab942f1fcc978988f97adaba308bbc3856.svn-base
│ │ ├── ba/
│ │ │ └── bab668937569a81f8a7a4fdc7e146a7d7826a792.svn-base
│ │ ├── bc/
│ │ │ └── bcd3faaa6cf5fd61ba5cca28fc53f3869efba6ef.svn-base
│ │ ├── be/
│ │ │ ├── be343c7a300518d0b06505feb2c6bf524ef6998a.svn-base
│ │ │ ├── be3779509db63a31d913a3e15a12838ecf547eb2.svn-base
│ │ │ ├── be40a3f348e92fa26d7a9415c20ce799bda9dbd1.svn-base
│ │ │ └── be4d34e022dbfb44d613b8a71dbd21aed8f7da06.svn-base
│ │ ├── bf/
│ │ │ ├── bf36db30fd21f62ccce05ce06bf8ee5cdcf2786d.svn-base
│ │ │ ├── bf44fee7478e97bd8be7ec343d88043770203c01.svn-base
│ │ │ ├── bf9edbaaf9211827d72bbbea4ac10d79b4be0342.svn-base
│ │ │ └── bfba80a118cd69053907bc7a4f976170aade4ca5.svn-base
│ │ ├── c1/
│ │ │ ├── c12d079a9312a79aad891259e664728a8057ec3a.svn-base
│ │ │ └── c1e4d4bbc841c60acadc4462a9b382249970efc9.svn-base
│ │ ├── c2/
│ │ │ ├── c23441412ad977e31ea47c1c9a36b40e7ccfd9ed.svn-base
│ │ │ ├── c278741bd0108d9182b97e725bc3b379e065218c.svn-base
│ │ │ └── c2c73d6a2e7bbbb96d7bc4ea437dc3f1fa91def2.svn-base
│ │ ├── c3/
│ │ │ ├── c361a1934353fda13cdbc2ac52126d7985c42f9d.svn-base
│ │ │ └── c3a026561fa183457b2a6d76c8ff1c41571de3e5.svn-base
│ │ ├── c4/
│ │ │ └── c45b011a7116d9ca54d4a6016811dba3b50daa14.svn-base
│ │ ├── c6/
│ │ │ ├── c638ea07b1de337b786d0e0abe47669d7c9a1428.svn-base
│ │ │ ├── c6e1a35379d80ed828362d06550f07ad3054cc18.svn-base
│ │ │ └── c6feb3d2b900dec157b8b1050c03098b1d54e0f2.svn-base
│ │ ├── c7/
│ │ │ ├── c712a89e025f89b1f35a526056f8de9b27cd5432.svn-base
│ │ │ └── c76f4caaa7a8dfe9727fa93001b3aee3b22d6716.svn-base
│ │ ├── c8/
│ │ │ └── c8599aad41212c2740da5be7edf2e2c783ca6b3c.svn-base
│ │ ├── c9/
│ │ │ └── c9518b821ffb7bfc3632d6f3af2018f985a490c3.svn-base
│ │ ├── ca/
│ │ │ ├── ca5ac963516a5057ae67d746a6c9cb6fc0e04a5e.svn-base
│ │ │ ├── ca5b6be5c09bf337b98c9ae5f0003e71351cdc84.svn-base
│ │ │ └── ca8091b80dea573a1ea2c28067ed367e01d14fe9.svn-base
│ │ ├── cb/
│ │ │ ├── cbcc5604c6d3a15c5b87d05a883343d7630801f5.svn-base
│ │ │ ├── cbde224812c451797dea193746131a8c2f048f13.svn-base
│ │ │ └── cbe4a05099ac445ef830ab5fde3394f24d853d1f.svn-base
│ │ ├── cc/
│ │ │ ├── cc20d32e79cef0c3a4289b3e8b3bfe689b8ffbc8.svn-base
│ │ │ └── ccbfb0bce061fdc77c89d57b79abababbe498b25.svn-base
│ │ ├── cd/
│ │ │ └── cd7215fe350967f1e47750410d3895fa64b67cd5.svn-base
│ │ ├── ce/
│ │ │ └── ce0c900b469d63102449e5f0464d512f5e1cfa6a.svn-base
│ │ ├── cf/
│ │ │ └── cfd8aee1dfa3a986779be752fceaf93ec25ccb8e.svn-base
│ │ ├── d1/
│ │ │ └── d1e05eac04f47b8f5e04a99056b30a4e1a954162.svn-base
│ │ ├── d2/
│ │ │ ├── d2c70b5f789a420e8fb9aafe2f197a7d852acf47.svn-base
│ │ │ ├── d2cf8c1c7967e5c36aee75d35aa80376db1464aa.svn-base
│ │ │ └── d2d1c889e08d06619782c4bad9c91d7a7e538d60.svn-base
│ │ ├── d3/
│ │ │ ├── d31623333701c5ff60ebd7196947317dac321611.svn-base
│ │ │ └── d3b208c47b61dc5d806f1cbf82c17d48aa8ac56c.svn-base
│ │ ├── d7/
│ │ │ ├── d746fd0f09198fe8afc04b64bddd20d9909584ed.svn-base
│ │ │ ├── d77875a80caf9f60108f1a3cdcbc25ed7cce8e70.svn-base
│ │ │ └── d78b2a93bc81d9fa5ed3d59ab27a8126572b05d7.svn-base
│ │ ├── d8/
│ │ │ └── d853ff8733cc94c652fd4009c4829e91d804a438.svn-base
│ │ ├── da/
│ │ │ ├── da5b3c7758a2c8fbc4775beb69d7150493c7d312.svn-base
│ │ │ └── da770fb0f41f62c3c00ea1980d072e9002bd7160.svn-base
│ │ ├── db/
│ │ │ ├── db7036fb113dd74422a670234ac70c592144a735.svn-base
│ │ │ ├── dbc355ff8abc521b647b71ca680ced7969d797a5.svn-base
│ │ │ └── dbfff77ed8b045f7db605f34bd6894b81f471e40.svn-base
│ │ ├── dc/
│ │ │ └── dcd167d5e96c34dcb4ff9f14b0a3a688e8e3ea7d.svn-base
│ │ ├── dd/
│ │ │ ├── dd476b2d84d744357129a743cd223f9a7264dd29.svn-base
│ │ │ └── dd5bd29e374c5fb3226d8a32f075530fee38233c.svn-base
│ │ ├── de/
│ │ │ ├── de6f49396ddbfe9f2bb48d8c0bb1b87b6736d394.svn-base
│ │ │ └── def85b8417714285df94a8c429a38b2a4b7484c1.svn-base
│ │ ├── df/
│ │ │ ├── df0f5d0b5f31ecda385c991122d3c8c14fc8e50c.svn-base
│ │ │ ├── df12c72fbf4c9efa7ced7128be02be12d28f8be2.svn-base
│ │ │ └── dff6fa5bd214c31be5f3588dcef7d57da534c3ea.svn-base
│ │ ├── e0/
│ │ │ └── e07142877c4eb9e1286f5302ec954a033c97b3c1.svn-base
│ │ ├── e1/
│ │ │ ├── e12d1118511ba975aabcc8987e48193b2af082f8.svn-base
│ │ │ └── e1923b7bb2208269faa9a2ff3d9826644834258c.svn-base
│ │ ├── e4/
│ │ │ ├── e43b48babff7cb8eca0cbf3b3844a6e9375669cd.svn-base
│ │ │ └── e447e13ff6f0f413f8595310d684cd25b3cf83e2.svn-base
│ │ ├── e5/
│ │ │ ├── e58d1d1cca31823b6c949d25e3f910163baff087.svn-base
│ │ │ └── e5fd87210cf8e3134cdf6db3ca6e4bb5e763fd39.svn-base
│ │ ├── e6/
│ │ │ └── e60ba4b1e604a91cbe0e23965a2a47c9ae162476.svn-base
│ │ ├── e8/
│ │ │ └── e802dc31ea7817e0e611f26f527618269e7b9895.svn-base
│ │ ├── e9/
│ │ │ └── e96d06cd852b2e38a834eae0a70227ff41473ed7.svn-base
│ │ ├── ea/
│ │ │ └── ea4266f88f97fb3a72c675d0056d65854cdaf098.svn-base
│ │ ├── eb/
│ │ │ ├── eb5cb6780e790de938491dd439facbd16aa76dfa.svn-base
│ │ │ ├── eb844ede23583a249f97de2c1bffb026607b4061.svn-base
│ │ │ ├── eb91474a5fbe05784d1169e1bd1af97911acdfe7.svn-base
│ │ │ └── eb9432dc005620dfc56c26598263c84b0bdac403.svn-base
│ │ ├── ec/
│ │ │ ├── ec17221211c0d4f95cbd5d9586967d5c1bd4cbb1.svn-base
│ │ │ ├── ec2d462cec313ade3c58f5193873d2bb9392de97.svn-base
│ │ │ ├── ec39671c29894db3fa1977b3a37dfd3796c7c8bc.svn-base
│ │ │ └── ec5e2b3cae849767bc704510ce8fac611180af2a.svn-base
│ │ ├── ef/
│ │ │ └── efe256fdd63c4486557689c1dbae7c407b319a7e.svn-base
│ │ ├── f0/
│ │ │ ├── f02ae36481e291d73b0abad69380b45538736860.svn-base
│ │ │ └── f04e16007b6097d0117dedf39885527f1c2a245b.svn-base
│ │ ├── f1/
│ │ │ ├── f109f78440f665b87980bd24ce0d251550b41c10.svn-base
│ │ │ ├── f14d9e38fb84776985991713c82bf11019b4b9e6.svn-base
│ │ │ ├── f1571592a039ac77a7f934df44222f51f12cee3d.svn-base
│ │ │ ├── f1b2c78e811175926d162a5088dc55f156b79264.svn-base
│ │ │ ├── f1c1123bcbbd3963df8bda3a7e16b48b14002c1d.svn-base
│ │ │ └── f1d8ae845851c1a4fdbca366edfe52d2a82b604b.svn-base
│ │ ├── f4/
│ │ │ ├── f43aaa9f62337c5705fd8e2535183079cd29919d.svn-base
│ │ │ ├── f45af3d6c723b33989095512f39d1633232d67d7.svn-base
│ │ │ └── f4e87fa56dd0ace818ffda464feddb69ef999c97.svn-base
│ │ ├── f5/
│ │ │ └── f525b45eee5955c2e441a3dcbccaaf97ee1dfaf5.svn-base
│ │ ├── f6/
│ │ │ ├── f6353681bbae89f42162fe94487fbd5dbd178aed.svn-base
│ │ │ ├── f64ba160ee74df3c84bb9c12b6d06ad3f2906898.svn-base
│ │ │ └── f6d34d93400d5ddbc73d904d5e8dbb99a38257b3.svn-base
│ │ ├── f8/
│ │ │ ├── f8208d7c9099f63467832af0e58aab0108a6914f.svn-base
│ │ │ ├── f8c8cf0dea3d095e7207c2ce537bafd0ee8d1127.svn-base
│ │ │ └── f8cbe1b82ece1fbd3ca3693a0f6ebc75c3358ec2.svn-base
│ │ ├── fa/
│ │ │ ├── fa0ddb92bbb11c23ead942147bf4d68e4c0547b5.svn-base
│ │ │ └── fa13a5cdfb112cbf1dd7970583865c6a1b366285.svn-base
│ │ ├── fb/
│ │ │ ├── fb3c77eb561a6439d8e4cf4495bd45af2ec726c3.svn-base
│ │ │ ├── fb633c4085ddbd5f5d2575c5ee38aae909346613.svn-base
│ │ │ ├── fbb361a11dd38e238ed9c73a05a57870dda79dd7.svn-base
│ │ │ └── fbe4da581317f12178bd812963ba961f0da8bcf7.svn-base
│ │ ├── fc/
│ │ │ └── fce80b1ca55cc48ef67a1336156c362e41a98c1d.svn-base
│ │ └── ff/
│ │ ├── ff8404bbffc5935a8deae296970b410b56f2be02.svn-base
│ │ └── ffb9369fe3688fcdb52ceb0d6d46bbbd6d909e7e.svn-base
│ ├── AndroidManifest.xml
│ ├── assets/
│ │ ├── border_config/
│ │ │ ├── Gallery/
│ │ │ │ ├── 10M.xml
│ │ │ │ ├── 118S.xml
│ │ │ │ ├── 3M.xml
│ │ │ │ ├── 41M.xml
│ │ │ │ ├── 42M.xml
│ │ │ │ └── Config.json
│ │ │ ├── Simple/
│ │ │ │ ├── 23M.xml
│ │ │ │ ├── 29M.xml
│ │ │ │ ├── 2M.xml
│ │ │ │ ├── 36M.xml
│ │ │ │ ├── 38M.xml
│ │ │ │ └── Config.json
│ │ │ └── Styled/
│ │ │ ├── 30S.xml
│ │ │ ├── 37S.xml
│ │ │ ├── 43S.xml
│ │ │ ├── 49S.xml
│ │ │ ├── 51S.xml
│ │ │ └── Config.json
│ │ ├── fonts_config/
│ │ │ ├── Charm/
│ │ │ │ └── Config.json
│ │ │ └── Classic/
│ │ │ └── Config.json
│ │ ├── fonts_res/
│ │ │ ├── AmericanTypewriter.ttc
│ │ │ ├── Garogier.otf
│ │ │ ├── Miama.otf
│ │ │ ├── Noteworthy.ttc
│ │ │ ├── Sofia.otf
│ │ │ └── Stencil Std.otf
│ │ ├── fx_config/
│ │ │ ├── Analog/
│ │ │ │ ├── 11.xml
│ │ │ │ ├── 27.xml
│ │ │ │ ├── 73.xml
│ │ │ │ ├── 74.xml
│ │ │ │ ├── 75.xml
│ │ │ │ ├── 76.xml
│ │ │ │ ├── 78.xml
│ │ │ │ ├── 80.xml
│ │ │ │ └── Config.json
│ │ │ ├── Lomo/
│ │ │ │ ├── 1.xml
│ │ │ │ ├── 10.xml
│ │ │ │ ├── 102.xml
│ │ │ │ ├── 103.xml
│ │ │ │ ├── 2.xml
│ │ │ │ ├── 23.xml
│ │ │ │ ├── 4.xml
│ │ │ │ ├── 5.xml
│ │ │ │ ├── 7.xml
│ │ │ │ └── Config.json
│ │ │ ├── OldPicture/
│ │ │ │ ├── 10.xml
│ │ │ │ ├── 111.xml
│ │ │ │ ├── 112.xml
│ │ │ │ ├── 114.xml
│ │ │ │ ├── 28.xml
│ │ │ │ ├── 6.xml
│ │ │ │ └── Config.json
│ │ │ ├── Retro/
│ │ │ │ ├── 104.xml
│ │ │ │ ├── 118.xml
│ │ │ │ ├── 16.xml
│ │ │ │ ├── 17.xml
│ │ │ │ ├── 8.xml
│ │ │ │ ├── 9.xml
│ │ │ │ └── Config.json
│ │ │ └── Vintage/
│ │ │ ├── 108.xml
│ │ │ ├── 109.xml
│ │ │ ├── 110.xml
│ │ │ ├── 6.xml
│ │ │ ├── 91.xml
│ │ │ ├── 93.xml
│ │ │ └── Config.json
│ │ ├── scenes/
│ │ │ ├── 160.xml
│ │ │ ├── 161.xml
│ │ │ ├── 162.xml
│ │ │ ├── 163.xml
│ │ │ ├── 164.xml
│ │ │ ├── 165.xml
│ │ │ ├── 166.xml
│ │ │ ├── 167.xml
│ │ │ ├── 168.xml
│ │ │ ├── 169.xml
│ │ │ ├── 170.xml
│ │ │ ├── 171.xml
│ │ │ └── 173.xml
│ │ └── stickers_config/
│ │ ├── Boom/
│ │ │ └── Config.json
│ │ ├── Decoration/
│ │ │ └── Config.json
│ │ ├── Love/
│ │ │ └── Config.json
│ │ ├── Party/
│ │ │ └── Config.json
│ │ └── Text/
│ │ └── Config.json
│ ├── bin/
│ │ ├── AndroidManifest.xml
│ │ ├── FotorSDKDemo.apk
│ │ ├── R.txt
│ │ ├── classes.dex
│ │ ├── dexedLibs/
│ │ │ ├── android-support-v4-15c67f7264087cb18a22dcadd559d4aa.jar
│ │ │ ├── eibitmaplibrary-9e660ee3815c1a2bd2c0bb5373818beb.jar
│ │ │ ├── fotorsdk-v1.0.7-381b468e66bb469bdea84d2d6eb1ae81.jar
│ │ │ ├── fotorsdklibrary-19f8c3904a7680fe41f833f5650750d7.jar
│ │ │ ├── gson-2.2.4-a5f050a398a10e240f34a91a7923b58f.jar
│ │ │ └── renderscript-v8-934f712584d6e234d7344d156bb53e1f.jar
│ │ └── resources.ap_
│ ├── gen/
│ │ └── com/
│ │ ├── everimaging/
│ │ │ └── fotorsdk/
│ │ │ └── R.java
│ │ └── example/
│ │ └── fotorsdkdemo/
│ │ ├── BuildConfig.java
│ │ └── R.java
│ ├── lint.xml
│ ├── proguard-project.txt
│ ├── project.properties
│ ├── res/
│ │ ├── color/
│ │ │ ├── photo_editor_button_background_color.xml
│ │ │ └── photo_editor_button_text_color.xml
│ │ ├── drawable/
│ │ │ └── photo_editor_button_background.xml
│ │ ├── layout/
│ │ │ └── activity_main.xml
│ │ ├── values/
│ │ │ ├── colors.xml
│ │ │ ├── dimens.xml
│ │ │ ├── strings.xml
│ │ │ └── styles.xml
│ │ ├── values-sw600dp/
│ │ │ └── dimens.xml
│ │ ├── values-sw720dp-land/
│ │ │ └── dimens.xml
│ │ ├── values-v11/
│ │ │ └── styles.xml
│ │ └── values-v14/
│ │ └── styles.xml
│ └── src/
│ └── com/
│ └── example/
│ └── fotorsdkdemo/
│ └── MainActivity.java
├── LICENSE
└── README.md
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitmodules
================================================
[submodule "library"]
path = library
url = https://github.com/Fotor/FotorSDK-android.git
================================================
FILE: FotorSDKDemo/.classpath
================================================
================================================
FILE: FotorSDKDemo/.project
================================================
FotorSDKDemocom.android.ide.eclipse.adt.ResourceManagerBuildercom.android.ide.eclipse.adt.PreCompilerBuilderorg.eclipse.jdt.core.javabuildercom.android.ide.eclipse.adt.ApkBuildercom.android.ide.eclipse.adt.AndroidNatureorg.eclipse.jdt.core.javanature
================================================
FILE: FotorSDKDemo/.settings/org.eclipse.jdt.core.prefs
================================================
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
org.eclipse.jdt.core.compiler.compliance=1.6
org.eclipse.jdt.core.compiler.source=1.6
================================================
FILE: FotorSDKDemo/.svn/entries
================================================
12
================================================
FILE: FotorSDKDemo/.svn/format
================================================
12
================================================
FILE: FotorSDKDemo/.svn/pristine/07/070b79fa25398f4fa224b4626dd75e6c67df2c2e.svn-base
================================================
SRClevelGetScale0.10.10.3levelTMPquadric0.01.0tableTexturetexturing(0, 14)(63, 66)(129, 151)(208, 255)(0, 38)(63, 72)(127, 127)(196, 255)(0, 49)(63, 75)(127, 121)(202, 233)(255, 255)TMPDSTtableTexture
================================================
FILE: FotorSDKDemo/.svn/pristine/0c/0c4712419da14d194f0812257ba40bd32de21e40.svn-base
================================================
["118.xml","16.xml","8.xml","9.xml","104.xml","17.xml"]
================================================
FILE: FotorSDKDemo/.svn/pristine/0d/0d332441cbc270af2413544d854c84ccd4f39121.svn-base
================================================
SRClevelGetScale0.010.20.0levelDSTquadric0.01.0
================================================
FILE: FotorSDKDemo/.svn/pristine/0f/0fa23e0c9fe055fc7671e5d3a43a97ed7d2673e4.svn-base
================================================
#E5414850#B3C2D6#00C0FF#EEB3C2D6#E5414850#991C1F27#CC414850
================================================
FILE: FotorSDKDemo/.svn/pristine/10/108fa6b5bc6a26dee57333789683c3fd03e43f72.svn-base
================================================
["11.xml","74.xml","76.xml","75.xml","73.xml","80.xml","78.xml","27.xml"]
================================================
FILE: FotorSDKDemo/.svn/pristine/12/12244ee01c7eff76c02a29c1743c3f3fdad680f2.svn-base
================================================
[["stickers_decoration_1.png",
"stickers_decoration_1_icon.png"],
["stickers_decoration_2.png",
"stickers_decoration_2_icon.png"],
["stickers_decoration_3.png",
"stickers_decoration_3_icon.png"],
["stickers_decoration_4.png",
"stickers_decoration_4_icon.png"],
["stickers_decoration_5.png",
"stickers_decoration_5_icon.png"],
["stickers_decoration_6.png",
"stickers_decoration_6_icon.png"],
["stickers_decoration_7.png",
"stickers_decoration_7_icon.png"],
["stickers_decoration_8.png",
"stickers_decoration_8_icon.png"],
["stickers_decoration_9.png",
"stickers_decoration_9_icon.png"],
["stickers_decoration_10.png",
"stickers_decoration_10_icon.png"],
["stickers_decoration_11.png",
"stickers_decoration_11_icon.png"],
["stickers_decoration_12.png",
"stickers_decoration_12_icon.png"],
["stickers_decoration_13.png",
"stickers_decoration_13_icon.png"],
["stickers_decoration_14.png",
"stickers_decoration_14_icon.png"],
["stickers_decoration_15.png",
"stickers_decoration_15_icon.png"],
["stickers_decoration_16.png",
"stickers_decoration_16_icon.png"]]
================================================
FILE: FotorSDKDemo/.svn/pristine/12/12a1458fb42c49366faaed8171ddae503fb5ab15.svn-base
================================================
vtg.pngtableTexture1texturing(22, 0)(120, 78)(208, 138)(255, 170)(77, 0)(143, 69)(255, 176)(45, 0)(159, 97)(255, 173)tableTexture2texturing(7, 171)(92, 201)(255, 253)(0, 3)(61, 79)(110, 142)(186, 201)(255, 255)(0, 23)(53, 87)(103, 140)(186, 208)(239, 248)SRCtableTexture1dst_aSRCtableTexture2dst_bdst_adst_bspecialAlphaTexture
================================================
FILE: FotorSDKDemo/.svn/pristine/16/1616494bc0c12ac0a9ec007b1a0a586526b97064.svn-base
================================================
================================================
FILE: FotorSDKDemo/.svn/pristine/16/165822de404fab27a653765a13ce0e1bd68ea6d2.svn-base
================================================
package com.example.fotorsdkdemo;
import java.io.File;
import com.everimaging.fotorsdk.FotorConstants;
import com.everimaging.fotorsdk.FotorSDKActivity;
import com.everimaging.fotorsdk.FotorSDKVersion;
import com.everimaging.fotorsdk.FotorUtils;
import com.everimaging.fotorsdk.provider.FotorContentProvider;
import com.everimaging.fotorsdk.provider.FotorContentProvider.SessionColumns;
import com.everimaging.fotorsdk.provider.FotorContentProvider.SessionColumns.Session;
import com.everimaging.fotorsdk.utils.BitmapDecodeUtils;
import com.everimaging.fotorsdk.utils.Utils;
import com.everimaging.fotorsdk.engine.FotorHDFilter;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnCancelListener;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.media.MediaScannerConnection;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore.Images;
import android.provider.MediaStore.Images.ImageColumns;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
/**
* Sample main activity
*
* @description
*
* @author John.Zhang
* @version 1.0
* @create Apr 12, 2014 3:06:39 PM
* @update Apr 12, 2014 3:06:39 PM
*/
public class MainActivity extends Activity {
private static final int ACTION_REQUEST_FEATURE = 2;
private static final int ACTION_REQUEST_GALLERY = 3;
public static final String LOG_TAG = "fotorsdk_demo";
/** Folder name on the sdcard where the images will be saved **/
private static final String FOLDER_NAME = "FotorSDK";
/** Edit sample button */
Button mEditButton;
/** Call gallery button */
Button mGalleryButton;
/** Display image view */
ImageView mImage;
/** The path for output file */
Uri mOutputFilePath;
/** Image uri for image editor */
Uri mImageUri;
/** Display version label for DEBUG */
private TextView mSDKVersionLabel;
/** The sample image uri. */
private Uri mSampleUri;
private File mGalleryFolder;
/** session id for the hi-res post processing */
private String mSessionId;
@Override
protected void onCreate(Bundle savedInstanceState) {
Log.i(LOG_TAG, "onCreate");
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mEditButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// if (mImageUri != null) {
// startFeature(mImageUri);
// }
if (mSampleUri != null) {
startFeature(mSampleUri);
}
}
});
mGalleryButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
pickFromGallery();
}
});
mGalleryFolder = createFolders();
// add sample image
mSampleUri = Uri.parse("file:///android_asset/sample.jpg");
loadAsync(mSampleUri);
if (BuildConfig.DEBUG) {
mSDKVersionLabel.setText("V" + FotorSDKVersion.FOTOR_SDK_VERSION);
}
}
/**
* Start the activity to pick an image from the user gallery
*/
private void pickFromGallery() {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
Intent chooser = Intent.createChooser(intent, "Choose a Picture");
startActivityForResult(chooser, ACTION_REQUEST_GALLERY);
}
@Override
protected void onResume() {
Log.i(LOG_TAG, "onResume");
super.onResume();
if (getIntent() != null) {
handleIntent(getIntent());
setIntent(new Intent());
}
}
/**
* Handle the incoming {@link Intent}
*/
private void handleIntent(Intent intent) {
String action = intent.getAction();
if (null != action) {
if (Intent.ACTION_SEND.equals(action)) {
Bundle extras = intent.getExtras();
if (extras != null && extras.containsKey(Intent.EXTRA_STREAM)) {
Uri uri = (Uri) extras.get(Intent.EXTRA_STREAM);
loadAsync(uri);
}
} else if (Intent.ACTION_VIEW.equals(action)) {
Uri data = intent.getData();
Log.d(LOG_TAG, "data: " + data);
loadAsync(data);
}
}
}
/**
* Load the incoming Image
*
* @param uri
*/
private void loadAsync(final Uri uri) {
Log.i(LOG_TAG, "loadAsync: " + uri);
Drawable toRecycle = mImage.getDrawable();
if (toRecycle != null && toRecycle instanceof BitmapDrawable) {
if (((BitmapDrawable) mImage.getDrawable()).getBitmap() != null)
((BitmapDrawable) mImage.getDrawable()).getBitmap().recycle();
}
mImage.setImageDrawable(null);
mImageUri = null;
DownloadAsync task = new DownloadAsync();
task.execute(uri);
}
@Override
protected void onDestroy() {
Log.i(LOG_TAG, "onDestroy");
super.onDestroy();
mOutputFilePath = null;
}
@Override
public void onContentChanged() {
super.onContentChanged();
System.out.println("context:" + this.getPackageName());
mEditButton = (Button) findViewById(R.id.button2);
mGalleryButton = (Button) findViewById(R.id.button_gallery);
mImage = (ImageView) findViewById(R.id.image);
mSDKVersionLabel = (TextView) findViewById(R.id.fotor_sdk_version_label);
}
@Override
/**
* This method is called when feather has completed ( ie. user clicked on "done" or just exit the activity without saving ).
* If user clicked the "done" button you'll receive RESULT_OK as resultCode, RESULT_CANCELED otherwise.
*
* @param requestCode
* - it is the code passed with startActivityForResult
* @param resultCode
* - result code of the activity launched ( it can be RESULT_OK or RESULT_CANCELED )
* @param data
* - the result data
*/
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
switch (requestCode) {
case ACTION_REQUEST_FEATURE: {
Uri uri = data.getData();
Bitmap bitmap = BitmapDecodeUtils.decode(this, uri, 0, 0);
setImageURI(uri, bitmap);
new ProcessHDTask(this).execute();
}
break;
case ACTION_REQUEST_GALLERY: {
Uri uri = data.getData();
loadAsync(uri);
startFeature(uri);
}
break;
}
} else if (resultCode == RESULT_CANCELED) {
switch (requestCode) {
case ACTION_REQUEST_FEATURE:
if (mSessionId != null)
deleteSession(mSessionId);
break;
}
}
}
private String onSaveCompletion() {
Uri sessionUri = SessionColumns.getContentUri(this, mSessionId);
Cursor cursor = getContentResolver().query(sessionUri, null, null,
null, null);
Session session = Session.create(cursor);
if (session != null) {
FotorHDFilter fotorHDFilter = new FotorHDFilter(this, session);
fotorHDFilter.loadImage();
fotorHDFilter.executeFilter();
String dstPath = Utils.getSDPath() + "/testOriginal.jpg";
fotorHDFilter.save(dstPath);
fotorHDFilter.dispose();
deleteSession(mSessionId);
return dstPath;
}
return null;
}
class ProcessHDTask extends AsyncTask {
private ProgressDialog mDialog;
private Context mContext;
public ProcessHDTask(Context context) {
this.mContext = context;
}
@Override
protected void onPreExecute() {
mDialog = ProgressDialog.show(mContext, "Process HD",
"Please wait...");
}
@Override
protected String doInBackground(Void... params) {
return onSaveCompletion();
}
@Override
protected void onPostExecute(String result) {
mDialog.dismiss();
String msg = "Process Error";
if (result != null) {
msg = result;
}
Toast.makeText(mContext, msg, Toast.LENGTH_LONG).show();
}
}
/**
* Delete the session and all it's actions. We do not need it anymore.
* Note that this is optional. All old sessions are automatically removed in
* Feather.
*
* @param session_id
*/
private void deleteSession(final String session_id) {
Uri uri = FotorContentProvider.SessionColumns.getContentUri(this,
session_id);
int count = getContentResolver().delete(uri, null, null);
System.out.println("delete session count:" + count);
}
/**
* Given an Uri load the bitmap into the current ImageView and resize it to
* fit the image container size
*
* @param uri
*/
@SuppressWarnings("deprecation")
private boolean setImageURI(final Uri uri, final Bitmap bitmap) {
Log.d(LOG_TAG,
"image size: " + bitmap.getWidth() + "x" + bitmap.getHeight());
mImage.setImageBitmap(bitmap);
mImage.setBackgroundDrawable(null);
mEditButton.setEnabled(true);
mImageUri = uri;
return true;
}
/**
* We need to notify the MediaScanner when a new file is created. In this
* way all the gallery applications will be notified too.
*
* @param file
*/
private void updateMedia(String filepath) {
Log.i(LOG_TAG, "updateMedia: " + filepath);
MediaScannerConnection.scanFile(getApplicationContext(),
new String[] { filepath }, null, null);
}
/**
* Pick a random image from the user gallery
*
* @return
*/
@SuppressWarnings("unused")
private Uri pickRandomImage() {
Cursor c = getContentResolver().query(
Images.Media.EXTERNAL_CONTENT_URI,
new String[] { ImageColumns._ID, ImageColumns.DATA },
ImageColumns.SIZE + ">?", new String[] { "90000" }, null);
Uri uri = null;
if (c != null) {
int total = c.getCount();
int position = (int) (Math.random() * total);
Log.d(LOG_TAG, "pickRandomImage. total images: " + total
+ ", position: " + position);
if (total > 0) {
if (c.moveToPosition(position)) {
String data = c.getString(c
.getColumnIndex(Images.ImageColumns.DATA));
long id = c.getLong(c
.getColumnIndex(Images.ImageColumns._ID));
uri = Uri.parse(data);
Log.d(LOG_TAG, uri.toString());
}
}
c.close();
}
return uri;
}
/**
* Return a new image file. Name is based on the current time. Parent folder
* will be the one created with createFolders
*
* @return
* @see #createFolders()
*/
private File generateOutputFileName() {
if (mGalleryFolder != null) {
if (mGalleryFolder.exists()) {
File file = new File(mGalleryFolder, "Fotor_"
+ System.currentTimeMillis() + ".jpg");
return file;
}
}
return null;
}
/**
* Once you've chosen an image you can start the feather activity
*
* @param uri
*/
private void startFeature(Uri uri) {
Log.d(LOG_TAG, "uri: " + uri);
// first check the external storage availability
if (!isExternalStorageAvilable()) {
new AlertDialog.Builder(this)
.setTitle(android.R.string.dialog_alert_title)
.setMessage("External Storage is not avilable").show();
return;
}
// create a temporary file where to store the resulting image
File file = generateOutputFileName();
if (null != file) {
mOutputFilePath = Uri.fromFile(file);
} else {
new AlertDialog.Builder(this)
.setTitle(android.R.string.dialog_alert_title)
.setMessage("Failed to create a new File").show();
return;
}
// Create the intent needed to start feather
Intent newIntent = new Intent(this, FotorSDKActivity.class);
// === INPUT IMAGE URI ===
// Set the source image uri
newIntent.setData(uri);
// === OUTPUT ====
// Optional
// Pass the uri of the destination image file.
// This will be the same uri you will receive in the onActivityResult
System.out.println("mOutputFilePath->:" + mOutputFilePath);
// newIntent.putExtra(FotorConstants.EXTRA_OUTPUT_PATH,
// mOutputFilePath);
// === OUTPUT QUALITY ===
// Optional
newIntent.putExtra(FotorConstants.EXTRA_OUTPUT_QUALITY, 90);
// === MAX SIZE ===
// Optional
// you can pass the maximum allowed image size (for the preview),
// otherwise feather will determine
// the max size based on the device informations.
// This will not affect the hi-res image size.
// Here we're passing the current display size as max image size because
// after
// the execution of Aviary we're saving the HI-RES image so we don't
// need a big
// image for the preview
final DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int max_size = Math.max(metrics.widthPixels, metrics.heightPixels);
max_size = (int) ((float) max_size / 1.4f);
newIntent.putExtra(FotorConstants.EXTRA_MAX_PREVIEW_SIZE, max_size);
mSessionId = FotorUtils.generateSessionId(this);
getContentResolver().delete(
SessionColumns.getContentUri(this, mSessionId), null, null);
Log.d(LOG_TAG,
"session: " + mSessionId + ", size: " + mSessionId.length());
newIntent.putExtra(FotorConstants.EXTRA_FOTOR_SESSION_ID, mSessionId);
// // === FEATURE LIST ===
// newIntent.putExtra(FotorConstants.EXTRA_FEATURE_LIST, new String[] {
// FotorFeaturesFactory.FeatureType.FX_EFFECTS.name(),
// FotorFeaturesFactory.FeatureType.BORDER.name() });
// Whether hide confirm dialog when user not saved the was changed
// bitmap
// This default value will show
// newIntent.putExtra(FotorConstants.EXTRA_HIDE_DISCARD_ALERT, false);
// start feather
startActivityForResult(newIntent, ACTION_REQUEST_FEATURE);
}
/**
* Check the external storage status
*
* @return
*/
private boolean isExternalStorageAvilable() {
String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state)) {
return true;
}
return false;
}
/**
* Try to create the required folder on the sdcard where images will be
* saved to.
*
* @return
*/
private File createFolders() {
File baseDir;
if (android.os.Build.VERSION.SDK_INT < 8) {
baseDir = Environment.getExternalStorageDirectory();
} else {
baseDir = Environment
.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
}
if (baseDir == null)
return Environment.getExternalStorageDirectory();
Log.d(LOG_TAG, "Pictures folder: " + baseDir.getAbsolutePath());
File fotorSDKFolder = new File(baseDir, FOLDER_NAME);
if (fotorSDKFolder.exists())
return fotorSDKFolder;
if (fotorSDKFolder.mkdirs())
return fotorSDKFolder;
return Environment.getExternalStorageDirectory();
}
class DownloadAsync extends AsyncTask implements
OnCancelListener {
ProgressDialog mProgress;
private Uri mUri;
@Override
protected void onPreExecute() {
super.onPreExecute();
mProgress = new ProgressDialog(MainActivity.this);
mProgress.setIndeterminate(true);
mProgress.setCancelable(true);
mProgress.setMessage("Loading image...");
mProgress.setOnCancelListener(this);
mProgress.show();
}
@Override
protected Bitmap doInBackground(Uri... params) {
mUri = params[0];
DisplayMetrics displayMetrics = getResources().getDisplayMetrics();
int maxW = (int) displayMetrics.widthPixels;
int maxH = (int) displayMetrics.heightPixels;
Bitmap bitmap = BitmapDecodeUtils.decode(getApplicationContext(),
mUri, maxW, maxH);
return bitmap;
}
@Override
protected void onPostExecute(Bitmap result) {
super.onPostExecute(result);
if (mProgress.getWindow() != null) {
mProgress.dismiss();
}
if (result != null) {
setImageURI(mUri, result);
} else {
Toast.makeText(MainActivity.this,
"Failed to load image " + mUri, Toast.LENGTH_SHORT)
.show();
}
}
@Override
public void onCancel(DialogInterface dialog) {
Log.i(LOG_TAG, "onProgressCancel");
this.cancel(true);
}
@Override
protected void onCancelled() {
super.onCancelled();
Log.i(LOG_TAG, "onCancelled");
}
}
}
================================================
FILE: FotorSDKDemo/.svn/pristine/16/16f1cbcb8a37822a0795b2dafdfc6c1ad5d798b1.svn-base
================================================
29M_0.png29M_10.png29M_2.png29M_3.png29M_4.png29M_5.png29M_6.png29M_7.png29M.pngM0.121861860088888801088980888898888810989888888898108809888880888810
================================================
FILE: FotorSDKDemo/.svn/pristine/17/173b4efba62c8e1113726445e7ca5aab8fbe51fb.svn-base
================================================
FotorSDKDemocom.android.ide.eclipse.adt.ResourceManagerBuildercom.android.ide.eclipse.adt.PreCompilerBuilderorg.eclipse.jdt.core.javabuildercom.android.ide.eclipse.adt.ApkBuildercom.android.ide.eclipse.adt.AndroidNatureorg.eclipse.jdt.core.javanature
================================================
FILE: FotorSDKDemo/.svn/pristine/17/179b81766b82ed39dc92cafa39d3140d117e9637.svn-base
================================================
tableTexturetexturing(5, 8)(36, 51)(115, 145)(201, 220)(255, 255)(6, 9)(67, 83)(169, 190)(255, 255)(3, 3)(55, 60)(177, 190)(255, 255)SRCDSTtableTexture
================================================
FILE: FotorSDKDemo/.svn/pristine/18/1869f22f6b2ae8d22c81f06af763a8f1c48f39bf.svn-base
================================================
SRCDSTGetScale0.010.010.0
================================================
FILE: FotorSDKDemo/.svn/pristine/1b/1bf19c2085868b9447cdf0163855885cc7994c89.svn-base
================================================
SRCTMPquadric0.00.9tableTexturetexturing(0, 0)(89, 44)(179, 189)(222, 255)(0, 0)(64, 64)(185, 212)(255, 255)(0, 23)(255, 217)TMPDSTtableTexture
================================================
FILE: FotorSDKDemo/.svn/pristine/26/2669873f891113a8f45506e825d0215306e95405.svn-base
================================================
# To enable ProGuard in your project, edit project.properties
# to define the proguard.config property as described in that file.
#
# Add project specific ProGuard rules here.
# By default, the flags in this file are appended to flags specified
# in ${sdk.dir}/tools/proguard/proguard-android.txt
# You can edit the include path and order by changing the ProGuard
# include property in project.properties.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
# Add any project specific keep options here:
# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}
================================================
FILE: FotorSDKDemo/.svn/pristine/27/2709b25879bca9f06f1ad9a29b0dc3d38267c407.svn-base
================================================
================================================
FILE: FotorSDKDemo/.svn/pristine/27/275269bd2e1ccac503cb43fc0c7f8efe6ae6f57a.svn-base
================================================
================================================
FILE: FotorSDKDemo/.svn/pristine/27/27e5804d4d2cb888b89e5cfabb6824fcb97950e0.svn-base
================================================
SRClevelGetScale0.010.011.3levelTMPquadric0.00.8tableTexturetexturing(20, 0)(150, 109)(255, 255)(30, 0)(97, 92)(163, 172)(255, 255)(0, 0)(240, 255)TMPDSTtableTexture
================================================
FILE: FotorSDKDemo/.svn/pristine/28/28cc16730e4f03f97e077efa04843148f7f0eb0b.svn-base
================================================
tableTexturetexturing(3, 0)(23, 29)(83, 116)(167, 206)(255, 255)(5, 0)(56, 64)(160, 189)(255, 255)(3, 0)(48, 49)(142, 167)(248, 255)SRCDSTtableTexture
================================================
FILE: FotorSDKDemo/.svn/pristine/2b/2b9183863aa41af4a9ee6872efbec38dbe4ee4c0.svn-base
================================================
128dp
================================================
FILE: FotorSDKDemo/.svn/pristine/2f/2fc798884e09b229a782e7521f0514af17907663.svn-base
================================================
# This file is automatically generated by Android Tools.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file must be checked in Version Control Systems.
#
# To customize properties used by the Ant build system edit
# "ant.properties", and override values to adapt the script to your
# project structure.
#
# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
# Project target.
target=android-19
android.library.reference.1=../FotorSDK
#------ RenderScript Configuration -------
renderscript.target=19
renderscript.support.mode=true
sdk.buildtools=19.0.3
#------ RenderScript Configuration -------
================================================
FILE: FotorSDKDemo/.svn/pristine/32/3228fb7bd14e329a33acb71d67f2161e4d641b3a.svn-base
================================================
SRClevelGetScale0.010.011.3levelTMPquadric0.00.8tableTexturetexturing(33, 10)(255, 255)(0, 15)(86, 94)(171, 194)(255, 255)(0, 20)(255, 235)TMPDSTtableTexture
================================================
FILE: FotorSDKDemo/.svn/pristine/3b/3b76a63e440aecbb07f6d8cf6779ce7f11f02331.svn-base
================================================
package com.example.fotorsdkdemo;
import java.io.File;
import com.everimaging.fotorsdk.FotorConstants;
import com.everimaging.fotorsdk.FotorFeaturesFactory;
import com.everimaging.fotorsdk.FotorSDKActivity;
import com.everimaging.fotorsdk.FotorSDKVersion;
import com.everimaging.fotorsdk.FotorUtils;
import com.everimaging.fotorsdk.provider.FotorContentProvider;
import com.everimaging.fotorsdk.provider.FotorContentProvider.SessionColumns;
import com.everimaging.fotorsdk.provider.FotorContentProvider.SessionColumns.Session;
import com.everimaging.fotorsdk.utils.BitmapDecodeUtils;
import com.everimaging.fotorsdk.utils.Utils;
import com.everimaging.fotorsdk.engine.FotorHDFilter;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnCancelListener;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.media.MediaScannerConnection;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore.Images;
import android.provider.MediaStore.Images.ImageColumns;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
/**
* Sample main activity
*
* @description
*
* @author John.Zhang
* @version 1.0
* @create Apr 12, 2014 3:06:39 PM
* @update Apr 12, 2014 3:06:39 PM
*/
public class MainActivity extends Activity {
private static final int ACTION_REQUEST_FEATURE = 2;
private static final int ACTION_REQUEST_GALLERY = 3;
private static final int EXTERNAL_STORAGE_UNAVAILABLE = 1;
public static final String LOG_TAG = "fotorsdk_demo";
/** Folder name on the sdcard where the images will be saved **/
private static final String FOLDER_NAME = "FotorSDK";
/** Edit sample button */
Button mEditButton;
/** Call gallery button */
Button mGalleryButton;
/** Display image view */
ImageView mImage;
/** The path for output file */
String mOutputFilePath;
/** Image uri for image editor */
Uri mImageUri;
/** Display version label for DEBUG */
private TextView mSDKVersionLabel;
/** The sample image uri. */
private Uri mSampleUri;
private File mGalleryFolder;
/** session id for the hi-res post processing */
private String mSessionId;
@Override
protected void onCreate(Bundle savedInstanceState) {
Log.i(LOG_TAG, "onCreate");
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mEditButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mImageUri != null) {
startFeature(mImageUri);
}
}
});
mGalleryButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
pickFromGallery();
}
});
mGalleryFolder = createFolders();
// add sample image
mSampleUri = Uri.parse("file:///android_asset/sample.jpg");
loadAsync(mSampleUri);
if (BuildConfig.DEBUG) {
mSDKVersionLabel.setText("V" + FotorSDKVersion.FOTOR_SDK_VERSION);
}
}
/**
* Start the activity to pick an image from the user gallery
*/
private void pickFromGallery() {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
Intent chooser = Intent.createChooser(intent, "Choose a Picture");
startActivityForResult(chooser, ACTION_REQUEST_GALLERY);
}
@Override
protected void onResume() {
Log.i(LOG_TAG, "onResume");
super.onResume();
if (getIntent() != null) {
handleIntent(getIntent());
setIntent(new Intent());
}
}
/**
* Handle the incoming {@link Intent}
*/
private void handleIntent(Intent intent) {
String action = intent.getAction();
if (null != action) {
if (Intent.ACTION_SEND.equals(action)) {
Bundle extras = intent.getExtras();
if (extras != null && extras.containsKey(Intent.EXTRA_STREAM)) {
Uri uri = (Uri) extras.get(Intent.EXTRA_STREAM);
loadAsync(uri);
}
} else if (Intent.ACTION_VIEW.equals(action)) {
Uri data = intent.getData();
Log.d(LOG_TAG, "data: " + data);
loadAsync(data);
}
}
}
/**
* Load the incoming Image
*
* @param uri
*/
private void loadAsync(final Uri uri) {
Log.i(LOG_TAG, "loadAsync: " + uri);
Drawable toRecycle = mImage.getDrawable();
if (toRecycle != null && toRecycle instanceof BitmapDrawable) {
if (((BitmapDrawable) mImage.getDrawable()).getBitmap() != null)
((BitmapDrawable) mImage.getDrawable()).getBitmap().recycle();
}
mImage.setImageDrawable(null);
mImageUri = null;
DownloadAsync task = new DownloadAsync();
task.execute(uri);
}
@Override
protected void onDestroy() {
Log.i(LOG_TAG, "onDestroy");
super.onDestroy();
mOutputFilePath = null;
}
@Override
public void onContentChanged() {
super.onContentChanged();
System.out.println("context:" + this.getPackageName());
mEditButton = (Button) findViewById(R.id.button2);
mGalleryButton = (Button) findViewById(R.id.button_gallery);
mImage = (ImageView) findViewById(R.id.image);
mSDKVersionLabel = (TextView) findViewById(R.id.fotor_sdk_version_label);
}
@Override
/**
* This method is called when feather has completed ( ie. user clicked on "done" or just exit the activity without saving ).
* If user clicked the "done" button you'll receive RESULT_OK as resultCode, RESULT_CANCELED otherwise.
*
* @param requestCode
* - it is the code passed with startActivityForResult
* @param resultCode
* - result code of the activity launched ( it can be RESULT_OK or RESULT_CANCELED )
* @param data
* - the result data
*/
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
switch (requestCode) {
case ACTION_REQUEST_FEATURE: {
Uri uri = Uri.parse(mOutputFilePath);
Bitmap bitmap = BitmapDecodeUtils.decodeFile(mOutputFilePath);
setImageURI(uri, bitmap);
new ProcessHDTask(this).execute();
}
break;
case ACTION_REQUEST_GALLERY: {
Uri uri = data.getData();
loadAsync(uri);
startFeature(uri);
}
break;
}
} else if (resultCode == RESULT_CANCELED) {
switch (requestCode) {
case ACTION_REQUEST_FEATURE:
if (mSessionId != null)
deleteSession(mSessionId);
break;
}
}
}
private String onSaveCompletion() {
Uri sessionUri = SessionColumns.getContentUri(this, mSessionId);
Cursor cursor = getContentResolver().query(sessionUri, null, null,
null, null);
Session session = Session.create(cursor);
if (session != null) {
FotorHDFilter fotorHDFilter = new FotorHDFilter(this, session);
fotorHDFilter.loadImage();
fotorHDFilter.executeFilter();
String dstPath = Utils.getSDPath() + "/testOriginal.jpg";
fotorHDFilter.save(dstPath);
fotorHDFilter.dispose();
deleteSession(mSessionId);
return dstPath;
}
return null;
}
class ProcessHDTask extends AsyncTask {
private ProgressDialog mDialog;
private Context mContext;
public ProcessHDTask(Context context) {
this.mContext = context;
}
@Override
protected void onPreExecute() {
mDialog = ProgressDialog.show(mContext, "Process HD",
"Please wait...");
}
@Override
protected String doInBackground(Void... params) {
return onSaveCompletion();
}
@Override
protected void onPostExecute(String result) {
mDialog.dismiss();
String msg = "Process Error";
if (result != null) {
msg = result;
}
Toast.makeText(mContext, msg, Toast.LENGTH_LONG).show();
}
}
/**
* Delete the session and all it's actions. We do not need it anymore.
* Note that this is optional. All old sessions are automatically removed in
* Feather.
*
* @param session_id
*/
private void deleteSession(final String session_id) {
Uri uri = FotorContentProvider.SessionColumns.getContentUri(this,
session_id);
int count = getContentResolver().delete(uri, null, null);
System.out.println("delete session count:" + count);
}
/**
* Given an Uri load the bitmap into the current ImageView and resize it to
* fit the image container size
*
* @param uri
*/
@SuppressWarnings("deprecation")
private boolean setImageURI(final Uri uri, final Bitmap bitmap) {
Log.d(LOG_TAG,
"image size: " + bitmap.getWidth() + "x" + bitmap.getHeight());
mImage.setImageBitmap(bitmap);
mImage.setBackgroundDrawable(null);
mEditButton.setEnabled(true);
mImageUri = uri;
return true;
}
/**
* We need to notify the MediaScanner when a new file is created. In this
* way all the gallery applications will be notified too.
*
* @param file
*/
private void updateMedia(String filepath) {
Log.i(LOG_TAG, "updateMedia: " + filepath);
MediaScannerConnection.scanFile(getApplicationContext(),
new String[] { filepath }, null, null);
}
/**
* Pick a random image from the user gallery
*
* @return
*/
@SuppressWarnings("unused")
private Uri pickRandomImage() {
Cursor c = getContentResolver().query(
Images.Media.EXTERNAL_CONTENT_URI,
new String[] { ImageColumns._ID, ImageColumns.DATA },
ImageColumns.SIZE + ">?", new String[] { "90000" }, null);
Uri uri = null;
if (c != null) {
int total = c.getCount();
int position = (int) (Math.random() * total);
Log.d(LOG_TAG, "pickRandomImage. total images: " + total
+ ", position: " + position);
if (total > 0) {
if (c.moveToPosition(position)) {
String data = c.getString(c
.getColumnIndex(Images.ImageColumns.DATA));
long id = c.getLong(c
.getColumnIndex(Images.ImageColumns._ID));
uri = Uri.parse(data);
Log.d(LOG_TAG, uri.toString());
}
}
c.close();
}
return uri;
}
/**
* Return a new image file. Name is based on the current time. Parent folder
* will be the one created with createFolders
*
* @return
* @see #createFolders()
*/
private File generateOutputFileName() {
if (mGalleryFolder != null) {
if (mGalleryFolder.exists()) {
File file = new File(mGalleryFolder, "Fotor_"
+ System.currentTimeMillis() + ".jpg");
return file;
}
}
return null;
}
/**
* Once you've chosen an image you can start the feather activity
*
* @param uri
*/
@SuppressWarnings("deprecation")
private void startFeature(Uri uri) {
Log.d(LOG_TAG, "uri: " + uri);
// first check the external storage availability
if (!isExternalStorageAvilable()) {
showDialog(EXTERNAL_STORAGE_UNAVAILABLE);
return;
}
// create a temporary file where to store the resulting image
File file = generateOutputFileName();
if (null != file) {
mOutputFilePath = file.getAbsolutePath();
} else {
new AlertDialog.Builder(this)
.setTitle(android.R.string.dialog_alert_title)
.setMessage("Failed to create a new File").show();
return;
}
// Create the intent needed to start feather
Intent newIntent = new Intent(this, FotorSDKActivity.class);
// === INPUT IMAGE URI ===
// Set the source image uri
newIntent.setData(uri);
// === OUTPUT ====
// Optional
// Pass the uri of the destination image file.
// This will be the same uri you will receive in the onActivityResult
System.out.println("mOutputFilePath->:" + mOutputFilePath);
newIntent.putExtra(FotorConstants.EXTRA_OUTPUT_PATH, mOutputFilePath);
// === OUTPUT QUALITY ===
// Optional
newIntent.putExtra(FotorConstants.EXTRA_OUTPUT_QUALITY, 90);
// === MAX SIZE ===
// Optional
// you can pass the maximum allowed image size (for the preview),
// otherwise feather will determine
// the max size based on the device informations.
// This will not affect the hi-res image size.
// Here we're passing the current display size as max image size because
// after
// the execution of Aviary we're saving the HI-RES image so we don't
// need a big
// image for the preview
final DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int max_size = Math.max(metrics.widthPixels, metrics.heightPixels);
max_size = (int) ((float) max_size / 1.4f);
newIntent.putExtra(FotorConstants.EXTRA_MAX_PREVIEW_SIZE, max_size);
mSessionId = FotorUtils.generateSessionId(this);
getContentResolver().delete(
SessionColumns.getContentUri(this, mSessionId), null, null);
Log.d(LOG_TAG,
"session: " + mSessionId + ", size: " + mSessionId.length());
newIntent.putExtra(FotorConstants.EXTRA_FOTOR_SESSION_ID, mSessionId);
// // === FEATURE LIST ===
// newIntent.putExtra(FotorConstants.EXTRA_FEATURE_LIST, new String[] {
// FotorFeaturesFactory.FeatureType.FX_EFFECTS.name(),
// FotorFeaturesFactory.FeatureType.BORDER.name() });
// start feather
startActivityForResult(newIntent, ACTION_REQUEST_FEATURE);
}
/**
* Check the external storage status
*
* @return
*/
private boolean isExternalStorageAvilable() {
String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state)) {
return true;
}
return false;
}
/**
* Try to create the required folder on the sdcard where images will be
* saved to.
*
* @return
*/
private File createFolders() {
File baseDir;
if (android.os.Build.VERSION.SDK_INT < 8) {
baseDir = Environment.getExternalStorageDirectory();
} else {
baseDir = Environment
.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
}
if (baseDir == null)
return Environment.getExternalStorageDirectory();
Log.d(LOG_TAG, "Pictures folder: " + baseDir.getAbsolutePath());
File fotorSDKFolder = new File(baseDir, FOLDER_NAME);
if (fotorSDKFolder.exists())
return fotorSDKFolder;
if (fotorSDKFolder.mkdirs())
return fotorSDKFolder;
return Environment.getExternalStorageDirectory();
}
class DownloadAsync extends AsyncTask implements
OnCancelListener {
ProgressDialog mProgress;
private Uri mUri;
@Override
protected void onPreExecute() {
super.onPreExecute();
mProgress = new ProgressDialog(MainActivity.this);
mProgress.setIndeterminate(true);
mProgress.setCancelable(true);
mProgress.setMessage("Loading image...");
mProgress.setOnCancelListener(this);
mProgress.show();
}
@Override
protected Bitmap doInBackground(Uri... params) {
mUri = params[0];
DisplayMetrics displayMetrics = getResources().getDisplayMetrics();
int maxW = (int) (displayMetrics.widthPixels / 1.5);
int maxH = (int) (displayMetrics.heightPixels / 1.5);
Bitmap bitmap = BitmapDecodeUtils.decode(getApplicationContext(),
mUri, maxW, maxH);
return bitmap;
}
@Override
protected void onPostExecute(Bitmap result) {
super.onPostExecute(result);
if (mProgress.getWindow() != null) {
mProgress.dismiss();
}
if (result != null) {
setImageURI(mUri, result);
} else {
Toast.makeText(MainActivity.this,
"Failed to load image " + mUri, Toast.LENGTH_SHORT)
.show();
}
}
@Override
public void onCancel(DialogInterface dialog) {
Log.i(LOG_TAG, "onProgressCancel");
this.cancel(true);
}
@Override
protected void onCancelled() {
super.onCancelled();
Log.i(LOG_TAG, "onCancelled");
}
}
}
================================================
FILE: FotorSDKDemo/.svn/pristine/3b/3bb5415d1f04c900bd4f8c1e4e7073d6d969d8a5.svn-base
================================================
42M_0.png42M_1.png42M_2.png42M_3.png42M_4.png42M_5.png42M_6.png42M_7.png42M.pngM0.136236200166166166030166196016616619616616630196196166166166196301660196166166016616630
================================================
FILE: FotorSDKDemo/.svn/pristine/3c/3c755b5500ed67e7a115f31d4682bbdbedbb9973.svn-base
================================================
10M_0.png10M_1.png10M_2.png10M_3.png10M_4.png10M_5.png10M_6.png10M_7.png10M.pngM0.081741740072727203072102072721027272301021027272721023072010272720727230
================================================
FILE: FotorSDKDemo/.svn/pristine/3e/3e3d52eea62bb45233f43a2939d14cd6a04db981.svn-base
================================================
tableTexturetexturing0, 4255, 2440, 0255, 2550, 84255, 194SRCDSTtableTexture
================================================
FILE: FotorSDKDemo/.svn/pristine/3e/3e57edbe2aee66098186d9259aaf0d9847723cdf.svn-base
================================================
49S.pngS
================================================
FILE: FotorSDKDemo/.svn/pristine/42/42d8c3015ce203c165397e1607e6f5d1d90ee430.svn-base
================================================
["108.xml","109.xml","110.xml","91.xml","93.xml","6.xml"]
================================================
FILE: FotorSDKDemo/.svn/pristine/47/47444bc050df100e3ecf6da3b32fc3e72cedd3d7.svn-base
================================================
SRClevelGetScale0.010.20.0levelTMPlinear0.00.8TMPDST0.393, 0.769, 0.1890.349, 0.686, 0.1680.272, 0.534, 0.131
================================================
FILE: FotorSDKDemo/.svn/pristine/4c/4c0d320756d2018b3f2c3544923a939b87533800.svn-base
================================================
{
"version": 1,
"category_name": "Classic",
"fonts_array": [{
"font_id": 1,
"font_name": "Droid Sans",
"font_normal": "DroidSans",
"font_bold": "DroidSans-Bold",
"font_italic": "",
"font_bolditalic": ""
},
{
"font_id": 2,
"font_name": "Droid Serif",
"font_normal": "DroidSerif",
"font_bold": "DroidSerif-Bold",
"font_italic": "DroidSerif-Italic",
"font_bolditalic": "DroidSerif-BoldItalic"
},
{
"font_id": 3,
"font_name": "Droid Sans Mono",
"font_normal": "DroidSansMono",
"font_bold": "",
"font_italic": "",
"font_bolditalic": ""
},
{
"font_id": 4,
"font_name": "Roboto Regular",
"font_normal": "Roboto-Regular",
"font_bold": "Roboto-Bold",
"font_italic": "Roboto-Italic",
"font_bolditalic": "Roboto-BoldItalic"
},
{
"font_id": 5,
"font_name": "Roboto Thin",
"font_normal": "Roboto-Thin",
"font_bold": "",
"font_italic": "Roboto-ThinItalic",
"font_bolditalic": ""
},
{
"font_id": 6,
"font_name": "Roboto Condensed",
"font_normal": "RobotoCondensed-Regular",
"font_bold": "RobotoCondensed-Bold",
"font_italic": "RobotoCondensed-Italic",
"font_bolditalic": "RobotoCondensed-BoldItalic"
}
]
}
================================================
FILE: FotorSDKDemo/.svn/pristine/4c/4c32cb13f7e191b3241c44246970ac9d7e713b92.svn-base
================================================
16dp16dp44dip20sp60dip16sp
================================================
FILE: FotorSDKDemo/.svn/pristine/4d/4d34f6dcb70ac598c17e6a49c25a45c02ce62a69.svn-base
================================================
FotorSDKDemoSettingsHello world!
================================================
FILE: FotorSDKDemo/.svn/pristine/4f/4f80723c94375d498af0db25808f75960a2c2473.svn-base
================================================
41M_0.png41M_1.png41M_2.png41M_3.png41M_4.png41M_5.png41M_6.png41M_7.png41M.pngM0.051701700070707003070100070701007070301001007070701003070010070700707030
================================================
FILE: FotorSDKDemo/.svn/pristine/50/503d1f813c4b3f792fefcfe3693e3482ea2dfd77.svn-base
================================================
tableTexturetexturing(0, 4)(39, 103)(134, 223)(242, 255)(0, 3)(31, 85)(68, 155)(131, 255)(219, 255)(0, 3)(42, 110)(114, 207)(255, 255)SRCDSTtableTexture
================================================
FILE: FotorSDKDemo/.svn/pristine/51/51bbccc63169d80f42b31b3562188756e7faf856.svn-base
================================================
tableTexturetexturing(9, 0)(49, 62)(124, 155)(218, 255)(10, 0)(30, 33)(137, 169)(223, 255)(10, 0)(37, 45)(96, 122)(150, 182)(221, 255)SRCDSTtableTexture
================================================
FILE: FotorSDKDemo/.svn/pristine/59/593c2912e1d6e6037ba4ece31b487feb1df3f601.svn-base
================================================
FotorSDKDemoSettingsHello world!Photo EditorSelect an imageEdit sample image
================================================
FILE: FotorSDKDemo/.svn/pristine/60/60179bf9db929e9c2394ab9becc01b3dd3e9bed7.svn-base
================================================
tableTexturetexturing(48, 56)(82, 129)(130, 206)(214, 255)(7, 37)(64, 111)(140, 190)(232, 220)(2, 97)(114, 153)(229, 172)SRCDSTtableTexture
================================================
FILE: FotorSDKDemo/.svn/pristine/60/601d0f18449ea3e367c25c0633849c1a5cf4a39c.svn-base
================================================
tableTexturetexturing(33, 0)(70, 32)(146, 143)(185, 204)(255, 255)(22, 0)(103, 71)(189, 219)(255, 252)(10, 0)(54, 29)(93, 66)(205, 220)(255, 255)SRCDSTtableTexture
================================================
FILE: FotorSDKDemo/.svn/pristine/61/612b00017064ed21957aa415e9840fb677afae93.svn-base
================================================
================================================
FILE: FotorSDKDemo/.svn/pristine/62/62791a9f1067cdb03c5d1028ae0891b663242ef6.svn-base
================================================
SRCTMPGetScale0.010.150.0TMPDSTquadric0.00.8
================================================
FILE: FotorSDKDemo/.svn/pristine/63/6367919ce43bfe92d5479523fec0a5680822c1ca.svn-base
================================================
package com.example.fotorsdkdemo;
import java.io.File;
import com.everimaging.fotorsdk.FotorConstants;
import com.everimaging.fotorsdk.FotorSDKActivity;
import com.everimaging.fotorsdk.FotorSDKVersion;
import com.everimaging.fotorsdk.FotorUtils;
import com.everimaging.fotorsdk.provider.FotorContentProvider;
import com.everimaging.fotorsdk.provider.FotorContentProvider.SessionColumns;
import com.everimaging.fotorsdk.provider.FotorContentProvider.SessionColumns.Session;
import com.everimaging.fotorsdk.utils.BitmapDecodeUtils;
import com.everimaging.fotorsdk.utils.Utils;
import com.everimaging.fotorsdk.engine.FotorHDFilter;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnCancelListener;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.media.MediaScannerConnection;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore.Images;
import android.provider.MediaStore.Images.ImageColumns;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
/**
* Sample main activity
*
* @description
*
* @author John.Zhang
* @version 1.0
* @create Apr 12, 2014 3:06:39 PM
* @update Apr 12, 2014 3:06:39 PM
*/
public class MainActivity extends Activity {
private static final int ACTION_REQUEST_FEATURE = 2;
private static final int ACTION_REQUEST_GALLERY = 3;
public static final String LOG_TAG = "fotorsdk_demo";
/** Folder name on the sdcard where the images will be saved **/
private static final String FOLDER_NAME = "FotorSDK";
/** Edit sample button */
Button mEditButton;
/** Call gallery button */
Button mGalleryButton;
/** Display image view */
ImageView mImage;
/** The path for output file */
Uri mOutputFilePath;
/** Image uri for image editor */
Uri mImageUri;
/** Display version label for DEBUG */
private TextView mSDKVersionLabel;
/** The sample image uri. */
private Uri mSampleUri;
private File mGalleryFolder;
/** session id for the hi-res post processing */
private String mSessionId;
@Override
protected void onCreate(Bundle savedInstanceState) {
Log.i(LOG_TAG, "onCreate");
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mEditButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// if (mImageUri != null) {
// startFeature(mImageUri);
// }
if (mSampleUri != null) {
startFeature(mSampleUri);
}
}
});
mGalleryButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
pickFromGallery();
}
});
mGalleryFolder = createFolders();
// add sample image
mSampleUri = Uri.parse("file:///android_asset/sample.jpg");
loadAsync(mSampleUri);
if (BuildConfig.DEBUG) {
mSDKVersionLabel.setText("V" + FotorSDKVersion.FOTOR_SDK_VERSION);
}
}
/**
* Start the activity to pick an image from the user gallery
*/
private void pickFromGallery() {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
Intent chooser = Intent.createChooser(intent, "Choose a Picture");
startActivityForResult(chooser, ACTION_REQUEST_GALLERY);
}
@Override
protected void onResume() {
Log.i(LOG_TAG, "onResume");
super.onResume();
if (getIntent() != null) {
handleIntent(getIntent());
setIntent(new Intent());
}
}
/**
* Handle the incoming {@link Intent}
*/
private void handleIntent(Intent intent) {
String action = intent.getAction();
if (null != action) {
if (Intent.ACTION_SEND.equals(action)) {
Bundle extras = intent.getExtras();
if (extras != null && extras.containsKey(Intent.EXTRA_STREAM)) {
Uri uri = (Uri) extras.get(Intent.EXTRA_STREAM);
loadAsync(uri);
}
} else if (Intent.ACTION_VIEW.equals(action)) {
Uri data = intent.getData();
Log.d(LOG_TAG, "data: " + data);
loadAsync(data);
}
}
}
/**
* Load the incoming Image
*
* @param uri
*/
private void loadAsync(final Uri uri) {
Log.i(LOG_TAG, "loadAsync: " + uri);
Drawable toRecycle = mImage.getDrawable();
if (toRecycle != null && toRecycle instanceof BitmapDrawable) {
if (((BitmapDrawable) mImage.getDrawable()).getBitmap() != null)
((BitmapDrawable) mImage.getDrawable()).getBitmap().recycle();
}
mImage.setImageDrawable(null);
mImageUri = null;
DownloadAsync task = new DownloadAsync();
task.execute(uri);
}
@Override
protected void onDestroy() {
Log.i(LOG_TAG, "onDestroy");
super.onDestroy();
mOutputFilePath = null;
}
@Override
public void onContentChanged() {
super.onContentChanged();
System.out.println("context:" + this.getPackageName());
mEditButton = (Button) findViewById(R.id.button2);
mGalleryButton = (Button) findViewById(R.id.button_gallery);
mImage = (ImageView) findViewById(R.id.image);
mSDKVersionLabel = (TextView) findViewById(R.id.fotor_sdk_version_label);
}
@Override
/**
* This method is called when feather has completed ( ie. user clicked on "done" or just exit the activity without saving ).
* If user clicked the "done" button you'll receive RESULT_OK as resultCode, RESULT_CANCELED otherwise.
*
* @param requestCode
* - it is the code passed with startActivityForResult
* @param resultCode
* - result code of the activity launched ( it can be RESULT_OK or RESULT_CANCELED )
* @param data
* - the result data
*/
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
switch (requestCode) {
case ACTION_REQUEST_FEATURE: {
Uri uri = data.getData();
Bitmap bitmap = BitmapDecodeUtils.decode(this, uri, 0, 0);
setImageURI(uri, bitmap);
new ProcessHDTask(this).execute();
}
break;
case ACTION_REQUEST_GALLERY: {
Uri uri = data.getData();
loadAsync(uri);
startFeature(uri);
}
break;
}
} else if (resultCode == RESULT_CANCELED) {
switch (requestCode) {
case ACTION_REQUEST_FEATURE:
if (mSessionId != null)
deleteSession(mSessionId);
break;
}
}
}
private String onSaveCompletion() {
Uri sessionUri = SessionColumns.getContentUri(this, mSessionId);
Cursor cursor = getContentResolver().query(sessionUri, null, null,
null, null);
Session session = Session.create(cursor);
if (session != null) {
FotorHDFilter fotorHDFilter = new FotorHDFilter(this, session);
fotorHDFilter.loadImage();
fotorHDFilter.executeFilter();
String dstPath = Utils.getSDPath() + "/testOriginal.jpg";
fotorHDFilter.save(dstPath);
fotorHDFilter.dispose();
deleteSession(mSessionId);
return dstPath;
}
return null;
}
class ProcessHDTask extends AsyncTask {
private ProgressDialog mDialog;
private Context mContext;
public ProcessHDTask(Context context) {
this.mContext = context;
}
@Override
protected void onPreExecute() {
mDialog = ProgressDialog.show(mContext, "Process HD",
"Please wait...");
}
@Override
protected String doInBackground(Void... params) {
return onSaveCompletion();
}
@Override
protected void onPostExecute(String result) {
mDialog.dismiss();
String msg = "Process Error";
if (result != null) {
msg = result;
}
Toast.makeText(mContext, msg, Toast.LENGTH_LONG).show();
}
}
/**
* Delete the session and all it's actions. We do not need it anymore.
* Note that this is optional. All old sessions are automatically removed in
* Feather.
*
* @param session_id
*/
private void deleteSession(final String session_id) {
Uri uri = FotorContentProvider.SessionColumns.getContentUri(this,
session_id);
int count = getContentResolver().delete(uri, null, null);
System.out.println("delete session count:" + count);
}
/**
* Given an Uri load the bitmap into the current ImageView and resize it to
* fit the image container size
*
* @param uri
*/
@SuppressWarnings("deprecation")
private boolean setImageURI(final Uri uri, final Bitmap bitmap) {
Log.d(LOG_TAG,
"image size: " + bitmap.getWidth() + "x" + bitmap.getHeight());
mImage.setImageBitmap(bitmap);
mImage.setBackgroundDrawable(null);
mEditButton.setEnabled(true);
mImageUri = uri;
return true;
}
/**
* We need to notify the MediaScanner when a new file is created. In this
* way all the gallery applications will be notified too.
*
* @param file
*/
private void updateMedia(String filepath) {
Log.i(LOG_TAG, "updateMedia: " + filepath);
MediaScannerConnection.scanFile(getApplicationContext(),
new String[] { filepath }, null, null);
}
/**
* Pick a random image from the user gallery
*
* @return
*/
@SuppressWarnings("unused")
private Uri pickRandomImage() {
Cursor c = getContentResolver().query(
Images.Media.EXTERNAL_CONTENT_URI,
new String[] { ImageColumns._ID, ImageColumns.DATA },
ImageColumns.SIZE + ">?", new String[] { "90000" }, null);
Uri uri = null;
if (c != null) {
int total = c.getCount();
int position = (int) (Math.random() * total);
Log.d(LOG_TAG, "pickRandomImage. total images: " + total
+ ", position: " + position);
if (total > 0) {
if (c.moveToPosition(position)) {
String data = c.getString(c
.getColumnIndex(Images.ImageColumns.DATA));
long id = c.getLong(c
.getColumnIndex(Images.ImageColumns._ID));
uri = Uri.parse(data);
Log.d(LOG_TAG, uri.toString());
}
}
c.close();
}
return uri;
}
/**
* Return a new image file. Name is based on the current time. Parent folder
* will be the one created with createFolders
*
* @return
* @see #createFolders()
*/
private File generateOutputFileName() {
if (mGalleryFolder != null) {
if (mGalleryFolder.exists()) {
File file = new File(mGalleryFolder, "Fotor_"
+ System.currentTimeMillis() + ".jpg");
return file;
}
}
return null;
}
/**
* Once you've chosen an image you can start the feather activity
*
* @param uri
*/
private void startFeature(Uri uri) {
Log.d(LOG_TAG, "uri: " + uri);
// first check the external storage availability
if (!isExternalStorageAvilable()) {
new AlertDialog.Builder(this)
.setTitle(android.R.string.dialog_alert_title)
.setMessage("External Storage is not avilable").show();
return;
}
// create a temporary file where to store the resulting image
File file = generateOutputFileName();
if (null != file) {
mOutputFilePath = Uri.fromFile(file);
} else {
new AlertDialog.Builder(this)
.setTitle(android.R.string.dialog_alert_title)
.setMessage("Failed to create a new File").show();
return;
}
// Create the intent needed to start feather
Intent newIntent = new Intent(this, FotorSDKActivity.class);
// === INPUT IMAGE URI ===
// Set the source image uri
newIntent.setData(uri);
// === OUTPUT ====
// Optional
// Pass the uri of the destination image file.
// This will be the same uri you will receive in the onActivityResult
System.out.println("mOutputFilePath->:" + mOutputFilePath);
// newIntent.putExtra(FotorConstants.EXTRA_OUTPUT_PATH,
// mOutputFilePath);
// === OUTPUT QUALITY ===
// Optional
newIntent.putExtra(FotorConstants.EXTRA_OUTPUT_QUALITY, 90);
// === MAX SIZE ===
// Optional
// you can pass the maximum allowed image size (for the preview),
// otherwise feather will determine
// the max size based on the device informations.
// This will not affect the hi-res image size.
// Here we're passing the current display size as max image size because
// after
// the execution of Aviary we're saving the HI-RES image so we don't
// need a big
// image for the preview
final DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int max_size = Math.max(metrics.widthPixels, metrics.heightPixels);
max_size = (int) ((float) max_size / 1.4f);
newIntent.putExtra(FotorConstants.EXTRA_MAX_PREVIEW_SIZE, max_size);
mSessionId = FotorUtils.generateSessionId(this);
getContentResolver().delete(
SessionColumns.getContentUri(this, mSessionId), null, null);
Log.d(LOG_TAG,
"session: " + mSessionId + ", size: " + mSessionId.length());
newIntent.putExtra(FotorConstants.EXTRA_FOTOR_SESSION_ID, mSessionId);
// // === FEATURE LIST ===
// newIntent.putExtra(FotorConstants.EXTRA_FEATURE_LIST, new String[] {
// FotorFeaturesFactory.FeatureType.FX_EFFECTS.name(),
// FotorFeaturesFactory.FeatureType.BORDER.name() });
// Whether hide confirm dialog when user not saved the was changed
// bitmap
// This default value will show
// newIntent.putExtra(FotorConstants.EXTRA_HIDE_DISCARD_ALERT, false);
// Whether input image no changes,were made to the image.
// newIntent.putExtra(FotorConstants.EXTRA_SAVE_ON_NO_CHANGES, true);
// start feather
startActivityForResult(newIntent, ACTION_REQUEST_FEATURE);
}
/**
* Check the external storage status
*
* @return
*/
private boolean isExternalStorageAvilable() {
String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state)) {
return true;
}
return false;
}
/**
* Try to create the required folder on the sdcard where images will be
* saved to.
*
* @return
*/
private File createFolders() {
File baseDir;
if (android.os.Build.VERSION.SDK_INT < 8) {
baseDir = Environment.getExternalStorageDirectory();
} else {
baseDir = Environment
.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
}
if (baseDir == null)
return Environment.getExternalStorageDirectory();
Log.d(LOG_TAG, "Pictures folder: " + baseDir.getAbsolutePath());
File fotorSDKFolder = new File(baseDir, FOLDER_NAME);
if (fotorSDKFolder.exists())
return fotorSDKFolder;
if (fotorSDKFolder.mkdirs())
return fotorSDKFolder;
return Environment.getExternalStorageDirectory();
}
class DownloadAsync extends AsyncTask implements
OnCancelListener {
ProgressDialog mProgress;
private Uri mUri;
@Override
protected void onPreExecute() {
super.onPreExecute();
mProgress = new ProgressDialog(MainActivity.this);
mProgress.setIndeterminate(true);
mProgress.setCancelable(true);
mProgress.setMessage("Loading image...");
mProgress.setOnCancelListener(this);
mProgress.show();
}
@Override
protected Bitmap doInBackground(Uri... params) {
mUri = params[0];
DisplayMetrics displayMetrics = getResources().getDisplayMetrics();
int maxW = (int) displayMetrics.widthPixels;
int maxH = (int) displayMetrics.heightPixels;
Bitmap bitmap = BitmapDecodeUtils.decode(getApplicationContext(),
mUri, maxW, maxH);
return bitmap;
}
@Override
protected void onPostExecute(Bitmap result) {
super.onPostExecute(result);
if (mProgress.getWindow() != null) {
mProgress.dismiss();
}
if (result != null) {
setImageURI(mUri, result);
} else {
Toast.makeText(MainActivity.this,
"Failed to load image " + mUri, Toast.LENGTH_SHORT)
.show();
}
}
@Override
public void onCancel(DialogInterface dialog) {
Log.i(LOG_TAG, "onProgressCancel");
this.cancel(true);
}
@Override
protected void onCancelled() {
super.onCancelled();
Log.i(LOG_TAG, "onCancelled");
}
}
}
================================================
FILE: FotorSDKDemo/.svn/pristine/66/6697aafe3ac76941b99f9c07c26a770eb1b266df.svn-base
================================================
================================================
FILE: FotorSDKDemo/.svn/pristine/68/68431f32b8d9d7f351e3590a2e8101e9b8d4c84f.svn-base
================================================
tableTexturetexturing(4, 4)(38, 38)(146, 146)(201, 202)(255, 255)(0, 0)(80, 74)(192, 187)(255, 255)(0, 0)(58, 58)(183, 184)(255, 255)SRCDSTtableTexture
================================================
FILE: FotorSDKDemo/.svn/pristine/68/68bcd275b049a2bb1d5cd85ca80e93beee19f2f1.svn-base
================================================
vtg.pngtableTexture1texturing(16, 25)(59, 77)(101, 143)(173, 211)(255, 237)(24, 7)(85, 73)(124, 149)(185, 207)(249, 229)(30, 7)(105, 78)(150, 148)(200, 193)(255, 204)tableTexture2texturing(16, 40)(52, 111)(124, 194)(172, 224)(231, 252)(19, 5)(71, 84)(110, 145)(167, 212)(222, 250)(21, 4)(67, 50)(143, 167)(237, 228)SRCtableTexture1dst_aSRCtableTexture2dst_bdst_adst_bspecialAlphaTexture
================================================
FILE: FotorSDKDemo/.svn/pristine/70/7068771eeeda8df42bcb7520bc3f53472f83f0bb.svn-base
================================================
package com.example.fotorsdkdemo;
import java.io.File;
import com.everimaging.fotorsdk.FotorConstants;
import com.everimaging.fotorsdk.FotorSDKActivity;
import com.everimaging.fotorsdk.FotorUtils;
import com.everimaging.fotorsdk.provider.FotorContentProvider;
import com.everimaging.fotorsdk.provider.FotorContentProvider.ActionsColumns.Action;
import com.everimaging.fotorsdk.provider.FotorContentProvider.ActionsColumns;
import com.everimaging.fotorsdk.provider.FotorContentProvider.SessionColumns;
import com.everimaging.fotorsdk.provider.FotorContentProvider.SessionColumns.Session;
import com.everimaging.fotorsdk.utils.BitmapDecodeUtils;
import com.everimaging.fotorsdk.utils.Utils;
import java.util.ArrayList;
import java.util.List;
import com.everimaging.fotorsdk.engine.FotorHDFilter;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnCancelListener;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.media.MediaScannerConnection;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore.Images;
import android.provider.MediaStore.Images.ImageColumns;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.View;
import android.view.View.OnLongClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Toast;
public class MainActivity extends Activity {
private static final int ACTION_REQUEST_FEATURE = 2;
private static final int ACTION_REQUEST_GALLERY = 3;
private static final int EXTERNAL_STORAGE_UNAVAILABLE = 1;
public static final String LOG_TAG = "fotorsdk_demo";
/** Folder name on the sdcard where the images will be saved **/
private static final String FOLDER_NAME = "FotorSDK";
Button mEditButton;
Button mGalleryButton;
ImageView mImage;
String mOutputFilePath;
Uri mImageUri;
private Uri mSampleUri;
private File mGalleryFolder;
/** session id for the hi-res post processing */
private String mSessionId;
@Override
protected void onCreate(Bundle savedInstanceState) {
Log.i(LOG_TAG, "onCreate");
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mEditButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mImageUri != null) {
startFeature(mImageUri);
}
}
});
mGalleryButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
pickFromGallery();
}
});
mGalleryFolder = createFolders();
// add sample image
mSampleUri = Uri.parse("file:///android_asset/sample.jpg");
loadAsync(mSampleUri);
}
/**
* Start the activity to pick an image from the user gallery
*/
private void pickFromGallery() {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
Intent chooser = Intent.createChooser(intent, "Choose a Picture");
startActivityForResult(chooser, ACTION_REQUEST_GALLERY);
}
@Override
protected void onResume() {
Log.i(LOG_TAG, "onResume");
super.onResume();
if (getIntent() != null) {
handleIntent(getIntent());
setIntent(new Intent());
}
}
/**
* Handle the incoming {@link Intent}
*/
private void handleIntent(Intent intent) {
String action = intent.getAction();
if (null != action) {
if (Intent.ACTION_SEND.equals(action)) {
Bundle extras = intent.getExtras();
if (extras != null && extras.containsKey(Intent.EXTRA_STREAM)) {
Uri uri = (Uri) extras.get(Intent.EXTRA_STREAM);
loadAsync(uri);
}
} else if (Intent.ACTION_VIEW.equals(action)) {
Uri data = intent.getData();
Log.d(LOG_TAG, "data: " + data);
loadAsync(data);
}
}
}
/**
* Load the incoming Image
*
* @param uri
*/
private void loadAsync(final Uri uri) {
Log.i(LOG_TAG, "loadAsync: " + uri);
Drawable toRecycle = mImage.getDrawable();
if (toRecycle != null && toRecycle instanceof BitmapDrawable) {
if (((BitmapDrawable) mImage.getDrawable()).getBitmap() != null)
((BitmapDrawable) mImage.getDrawable()).getBitmap().recycle();
}
mImage.setImageDrawable(null);
mImageUri = null;
DownloadAsync task = new DownloadAsync();
task.execute(uri);
}
@Override
protected void onDestroy() {
Log.i(LOG_TAG, "onDestroy");
super.onDestroy();
mOutputFilePath = null;
}
@Override
public void onContentChanged() {
super.onContentChanged();
System.out.println("context:" + this.getPackageName());
mEditButton = (Button) findViewById(R.id.button2);
mGalleryButton = (Button) findViewById(R.id.button_gallery);
mImage = (ImageView) findViewById(R.id.image);
}
@Override
/**
* This method is called when feather has completed ( ie. user clicked on "done" or just exit the activity without saving ).
* If user clicked the "done" button you'll receive RESULT_OK as resultCode, RESULT_CANCELED otherwise.
*
* @param requestCode
* - it is the code passed with startActivityForResult
* @param resultCode
* - result code of the activity launched ( it can be RESULT_OK or RESULT_CANCELED )
* @param data
* - the result data
*/
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
switch (requestCode) {
case ACTION_REQUEST_FEATURE: {
Uri uri = Uri.parse(mOutputFilePath);
Bitmap bitmap = BitmapDecodeUtils.decodeFile(mOutputFilePath);
setImageURI(uri, bitmap);
new ProcessHDTask(this).execute();
}
break;
case ACTION_REQUEST_GALLERY: {
Uri uri = data.getData();
loadAsync(uri);
startFeature(uri);
}
break;
}
} else if (resultCode == RESULT_CANCELED) {
switch (requestCode) {
case ACTION_REQUEST_FEATURE:
if (mSessionId != null)
deleteSession(mSessionId);
break;
}
}
}
private String onSaveCompletion() {
Cursor cursor = getContentResolver().query(
ActionsColumns.getContentUri(this, mSessionId), null, null,
null, null);
if (cursor != null && cursor.getCount() > 0) {
List actions = new ArrayList();
while (cursor.moveToNext()) {
Action action = Action.create(cursor);
System.out.println("action:" + action);
actions.add(action);
}
cursor.close();
} else {
System.out.println("cursor doesn't have datas.");
}
Cursor cursor2 = getContentResolver().query(
SessionColumns.getContentUri(this, mSessionId), null, null,
null, null);
Session session = Session.create(cursor2);
if (session != null) {
FotorHDFilter fotorHDFilter = new FotorHDFilter(this, mSessionId);
fotorHDFilter.loadImage(session.file_name);
fotorHDFilter.executeFilter();
String dstPath = Utils.getSDPath() + "/testOriginal.jpg";
fotorHDFilter.save(dstPath);
fotorHDFilter.dispose();
deleteSession(mSessionId);
return dstPath;
}
return null;
}
class ProcessHDTask extends AsyncTask {
private ProgressDialog mDialog;
private Context mContext;
public ProcessHDTask(Context context) {
this.mContext = context;
}
@Override
protected void onPreExecute() {
mDialog = ProgressDialog.show(mContext, "Process HD",
"Please wait...");
}
@Override
protected String doInBackground(Void... params) {
return onSaveCompletion();
}
@Override
protected void onPostExecute(String result) {
mDialog.dismiss();
String msg = "Process Error";
if (result != null) {
msg = result;
}
Toast.makeText(mContext, msg, Toast.LENGTH_LONG).show();
}
}
/**
* Delete the session and all it's actions. We do not need it anymore.
* Note that this is optional. All old sessions are automatically removed in
* Feather.
*
* @param session_id
*/
private void deleteSession(final String session_id) {
Uri uri = FotorContentProvider.SessionColumns.getContentUri(this,
session_id);
int count = getContentResolver().delete(uri, null, null);
System.out.println("delete session count:" + count);
}
/**
* Given an Uri load the bitmap into the current ImageView and resize it to
* fit the image container size
*
* @param uri
*/
@SuppressWarnings("deprecation")
private boolean setImageURI(final Uri uri, final Bitmap bitmap) {
Log.d(LOG_TAG,
"image size: " + bitmap.getWidth() + "x" + bitmap.getHeight());
mImage.setImageBitmap(bitmap);
mImage.setBackgroundDrawable(null);
mEditButton.setEnabled(true);
mImageUri = uri;
return true;
}
/**
* We need to notify the MediaScanner when a new file is created. In this
* way all the gallery applications will be notified too.
*
* @param file
*/
private void updateMedia(String filepath) {
Log.i(LOG_TAG, "updateMedia: " + filepath);
MediaScannerConnection.scanFile(getApplicationContext(),
new String[] { filepath }, null, null);
}
/**
* Pick a random image from the user gallery
*
* @return
*/
@SuppressWarnings("unused")
private Uri pickRandomImage() {
Cursor c = getContentResolver().query(
Images.Media.EXTERNAL_CONTENT_URI,
new String[] { ImageColumns._ID, ImageColumns.DATA },
ImageColumns.SIZE + ">?", new String[] { "90000" }, null);
Uri uri = null;
if (c != null) {
int total = c.getCount();
int position = (int) (Math.random() * total);
Log.d(LOG_TAG, "pickRandomImage. total images: " + total
+ ", position: " + position);
if (total > 0) {
if (c.moveToPosition(position)) {
String data = c.getString(c
.getColumnIndex(Images.ImageColumns.DATA));
long id = c.getLong(c
.getColumnIndex(Images.ImageColumns._ID));
uri = Uri.parse(data);
Log.d(LOG_TAG, uri.toString());
}
}
c.close();
}
return uri;
}
/**
* Return a new image file. Name is based on the current time. Parent folder
* will be the one created with createFolders
*
* @return
* @see #createFolders()
*/
private File generateOutputFileName() {
if (mGalleryFolder != null) {
if (mGalleryFolder.exists()) {
File file = new File(mGalleryFolder, "Fotor_"
+ System.currentTimeMillis() + ".jpg");
return file;
}
}
return null;
}
/**
* Once you've chosen an image you can start the feather activity
*
* @param uri
*/
@SuppressWarnings("deprecation")
private void startFeature(Uri uri) {
Log.d(LOG_TAG, "uri: " + uri);
// first check the external storage availability
if (!isExternalStorageAvilable()) {
showDialog(EXTERNAL_STORAGE_UNAVAILABLE);
return;
}
// create a temporary file where to store the resulting image
File file = generateOutputFileName();
if (null != file) {
mOutputFilePath = file.getAbsolutePath();
} else {
new AlertDialog.Builder(this)
.setTitle(android.R.string.dialog_alert_title)
.setMessage("Failed to create a new File").show();
return;
}
// Create the intent needed to start feather
Intent newIntent = new Intent(this, FotorSDKActivity.class);
// === INPUT IMAGE URI ===
// Set the source image uri
newIntent.setData(uri);
// === OUTPUT ====
// Optional
// Pass the uri of the destination image file.
// This will be the same uri you will receive in the onActivityResult
System.out.println("mOutputFilePath->:" + mOutputFilePath);
newIntent.putExtra(FotorConstants.EXTRA_OUTPUT_PATH, mOutputFilePath);
// === OUTPUT QUALITY ===
// Optional
newIntent.putExtra(FotorConstants.EXTRA_OUTPUT_QUALITY, 90);
// === MAX SIZE ===
// Optional
// you can pass the maximum allowed image size (for the preview),
// otherwise feather will determine
// the max size based on the device informations.
// This will not affect the hi-res image size.
// Here we're passing the current display size as max image size because
// after
// the execution of Aviary we're saving the HI-RES image so we don't
// need a big
// image for the preview
final DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int max_size = Math.max(metrics.widthPixels, metrics.heightPixels);
max_size = (int) ((float) max_size / 1.4f);
newIntent.putExtra(FotorConstants.EXTRA_MAX_PREVIEW_SIZE, max_size);
mSessionId = FotorUtils.generateSessionId(this);
getContentResolver().delete(
SessionColumns.getContentUri(this, mSessionId), null, null);
Log.d(LOG_TAG,
"session: " + mSessionId + ", size: " + mSessionId.length());
newIntent.putExtra(FotorConstants.EXTRA_FOTOR_SESSION_ID, mSessionId);
// === FEATURE LIST ===
// newIntent.putExtra(FotorConstants.EXTRA_FEATURE_LIST, new String[] {
// FotorFeaturesFactory.FeatureType.FX_EFFECTS.name(),
// FotorFeaturesFactory.FeatureType.BORDER.name() });
// start feather
startActivityForResult(newIntent, ACTION_REQUEST_FEATURE);
}
/**
* Check the external storage status
*
* @return
*/
private boolean isExternalStorageAvilable() {
String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state)) {
return true;
}
return false;
}
/**
* Try to create the required folder on the sdcard where images will be
* saved to.
*
* @return
*/
private File createFolders() {
File baseDir;
if (android.os.Build.VERSION.SDK_INT < 8) {
baseDir = Environment.getExternalStorageDirectory();
} else {
baseDir = Environment
.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
}
if (baseDir == null)
return Environment.getExternalStorageDirectory();
Log.d(LOG_TAG, "Pictures folder: " + baseDir.getAbsolutePath());
File fotorSDKFolder = new File(baseDir, FOLDER_NAME);
if (fotorSDKFolder.exists())
return fotorSDKFolder;
if (fotorSDKFolder.mkdirs())
return fotorSDKFolder;
return Environment.getExternalStorageDirectory();
}
class DownloadAsync extends AsyncTask implements
OnCancelListener {
ProgressDialog mProgress;
private Uri mUri;
@Override
protected void onPreExecute() {
super.onPreExecute();
mProgress = new ProgressDialog(MainActivity.this);
mProgress.setIndeterminate(true);
mProgress.setCancelable(true);
mProgress.setMessage("Loading image...");
mProgress.setOnCancelListener(this);
mProgress.show();
}
@Override
protected Bitmap doInBackground(Uri... params) {
mUri = params[0];
DisplayMetrics displayMetrics = getResources().getDisplayMetrics();
int maxW = (int) (displayMetrics.widthPixels / 1.5);
int maxH = (int) (displayMetrics.heightPixels / 1.5);
Bitmap bitmap = BitmapDecodeUtils.decode(getApplicationContext(),
mUri, maxW, maxH);
return bitmap;
}
@Override
protected void onPostExecute(Bitmap result) {
super.onPostExecute(result);
if (mProgress.getWindow() != null) {
mProgress.dismiss();
}
if (result != null) {
setImageURI(mUri, result);
} else {
Toast.makeText(MainActivity.this,
"Failed to load image " + mUri, Toast.LENGTH_SHORT)
.show();
}
}
@Override
public void onCancel(DialogInterface dialog) {
Log.i(LOG_TAG, "onProgressCancel");
this.cancel(true);
}
@Override
protected void onCancelled() {
super.onCancelled();
Log.i(LOG_TAG, "onCancelled");
}
}
}
================================================
FILE: FotorSDKDemo/.svn/pristine/73/73aeadd07a4bf19a75548d38c69e16ad772cc336.svn-base
================================================
tableTexturetexturing(0, 0)(69, 63)(105, 138)(151, 222)(255, 255)(0, 0)(67, 51)(135, 191)(255, 255)(0, 0)(86, 76)(150, 212)(255, 255)SRCDSTtableTexture
================================================
FILE: FotorSDKDemo/.svn/pristine/73/73b168548249c4b9413f7457a66ba5b03df649bd.svn-base
================================================
SRClevelGetScale0.010.011.3levelTMPquadric0.01.0tableTexturetexturing(0, 31)(106, 121)(255, 196)(0, 11)(64, 95)(132, 140)(255, 229)(0, 0)(157, 156)(255, 210)TMPDSTtableTexture
================================================
FILE: FotorSDKDemo/.svn/pristine/73/73d74fd28b870be544e505b67990814bf8cfeeeb.svn-base
================================================
package com.example.fotorsdkdemo;
import java.io.File;
import com.everimaging.fotorsdk.FotorConstants;
import com.everimaging.fotorsdk.FotorSDKActivity;
import com.everimaging.fotorsdk.FotorSDKVersion;
import com.everimaging.fotorsdk.FotorUtils;
import com.everimaging.fotorsdk.provider.FotorContentProvider;
import com.everimaging.fotorsdk.provider.FotorContentProvider.SessionColumns;
import com.everimaging.fotorsdk.provider.FotorContentProvider.SessionColumns.Session;
import com.everimaging.fotorsdk.utils.BitmapDecodeUtils;
import com.everimaging.fotorsdk.utils.Utils;
import com.everimaging.fotorsdk.engine.FotorHDFilter;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnCancelListener;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.media.MediaScannerConnection;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore.Images;
import android.provider.MediaStore.Images.ImageColumns;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
/**
* Sample main activity
*
* @description
*
* @author John.Zhang
* @version 1.0
* @create Apr 12, 2014 3:06:39 PM
* @update Apr 12, 2014 3:06:39 PM
*/
public class MainActivity extends Activity {
private static final int ACTION_REQUEST_FEATURE = 2;
private static final int ACTION_REQUEST_GALLERY = 3;
public static final String LOG_TAG = "fotorsdk_demo";
/** Folder name on the sdcard where the images will be saved **/
private static final String FOLDER_NAME = "FotorSDK";
/** Edit sample button */
Button mEditButton;
/** Call gallery button */
Button mGalleryButton;
/** Display image view */
ImageView mImage;
/** The path for output file */
Uri mOutputFilePath;
/** Image uri for image editor */
Uri mImageUri;
/** Display version label for DEBUG */
private TextView mSDKVersionLabel;
/** The sample image uri. */
private Uri mSampleUri;
private File mGalleryFolder;
/** session id for the hi-res post processing */
private String mSessionId;
@Override
protected void onCreate(Bundle savedInstanceState) {
Log.i(LOG_TAG, "onCreate");
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mEditButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// if (mImageUri != null) {
// startFeature(mImageUri);
// }
if (mSampleUri != null) {
startFeature(mSampleUri);
}
}
});
mGalleryButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
pickFromGallery();
}
});
mGalleryFolder = createFolders();
// add sample image
mSampleUri = Uri.parse("file:///android_asset/sample.jpg");
loadAsync(mSampleUri);
if (BuildConfig.DEBUG) {
mSDKVersionLabel.setText("V" + FotorSDKVersion.FOTOR_SDK_VERSION);
}
}
/**
* Start the activity to pick an image from the user gallery
*/
private void pickFromGallery() {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
Intent chooser = Intent.createChooser(intent, "Choose a Picture");
startActivityForResult(chooser, ACTION_REQUEST_GALLERY);
}
@Override
protected void onResume() {
Log.i(LOG_TAG, "onResume");
super.onResume();
if (getIntent() != null) {
handleIntent(getIntent());
setIntent(new Intent());
}
}
/**
* Handle the incoming {@link Intent}
*/
private void handleIntent(Intent intent) {
String action = intent.getAction();
if (null != action) {
if (Intent.ACTION_SEND.equals(action)) {
Bundle extras = intent.getExtras();
if (extras != null && extras.containsKey(Intent.EXTRA_STREAM)) {
Uri uri = (Uri) extras.get(Intent.EXTRA_STREAM);
loadAsync(uri);
}
} else if (Intent.ACTION_VIEW.equals(action)) {
Uri data = intent.getData();
Log.d(LOG_TAG, "data: " + data);
loadAsync(data);
}
}
}
/**
* Load the incoming Image
*
* @param uri
*/
private void loadAsync(final Uri uri) {
Log.i(LOG_TAG, "loadAsync: " + uri);
Drawable toRecycle = mImage.getDrawable();
if (toRecycle != null && toRecycle instanceof BitmapDrawable) {
if (((BitmapDrawable) mImage.getDrawable()).getBitmap() != null)
((BitmapDrawable) mImage.getDrawable()).getBitmap().recycle();
}
mImage.setImageDrawable(null);
mImageUri = null;
DownloadAsync task = new DownloadAsync();
task.execute(uri);
}
@Override
protected void onDestroy() {
Log.i(LOG_TAG, "onDestroy");
super.onDestroy();
mOutputFilePath = null;
}
@Override
public void onContentChanged() {
super.onContentChanged();
System.out.println("context:" + this.getPackageName());
mEditButton = (Button) findViewById(R.id.button2);
mGalleryButton = (Button) findViewById(R.id.button_gallery);
mImage = (ImageView) findViewById(R.id.image);
mSDKVersionLabel = (TextView) findViewById(R.id.fotor_sdk_version_label);
}
@Override
/**
* This method is called when feather has completed ( ie. user clicked on "done" or just exit the activity without saving ).
* If user clicked the "done" button you'll receive RESULT_OK as resultCode, RESULT_CANCELED otherwise.
*
* @param requestCode
* - it is the code passed with startActivityForResult
* @param resultCode
* - result code of the activity launched ( it can be RESULT_OK or RESULT_CANCELED )
* @param data
* - the result data
*/
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
switch (requestCode) {
case ACTION_REQUEST_FEATURE: {
Uri uri = data.getData();
Bitmap bitmap = BitmapDecodeUtils.decode(this, uri, 0, 0);
setImageURI(uri, bitmap);
new ProcessHDTask(this).execute();
}
break;
case ACTION_REQUEST_GALLERY: {
Uri uri = data.getData();
loadAsync(uri);
startFeature(uri);
}
break;
}
} else if (resultCode == RESULT_CANCELED) {
switch (requestCode) {
case ACTION_REQUEST_FEATURE:
if (mSessionId != null)
deleteSession(mSessionId);
break;
}
}
}
private String onSaveCompletion() {
Uri sessionUri = SessionColumns.getContentUri(this, mSessionId);
Cursor cursor = getContentResolver().query(sessionUri, null, null,
null, null);
Session session = Session.create(cursor);
if (session != null) {
FotorHDFilter fotorHDFilter = new FotorHDFilter(this, session);
fotorHDFilter.loadImage();
fotorHDFilter.executeFilter();
String dstPath = Utils.getSDPath() + "/testOriginal.jpg";
fotorHDFilter.save(dstPath);
fotorHDFilter.dispose();
deleteSession(mSessionId);
return dstPath;
}
return null;
}
class ProcessHDTask extends AsyncTask {
private ProgressDialog mDialog;
private Context mContext;
public ProcessHDTask(Context context) {
this.mContext = context;
}
@Override
protected void onPreExecute() {
mDialog = ProgressDialog.show(mContext, "Process HD",
"Please wait...");
}
@Override
protected String doInBackground(Void... params) {
return onSaveCompletion();
}
@Override
protected void onPostExecute(String result) {
mDialog.dismiss();
String msg = "Process Error";
if (result != null) {
msg = result;
}
Toast.makeText(mContext, msg, Toast.LENGTH_LONG).show();
}
}
/**
* Delete the session and all it's actions. We do not need it anymore.
* Note that this is optional. All old sessions are automatically removed in
* Feather.
*
* @param session_id
*/
private void deleteSession(final String session_id) {
Uri uri = FotorContentProvider.SessionColumns.getContentUri(this,
session_id);
int count = getContentResolver().delete(uri, null, null);
System.out.println("delete session count:" + count);
}
/**
* Given an Uri load the bitmap into the current ImageView and resize it to
* fit the image container size
*
* @param uri
*/
@SuppressWarnings("deprecation")
private boolean setImageURI(final Uri uri, final Bitmap bitmap) {
Log.d(LOG_TAG,
"image size: " + bitmap.getWidth() + "x" + bitmap.getHeight());
mImage.setImageBitmap(bitmap);
mImage.setBackgroundDrawable(null);
mEditButton.setEnabled(true);
mImageUri = uri;
return true;
}
/**
* We need to notify the MediaScanner when a new file is created. In this
* way all the gallery applications will be notified too.
*
* @param file
*/
private void updateMedia(String filepath) {
Log.i(LOG_TAG, "updateMedia: " + filepath);
MediaScannerConnection.scanFile(getApplicationContext(),
new String[] { filepath }, null, null);
}
/**
* Pick a random image from the user gallery
*
* @return
*/
@SuppressWarnings("unused")
private Uri pickRandomImage() {
Cursor c = getContentResolver().query(
Images.Media.EXTERNAL_CONTENT_URI,
new String[] { ImageColumns._ID, ImageColumns.DATA },
ImageColumns.SIZE + ">?", new String[] { "90000" }, null);
Uri uri = null;
if (c != null) {
int total = c.getCount();
int position = (int) (Math.random() * total);
Log.d(LOG_TAG, "pickRandomImage. total images: " + total
+ ", position: " + position);
if (total > 0) {
if (c.moveToPosition(position)) {
String data = c.getString(c
.getColumnIndex(Images.ImageColumns.DATA));
long id = c.getLong(c
.getColumnIndex(Images.ImageColumns._ID));
uri = Uri.parse(data);
Log.d(LOG_TAG, uri.toString());
}
}
c.close();
}
return uri;
}
/**
* Return a new image file. Name is based on the current time. Parent folder
* will be the one created with createFolders
*
* @return
* @see #createFolders()
*/
private File generateOutputFileName() {
if (mGalleryFolder != null) {
if (mGalleryFolder.exists()) {
File file = new File(mGalleryFolder, "Fotor_"
+ System.currentTimeMillis() + ".jpg");
return file;
}
}
return null;
}
/**
* Once you've chosen an image you can start the feather activity
*
* @param uri
*/
private void startFeature(Uri uri) {
Log.d(LOG_TAG, "uri: " + uri);
// first check the external storage availability
if (!isExternalStorageAvilable()) {
new AlertDialog.Builder(this)
.setTitle(android.R.string.dialog_alert_title)
.setMessage("External Storage is not avilable").show();
return;
}
// create a temporary file where to store the resulting image
File file = generateOutputFileName();
if (null != file) {
mOutputFilePath = Uri.fromFile(file);
} else {
new AlertDialog.Builder(this)
.setTitle(android.R.string.dialog_alert_title)
.setMessage("Failed to create a new File").show();
return;
}
// Create the intent needed to start feather
Intent newIntent = new Intent(this, FotorSDKActivity.class);
// === INPUT IMAGE URI ===
// Set the source image uri
newIntent.setData(uri);
// === OUTPUT ====
// Optional
// Pass the uri of the destination image file.
// This will be the same uri you will receive in the onActivityResult
System.out.println("mOutputFilePath->:" + mOutputFilePath);
// newIntent.putExtra(FotorConstants.EXTRA_OUTPUT_PATH, mOutputFilePath);
// === OUTPUT QUALITY ===
// Optional
newIntent.putExtra(FotorConstants.EXTRA_OUTPUT_QUALITY, 90);
// === MAX SIZE ===
// Optional
// you can pass the maximum allowed image size (for the preview),
// otherwise feather will determine
// the max size based on the device informations.
// This will not affect the hi-res image size.
// Here we're passing the current display size as max image size because
// after
// the execution of Aviary we're saving the HI-RES image so we don't
// need a big
// image for the preview
final DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int max_size = Math.max(metrics.widthPixels, metrics.heightPixels);
max_size = (int) ((float) max_size / 1.4f);
newIntent.putExtra(FotorConstants.EXTRA_MAX_PREVIEW_SIZE, max_size);
mSessionId = FotorUtils.generateSessionId(this);
getContentResolver().delete(
SessionColumns.getContentUri(this, mSessionId), null, null);
Log.d(LOG_TAG,
"session: " + mSessionId + ", size: " + mSessionId.length());
newIntent.putExtra(FotorConstants.EXTRA_FOTOR_SESSION_ID, mSessionId);
// // === FEATURE LIST ===
// newIntent.putExtra(FotorConstants.EXTRA_FEATURE_LIST, new String[] {
// FotorFeaturesFactory.FeatureType.FX_EFFECTS.name(),
// FotorFeaturesFactory.FeatureType.BORDER.name() });
// Whether hide confirm dialog when user not saved the was changed bitmap
// This default value will show
// newIntent.putExtra(FotorConstants.EXTRA_HIDE_DISCARD_ALERT, false);
// start feather
startActivityForResult(newIntent, ACTION_REQUEST_FEATURE);
}
/**
* Check the external storage status
*
* @return
*/
private boolean isExternalStorageAvilable() {
String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state)) {
return true;
}
return false;
}
/**
* Try to create the required folder on the sdcard where images will be
* saved to.
*
* @return
*/
private File createFolders() {
File baseDir;
if (android.os.Build.VERSION.SDK_INT < 8) {
baseDir = Environment.getExternalStorageDirectory();
} else {
baseDir = Environment
.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
}
if (baseDir == null)
return Environment.getExternalStorageDirectory();
Log.d(LOG_TAG, "Pictures folder: " + baseDir.getAbsolutePath());
File fotorSDKFolder = new File(baseDir, FOLDER_NAME);
if (fotorSDKFolder.exists())
return fotorSDKFolder;
if (fotorSDKFolder.mkdirs())
return fotorSDKFolder;
return Environment.getExternalStorageDirectory();
}
class DownloadAsync extends AsyncTask implements
OnCancelListener {
ProgressDialog mProgress;
private Uri mUri;
@Override
protected void onPreExecute() {
super.onPreExecute();
mProgress = new ProgressDialog(MainActivity.this);
mProgress.setIndeterminate(true);
mProgress.setCancelable(true);
mProgress.setMessage("Loading image...");
mProgress.setOnCancelListener(this);
mProgress.show();
}
@Override
protected Bitmap doInBackground(Uri... params) {
mUri = params[0];
DisplayMetrics displayMetrics = getResources().getDisplayMetrics();
int maxW = (int) (displayMetrics.widthPixels / 1.5);
int maxH = (int) (displayMetrics.heightPixels / 1.5);
Bitmap bitmap = BitmapDecodeUtils.decode(getApplicationContext(),
mUri, maxW, maxH);
return bitmap;
}
@Override
protected void onPostExecute(Bitmap result) {
super.onPostExecute(result);
if (mProgress.getWindow() != null) {
mProgress.dismiss();
}
if (result != null) {
setImageURI(mUri, result);
} else {
Toast.makeText(MainActivity.this,
"Failed to load image " + mUri, Toast.LENGTH_SHORT)
.show();
}
}
@Override
public void onCancel(DialogInterface dialog) {
Log.i(LOG_TAG, "onProgressCancel");
this.cancel(true);
}
@Override
protected void onCancelled() {
super.onCancelled();
Log.i(LOG_TAG, "onCancelled");
}
}
}
================================================
FILE: FotorSDKDemo/.svn/pristine/75/7531f57ac71678e8bdde440906a3023f46284b44.svn-base
================================================
{
"borderItems":[
{"filename":"118S.xml","thumbThickness":0.14},
{"filename":"42M.xml","thumbThickness":0.19},
{"filename":"10M.xml","thumbThickness":0.139},
{"filename":"3M.xml","thumbThickness":0.105},
{"filename":"41M.xml","thumbThickness":0.11}]
,"packName":"Gallery"}
================================================
FILE: FotorSDKDemo/.svn/pristine/76/768764aaceba888bd473a3474c94fb987e6b6ab0.svn-base
================================================
vtg.pngtableTexture1texturing(71, 0)(112, 62)(157, 148)(255, 232)(83, 0)(138, 113)(172, 173)(255, 223)(16, 0)(255, 194)tableTexture2texturing(43, 0)(109, 88)(147, 167)(215, 255)(48, 1)(125, 117)(173, 211)(239, 255)(0, 25)(100, 105)(189, 176)(255, 228)SRCtableTexture1dst_aSRCtableTexture2dst_bdst_adst_bspecialAlphaTexture
================================================
FILE: FotorSDKDemo/.svn/pristine/79/79ecb6f98bbfd04362cf6c5dbeb1fb60283349f7.svn-base
================================================
SRCTMPGetScale0.010.010.0TMPDSTquadric0.01.0
================================================
FILE: FotorSDKDemo/.svn/pristine/7b/7bc56bf8abce95597491da4f75b6e04101d1c1d8.svn-base
================================================
================================================
FILE: FotorSDKDemo/.svn/pristine/7b/7bd52fef0b72d500aef22545fc4ae5c742d9180e.svn-base
================================================
================================================
FILE: FotorSDKDemo/.svn/pristine/7b/7bf0670c68c92c203241c3e75f43bc714560f069.svn-base
================================================
2M_0.png2M_1.png2M_2.png2M_3.png2M_4.png2M_5.png2M_6.png2M_7.png2M.pngM0.05133133006666660166670666667666616767666666671660676666066661
================================================
FILE: FotorSDKDemo/.svn/pristine/7c/7c97e2760e11fafed4bfa319faf395e0fc044b96.svn-base
================================================
[["stickers_party_1.png",
"stickers_party_1_icon.png"],
["stickers_party_2.png",
"stickers_party_2_icon.png"],
["stickers_party_3.png",
"stickers_party_3_icon.png"],
["stickers_party_4.png",
"stickers_party_4_icon.png"],
["stickers_party_5.png",
"stickers_party_5_icon.png"],
["stickers_party_6.png",
"stickers_party_6_icon.png"],
["stickers_party_7.png",
"stickers_party_7_icon.png"],
["stickers_party_8.png",
"stickers_party_8_icon.png"],
["stickers_party_9.png",
"stickers_party_9_icon.png"],
["stickers_party_10.png",
"stickers_party_10_icon.png"],
["stickers_party_11.png",
"stickers_party_11_icon.png"],
["stickers_party_12.png",
"stickers_party_12_icon.png"],
["stickers_party_13.png",
"stickers_party_13_icon.png"],
["stickers_party_14.png",
"stickers_party_14_icon.png"],
["stickers_party_15.png",
"stickers_party_15_icon.png"],
["stickers_party_16.png",
"stickers_party_16_icon.png"]]
================================================
FILE: FotorSDKDemo/.svn/pristine/7e/7eac42e387e1a7ab2099e86c2917dc0c4902258d.svn-base
================================================
[["stickers_boom_1.png",
"stickers_boom_1_icon.png"],
["stickers_boom_2.png",
"stickers_boom_2_icon.png"],
["stickers_boom_3.png",
"stickers_boom_3_icon.png"],
["stickers_boom_4.png",
"stickers_boom_4_icon.png"],
["stickers_boom_5.png",
"stickers_boom_5_icon.png"],
["stickers_boom_6.png",
"stickers_boom_6_icon.png"],
["stickers_boom_7.png",
"stickers_boom_7_icon.png"],
["stickers_boom_8.png",
"stickers_boom_8_icon.png"],
["stickers_boom_9.png",
"stickers_boom_9_icon.png"],
["stickers_boom_10.png",
"stickers_boom_10_icon.png"],
["stickers_boom_11.png",
"stickers_boom_11_icon.png"],
["stickers_boom_12.png",
"stickers_boom_12_icon.png"],
["stickers_boom_13.png",
"stickers_boom_13_icon.png"],
["stickers_boom_14.png",
"stickers_boom_14_icon.png"],
["stickers_boom_15.png",
"stickers_boom_15_icon.png"],
["stickers_boom_16.png",
"stickers_boom_16_icon.png"]]
================================================
FILE: FotorSDKDemo/.svn/pristine/7f/7fc76dd4b7d2df42241b9e3b32fd541eb1a71229.svn-base
================================================
16dp16dp
================================================
FILE: FotorSDKDemo/.svn/pristine/82/8236e7e4c47bc975b8c27269dd01ae5f5cb62623.svn-base
================================================
================================================
FILE: FotorSDKDemo/.svn/pristine/88/88086200176fa4174716c1498413d31868152bbf.svn-base
================================================
["1.xml","4.xml","23.xml","5.xml","102.xml","103.xml","2.xml","7.xml","10.xml"]
================================================
FILE: FotorSDKDemo/.svn/pristine/8a/8a10f97888d40f0e95f38492c4a52b78328605f3.svn-base
================================================
================================================
FILE: FotorSDKDemo/.svn/pristine/8a/8a55f6711de24bf36b97d208f5637250973bfb3a.svn-base
================================================
30S.pngS
================================================
FILE: FotorSDKDemo/.svn/pristine/8c/8cb1a48fc88581b7e2e5855e1238c7da80cd3938.svn-base
================================================
37S.pngS
================================================
FILE: FotorSDKDemo/.svn/pristine/91/918df1128aa29e930b499ddb9717293a7c7edd6d.svn-base
================================================
23M_0.png23M_1.png23M_2.png23M_3.png23M_4.png23M_5.png23M_6.png23M_7.png23M.pngM0.126426400112112112040112152011211215211211240152152112112112152401120152112112011211240
================================================
FILE: FotorSDKDemo/.svn/pristine/93/9378ea4758918618f3ca68b1b623f88a4bc9eead.svn-base
================================================
tableTexturetexturing(0, 4)(255, 244)(0, 0)(255, 255)(0, 84)(255, 194)SRCDSTtableTexture
================================================
FILE: FotorSDKDemo/.svn/pristine/95/95a4eb3af29a3beeabbde817bc588a78ddf10e0d.svn-base
================================================
SRClevelGetScale0.010.011.0levelsaturation-0.7-0.7-0.70.50.5-0.7SRCTMP0.243140.070590.59215saturationTMPDSToverlay0.25
================================================
FILE: FotorSDKDemo/.svn/pristine/95/95abf644e02a344ce785c4da92c0dd5c26415b7a.svn-base
================================================
{
"borderItems":[
{"filename":"23M.xml","thumbThickness":0.27},
{"filename":"29M.xml","thumbThickness":0.23},
{"filename":"2M.xml","thumbThickness":0.1},
{"filename":"36M.xml","thumbThickness":0.8},
{"filename":"38M.xml","thumbThickness":0.8}]
,"packName":"Simple"}
================================================
FILE: FotorSDKDemo/.svn/pristine/97/975756f4219c90758891f1964f8028cecfb2c675.svn-base
================================================
36M_0.png36M_1.png36M_2.png36M_3.png36M_4.png36M_5.png36M_6.png36M_7.png36M.pngM0.67287280036036036008360368036036036836036083683683603603603688360036836036003603608
================================================
FILE: FotorSDKDemo/.svn/pristine/99/9955f7f1e3c0db05fb428b4fd3e16eacc7402ae9.svn-base
================================================
================================================
FILE: FotorSDKDemo/.svn/pristine/99/9969bc387bfdd8297a5fa77945b20785b603fd97.svn-base
================================================
{
"borderItems":[
{"filename":"30S.xml","thumbThickness":0.05},
{"filename":"37S.xml","thumbThickness":0.05},
{"filename":"43S.xml","thumbThickness":0.05},
{"filename":"49S.xml","thumbThickness":0.05},
{"filename":"51S.xml","thumbThickness":0.05}]
,"packName":"Styled"}
================================================
FILE: FotorSDKDemo/.svn/pristine/9a/9a475952207ff615974d1a3613e391d02b0f0dea.svn-base
================================================
SRCdst-0.5-0.5-0.5-0.5-0.5-0.5tableTexturetexturing(0, 0)(129, 148)(255, 255)(0, 0)(92, 77)(175, 189)(255, 255)(0, 0)(163, 144)(255, 255)dstDSTtableTexture
================================================
FILE: FotorSDKDemo/.svn/pristine/9a/9ada2c0e806321f9bb3c7a6ce49707c4fdf664e1.svn-base
================================================
vtg.pngSRCtmp-0.45-0.45-0.45-0.45-0.45-0.45tableTexture1texturing(63, 35)(148, 116)(255, 208)(71, 0)(149, 84)(255, 187)(85, 22)(177, 87)(255, 148)tableTexture2texturing(5, 42)(78, 129)(117, 178)(182, 219)(252, 253)(0, 0)(63, 84)(117, 157)(173, 204)(255, 241)(8, 26)(130, 147)(190, 197)(255, 217)tmpdst_atableTexture1tmpdst_btableTexture2dst_adst_bspecialAlphaTexture
================================================
FILE: FotorSDKDemo/.svn/pristine/9d/9da5972490b164e1b1bbaede6cbd9a8dac321e16.svn-base
================================================
================================================
FILE: FotorSDKDemo/.svn/pristine/9e/9efa9da8094116c00abbe5caf55d4f981d21cf26.svn-base
================================================
SRClevelGetScale0.010.011.0levelsaturation0.1-0.7-0.7-0.7-0.70.1levelhuehue0.829saturationhueDSTnormal0.31
================================================
FILE: FotorSDKDemo/.svn/pristine/9f/9f6bfa62aa76b00c6effa5bdd5ddc809c7eb25d2.svn-base
================================================
43S.pngS
================================================
FILE: FotorSDKDemo/.svn/pristine/9f/9ff96ba0dbe9a1dc3994a9ac334ae84253988a32.svn-base
================================================
package com.example.fotorsdkdemo;
import java.io.File;
import com.everimaging.fotorsdk.FotorConstants;
import com.everimaging.fotorsdk.FotorSDKActivity;
import com.everimaging.fotorsdk.FotorUtils;
import com.everimaging.fotorsdk.provider.FotorContentProvider;
import com.everimaging.fotorsdk.provider.FotorContentProvider.ActionsColumns.Action;
import com.everimaging.fotorsdk.provider.FotorContentProvider.ActionsColumns;
import com.everimaging.fotorsdk.provider.FotorContentProvider.SessionColumns;
import com.everimaging.fotorsdk.provider.FotorContentProvider.SessionColumns.Session;
import com.everimaging.fotorsdk.utils.BitmapDecodeUtils;
import com.everimaging.fotorsdk.utils.FotorResUtils;
import com.everimaging.fotorsdk.utils.Utils;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import com.everimaging.fotorsdk.camera.CameraActivity;
import com.everimaging.fotorsdk.engine.FotorHDFilter;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnCancelListener;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.BitmapFactory.Options;
import android.graphics.Matrix;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.media.ExifInterface;
import android.media.MediaScannerConnection;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore.Images;
import android.provider.MediaStore.Images.ImageColumns;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.View;
import android.view.View.OnLongClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Toast;
public class MainActivity extends Activity {
private static final int ACTION_REQUEST_FEATURE = 2;
private static final int ACTION_REQUEST_GALLERY = 3;
private static final int EXTERNAL_STORAGE_UNAVAILABLE = 1;
public static final String LOG_TAG = "fotorsdk_demo";
/** Folder name on the sdcard where the images will be saved **/
private static final String FOLDER_NAME = "FotorSDK";
Button mEditButton;
Button mCameraButton;
Button mGalleryButton;
ImageView mImage;
View mImageContainer;
String mOutputFilePath;
Uri mImageUri;
private File mGalleryFolder;
/** session id for the hi-res post processing */
private String mSessionId;
@Override
protected void onCreate(Bundle savedInstanceState) {
Log.i(LOG_TAG, "onCreate");
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mEditButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mImageUri != null) {
startFeature(mImageUri);
}
}
});
mGalleryButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
pickFromGallery();
}
});
mCameraButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
String saveDir = "FotorSDK";
Intent intent = new Intent(MainActivity.this,
CameraActivity.class);
intent.putExtra(CameraActivity.FOTOR_KEY_SAVEDIR, saveDir);
startActivityForResult(intent,
CameraActivity.FOTOR_ACTION_REQUEST_CAMERA);
}
});
mImageContainer.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Uri uri = pickRandomImage();
if (uri != null) {
Log.d(LOG_TAG, "image uri: " + uri);
loadAsync(uri);
}
}
});
mImageContainer.setLongClickable(true);
mImageContainer.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
if (mImageUri != null) {
Log.d(LOG_TAG, "onLongClick: " + v);
openContextMenu(v);
return true;
}
return false;
}
});
mGalleryFolder = createFolders();
mImageContainer.performClick();
}
/**
* Start the activity to pick an image from the user gallery
*/
private void pickFromGallery() {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
Intent chooser = Intent.createChooser(intent, "Choose a Picture");
startActivityForResult(chooser, ACTION_REQUEST_GALLERY);
}
@Override
protected void onResume() {
Log.i(LOG_TAG, "onResume");
super.onResume();
if (getIntent() != null) {
handleIntent(getIntent());
setIntent(new Intent());
}
}
/**
* Handle the incoming {@link Intent}
*/
private void handleIntent(Intent intent) {
String action = intent.getAction();
if (null != action) {
if (Intent.ACTION_SEND.equals(action)) {
Bundle extras = intent.getExtras();
if (extras != null && extras.containsKey(Intent.EXTRA_STREAM)) {
Uri uri = (Uri) extras.get(Intent.EXTRA_STREAM);
loadAsync(uri);
}
} else if (Intent.ACTION_VIEW.equals(action)) {
Uri data = intent.getData();
Log.d(LOG_TAG, "data: " + data);
loadAsync(data);
}
}
}
/**
* Load the incoming Image
*
* @param uri
*/
private void loadAsync(final Uri uri) {
Log.i(LOG_TAG, "loadAsync: " + uri);
Drawable toRecycle = mImage.getDrawable();
if (toRecycle != null && toRecycle instanceof BitmapDrawable) {
if (((BitmapDrawable) mImage.getDrawable()).getBitmap() != null)
((BitmapDrawable) mImage.getDrawable()).getBitmap().recycle();
}
mImage.setImageDrawable(null);
mImageUri = null;
DownloadAsync task = new DownloadAsync();
task.execute(uri);
}
@Override
protected void onDestroy() {
Log.i(LOG_TAG, "onDestroy");
super.onDestroy();
mOutputFilePath = null;
}
@Override
public void onContentChanged() {
super.onContentChanged();
System.out.println("context:" + this.getPackageName());
mEditButton = (Button) findViewById(FotorResUtils
.getId(this, "button2"));
mGalleryButton = (Button) findViewById(R.id.button_gallery);
mCameraButton = (Button) findViewById(FotorResUtils.getId(this,
"button_camera"));
mImage = (ImageView) findViewById(FotorResUtils.getId(this, "image"));
mImageContainer = findViewById(FotorResUtils.getId(this,
"image_container"));
}
@Override
/**
* This method is called when feather has completed ( ie. user clicked on "done" or just exit the activity without saving ).
* If user clicked the "done" button you'll receive RESULT_OK as resultCode, RESULT_CANCELED otherwise.
*
* @param requestCode
* - it is the code passed with startActivityForResult
* @param resultCode
* - result code of the activity launched ( it can be RESULT_OK or RESULT_CANCELED )
* @param data
* - the result data
*/
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
switch (requestCode) {
case ACTION_REQUEST_FEATURE: {
Uri uri = Uri.parse(mOutputFilePath);
loadAsync(uri);
new ProcessHDTask(this).execute();
}
break;
case CameraActivity.FOTOR_ACTION_REQUEST_CAMERA:
String resultPath = data
.getStringExtra(CameraActivity.FOTOR_KEY_CAPTURE_RESULTPATH);
if (resultPath != null) {
Uri uri = Uri.parse(resultPath);
loadAsync(uri);
}
break;
case ACTION_REQUEST_GALLERY: {
Uri uri = data.getData();
loadAsync(uri);
}
break;
}
} else if (resultCode == RESULT_CANCELED) {
switch (requestCode) {
case ACTION_REQUEST_FEATURE:
if (mSessionId != null)
deleteSession(mSessionId);
break;
}
}
}
private String onSaveCompletion() {
Cursor cursor = getContentResolver().query(
ActionsColumns.getContentUri(this, mSessionId), null, null,
null, null);
if (cursor != null && cursor.getCount() > 0) {
List actions = new ArrayList();
while (cursor.moveToNext()) {
Action action = Action.create(cursor);
System.out.println("action:" + action);
actions.add(action);
}
cursor.close();
} else {
System.out.println("cursor doesn't have datas.");
}
Cursor cursor2 = getContentResolver().query(
SessionColumns.getContentUri(this, mSessionId), null, null,
null, null);
Session session = Session.create(cursor2);
if (session != null) {
FotorHDFilter fotorHDFilter = new FotorHDFilter(this, mSessionId);
fotorHDFilter.loadImage(session.file_name);
fotorHDFilter.executeFilter();
String dstPath = Utils.getSDPath() + "/testOriginal.jpg";
fotorHDFilter.save(dstPath);
fotorHDFilter.dispose();
deleteSession(mSessionId);
return dstPath;
}
return null;
}
class ProcessHDTask extends AsyncTask {
private ProgressDialog mDialog;
private Context mContext;
public ProcessHDTask(Context context) {
this.mContext = context;
}
@Override
protected void onPreExecute() {
mDialog = ProgressDialog.show(mContext, "Process HD",
"Please wait...");
}
@Override
protected String doInBackground(Void... params) {
return onSaveCompletion();
}
@Override
protected void onPostExecute(String result) {
mDialog.dismiss();
String msg = "Process Error";
if (result != null) {
msg = result;
}
Toast.makeText(mContext, msg, Toast.LENGTH_LONG).show();
}
}
/**
* Delete the session and all it's actions. We do not need it anymore.
* Note that this is optional. All old sessions are automatically removed in
* Feather.
*
* @param session_id
*/
private void deleteSession(final String session_id) {
Uri uri = FotorContentProvider.SessionColumns.getContentUri(this,
session_id);
int count = getContentResolver().delete(uri, null, null);
System.out.println("delete session count:" + count);
}
/**
* Given an Uri load the bitmap into the current ImageView and resize it to
* fit the image container size
*
* @param uri
*/
@SuppressWarnings("deprecation")
private boolean setImageURI(final Uri uri, final Bitmap bitmap) {
Log.d(LOG_TAG,
"image size: " + bitmap.getWidth() + "x" + bitmap.getHeight());
mImage.setImageBitmap(bitmap);
mImage.setBackgroundDrawable(null);
mEditButton.setEnabled(true);
mImageUri = uri;
return true;
}
/**
* We need to notify the MediaScanner when a new file is created. In this
* way all the gallery applications will be notified too.
*
* @param file
*/
private void updateMedia(String filepath) {
Log.i(LOG_TAG, "updateMedia: " + filepath);
MediaScannerConnection.scanFile(getApplicationContext(),
new String[] { filepath }, null, null);
}
/**
* Pick a random image from the user gallery
*
* @return
*/
@SuppressWarnings("unused")
private Uri pickRandomImage() {
Cursor c = getContentResolver().query(
Images.Media.EXTERNAL_CONTENT_URI,
new String[] { ImageColumns._ID, ImageColumns.DATA },
ImageColumns.SIZE + ">?", new String[] { "90000" }, null);
Uri uri = null;
if (c != null) {
int total = c.getCount();
int position = (int) (Math.random() * total);
Log.d(LOG_TAG, "pickRandomImage. total images: " + total
+ ", position: " + position);
if (total > 0) {
if (c.moveToPosition(position)) {
String data = c.getString(c
.getColumnIndex(Images.ImageColumns.DATA));
long id = c.getLong(c
.getColumnIndex(Images.ImageColumns._ID));
uri = Uri.parse(data);
Log.d(LOG_TAG, uri.toString());
}
}
c.close();
}
return uri;
}
/**
* Return a new image file. Name is based on the current time. Parent folder
* will be the one created with createFolders
*
* @return
* @see #createFolders()
*/
private File generateOutputFileName() {
if (mGalleryFolder != null) {
if (mGalleryFolder.exists()) {
File file = new File(mGalleryFolder, "Fotor_"
+ System.currentTimeMillis() + ".jpg");
return file;
}
}
return null;
}
/**
* Once you've chosen an image you can start the feather activity
*
* @param uri
*/
@SuppressWarnings("deprecation")
private void startFeature(Uri uri) {
Log.d(LOG_TAG, "uri: " + uri);
// first check the external storage availability
if (!isExternalStorageAvilable()) {
showDialog(EXTERNAL_STORAGE_UNAVAILABLE);
return;
}
// create a temporary file where to store the resulting image
File file = generateOutputFileName();
if (null != file) {
mOutputFilePath = file.getAbsolutePath();
} else {
new AlertDialog.Builder(this)
.setTitle(android.R.string.dialog_alert_title)
.setMessage("Failed to create a new File").show();
return;
}
// Create the intent needed to start feather
Intent newIntent = new Intent(this, FotorSDKActivity.class);
// === INPUT IMAGE URI ===
// Set the source image uri
newIntent.setData(uri);
// === OUTPUT ====
// Optional
// Pass the uri of the destination image file.
// This will be the same uri you will receive in the onActivityResult
System.out.println("mOutputFilePath->:" + mOutputFilePath);
newIntent.putExtra(FotorConstants.EXTRA_OUTPUT_PATH, mOutputFilePath);
// === OUTPUT QUALITY ===
// Optional
newIntent.putExtra(FotorConstants.EXTRA_OUTPUT_QUALITY, 90);
// === MAX SIZE ===
// Optional
// you can pass the maximum allowed image size (for the preview),
// otherwise feather will determine
// the max size based on the device informations.
// This will not affect the hi-res image size.
// Here we're passing the current display size as max image size because
// after
// the execution of Aviary we're saving the HI-RES image so we don't
// need a big
// image for the preview
final DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int max_size = Math.max(metrics.widthPixels, metrics.heightPixels);
max_size = (int) ((float) max_size / 1.4f);
newIntent.putExtra(FotorConstants.EXTRA_MAX_PREVIEW_SIZE, max_size);
mSessionId = FotorUtils.generateSessionId(this);
getContentResolver().delete(
SessionColumns.getContentUri(this, mSessionId), null, null);
Log.d(LOG_TAG,
"session: " + mSessionId + ", size: " + mSessionId.length());
newIntent.putExtra(FotorConstants.EXTRA_FOTOR_SESSION_ID, mSessionId);
// === FEATURE LIST ===
// newIntent.putExtra(FotorConstants.EXTRA_FEATURE_LIST, new String[] {
// FotorFeaturesFactory.FeatureType.FX_EFFECTS.name(),
// FotorFeaturesFactory.FeatureType.BORDER.name() });
// start feather
startActivityForResult(newIntent, ACTION_REQUEST_FEATURE);
}
/**
* Check the external storage status
*
* @return
*/
private boolean isExternalStorageAvilable() {
String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state)) {
return true;
}
return false;
}
/**
* Try to create the required folder on the sdcard where images will be
* saved to.
*
* @return
*/
private File createFolders() {
File baseDir;
if (android.os.Build.VERSION.SDK_INT < 8) {
baseDir = Environment.getExternalStorageDirectory();
} else {
baseDir = Environment
.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
}
if (baseDir == null)
return Environment.getExternalStorageDirectory();
Log.d(LOG_TAG, "Pictures folder: " + baseDir.getAbsolutePath());
File fotorSDKFolder = new File(baseDir, FOLDER_NAME);
if (fotorSDKFolder.exists())
return fotorSDKFolder;
if (fotorSDKFolder.mkdirs())
return fotorSDKFolder;
return Environment.getExternalStorageDirectory();
}
class DownloadAsync extends AsyncTask implements
OnCancelListener {
ProgressDialog mProgress;
private Uri mUri;
@Override
protected void onPreExecute() {
super.onPreExecute();
mProgress = new ProgressDialog(MainActivity.this);
mProgress.setIndeterminate(true);
mProgress.setCancelable(true);
mProgress.setMessage("Loading image...");
mProgress.setOnCancelListener(this);
mProgress.show();
}
@Override
protected Bitmap doInBackground(Uri... params) {
mUri = params[0];
DisplayMetrics displayMetrics = getResources().getDisplayMetrics();
int maxW = (int) (displayMetrics.widthPixels / 1.5);
int maxH = (int) (displayMetrics.heightPixels / 1.5);
Bitmap bitmap = BitmapDecodeUtils.decode(getApplicationContext(),
mUri, maxW, maxH);
// bitmap = BitmapFactory.decodeFile(mUri.toString(), options);
// int angel = 0;
// try {
// ExifInterface exif = new ExifInterface(mUri.toString());
// int orientation = exif.getAttributeInt(
// ExifInterface.TAG_ORIENTATION, -1);
// if (orientation != -1) {
// switch (orientation) {
// case ExifInterface.ORIENTATION_ROTATE_90:
// angel = 90;
// break;
// case ExifInterface.ORIENTATION_ROTATE_180:
// angel = 180;
// break;
// case ExifInterface.ORIENTATION_ROTATE_270:
// angel = 270;
// break;
// default:
// break;
// }
// }
// } catch (IOException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
// if (angel != 0) {
// Matrix matrix = new Matrix();
// matrix.setRotate(angel);
// bitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(),
// bitmap.getHeight(), matrix, true);
// }
return bitmap;
}
@Override
protected void onPostExecute(Bitmap result) {
super.onPostExecute(result);
if (mProgress.getWindow() != null) {
mProgress.dismiss();
}
if (result != null) {
setImageURI(mUri, result);
} else {
Toast.makeText(MainActivity.this,
"Failed to load image " + mUri, Toast.LENGTH_SHORT)
.show();
}
}
@Override
public void onCancel(DialogInterface dialog) {
Log.i(LOG_TAG, "onProgressCancel");
this.cancel(true);
}
@Override
protected void onCancelled() {
super.onCancelled();
Log.i(LOG_TAG, "onCancelled");
}
}
}
================================================
FILE: FotorSDKDemo/.svn/pristine/a0/a058978066e296310b0224baa3e95484f15c8f3d.svn-base
================================================
================================================
FILE: FotorSDKDemo/.svn/pristine/a1/a1e3bda0c91a5191ca1dea31f45dcfe834accc4a.svn-base
================================================
tableTexturetexturing(0, 0)(117, 95)(155, 171)(179, 225)(255, 255)(0, 0)(94, 66)(155, 176)(255, 255)(0, 0)(48, 59)(141, 130)(255, 224)SRCDSTtableTexture
================================================
FILE: FotorSDKDemo/.svn/pristine/a3/a33eeaaaff41f46520323424ca79e399e2d53af2.svn-base
================================================
SRClevelGetScale0.10.21.0levelTMPquadric0.01.0tableTexturetexturing(0, 0)(127, 91)(255, 214)(0, 0)(127, 102)(255, 255)(0, 0)(127, 108)(255, 255)TMPDSTtableTexture
================================================
FILE: FotorSDKDemo/.svn/pristine/a3/a396b072ee70577a67f05e9a3e191e6b53027175.svn-base
================================================
================================================
FILE: FotorSDKDemo/.svn/pristine/a5/a556148b66359e94f7ccde75022d7b2b489d8164.svn-base
================================================
================================================
FILE: FotorSDKDemo/.svn/pristine/a5/a5b5ca45da347e01b26e995a77d7ef21006ad211.svn-base
================================================
tableTexturetexturing(17, 0)(37, 18)(75, 52)(238, 255)(16, 0)(53, 32)(113, 92)(236, 255)(16, 0)(80, 57)(171, 164)(235, 255)SRCDSTtableTexture
================================================
FILE: FotorSDKDemo/.svn/pristine/a9/a98cecac96dab90bff5a7d390e2b08b5297a8e48.svn-base
================================================
{
"version": 1,
"category_name": "Charm",
"fonts_array": [{
"font_id": 1,
"font_name": "Sofia",
"font_normal": "Sofia",
"font_bold": "",
"font_italic": "",
"font_bolditalic": "Sofia"
},
{
"font_id": 2,
"font_name": "Ostrich Sans",
"font_normal": "Ostrich Sans",
"font_bold": "OstrichSans-Bold",
"font_italic": "",
"font_bolditalic": "OstrichSans-Bold"
},
{
"font_id": 3,
"font_name": "Bearpaw",
"font_normal": "Bearpaw",
"font_bold": "",
"font_italic": "",
"font_bolditalic": "Bearpaw"
},
{
"font_id": 4,
"font_name": "American Typewriter",
"font_normal": "AmericanTypewriter",
"font_bold": "AmericanTypewriter-Bold",
"font_italic": "",
"font_bolditalic": "AmericanTypewriter-Bold"
},
{
"font_id": 5,
"font_name": "Stencil Std",
"font_normal": "Stencil Std",
"font_bold": "",
"font_italic": "",
"font_bolditalic": "Stencil Std"
},
{
"font_id": 6,
"font_name": "Brush Script MT",
"font_normal": "Brush Script",
"font_bold": "",
"font_italic": "",
"font_bolditalic": "Brush Script"
},
{
"font_id": 7,
"font_name": "Noteworthy",
"font_normal": "Noteworthy",
"font_bold": "Noteworthy-Bold",
"font_italic": "",
"font_bolditalic": "Noteworthy-Bold"
},
{
"font_id": 8,
"font_name": "Miama",
"font_normal": "Miama",
"font_bold": "",
"font_italic": "",
"font_bolditalic": "Miama"
},
{
"font_id": 9,
"font_name": "Blackout",
"font_normal": "Blackout",
"font_bold": "",
"font_italic": "",
"font_bolditalic": "Blackout"
},
{
"font_id": 10,
"font_name": "Muli",
"font_normal": "Muli",
"font_bold": "",
"font_italic": "Muli-Italic",
"font_bolditalic": "Muli-Italic"
},
{
"font_id": 11,
"font_name": "padaloma italic",
"font_normal": "padaloma",
"font_bold": "",
"font_italic": "",
"font_bolditalic": "padaloma"
},
{
"font_id": 12,
"font_name": "Josefin Sans",
"font_normal": "Josefin Sans",
"font_bold": "JosefinSans-Bold",
"font_italic": "JosefinSans-Italic",
"font_bolditalic": "JosefinSans-BoldItalic"
},
{
"font_id": 13,
"font_name": "Garogier",
"font_normal": "Garogier",
"font_bold": "",
"font_italic": "",
"font_bolditalic": "Garogier"
}
]
}
================================================
FILE: FotorSDKDemo/.svn/pristine/aa/aa1f5f1723de9aee2669dc44a26fbc0ce776d35f.svn-base
================================================
================================================
FILE: FotorSDKDemo/.svn/pristine/aa/aa91bd20a01c02603ac8f4df60bef48758548c2d.svn-base
================================================
3M_0.png3M_1.png3M_2.png3M_3.png3M_4.png3M_5.png3M_6.png3M_7.png3M.pngM0.05161161008080800180810808081808018181808080811800818080080801
================================================
FILE: FotorSDKDemo/.svn/pristine/ad/ad9e9267bc0cf1e8dd2be128bc64261b575b012a.svn-base
================================================
[["stickers_love_1.png",
"stickers_love_1_icon.png"],
["stickers_love_2.png",
"stickers_love_2_icon.png"],
["stickers_love_3.png",
"stickers_love_3_icon.png"],
["stickers_love_4.png",
"stickers_love_4_icon.png"],
["stickers_love_5.png",
"stickers_love_5_icon.png"],
["stickers_love_6.png",
"stickers_love_6_icon.png"],
["stickers_love_7.png",
"stickers_love_7_icon.png"],
["stickers_love_8.png",
"stickers_love_8_icon.png"],
["stickers_love_9.png",
"stickers_love_9_icon.png"],
["stickers_love_10.png",
"stickers_love_10_icon.png"],
["stickers_love_11.png",
"stickers_love_11_icon.png"],
["stickers_love_12.png",
"stickers_love_12_icon.png"],
["stickers_love_13.png",
"stickers_love_13_icon.png"],
["stickers_love_14.png",
"stickers_love_14_icon.png"],
["stickers_love_15.png",
"stickers_love_15_icon.png"],
["stickers_love_16.png",
"stickers_love_16_icon.png"]]
================================================
FILE: FotorSDKDemo/.svn/pristine/af/afaa4cc1820f9992969da150808bc0b865975646.svn-base
================================================
vtg.pngtableTexture1texturing(16, 0)(138, 133)(202, 185)(255, 213)(82, 0)(128, 85)(173, 145)(255, 207)(108, 62)(176, 137)(255, 184)tableTexture2texturing(0, 105)(61, 167)(128, 221)(190, 236)(255, 255)(3, 0)(64, 98)(130, 191)(191, 228)(255, 255)(54, 62)(86, 101)(129, 155)(191, 192)(255, 222)SRCtableTexture1dst_aSRCtableTexture2dst_bdst_adst_bspecialAlphaTexture
================================================
FILE: FotorSDKDemo/.svn/pristine/af/afc1bf1787c384436565994646909db35fe7e06f.svn-base
================================================
package com.example.fotorsdkdemo;
import java.io.File;
import com.everimaging.fotorsdk.FotorConstants;
import com.everimaging.fotorsdk.FotorFeaturesFactory;
import com.everimaging.fotorsdk.FotorSDKActivity;
import com.everimaging.fotorsdk.FotorSDKVersion;
import com.everimaging.fotorsdk.FotorUtils;
import com.everimaging.fotorsdk.provider.FotorContentProvider;
import com.everimaging.fotorsdk.provider.FotorContentProvider.ActionsColumns.Action;
import com.everimaging.fotorsdk.provider.FotorContentProvider.SessionColumns;
import com.everimaging.fotorsdk.provider.FotorContentProvider.SessionColumns.Session;
import com.everimaging.fotorsdk.utils.BitmapDecodeUtils;
import com.everimaging.fotorsdk.utils.Utils;
import java.util.ArrayList;
import java.util.List;
import com.everimaging.fotorsdk.engine.FotorHDFilter;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnCancelListener;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.media.MediaScannerConnection;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore.Images;
import android.provider.MediaStore.Images.ImageColumns;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity {
private static final int ACTION_REQUEST_FEATURE = 2;
private static final int ACTION_REQUEST_GALLERY = 3;
private static final int EXTERNAL_STORAGE_UNAVAILABLE = 1;
public static final String LOG_TAG = "fotorsdk_demo";
/** Folder name on the sdcard where the images will be saved **/
private static final String FOLDER_NAME = "FotorSDK";
Button mEditButton;
Button mGalleryButton;
ImageView mImage;
String mOutputFilePath;
Uri mImageUri;
private TextView mSDKVersionLabel;
private Uri mSampleUri;
private File mGalleryFolder;
/** session id for the hi-res post processing */
private String mSessionId;
@Override
protected void onCreate(Bundle savedInstanceState) {
Log.i(LOG_TAG, "onCreate");
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mEditButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mImageUri != null) {
startFeature(mImageUri);
}
}
});
mGalleryButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
pickFromGallery();
}
});
mGalleryFolder = createFolders();
// add sample image
mSampleUri = Uri.parse("file:///android_asset/sample.jpg");
loadAsync(mSampleUri);
if (BuildConfig.DEBUG) {
mSDKVersionLabel.setText("V" + FotorSDKVersion.FOTOR_SDK_VERSION);
}
}
/**
* Start the activity to pick an image from the user gallery
*/
private void pickFromGallery() {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
Intent chooser = Intent.createChooser(intent, "Choose a Picture");
startActivityForResult(chooser, ACTION_REQUEST_GALLERY);
}
@Override
protected void onResume() {
Log.i(LOG_TAG, "onResume");
super.onResume();
if (getIntent() != null) {
handleIntent(getIntent());
setIntent(new Intent());
}
}
/**
* Handle the incoming {@link Intent}
*/
private void handleIntent(Intent intent) {
String action = intent.getAction();
if (null != action) {
if (Intent.ACTION_SEND.equals(action)) {
Bundle extras = intent.getExtras();
if (extras != null && extras.containsKey(Intent.EXTRA_STREAM)) {
Uri uri = (Uri) extras.get(Intent.EXTRA_STREAM);
loadAsync(uri);
}
} else if (Intent.ACTION_VIEW.equals(action)) {
Uri data = intent.getData();
Log.d(LOG_TAG, "data: " + data);
loadAsync(data);
}
}
}
/**
* Load the incoming Image
*
* @param uri
*/
private void loadAsync(final Uri uri) {
Log.i(LOG_TAG, "loadAsync: " + uri);
Drawable toRecycle = mImage.getDrawable();
if (toRecycle != null && toRecycle instanceof BitmapDrawable) {
if (((BitmapDrawable) mImage.getDrawable()).getBitmap() != null)
((BitmapDrawable) mImage.getDrawable()).getBitmap().recycle();
}
mImage.setImageDrawable(null);
mImageUri = null;
DownloadAsync task = new DownloadAsync();
task.execute(uri);
}
@Override
protected void onDestroy() {
Log.i(LOG_TAG, "onDestroy");
super.onDestroy();
mOutputFilePath = null;
}
@Override
public void onContentChanged() {
super.onContentChanged();
System.out.println("context:" + this.getPackageName());
mEditButton = (Button) findViewById(R.id.button2);
mGalleryButton = (Button) findViewById(R.id.button_gallery);
mImage = (ImageView) findViewById(R.id.image);
mSDKVersionLabel = (TextView) findViewById(R.id.fotor_sdk_version_label);
}
@Override
/**
* This method is called when feather has completed ( ie. user clicked on "done" or just exit the activity without saving ).
* If user clicked the "done" button you'll receive RESULT_OK as resultCode, RESULT_CANCELED otherwise.
*
* @param requestCode
* - it is the code passed with startActivityForResult
* @param resultCode
* - result code of the activity launched ( it can be RESULT_OK or RESULT_CANCELED )
* @param data
* - the result data
*/
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
switch (requestCode) {
case ACTION_REQUEST_FEATURE: {
Uri uri = Uri.parse(mOutputFilePath);
Bitmap bitmap = BitmapDecodeUtils.decodeFile(mOutputFilePath);
setImageURI(uri, bitmap);
new ProcessHDTask(this).execute();
}
break;
case ACTION_REQUEST_GALLERY: {
Uri uri = data.getData();
loadAsync(uri);
startFeature(uri);
}
break;
}
} else if (resultCode == RESULT_CANCELED) {
switch (requestCode) {
case ACTION_REQUEST_FEATURE:
if (mSessionId != null)
deleteSession(mSessionId);
break;
}
}
}
private String onSaveCompletion() {
Uri sessionUri = SessionColumns.getContentUri(this, mSessionId);
Cursor cursor = getContentResolver().query(sessionUri, null, null,
null, null);
Session session = Session.create(cursor);
if (session != null) {
FotorHDFilter fotorHDFilter = new FotorHDFilter(this, session);
fotorHDFilter.loadImage();
fotorHDFilter.executeFilter();
String dstPath = Utils.getSDPath() + "/testOriginal.jpg";
fotorHDFilter.save(dstPath);
fotorHDFilter.dispose();
deleteSession(mSessionId);
return dstPath;
}
return null;
}
class ProcessHDTask extends AsyncTask {
private ProgressDialog mDialog;
private Context mContext;
public ProcessHDTask(Context context) {
this.mContext = context;
}
@Override
protected void onPreExecute() {
mDialog = ProgressDialog.show(mContext, "Process HD",
"Please wait...");
}
@Override
protected String doInBackground(Void... params) {
return onSaveCompletion();
}
@Override
protected void onPostExecute(String result) {
mDialog.dismiss();
String msg = "Process Error";
if (result != null) {
msg = result;
}
Toast.makeText(mContext, msg, Toast.LENGTH_LONG).show();
}
}
/**
* Delete the session and all it's actions. We do not need it anymore.
* Note that this is optional. All old sessions are automatically removed in
* Feather.
*
* @param session_id
*/
private void deleteSession(final String session_id) {
Uri uri = FotorContentProvider.SessionColumns.getContentUri(this,
session_id);
int count = getContentResolver().delete(uri, null, null);
System.out.println("delete session count:" + count);
}
/**
* Given an Uri load the bitmap into the current ImageView and resize it to
* fit the image container size
*
* @param uri
*/
@SuppressWarnings("deprecation")
private boolean setImageURI(final Uri uri, final Bitmap bitmap) {
Log.d(LOG_TAG,
"image size: " + bitmap.getWidth() + "x" + bitmap.getHeight());
mImage.setImageBitmap(bitmap);
mImage.setBackgroundDrawable(null);
mEditButton.setEnabled(true);
mImageUri = uri;
return true;
}
/**
* We need to notify the MediaScanner when a new file is created. In this
* way all the gallery applications will be notified too.
*
* @param file
*/
private void updateMedia(String filepath) {
Log.i(LOG_TAG, "updateMedia: " + filepath);
MediaScannerConnection.scanFile(getApplicationContext(),
new String[] { filepath }, null, null);
}
/**
* Pick a random image from the user gallery
*
* @return
*/
@SuppressWarnings("unused")
private Uri pickRandomImage() {
Cursor c = getContentResolver().query(
Images.Media.EXTERNAL_CONTENT_URI,
new String[] { ImageColumns._ID, ImageColumns.DATA },
ImageColumns.SIZE + ">?", new String[] { "90000" }, null);
Uri uri = null;
if (c != null) {
int total = c.getCount();
int position = (int) (Math.random() * total);
Log.d(LOG_TAG, "pickRandomImage. total images: " + total
+ ", position: " + position);
if (total > 0) {
if (c.moveToPosition(position)) {
String data = c.getString(c
.getColumnIndex(Images.ImageColumns.DATA));
long id = c.getLong(c
.getColumnIndex(Images.ImageColumns._ID));
uri = Uri.parse(data);
Log.d(LOG_TAG, uri.toString());
}
}
c.close();
}
return uri;
}
/**
* Return a new image file. Name is based on the current time. Parent folder
* will be the one created with createFolders
*
* @return
* @see #createFolders()
*/
private File generateOutputFileName() {
if (mGalleryFolder != null) {
if (mGalleryFolder.exists()) {
File file = new File(mGalleryFolder, "Fotor_"
+ System.currentTimeMillis() + ".jpg");
return file;
}
}
return null;
}
/**
* Once you've chosen an image you can start the feather activity
*
* @param uri
*/
@SuppressWarnings("deprecation")
private void startFeature(Uri uri) {
Log.d(LOG_TAG, "uri: " + uri);
// first check the external storage availability
if (!isExternalStorageAvilable()) {
showDialog(EXTERNAL_STORAGE_UNAVAILABLE);
return;
}
// create a temporary file where to store the resulting image
File file = generateOutputFileName();
if (null != file) {
mOutputFilePath = file.getAbsolutePath();
} else {
new AlertDialog.Builder(this)
.setTitle(android.R.string.dialog_alert_title)
.setMessage("Failed to create a new File").show();
return;
}
// Create the intent needed to start feather
Intent newIntent = new Intent(this, FotorSDKActivity.class);
// === INPUT IMAGE URI ===
// Set the source image uri
newIntent.setData(uri);
// === OUTPUT ====
// Optional
// Pass the uri of the destination image file.
// This will be the same uri you will receive in the onActivityResult
System.out.println("mOutputFilePath->:" + mOutputFilePath);
newIntent.putExtra(FotorConstants.EXTRA_OUTPUT_PATH, mOutputFilePath);
// === OUTPUT QUALITY ===
// Optional
newIntent.putExtra(FotorConstants.EXTRA_OUTPUT_QUALITY, 90);
// === MAX SIZE ===
// Optional
// you can pass the maximum allowed image size (for the preview),
// otherwise feather will determine
// the max size based on the device informations.
// This will not affect the hi-res image size.
// Here we're passing the current display size as max image size because
// after
// the execution of Aviary we're saving the HI-RES image so we don't
// need a big
// image for the preview
final DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int max_size = Math.max(metrics.widthPixels, metrics.heightPixels);
max_size = (int) ((float) max_size / 1.4f);
newIntent.putExtra(FotorConstants.EXTRA_MAX_PREVIEW_SIZE, max_size);
mSessionId = FotorUtils.generateSessionId(this);
getContentResolver().delete(
SessionColumns.getContentUri(this, mSessionId), null, null);
Log.d(LOG_TAG,
"session: " + mSessionId + ", size: " + mSessionId.length());
newIntent.putExtra(FotorConstants.EXTRA_FOTOR_SESSION_ID, mSessionId);
// // === FEATURE LIST ===
newIntent.putExtra(FotorConstants.EXTRA_FEATURE_LIST, new String[] {
FotorFeaturesFactory.FeatureType.FX_EFFECTS.name(),
FotorFeaturesFactory.FeatureType.BORDER.name() });
// start feather
startActivityForResult(newIntent, ACTION_REQUEST_FEATURE);
}
/**
* Check the external storage status
*
* @return
*/
private boolean isExternalStorageAvilable() {
String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state)) {
return true;
}
return false;
}
/**
* Try to create the required folder on the sdcard where images will be
* saved to.
*
* @return
*/
private File createFolders() {
File baseDir;
if (android.os.Build.VERSION.SDK_INT < 8) {
baseDir = Environment.getExternalStorageDirectory();
} else {
baseDir = Environment
.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
}
if (baseDir == null)
return Environment.getExternalStorageDirectory();
Log.d(LOG_TAG, "Pictures folder: " + baseDir.getAbsolutePath());
File fotorSDKFolder = new File(baseDir, FOLDER_NAME);
if (fotorSDKFolder.exists())
return fotorSDKFolder;
if (fotorSDKFolder.mkdirs())
return fotorSDKFolder;
return Environment.getExternalStorageDirectory();
}
class DownloadAsync extends AsyncTask implements
OnCancelListener {
ProgressDialog mProgress;
private Uri mUri;
@Override
protected void onPreExecute() {
super.onPreExecute();
mProgress = new ProgressDialog(MainActivity.this);
mProgress.setIndeterminate(true);
mProgress.setCancelable(true);
mProgress.setMessage("Loading image...");
mProgress.setOnCancelListener(this);
mProgress.show();
}
@Override
protected Bitmap doInBackground(Uri... params) {
mUri = params[0];
DisplayMetrics displayMetrics = getResources().getDisplayMetrics();
int maxW = (int) (displayMetrics.widthPixels / 1.5);
int maxH = (int) (displayMetrics.heightPixels / 1.5);
Bitmap bitmap = BitmapDecodeUtils.decode(getApplicationContext(),
mUri, maxW, maxH);
return bitmap;
}
@Override
protected void onPostExecute(Bitmap result) {
super.onPostExecute(result);
if (mProgress.getWindow() != null) {
mProgress.dismiss();
}
if (result != null) {
setImageURI(mUri, result);
} else {
Toast.makeText(MainActivity.this,
"Failed to load image " + mUri, Toast.LENGTH_SHORT)
.show();
}
}
@Override
public void onCancel(DialogInterface dialog) {
Log.i(LOG_TAG, "onProgressCancel");
this.cancel(true);
}
@Override
protected void onCancelled() {
super.onCancelled();
Log.i(LOG_TAG, "onCancelled");
}
}
}
================================================
FILE: FotorSDKDemo/.svn/pristine/b1/b129b276e01126de5b3b753572ac67cbfc19454c.svn-base
================================================
================================================
FILE: FotorSDKDemo/.svn/pristine/b6/b63a097de0cd21e7c8acb72e4604812de94ee27a.svn-base
================================================
================================================
FILE: FotorSDKDemo/.svn/pristine/b7/b786870b4a198837c81a932a5573ed97c1f9b330.svn-base
================================================
package com.example.fotorsdkdemo;
import java.io.File;
import com.everimaging.fotorsdk.FotorConstants;
import com.everimaging.fotorsdk.FotorSDKActivity;
import com.everimaging.fotorsdk.FotorSDKVersion;
import com.everimaging.fotorsdk.FotorUtils;
import com.everimaging.fotorsdk.provider.FotorContentProvider;
import com.everimaging.fotorsdk.provider.FotorContentProvider.SessionColumns;
import com.everimaging.fotorsdk.provider.FotorContentProvider.SessionColumns.Session;
import com.everimaging.fotorsdk.utils.BitmapDecodeUtils;
import com.everimaging.fotorsdk.utils.Utils;
import com.everimaging.fotorsdk.engine.FotorHDFilter;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnCancelListener;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.media.MediaScannerConnection;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore.Images;
import android.provider.MediaStore.Images.ImageColumns;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
/**
* Sample main activity
*
* @description
*
* @author John.Zhang
* @version 1.0
* @create Apr 12, 2014 3:06:39 PM
* @update Apr 12, 2014 3:06:39 PM
*/
public class MainActivity extends Activity {
private static final int ACTION_REQUEST_FEATURE = 2;
private static final int ACTION_REQUEST_GALLERY = 3;
public static final String LOG_TAG = "fotorsdk_demo";
/** Folder name on the sdcard where the images will be saved **/
private static final String FOLDER_NAME = "FotorSDK";
/** Edit sample button */
Button mEditButton;
/** Call gallery button */
Button mGalleryButton;
/** Display image view */
ImageView mImage;
/** The path for output file */
Uri mOutputFilePath;
/** Image uri for image editor */
Uri mImageUri;
/** Display version label for DEBUG */
private TextView mSDKVersionLabel;
/** The sample image uri. */
private Uri mSampleUri;
private File mGalleryFolder;
/** session id for the hi-res post processing */
private String mSessionId;
@Override
protected void onCreate(Bundle savedInstanceState) {
Log.i(LOG_TAG, "onCreate");
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mEditButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mImageUri != null) {
startFeature(mImageUri);
}
}
});
mGalleryButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
pickFromGallery();
}
});
mGalleryFolder = createFolders();
// add sample image
mSampleUri = Uri.parse("file:///android_asset/sample.jpg");
loadAsync(mSampleUri);
if (BuildConfig.DEBUG) {
mSDKVersionLabel.setText("V" + FotorSDKVersion.FOTOR_SDK_VERSION);
}
}
/**
* Start the activity to pick an image from the user gallery
*/
private void pickFromGallery() {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
Intent chooser = Intent.createChooser(intent, "Choose a Picture");
startActivityForResult(chooser, ACTION_REQUEST_GALLERY);
}
@Override
protected void onResume() {
Log.i(LOG_TAG, "onResume");
super.onResume();
if (getIntent() != null) {
handleIntent(getIntent());
setIntent(new Intent());
}
}
/**
* Handle the incoming {@link Intent}
*/
private void handleIntent(Intent intent) {
String action = intent.getAction();
if (null != action) {
if (Intent.ACTION_SEND.equals(action)) {
Bundle extras = intent.getExtras();
if (extras != null && extras.containsKey(Intent.EXTRA_STREAM)) {
Uri uri = (Uri) extras.get(Intent.EXTRA_STREAM);
loadAsync(uri);
}
} else if (Intent.ACTION_VIEW.equals(action)) {
Uri data = intent.getData();
Log.d(LOG_TAG, "data: " + data);
loadAsync(data);
}
}
}
/**
* Load the incoming Image
*
* @param uri
*/
private void loadAsync(final Uri uri) {
Log.i(LOG_TAG, "loadAsync: " + uri);
Drawable toRecycle = mImage.getDrawable();
if (toRecycle != null && toRecycle instanceof BitmapDrawable) {
if (((BitmapDrawable) mImage.getDrawable()).getBitmap() != null)
((BitmapDrawable) mImage.getDrawable()).getBitmap().recycle();
}
mImage.setImageDrawable(null);
mImageUri = null;
DownloadAsync task = new DownloadAsync();
task.execute(uri);
}
@Override
protected void onDestroy() {
Log.i(LOG_TAG, "onDestroy");
super.onDestroy();
mOutputFilePath = null;
}
@Override
public void onContentChanged() {
super.onContentChanged();
System.out.println("context:" + this.getPackageName());
mEditButton = (Button) findViewById(R.id.button2);
mGalleryButton = (Button) findViewById(R.id.button_gallery);
mImage = (ImageView) findViewById(R.id.image);
mSDKVersionLabel = (TextView) findViewById(R.id.fotor_sdk_version_label);
}
@Override
/**
* This method is called when feather has completed ( ie. user clicked on "done" or just exit the activity without saving ).
* If user clicked the "done" button you'll receive RESULT_OK as resultCode, RESULT_CANCELED otherwise.
*
* @param requestCode
* - it is the code passed with startActivityForResult
* @param resultCode
* - result code of the activity launched ( it can be RESULT_OK or RESULT_CANCELED )
* @param data
* - the result data
*/
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
switch (requestCode) {
case ACTION_REQUEST_FEATURE: {
Uri uri = data.getData();
Bitmap bitmap = BitmapDecodeUtils.decode(this, uri, 0, 0);
setImageURI(uri, bitmap);
new ProcessHDTask(this).execute();
}
break;
case ACTION_REQUEST_GALLERY: {
Uri uri = data.getData();
loadAsync(uri);
startFeature(uri);
}
break;
}
} else if (resultCode == RESULT_CANCELED) {
switch (requestCode) {
case ACTION_REQUEST_FEATURE:
if (mSessionId != null)
deleteSession(mSessionId);
break;
}
}
}
private String onSaveCompletion() {
Uri sessionUri = SessionColumns.getContentUri(this, mSessionId);
Cursor cursor = getContentResolver().query(sessionUri, null, null,
null, null);
Session session = Session.create(cursor);
if (session != null) {
FotorHDFilter fotorHDFilter = new FotorHDFilter(this, session);
fotorHDFilter.loadImage();
fotorHDFilter.executeFilter();
String dstPath = Utils.getSDPath() + "/testOriginal.jpg";
fotorHDFilter.save(dstPath);
fotorHDFilter.dispose();
deleteSession(mSessionId);
return dstPath;
}
return null;
}
class ProcessHDTask extends AsyncTask {
private ProgressDialog mDialog;
private Context mContext;
public ProcessHDTask(Context context) {
this.mContext = context;
}
@Override
protected void onPreExecute() {
mDialog = ProgressDialog.show(mContext, "Process HD",
"Please wait...");
}
@Override
protected String doInBackground(Void... params) {
return onSaveCompletion();
}
@Override
protected void onPostExecute(String result) {
mDialog.dismiss();
String msg = "Process Error";
if (result != null) {
msg = result;
}
Toast.makeText(mContext, msg, Toast.LENGTH_LONG).show();
}
}
/**
* Delete the session and all it's actions. We do not need it anymore.
* Note that this is optional. All old sessions are automatically removed in
* Feather.
*
* @param session_id
*/
private void deleteSession(final String session_id) {
Uri uri = FotorContentProvider.SessionColumns.getContentUri(this,
session_id);
int count = getContentResolver().delete(uri, null, null);
System.out.println("delete session count:" + count);
}
/**
* Given an Uri load the bitmap into the current ImageView and resize it to
* fit the image container size
*
* @param uri
*/
@SuppressWarnings("deprecation")
private boolean setImageURI(final Uri uri, final Bitmap bitmap) {
Log.d(LOG_TAG,
"image size: " + bitmap.getWidth() + "x" + bitmap.getHeight());
mImage.setImageBitmap(bitmap);
mImage.setBackgroundDrawable(null);
mEditButton.setEnabled(true);
mImageUri = uri;
return true;
}
/**
* We need to notify the MediaScanner when a new file is created. In this
* way all the gallery applications will be notified too.
*
* @param file
*/
private void updateMedia(String filepath) {
Log.i(LOG_TAG, "updateMedia: " + filepath);
MediaScannerConnection.scanFile(getApplicationContext(),
new String[] { filepath }, null, null);
}
/**
* Pick a random image from the user gallery
*
* @return
*/
@SuppressWarnings("unused")
private Uri pickRandomImage() {
Cursor c = getContentResolver().query(
Images.Media.EXTERNAL_CONTENT_URI,
new String[] { ImageColumns._ID, ImageColumns.DATA },
ImageColumns.SIZE + ">?", new String[] { "90000" }, null);
Uri uri = null;
if (c != null) {
int total = c.getCount();
int position = (int) (Math.random() * total);
Log.d(LOG_TAG, "pickRandomImage. total images: " + total
+ ", position: " + position);
if (total > 0) {
if (c.moveToPosition(position)) {
String data = c.getString(c
.getColumnIndex(Images.ImageColumns.DATA));
long id = c.getLong(c
.getColumnIndex(Images.ImageColumns._ID));
uri = Uri.parse(data);
Log.d(LOG_TAG, uri.toString());
}
}
c.close();
}
return uri;
}
/**
* Return a new image file. Name is based on the current time. Parent folder
* will be the one created with createFolders
*
* @return
* @see #createFolders()
*/
private File generateOutputFileName() {
if (mGalleryFolder != null) {
if (mGalleryFolder.exists()) {
File file = new File(mGalleryFolder, "Fotor_"
+ System.currentTimeMillis() + ".jpg");
return file;
}
}
return null;
}
/**
* Once you've chosen an image you can start the feather activity
*
* @param uri
*/
private void startFeature(Uri uri) {
Log.d(LOG_TAG, "uri: " + uri);
// first check the external storage availability
if (!isExternalStorageAvilable()) {
new AlertDialog.Builder(this)
.setTitle(android.R.string.dialog_alert_title)
.setMessage("External Storage is not avilable").show();
return;
}
// create a temporary file where to store the resulting image
File file = generateOutputFileName();
if (null != file) {
mOutputFilePath = Uri.fromFile(file);
} else {
new AlertDialog.Builder(this)
.setTitle(android.R.string.dialog_alert_title)
.setMessage("Failed to create a new File").show();
return;
}
// Create the intent needed to start feather
Intent newIntent = new Intent(this, FotorSDKActivity.class);
// === INPUT IMAGE URI ===
// Set the source image uri
newIntent.setData(uri);
// === OUTPUT ====
// Optional
// Pass the uri of the destination image file.
// This will be the same uri you will receive in the onActivityResult
System.out.println("mOutputFilePath->:" + mOutputFilePath);
// newIntent.putExtra(FotorConstants.EXTRA_OUTPUT_PATH, mOutputFilePath);
// === OUTPUT QUALITY ===
// Optional
newIntent.putExtra(FotorConstants.EXTRA_OUTPUT_QUALITY, 90);
// === MAX SIZE ===
// Optional
// you can pass the maximum allowed image size (for the preview),
// otherwise feather will determine
// the max size based on the device informations.
// This will not affect the hi-res image size.
// Here we're passing the current display size as max image size because
// after
// the execution of Aviary we're saving the HI-RES image so we don't
// need a big
// image for the preview
final DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int max_size = Math.max(metrics.widthPixels, metrics.heightPixels);
max_size = (int) ((float) max_size / 1.4f);
newIntent.putExtra(FotorConstants.EXTRA_MAX_PREVIEW_SIZE, max_size);
mSessionId = FotorUtils.generateSessionId(this);
getContentResolver().delete(
SessionColumns.getContentUri(this, mSessionId), null, null);
Log.d(LOG_TAG,
"session: " + mSessionId + ", size: " + mSessionId.length());
newIntent.putExtra(FotorConstants.EXTRA_FOTOR_SESSION_ID, mSessionId);
// // === FEATURE LIST ===
// newIntent.putExtra(FotorConstants.EXTRA_FEATURE_LIST, new String[] {
// FotorFeaturesFactory.FeatureType.FX_EFFECTS.name(),
// FotorFeaturesFactory.FeatureType.BORDER.name() });
// Whether hide confirm dialog when user not saved the was changed bitmap
// This default value will show
// newIntent.putExtra(FotorConstants.EXTRA_HIDE_DISCARD_ALERT, false);
// start feather
startActivityForResult(newIntent, ACTION_REQUEST_FEATURE);
}
/**
* Check the external storage status
*
* @return
*/
private boolean isExternalStorageAvilable() {
String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state)) {
return true;
}
return false;
}
/**
* Try to create the required folder on the sdcard where images will be
* saved to.
*
* @return
*/
private File createFolders() {
File baseDir;
if (android.os.Build.VERSION.SDK_INT < 8) {
baseDir = Environment.getExternalStorageDirectory();
} else {
baseDir = Environment
.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
}
if (baseDir == null)
return Environment.getExternalStorageDirectory();
Log.d(LOG_TAG, "Pictures folder: " + baseDir.getAbsolutePath());
File fotorSDKFolder = new File(baseDir, FOLDER_NAME);
if (fotorSDKFolder.exists())
return fotorSDKFolder;
if (fotorSDKFolder.mkdirs())
return fotorSDKFolder;
return Environment.getExternalStorageDirectory();
}
class DownloadAsync extends AsyncTask implements
OnCancelListener {
ProgressDialog mProgress;
private Uri mUri;
@Override
protected void onPreExecute() {
super.onPreExecute();
mProgress = new ProgressDialog(MainActivity.this);
mProgress.setIndeterminate(true);
mProgress.setCancelable(true);
mProgress.setMessage("Loading image...");
mProgress.setOnCancelListener(this);
mProgress.show();
}
@Override
protected Bitmap doInBackground(Uri... params) {
mUri = params[0];
DisplayMetrics displayMetrics = getResources().getDisplayMetrics();
int maxW = (int) (displayMetrics.widthPixels / 1.5);
int maxH = (int) (displayMetrics.heightPixels / 1.5);
Bitmap bitmap = BitmapDecodeUtils.decode(getApplicationContext(),
mUri, maxW, maxH);
return bitmap;
}
@Override
protected void onPostExecute(Bitmap result) {
super.onPostExecute(result);
if (mProgress.getWindow() != null) {
mProgress.dismiss();
}
if (result != null) {
setImageURI(mUri, result);
} else {
Toast.makeText(MainActivity.this,
"Failed to load image " + mUri, Toast.LENGTH_SHORT)
.show();
}
}
@Override
public void onCancel(DialogInterface dialog) {
Log.i(LOG_TAG, "onProgressCancel");
this.cancel(true);
}
@Override
protected void onCancelled() {
super.onCancelled();
Log.i(LOG_TAG, "onCancelled");
}
}
}
================================================
FILE: FotorSDKDemo/.svn/pristine/b9/b9f3ebab942f1fcc978988f97adaba308bbc3856.svn-base
================================================
tableTexturetexturing(33, 0)(104, 76)(167, 168)(218, 255)(30, 0)(112, 71)(174, 189)(234, 255)(8, 30)(160, 122)(233, 255)SRCDSTtableTexture
================================================
FILE: FotorSDKDemo/.svn/pristine/be/be343c7a300518d0b06505feb2c6bf524ef6998a.svn-base
================================================
tableTexturetexturing(9, 0)(26, 7)(155, 108)(194, 159)(255, 253)(9, 0)(50, 19)(218, 194)(255, 255)(0, 0)(29, 9)(162, 116)(218, 194)(255, 255)SRCDSTtableTexture
================================================
FILE: FotorSDKDemo/.svn/pristine/bf/bf44fee7478e97bd8be7ec343d88043770203c01.svn-base
================================================
================================================
FILE: FotorSDKDemo/.svn/pristine/bf/bf9edbaaf9211827d72bbbea4ac10d79b4be0342.svn-base
================================================
{
"version": 1,
"category_name": "Charm",
"fonts_array": [{
"font_id": 1,
"font_name": "Sofia",
"font_normal": "Sofia",
"font_bold": "",
"font_italic": "",
"font_bolditalic": "Sofia"
},
{
"font_id": 2,
"font_name": "Ostrich Sans",
"font_normal": "Ostrich Sans",
"font_bold": "OstrichSans-Bold",
"font_italic": "",
"font_bolditalic": "OstrichSans-Bold"
},
{
"font_id": 3,
"font_name": "Bearpaw",
"font_normal": "Bearpaw",
"font_bold": "",
"font_italic": "",
"font_bolditalic": "Bearpaw"
},
{
"font_id": 4,
"font_name": "American Typewriter",
"font_normal": "AmericanTypewriter",
"font_bold": "",
"font_italic": "",
"font_bolditalic": "AmericanTypewriter-Bold"
},
{
"font_id": 5,
"font_name": "Stencil Std",
"font_normal": "Stencil Std",
"font_bold": "",
"font_italic": "",
"font_bolditalic": "Stencil Std"
},
{
"font_id": 6,
"font_name": "Brush Script MT",
"font_normal": "Brush Script",
"font_bold": "",
"font_italic": "",
"font_bolditalic": "Brush Script"
},
{
"font_id": 7,
"font_name": "Noteworthy",
"font_normal": "Noteworthy",
"font_bold": "Noteworthy-Bold",
"font_italic": "",
"font_bolditalic": "Noteworthy-Bold"
},
{
"font_id": 8,
"font_name": "Miama",
"font_normal": "Miama",
"font_bold": "",
"font_italic": "",
"font_bolditalic": "Miama"
},
{
"font_id": 9,
"font_name": "Blackout",
"font_normal": "Blackout",
"font_bold": "",
"font_italic": "",
"font_bolditalic": "Blackout"
},
{
"font_id": 10,
"font_name": "Muli",
"font_normal": "Muli",
"font_bold": "",
"font_italic": "Muli-Italic",
"font_bolditalic": "Muli-Italic"
},
{
"font_id": 11,
"font_name": "padaloma italic",
"font_normal": "padaloma",
"font_bold": "",
"font_italic": "",
"font_bolditalic": "padaloma"
},
{
"font_id": 12,
"font_name": "Josefin Sans",
"font_normal": "Josefin Sans",
"font_bold": "JosefinSans-Bold",
"font_italic": "JosefinSans-Italic",
"font_bolditalic": "JosefinSans-BoldItalic"
},
{
"font_id": 13,
"font_name": "Garogier",
"font_normal": "Garogier",
"font_bold": "",
"font_italic": "",
"font_bolditalic": "Garogier"
}
]
}
================================================
FILE: FotorSDKDemo/.svn/pristine/c2/c23441412ad977e31ea47c1c9a36b40e7ccfd9ed.svn-base
================================================
SRCDST-1.0-1.0-1.0-1.0-1.0-1.0
================================================
FILE: FotorSDKDemo/.svn/pristine/c2/c2c73d6a2e7bbbb96d7bc4ea437dc3f1fa91def2.svn-base
================================================
tableTexturetexturing(0, 0)(69, 93)(126, 160)(210, 232)(255, 255)(0, 0)(36, 47)(135, 169)(250, 254)(0, 0)(28, 30)(107, 137)(147, 206)(255, 255)SRCDSTtableTexture
================================================
FILE: FotorSDKDemo/.svn/pristine/c3/c3a026561fa183457b2a6d76c8ff1c41571de3e5.svn-base
================================================
SRClevelGetScale0.10.11.0levelTMPquadric0.01.0tableTexturetexturing(0, 0)(127, 145)(255, 229)(0, 0)(63, 66)(127, 144)(255, 223)(0, 0)(127, 117)(255, 195)TMPDSTtableTexture
================================================
FILE: FotorSDKDemo/.svn/pristine/c4/c45b011a7116d9ca54d4a6016811dba3b50daa14.svn-base
================================================
================================================
FILE: FotorSDKDemo/.svn/pristine/c6/c638ea07b1de337b786d0e0abe47669d7c9a1428.svn-base
================================================
package com.example.fotorsdkdemo;
import java.io.File;
import com.everimaging.fotorsdk.FotorConstants;
import com.everimaging.fotorsdk.FotorSDKActivity;
import com.everimaging.fotorsdk.FotorUtils;
import com.everimaging.fotorsdk.provider.FotorContentProvider;
import com.everimaging.fotorsdk.provider.FotorContentProvider.ActionsColumns.Action;
import com.everimaging.fotorsdk.provider.FotorContentProvider.ActionsColumns;
import com.everimaging.fotorsdk.provider.FotorContentProvider.SessionColumns;
import com.everimaging.fotorsdk.provider.FotorContentProvider.SessionColumns.Session;
import com.everimaging.fotorsdk.utils.BitmapDecodeUtils;
import com.everimaging.fotorsdk.utils.Utils;
import java.util.ArrayList;
import java.util.List;
import com.everimaging.fotorsdk.engine.FotorHDFilter;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnCancelListener;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.media.MediaScannerConnection;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore.Images;
import android.provider.MediaStore.Images.ImageColumns;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.View;
import android.view.View.OnLongClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Toast;
public class MainActivity extends Activity {
private static final int ACTION_REQUEST_FEATURE = 2;
private static final int ACTION_REQUEST_GALLERY = 3;
private static final int EXTERNAL_STORAGE_UNAVAILABLE = 1;
public static final String LOG_TAG = "fotorsdk_demo";
/** Folder name on the sdcard where the images will be saved **/
private static final String FOLDER_NAME = "FotorSDK";
Button mEditButton;
Button mGalleryButton;
ImageView mImage;
View mImageContainer;
String mOutputFilePath;
Uri mImageUri;
private File mGalleryFolder;
/** session id for the hi-res post processing */
private String mSessionId;
@Override
protected void onCreate(Bundle savedInstanceState) {
Log.i(LOG_TAG, "onCreate");
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mEditButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mImageUri != null) {
startFeature(mImageUri);
}
}
});
mGalleryButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
pickFromGallery();
}
});
mImageContainer.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Uri uri = pickRandomImage();
if (uri != null) {
Log.d(LOG_TAG, "image uri: " + uri);
loadAsync(uri);
}
}
});
mImageContainer.setLongClickable(true);
mImageContainer.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
if (mImageUri != null) {
Log.d(LOG_TAG, "onLongClick: " + v);
openContextMenu(v);
return true;
}
return false;
}
});
mGalleryFolder = createFolders();
mImageContainer.performClick();
}
/**
* Start the activity to pick an image from the user gallery
*/
private void pickFromGallery() {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
Intent chooser = Intent.createChooser(intent, "Choose a Picture");
startActivityForResult(chooser, ACTION_REQUEST_GALLERY);
}
@Override
protected void onResume() {
Log.i(LOG_TAG, "onResume");
super.onResume();
if (getIntent() != null) {
handleIntent(getIntent());
setIntent(new Intent());
}
}
/**
* Handle the incoming {@link Intent}
*/
private void handleIntent(Intent intent) {
String action = intent.getAction();
if (null != action) {
if (Intent.ACTION_SEND.equals(action)) {
Bundle extras = intent.getExtras();
if (extras != null && extras.containsKey(Intent.EXTRA_STREAM)) {
Uri uri = (Uri) extras.get(Intent.EXTRA_STREAM);
loadAsync(uri);
}
} else if (Intent.ACTION_VIEW.equals(action)) {
Uri data = intent.getData();
Log.d(LOG_TAG, "data: " + data);
loadAsync(data);
}
}
}
/**
* Load the incoming Image
*
* @param uri
*/
private void loadAsync(final Uri uri) {
Log.i(LOG_TAG, "loadAsync: " + uri);
Drawable toRecycle = mImage.getDrawable();
if (toRecycle != null && toRecycle instanceof BitmapDrawable) {
if (((BitmapDrawable) mImage.getDrawable()).getBitmap() != null)
((BitmapDrawable) mImage.getDrawable()).getBitmap().recycle();
}
mImage.setImageDrawable(null);
mImageUri = null;
DownloadAsync task = new DownloadAsync();
task.execute(uri);
}
@Override
protected void onDestroy() {
Log.i(LOG_TAG, "onDestroy");
super.onDestroy();
mOutputFilePath = null;
}
@Override
public void onContentChanged() {
super.onContentChanged();
System.out.println("context:" + this.getPackageName());
mEditButton = (Button) findViewById(R.id.button2);
mGalleryButton = (Button) findViewById(R.id.button_gallery);
mImage = (ImageView) findViewById(R.id.image);
mImageContainer = findViewById(R.id.image_container);
}
@Override
/**
* This method is called when feather has completed ( ie. user clicked on "done" or just exit the activity without saving ).
* If user clicked the "done" button you'll receive RESULT_OK as resultCode, RESULT_CANCELED otherwise.
*
* @param requestCode
* - it is the code passed with startActivityForResult
* @param resultCode
* - result code of the activity launched ( it can be RESULT_OK or RESULT_CANCELED )
* @param data
* - the result data
*/
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
switch (requestCode) {
case ACTION_REQUEST_FEATURE: {
Uri uri = Uri.parse(mOutputFilePath);
loadAsync(uri);
new ProcessHDTask(this).execute();
}
break;
case ACTION_REQUEST_GALLERY: {
Uri uri = data.getData();
loadAsync(uri);
}
break;
}
} else if (resultCode == RESULT_CANCELED) {
switch (requestCode) {
case ACTION_REQUEST_FEATURE:
if (mSessionId != null)
deleteSession(mSessionId);
break;
}
}
}
private String onSaveCompletion() {
Cursor cursor = getContentResolver().query(
ActionsColumns.getContentUri(this, mSessionId), null, null,
null, null);
if (cursor != null && cursor.getCount() > 0) {
List actions = new ArrayList();
while (cursor.moveToNext()) {
Action action = Action.create(cursor);
System.out.println("action:" + action);
actions.add(action);
}
cursor.close();
} else {
System.out.println("cursor doesn't have datas.");
}
Cursor cursor2 = getContentResolver().query(
SessionColumns.getContentUri(this, mSessionId), null, null,
null, null);
Session session = Session.create(cursor2);
if (session != null) {
FotorHDFilter fotorHDFilter = new FotorHDFilter(this, mSessionId);
fotorHDFilter.loadImage(session.file_name);
fotorHDFilter.executeFilter();
String dstPath = Utils.getSDPath() + "/testOriginal.jpg";
fotorHDFilter.save(dstPath);
fotorHDFilter.dispose();
deleteSession(mSessionId);
return dstPath;
}
return null;
}
class ProcessHDTask extends AsyncTask {
private ProgressDialog mDialog;
private Context mContext;
public ProcessHDTask(Context context) {
this.mContext = context;
}
@Override
protected void onPreExecute() {
mDialog = ProgressDialog.show(mContext, "Process HD",
"Please wait...");
}
@Override
protected String doInBackground(Void... params) {
return onSaveCompletion();
}
@Override
protected void onPostExecute(String result) {
mDialog.dismiss();
String msg = "Process Error";
if (result != null) {
msg = result;
}
Toast.makeText(mContext, msg, Toast.LENGTH_LONG).show();
}
}
/**
* Delete the session and all it's actions. We do not need it anymore.
* Note that this is optional. All old sessions are automatically removed in
* Feather.
*
* @param session_id
*/
private void deleteSession(final String session_id) {
Uri uri = FotorContentProvider.SessionColumns.getContentUri(this,
session_id);
int count = getContentResolver().delete(uri, null, null);
System.out.println("delete session count:" + count);
}
/**
* Given an Uri load the bitmap into the current ImageView and resize it to
* fit the image container size
*
* @param uri
*/
@SuppressWarnings("deprecation")
private boolean setImageURI(final Uri uri, final Bitmap bitmap) {
Log.d(LOG_TAG,
"image size: " + bitmap.getWidth() + "x" + bitmap.getHeight());
mImage.setImageBitmap(bitmap);
mImage.setBackgroundDrawable(null);
mEditButton.setEnabled(true);
mImageUri = uri;
return true;
}
/**
* We need to notify the MediaScanner when a new file is created. In this
* way all the gallery applications will be notified too.
*
* @param file
*/
private void updateMedia(String filepath) {
Log.i(LOG_TAG, "updateMedia: " + filepath);
MediaScannerConnection.scanFile(getApplicationContext(),
new String[] { filepath }, null, null);
}
/**
* Pick a random image from the user gallery
*
* @return
*/
@SuppressWarnings("unused")
private Uri pickRandomImage() {
Cursor c = getContentResolver().query(
Images.Media.EXTERNAL_CONTENT_URI,
new String[] { ImageColumns._ID, ImageColumns.DATA },
ImageColumns.SIZE + ">?", new String[] { "90000" }, null);
Uri uri = null;
if (c != null) {
int total = c.getCount();
int position = (int) (Math.random() * total);
Log.d(LOG_TAG, "pickRandomImage. total images: " + total
+ ", position: " + position);
if (total > 0) {
if (c.moveToPosition(position)) {
String data = c.getString(c
.getColumnIndex(Images.ImageColumns.DATA));
long id = c.getLong(c
.getColumnIndex(Images.ImageColumns._ID));
uri = Uri.parse(data);
Log.d(LOG_TAG, uri.toString());
}
}
c.close();
}
return uri;
}
/**
* Return a new image file. Name is based on the current time. Parent folder
* will be the one created with createFolders
*
* @return
* @see #createFolders()
*/
private File generateOutputFileName() {
if (mGalleryFolder != null) {
if (mGalleryFolder.exists()) {
File file = new File(mGalleryFolder, "Fotor_"
+ System.currentTimeMillis() + ".jpg");
return file;
}
}
return null;
}
/**
* Once you've chosen an image you can start the feather activity
*
* @param uri
*/
@SuppressWarnings("deprecation")
private void startFeature(Uri uri) {
Log.d(LOG_TAG, "uri: " + uri);
// first check the external storage availability
if (!isExternalStorageAvilable()) {
showDialog(EXTERNAL_STORAGE_UNAVAILABLE);
return;
}
// create a temporary file where to store the resulting image
File file = generateOutputFileName();
if (null != file) {
mOutputFilePath = file.getAbsolutePath();
} else {
new AlertDialog.Builder(this)
.setTitle(android.R.string.dialog_alert_title)
.setMessage("Failed to create a new File").show();
return;
}
// Create the intent needed to start feather
Intent newIntent = new Intent(this, FotorSDKActivity.class);
// === INPUT IMAGE URI ===
// Set the source image uri
newIntent.setData(uri);
// === OUTPUT ====
// Optional
// Pass the uri of the destination image file.
// This will be the same uri you will receive in the onActivityResult
System.out.println("mOutputFilePath->:" + mOutputFilePath);
newIntent.putExtra(FotorConstants.EXTRA_OUTPUT_PATH, mOutputFilePath);
// === OUTPUT QUALITY ===
// Optional
newIntent.putExtra(FotorConstants.EXTRA_OUTPUT_QUALITY, 90);
// === MAX SIZE ===
// Optional
// you can pass the maximum allowed image size (for the preview),
// otherwise feather will determine
// the max size based on the device informations.
// This will not affect the hi-res image size.
// Here we're passing the current display size as max image size because
// after
// the execution of Aviary we're saving the HI-RES image so we don't
// need a big
// image for the preview
final DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int max_size = Math.max(metrics.widthPixels, metrics.heightPixels);
max_size = (int) ((float) max_size / 1.4f);
newIntent.putExtra(FotorConstants.EXTRA_MAX_PREVIEW_SIZE, max_size);
mSessionId = FotorUtils.generateSessionId(this);
getContentResolver().delete(
SessionColumns.getContentUri(this, mSessionId), null, null);
Log.d(LOG_TAG,
"session: " + mSessionId + ", size: " + mSessionId.length());
newIntent.putExtra(FotorConstants.EXTRA_FOTOR_SESSION_ID, mSessionId);
// === FEATURE LIST ===
// newIntent.putExtra(FotorConstants.EXTRA_FEATURE_LIST, new String[] {
// FotorFeaturesFactory.FeatureType.FX_EFFECTS.name(),
// FotorFeaturesFactory.FeatureType.BORDER.name() });
// start feather
startActivityForResult(newIntent, ACTION_REQUEST_FEATURE);
}
/**
* Check the external storage status
*
* @return
*/
private boolean isExternalStorageAvilable() {
String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state)) {
return true;
}
return false;
}
/**
* Try to create the required folder on the sdcard where images will be
* saved to.
*
* @return
*/
private File createFolders() {
File baseDir;
if (android.os.Build.VERSION.SDK_INT < 8) {
baseDir = Environment.getExternalStorageDirectory();
} else {
baseDir = Environment
.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
}
if (baseDir == null)
return Environment.getExternalStorageDirectory();
Log.d(LOG_TAG, "Pictures folder: " + baseDir.getAbsolutePath());
File fotorSDKFolder = new File(baseDir, FOLDER_NAME);
if (fotorSDKFolder.exists())
return fotorSDKFolder;
if (fotorSDKFolder.mkdirs())
return fotorSDKFolder;
return Environment.getExternalStorageDirectory();
}
class DownloadAsync extends AsyncTask implements
OnCancelListener {
ProgressDialog mProgress;
private Uri mUri;
@Override
protected void onPreExecute() {
super.onPreExecute();
mProgress = new ProgressDialog(MainActivity.this);
mProgress.setIndeterminate(true);
mProgress.setCancelable(true);
mProgress.setMessage("Loading image...");
mProgress.setOnCancelListener(this);
mProgress.show();
}
@Override
protected Bitmap doInBackground(Uri... params) {
mUri = params[0];
DisplayMetrics displayMetrics = getResources().getDisplayMetrics();
int maxW = (int) (displayMetrics.widthPixels / 1.5);
int maxH = (int) (displayMetrics.heightPixels / 1.5);
Bitmap bitmap = BitmapDecodeUtils.decode(getApplicationContext(),
mUri, maxW, maxH);
// bitmap = BitmapFactory.decodeFile(mUri.toString(), options);
// int angel = 0;
// try {
// ExifInterface exif = new ExifInterface(mUri.toString());
// int orientation = exif.getAttributeInt(
// ExifInterface.TAG_ORIENTATION, -1);
// if (orientation != -1) {
// switch (orientation) {
// case ExifInterface.ORIENTATION_ROTATE_90:
// angel = 90;
// break;
// case ExifInterface.ORIENTATION_ROTATE_180:
// angel = 180;
// break;
// case ExifInterface.ORIENTATION_ROTATE_270:
// angel = 270;
// break;
// default:
// break;
// }
// }
// } catch (IOException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
// if (angel != 0) {
// Matrix matrix = new Matrix();
// matrix.setRotate(angel);
// bitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(),
// bitmap.getHeight(), matrix, true);
// }
return bitmap;
}
@Override
protected void onPostExecute(Bitmap result) {
super.onPostExecute(result);
if (mProgress.getWindow() != null) {
mProgress.dismiss();
}
if (result != null) {
setImageURI(mUri, result);
} else {
Toast.makeText(MainActivity.this,
"Failed to load image " + mUri, Toast.LENGTH_SHORT)
.show();
}
}
@Override
public void onCancel(DialogInterface dialog) {
Log.i(LOG_TAG, "onProgressCancel");
this.cancel(true);
}
@Override
protected void onCancelled() {
super.onCancelled();
Log.i(LOG_TAG, "onCancelled");
}
}
}
================================================
FILE: FotorSDKDemo/.svn/pristine/c7/c76f4caaa7a8dfe9727fa93001b3aee3b22d6716.svn-base
================================================
================================================
FILE: FotorSDKDemo/.svn/pristine/c8/c8599aad41212c2740da5be7edf2e2c783ca6b3c.svn-base
================================================
package com.example.fotorsdkdemo;
import java.io.File;
import com.everimaging.fotorsdk.FotorConstants;
import com.everimaging.fotorsdk.FotorFeaturesFactory;
import com.everimaging.fotorsdk.FotorSDKActivity;
import com.everimaging.fotorsdk.FotorSDKVersion;
import com.everimaging.fotorsdk.FotorUtils;
import com.everimaging.fotorsdk.provider.FotorContentProvider;
import com.everimaging.fotorsdk.provider.FotorContentProvider.SessionColumns;
import com.everimaging.fotorsdk.provider.FotorContentProvider.SessionColumns.Session;
import com.everimaging.fotorsdk.utils.BitmapDecodeUtils;
import com.everimaging.fotorsdk.utils.Utils;
import com.everimaging.fotorsdk.engine.FotorHDFilter;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnCancelListener;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.media.MediaScannerConnection;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore.Images;
import android.provider.MediaStore.Images.ImageColumns;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
/**
* Sample main activity
*
* @description
*
* @author John.Zhang
* @version 1.0
* @create Apr 12, 2014 3:06:39 PM
* @update Apr 12, 2014 3:06:39 PM
*/
public class MainActivity extends Activity {
private static final int ACTION_REQUEST_FEATURE = 2;
private static final int ACTION_REQUEST_GALLERY = 3;
private static final int EXTERNAL_STORAGE_UNAVAILABLE = 1;
public static final String LOG_TAG = "fotorsdk_demo";
/** Folder name on the sdcard where the images will be saved **/
private static final String FOLDER_NAME = "FotorSDK";
/** Edit sample button */
Button mEditButton;
/** Call gallery button */
Button mGalleryButton;
/** Display image view */
ImageView mImage;
/** The path for output file */
Uri mOutputFilePath;
/** Image uri for image editor */
Uri mImageUri;
/** Display version label for DEBUG */
private TextView mSDKVersionLabel;
/** The sample image uri. */
private Uri mSampleUri;
private File mGalleryFolder;
/** session id for the hi-res post processing */
private String mSessionId;
@Override
protected void onCreate(Bundle savedInstanceState) {
Log.i(LOG_TAG, "onCreate");
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mEditButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mImageUri != null) {
startFeature(mImageUri);
}
}
});
mGalleryButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
pickFromGallery();
}
});
mGalleryFolder = createFolders();
// add sample image
mSampleUri = Uri.parse("file:///android_asset/sample.jpg");
loadAsync(mSampleUri);
if (BuildConfig.DEBUG) {
mSDKVersionLabel.setText("V" + FotorSDKVersion.FOTOR_SDK_VERSION);
}
}
/**
* Start the activity to pick an image from the user gallery
*/
private void pickFromGallery() {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
Intent chooser = Intent.createChooser(intent, "Choose a Picture");
startActivityForResult(chooser, ACTION_REQUEST_GALLERY);
}
@Override
protected void onResume() {
Log.i(LOG_TAG, "onResume");
super.onResume();
if (getIntent() != null) {
handleIntent(getIntent());
setIntent(new Intent());
}
}
/**
* Handle the incoming {@link Intent}
*/
private void handleIntent(Intent intent) {
String action = intent.getAction();
if (null != action) {
if (Intent.ACTION_SEND.equals(action)) {
Bundle extras = intent.getExtras();
if (extras != null && extras.containsKey(Intent.EXTRA_STREAM)) {
Uri uri = (Uri) extras.get(Intent.EXTRA_STREAM);
loadAsync(uri);
}
} else if (Intent.ACTION_VIEW.equals(action)) {
Uri data = intent.getData();
Log.d(LOG_TAG, "data: " + data);
loadAsync(data);
}
}
}
/**
* Load the incoming Image
*
* @param uri
*/
private void loadAsync(final Uri uri) {
Log.i(LOG_TAG, "loadAsync: " + uri);
Drawable toRecycle = mImage.getDrawable();
if (toRecycle != null && toRecycle instanceof BitmapDrawable) {
if (((BitmapDrawable) mImage.getDrawable()).getBitmap() != null)
((BitmapDrawable) mImage.getDrawable()).getBitmap().recycle();
}
mImage.setImageDrawable(null);
mImageUri = null;
DownloadAsync task = new DownloadAsync();
task.execute(uri);
}
@Override
protected void onDestroy() {
Log.i(LOG_TAG, "onDestroy");
super.onDestroy();
mOutputFilePath = null;
}
@Override
public void onContentChanged() {
super.onContentChanged();
System.out.println("context:" + this.getPackageName());
mEditButton = (Button) findViewById(R.id.button2);
mGalleryButton = (Button) findViewById(R.id.button_gallery);
mImage = (ImageView) findViewById(R.id.image);
mSDKVersionLabel = (TextView) findViewById(R.id.fotor_sdk_version_label);
}
@Override
/**
* This method is called when feather has completed ( ie. user clicked on "done" or just exit the activity without saving ).
* If user clicked the "done" button you'll receive RESULT_OK as resultCode, RESULT_CANCELED otherwise.
*
* @param requestCode
* - it is the code passed with startActivityForResult
* @param resultCode
* - result code of the activity launched ( it can be RESULT_OK or RESULT_CANCELED )
* @param data
* - the result data
*/
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
switch (requestCode) {
case ACTION_REQUEST_FEATURE: {
Uri uri = data.getData();
Bitmap bitmap = BitmapDecodeUtils.decode(this, uri, 0, 0);
setImageURI(uri, bitmap);
new ProcessHDTask(this).execute();
}
break;
case ACTION_REQUEST_GALLERY: {
Uri uri = data.getData();
loadAsync(uri);
startFeature(uri);
}
break;
}
} else if (resultCode == RESULT_CANCELED) {
switch (requestCode) {
case ACTION_REQUEST_FEATURE:
if (mSessionId != null)
deleteSession(mSessionId);
break;
}
}
}
private String onSaveCompletion() {
Uri sessionUri = SessionColumns.getContentUri(this, mSessionId);
Cursor cursor = getContentResolver().query(sessionUri, null, null,
null, null);
Session session = Session.create(cursor);
if (session != null) {
FotorHDFilter fotorHDFilter = new FotorHDFilter(this, session);
fotorHDFilter.loadImage();
fotorHDFilter.executeFilter();
String dstPath = Utils.getSDPath() + "/testOriginal.jpg";
fotorHDFilter.save(dstPath);
fotorHDFilter.dispose();
deleteSession(mSessionId);
return dstPath;
}
return null;
}
class ProcessHDTask extends AsyncTask {
private ProgressDialog mDialog;
private Context mContext;
public ProcessHDTask(Context context) {
this.mContext = context;
}
@Override
protected void onPreExecute() {
mDialog = ProgressDialog.show(mContext, "Process HD",
"Please wait...");
}
@Override
protected String doInBackground(Void... params) {
return onSaveCompletion();
}
@Override
protected void onPostExecute(String result) {
mDialog.dismiss();
String msg = "Process Error";
if (result != null) {
msg = result;
}
Toast.makeText(mContext, msg, Toast.LENGTH_LONG).show();
}
}
/**
* Delete the session and all it's actions. We do not need it anymore.
* Note that this is optional. All old sessions are automatically removed in
* Feather.
*
* @param session_id
*/
private void deleteSession(final String session_id) {
Uri uri = FotorContentProvider.SessionColumns.getContentUri(this,
session_id);
int count = getContentResolver().delete(uri, null, null);
System.out.println("delete session count:" + count);
}
/**
* Given an Uri load the bitmap into the current ImageView and resize it to
* fit the image container size
*
* @param uri
*/
@SuppressWarnings("deprecation")
private boolean setImageURI(final Uri uri, final Bitmap bitmap) {
Log.d(LOG_TAG,
"image size: " + bitmap.getWidth() + "x" + bitmap.getHeight());
mImage.setImageBitmap(bitmap);
mImage.setBackgroundDrawable(null);
mEditButton.setEnabled(true);
mImageUri = uri;
return true;
}
/**
* We need to notify the MediaScanner when a new file is created. In this
* way all the gallery applications will be notified too.
*
* @param file
*/
private void updateMedia(String filepath) {
Log.i(LOG_TAG, "updateMedia: " + filepath);
MediaScannerConnection.scanFile(getApplicationContext(),
new String[] { filepath }, null, null);
}
/**
* Pick a random image from the user gallery
*
* @return
*/
@SuppressWarnings("unused")
private Uri pickRandomImage() {
Cursor c = getContentResolver().query(
Images.Media.EXTERNAL_CONTENT_URI,
new String[] { ImageColumns._ID, ImageColumns.DATA },
ImageColumns.SIZE + ">?", new String[] { "90000" }, null);
Uri uri = null;
if (c != null) {
int total = c.getCount();
int position = (int) (Math.random() * total);
Log.d(LOG_TAG, "pickRandomImage. total images: " + total
+ ", position: " + position);
if (total > 0) {
if (c.moveToPosition(position)) {
String data = c.getString(c
.getColumnIndex(Images.ImageColumns.DATA));
long id = c.getLong(c
.getColumnIndex(Images.ImageColumns._ID));
uri = Uri.parse(data);
Log.d(LOG_TAG, uri.toString());
}
}
c.close();
}
return uri;
}
/**
* Return a new image file. Name is based on the current time. Parent folder
* will be the one created with createFolders
*
* @return
* @see #createFolders()
*/
private File generateOutputFileName() {
if (mGalleryFolder != null) {
if (mGalleryFolder.exists()) {
File file = new File(mGalleryFolder, "Fotor_"
+ System.currentTimeMillis() + ".jpg");
return file;
}
}
return null;
}
/**
* Once you've chosen an image you can start the feather activity
*
* @param uri
*/
@SuppressWarnings("deprecation")
private void startFeature(Uri uri) {
Log.d(LOG_TAG, "uri: " + uri);
// first check the external storage availability
if (!isExternalStorageAvilable()) {
showDialog(EXTERNAL_STORAGE_UNAVAILABLE);
return;
}
// create a temporary file where to store the resulting image
File file = generateOutputFileName();
if (null != file) {
mOutputFilePath = Uri.fromFile(file);
} else {
new AlertDialog.Builder(this)
.setTitle(android.R.string.dialog_alert_title)
.setMessage("Failed to create a new File").show();
return;
}
// Create the intent needed to start feather
Intent newIntent = new Intent(this, FotorSDKActivity.class);
// === INPUT IMAGE URI ===
// Set the source image uri
newIntent.setData(uri);
// === OUTPUT ====
// Optional
// Pass the uri of the destination image file.
// This will be the same uri you will receive in the onActivityResult
System.out.println("mOutputFilePath->:" + mOutputFilePath);
// newIntent.putExtra(FotorConstants.EXTRA_OUTPUT_PATH, mOutputFilePath);
// === OUTPUT QUALITY ===
// Optional
newIntent.putExtra(FotorConstants.EXTRA_OUTPUT_QUALITY, 90);
// === MAX SIZE ===
// Optional
// you can pass the maximum allowed image size (for the preview),
// otherwise feather will determine
// the max size based on the device informations.
// This will not affect the hi-res image size.
// Here we're passing the current display size as max image size because
// after
// the execution of Aviary we're saving the HI-RES image so we don't
// need a big
// image for the preview
final DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int max_size = Math.max(metrics.widthPixels, metrics.heightPixels);
max_size = (int) ((float) max_size / 1.4f);
newIntent.putExtra(FotorConstants.EXTRA_MAX_PREVIEW_SIZE, max_size);
mSessionId = FotorUtils.generateSessionId(this);
getContentResolver().delete(
SessionColumns.getContentUri(this, mSessionId), null, null);
Log.d(LOG_TAG,
"session: " + mSessionId + ", size: " + mSessionId.length());
newIntent.putExtra(FotorConstants.EXTRA_FOTOR_SESSION_ID, mSessionId);
// // === FEATURE LIST ===
// newIntent.putExtra(FotorConstants.EXTRA_FEATURE_LIST, new String[] {
// FotorFeaturesFactory.FeatureType.FX_EFFECTS.name(),
// FotorFeaturesFactory.FeatureType.BORDER.name() });
// start feather
startActivityForResult(newIntent, ACTION_REQUEST_FEATURE);
}
/**
* Check the external storage status
*
* @return
*/
private boolean isExternalStorageAvilable() {
String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state)) {
return true;
}
return false;
}
/**
* Try to create the required folder on the sdcard where images will be
* saved to.
*
* @return
*/
private File createFolders() {
File baseDir;
if (android.os.Build.VERSION.SDK_INT < 8) {
baseDir = Environment.getExternalStorageDirectory();
} else {
baseDir = Environment
.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
}
if (baseDir == null)
return Environment.getExternalStorageDirectory();
Log.d(LOG_TAG, "Pictures folder: " + baseDir.getAbsolutePath());
File fotorSDKFolder = new File(baseDir, FOLDER_NAME);
if (fotorSDKFolder.exists())
return fotorSDKFolder;
if (fotorSDKFolder.mkdirs())
return fotorSDKFolder;
return Environment.getExternalStorageDirectory();
}
class DownloadAsync extends AsyncTask implements
OnCancelListener {
ProgressDialog mProgress;
private Uri mUri;
@Override
protected void onPreExecute() {
super.onPreExecute();
mProgress = new ProgressDialog(MainActivity.this);
mProgress.setIndeterminate(true);
mProgress.setCancelable(true);
mProgress.setMessage("Loading image...");
mProgress.setOnCancelListener(this);
mProgress.show();
}
@Override
protected Bitmap doInBackground(Uri... params) {
mUri = params[0];
DisplayMetrics displayMetrics = getResources().getDisplayMetrics();
int maxW = (int) (displayMetrics.widthPixels / 1.5);
int maxH = (int) (displayMetrics.heightPixels / 1.5);
Bitmap bitmap = BitmapDecodeUtils.decode(getApplicationContext(),
mUri, maxW, maxH);
return bitmap;
}
@Override
protected void onPostExecute(Bitmap result) {
super.onPostExecute(result);
if (mProgress.getWindow() != null) {
mProgress.dismiss();
}
if (result != null) {
setImageURI(mUri, result);
} else {
Toast.makeText(MainActivity.this,
"Failed to load image " + mUri, Toast.LENGTH_SHORT)
.show();
}
}
@Override
public void onCancel(DialogInterface dialog) {
Log.i(LOG_TAG, "onProgressCancel");
this.cancel(true);
}
@Override
protected void onCancelled() {
super.onCancelled();
Log.i(LOG_TAG, "onCancelled");
}
}
}
================================================
FILE: FotorSDKDemo/.svn/pristine/ca/ca5b6be5c09bf337b98c9ae5f0003e71351cdc84.svn-base
================================================
vtg.pngSRCdst0.650, 0.2935, 0.0570.1495, 0.7935, 0.0570.1495, 0.2935, 0.557tableTexture1texturing(4, 35)(71, 79)(140, 160)(178, 233)(209, 255)(9, 0)(73, 61)(140, 162)(203, 224)(248, 248)(0, 31)(110, 102)(145, 148)(195, 183)(233, 213)(253, 236)tableTexture2texturing(5, 37)(69, 85)(119, 151)(157, 213)(208, 255)(13, 5)(74, 78)(109, 144)(156, 201)(250, 250)(2, 36)(63, 73)(93, 112)(175, 190)(241, 227)(255, 235)dsttableTexture1dst_adsttableTexture2dst_bdst_adst_bspecialAlphaTexture
================================================
FILE: FotorSDKDemo/.svn/pristine/cc/cc20d32e79cef0c3a4289b3e8b3bfe689b8ffbc8.svn-base
================================================
{
"version": 1,
"category_name": "Charm",
"fonts_array": [{
"font_id": 1,
"font_name": "Sofia",
"font_normal": "Sofia",
"font_bold": "",
"font_italic": "",
"font_bolditalic": "Sofia"
},
{
"font_id": 2,
"font_name": "Ostrich Sans",
"font_normal": "Ostrich Sans",
"font_bold": "OstrichSans-Bold",
"font_italic": "",
"font_bolditalic": "OstrichSans-Bold"
},
{
"font_id": 3,
"font_name": "Bearpaw",
"font_normal": "Bearpaw",
"font_bold": "",
"font_italic": "",
"font_bolditalic": "Bearpaw"
},
{
"font_id": 4,
"font_name": "American Typewriter",
"font_normal": "AmericanTypewriter",
"font_bold": "",
"font_italic": "",
"font_bolditalic": "AmericanTypewriter-Bold"
},
{
"font_id": 5,
"font_name": "Stencil Std",
"font_normal": "Stencil Std",
"font_bold": "",
"font_italic": "",
"font_bolditalic": "Stencil Std"
},
{
"font_id": 6,
"font_name": "Brush Script MT",
"font_normal": "Brush Script",
"font_bold": "",
"font_italic": "",
"font_bolditalic": "Brush Script"
},
{
"font_id": 7,
"font_name": "Noteworthy",
"font_normal": "Noteworthy",
"font_bold": "",
"font_italic": "",
"font_bolditalic": ""
},
{
"font_id": 8,
"font_name": "Miama",
"font_normal": "Miama",
"font_bold": "",
"font_italic": "",
"font_bolditalic": "Miama"
},
{
"font_id": 9,
"font_name": "Blackout",
"font_normal": "Blackout",
"font_bold": "",
"font_italic": "",
"font_bolditalic": "Blackout"
},
{
"font_id": 10,
"font_name": "Muli",
"font_normal": "Muli",
"font_bold": "",
"font_italic": "Muli-Italic",
"font_bolditalic": "Muli-Italic"
},
{
"font_id": 11,
"font_name": "padaloma italic",
"font_normal": "padaloma",
"font_bold": "",
"font_italic": "",
"font_bolditalic": "padaloma"
},
{
"font_id": 12,
"font_name": "Josefin Sans",
"font_normal": "Josefin Sans",
"font_bold": "JosefinSans-Bold",
"font_italic": "JosefinSans-Italic",
"font_bolditalic": "JosefinSans-BoldItalic"
},
{
"font_id": 13,
"font_name": "Garogier",
"font_normal": "Garogier",
"font_bold": "",
"font_italic": "",
"font_bolditalic": "Garogier"
}
]
}
================================================
FILE: FotorSDKDemo/.svn/pristine/cc/ccbfb0bce061fdc77c89d57b79abababbe498b25.svn-base
================================================
SRCtechnicolor0.992, 0.137, 0.3140.204, 0.98, 0.725technicolorDSTlinear0.00.7
================================================
FILE: FotorSDKDemo/.svn/pristine/d2/d2c70b5f789a420e8fb9aafe2f197a7d852acf47.svn-base
================================================
================================================
FILE: FotorSDKDemo/.svn/pristine/d2/d2cf8c1c7967e5c36aee75d35aa80376db1464aa.svn-base
================================================
tableTexturetexturing(2, 2)(16, 30)(72, 112)(135, 185)(252, 255)(2, 1)(30, 42)(55, 84)(157, 207)(238, 249)(1, 0)(26, 17)(67, 106)(114, 165)(231, 250)SRCDSTtableTexture
================================================
FILE: FotorSDKDemo/.svn/pristine/d2/d2d1c889e08d06619782c4bad9c91d7a7e538d60.svn-base
================================================
[["stickers_text_1.png",
"stickers_text_1_icon.png"],
["stickers_text_2.png",
"stickers_text_2_icon.png"],
["stickers_text_3.png",
"stickers_text_3_icon.png"],
["stickers_text_4.png",
"stickers_text_4_icon.png"],
["stickers_text_5.png",
"stickers_text_5_icon.png"],
["stickers_text_6.png",
"stickers_text_6_icon.png"],
["stickers_text_7.png",
"stickers_text_7_icon.png"]]
================================================
FILE: FotorSDKDemo/.svn/pristine/d7/d746fd0f09198fe8afc04b64bddd20d9909584ed.svn-base
================================================
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
org.eclipse.jdt.core.compiler.compliance=1.6
org.eclipse.jdt.core.compiler.source=1.6
================================================
FILE: FotorSDKDemo/.svn/pristine/da/da770fb0f41f62c3c00ea1980d072e9002bd7160.svn-base
================================================
tableTexturetexturing(14, 0)(51, 42)(135, 138)(191, 202)(234, 255)(11, 6)(78, 77)(178, 185)(242, 250)(11, 0)(22, 10)(72, 60)(171, 162)(217, 209)(255, 255)SRCDSTtableTexture
================================================
FILE: FotorSDKDemo/.svn/pristine/db/db7036fb113dd74422a670234ac70c592144a735.svn-base
================================================
package com.example.fotorsdkdemo;
import java.io.File;
import com.everimaging.fotorsdk.FotorConstants;
import com.everimaging.fotorsdk.FotorFeaturesFactory;
import com.everimaging.fotorsdk.FotorSDKActivity;
import com.everimaging.fotorsdk.FotorSDKVersion;
import com.everimaging.fotorsdk.FotorUtils;
import com.everimaging.fotorsdk.provider.FotorContentProvider;
import com.everimaging.fotorsdk.provider.FotorContentProvider.ActionsColumns.Action;
import com.everimaging.fotorsdk.provider.FotorContentProvider.SessionColumns;
import com.everimaging.fotorsdk.provider.FotorContentProvider.SessionColumns.Session;
import com.everimaging.fotorsdk.utils.BitmapDecodeUtils;
import com.everimaging.fotorsdk.utils.Utils;
import java.util.ArrayList;
import java.util.List;
import com.everimaging.fotorsdk.engine.FotorHDFilter;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnCancelListener;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.media.MediaScannerConnection;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore.Images;
import android.provider.MediaStore.Images.ImageColumns;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity {
private static final int ACTION_REQUEST_FEATURE = 2;
private static final int ACTION_REQUEST_GALLERY = 3;
private static final int EXTERNAL_STORAGE_UNAVAILABLE = 1;
public static final String LOG_TAG = "fotorsdk_demo";
/** Folder name on the sdcard where the images will be saved **/
private static final String FOLDER_NAME = "FotorSDK";
Button mEditButton;
Button mGalleryButton;
ImageView mImage;
String mOutputFilePath;
Uri mImageUri;
private TextView mSDKVersionLabel;
private Uri mSampleUri;
private File mGalleryFolder;
/** session id for the hi-res post processing */
private String mSessionId;
@Override
protected void onCreate(Bundle savedInstanceState) {
Log.i(LOG_TAG, "onCreate");
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mEditButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mImageUri != null) {
startFeature(mImageUri);
}
}
});
mGalleryButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
pickFromGallery();
}
});
mGalleryFolder = createFolders();
// add sample image
mSampleUri = Uri.parse("file:///android_asset/sample.jpg");
loadAsync(mSampleUri);
if (BuildConfig.DEBUG) {
mSDKVersionLabel.setText("V" + FotorSDKVersion.FOTOR_SDK_VERSION);
}
}
/**
* Start the activity to pick an image from the user gallery
*/
private void pickFromGallery() {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
Intent chooser = Intent.createChooser(intent, "Choose a Picture");
startActivityForResult(chooser, ACTION_REQUEST_GALLERY);
}
@Override
protected void onResume() {
Log.i(LOG_TAG, "onResume");
super.onResume();
if (getIntent() != null) {
handleIntent(getIntent());
setIntent(new Intent());
}
}
/**
* Handle the incoming {@link Intent}
*/
private void handleIntent(Intent intent) {
String action = intent.getAction();
if (null != action) {
if (Intent.ACTION_SEND.equals(action)) {
Bundle extras = intent.getExtras();
if (extras != null && extras.containsKey(Intent.EXTRA_STREAM)) {
Uri uri = (Uri) extras.get(Intent.EXTRA_STREAM);
loadAsync(uri);
}
} else if (Intent.ACTION_VIEW.equals(action)) {
Uri data = intent.getData();
Log.d(LOG_TAG, "data: " + data);
loadAsync(data);
}
}
}
/**
* Load the incoming Image
*
* @param uri
*/
private void loadAsync(final Uri uri) {
Log.i(LOG_TAG, "loadAsync: " + uri);
Drawable toRecycle = mImage.getDrawable();
if (toRecycle != null && toRecycle instanceof BitmapDrawable) {
if (((BitmapDrawable) mImage.getDrawable()).getBitmap() != null)
((BitmapDrawable) mImage.getDrawable()).getBitmap().recycle();
}
mImage.setImageDrawable(null);
mImageUri = null;
DownloadAsync task = new DownloadAsync();
task.execute(uri);
}
@Override
protected void onDestroy() {
Log.i(LOG_TAG, "onDestroy");
super.onDestroy();
mOutputFilePath = null;
}
@Override
public void onContentChanged() {
super.onContentChanged();
System.out.println("context:" + this.getPackageName());
mEditButton = (Button) findViewById(R.id.button2);
mGalleryButton = (Button) findViewById(R.id.button_gallery);
mImage = (ImageView) findViewById(R.id.image);
mSDKVersionLabel = (TextView) findViewById(R.id.fotor_sdk_version_label);
}
@Override
/**
* This method is called when feather has completed ( ie. user clicked on "done" or just exit the activity without saving ).
* If user clicked the "done" button you'll receive RESULT_OK as resultCode, RESULT_CANCELED otherwise.
*
* @param requestCode
* - it is the code passed with startActivityForResult
* @param resultCode
* - result code of the activity launched ( it can be RESULT_OK or RESULT_CANCELED )
* @param data
* - the result data
*/
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
switch (requestCode) {
case ACTION_REQUEST_FEATURE: {
Uri uri = Uri.parse(mOutputFilePath);
Bitmap bitmap = BitmapDecodeUtils.decodeFile(mOutputFilePath);
setImageURI(uri, bitmap);
new ProcessHDTask(this).execute();
}
break;
case ACTION_REQUEST_GALLERY: {
Uri uri = data.getData();
loadAsync(uri);
startFeature(uri);
}
break;
}
} else if (resultCode == RESULT_CANCELED) {
switch (requestCode) {
case ACTION_REQUEST_FEATURE:
if (mSessionId != null)
deleteSession(mSessionId);
break;
}
}
}
private String onSaveCompletion() {
Uri sessionUri = SessionColumns.getContentUri(this, mSessionId);
Cursor cursor = getContentResolver().query(sessionUri, null, null,
null, null);
if (cursor != null && cursor.getCount() > 0) {
List actions = new ArrayList();
while (cursor.moveToNext()) {
Action action = Action.create(cursor);
System.out.println("action:" + action);
actions.add(action);
}
cursor.close();
} else {
System.out.println("cursor doesn't have datas.");
}
Cursor cursor2 = getContentResolver().query(
SessionColumns.getContentUri(this, mSessionId), null, null,
null, null);
Session session = Session.create(cursor2);
if (session != null) {
FotorHDFilter fotorHDFilter = new FotorHDFilter(this, session);
fotorHDFilter.loadImage();
fotorHDFilter.executeFilter();
String dstPath = Utils.getSDPath() + "/testOriginal.jpg";
fotorHDFilter.save(dstPath);
fotorHDFilter.dispose();
deleteSession(mSessionId);
return dstPath;
}
return null;
}
class ProcessHDTask extends AsyncTask {
private ProgressDialog mDialog;
private Context mContext;
public ProcessHDTask(Context context) {
this.mContext = context;
}
@Override
protected void onPreExecute() {
mDialog = ProgressDialog.show(mContext, "Process HD",
"Please wait...");
}
@Override
protected String doInBackground(Void... params) {
return onSaveCompletion();
}
@Override
protected void onPostExecute(String result) {
mDialog.dismiss();
String msg = "Process Error";
if (result != null) {
msg = result;
}
Toast.makeText(mContext, msg, Toast.LENGTH_LONG).show();
}
}
/**
* Delete the session and all it's actions. We do not need it anymore.
* Note that this is optional. All old sessions are automatically removed in
* Feather.
*
* @param session_id
*/
private void deleteSession(final String session_id) {
Uri uri = FotorContentProvider.SessionColumns.getContentUri(this,
session_id);
int count = getContentResolver().delete(uri, null, null);
System.out.println("delete session count:" + count);
}
/**
* Given an Uri load the bitmap into the current ImageView and resize it to
* fit the image container size
*
* @param uri
*/
@SuppressWarnings("deprecation")
private boolean setImageURI(final Uri uri, final Bitmap bitmap) {
Log.d(LOG_TAG,
"image size: " + bitmap.getWidth() + "x" + bitmap.getHeight());
mImage.setImageBitmap(bitmap);
mImage.setBackgroundDrawable(null);
mEditButton.setEnabled(true);
mImageUri = uri;
return true;
}
/**
* We need to notify the MediaScanner when a new file is created. In this
* way all the gallery applications will be notified too.
*
* @param file
*/
private void updateMedia(String filepath) {
Log.i(LOG_TAG, "updateMedia: " + filepath);
MediaScannerConnection.scanFile(getApplicationContext(),
new String[] { filepath }, null, null);
}
/**
* Pick a random image from the user gallery
*
* @return
*/
@SuppressWarnings("unused")
private Uri pickRandomImage() {
Cursor c = getContentResolver().query(
Images.Media.EXTERNAL_CONTENT_URI,
new String[] { ImageColumns._ID, ImageColumns.DATA },
ImageColumns.SIZE + ">?", new String[] { "90000" }, null);
Uri uri = null;
if (c != null) {
int total = c.getCount();
int position = (int) (Math.random() * total);
Log.d(LOG_TAG, "pickRandomImage. total images: " + total
+ ", position: " + position);
if (total > 0) {
if (c.moveToPosition(position)) {
String data = c.getString(c
.getColumnIndex(Images.ImageColumns.DATA));
long id = c.getLong(c
.getColumnIndex(Images.ImageColumns._ID));
uri = Uri.parse(data);
Log.d(LOG_TAG, uri.toString());
}
}
c.close();
}
return uri;
}
/**
* Return a new image file. Name is based on the current time. Parent folder
* will be the one created with createFolders
*
* @return
* @see #createFolders()
*/
private File generateOutputFileName() {
if (mGalleryFolder != null) {
if (mGalleryFolder.exists()) {
File file = new File(mGalleryFolder, "Fotor_"
+ System.currentTimeMillis() + ".jpg");
return file;
}
}
return null;
}
/**
* Once you've chosen an image you can start the feather activity
*
* @param uri
*/
@SuppressWarnings("deprecation")
private void startFeature(Uri uri) {
Log.d(LOG_TAG, "uri: " + uri);
// first check the external storage availability
if (!isExternalStorageAvilable()) {
showDialog(EXTERNAL_STORAGE_UNAVAILABLE);
return;
}
// create a temporary file where to store the resulting image
File file = generateOutputFileName();
if (null != file) {
mOutputFilePath = file.getAbsolutePath();
} else {
new AlertDialog.Builder(this)
.setTitle(android.R.string.dialog_alert_title)
.setMessage("Failed to create a new File").show();
return;
}
// Create the intent needed to start feather
Intent newIntent = new Intent(this, FotorSDKActivity.class);
// === INPUT IMAGE URI ===
// Set the source image uri
newIntent.setData(uri);
// === OUTPUT ====
// Optional
// Pass the uri of the destination image file.
// This will be the same uri you will receive in the onActivityResult
System.out.println("mOutputFilePath->:" + mOutputFilePath);
newIntent.putExtra(FotorConstants.EXTRA_OUTPUT_PATH, mOutputFilePath);
// === OUTPUT QUALITY ===
// Optional
newIntent.putExtra(FotorConstants.EXTRA_OUTPUT_QUALITY, 90);
// === MAX SIZE ===
// Optional
// you can pass the maximum allowed image size (for the preview),
// otherwise feather will determine
// the max size based on the device informations.
// This will not affect the hi-res image size.
// Here we're passing the current display size as max image size because
// after
// the execution of Aviary we're saving the HI-RES image so we don't
// need a big
// image for the preview
final DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int max_size = Math.max(metrics.widthPixels, metrics.heightPixels);
max_size = (int) ((float) max_size / 1.4f);
newIntent.putExtra(FotorConstants.EXTRA_MAX_PREVIEW_SIZE, max_size);
mSessionId = FotorUtils.generateSessionId(this);
getContentResolver().delete(
SessionColumns.getContentUri(this, mSessionId), null, null);
Log.d(LOG_TAG,
"session: " + mSessionId + ", size: " + mSessionId.length());
newIntent.putExtra(FotorConstants.EXTRA_FOTOR_SESSION_ID, mSessionId);
// === FEATURE LIST ===
newIntent.putExtra(FotorConstants.EXTRA_FEATURE_LIST, new String[] {
FotorFeaturesFactory.FeatureType.FX_EFFECTS.name(),
FotorFeaturesFactory.FeatureType.BORDER.name() });
// start feather
startActivityForResult(newIntent, ACTION_REQUEST_FEATURE);
}
/**
* Check the external storage status
*
* @return
*/
private boolean isExternalStorageAvilable() {
String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state)) {
return true;
}
return false;
}
/**
* Try to create the required folder on the sdcard where images will be
* saved to.
*
* @return
*/
private File createFolders() {
File baseDir;
if (android.os.Build.VERSION.SDK_INT < 8) {
baseDir = Environment.getExternalStorageDirectory();
} else {
baseDir = Environment
.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
}
if (baseDir == null)
return Environment.getExternalStorageDirectory();
Log.d(LOG_TAG, "Pictures folder: " + baseDir.getAbsolutePath());
File fotorSDKFolder = new File(baseDir, FOLDER_NAME);
if (fotorSDKFolder.exists())
return fotorSDKFolder;
if (fotorSDKFolder.mkdirs())
return fotorSDKFolder;
return Environment.getExternalStorageDirectory();
}
class DownloadAsync extends AsyncTask implements
OnCancelListener {
ProgressDialog mProgress;
private Uri mUri;
@Override
protected void onPreExecute() {
super.onPreExecute();
mProgress = new ProgressDialog(MainActivity.this);
mProgress.setIndeterminate(true);
mProgress.setCancelable(true);
mProgress.setMessage("Loading image...");
mProgress.setOnCancelListener(this);
mProgress.show();
}
@Override
protected Bitmap doInBackground(Uri... params) {
mUri = params[0];
DisplayMetrics displayMetrics = getResources().getDisplayMetrics();
int maxW = (int) (displayMetrics.widthPixels / 1.5);
int maxH = (int) (displayMetrics.heightPixels / 1.5);
Bitmap bitmap = BitmapDecodeUtils.decode(getApplicationContext(),
mUri, maxW, maxH);
return bitmap;
}
@Override
protected void onPostExecute(Bitmap result) {
super.onPostExecute(result);
if (mProgress.getWindow() != null) {
mProgress.dismiss();
}
if (result != null) {
setImageURI(mUri, result);
} else {
Toast.makeText(MainActivity.this,
"Failed to load image " + mUri, Toast.LENGTH_SHORT)
.show();
}
}
@Override
public void onCancel(DialogInterface dialog) {
Log.i(LOG_TAG, "onProgressCancel");
this.cancel(true);
}
@Override
protected void onCancelled() {
super.onCancelled();
Log.i(LOG_TAG, "onCancelled");
}
}
}
================================================
FILE: FotorSDKDemo/.svn/pristine/db/dbfff77ed8b045f7db605f34bd6894b81f471e40.svn-base
================================================
tableTexturetexturing(35, 43)(159, 194)(255, 255)(0, 26)(141, 157)(255, 218)(0, 81)(255, 145)SRCDSTtableTexture
================================================
FILE: FotorSDKDemo/.svn/pristine/dd/dd476b2d84d744357129a743cd223f9a7264dd29.svn-base
================================================
["6.xml","10.xml","114.xml","111.xml","112.xml","28.xml"]
================================================
FILE: FotorSDKDemo/.svn/pristine/de/def85b8417714285df94a8c429a38b2a4b7484c1.svn-base
================================================
package com.example.fotorsdkdemo;
import java.io.File;
import com.everimaging.fotorsdk.FotorConstants;
import com.everimaging.fotorsdk.FotorFeaturesFactory;
import com.everimaging.fotorsdk.FotorSDKActivity;
import com.everimaging.fotorsdk.FotorUtils;
import com.everimaging.fotorsdk.provider.FotorContentProvider;
import com.everimaging.fotorsdk.provider.FotorContentProvider.ActionsColumns.Action;
import com.everimaging.fotorsdk.provider.FotorContentProvider.ActionsColumns;
import com.everimaging.fotorsdk.provider.FotorContentProvider.SessionColumns;
import com.everimaging.fotorsdk.provider.FotorContentProvider.SessionColumns.Session;
import com.everimaging.fotorsdk.utils.BitmapDecodeUtils;
import com.everimaging.fotorsdk.utils.Utils;
import java.util.ArrayList;
import java.util.List;
import com.everimaging.fotorsdk.engine.FotorHDFilter;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnCancelListener;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.media.MediaScannerConnection;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore.Images;
import android.provider.MediaStore.Images.ImageColumns;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.View;
import android.view.View.OnLongClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Toast;
public class MainActivity extends Activity {
private static final int ACTION_REQUEST_FEATURE = 2;
private static final int ACTION_REQUEST_GALLERY = 3;
private static final int EXTERNAL_STORAGE_UNAVAILABLE = 1;
public static final String LOG_TAG = "fotorsdk_demo";
/** Folder name on the sdcard where the images will be saved **/
private static final String FOLDER_NAME = "FotorSDK";
Button mEditButton;
Button mGalleryButton;
ImageView mImage;
String mOutputFilePath;
Uri mImageUri;
private Uri mSampleUri;
private File mGalleryFolder;
/** session id for the hi-res post processing */
private String mSessionId;
@Override
protected void onCreate(Bundle savedInstanceState) {
Log.i(LOG_TAG, "onCreate");
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mEditButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mImageUri != null) {
startFeature(mImageUri);
}
}
});
mGalleryButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
pickFromGallery();
}
});
mGalleryFolder = createFolders();
// add sample image
mSampleUri = Uri.parse("file:///android_asset/sample.jpg");
loadAsync(mSampleUri);
}
/**
* Start the activity to pick an image from the user gallery
*/
private void pickFromGallery() {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
Intent chooser = Intent.createChooser(intent, "Choose a Picture");
startActivityForResult(chooser, ACTION_REQUEST_GALLERY);
}
@Override
protected void onResume() {
Log.i(LOG_TAG, "onResume");
super.onResume();
if (getIntent() != null) {
handleIntent(getIntent());
setIntent(new Intent());
}
}
/**
* Handle the incoming {@link Intent}
*/
private void handleIntent(Intent intent) {
String action = intent.getAction();
if (null != action) {
if (Intent.ACTION_SEND.equals(action)) {
Bundle extras = intent.getExtras();
if (extras != null && extras.containsKey(Intent.EXTRA_STREAM)) {
Uri uri = (Uri) extras.get(Intent.EXTRA_STREAM);
loadAsync(uri);
}
} else if (Intent.ACTION_VIEW.equals(action)) {
Uri data = intent.getData();
Log.d(LOG_TAG, "data: " + data);
loadAsync(data);
}
}
}
/**
* Load the incoming Image
*
* @param uri
*/
private void loadAsync(final Uri uri) {
Log.i(LOG_TAG, "loadAsync: " + uri);
Drawable toRecycle = mImage.getDrawable();
if (toRecycle != null && toRecycle instanceof BitmapDrawable) {
if (((BitmapDrawable) mImage.getDrawable()).getBitmap() != null)
((BitmapDrawable) mImage.getDrawable()).getBitmap().recycle();
}
mImage.setImageDrawable(null);
mImageUri = null;
DownloadAsync task = new DownloadAsync();
task.execute(uri);
}
@Override
protected void onDestroy() {
Log.i(LOG_TAG, "onDestroy");
super.onDestroy();
mOutputFilePath = null;
}
@Override
public void onContentChanged() {
super.onContentChanged();
System.out.println("context:" + this.getPackageName());
mEditButton = (Button) findViewById(R.id.button2);
mGalleryButton = (Button) findViewById(R.id.button_gallery);
mImage = (ImageView) findViewById(R.id.image);
}
@Override
/**
* This method is called when feather has completed ( ie. user clicked on "done" or just exit the activity without saving ).
* If user clicked the "done" button you'll receive RESULT_OK as resultCode, RESULT_CANCELED otherwise.
*
* @param requestCode
* - it is the code passed with startActivityForResult
* @param resultCode
* - result code of the activity launched ( it can be RESULT_OK or RESULT_CANCELED )
* @param data
* - the result data
*/
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
switch (requestCode) {
case ACTION_REQUEST_FEATURE: {
Uri uri = Uri.parse(mOutputFilePath);
Bitmap bitmap = BitmapDecodeUtils.decodeFile(mOutputFilePath);
setImageURI(uri, bitmap);
new ProcessHDTask(this).execute();
}
break;
case ACTION_REQUEST_GALLERY: {
Uri uri = data.getData();
loadAsync(uri);
startFeature(uri);
}
break;
}
} else if (resultCode == RESULT_CANCELED) {
switch (requestCode) {
case ACTION_REQUEST_FEATURE:
if (mSessionId != null)
deleteSession(mSessionId);
break;
}
}
}
private String onSaveCompletion() {
Uri sessionUri = SessionColumns.getContentUri(this, mSessionId);
Cursor cursor = getContentResolver().query(sessionUri, null, null,
null, null);
if (cursor != null && cursor.getCount() > 0) {
List actions = new ArrayList();
while (cursor.moveToNext()) {
Action action = Action.create(cursor);
System.out.println("action:" + action);
actions.add(action);
}
cursor.close();
} else {
System.out.println("cursor doesn't have datas.");
}
Cursor cursor2 = getContentResolver().query(
SessionColumns.getContentUri(this, mSessionId), null, null,
null, null);
Session session = Session.create(cursor2);
if (session != null) {
FotorHDFilter fotorHDFilter = new FotorHDFilter(this, session);
fotorHDFilter.loadImage();
fotorHDFilter.executeFilter();
String dstPath = Utils.getSDPath() + "/testOriginal.jpg";
fotorHDFilter.save(dstPath);
fotorHDFilter.dispose();
deleteSession(mSessionId);
return dstPath;
}
return null;
}
class ProcessHDTask extends AsyncTask {
private ProgressDialog mDialog;
private Context mContext;
public ProcessHDTask(Context context) {
this.mContext = context;
}
@Override
protected void onPreExecute() {
mDialog = ProgressDialog.show(mContext, "Process HD",
"Please wait...");
}
@Override
protected String doInBackground(Void... params) {
return onSaveCompletion();
}
@Override
protected void onPostExecute(String result) {
mDialog.dismiss();
String msg = "Process Error";
if (result != null) {
msg = result;
}
Toast.makeText(mContext, msg, Toast.LENGTH_LONG).show();
}
}
/**
* Delete the session and all it's actions. We do not need it anymore.
* Note that this is optional. All old sessions are automatically removed in
* Feather.
*
* @param session_id
*/
private void deleteSession(final String session_id) {
Uri uri = FotorContentProvider.SessionColumns.getContentUri(this,
session_id);
int count = getContentResolver().delete(uri, null, null);
System.out.println("delete session count:" + count);
}
/**
* Given an Uri load the bitmap into the current ImageView and resize it to
* fit the image container size
*
* @param uri
*/
@SuppressWarnings("deprecation")
private boolean setImageURI(final Uri uri, final Bitmap bitmap) {
Log.d(LOG_TAG,
"image size: " + bitmap.getWidth() + "x" + bitmap.getHeight());
mImage.setImageBitmap(bitmap);
mImage.setBackgroundDrawable(null);
mEditButton.setEnabled(true);
mImageUri = uri;
return true;
}
/**
* We need to notify the MediaScanner when a new file is created. In this
* way all the gallery applications will be notified too.
*
* @param file
*/
private void updateMedia(String filepath) {
Log.i(LOG_TAG, "updateMedia: " + filepath);
MediaScannerConnection.scanFile(getApplicationContext(),
new String[] { filepath }, null, null);
}
/**
* Pick a random image from the user gallery
*
* @return
*/
@SuppressWarnings("unused")
private Uri pickRandomImage() {
Cursor c = getContentResolver().query(
Images.Media.EXTERNAL_CONTENT_URI,
new String[] { ImageColumns._ID, ImageColumns.DATA },
ImageColumns.SIZE + ">?", new String[] { "90000" }, null);
Uri uri = null;
if (c != null) {
int total = c.getCount();
int position = (int) (Math.random() * total);
Log.d(LOG_TAG, "pickRandomImage. total images: " + total
+ ", position: " + position);
if (total > 0) {
if (c.moveToPosition(position)) {
String data = c.getString(c
.getColumnIndex(Images.ImageColumns.DATA));
long id = c.getLong(c
.getColumnIndex(Images.ImageColumns._ID));
uri = Uri.parse(data);
Log.d(LOG_TAG, uri.toString());
}
}
c.close();
}
return uri;
}
/**
* Return a new image file. Name is based on the current time. Parent folder
* will be the one created with createFolders
*
* @return
* @see #createFolders()
*/
private File generateOutputFileName() {
if (mGalleryFolder != null) {
if (mGalleryFolder.exists()) {
File file = new File(mGalleryFolder, "Fotor_"
+ System.currentTimeMillis() + ".jpg");
return file;
}
}
return null;
}
/**
* Once you've chosen an image you can start the feather activity
*
* @param uri
*/
@SuppressWarnings("deprecation")
private void startFeature(Uri uri) {
Log.d(LOG_TAG, "uri: " + uri);
// first check the external storage availability
if (!isExternalStorageAvilable()) {
showDialog(EXTERNAL_STORAGE_UNAVAILABLE);
return;
}
// create a temporary file where to store the resulting image
File file = generateOutputFileName();
if (null != file) {
mOutputFilePath = file.getAbsolutePath();
} else {
new AlertDialog.Builder(this)
.setTitle(android.R.string.dialog_alert_title)
.setMessage("Failed to create a new File").show();
return;
}
// Create the intent needed to start feather
Intent newIntent = new Intent(this, FotorSDKActivity.class);
// === INPUT IMAGE URI ===
// Set the source image uri
newIntent.setData(uri);
// === OUTPUT ====
// Optional
// Pass the uri of the destination image file.
// This will be the same uri you will receive in the onActivityResult
System.out.println("mOutputFilePath->:" + mOutputFilePath);
newIntent.putExtra(FotorConstants.EXTRA_OUTPUT_PATH, mOutputFilePath);
// === OUTPUT QUALITY ===
// Optional
newIntent.putExtra(FotorConstants.EXTRA_OUTPUT_QUALITY, 90);
// === MAX SIZE ===
// Optional
// you can pass the maximum allowed image size (for the preview),
// otherwise feather will determine
// the max size based on the device informations.
// This will not affect the hi-res image size.
// Here we're passing the current display size as max image size because
// after
// the execution of Aviary we're saving the HI-RES image so we don't
// need a big
// image for the preview
final DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int max_size = Math.max(metrics.widthPixels, metrics.heightPixels);
max_size = (int) ((float) max_size / 1.4f);
newIntent.putExtra(FotorConstants.EXTRA_MAX_PREVIEW_SIZE, max_size);
mSessionId = FotorUtils.generateSessionId(this);
getContentResolver().delete(
SessionColumns.getContentUri(this, mSessionId), null, null);
Log.d(LOG_TAG,
"session: " + mSessionId + ", size: " + mSessionId.length());
newIntent.putExtra(FotorConstants.EXTRA_FOTOR_SESSION_ID, mSessionId);
// === FEATURE LIST ===
newIntent.putExtra(FotorConstants.EXTRA_FEATURE_LIST, new String[] {
FotorFeaturesFactory.FeatureType.FX_EFFECTS.name(),
FotorFeaturesFactory.FeatureType.BORDER.name() });
// start feather
startActivityForResult(newIntent, ACTION_REQUEST_FEATURE);
}
/**
* Check the external storage status
*
* @return
*/
private boolean isExternalStorageAvilable() {
String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state)) {
return true;
}
return false;
}
/**
* Try to create the required folder on the sdcard where images will be
* saved to.
*
* @return
*/
private File createFolders() {
File baseDir;
if (android.os.Build.VERSION.SDK_INT < 8) {
baseDir = Environment.getExternalStorageDirectory();
} else {
baseDir = Environment
.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
}
if (baseDir == null)
return Environment.getExternalStorageDirectory();
Log.d(LOG_TAG, "Pictures folder: " + baseDir.getAbsolutePath());
File fotorSDKFolder = new File(baseDir, FOLDER_NAME);
if (fotorSDKFolder.exists())
return fotorSDKFolder;
if (fotorSDKFolder.mkdirs())
return fotorSDKFolder;
return Environment.getExternalStorageDirectory();
}
class DownloadAsync extends AsyncTask implements
OnCancelListener {
ProgressDialog mProgress;
private Uri mUri;
@Override
protected void onPreExecute() {
super.onPreExecute();
mProgress = new ProgressDialog(MainActivity.this);
mProgress.setIndeterminate(true);
mProgress.setCancelable(true);
mProgress.setMessage("Loading image...");
mProgress.setOnCancelListener(this);
mProgress.show();
}
@Override
protected Bitmap doInBackground(Uri... params) {
mUri = params[0];
DisplayMetrics displayMetrics = getResources().getDisplayMetrics();
int maxW = (int) (displayMetrics.widthPixels / 1.5);
int maxH = (int) (displayMetrics.heightPixels / 1.5);
Bitmap bitmap = BitmapDecodeUtils.decode(getApplicationContext(),
mUri, maxW, maxH);
return bitmap;
}
@Override
protected void onPostExecute(Bitmap result) {
super.onPostExecute(result);
if (mProgress.getWindow() != null) {
mProgress.dismiss();
}
if (result != null) {
setImageURI(mUri, result);
} else {
Toast.makeText(MainActivity.this,
"Failed to load image " + mUri, Toast.LENGTH_SHORT)
.show();
}
}
@Override
public void onCancel(DialogInterface dialog) {
Log.i(LOG_TAG, "onProgressCancel");
this.cancel(true);
}
@Override
protected void onCancelled() {
super.onCancelled();
Log.i(LOG_TAG, "onCancelled");
}
}
}
================================================
FILE: FotorSDKDemo/.svn/pristine/df/df12c72fbf4c9efa7ced7128be02be12d28f8be2.svn-base
================================================
118S.pngS
================================================
FILE: FotorSDKDemo/.svn/pristine/df/dff6fa5bd214c31be5f3588dcef7d57da534c3ea.svn-base
================================================
38M_0.png38M_1.png38M_2.png38M_3.png38M_4.png38M_5.png38M_6.png38M_7.png38M.pngM0.57287280036036036008360368036036036836036083683683603603603688360036836036003603608
================================================
FILE: FotorSDKDemo/.svn/pristine/e1/e12d1118511ba975aabcc8987e48193b2af082f8.svn-base
================================================
tableTexturetexturing(0, 0)(35, 71)(153, 197)(255, 255)(0, 15)(16, 36)(109, 132)(255, 255)(0, 23)(181, 194)(255, 230)SRCDSTtableTexture
================================================
FILE: FotorSDKDemo/.svn/pristine/e5/e58d1d1cca31823b6c949d25e3f910163baff087.svn-base
================================================
SRClevelGetScale0.010.20.0levelDSTquadric0.01.0
================================================
FILE: FotorSDKDemo/.svn/pristine/e5/e5fd87210cf8e3134cdf6db3ca6e4bb5e763fd39.svn-base
================================================
package com.example.fotorsdkdemo;
import java.io.File;
import com.everimaging.fotorsdk.FotorConstants;
import com.everimaging.fotorsdk.FotorFeaturesFactory;
import com.everimaging.fotorsdk.FotorSDKActivity;
import com.everimaging.fotorsdk.FotorSDKVersion;
import com.everimaging.fotorsdk.FotorUtils;
import com.everimaging.fotorsdk.provider.FotorContentProvider;
import com.everimaging.fotorsdk.provider.FotorContentProvider.SessionColumns;
import com.everimaging.fotorsdk.provider.FotorContentProvider.SessionColumns.Session;
import com.everimaging.fotorsdk.utils.BitmapDecodeUtils;
import com.everimaging.fotorsdk.utils.Utils;
import com.everimaging.fotorsdk.engine.FotorHDFilter;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnCancelListener;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.media.MediaScannerConnection;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore.Images;
import android.provider.MediaStore.Images.ImageColumns;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity {
private static final int ACTION_REQUEST_FEATURE = 2;
private static final int ACTION_REQUEST_GALLERY = 3;
private static final int EXTERNAL_STORAGE_UNAVAILABLE = 1;
public static final String LOG_TAG = "fotorsdk_demo";
/** Folder name on the sdcard where the images will be saved **/
private static final String FOLDER_NAME = "FotorSDK";
Button mEditButton;
Button mGalleryButton;
ImageView mImage;
String mOutputFilePath;
Uri mImageUri;
private TextView mSDKVersionLabel;
private Uri mSampleUri;
private File mGalleryFolder;
/** session id for the hi-res post processing */
private String mSessionId;
@Override
protected void onCreate(Bundle savedInstanceState) {
Log.i(LOG_TAG, "onCreate");
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mEditButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mImageUri != null) {
startFeature(mImageUri);
}
}
});
mGalleryButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
pickFromGallery();
}
});
mGalleryFolder = createFolders();
// add sample image
mSampleUri = Uri.parse("file:///android_asset/sample.jpg");
loadAsync(mSampleUri);
if (BuildConfig.DEBUG) {
mSDKVersionLabel.setText("V" + FotorSDKVersion.FOTOR_SDK_VERSION);
}
}
/**
* Start the activity to pick an image from the user gallery
*/
private void pickFromGallery() {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
Intent chooser = Intent.createChooser(intent, "Choose a Picture");
startActivityForResult(chooser, ACTION_REQUEST_GALLERY);
}
@Override
protected void onResume() {
Log.i(LOG_TAG, "onResume");
super.onResume();
if (getIntent() != null) {
handleIntent(getIntent());
setIntent(new Intent());
}
}
/**
* Handle the incoming {@link Intent}
*/
private void handleIntent(Intent intent) {
String action = intent.getAction();
if (null != action) {
if (Intent.ACTION_SEND.equals(action)) {
Bundle extras = intent.getExtras();
if (extras != null && extras.containsKey(Intent.EXTRA_STREAM)) {
Uri uri = (Uri) extras.get(Intent.EXTRA_STREAM);
loadAsync(uri);
}
} else if (Intent.ACTION_VIEW.equals(action)) {
Uri data = intent.getData();
Log.d(LOG_TAG, "data: " + data);
loadAsync(data);
}
}
}
/**
* Load the incoming Image
*
* @param uri
*/
private void loadAsync(final Uri uri) {
Log.i(LOG_TAG, "loadAsync: " + uri);
Drawable toRecycle = mImage.getDrawable();
if (toRecycle != null && toRecycle instanceof BitmapDrawable) {
if (((BitmapDrawable) mImage.getDrawable()).getBitmap() != null)
((BitmapDrawable) mImage.getDrawable()).getBitmap().recycle();
}
mImage.setImageDrawable(null);
mImageUri = null;
DownloadAsync task = new DownloadAsync();
task.execute(uri);
}
@Override
protected void onDestroy() {
Log.i(LOG_TAG, "onDestroy");
super.onDestroy();
mOutputFilePath = null;
}
@Override
public void onContentChanged() {
super.onContentChanged();
System.out.println("context:" + this.getPackageName());
mEditButton = (Button) findViewById(R.id.button2);
mGalleryButton = (Button) findViewById(R.id.button_gallery);
mImage = (ImageView) findViewById(R.id.image);
mSDKVersionLabel = (TextView) findViewById(R.id.fotor_sdk_version_label);
}
@Override
/**
* This method is called when feather has completed ( ie. user clicked on "done" or just exit the activity without saving ).
* If user clicked the "done" button you'll receive RESULT_OK as resultCode, RESULT_CANCELED otherwise.
*
* @param requestCode
* - it is the code passed with startActivityForResult
* @param resultCode
* - result code of the activity launched ( it can be RESULT_OK or RESULT_CANCELED )
* @param data
* - the result data
*/
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
switch (requestCode) {
case ACTION_REQUEST_FEATURE: {
Uri uri = Uri.parse(mOutputFilePath);
Bitmap bitmap = BitmapDecodeUtils.decodeFile(mOutputFilePath);
setImageURI(uri, bitmap);
new ProcessHDTask(this).execute();
}
break;
case ACTION_REQUEST_GALLERY: {
Uri uri = data.getData();
loadAsync(uri);
startFeature(uri);
}
break;
}
} else if (resultCode == RESULT_CANCELED) {
switch (requestCode) {
case ACTION_REQUEST_FEATURE:
if (mSessionId != null)
deleteSession(mSessionId);
break;
}
}
}
private String onSaveCompletion() {
Uri sessionUri = SessionColumns.getContentUri(this, mSessionId);
Cursor cursor = getContentResolver().query(sessionUri, null, null,
null, null);
Session session = Session.create(cursor);
if (session != null) {
FotorHDFilter fotorHDFilter = new FotorHDFilter(this, session);
fotorHDFilter.loadImage();
fotorHDFilter.executeFilter();
String dstPath = Utils.getSDPath() + "/testOriginal.jpg";
fotorHDFilter.save(dstPath);
fotorHDFilter.dispose();
deleteSession(mSessionId);
return dstPath;
}
return null;
}
class ProcessHDTask extends AsyncTask {
private ProgressDialog mDialog;
private Context mContext;
public ProcessHDTask(Context context) {
this.mContext = context;
}
@Override
protected void onPreExecute() {
mDialog = ProgressDialog.show(mContext, "Process HD",
"Please wait...");
}
@Override
protected String doInBackground(Void... params) {
return onSaveCompletion();
}
@Override
protected void onPostExecute(String result) {
mDialog.dismiss();
String msg = "Process Error";
if (result != null) {
msg = result;
}
Toast.makeText(mContext, msg, Toast.LENGTH_LONG).show();
}
}
/**
* Delete the session and all it's actions. We do not need it anymore.
* Note that this is optional. All old sessions are automatically removed in
* Feather.
*
* @param session_id
*/
private void deleteSession(final String session_id) {
Uri uri = FotorContentProvider.SessionColumns.getContentUri(this,
session_id);
int count = getContentResolver().delete(uri, null, null);
System.out.println("delete session count:" + count);
}
/**
* Given an Uri load the bitmap into the current ImageView and resize it to
* fit the image container size
*
* @param uri
*/
@SuppressWarnings("deprecation")
private boolean setImageURI(final Uri uri, final Bitmap bitmap) {
Log.d(LOG_TAG,
"image size: " + bitmap.getWidth() + "x" + bitmap.getHeight());
mImage.setImageBitmap(bitmap);
mImage.setBackgroundDrawable(null);
mEditButton.setEnabled(true);
mImageUri = uri;
return true;
}
/**
* We need to notify the MediaScanner when a new file is created. In this
* way all the gallery applications will be notified too.
*
* @param file
*/
private void updateMedia(String filepath) {
Log.i(LOG_TAG, "updateMedia: " + filepath);
MediaScannerConnection.scanFile(getApplicationContext(),
new String[] { filepath }, null, null);
}
/**
* Pick a random image from the user gallery
*
* @return
*/
@SuppressWarnings("unused")
private Uri pickRandomImage() {
Cursor c = getContentResolver().query(
Images.Media.EXTERNAL_CONTENT_URI,
new String[] { ImageColumns._ID, ImageColumns.DATA },
ImageColumns.SIZE + ">?", new String[] { "90000" }, null);
Uri uri = null;
if (c != null) {
int total = c.getCount();
int position = (int) (Math.random() * total);
Log.d(LOG_TAG, "pickRandomImage. total images: " + total
+ ", position: " + position);
if (total > 0) {
if (c.moveToPosition(position)) {
String data = c.getString(c
.getColumnIndex(Images.ImageColumns.DATA));
long id = c.getLong(c
.getColumnIndex(Images.ImageColumns._ID));
uri = Uri.parse(data);
Log.d(LOG_TAG, uri.toString());
}
}
c.close();
}
return uri;
}
/**
* Return a new image file. Name is based on the current time. Parent folder
* will be the one created with createFolders
*
* @return
* @see #createFolders()
*/
private File generateOutputFileName() {
if (mGalleryFolder != null) {
if (mGalleryFolder.exists()) {
File file = new File(mGalleryFolder, "Fotor_"
+ System.currentTimeMillis() + ".jpg");
return file;
}
}
return null;
}
/**
* Once you've chosen an image you can start the feather activity
*
* @param uri
*/
@SuppressWarnings("deprecation")
private void startFeature(Uri uri) {
Log.d(LOG_TAG, "uri: " + uri);
// first check the external storage availability
if (!isExternalStorageAvilable()) {
showDialog(EXTERNAL_STORAGE_UNAVAILABLE);
return;
}
// create a temporary file where to store the resulting image
File file = generateOutputFileName();
if (null != file) {
mOutputFilePath = file.getAbsolutePath();
} else {
new AlertDialog.Builder(this)
.setTitle(android.R.string.dialog_alert_title)
.setMessage("Failed to create a new File").show();
return;
}
// Create the intent needed to start feather
Intent newIntent = new Intent(this, FotorSDKActivity.class);
// === INPUT IMAGE URI ===
// Set the source image uri
newIntent.setData(uri);
// === OUTPUT ====
// Optional
// Pass the uri of the destination image file.
// This will be the same uri you will receive in the onActivityResult
System.out.println("mOutputFilePath->:" + mOutputFilePath);
newIntent.putExtra(FotorConstants.EXTRA_OUTPUT_PATH, mOutputFilePath);
// === OUTPUT QUALITY ===
// Optional
newIntent.putExtra(FotorConstants.EXTRA_OUTPUT_QUALITY, 90);
// === MAX SIZE ===
// Optional
// you can pass the maximum allowed image size (for the preview),
// otherwise feather will determine
// the max size based on the device informations.
// This will not affect the hi-res image size.
// Here we're passing the current display size as max image size because
// after
// the execution of Aviary we're saving the HI-RES image so we don't
// need a big
// image for the preview
final DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int max_size = Math.max(metrics.widthPixels, metrics.heightPixels);
max_size = (int) ((float) max_size / 1.4f);
newIntent.putExtra(FotorConstants.EXTRA_MAX_PREVIEW_SIZE, max_size);
mSessionId = FotorUtils.generateSessionId(this);
getContentResolver().delete(
SessionColumns.getContentUri(this, mSessionId), null, null);
Log.d(LOG_TAG,
"session: " + mSessionId + ", size: " + mSessionId.length());
newIntent.putExtra(FotorConstants.EXTRA_FOTOR_SESSION_ID, mSessionId);
// // === FEATURE LIST ===
// newIntent.putExtra(FotorConstants.EXTRA_FEATURE_LIST, new String[] {
// FotorFeaturesFactory.FeatureType.FX_EFFECTS.name(),
// FotorFeaturesFactory.FeatureType.BORDER.name() });
// start feather
startActivityForResult(newIntent, ACTION_REQUEST_FEATURE);
}
/**
* Check the external storage status
*
* @return
*/
private boolean isExternalStorageAvilable() {
String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state)) {
return true;
}
return false;
}
/**
* Try to create the required folder on the sdcard where images will be
* saved to.
*
* @return
*/
private File createFolders() {
File baseDir;
if (android.os.Build.VERSION.SDK_INT < 8) {
baseDir = Environment.getExternalStorageDirectory();
} else {
baseDir = Environment
.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
}
if (baseDir == null)
return Environment.getExternalStorageDirectory();
Log.d(LOG_TAG, "Pictures folder: " + baseDir.getAbsolutePath());
File fotorSDKFolder = new File(baseDir, FOLDER_NAME);
if (fotorSDKFolder.exists())
return fotorSDKFolder;
if (fotorSDKFolder.mkdirs())
return fotorSDKFolder;
return Environment.getExternalStorageDirectory();
}
class DownloadAsync extends AsyncTask implements
OnCancelListener {
ProgressDialog mProgress;
private Uri mUri;
@Override
protected void onPreExecute() {
super.onPreExecute();
mProgress = new ProgressDialog(MainActivity.this);
mProgress.setIndeterminate(true);
mProgress.setCancelable(true);
mProgress.setMessage("Loading image...");
mProgress.setOnCancelListener(this);
mProgress.show();
}
@Override
protected Bitmap doInBackground(Uri... params) {
mUri = params[0];
DisplayMetrics displayMetrics = getResources().getDisplayMetrics();
int maxW = (int) (displayMetrics.widthPixels / 1.5);
int maxH = (int) (displayMetrics.heightPixels / 1.5);
Bitmap bitmap = BitmapDecodeUtils.decode(getApplicationContext(),
mUri, maxW, maxH);
return bitmap;
}
@Override
protected void onPostExecute(Bitmap result) {
super.onPostExecute(result);
if (mProgress.getWindow() != null) {
mProgress.dismiss();
}
if (result != null) {
setImageURI(mUri, result);
} else {
Toast.makeText(MainActivity.this,
"Failed to load image " + mUri, Toast.LENGTH_SHORT)
.show();
}
}
@Override
public void onCancel(DialogInterface dialog) {
Log.i(LOG_TAG, "onProgressCancel");
this.cancel(true);
}
@Override
protected void onCancelled() {
super.onCancelled();
Log.i(LOG_TAG, "onCancelled");
}
}
}
================================================
FILE: FotorSDKDemo/.svn/pristine/e8/e802dc31ea7817e0e611f26f527618269e7b9895.svn-base
================================================
e164_c1.jpgtableTexturetexturing(33, 0)(70, 32)(146, 143)(185, 204)(255, 255)(22, 0)(103, 71)(189, 219)(255, 252)(10, 0)(54, 29)(93, 66)(205, 220)(255, 255)SRCDSTtableTexture
================================================
FILE: FotorSDKDemo/.svn/pristine/eb/eb91474a5fbe05784d1169e1bd1af97911acdfe7.svn-base
================================================
tableTexture1texturing(16, 0)(60, 45)(124, 124)(214, 255)(18, 2)(91, 81)(156, 169)(213, 255)(16, 0)(85, 74)(158, 171)(211, 255)tableTexture2texturing(17, 0)(144, 150)(214, 255)(16, 0)(61, 47)(160, 172)(215, 255)(21, 2)(131, 135)(213, 255)SRCTMPtableTexture1TMPDSTtableTexture2
================================================
FILE: FotorSDKDemo/.svn/pristine/ec/ec17221211c0d4f95cbd5d9586967d5c1bd4cbb1.svn-base
================================================
================================================
FILE: FotorSDKDemo/.svn/pristine/ec/ec2d462cec313ade3c58f5193873d2bb9392de97.svn-base
================================================
e114_t.pngSRClevelGetScale0.010.21.0levelDSTtextureexclusion0.51
================================================
FILE: FotorSDKDemo/.svn/pristine/ec/ec5e2b3cae849767bc704510ce8fac611180af2a.svn-base
================================================
e170_c1.jpgtableTexturetexturing(2, 2)(16, 30)(72, 112)(135, 185)(252, 255)(2, 1)(30, 42)(55, 84)(157, 207)(238, 249)(1, 0)(26, 17)(67, 106)(114, 165)(231, 250)SRCDSTtableTexture
================================================
FILE: FotorSDKDemo/.svn/pristine/f1/f14d9e38fb84776985991713c82bf11019b4b9e6.svn-base
================================================
tableTexturetexturing(0, 0)(43, 77)(56, 104)(100, 166)(255, 255)(0, 0)(35, 53)(255, 255)(0, 0)(110, 123)(255, 212)SRCDSTtableTexture
================================================
FILE: FotorSDKDemo/.svn/pristine/f1/f1571592a039ac77a7f934df44222f51f12cee3d.svn-base
================================================
# This file is automatically generated by Android Tools.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file must be checked in Version Control Systems.
#
# To customize properties used by the Ant build system edit
# "ant.properties", and override values to adapt the script to your
# project structure.
#
# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
# Project target.
target=android-19
android.library.reference.1=../FotorSDK
#renderscript.support.mode=true
================================================
FILE: FotorSDKDemo/.svn/pristine/f1/f1b2c78e811175926d162a5088dc55f156b79264.svn-base
================================================
tableTexturetexturing0, 069, 63105, 138151, 222255, 2550, 067, 51135, 191255, 2550, 086, 76150, 212255, 255SRCDSTtableTexture
================================================
FILE: FotorSDKDemo/.svn/pristine/fa/fa13a5cdfb112cbf1dd7970583865c6a1b366285.svn-base
================================================
tableTexturetexturing(15, 0)(45, 37)(92, 103)(230, 255)(19, 0)(34, 22)(138, 158)(228, 252)(19, 0)(74, 63)(159, 166)(230, 255)SRCDSTtableTexture
================================================
FILE: FotorSDKDemo/.svn/pristine/fb/fb3c77eb561a6439d8e4cf4495bd45af2ec726c3.svn-base
================================================
tableTexturetexturing(15, 0)(92, 133)(255, 234)(0, 20)(105, 128)(255, 255)(0, 0)(120, 132)(255, 214)SRCDSTtableTexture
================================================
FILE: FotorSDKDemo/.svn/pristine/fc/fce80b1ca55cc48ef67a1336156c362e41a98c1d.svn-base
================================================
{
"version": 1,
"category_name": "Classic",
"fonts_array": [{
"font_id": 1,
"font_name": "Sofia",
"font_normal": "Sofia",
"font_bold": "",
"font_italic": "",
"font_bolditalic": "Sofia"
},
{
"font_id": 2,
"font_name": "Ostrich Sans",
"font_normal": "Ostrich Sans",
"font_bold": "OstrichSans-Bold",
"font_italic": "",
"font_bolditalic": "OstrichSans-Bold"
},
{
"font_id": 3,
"font_name": "Bearpaw",
"font_normal": "Bearpaw",
"font_bold": "",
"font_italic": "",
"font_bolditalic": "Bearpaw"
},
{
"font_id": 4,
"font_name": "American Typewriter",
"font_normal": "AmericanTypewriter",
"font_bold": "AmericanTypewriter-Bold",
"font_italic": "",
"font_bolditalic": "AmericanTypewriter-Bold"
},
{
"font_id": 5,
"font_name": "Stencil Std",
"font_normal": "Stencil Std",
"font_bold": "",
"font_italic": "",
"font_bolditalic": "Stencil Std"
},
{
"font_id": 6,
"font_name": "Brush Script MT",
"font_normal": "Brush Script",
"font_bold": "",
"font_italic": "",
"font_bolditalic": "Brush Script"
},
{
"font_id": 7,
"font_name": "Noteworthy",
"font_normal": "Noteworthy",
"font_bold": "Noteworthy-Bold",
"font_italic": "",
"font_bolditalic": "Noteworthy-Bold"
},
{
"font_id": 8,
"font_name": "Miama",
"font_normal": "Miama",
"font_bold": "",
"font_italic": "",
"font_bolditalic": "Miama"
},
{
"font_id": 9,
"font_name": "Blackout",
"font_normal": "Blackout",
"font_bold": "",
"font_italic": "",
"font_bolditalic": "Blackout"
},
{
"font_id": 10,
"font_name": "Muli",
"font_normal": "Muli",
"font_bold": "",
"font_italic": "Muli-Italic",
"font_bolditalic": "Muli-Italic"
},
{
"font_id": 11,
"font_name": "padaloma italic",
"font_normal": "padaloma",
"font_bold": "",
"font_italic": "",
"font_bolditalic": "padaloma"
},
{
"font_id": 12,
"font_name": "Josefin Sans",
"font_normal": "Josefin Sans",
"font_bold": "JosefinSans-Bold",
"font_italic": "JosefinSans-Italic",
"font_bolditalic": "JosefinSans-BoldItalic"
},
{
"font_id": 13,
"font_name": "Garogier",
"font_normal": "Garogier",
"font_bold": "",
"font_italic": "",
"font_bolditalic": "Garogier"
}
]
}
================================================
FILE: FotorSDKDemo/.svn/pristine/ff/ff8404bbffc5935a8deae296970b410b56f2be02.svn-base
================================================
51S_s.pngS
================================================
FILE: FotorSDKDemo/.svn/pristine/ff/ffb9369fe3688fcdb52ceb0d6d46bbbd6d909e7e.svn-base
================================================
51S.pngS
================================================
FILE: FotorSDKDemo/AndroidManifest.xml
================================================
================================================
FILE: FotorSDKDemo/assets/border_config/Gallery/10M.xml
================================================
10M_0.png10M_1.png10M_2.png10M_3.png10M_4.png10M_5.png10M_6.png10M_7.png10M.pngM0.081741740072727203072102072721027272301021027272721023072010272720727230
================================================
FILE: FotorSDKDemo/assets/border_config/Gallery/118S.xml
================================================
118S.pngS
================================================
FILE: FotorSDKDemo/assets/border_config/Gallery/3M.xml
================================================
3M_0.png3M_1.png3M_2.png3M_3.png3M_4.png3M_5.png3M_6.png3M_7.png3M.pngM0.05161161008080800180810808081808018181808080811800818080080801
================================================
FILE: FotorSDKDemo/assets/border_config/Gallery/41M.xml
================================================
41M_0.png41M_1.png41M_2.png41M_3.png41M_4.png41M_5.png41M_6.png41M_7.png41M.pngM0.051701700070707003070100070701007070301001007070701003070010070700707030
================================================
FILE: FotorSDKDemo/assets/border_config/Gallery/42M.xml
================================================
42M_0.png42M_1.png42M_2.png42M_3.png42M_4.png42M_5.png42M_6.png42M_7.png42M.pngM0.136236200166166166030166196016616619616616630196196166166166196301660196166166016616630
================================================
FILE: FotorSDKDemo/assets/border_config/Gallery/Config.json
================================================
{
"borderItems":[
{"filename":"118S.xml","thumbThickness":0.14},
{"filename":"42M.xml","thumbThickness":0.19},
{"filename":"10M.xml","thumbThickness":0.139},
{"filename":"3M.xml","thumbThickness":0.105},
{"filename":"41M.xml","thumbThickness":0.11}]
,"packName":"Gallery"}
================================================
FILE: FotorSDKDemo/assets/border_config/Simple/23M.xml
================================================
23M_0.png23M_1.png23M_2.png23M_3.png23M_4.png23M_5.png23M_6.png23M_7.png23M.pngM0.126426400112112112040112152011211215211211240152152112112112152401120152112112011211240
================================================
FILE: FotorSDKDemo/assets/border_config/Simple/29M.xml
================================================
29M_0.png29M_10.png29M_2.png29M_3.png29M_4.png29M_5.png29M_6.png29M_7.png29M.pngM0.121861860088888801088980888898888810989888888898108809888880888810
================================================
FILE: FotorSDKDemo/assets/border_config/Simple/2M.xml
================================================
2M_0.png2M_1.png2M_2.png2M_3.png2M_4.png2M_5.png2M_6.png2M_7.png2M.pngM0.05133133006666660166670666667666616767666666671660676666066661
================================================
FILE: FotorSDKDemo/assets/border_config/Simple/36M.xml
================================================
36M_0.png36M_1.png36M_2.png36M_3.png36M_4.png36M_5.png36M_6.png36M_7.png36M.pngM0.67287280036036036008360368036036036836036083683683603603603688360036836036003603608
================================================
FILE: FotorSDKDemo/assets/border_config/Simple/38M.xml
================================================
38M_0.png38M_1.png38M_2.png38M_3.png38M_4.png38M_5.png38M_6.png38M_7.png38M.pngM0.57287280036036036008360368036036036836036083683683603603603688360036836036003603608
================================================
FILE: FotorSDKDemo/assets/border_config/Simple/Config.json
================================================
{
"borderItems":[
{"filename":"23M.xml","thumbThickness":0.27},
{"filename":"29M.xml","thumbThickness":0.23},
{"filename":"2M.xml","thumbThickness":0.1},
{"filename":"36M.xml","thumbThickness":0.8},
{"filename":"38M.xml","thumbThickness":0.8}]
,"packName":"Simple"}
================================================
FILE: FotorSDKDemo/assets/border_config/Styled/30S.xml
================================================
30S.pngS
================================================
FILE: FotorSDKDemo/assets/border_config/Styled/37S.xml
================================================
37S.pngS
================================================
FILE: FotorSDKDemo/assets/border_config/Styled/43S.xml
================================================
43S.pngS
================================================
FILE: FotorSDKDemo/assets/border_config/Styled/49S.xml
================================================
49S.pngS
================================================
FILE: FotorSDKDemo/assets/border_config/Styled/51S.xml
================================================
51S.pngS
================================================
FILE: FotorSDKDemo/assets/border_config/Styled/Config.json
================================================
{
"borderItems":[
{"filename":"30S.xml","thumbThickness":0.05},
{"filename":"37S.xml","thumbThickness":0.05},
{"filename":"43S.xml","thumbThickness":0.05},
{"filename":"49S.xml","thumbThickness":0.05},
{"filename":"51S.xml","thumbThickness":0.05}]
,"packName":"Styled"}
================================================
FILE: FotorSDKDemo/assets/fonts_config/Charm/Config.json
================================================
{
"version": 1,
"category_name": "Charm",
"fonts_array": [{
"font_id": 1,
"font_name": "Sofia",
"font_normal": "Sofia",
"font_bold": "",
"font_italic": "",
"font_bolditalic": "Sofia"
},
{
"font_id": 2,
"font_name": "Ostrich Sans",
"font_normal": "Ostrich Sans",
"font_bold": "OstrichSans-Bold",
"font_italic": "",
"font_bolditalic": "OstrichSans-Bold"
},
{
"font_id": 3,
"font_name": "Bearpaw",
"font_normal": "Bearpaw",
"font_bold": "",
"font_italic": "",
"font_bolditalic": "Bearpaw"
},
{
"font_id": 4,
"font_name": "American Typewriter",
"font_normal": "AmericanTypewriter",
"font_bold": "",
"font_italic": "",
"font_bolditalic": "AmericanTypewriter-Bold"
},
{
"font_id": 5,
"font_name": "Stencil Std",
"font_normal": "Stencil Std",
"font_bold": "",
"font_italic": "",
"font_bolditalic": "Stencil Std"
},
{
"font_id": 6,
"font_name": "Brush Script MT",
"font_normal": "Brush Script",
"font_bold": "",
"font_italic": "",
"font_bolditalic": "Brush Script"
},
{
"font_id": 7,
"font_name": "Noteworthy",
"font_normal": "Noteworthy",
"font_bold": "",
"font_italic": "",
"font_bolditalic": ""
},
{
"font_id": 8,
"font_name": "Miama",
"font_normal": "Miama",
"font_bold": "",
"font_italic": "",
"font_bolditalic": "Miama"
},
{
"font_id": 9,
"font_name": "Blackout",
"font_normal": "Blackout",
"font_bold": "",
"font_italic": "",
"font_bolditalic": "Blackout"
},
{
"font_id": 10,
"font_name": "Muli",
"font_normal": "Muli",
"font_bold": "",
"font_italic": "Muli-Italic",
"font_bolditalic": "Muli-Italic"
},
{
"font_id": 11,
"font_name": "padaloma italic",
"font_normal": "padaloma",
"font_bold": "",
"font_italic": "",
"font_bolditalic": "padaloma"
},
{
"font_id": 12,
"font_name": "Josefin Sans",
"font_normal": "Josefin Sans",
"font_bold": "JosefinSans-Bold",
"font_italic": "JosefinSans-Italic",
"font_bolditalic": "JosefinSans-BoldItalic"
},
{
"font_id": 13,
"font_name": "Garogier",
"font_normal": "Garogier",
"font_bold": "",
"font_italic": "",
"font_bolditalic": "Garogier"
}
]
}
================================================
FILE: FotorSDKDemo/assets/fonts_config/Classic/Config.json
================================================
{
"version": 1,
"category_name": "Classic",
"fonts_array": [{
"font_id": 1,
"font_name": "Droid Sans",
"font_normal": "DroidSans",
"font_bold": "DroidSans-Bold",
"font_italic": "",
"font_bolditalic": ""
},
{
"font_id": 2,
"font_name": "Droid Serif",
"font_normal": "DroidSerif",
"font_bold": "DroidSerif-Bold",
"font_italic": "DroidSerif-Italic",
"font_bolditalic": "DroidSerif-BoldItalic"
},
{
"font_id": 3,
"font_name": "Droid Sans Mono",
"font_normal": "DroidSansMono",
"font_bold": "",
"font_italic": "",
"font_bolditalic": ""
},
{
"font_id": 4,
"font_name": "Roboto Regular",
"font_normal": "Roboto-Regular",
"font_bold": "Roboto-Bold",
"font_italic": "Roboto-Italic",
"font_bolditalic": "Roboto-BoldItalic"
},
{
"font_id": 5,
"font_name": "Roboto Thin",
"font_normal": "Roboto-Thin",
"font_bold": "",
"font_italic": "Roboto-ThinItalic",
"font_bolditalic": ""
},
{
"font_id": 6,
"font_name": "Roboto Condensed",
"font_normal": "RobotoCondensed-Regular",
"font_bold": "RobotoCondensed-Bold",
"font_italic": "RobotoCondensed-Italic",
"font_bolditalic": "RobotoCondensed-BoldItalic"
}
]
}
================================================
FILE: FotorSDKDemo/assets/fx_config/Analog/11.xml
================================================
tableTexturetexturing(48, 56)(82, 129)(130, 206)(214, 255)(7, 37)(64, 111)(140, 190)(232, 220)(2, 97)(114, 153)(229, 172)SRCDSTtableTexture
================================================
FILE: FotorSDKDemo/assets/fx_config/Analog/27.xml
================================================
SRCDST-1.0-1.0-1.0-1.0-1.0-1.0
================================================
FILE: FotorSDKDemo/assets/fx_config/Analog/73.xml
================================================
vtg.pngtableTexture1texturing(16, 0)(138, 133)(202, 185)(255, 213)(82, 0)(128, 85)(173, 145)(255, 207)(108, 62)(176, 137)(255, 184)tableTexture2texturing(0, 105)(61, 167)(128, 221)(190, 236)(255, 255)(3, 0)(64, 98)(130, 191)(191, 228)(255, 255)(54, 62)(86, 101)(129, 155)(191, 192)(255, 222)SRCtableTexture1dst_aSRCtableTexture2dst_bdst_adst_bspecialAlphaTexture
================================================
FILE: FotorSDKDemo/assets/fx_config/Analog/74.xml
================================================
vtg.pngSRCtmp-0.45-0.45-0.45-0.45-0.45-0.45tableTexture1texturing(63, 35)(148, 116)(255, 208)(71, 0)(149, 84)(255, 187)(85, 22)(177, 87)(255, 148)tableTexture2texturing(5, 42)(78, 129)(117, 178)(182, 219)(252, 253)(0, 0)(63, 84)(117, 157)(173, 204)(255, 241)(8, 26)(130, 147)(190, 197)(255, 217)tmpdst_atableTexture1tmpdst_btableTexture2dst_adst_bspecialAlphaTexture
================================================
FILE: FotorSDKDemo/assets/fx_config/Analog/75.xml
================================================
vtg.pngtableTexture1texturing(71, 0)(112, 62)(157, 148)(255, 232)(83, 0)(138, 113)(172, 173)(255, 223)(16, 0)(255, 194)tableTexture2texturing(43, 0)(109, 88)(147, 167)(215, 255)(48, 1)(125, 117)(173, 211)(239, 255)(0, 25)(100, 105)(189, 176)(255, 228)SRCtableTexture1dst_aSRCtableTexture2dst_bdst_adst_bspecialAlphaTexture
================================================
FILE: FotorSDKDemo/assets/fx_config/Analog/76.xml
================================================
vtg.pngSRCdst0.650, 0.2935, 0.0570.1495, 0.7935, 0.0570.1495, 0.2935, 0.557tableTexture1texturing(4, 35)(71, 79)(140, 160)(178, 233)(209, 255)(9, 0)(73, 61)(140, 162)(203, 224)(248, 248)(0, 31)(110, 102)(145, 148)(195, 183)(233, 213)(253, 236)tableTexture2texturing(5, 37)(69, 85)(119, 151)(157, 213)(208, 255)(13, 5)(74, 78)(109, 144)(156, 201)(250, 250)(2, 36)(63, 73)(93, 112)(175, 190)(241, 227)(255, 235)dsttableTexture1dst_adsttableTexture2dst_bdst_adst_bspecialAlphaTexture
================================================
FILE: FotorSDKDemo/assets/fx_config/Analog/78.xml
================================================
vtg.pngtableTexture1texturing(16, 25)(59, 77)(101, 143)(173, 211)(255, 237)(24, 7)(85, 73)(124, 149)(185, 207)(249, 229)(30, 7)(105, 78)(150, 148)(200, 193)(255, 204)tableTexture2texturing(16, 40)(52, 111)(124, 194)(172, 224)(231, 252)(19, 5)(71, 84)(110, 145)(167, 212)(222, 250)(21, 4)(67, 50)(143, 167)(237, 228)SRCtableTexture1dst_aSRCtableTexture2dst_bdst_adst_bspecialAlphaTexture
================================================
FILE: FotorSDKDemo/assets/fx_config/Analog/80.xml
================================================
vtg.pngtableTexture1texturing(22, 0)(120, 78)(208, 138)(255, 170)(77, 0)(143, 69)(255, 176)(45, 0)(159, 97)(255, 173)tableTexture2texturing(7, 171)(92, 201)(255, 253)(0, 3)(61, 79)(110, 142)(186, 201)(255, 255)(0, 23)(53, 87)(103, 140)(186, 208)(239, 248)SRCtableTexture1dst_aSRCtableTexture2dst_bdst_adst_bspecialAlphaTexture
================================================
FILE: FotorSDKDemo/assets/fx_config/Analog/Config.json
================================================
["11.xml","74.xml","76.xml","75.xml","73.xml","80.xml","78.xml","27.xml"]
================================================
FILE: FotorSDKDemo/assets/fx_config/Lomo/1.xml
================================================
SRClevelGetScale0.10.11.0levelTMPquadric0.01.0tableTexturetexturing(0, 0)(127, 145)(255, 229)(0, 0)(63, 66)(127, 144)(255, 223)(0, 0)(127, 117)(255, 195)TMPDSTtableTexture
================================================
FILE: FotorSDKDemo/assets/fx_config/Lomo/10.xml
================================================
tableTexturetexturing(0, 4)(255, 244)(0, 0)(255, 255)(0, 84)(255, 194)SRCDSTtableTexture
================================================
FILE: FotorSDKDemo/assets/fx_config/Lomo/102.xml
================================================
tableTexturetexturing(33, 0)(104, 76)(167, 168)(218, 255)(30, 0)(112, 71)(174, 189)(234, 255)(8, 30)(160, 122)(233, 255)SRCDSTtableTexture
================================================
FILE: FotorSDKDemo/assets/fx_config/Lomo/103.xml
================================================
tableTexturetexturing(35, 43)(159, 194)(255, 255)(0, 26)(141, 157)(255, 218)(0, 81)(255, 145)SRCDSTtableTexture
================================================
FILE: FotorSDKDemo/assets/fx_config/Lomo/2.xml
================================================
SRClevelGetScale0.10.21.0levelTMPquadric0.01.0tableTexturetexturing(0, 0)(127, 91)(255, 214)(0, 0)(127, 102)(255, 255)(0, 0)(127, 108)(255, 255)TMPDSTtableTexture
================================================
FILE: FotorSDKDemo/assets/fx_config/Lomo/23.xml
================================================
SRCdst-0.5-0.5-0.5-0.5-0.5-0.5tableTexturetexturing(0, 0)(129, 148)(255, 255)(0, 0)(92, 77)(175, 189)(255, 255)(0, 0)(163, 144)(255, 255)dstDSTtableTexture
================================================
FILE: FotorSDKDemo/assets/fx_config/Lomo/4.xml
================================================
SRClevelGetScale0.10.10.3levelTMPquadric0.01.0tableTexturetexturing(0, 14)(63, 66)(129, 151)(208, 255)(0, 38)(63, 72)(127, 127)(196, 255)(0, 49)(63, 75)(127, 121)(202, 233)(255, 255)TMPDSTtableTexture
================================================
FILE: FotorSDKDemo/assets/fx_config/Lomo/5.xml
================================================
tableTexturetexturing(0, 0)(117, 95)(155, 171)(179, 225)(255, 255)(0, 0)(94, 66)(155, 176)(255, 255)(0, 0)(48, 59)(141, 130)(255, 224)SRCDSTtableTexture
================================================
FILE: FotorSDKDemo/assets/fx_config/Lomo/7.xml
================================================
tableTexturetexturing(0, 0)(43, 77)(56, 104)(100, 166)(255, 255)(0, 0)(35, 53)(255, 255)(0, 0)(110, 123)(255, 212)SRCDSTtableTexture
================================================
FILE: FotorSDKDemo/assets/fx_config/Lomo/Config.json
================================================
["1.xml","4.xml","23.xml","5.xml","102.xml","103.xml","2.xml","7.xml","10.xml"]
================================================
FILE: FotorSDKDemo/assets/fx_config/OldPicture/10.xml
================================================
tableTexturetexturing0, 4255, 2440, 0255, 2550, 84255, 194SRCDSTtableTexture
================================================
FILE: FotorSDKDemo/assets/fx_config/OldPicture/111.xml
================================================
SRCDSTGetScale0.010.010.0
================================================
FILE: FotorSDKDemo/assets/fx_config/OldPicture/112.xml
================================================
SRClevelGetScale0.010.20.0levelDSTquadric0.01.0
================================================
FILE: FotorSDKDemo/assets/fx_config/OldPicture/114.xml
================================================
e114_t.pngSRClevelGetScale0.010.21.0levelDSTtextureexclusion0.51
================================================
FILE: FotorSDKDemo/assets/fx_config/OldPicture/28.xml
================================================
SRCTMPGetScale0.010.150.0TMPDSTquadric0.00.8
================================================
FILE: FotorSDKDemo/assets/fx_config/OldPicture/6.xml
================================================
tableTexturetexturing0, 069, 63105, 138151, 222255, 2550, 067, 51135, 191255, 2550, 086, 76150, 212255, 255SRCDSTtableTexture
================================================
FILE: FotorSDKDemo/assets/fx_config/OldPicture/Config.json
================================================
["6.xml","10.xml","114.xml","111.xml","112.xml","28.xml"]
================================================
FILE: FotorSDKDemo/assets/fx_config/Retro/104.xml
================================================
SRCTMPGetScale0.010.010.0TMPDSTquadric0.01.0
================================================
FILE: FotorSDKDemo/assets/fx_config/Retro/118.xml
================================================
SRClevelGetScale0.010.20.0levelTMPlinear0.00.8TMPDST0.393, 0.769, 0.1890.349, 0.686, 0.1680.272, 0.534, 0.131
================================================
FILE: FotorSDKDemo/assets/fx_config/Retro/16.xml
================================================
SRClevelGetScale0.010.011.0levelsaturation0.1-0.7-0.7-0.7-0.70.1levelhuehue0.829saturationhueDSTnormal0.31
================================================
FILE: FotorSDKDemo/assets/fx_config/Retro/17.xml
================================================
SRClevelGetScale0.010.011.0levelsaturation-0.7-0.7-0.70.50.5-0.7SRCTMP0.243140.070590.59215saturationTMPDSToverlay0.25
================================================
FILE: FotorSDKDemo/assets/fx_config/Retro/8.xml
================================================
tableTexturetexturing(0, 0)(35, 71)(153, 197)(255, 255)(0, 15)(16, 36)(109, 132)(255, 255)(0, 23)(181, 194)(255, 230)SRCDSTtableTexture
================================================
FILE: FotorSDKDemo/assets/fx_config/Retro/9.xml
================================================
tableTexturetexturing(15, 0)(92, 133)(255, 234)(0, 20)(105, 128)(255, 255)(0, 0)(120, 132)(255, 214)SRCDSTtableTexture
================================================
FILE: FotorSDKDemo/assets/fx_config/Retro/Config.json
================================================
["118.xml","16.xml","8.xml","9.xml","104.xml","17.xml"]
================================================
FILE: FotorSDKDemo/assets/fx_config/Vintage/108.xml
================================================
SRClevelGetScale0.010.011.3levelTMPquadric0.00.8tableTexturetexturing(33, 10)(255, 255)(0, 15)(86, 94)(171, 194)(255, 255)(0, 20)(255, 235)TMPDSTtableTexture
================================================
FILE: FotorSDKDemo/assets/fx_config/Vintage/109.xml
================================================
SRClevelGetScale0.010.011.3levelTMPquadric0.01.0tableTexturetexturing(0, 31)(106, 121)(255, 196)(0, 11)(64, 95)(132, 140)(255, 229)(0, 0)(157, 156)(255, 210)TMPDSTtableTexture
================================================
FILE: FotorSDKDemo/assets/fx_config/Vintage/110.xml
================================================
SRClevelGetScale0.010.011.3levelTMPquadric0.00.8tableTexturetexturing(20, 0)(150, 109)(255, 255)(30, 0)(97, 92)(163, 172)(255, 255)(0, 0)(240, 255)TMPDSTtableTexture
================================================
FILE: FotorSDKDemo/assets/fx_config/Vintage/6.xml
================================================
tableTexturetexturing(0, 0)(69, 63)(105, 138)(151, 222)(255, 255)(0, 0)(67, 51)(135, 191)(255, 255)(0, 0)(86, 76)(150, 212)(255, 255)SRCDSTtableTexture
================================================
FILE: FotorSDKDemo/assets/fx_config/Vintage/91.xml
================================================
SRCtechnicolor0.992, 0.137, 0.3140.204, 0.98, 0.725technicolorDSTlinear0.00.7
================================================
FILE: FotorSDKDemo/assets/fx_config/Vintage/93.xml
================================================
SRCTMPquadric0.00.9tableTexturetexturing(0, 0)(89, 44)(179, 189)(222, 255)(0, 0)(64, 64)(185, 212)(255, 255)(0, 23)(255, 217)TMPDSTtableTexture
================================================
FILE: FotorSDKDemo/assets/fx_config/Vintage/Config.json
================================================
["108.xml","109.xml","110.xml","91.xml","93.xml","6.xml"]
================================================
FILE: FotorSDKDemo/assets/scenes/160.xml
================================================
tableTexturetexturing(3, 0)(23, 29)(83, 116)(167, 206)(255, 255)(5, 0)(56, 64)(160, 189)(255, 255)(3, 0)(48, 49)(142, 167)(248, 255)SRCDSTtableTexture
================================================
FILE: FotorSDKDemo/assets/scenes/161.xml
================================================
tableTexturetexturing(15, 0)(45, 37)(92, 103)(230, 255)(19, 0)(34, 22)(138, 158)(228, 252)(19, 0)(74, 63)(159, 166)(230, 255)SRCDSTtableTexture
================================================
FILE: FotorSDKDemo/assets/scenes/162.xml
================================================
tableTexturetexturing(0, 4)(39, 103)(134, 223)(242, 255)(0, 3)(31, 85)(68, 155)(131, 255)(219, 255)(0, 3)(42, 110)(114, 207)(255, 255)SRCDSTtableTexture
================================================
FILE: FotorSDKDemo/assets/scenes/163.xml
================================================
tableTexturetexturing(17, 0)(37, 18)(75, 52)(238, 255)(16, 0)(53, 32)(113, 92)(236, 255)(16, 0)(80, 57)(171, 164)(235, 255)SRCDSTtableTexture
================================================
FILE: FotorSDKDemo/assets/scenes/164.xml
================================================
tableTexturetexturing(33, 0)(70, 32)(146, 143)(185, 204)(255, 255)(22, 0)(103, 71)(189, 219)(255, 252)(10, 0)(54, 29)(93, 66)(205, 220)(255, 255)SRCDSTtableTexture
================================================
FILE: FotorSDKDemo/assets/scenes/165.xml
================================================
tableTexturetexturing(4, 4)(38, 38)(146, 146)(201, 202)(255, 255)(0, 0)(80, 74)(192, 187)(255, 255)(0, 0)(58, 58)(183, 184)(255, 255)SRCDSTtableTexture
================================================
FILE: FotorSDKDemo/assets/scenes/166.xml
================================================
tableTexturetexturing(5, 8)(36, 51)(115, 145)(201, 220)(255, 255)(6, 9)(67, 83)(169, 190)(255, 255)(3, 3)(55, 60)(177, 190)(255, 255)SRCDSTtableTexture
================================================
FILE: FotorSDKDemo/assets/scenes/167.xml
================================================
tableTexturetexturing(14, 0)(51, 42)(135, 138)(191, 202)(234, 255)(11, 6)(78, 77)(178, 185)(242, 250)(11, 0)(22, 10)(72, 60)(171, 162)(217, 209)(255, 255)SRCDSTtableTexture
================================================
FILE: FotorSDKDemo/assets/scenes/168.xml
================================================
tableTexturetexturing(9, 0)(26, 7)(155, 108)(194, 159)(255, 253)(9, 0)(50, 19)(218, 194)(255, 255)(0, 0)(29, 9)(162, 116)(218, 194)(255, 255)SRCDSTtableTexture
================================================
FILE: FotorSDKDemo/assets/scenes/169.xml
================================================
tableTexturetexturing(0, 0)(69, 93)(126, 160)(210, 232)(255, 255)(0, 0)(36, 47)(135, 169)(250, 254)(0, 0)(28, 30)(107, 137)(147, 206)(255, 255)SRCDSTtableTexture
================================================
FILE: FotorSDKDemo/assets/scenes/170.xml
================================================
tableTexturetexturing(2, 2)(16, 30)(72, 112)(135, 185)(252, 255)(2, 1)(30, 42)(55, 84)(157, 207)(238, 249)(1, 0)(26, 17)(67, 106)(114, 165)(231, 250)SRCDSTtableTexture
================================================
FILE: FotorSDKDemo/assets/scenes/171.xml
================================================
tableTexture1texturing(16, 0)(60, 45)(124, 124)(214, 255)(18, 2)(91, 81)(156, 169)(213, 255)(16, 0)(85, 74)(158, 171)(211, 255)tableTexture2texturing(17, 0)(144, 150)(214, 255)(16, 0)(61, 47)(160, 172)(215, 255)(21, 2)(131, 135)(213, 255)SRCTMPtableTexture1TMPDSTtableTexture2
================================================
FILE: FotorSDKDemo/assets/scenes/173.xml
================================================
tableTexturetexturing(9, 0)(49, 62)(124, 155)(218, 255)(10, 0)(30, 33)(137, 169)(223, 255)(10, 0)(37, 45)(96, 122)(150, 182)(221, 255)SRCDSTtableTexture
================================================
FILE: FotorSDKDemo/assets/stickers_config/Boom/Config.json
================================================
[["stickers_boom_1.png",
"stickers_boom_1_icon.png"],
["stickers_boom_2.png",
"stickers_boom_2_icon.png"],
["stickers_boom_3.png",
"stickers_boom_3_icon.png"],
["stickers_boom_4.png",
"stickers_boom_4_icon.png"],
["stickers_boom_5.png",
"stickers_boom_5_icon.png"],
["stickers_boom_6.png",
"stickers_boom_6_icon.png"],
["stickers_boom_7.png",
"stickers_boom_7_icon.png"],
["stickers_boom_8.png",
"stickers_boom_8_icon.png"],
["stickers_boom_9.png",
"stickers_boom_9_icon.png"],
["stickers_boom_10.png",
"stickers_boom_10_icon.png"],
["stickers_boom_11.png",
"stickers_boom_11_icon.png"],
["stickers_boom_12.png",
"stickers_boom_12_icon.png"],
["stickers_boom_13.png",
"stickers_boom_13_icon.png"],
["stickers_boom_14.png",
"stickers_boom_14_icon.png"],
["stickers_boom_15.png",
"stickers_boom_15_icon.png"],
["stickers_boom_16.png",
"stickers_boom_16_icon.png"]]
================================================
FILE: FotorSDKDemo/assets/stickers_config/Decoration/Config.json
================================================
[["stickers_decoration_1.png",
"stickers_decoration_1_icon.png"],
["stickers_decoration_2.png",
"stickers_decoration_2_icon.png"],
["stickers_decoration_3.png",
"stickers_decoration_3_icon.png"],
["stickers_decoration_4.png",
"stickers_decoration_4_icon.png"],
["stickers_decoration_5.png",
"stickers_decoration_5_icon.png"],
["stickers_decoration_6.png",
"stickers_decoration_6_icon.png"],
["stickers_decoration_7.png",
"stickers_decoration_7_icon.png"],
["stickers_decoration_8.png",
"stickers_decoration_8_icon.png"],
["stickers_decoration_9.png",
"stickers_decoration_9_icon.png"],
["stickers_decoration_10.png",
"stickers_decoration_10_icon.png"],
["stickers_decoration_11.png",
"stickers_decoration_11_icon.png"],
["stickers_decoration_12.png",
"stickers_decoration_12_icon.png"],
["stickers_decoration_13.png",
"stickers_decoration_13_icon.png"],
["stickers_decoration_14.png",
"stickers_decoration_14_icon.png"],
["stickers_decoration_15.png",
"stickers_decoration_15_icon.png"],
["stickers_decoration_16.png",
"stickers_decoration_16_icon.png"]]
================================================
FILE: FotorSDKDemo/assets/stickers_config/Love/Config.json
================================================
[["stickers_love_1.png",
"stickers_love_1_icon.png"],
["stickers_love_2.png",
"stickers_love_2_icon.png"],
["stickers_love_3.png",
"stickers_love_3_icon.png"],
["stickers_love_4.png",
"stickers_love_4_icon.png"],
["stickers_love_5.png",
"stickers_love_5_icon.png"],
["stickers_love_6.png",
"stickers_love_6_icon.png"],
["stickers_love_7.png",
"stickers_love_7_icon.png"],
["stickers_love_8.png",
"stickers_love_8_icon.png"],
["stickers_love_9.png",
"stickers_love_9_icon.png"],
["stickers_love_10.png",
"stickers_love_10_icon.png"],
["stickers_love_11.png",
"stickers_love_11_icon.png"],
["stickers_love_12.png",
"stickers_love_12_icon.png"],
["stickers_love_13.png",
"stickers_love_13_icon.png"],
["stickers_love_14.png",
"stickers_love_14_icon.png"],
["stickers_love_15.png",
"stickers_love_15_icon.png"],
["stickers_love_16.png",
"stickers_love_16_icon.png"]]
================================================
FILE: FotorSDKDemo/assets/stickers_config/Party/Config.json
================================================
[["stickers_party_1.png",
"stickers_party_1_icon.png"],
["stickers_party_2.png",
"stickers_party_2_icon.png"],
["stickers_party_3.png",
"stickers_party_3_icon.png"],
["stickers_party_4.png",
"stickers_party_4_icon.png"],
["stickers_party_5.png",
"stickers_party_5_icon.png"],
["stickers_party_6.png",
"stickers_party_6_icon.png"],
["stickers_party_7.png",
"stickers_party_7_icon.png"],
["stickers_party_8.png",
"stickers_party_8_icon.png"],
["stickers_party_9.png",
"stickers_party_9_icon.png"],
["stickers_party_10.png",
"stickers_party_10_icon.png"],
["stickers_party_11.png",
"stickers_party_11_icon.png"],
["stickers_party_12.png",
"stickers_party_12_icon.png"],
["stickers_party_13.png",
"stickers_party_13_icon.png"],
["stickers_party_14.png",
"stickers_party_14_icon.png"],
["stickers_party_15.png",
"stickers_party_15_icon.png"],
["stickers_party_16.png",
"stickers_party_16_icon.png"]]
================================================
FILE: FotorSDKDemo/assets/stickers_config/Text/Config.json
================================================
[["stickers_text_1.png",
"stickers_text_1_icon.png"],
["stickers_text_2.png",
"stickers_text_2_icon.png"],
["stickers_text_3.png",
"stickers_text_3_icon.png"],
["stickers_text_4.png",
"stickers_text_4_icon.png"],
["stickers_text_5.png",
"stickers_text_5_icon.png"],
["stickers_text_6.png",
"stickers_text_6_icon.png"],
["stickers_text_7.png",
"stickers_text_7_icon.png"]]
================================================
FILE: FotorSDKDemo/bin/AndroidManifest.xml
================================================
================================================
FILE: FotorSDKDemo/bin/FotorSDKDemo.apk
================================================
[File too large to display: 12.3 MB]
================================================
FILE: FotorSDKDemo/bin/R.txt
================================================
int anim fotor_camera_focus_anim 0x7f040000
int anim fotor_fit_view_fadein_animation 0x7f040001
int anim fotor_fit_view_fadeout_animation 0x7f040002
int anim fotor_footer_bar_in_animation 0x7f040003
int anim fotor_footer_bar_out_animation 0x7f040004
int attr dividerWidth 0x7f010030
int attr entries 0x7f01002f
int attr footerDividersEnabled 0x7f010032
int attr fotorCustomSlider_adjustYDistance 0x7f010015
int attr fotorCustomSlider_isShowValue 0x7f010016
int attr fotorCustomSlider_max 0x7f01001b
int attr fotorCustomSlider_progress 0x7f01001c
int attr fotorCustomSlider_progressDrawable 0x7f01001a
int attr fotorCustomSlider_thumb 0x7f010018
int attr fotorCustomSlider_typeface 0x7f010019
int attr fotorCustomSlider_valueBackground 0x7f010017
int attr fotorDefaultEffectSelectorViewStyle 0x7f010011
int attr fotorDefaultHeaderButtonStyle 0x7f010010
int attr fotorDefaultImageViewBackground 0x7f01000e
int attr fotorDefaultNavigateBtnStyle 0x7f01000d
int attr fotorDefaultOperToolPanelStyle 0x7f01000f
int attr fotorDefaultSliderStyle 0x7f01000c
int attr fotorDefaultTextButtonStyle 0x7f01000b
int attr fotorDefaultTextViewStyle 0x7f01000a
int attr fotorDefaultTitleBackButtonStyle 0x7f010012
int attr fotorEffectSelectorView_Color 0x7f010026
int attr fotorFontBold 0x7f010000
int attr fotorFontLight 0x7f010001
int attr fotorHeaderButton_typeface 0x7f010025
int attr fotorMainBottomHeight 0x7f010002
int attr fotorMainFooterBackground 0x7f010006
int attr fotorMainHeaderBackground 0x7f010007
int attr fotorMainHeaderHeight 0x7f010004
int attr fotorMainToolPanelBackground 0x7f010008
int attr fotorMainToolPanelHeight 0x7f010003
int attr fotorNavigationBtnWidth 0x7f010005
int attr fotorNavigationBtn_color_default 0x7f010020
int attr fotorNavigationBtn_color_disabled 0x7f010022
int attr fotorNavigationBtn_color_pressed 0x7f010021
int attr fotorNavigationBtn_isShowPressedBackground 0x7f01001d
int attr fotorNavigationBtn_pressed_background 0x7f010023
int attr fotorNavigationBtn_text 0x7f01001e
int attr fotorNavigationBtn_typeface 0x7f01001f
int attr fotorOperToolPanel_bottomLine_Color 0x7f010024
int attr fotorTextButton_typeface 0x7f010014
int attr fotorTextView_typeface 0x7f010013
int attr fotorTitleBackButton_IconDrawable 0x7f01002a
int attr fotorTitleBackButton_Text 0x7f010028
int attr fotorTitleBackButton_TextColor 0x7f010029
int attr fotorTitleBackButton_Textsize 0x7f010027
int attr fotorTitleBackButton_Typeface 0x7f01002b
int attr fotorTitleTextSize 0x7f010009
int attr headerDividersEnabled 0x7f010031
int attr measureWithChild 0x7f010035
int attr overScrollFooter 0x7f010034
int attr overScrollHeader 0x7f010033
int attr sephiroth_absHListViewStyle 0x7f01002d
int attr sephiroth_listPreferredItemWidth 0x7f01002e
int attr sephiroth_listViewStyle 0x7f01002c
int attr stackFromRight 0x7f010036
int attr transcriptMode 0x7f010037
int color bottom_button_background_default_color 0x7f06003c
int color bottom_button_background_disable_color 0x7f06003e
int color bottom_button_background_pressed_color 0x7f06003d
int color bottom_button_text_default_color 0x7f060039
int color bottom_button_text_disable_color 0x7f06003b
int color bottom_button_text_pressed_color 0x7f06003a
int color fotor_feature_adjust_curve_background 0x7f06000d
int color fotor_feature_loading_textColor 0x7f06000e
int color fotor_feature_stickers_button_pressed 0x7f060013
int color fotor_feature_text_color_button1 0x7f06001b
int color fotor_feature_text_color_button10 0x7f060024
int color fotor_feature_text_color_button11 0x7f060025
int color fotor_feature_text_color_button12 0x7f060026
int color fotor_feature_text_color_button13 0x7f060027
int color fotor_feature_text_color_button14 0x7f060028
int color fotor_feature_text_color_button15 0x7f060029
int color fotor_feature_text_color_button16 0x7f06002a
int color fotor_feature_text_color_button17 0x7f06002b
int color fotor_feature_text_color_button18 0x7f06002c
int color fotor_feature_text_color_button19 0x7f06002d
int color fotor_feature_text_color_button2 0x7f06001c
int color fotor_feature_text_color_button20 0x7f06002e
int color fotor_feature_text_color_button21 0x7f06002f
int color fotor_feature_text_color_button22 0x7f060030
int color fotor_feature_text_color_button23 0x7f060031
int color fotor_feature_text_color_button24 0x7f060032
int color fotor_feature_text_color_button25 0x7f060033
int color fotor_feature_text_color_button26 0x7f060034
int color fotor_feature_text_color_button27 0x7f060035
int color fotor_feature_text_color_button28 0x7f060036
int color fotor_feature_text_color_button3 0x7f06001d
int color fotor_feature_text_color_button4 0x7f06001e
int color fotor_feature_text_color_button5 0x7f06001f
int color fotor_feature_text_color_button6 0x7f060020
int color fotor_feature_text_color_button7 0x7f060021
int color fotor_feature_text_color_button8 0x7f060022
int color fotor_feature_text_color_button9 0x7f060023
int color fotor_feature_text_option_title_color 0x7f060019
int color fotor_feature_text_panel_background 0x7f060014
int color fotor_feature_text_panel_line_color 0x7f060015
int color fotor_feature_text_shadow_color 0x7f06001a
int color fotor_feature_text_texture_border_selected 0x7f060018
int color fotor_feature_text_typeface_default 0x7f060017
int color fotor_feature_text_typeface_pressed 0x7f060016
int color fotor_fx_effect_effects_listview_item_background_default 0x7f06000f
int color fotor_fx_effect_effects_listview_item_background_pressed 0x7f060010
int color fotor_fx_effect_effects_listview_item_textColor 0x7f060011
int color fotor_fx_effect_effects_listview_item_text_bakground 0x7f060012
int color fotor_half_transparent 0x7f060001
int color fotor_header_button_text_state 0x7f06003f
int color fotor_main_footer_background 0x7f060002
int color fotor_main_header_background 0x7f060008
int color fotor_main_header_button_text_default 0x7f06000b
int color fotor_main_header_button_text_pressed 0x7f06000c
int color fotor_main_imageview_background 0x7f060007
int color fotor_main_loading_background 0x7f060037
int color fotor_main_toolpanel_background 0x7f060009
int color fotor_main_toolpanel_bottom_line 0x7f06000a
int color fotor_navigation_btn_color_default 0x7f060005
int color fotor_navigation_btn_color_disabled 0x7f060006
int color fotor_navigation_btn_color_pressed 0x7f060004
int color fotor_navigation_btn_pressed_background 0x7f060003
int color fotor_text_button_text_state 0x7f060040
int color fotor_title_back_button_text_state 0x7f060041
int color fotor_transparent 0x7f060000
int color photo_editor_button_background_color 0x7f060042
int color photo_editor_button_text_color 0x7f060043
int color title_background 0x7f060038
int dimen activity_horizontal_margin 0x7f080032
int dimen activity_vertical_margin 0x7f080033
int dimen bottom_background_height 0x7f080036
int dimen bottom_button_text_size 0x7f080037
int dimen fotor_border_effect_listview_divider_width 0x7f080031
int dimen fotor_crop_reset_margin_h 0x7f08000f
int dimen fotor_curve_btn_textsize 0x7f08000d
int dimen fotor_curve_control_panel_btn_spacing 0x7f08000c
int dimen fotor_curve_view_max_size 0x7f080030
int dimen fotor_feature_loading_textSize 0x7f08002b
int dimen fotor_feature_stickers_button_spacing 0x7f08002a
int dimen fotor_feature_stickers_button_width 0x7f080029
int dimen fotor_fx_effect_buttons_margin_right 0x7f080010
int dimen fotor_fx_effect_effects_listview_item_image_width 0x7f080011
int dimen fotor_fx_effect_effects_listview_item_margin 0x7f080013
int dimen fotor_fx_effect_effects_listview_item_textHeight 0x7f080012
int dimen fotor_fx_effect_effects_listview_item_textSize 0x7f080014
int dimen fotor_main_bottom_height 0x7f080000
int dimen fotor_main_header_btn_textsize 0x7f080005
int dimen fotor_main_header_height 0x7f080007
int dimen fotor_main_header_margin 0x7f080008
int dimen fotor_main_header_title_textsize 0x7f080006
int dimen fotor_main_imageview_margin 0x7f08002d
int dimen fotor_main_loadding_background_radius 0x7f08002e
int dimen fotor_main_loadding_margin 0x7f08002f
int dimen fotor_main_loading_textSize 0x7f08002c
int dimen fotor_main_minimum_bottom_height 0x7f080004
int dimen fotor_main_navigation_btn_textsize 0x7f080002
int dimen fotor_main_navigation_btn_width 0x7f080001
int dimen fotor_main_tool_panel_height 0x7f080003
int dimen fotor_main_tool_panel_line_size 0x7f080009
int dimen fotor_slider_panel_margin_h 0x7f08000b
int dimen fotor_slider_value_margin 0x7f08000a
int dimen fotor_text_color_button_size 0x7f080021
int dimen fotor_text_color_button_stroke 0x7f080020
int dimen fotor_text_item_padding 0x7f080019
int dimen fotor_text_keyboard_canvas_spacing 0x7f08001c
int dimen fotor_text_option_btn_spacing 0x7f080025
int dimen fotor_text_option_opacity_padding_h 0x7f080028
int dimen fotor_text_option_panel_margin 0x7f080023
int dimen fotor_text_option_panel_spacing 0x7f080024
int dimen fotor_text_option_right_panel_margin_top 0x7f080027
int dimen fotor_text_option_title_textsize 0x7f080026
int dimen fotor_text_shadow_offset_x 0x7f08001a
int dimen fotor_text_shadow_offset_y 0x7f08001b
int dimen fotor_text_textsize_default 0x7f080015
int dimen fotor_text_textsize_maximum 0x7f080016
int dimen fotor_text_textsize_minimum 0x7f080017
int dimen fotor_text_textsize_step 0x7f080018
int dimen fotor_text_texture_button_size 0x7f080022
int dimen fotor_text_typeface_category_item_width 0x7f08001d
int dimen fotor_text_typeface_item_height 0x7f08001e
int dimen fotor_text_typeface_item_textsize 0x7f08001f
int dimen fotor_tilt_shift_tool_panel_margin_left 0x7f08000e
int dimen title_background_height 0x7f080034
int dimen title_text_size 0x7f080035
int drawable fotor_adjust_brightness 0x7f020000
int drawable fotor_adjust_contrast 0x7f020001
int drawable fotor_adjust_curve 0x7f020002
int drawable fotor_adjust_highlight 0x7f020003
int drawable fotor_adjust_rgb 0x7f020004
int drawable fotor_adjust_saturation 0x7f020005
int drawable fotor_adjust_shadow 0x7f020006
int drawable fotor_adjust_sharpen 0x7f020007
int drawable fotor_adjust_temp 0x7f020008
int drawable fotor_adjust_tint 0x7f020009
int drawable fotor_adjust_vignette 0x7f02000a
int drawable fotor_advanced_curve_default 0x7f02000b
int drawable fotor_advanced_curve_pressed 0x7f02000c
int drawable fotor_advanced_highlights_default 0x7f02000d
int drawable fotor_advanced_highlights_pressed 0x7f02000e
int drawable fotor_advanced_rgb_default 0x7f02000f
int drawable fotor_advanced_rgb_pressed 0x7f020010
int drawable fotor_advanced_shadows_default 0x7f020011
int drawable fotor_advanced_shadows_pressed 0x7f020012
int drawable fotor_advanced_temp_default 0x7f020013
int drawable fotor_advanced_temp_pressed 0x7f020014
int drawable fotor_advanced_tint_default 0x7f020015
int drawable fotor_advanced_tint_pressed 0x7f020016
int drawable fotor_advanced_vignette_default 0x7f020017
int drawable fotor_advanced_vignette_pressed 0x7f020018
int drawable fotor_back 0x7f020019
int drawable fotor_back_default 0x7f02001a
int drawable fotor_back_pressed 0x7f02001b
int drawable fotor_basis_brightness_default 0x7f02001c
int drawable fotor_basis_brightness_pressed 0x7f02001d
int drawable fotor_basis_contrast_default 0x7f02001e
int drawable fotor_basis_contrast_pressed 0x7f02001f
int drawable fotor_basis_saturation_default 0x7f020020
int drawable fotor_basis_saturation_pressed 0x7f020021
int drawable fotor_basis_sharpen_default 0x7f020022
int drawable fotor_basis_sharpen_pressed 0x7f020023
int drawable fotor_borders_gallery_default 0x7f020024
int drawable fotor_borders_gallery_pressed 0x7f020025
int drawable fotor_borders_more 0x7f020026
int drawable fotor_borders_more_default 0x7f020027
int drawable fotor_borders_more_pressed 0x7f020028
int drawable fotor_borders_simple_default 0x7f020029
int drawable fotor_borders_simple_pressed 0x7f02002a
int drawable fotor_borders_stamp_default 0x7f02002b
int drawable fotor_borders_stamp_pressed 0x7f02002c
int drawable fotor_borders_styled_default 0x7f02002d
int drawable fotor_borders_styled_pressed 0x7f02002e
int drawable fotor_camera_focus_indicator 0x7f02002f
int drawable fotor_crop_btn_lineh_default 0x7f020030
int drawable fotor_crop_btn_lineh_pressed 0x7f020031
int drawable fotor_crop_btn_linev_default 0x7f020032
int drawable fotor_crop_btn_linev_pressed 0x7f020033
int drawable fotor_crop_btn_point_default 0x7f020034
int drawable fotor_crop_btn_point_pressed 0x7f020035
int drawable fotor_crop_free_default 0x7f020036
int drawable fotor_crop_free_pressed 0x7f020037
int drawable fotor_crop_line_h_button 0x7f020038
int drawable fotor_crop_line_v_button 0x7f020039
int drawable fotor_crop_point_button 0x7f02003a
int drawable fotor_crop_ratio_free_button 0x7f02003b
int drawable fotor_crop_restor_default 0x7f02003c
int drawable fotor_crop_restor_pressed 0x7f02003d
int drawable fotor_crop_restor_unavailable 0x7f02003e
int drawable fotor_crop_restore_button 0x7f02003f
int drawable fotor_curve_btn_round 0x7f020040
int drawable fotor_curve_btn_round_drag 0x7f020041
int drawable fotor_curve_hide_default 0x7f020042
int drawable fotor_curve_hide_pressed 0x7f020043
int drawable fotor_curve_point_button 0x7f020044
int drawable fotor_curve_restore_button 0x7f020045
int drawable fotor_curve_restore_default 0x7f020046
int drawable fotor_curve_restore_pressed 0x7f020047
int drawable fotor_curve_restore_unavailable 0x7f020048
int drawable fotor_curve_show_default 0x7f020049
int drawable fotor_curve_show_pressed 0x7f02004a
int drawable fotor_curve_toggle_button 0x7f02004b
int drawable fotor_edit_advanced_default 0x7f02004c
int drawable fotor_edit_advanced_pressed 0x7f02004d
int drawable fotor_edit_basis_default 0x7f02004e
int drawable fotor_edit_basis_pressed 0x7f02004f
int drawable fotor_edit_borders_default 0x7f020050
int drawable fotor_edit_borders_pressed 0x7f020051
int drawable fotor_edit_crop_default 0x7f020052
int drawable fotor_edit_crop_pressed 0x7f020053
int drawable fotor_edit_draw_default 0x7f020054
int drawable fotor_edit_draw_pressed 0x7f020055
int drawable fotor_edit_effects_default 0x7f020056
int drawable fotor_edit_effects_pressed 0x7f020057
int drawable fotor_edit_enhance_default 0x7f020058
int drawable fotor_edit_enhance_pressed 0x7f020059
int drawable fotor_edit_hdr_default 0x7f02005a
int drawable fotor_edit_hdr_pressed 0x7f02005b
int drawable fotor_edit_one_menu_logo 0x7f02005c
int drawable fotor_edit_redeye_default 0x7f02005d
int drawable fotor_edit_redeye_pressed 0x7f02005e
int drawable fotor_edit_rotate_default 0x7f02005f
int drawable fotor_edit_rotate_pressed 0x7f020060
int drawable fotor_edit_scenes_default 0x7f020061
int drawable fotor_edit_scenes_pressed 0x7f020062
int drawable fotor_edit_stichers_default 0x7f020063
int drawable fotor_edit_stichers_pressed 0x7f020064
int drawable fotor_edit_text_default 0x7f020065
int drawable fotor_edit_text_pressed 0x7f020066
int drawable fotor_edit_tilt_shift_default 0x7f020067
int drawable fotor_edit_tilt_shift_pressed 0x7f020068
int drawable fotor_effect_border_pack_gallery 0x7f020069
int drawable fotor_effect_border_pack_simple 0x7f02006a
int drawable fotor_effect_border_pack_stamp 0x7f02006b
int drawable fotor_effect_border_pack_styled 0x7f02006c
int drawable fotor_effect_favorites 0x7f02006d
int drawable fotor_effect_favorites_default 0x7f02006e
int drawable fotor_effect_favorites_pressed 0x7f02006f
int drawable fotor_effect_fx_pack_analog 0x7f020070
int drawable fotor_effect_fx_pack_art 0x7f020071
int drawable fotor_effect_fx_pack_lomo 0x7f020072
int drawable fotor_effect_fx_pack_oldpicture 0x7f020073
int drawable fotor_effect_fx_pack_retro 0x7f020074
int drawable fotor_effect_fx_pack_vintage 0x7f020075
int drawable fotor_effects_add 0x7f020076
int drawable fotor_effects_add1_default 0x7f020077
int drawable fotor_effects_add2_default 0x7f020078
int drawable fotor_effects_add3_default 0x7f020079
int drawable fotor_effects_add3_pressed 0x7f02007a
int drawable fotor_effects_add_default 0x7f02007b
int drawable fotor_effects_add_pressed 0x7f02007c
int drawable fotor_effects_add_unavailable 0x7f02007d
int drawable fotor_effects_analog_default 0x7f02007e
int drawable fotor_effects_analog_pressed 0x7f02007f
int drawable fotor_effects_art_default 0x7f020080
int drawable fotor_effects_art_pressed 0x7f020081
int drawable fotor_effects_delete_default 0x7f020082
int drawable fotor_effects_delete_pressed 0x7f020083
int drawable fotor_effects_favorites 0x7f020084
int drawable fotor_effects_favorites1_default 0x7f020085
int drawable fotor_effects_favorites2_default 0x7f020086
int drawable fotor_effects_favorites_default 0x7f020087
int drawable fotor_effects_favorites_pressed 0x7f020088
int drawable fotor_effects_lomo_default 0x7f020089
int drawable fotor_effects_lomo_pressed 0x7f02008a
int drawable fotor_effects_minus 0x7f02008b
int drawable fotor_effects_minus_default 0x7f02008c
int drawable fotor_effects_minus_pressed 0x7f02008d
int drawable fotor_effects_minus_unavailable 0x7f02008e
int drawable fotor_effects_neon_default 0x7f02008f
int drawable fotor_effects_neon_pressed 0x7f020090
int drawable fotor_effects_old_picture_default 0x7f020091
int drawable fotor_effects_old_picture_pressed 0x7f020092
int drawable fotor_effects_retro_default 0x7f020093
int drawable fotor_effects_retro_pressed 0x7f020094
int drawable fotor_effects_vintage_default 0x7f020095
int drawable fotor_effects_vintage_pressed 0x7f020096
int drawable fotor_enhance_high 0x7f020097
int drawable fotor_enhance_high_default 0x7f020098
int drawable fotor_enhance_high_pressed 0x7f020099
int drawable fotor_enhance_low 0x7f02009a
int drawable fotor_enhance_low_default 0x7f02009b
int drawable fotor_enhance_low_pressed 0x7f02009c
int drawable fotor_enhance_medium 0x7f02009d
int drawable fotor_enhance_medium_default 0x7f02009e
int drawable fotor_enhance_medium_pressed 0x7f02009f
int drawable fotor_feature_adjust 0x7f0200a0
int drawable fotor_feature_adjust_advance 0x7f0200a1
int drawable fotor_feature_border 0x7f0200a2
int drawable fotor_feature_crop 0x7f0200a3
int drawable fotor_feature_enhance 0x7f0200a4
int drawable fotor_feature_fx_effects 0x7f0200a5
int drawable fotor_feature_rotate 0x7f0200a6
int drawable fotor_feature_scenes 0x7f0200a7
int drawable fotor_feature_stickers 0x7f0200a8
int drawable fotor_feature_text 0x7f0200a9
int drawable fotor_feature_tilt_shift 0x7f0200aa
int drawable fotor_fonts_pack_art 0x7f0200ab
int drawable fotor_fonts_pack_charm 0x7f0200ac
int drawable fotor_fonts_pack_classic 0x7f0200ad
int drawable fotor_fonts_pack_happy 0x7f0200ae
int drawable fotor_fx_effect_effects_listview_item_background 0x7f0200af
int drawable fotor_header_redo_button 0x7f0200b0
int drawable fotor_header_undo_button 0x7f0200b1
int drawable fotor_hlv_overscroll_edge 0x7f0200b2
int drawable fotor_hlv_overscroll_glow 0x7f0200b3
int drawable fotor_main_apply_button 0x7f0200b4
int drawable fotor_main_apply_default 0x7f0200b5
int drawable fotor_main_apply_pressed 0x7f0200b6
int drawable fotor_main_loading_background 0x7f0200b7
int drawable fotor_main_redo_default 0x7f0200b8
int drawable fotor_main_redo_pressed 0x7f0200b9
int drawable fotor_main_redo_unavailable 0x7f0200ba
int drawable fotor_main_undo_default 0x7f0200bb
int drawable fotor_main_undo_pressed 0x7f0200bc
int drawable fotor_main_undo_unavailable 0x7f0200bd
int drawable fotor_public_slider_layer_list 0x7f0200be
int drawable fotor_public_slider_thumb 0x7f0200bf
int drawable fotor_public_slider_thumb_selector 0x7f0200c0
int drawable fotor_public_slider_value_background 0x7f0200c1
int drawable fotor_rotate_fh_button 0x7f0200c2
int drawable fotor_rotate_fh_default 0x7f0200c3
int drawable fotor_rotate_fh_pressed 0x7f0200c4
int drawable fotor_rotate_fv_button 0x7f0200c5
int drawable fotor_rotate_fv_default 0x7f0200c6
int drawable fotor_rotate_fv_pressed 0x7f0200c7
int drawable fotor_rotate_left_button 0x7f0200c8
int drawable fotor_rotate_left_default 0x7f0200c9
int drawable fotor_rotate_left_pressed 0x7f0200ca
int drawable fotor_rotate_right_button 0x7f0200cb
int drawable fotor_rotate_right_default 0x7f0200cc
int drawable fotor_rotate_right_pressed 0x7f0200cd
int drawable fotor_scenes_backlit 0x7f0200ce
int drawable fotor_scenes_backlit_default 0x7f0200cf
int drawable fotor_scenes_backlit_pressed 0x7f0200d0
int drawable fotor_scenes_cloudy 0x7f0200d1
int drawable fotor_scenes_cloudy_default 0x7f0200d2
int drawable fotor_scenes_cloudy_pressed 0x7f0200d3
int drawable fotor_scenes_darken 0x7f0200d4
int drawable fotor_scenes_darken_default 0x7f0200d5
int drawable fotor_scenes_darken_pressed 0x7f0200d6
int drawable fotor_scenes_flash 0x7f0200d7
int drawable fotor_scenes_flash_default 0x7f0200d8
int drawable fotor_scenes_flash_pressed 0x7f0200d9
int drawable fotor_scenes_fluores_default 0x7f0200da
int drawable fotor_scenes_fluores_pressed 0x7f0200db
int drawable fotor_scenes_fluorescent 0x7f0200dc
int drawable fotor_scenes_food 0x7f0200dd
int drawable fotor_scenes_food_default 0x7f0200de
int drawable fotor_scenes_food_pressed 0x7f0200df
int drawable fotor_scenes_landscape 0x7f0200e0
int drawable fotor_scenes_landscape_default 0x7f0200e1
int drawable fotor_scenes_landscape_pressed 0x7f0200e2
int drawable fotor_scenes_night 0x7f0200e3
int drawable fotor_scenes_night_default 0x7f0200e4
int drawable fotor_scenes_night_pressed 0x7f0200e5
int drawable fotor_scenes_original 0x7f0200e6
int drawable fotor_scenes_original_default 0x7f0200e7
int drawable fotor_scenes_original_pressed 0x7f0200e8
int drawable fotor_scenes_portrait 0x7f0200e9
int drawable fotor_scenes_portrait_default 0x7f0200ea
int drawable fotor_scenes_portrait_pressed 0x7f0200eb
int drawable fotor_scenes_sand_snow 0x7f0200ec
int drawable fotor_scenes_seasid_default 0x7f0200ed
int drawable fotor_scenes_seasid_pressed 0x7f0200ee
int drawable fotor_scenes_shade 0x7f0200ef
int drawable fotor_scenes_shade_default 0x7f0200f0
int drawable fotor_scenes_shade_pressed 0x7f0200f1
int drawable fotor_scenes_sunset 0x7f0200f2
int drawable fotor_scenes_sunset_default 0x7f0200f3
int drawable fotor_scenes_sunset_pressed 0x7f0200f4
int drawable fotor_scenes_theatre 0x7f0200f5
int drawable fotor_scenes_theatre_default 0x7f0200f6
int drawable fotor_scenes_theatre_pressed 0x7f0200f7
int drawable fotor_slider_blue 0x7f0200f8
int drawable fotor_slider_blue_layer_list 0x7f0200f9
int drawable fotor_slider_green 0x7f0200fa
int drawable fotor_slider_green_layer_list 0x7f0200fb
int drawable fotor_slider_public_bg 0x7f0200fc
int drawable fotor_slider_public_process 0x7f0200fd
int drawable fotor_slider_red 0x7f0200fe
int drawable fotor_slider_red_layer_list 0x7f0200ff
int drawable fotor_sticker_delete_button 0x7f020100
int drawable fotor_sticker_delete_default 0x7f020101
int drawable fotor_sticker_delete_pressed 0x7f020102
int drawable fotor_sticker_reset_button 0x7f020103
int drawable fotor_sticker_reset_default 0x7f020104
int drawable fotor_sticker_reset_pressed 0x7f020105
int drawable fotor_sticker_zoom_button 0x7f020106
int drawable fotor_sticker_zoom_default 0x7f020107
int drawable fotor_sticker_zoom_pressed 0x7f020108
int drawable fotor_stickers_boom_default 0x7f020109
int drawable fotor_stickers_boom_pressed 0x7f02010a
int drawable fotor_stickers_button_background_state 0x7f02010b
int drawable fotor_stickers_decoration_default 0x7f02010c
int drawable fotor_stickers_decoration_pressed 0x7f02010d
int drawable fotor_stickers_love_default 0x7f02010e
int drawable fotor_stickers_love_pressed 0x7f02010f
int drawable fotor_stickers_pack_boom 0x7f020110
int drawable fotor_stickers_pack_decoration 0x7f020111
int drawable fotor_stickers_pack_love 0x7f020112
int drawable fotor_stickers_pack_party 0x7f020113
int drawable fotor_stickers_pack_text 0x7f020114
int drawable fotor_stickers_party_default 0x7f020115
int drawable fotor_stickers_party_pressed 0x7f020116
int drawable fotor_stickers_text_default 0x7f020117
int drawable fotor_stickers_text_pressed 0x7f020118
int drawable fotor_text_add_button 0x7f020119
int drawable fotor_text_add_default 0x7f02011a
int drawable fotor_text_add_pressed 0x7f02011b
int drawable fotor_text_add_unavailable 0x7f02011c
int drawable fotor_text_align_center_button 0x7f02011d
int drawable fotor_text_align_left_button 0x7f02011e
int drawable fotor_text_align_right_button 0x7f02011f
int drawable fotor_text_bg_default 0x7f020120
int drawable fotor_text_bg_pressed 0x7f020121
int drawable fotor_text_bold_default 0x7f020122
int drawable fotor_text_bold_pressed 0x7f020123
int drawable fotor_text_bold_unavailable 0x7f020124
int drawable fotor_text_center_alignment_default 0x7f020125
int drawable fotor_text_center_alignment_pressed 0x7f020126
int drawable fotor_text_color_button 0x7f020127
int drawable fotor_text_color_color_button 0x7f020128
int drawable fotor_text_color_color_default 0x7f020129
int drawable fotor_text_color_color_pressed 0x7f02012a
int drawable fotor_text_color_default 0x7f02012b
int drawable fotor_text_color_pressed 0x7f02012c
int drawable fotor_text_color_texture_button 0x7f02012d
int drawable fotor_text_color_texture_default 0x7f02012e
int drawable fotor_text_color_texture_pressed 0x7f02012f
int drawable fotor_text_delete_button 0x7f020130
int drawable fotor_text_delete_default 0x7f020131
int drawable fotor_text_delete_pressed 0x7f020132
int drawable fotor_text_done_button 0x7f020133
int drawable fotor_text_done_default 0x7f020134
int drawable fotor_text_done_pressed 0x7f020135
int drawable fotor_text_item_background 0x7f020136
int drawable fotor_text_keyboard_button 0x7f020137
int drawable fotor_text_keyboard_default 0x7f020138
int drawable fotor_text_keyboard_pressed 0x7f020139
int drawable fotor_text_left_alignment_default 0x7f02013a
int drawable fotor_text_left_alignment_pressed 0x7f02013b
int drawable fotor_text_left_rote_default 0x7f02013c
int drawable fotor_text_left_rote_pressed 0x7f02013d
int drawable fotor_text_left_shadow_default 0x7f02013e
int drawable fotor_text_left_shadow_pressed 0x7f02013f
int drawable fotor_text_lock 0x7f020140
int drawable fotor_text_no_shadow_default 0x7f020141
int drawable fotor_text_no_shadow_pressed 0x7f020142
int drawable fotor_text_oblique_default 0x7f020143
int drawable fotor_text_oblique_pressed 0x7f020144
int drawable fotor_text_oblique_unavailable 0x7f020145
int drawable fotor_text_option_button 0x7f020146
int drawable fotor_text_option_default 0x7f020147
int drawable fotor_text_option_pressed 0x7f020148
int drawable fotor_text_right_alignment_default 0x7f020149
int drawable fotor_text_right_alignment_pressed 0x7f02014a
int drawable fotor_text_right_rote_default 0x7f02014b
int drawable fotor_text_right_rote_pressed 0x7f02014c
int drawable fotor_text_right_shadow_default 0x7f02014d
int drawable fotor_text_right_shadow_pressed 0x7f02014e
int drawable fotor_text_rotation_left_button 0x7f02014f
int drawable fotor_text_rotation_right_button 0x7f020150
int drawable fotor_text_shadow_bottom_button 0x7f020151
int drawable fotor_text_shadow_left_button 0x7f020152
int drawable fotor_text_shadow_right_button 0x7f020153
int drawable fotor_text_size_minus_button 0x7f020154
int drawable fotor_text_size_minus_default 0x7f020155
int drawable fotor_text_size_minus_pressed 0x7f020156
int drawable fotor_text_size_plus_button 0x7f020157
int drawable fotor_text_size_plus_default 0x7f020158
int drawable fotor_text_size_plus_pressed 0x7f020159
int drawable fotor_text_style_bold_button 0x7f02015a
int drawable fotor_text_style_italic_button 0x7f02015b
int drawable fotor_text_texture1 0x7f02015c
int drawable fotor_text_texture10 0x7f02015d
int drawable fotor_text_texture11 0x7f02015e
int drawable fotor_text_texture12 0x7f02015f
int drawable fotor_text_texture13 0x7f020160
int drawable fotor_text_texture14 0x7f020161
int drawable fotor_text_texture15 0x7f020162
int drawable fotor_text_texture16 0x7f020163
int drawable fotor_text_texture17 0x7f020164
int drawable fotor_text_texture18 0x7f020165
int drawable fotor_text_texture19 0x7f020166
int drawable fotor_text_texture2 0x7f020167
int drawable fotor_text_texture20 0x7f020168
int drawable fotor_text_texture3 0x7f020169
int drawable fotor_text_texture4 0x7f02016a
int drawable fotor_text_texture5 0x7f02016b
int drawable fotor_text_texture6 0x7f02016c
int drawable fotor_text_texture7 0x7f02016d
int drawable fotor_text_texture8 0x7f02016e
int drawable fotor_text_texture9 0x7f02016f
int drawable fotor_text_typeface_art_default 0x7f020170
int drawable fotor_text_typeface_art_pressed 0x7f020171
int drawable fotor_text_typeface_button 0x7f020172
int drawable fotor_text_typeface_charm_default 0x7f020173
int drawable fotor_text_typeface_charm_pressed 0x7f020174
int drawable fotor_text_typeface_classic_default 0x7f020175
int drawable fotor_text_typeface_classic_pressed 0x7f020176
int drawable fotor_text_typeface_default 0x7f020177
int drawable fotor_text_typeface_happy_default 0x7f020178
int drawable fotor_text_typeface_happy_pressed 0x7f020179
int drawable fotor_text_typeface_pressed 0x7f02017a
int drawable fotor_tilt_shift_blur_button 0x7f02017b
int drawable fotor_tilt_shift_blur_default 0x7f02017c
int drawable fotor_tilt_shift_blur_pressed 0x7f02017d
int drawable fotor_tilt_shift_circle_button 0x7f02017e
int drawable fotor_tilt_shift_circle_default 0x7f02017f
int drawable fotor_tilt_shift_circle_pressed 0x7f020180
int drawable fotor_tilt_shift_ellipse_button 0x7f020181
int drawable fotor_tilt_shift_ellipse_default 0x7f020182
int drawable fotor_tilt_shift_ellipse_pressed 0x7f020183
int drawable fotor_tilt_shift_linear_button 0x7f020184
int drawable fotor_tilt_shift_linear_default 0x7f020185
int drawable fotor_tilt_shift_linear_pressed 0x7f020186
int drawable fotor_tilt_shift_strength_button 0x7f020187
int drawable fotor_tilt_shift_strength_default 0x7f020188
int drawable fotor_tilt_shift_strength_pressed 0x7f020189
int drawable fotor_title_back_btn_icon 0x7f02018a
int drawable fotor_title_back_btn_icon_default 0x7f02018b
int drawable fotor_title_back_btn_icon_pressed 0x7f02018c
int drawable fotor_transparent 0x7f02018d
int drawable ic_error 0x7f02018e
int drawable ic_launcher 0x7f02018f
int drawable icon 0x7f020190
int drawable photo_editor_button_background 0x7f020191
int drawable photo_editor_nophotos 0x7f020192
int id alwaysScroll 0x7f0a0002
int id button2 0x7f0a0009
int id button_gallery 0x7f0a0008
int id disabled 0x7f0a0000
int id fotor_action_settings 0x7f0a0082
int id fotor_adjust_curve_reset_button 0x7f0a0015
int id fotor_adjust_curve_toggle_button 0x7f0a0014
int id fotor_adjust_pan_container 0x7f0a0017
int id fotor_adjust_slider 0x7f0a001b
int id fotor_adjust_slider_b 0x7f0a001a
int id fotor_adjust_slider_g 0x7f0a0019
int id fotor_adjust_slider_r 0x7f0a0018
int id fotor_adjust_tools_container 0x7f0a0016
int id fotor_camera_captureBtn 0x7f0a0010
int id fotor_camera_focus_indicator 0x7f0a0011
int id fotor_camera_footer_layout 0x7f0a000f
int id fotor_camera_header_button 0x7f0a000e
int id fotor_camera_header_layout 0x7f0a000d
int id fotor_camera_main_layout 0x7f0a000a
int id fotor_camera_preview 0x7f0a000c
int id fotor_camera_preview_layout 0x7f0a000b
int id fotor_content_layer 0x7f0a006f
int id fotor_crop_btn_left_bottom 0x7f0a001e
int id fotor_crop_btn_left_top 0x7f0a001d
int id fotor_crop_btn_right_bottom 0x7f0a0020
int id fotor_crop_btn_right_top 0x7f0a001f
int id fotor_crop_buttons_container 0x7f0a001c
int id fotor_crop_line_bottom 0x7f0a0022
int id fotor_crop_line_left 0x7f0a0023
int id fotor_crop_line_right 0x7f0a0024
int id fotor_crop_line_top 0x7f0a0021
int id fotor_crop_operation_container 0x7f0a0025
int id fotor_crop_ratio_button 0x7f0a0029
int id fotor_crop_restore 0x7f0a0028
int id fotor_crop_slider 0x7f0a0027
int id fotor_feature_draw_panel_container 0x7f0a0070
int id fotor_feature_title 0x7f0a007d
int id fotor_fitscreen_imageview 0x7f0a002f
int id fotor_footerContainer 0x7f0a0075
int id fotor_fx_effect_add 0x7f0a003b
int id fotor_fx_effect_add_or_delete 0x7f0a003a
int id fotor_fx_effect_blend_slider 0x7f0a0035
int id fotor_fx_effect_category_container 0x7f0a002a
int id fotor_fx_effect_category_listview 0x7f0a002b
int id fotor_fx_effect_category_loading_container 0x7f0a002c
int id fotor_fx_effect_category_loading_pb 0x7f0a003e
int id fotor_fx_effect_container 0x7f0a002d
int id fotor_fx_effect_effects_listview_item_imageview 0x7f0a0031
int id fotor_fx_effect_effects_listview_item_progressbar 0x7f0a0033
int id fotor_fx_effect_effects_listview_item_selector 0x7f0a0034
int id fotor_fx_effect_effects_listview_item_textview 0x7f0a0032
int id fotor_fx_effect_favorites 0x7f0a003d
int id fotor_fx_effect_imageview 0x7f0a0030
int id fotor_fx_effect_listview 0x7f0a002e
int id fotor_fx_effect_minus 0x7f0a003c
int id fotor_fx_effect_superposed_choose_container 0x7f0a0037
int id fotor_fx_effect_superposed_choose_listview 0x7f0a0038
int id fotor_fx_effect_superposed_container 0x7f0a0036
int id fotor_fx_effect_superposed_listview 0x7f0a0039
int id fotor_headerContainer 0x7f0a006e
int id fotor_imageView 0x7f0a0071
int id fotor_image_top_layer 0x7f0a0073
int id fotor_lock_event_view 0x7f0a0077
int id fotor_main_apply 0x7f0a0080
int id fotor_main_btn_redo 0x7f0a007f
int id fotor_main_btn_undo 0x7f0a007e
int id fotor_main_header_text_container 0x7f0a007b
int id fotor_main_loading_view 0x7f0a0072
int id fotor_main_title 0x7f0a007c
int id fotor_navigation_button 0x7f0a007a
int id fotor_operation_tool_background 0x7f0a0026
int id fotor_operation_tool_layer 0x7f0a0074
int id fotor_operations_container 0x7f0a0079
int id fotor_progress 0x7f0a0003
int id fotor_progress_bar 0x7f0a0081
int id fotor_rotate_pan_container 0x7f0a003f
int id fotor_scenes_pan_container 0x7f0a0040
int id fotor_screen_top_layer 0x7f0a0076
int id fotor_scroll_linear_layout 0x7f0a0013
int id fotor_scroll_view 0x7f0a0012
int id fotor_sdk_version_label 0x7f0a0005
int id fotor_secondaryProgress 0x7f0a0004
int id fotor_stickers_button 0x7f0a0041
int id fotor_stickers_category_container 0x7f0a0042
int id fotor_stickers_category_listview 0x7f0a0043
int id fotor_stickers_category_loading_container 0x7f0a0044
int id fotor_stickers_stickers_container 0x7f0a0045
int id fotor_stickers_stickers_listview 0x7f0a0046
int id fotor_text_add_button 0x7f0a004a
int id fotor_text_align_center_button 0x7f0a005a
int id fotor_text_align_left_button 0x7f0a0059
int id fotor_text_align_right_button 0x7f0a005b
int id fotor_text_color_button 0x7f0a004f
int id fotor_text_color_color_button 0x7f0a0047
int id fotor_text_color_texture_button 0x7f0a0048
int id fotor_text_colors_container 0x7f0a0049
int id fotor_text_done_button 0x7f0a0051
int id fotor_text_keyboard_button 0x7f0a004d
int id fotor_text_navigation_panel 0x7f0a004c
int id fotor_text_opacity_slider 0x7f0a005f
int id fotor_text_operation_container 0x7f0a0052
int id fotor_text_option_button 0x7f0a0050
int id fotor_text_rotation_left_button 0x7f0a0055
int id fotor_text_rotation_right_button 0x7f0a0056
int id fotor_text_shadow_bottom_button 0x7f0a005d
int id fotor_text_shadow_left_button 0x7f0a005c
int id fotor_text_shadow_right_button 0x7f0a005e
int id fotor_text_size_minus_button 0x7f0a0054
int id fotor_text_size_plus_button 0x7f0a0053
int id fotor_text_style_bold_button 0x7f0a0057
int id fotor_text_style_italic_button 0x7f0a0058
int id fotor_text_typeface_button 0x7f0a004e
int id fotor_text_typeface_category_btn 0x7f0a0060
int id fotor_text_typeface_category_list 0x7f0a0065
int id fotor_text_typeface_category_lock 0x7f0a0061
int id fotor_text_typeface_imageview 0x7f0a0064
int id fotor_text_typeface_item 0x7f0a0062
int id fotor_text_typeface_list 0x7f0a0066
int id fotor_text_typeface_textview 0x7f0a0063
int id fotor_texts_category_loading_container 0x7f0a004b
int id fotor_tilt_shift_circle 0x7f0a0067
int id fotor_tilt_shift_ellipse 0x7f0a0069
int id fotor_tilt_shift_gradient 0x7f0a006a
int id fotor_tilt_shift_linear 0x7f0a0068
int id fotor_tilt_shift_slider 0x7f0a006c
int id fotor_tilt_shift_strength 0x7f0a006b
int id fotor_tools_container 0x7f0a0078
int id fotor_zoom_imageview 0x7f0a006d
int id image 0x7f0a0007
int id image_container 0x7f0a0006
int id normal 0x7f0a0001
int integer fotor_anim_medium_duration 0x7f070001
int integer fotor_anim_short_duration 0x7f070000
int integer fotor_default_slider_adjustDistance 0x7f070002
int layout activity_main 0x7f030000
int layout fotor_camera_main 0x7f030001
int layout fotor_default_bottom_layout 0x7f030002
int layout fotor_feature_adjust_operation_curve_controller 0x7f030003
int layout fotor_feature_adjust_operation_panel 0x7f030004
int layout fotor_feature_adjust_operation_rgb_tools 0x7f030005
int layout fotor_feature_adjust_operation_tools 0x7f030006
int layout fotor_feature_border_effect_operation_panel 0x7f030007
int layout fotor_feature_crop_maskview 0x7f030008
int layout fotor_feature_crop_operation_panel 0x7f030009
int layout fotor_feature_crop_operation_tools 0x7f03000a
int layout fotor_feature_crop_ratio_item 0x7f03000b
int layout fotor_feature_effect_operation_panel 0x7f03000c
int layout fotor_feature_enhance_operation_panel 0x7f03000d
int layout fotor_feature_fitscreen_draw_panel 0x7f03000e
int layout fotor_feature_fx_effect_draw_panel 0x7f03000f
int layout fotor_feature_fx_effect_effects_listview_item 0x7f030010
int layout fotor_feature_fx_effect_operation_blend_tools 0x7f030011
int layout fotor_feature_fx_effect_operation_panel 0x7f030012
int layout fotor_feature_fx_effect_operation_superposed_tools 0x7f030013
int layout fotor_feature_fx_effect_operation_tools 0x7f030014
int layout fotor_feature_operation_loading_component 0x7f030015
int layout fotor_feature_rotate_operation_panel 0x7f030016
int layout fotor_feature_scenes_operation_panel 0x7f030017
int layout fotor_feature_stickers_item 0x7f030018
int layout fotor_feature_stickers_operation_panel 0x7f030019
int layout fotor_feature_text_color_panel 0x7f03001a
int layout fotor_feature_text_operation_panel 0x7f03001b
int layout fotor_feature_text_operation_tools 0x7f03001c
int layout fotor_feature_text_option_panel 0x7f03001d
int layout fotor_feature_text_typeface_category_item 0x7f03001e
int layout fotor_feature_text_typeface_item 0x7f03001f
int layout fotor_feature_text_typeface_panel 0x7f030020
int layout fotor_feature_tilt_shift_operation_panel 0x7f030021
int layout fotor_feature_tilt_shift_operation_tools 0x7f030022
int layout fotor_feature_zoom_draw_panel 0x7f030023
int layout fotor_loading_progress_medium 0x7f030024
int layout fotor_main 0x7f030025
int layout fotor_main_footer 0x7f030026
int layout fotor_main_footer_item 0x7f030027
int layout fotor_main_header 0x7f030028
int layout fotor_main_loadding 0x7f030029
int layout fotor_progress_medium 0x7f03002a
int menu fotor_camera_menu 0x7f0c0000
int raw basefilter 0x7f050000
int raw optimization 0x7f050001
int raw temporary 0x7f050002
int string action_settings 0x7f090070
int string app_name 0x7f09006f
int string fotor_adjust_brightness 0x7f09001f
int string fotor_adjust_contrast 0x7f090020
int string fotor_adjust_curve 0x7f090029
int string fotor_adjust_curve_hide 0x7f09002b
int string fotor_adjust_curve_reset 0x7f09002c
int string fotor_adjust_curve_show 0x7f09002a
int string fotor_adjust_highlight 0x7f090025
int string fotor_adjust_rgb 0x7f090028
int string fotor_adjust_saturation 0x7f090021
int string fotor_adjust_shadow 0x7f090024
int string fotor_adjust_sharpen 0x7f090022
int string fotor_adjust_temp 0x7f090026
int string fotor_adjust_tint 0x7f090027
int string fotor_adjust_vignette 0x7f090023
int string fotor_back 0x7f09005a
int string fotor_crop_10_8 0x7f090049
int string fotor_crop_16_9 0x7f09004b
int string fotor_crop_1_1 0x7f090042
int string fotor_crop_3_4 0x7f090044
int string fotor_crop_4_3 0x7f090043
int string fotor_crop_4_6 0x7f090046
int string fotor_crop_5_7 0x7f090048
int string fotor_crop_6_4 0x7f090045
int string fotor_crop_7_5 0x7f090047
int string fotor_crop_8_10 0x7f09004a
int string fotor_crop_9_16 0x7f09004c
int string fotor_crop_free 0x7f090040
int string fotor_crop_original 0x7f090041
int string fotor_dialog_alert_message_plugin_update 0x7f090069
int string fotor_dialog_alert_message_save 0x7f09006b
int string fotor_dialog_alert_negative_save 0x7f09006c
int string fotor_dialog_alert_positive_save 0x7f09006d
int string fotor_dialog_alert_title_plugin_update 0x7f09006e
int string fotor_dialog_alert_title_save 0x7f09006a
int string fotor_effect_border_pack_gallery 0x7f090007
int string fotor_effect_border_pack_simple 0x7f090005
int string fotor_effect_border_pack_styled 0x7f090006
int string fotor_effect_fx_pack_analog 0x7f090000
int string fotor_effect_fx_pack_lomo 0x7f090004
int string fotor_effect_fx_pack_oldpicture 0x7f090001
int string fotor_effect_fx_pack_retro 0x7f090002
int string fotor_effect_fx_pack_vintage 0x7f090003
int string fotor_effect_store 0x7f090068
int string fotor_enhance_high 0x7f090059
int string fotor_enhance_low 0x7f090057
int string fotor_enhance_medium 0x7f090058
int string fotor_favorites 0x7f09005d
int string fotor_feature_adjust 0x7f090012
int string fotor_feature_adjust_advance 0x7f090013
int string fotor_feature_border 0x7f090015
int string fotor_feature_crop 0x7f090016
int string fotor_feature_enhance 0x7f090010
int string fotor_feature_fx_effects 0x7f090014
int string fotor_feature_rotate 0x7f090017
int string fotor_feature_scenes 0x7f090011
int string fotor_feature_stickers 0x7f090018
int string fotor_feature_text 0x7f09001a
int string fotor_feature_tilt_shift 0x7f090019
int string fotor_font_assets_path 0x7f090056
int string fotor_font_roboto_bold 0x7f090054
int string fotor_font_roboto_bold_name 0x7f090055
int string fotor_font_roboto_light 0x7f090052
int string fotor_font_roboto_light_name 0x7f090053
int string fotor_fonts_pack_charm 0x7f090009
int string fotor_fonts_pack_classic 0x7f090008
int string fotor_loading 0x7f09005b
int string fotor_main_apply 0x7f09001c
int string fotor_main_cancel 0x7f09001b
int string fotor_main_redo 0x7f09001e
int string fotor_main_undo 0x7f09001d
int string fotor_original 0x7f09005c
int string fotor_rotate_fliph 0x7f090030
int string fotor_rotate_flipv 0x7f09002f
int string fotor_rotate_left 0x7f09002d
int string fotor_rotate_right 0x7f09002e
int string fotor_scenes_auto 0x7f090032
int string fotor_scenes_backlit 0x7f090033
int string fotor_scenes_cloudy 0x7f090035
int string fotor_scenes_darken 0x7f090034
int string fotor_scenes_flash 0x7f090039
int string fotor_scenes_fluorescent 0x7f09003a
int string fotor_scenes_food 0x7f09003f
int string fotor_scenes_landscape 0x7f09003d
int string fotor_scenes_night 0x7f090038
int string fotor_scenes_original 0x7f090031
int string fotor_scenes_portrait 0x7f09003b
int string fotor_scenes_sand_snow 0x7f09003c
int string fotor_scenes_shade 0x7f090036
int string fotor_scenes_sunset 0x7f090037
int string fotor_scenes_theatre 0x7f09003e
int string fotor_stickers_abstract 0x7f090066
int string fotor_stickers_boom 0x7f090067
int string fotor_stickers_pack_boom 0x7f09000b
int string fotor_stickers_pack_decoration 0x7f09000c
int string fotor_stickers_pack_love 0x7f09000d
int string fotor_stickers_pack_party 0x7f09000e
int string fotor_stickers_pack_text 0x7f09000a
int string fotor_text_add_btn 0x7f09005e
int string fotor_text_alignment 0x7f090063
int string fotor_text_default_text 0x7f09005f
int string fotor_text_opacity 0x7f090065
int string fotor_text_rotation 0x7f090061
int string fotor_text_shadow 0x7f090064
int string fotor_text_style 0x7f090062
int string fotor_text_textsize 0x7f090060
int string fotor_tilt_shift_circle 0x7f09004f
int string fotor_tilt_shift_ellipse 0x7f090051
int string fotor_tilt_shift_gradient 0x7f09004d
int string fotor_tilt_shift_linear 0x7f090050
int string fotor_tilt_shift_strength 0x7f09004e
int string fotor_title_main 0x7f09000f
int string hello_world 0x7f090071
int string photo_editor 0x7f090072
int string photo_editor_process 0x7f090074
int string photo_editor_select_image 0x7f090073
int style AppBaseTheme 0x7f0b000b
int style AppTheme 0x7f0b000c
int style FotorBaseTheme 0x7f0b0009
int style FotorCustomSliderDefault 0x7f0b0001
int style FotorTheme 0x7f0b000a
int style FotorWidget 0x7f0b0000
int style FotorWidget_EffectSelectorView 0x7f0b0007
int style FotorWidget_NavigationButton 0x7f0b0002
int style FotorWidget_TextButton 0x7f0b0006
int style FotorWidget_TextView 0x7f0b0005
int style FotorWidget_TitleBackButton 0x7f0b0008
int style fotorHeaderButtonDefault 0x7f0b0004
int style fotorOperToolPanelDefault 0x7f0b0003
int[] styleable AbsHListView { 0x010100fb, 0x010100fc, 0x010100fe, 0x01010101, 0x0101012b, 0x01010231, 0x7f010036, 0x7f010037 }
int styleable AbsHListView_android_cacheColorHint 3
int styleable AbsHListView_android_choiceMode 4
int styleable AbsHListView_android_drawSelectorOnTop 1
int styleable AbsHListView_android_listSelector 0
int styleable AbsHListView_android_scrollingCache 2
int styleable AbsHListView_android_smoothScrollbar 5
int styleable AbsHListView_stackFromRight 6
int styleable AbsHListView_transcriptMode 7
int[] styleable FotorCustomSlider { 0x7f010015, 0x7f010016, 0x7f010017, 0x7f010018, 0x7f010019, 0x7f01001a, 0x7f01001b, 0x7f01001c }
int styleable FotorCustomSlider_fotorCustomSlider_adjustYDistance 0
int styleable FotorCustomSlider_fotorCustomSlider_isShowValue 1
int styleable FotorCustomSlider_fotorCustomSlider_max 6
int styleable FotorCustomSlider_fotorCustomSlider_progress 7
int styleable FotorCustomSlider_fotorCustomSlider_progressDrawable 5
int styleable FotorCustomSlider_fotorCustomSlider_thumb 3
int styleable FotorCustomSlider_fotorCustomSlider_typeface 4
int styleable FotorCustomSlider_fotorCustomSlider_valueBackground 2
int[] styleable FotorEffectSelectorView { 0x7f010026 }
int styleable FotorEffectSelectorView_fotorEffectSelectorView_Color 0
int[] styleable FotorHeaderButton { 0x7f010025 }
int styleable FotorHeaderButton_fotorHeaderButton_typeface 0
int[] styleable FotorNavigationButton { 0x7f01001d, 0x7f01001e, 0x7f01001f, 0x7f010020, 0x7f010021, 0x7f010022, 0x7f010023 }
int styleable FotorNavigationButton_fotorNavigationBtn_color_default 3
int styleable FotorNavigationButton_fotorNavigationBtn_color_disabled 5
int styleable FotorNavigationButton_fotorNavigationBtn_color_pressed 4
int styleable FotorNavigationButton_fotorNavigationBtn_isShowPressedBackground 0
int styleable FotorNavigationButton_fotorNavigationBtn_pressed_background 6
int styleable FotorNavigationButton_fotorNavigationBtn_text 1
int styleable FotorNavigationButton_fotorNavigationBtn_typeface 2
int[] styleable FotorOperToolPanel { 0x7f010024 }
int styleable FotorOperToolPanel_fotorOperToolPanel_bottomLine_Color 0
int[] styleable FotorTextButton { 0x7f010014 }
int styleable FotorTextButton_fotorTextButton_typeface 0
int[] styleable FotorTextView { 0x7f010013 }
int styleable FotorTextView_fotorTextView_typeface 0
int[] styleable FotorTitleBackButton { 0x7f010027, 0x7f010028, 0x7f010029, 0x7f01002a, 0x7f01002b }
int styleable FotorTitleBackButton_fotorTitleBackButton_IconDrawable 3
int styleable FotorTitleBackButton_fotorTitleBackButton_Text 1
int styleable FotorTitleBackButton_fotorTitleBackButton_TextColor 2
int styleable FotorTitleBackButton_fotorTitleBackButton_Textsize 0
int styleable FotorTitleBackButton_fotorTitleBackButton_Typeface 4
int[] styleable HListView { 0x010100b2, 0x01010129, 0x7f010030, 0x7f010031, 0x7f010032, 0x7f010033, 0x7f010034, 0x7f010035 }
int styleable HListView_android_divider 1
int styleable HListView_android_entries 0
int styleable HListView_dividerWidth 2
int styleable HListView_footerDividersEnabled 4
int styleable HListView_headerDividersEnabled 3
int styleable HListView_measureWithChild 7
int styleable HListView_overScrollFooter 6
int styleable HListView_overScrollHeader 5
int[] styleable Theme { 0x7f010000, 0x7f010001, 0x7f010002, 0x7f010003, 0x7f010004, 0x7f010005, 0x7f010006, 0x7f010007, 0x7f010008, 0x7f010009, 0x7f01000a, 0x7f01000b, 0x7f01000c, 0x7f01000d, 0x7f01000e, 0x7f01000f, 0x7f010010, 0x7f010011, 0x7f010012 }
int styleable Theme_fotorDefaultEffectSelectorViewStyle 17
int styleable Theme_fotorDefaultHeaderButtonStyle 16
int styleable Theme_fotorDefaultImageViewBackground 14
int styleable Theme_fotorDefaultNavigateBtnStyle 13
int styleable Theme_fotorDefaultOperToolPanelStyle 15
int styleable Theme_fotorDefaultSliderStyle 12
int styleable Theme_fotorDefaultTextButtonStyle 11
int styleable Theme_fotorDefaultTextViewStyle 10
int styleable Theme_fotorDefaultTitleBackButtonStyle 18
int styleable Theme_fotorFontBold 0
int styleable Theme_fotorFontLight 1
int styleable Theme_fotorMainBottomHeight 2
int styleable Theme_fotorMainFooterBackground 6
int styleable Theme_fotorMainHeaderBackground 7
int styleable Theme_fotorMainHeaderHeight 4
int styleable Theme_fotorMainToolPanelBackground 8
int styleable Theme_fotorMainToolPanelHeight 3
int styleable Theme_fotorNavigationBtnWidth 5
int styleable Theme_fotorTitleTextSize 9
================================================
FILE: FotorSDKDemo/bin/resources.ap_
================================================
[File too large to display: 10.5 MB]
================================================
FILE: FotorSDKDemo/gen/com/everimaging/fotorsdk/R.java
================================================
/* AUTO-GENERATED FILE. DO NOT MODIFY.
*
* This class was automatically generated by the
* aapt tool from the resource data it found. It
* should not be modified by hand.
*/
package com.everimaging.fotorsdk;
public final class R {
public static final class anim {
public static final int fotor_camera_focus_anim = 0x7f040000;
public static final int fotor_fit_view_fadein_animation = 0x7f040001;
public static final int fotor_fit_view_fadeout_animation = 0x7f040002;
public static final int fotor_footer_bar_in_animation = 0x7f040003;
public static final int fotor_footer_bar_out_animation = 0x7f040004;
}
public static final class attr {
public static final int dividerWidth = 0x7f010030;
public static final int entries = 0x7f01002f;
public static final int footerDividersEnabled = 0x7f010032;
public static final int fotorCustomSlider_adjustYDistance = 0x7f010015;
public static final int fotorCustomSlider_isShowValue = 0x7f010016;
public static final int fotorCustomSlider_max = 0x7f01001b;
public static final int fotorCustomSlider_progress = 0x7f01001c;
public static final int fotorCustomSlider_progressDrawable = 0x7f01001a;
public static final int fotorCustomSlider_thumb = 0x7f010018;
public static final int fotorCustomSlider_typeface = 0x7f010019;
public static final int fotorCustomSlider_valueBackground = 0x7f010017;
public static final int fotorDefaultEffectSelectorViewStyle = 0x7f010011;
public static final int fotorDefaultHeaderButtonStyle = 0x7f010010;
public static final int fotorDefaultImageViewBackground = 0x7f01000e;
public static final int fotorDefaultNavigateBtnStyle = 0x7f01000d;
public static final int fotorDefaultOperToolPanelStyle = 0x7f01000f;
public static final int fotorDefaultSliderStyle = 0x7f01000c;
public static final int fotorDefaultTextButtonStyle = 0x7f01000b;
public static final int fotorDefaultTextViewStyle = 0x7f01000a;
public static final int fotorDefaultTitleBackButtonStyle = 0x7f010012;
public static final int fotorEffectSelectorView_Color = 0x7f010026;
public static final int fotorFontBold = 0x7f010000;
public static final int fotorFontLight = 0x7f010001;
public static final int fotorHeaderButton_typeface = 0x7f010025;
public static final int fotorMainBottomHeight = 0x7f010002;
public static final int fotorMainFooterBackground = 0x7f010006;
public static final int fotorMainHeaderBackground = 0x7f010007;
public static final int fotorMainHeaderHeight = 0x7f010004;
public static final int fotorMainToolPanelBackground = 0x7f010008;
public static final int fotorMainToolPanelHeight = 0x7f010003;
public static final int fotorNavigationBtnWidth = 0x7f010005;
public static final int fotorNavigationBtn_color_default = 0x7f010020;
public static final int fotorNavigationBtn_color_disabled = 0x7f010022;
public static final int fotorNavigationBtn_color_pressed = 0x7f010021;
public static final int fotorNavigationBtn_isShowPressedBackground = 0x7f01001d;
public static final int fotorNavigationBtn_pressed_background = 0x7f010023;
public static final int fotorNavigationBtn_text = 0x7f01001e;
public static final int fotorNavigationBtn_typeface = 0x7f01001f;
public static final int fotorOperToolPanel_bottomLine_Color = 0x7f010024;
public static final int fotorTextButton_typeface = 0x7f010014;
public static final int fotorTextView_typeface = 0x7f010013;
public static final int fotorTitleBackButton_IconDrawable = 0x7f01002a;
public static final int fotorTitleBackButton_Text = 0x7f010028;
public static final int fotorTitleBackButton_TextColor = 0x7f010029;
public static final int fotorTitleBackButton_Textsize = 0x7f010027;
public static final int fotorTitleBackButton_Typeface = 0x7f01002b;
public static final int fotorTitleTextSize = 0x7f010009;
public static final int headerDividersEnabled = 0x7f010031;
public static final int measureWithChild = 0x7f010035;
public static final int overScrollFooter = 0x7f010034;
public static final int overScrollHeader = 0x7f010033;
public static final int sephiroth_absHListViewStyle = 0x7f01002d;
public static final int sephiroth_listPreferredItemWidth = 0x7f01002e;
public static final int sephiroth_listViewStyle = 0x7f01002c;
public static final int stackFromRight = 0x7f010036;
public static final int transcriptMode = 0x7f010037;
}
public static final class color {
public static final int fotor_feature_adjust_curve_background = 0x7f06000d;
public static final int fotor_feature_loading_textColor = 0x7f06000e;
public static final int fotor_feature_stickers_button_pressed = 0x7f060013;
public static final int fotor_feature_text_color_button1 = 0x7f06001b;
public static final int fotor_feature_text_color_button10 = 0x7f060024;
public static final int fotor_feature_text_color_button11 = 0x7f060025;
public static final int fotor_feature_text_color_button12 = 0x7f060026;
public static final int fotor_feature_text_color_button13 = 0x7f060027;
public static final int fotor_feature_text_color_button14 = 0x7f060028;
public static final int fotor_feature_text_color_button15 = 0x7f060029;
public static final int fotor_feature_text_color_button16 = 0x7f06002a;
public static final int fotor_feature_text_color_button17 = 0x7f06002b;
public static final int fotor_feature_text_color_button18 = 0x7f06002c;
public static final int fotor_feature_text_color_button19 = 0x7f06002d;
public static final int fotor_feature_text_color_button2 = 0x7f06001c;
public static final int fotor_feature_text_color_button20 = 0x7f06002e;
public static final int fotor_feature_text_color_button21 = 0x7f06002f;
public static final int fotor_feature_text_color_button22 = 0x7f060030;
public static final int fotor_feature_text_color_button23 = 0x7f060031;
public static final int fotor_feature_text_color_button24 = 0x7f060032;
public static final int fotor_feature_text_color_button25 = 0x7f060033;
public static final int fotor_feature_text_color_button26 = 0x7f060034;
public static final int fotor_feature_text_color_button27 = 0x7f060035;
public static final int fotor_feature_text_color_button28 = 0x7f060036;
public static final int fotor_feature_text_color_button3 = 0x7f06001d;
public static final int fotor_feature_text_color_button4 = 0x7f06001e;
public static final int fotor_feature_text_color_button5 = 0x7f06001f;
public static final int fotor_feature_text_color_button6 = 0x7f060020;
public static final int fotor_feature_text_color_button7 = 0x7f060021;
public static final int fotor_feature_text_color_button8 = 0x7f060022;
public static final int fotor_feature_text_color_button9 = 0x7f060023;
public static final int fotor_feature_text_option_title_color = 0x7f060019;
public static final int fotor_feature_text_panel_background = 0x7f060014;
public static final int fotor_feature_text_panel_line_color = 0x7f060015;
public static final int fotor_feature_text_shadow_color = 0x7f06001a;
public static final int fotor_feature_text_texture_border_selected = 0x7f060018;
public static final int fotor_feature_text_typeface_default = 0x7f060017;
public static final int fotor_feature_text_typeface_pressed = 0x7f060016;
public static final int fotor_fx_effect_effects_listview_item_background_default = 0x7f06000f;
public static final int fotor_fx_effect_effects_listview_item_background_pressed = 0x7f060010;
public static final int fotor_fx_effect_effects_listview_item_textColor = 0x7f060011;
public static final int fotor_fx_effect_effects_listview_item_text_bakground = 0x7f060012;
public static final int fotor_half_transparent = 0x7f060001;
public static final int fotor_header_button_text_state = 0x7f06003f;
public static final int fotor_main_footer_background = 0x7f060002;
public static final int fotor_main_header_background = 0x7f060008;
public static final int fotor_main_header_button_text_default = 0x7f06000b;
public static final int fotor_main_header_button_text_pressed = 0x7f06000c;
public static final int fotor_main_imageview_background = 0x7f060007;
public static final int fotor_main_loading_background = 0x7f060037;
public static final int fotor_main_toolpanel_background = 0x7f060009;
public static final int fotor_main_toolpanel_bottom_line = 0x7f06000a;
public static final int fotor_navigation_btn_color_default = 0x7f060005;
public static final int fotor_navigation_btn_color_disabled = 0x7f060006;
public static final int fotor_navigation_btn_color_pressed = 0x7f060004;
public static final int fotor_navigation_btn_pressed_background = 0x7f060003;
public static final int fotor_text_button_text_state = 0x7f060040;
public static final int fotor_title_back_button_text_state = 0x7f060041;
public static final int fotor_transparent = 0x7f060000;
}
public static final class dimen {
public static final int fotor_border_effect_listview_divider_width = 0x7f080031;
public static final int fotor_crop_reset_margin_h = 0x7f08000f;
public static final int fotor_curve_btn_textsize = 0x7f08000d;
public static final int fotor_curve_control_panel_btn_spacing = 0x7f08000c;
public static final int fotor_curve_view_max_size = 0x7f080030;
public static final int fotor_feature_loading_textSize = 0x7f08002b;
public static final int fotor_feature_stickers_button_spacing = 0x7f08002a;
public static final int fotor_feature_stickers_button_width = 0x7f080029;
public static final int fotor_fx_effect_buttons_margin_right = 0x7f080010;
public static final int fotor_fx_effect_effects_listview_item_image_width = 0x7f080011;
public static final int fotor_fx_effect_effects_listview_item_margin = 0x7f080013;
public static final int fotor_fx_effect_effects_listview_item_textHeight = 0x7f080012;
public static final int fotor_fx_effect_effects_listview_item_textSize = 0x7f080014;
public static final int fotor_main_bottom_height = 0x7f080000;
public static final int fotor_main_header_btn_textsize = 0x7f080005;
public static final int fotor_main_header_height = 0x7f080007;
public static final int fotor_main_header_margin = 0x7f080008;
public static final int fotor_main_header_title_textsize = 0x7f080006;
public static final int fotor_main_imageview_margin = 0x7f08002d;
public static final int fotor_main_loadding_background_radius = 0x7f08002e;
public static final int fotor_main_loadding_margin = 0x7f08002f;
public static final int fotor_main_loading_textSize = 0x7f08002c;
public static final int fotor_main_minimum_bottom_height = 0x7f080004;
public static final int fotor_main_navigation_btn_textsize = 0x7f080002;
public static final int fotor_main_navigation_btn_width = 0x7f080001;
public static final int fotor_main_tool_panel_height = 0x7f080003;
public static final int fotor_main_tool_panel_line_size = 0x7f080009;
public static final int fotor_slider_panel_margin_h = 0x7f08000b;
public static final int fotor_slider_value_margin = 0x7f08000a;
public static final int fotor_text_color_button_size = 0x7f080021;
public static final int fotor_text_color_button_stroke = 0x7f080020;
public static final int fotor_text_item_padding = 0x7f080019;
public static final int fotor_text_keyboard_canvas_spacing = 0x7f08001c;
public static final int fotor_text_option_btn_spacing = 0x7f080025;
public static final int fotor_text_option_opacity_padding_h = 0x7f080028;
public static final int fotor_text_option_panel_margin = 0x7f080023;
public static final int fotor_text_option_panel_spacing = 0x7f080024;
public static final int fotor_text_option_right_panel_margin_top = 0x7f080027;
public static final int fotor_text_option_title_textsize = 0x7f080026;
public static final int fotor_text_shadow_offset_x = 0x7f08001a;
public static final int fotor_text_shadow_offset_y = 0x7f08001b;
public static final int fotor_text_textsize_default = 0x7f080015;
public static final int fotor_text_textsize_maximum = 0x7f080016;
public static final int fotor_text_textsize_minimum = 0x7f080017;
public static final int fotor_text_textsize_step = 0x7f080018;
public static final int fotor_text_texture_button_size = 0x7f080022;
public static final int fotor_text_typeface_category_item_width = 0x7f08001d;
public static final int fotor_text_typeface_item_height = 0x7f08001e;
public static final int fotor_text_typeface_item_textsize = 0x7f08001f;
public static final int fotor_tilt_shift_tool_panel_margin_left = 0x7f08000e;
}
public static final class drawable {
public static final int fotor_adjust_brightness = 0x7f020000;
public static final int fotor_adjust_contrast = 0x7f020001;
public static final int fotor_adjust_curve = 0x7f020002;
public static final int fotor_adjust_highlight = 0x7f020003;
public static final int fotor_adjust_rgb = 0x7f020004;
public static final int fotor_adjust_saturation = 0x7f020005;
public static final int fotor_adjust_shadow = 0x7f020006;
public static final int fotor_adjust_sharpen = 0x7f020007;
public static final int fotor_adjust_temp = 0x7f020008;
public static final int fotor_adjust_tint = 0x7f020009;
public static final int fotor_adjust_vignette = 0x7f02000a;
public static final int fotor_advanced_curve_default = 0x7f02000b;
public static final int fotor_advanced_curve_pressed = 0x7f02000c;
public static final int fotor_advanced_highlights_default = 0x7f02000d;
public static final int fotor_advanced_highlights_pressed = 0x7f02000e;
public static final int fotor_advanced_rgb_default = 0x7f02000f;
public static final int fotor_advanced_rgb_pressed = 0x7f020010;
public static final int fotor_advanced_shadows_default = 0x7f020011;
public static final int fotor_advanced_shadows_pressed = 0x7f020012;
public static final int fotor_advanced_temp_default = 0x7f020013;
public static final int fotor_advanced_temp_pressed = 0x7f020014;
public static final int fotor_advanced_tint_default = 0x7f020015;
public static final int fotor_advanced_tint_pressed = 0x7f020016;
public static final int fotor_advanced_vignette_default = 0x7f020017;
public static final int fotor_advanced_vignette_pressed = 0x7f020018;
public static final int fotor_back = 0x7f020019;
public static final int fotor_back_default = 0x7f02001a;
public static final int fotor_back_pressed = 0x7f02001b;
public static final int fotor_basis_brightness_default = 0x7f02001c;
public static final int fotor_basis_brightness_pressed = 0x7f02001d;
public static final int fotor_basis_contrast_default = 0x7f02001e;
public static final int fotor_basis_contrast_pressed = 0x7f02001f;
public static final int fotor_basis_saturation_default = 0x7f020020;
public static final int fotor_basis_saturation_pressed = 0x7f020021;
public static final int fotor_basis_sharpen_default = 0x7f020022;
public static final int fotor_basis_sharpen_pressed = 0x7f020023;
public static final int fotor_borders_gallery_default = 0x7f020024;
public static final int fotor_borders_gallery_pressed = 0x7f020025;
public static final int fotor_borders_more = 0x7f020026;
public static final int fotor_borders_more_default = 0x7f020027;
public static final int fotor_borders_more_pressed = 0x7f020028;
public static final int fotor_borders_simple_default = 0x7f020029;
public static final int fotor_borders_simple_pressed = 0x7f02002a;
public static final int fotor_borders_stamp_default = 0x7f02002b;
public static final int fotor_borders_stamp_pressed = 0x7f02002c;
public static final int fotor_borders_styled_default = 0x7f02002d;
public static final int fotor_borders_styled_pressed = 0x7f02002e;
public static final int fotor_camera_focus_indicator = 0x7f02002f;
public static final int fotor_crop_btn_lineh_default = 0x7f020030;
public static final int fotor_crop_btn_lineh_pressed = 0x7f020031;
public static final int fotor_crop_btn_linev_default = 0x7f020032;
public static final int fotor_crop_btn_linev_pressed = 0x7f020033;
public static final int fotor_crop_btn_point_default = 0x7f020034;
public static final int fotor_crop_btn_point_pressed = 0x7f020035;
public static final int fotor_crop_free_default = 0x7f020036;
public static final int fotor_crop_free_pressed = 0x7f020037;
public static final int fotor_crop_line_h_button = 0x7f020038;
public static final int fotor_crop_line_v_button = 0x7f020039;
public static final int fotor_crop_point_button = 0x7f02003a;
public static final int fotor_crop_ratio_free_button = 0x7f02003b;
public static final int fotor_crop_restor_default = 0x7f02003c;
public static final int fotor_crop_restor_pressed = 0x7f02003d;
public static final int fotor_crop_restor_unavailable = 0x7f02003e;
public static final int fotor_crop_restore_button = 0x7f02003f;
public static final int fotor_curve_btn_round = 0x7f020040;
public static final int fotor_curve_btn_round_drag = 0x7f020041;
public static final int fotor_curve_hide_default = 0x7f020042;
public static final int fotor_curve_hide_pressed = 0x7f020043;
public static final int fotor_curve_point_button = 0x7f020044;
public static final int fotor_curve_restore_button = 0x7f020045;
public static final int fotor_curve_restore_default = 0x7f020046;
public static final int fotor_curve_restore_pressed = 0x7f020047;
public static final int fotor_curve_restore_unavailable = 0x7f020048;
public static final int fotor_curve_show_default = 0x7f020049;
public static final int fotor_curve_show_pressed = 0x7f02004a;
public static final int fotor_curve_toggle_button = 0x7f02004b;
public static final int fotor_edit_advanced_default = 0x7f02004c;
public static final int fotor_edit_advanced_pressed = 0x7f02004d;
public static final int fotor_edit_basis_default = 0x7f02004e;
public static final int fotor_edit_basis_pressed = 0x7f02004f;
public static final int fotor_edit_borders_default = 0x7f020050;
public static final int fotor_edit_borders_pressed = 0x7f020051;
public static final int fotor_edit_crop_default = 0x7f020052;
public static final int fotor_edit_crop_pressed = 0x7f020053;
public static final int fotor_edit_draw_default = 0x7f020054;
public static final int fotor_edit_draw_pressed = 0x7f020055;
public static final int fotor_edit_effects_default = 0x7f020056;
public static final int fotor_edit_effects_pressed = 0x7f020057;
public static final int fotor_edit_enhance_default = 0x7f020058;
public static final int fotor_edit_enhance_pressed = 0x7f020059;
public static final int fotor_edit_hdr_default = 0x7f02005a;
public static final int fotor_edit_hdr_pressed = 0x7f02005b;
public static final int fotor_edit_one_menu_logo = 0x7f02005c;
public static final int fotor_edit_redeye_default = 0x7f02005d;
public static final int fotor_edit_redeye_pressed = 0x7f02005e;
public static final int fotor_edit_rotate_default = 0x7f02005f;
public static final int fotor_edit_rotate_pressed = 0x7f020060;
public static final int fotor_edit_scenes_default = 0x7f020061;
public static final int fotor_edit_scenes_pressed = 0x7f020062;
public static final int fotor_edit_stichers_default = 0x7f020063;
public static final int fotor_edit_stichers_pressed = 0x7f020064;
public static final int fotor_edit_text_default = 0x7f020065;
public static final int fotor_edit_text_pressed = 0x7f020066;
public static final int fotor_edit_tilt_shift_default = 0x7f020067;
public static final int fotor_edit_tilt_shift_pressed = 0x7f020068;
public static final int fotor_effect_border_pack_gallery = 0x7f020069;
public static final int fotor_effect_border_pack_simple = 0x7f02006a;
public static final int fotor_effect_border_pack_stamp = 0x7f02006b;
public static final int fotor_effect_border_pack_styled = 0x7f02006c;
public static final int fotor_effect_favorites = 0x7f02006d;
public static final int fotor_effect_favorites_default = 0x7f02006e;
public static final int fotor_effect_favorites_pressed = 0x7f02006f;
public static final int fotor_effect_fx_pack_analog = 0x7f020070;
public static final int fotor_effect_fx_pack_art = 0x7f020071;
public static final int fotor_effect_fx_pack_lomo = 0x7f020072;
public static final int fotor_effect_fx_pack_oldpicture = 0x7f020073;
public static final int fotor_effect_fx_pack_retro = 0x7f020074;
public static final int fotor_effect_fx_pack_vintage = 0x7f020075;
public static final int fotor_effects_add = 0x7f020076;
public static final int fotor_effects_add1_default = 0x7f020077;
public static final int fotor_effects_add2_default = 0x7f020078;
public static final int fotor_effects_add3_default = 0x7f020079;
public static final int fotor_effects_add3_pressed = 0x7f02007a;
public static final int fotor_effects_add_default = 0x7f02007b;
public static final int fotor_effects_add_pressed = 0x7f02007c;
public static final int fotor_effects_add_unavailable = 0x7f02007d;
public static final int fotor_effects_analog_default = 0x7f02007e;
public static final int fotor_effects_analog_pressed = 0x7f02007f;
public static final int fotor_effects_art_default = 0x7f020080;
public static final int fotor_effects_art_pressed = 0x7f020081;
public static final int fotor_effects_delete_default = 0x7f020082;
public static final int fotor_effects_delete_pressed = 0x7f020083;
public static final int fotor_effects_favorites = 0x7f020084;
public static final int fotor_effects_favorites1_default = 0x7f020085;
public static final int fotor_effects_favorites2_default = 0x7f020086;
public static final int fotor_effects_favorites_default = 0x7f020087;
public static final int fotor_effects_favorites_pressed = 0x7f020088;
public static final int fotor_effects_lomo_default = 0x7f020089;
public static final int fotor_effects_lomo_pressed = 0x7f02008a;
public static final int fotor_effects_minus = 0x7f02008b;
public static final int fotor_effects_minus_default = 0x7f02008c;
public static final int fotor_effects_minus_pressed = 0x7f02008d;
public static final int fotor_effects_minus_unavailable = 0x7f02008e;
public static final int fotor_effects_neon_default = 0x7f02008f;
public static final int fotor_effects_neon_pressed = 0x7f020090;
public static final int fotor_effects_old_picture_default = 0x7f020091;
public static final int fotor_effects_old_picture_pressed = 0x7f020092;
public static final int fotor_effects_retro_default = 0x7f020093;
public static final int fotor_effects_retro_pressed = 0x7f020094;
public static final int fotor_effects_vintage_default = 0x7f020095;
public static final int fotor_effects_vintage_pressed = 0x7f020096;
public static final int fotor_enhance_high = 0x7f020097;
public static final int fotor_enhance_high_default = 0x7f020098;
public static final int fotor_enhance_high_pressed = 0x7f020099;
public static final int fotor_enhance_low = 0x7f02009a;
public static final int fotor_enhance_low_default = 0x7f02009b;
public static final int fotor_enhance_low_pressed = 0x7f02009c;
public static final int fotor_enhance_medium = 0x7f02009d;
public static final int fotor_enhance_medium_default = 0x7f02009e;
public static final int fotor_enhance_medium_pressed = 0x7f02009f;
public static final int fotor_feature_adjust = 0x7f0200a0;
public static final int fotor_feature_adjust_advance = 0x7f0200a1;
public static final int fotor_feature_border = 0x7f0200a2;
public static final int fotor_feature_crop = 0x7f0200a3;
public static final int fotor_feature_enhance = 0x7f0200a4;
public static final int fotor_feature_fx_effects = 0x7f0200a5;
public static final int fotor_feature_rotate = 0x7f0200a6;
public static final int fotor_feature_scenes = 0x7f0200a7;
public static final int fotor_feature_stickers = 0x7f0200a8;
public static final int fotor_feature_text = 0x7f0200a9;
public static final int fotor_feature_tilt_shift = 0x7f0200aa;
public static final int fotor_fonts_pack_art = 0x7f0200ab;
public static final int fotor_fonts_pack_charm = 0x7f0200ac;
public static final int fotor_fonts_pack_classic = 0x7f0200ad;
public static final int fotor_fonts_pack_happy = 0x7f0200ae;
public static final int fotor_fx_effect_effects_listview_item_background = 0x7f0200af;
public static final int fotor_header_redo_button = 0x7f0200b0;
public static final int fotor_header_undo_button = 0x7f0200b1;
public static final int fotor_hlv_overscroll_edge = 0x7f0200b2;
public static final int fotor_hlv_overscroll_glow = 0x7f0200b3;
public static final int fotor_main_apply_button = 0x7f0200b4;
public static final int fotor_main_apply_default = 0x7f0200b5;
public static final int fotor_main_apply_pressed = 0x7f0200b6;
public static final int fotor_main_loading_background = 0x7f0200b7;
public static final int fotor_main_redo_default = 0x7f0200b8;
public static final int fotor_main_redo_pressed = 0x7f0200b9;
public static final int fotor_main_redo_unavailable = 0x7f0200ba;
public static final int fotor_main_undo_default = 0x7f0200bb;
public static final int fotor_main_undo_pressed = 0x7f0200bc;
public static final int fotor_main_undo_unavailable = 0x7f0200bd;
public static final int fotor_public_slider_layer_list = 0x7f0200be;
public static final int fotor_public_slider_thumb = 0x7f0200bf;
public static final int fotor_public_slider_thumb_selector = 0x7f0200c0;
public static final int fotor_public_slider_value_background = 0x7f0200c1;
public static final int fotor_rotate_fh_button = 0x7f0200c2;
public static final int fotor_rotate_fh_default = 0x7f0200c3;
public static final int fotor_rotate_fh_pressed = 0x7f0200c4;
public static final int fotor_rotate_fv_button = 0x7f0200c5;
public static final int fotor_rotate_fv_default = 0x7f0200c6;
public static final int fotor_rotate_fv_pressed = 0x7f0200c7;
public static final int fotor_rotate_left_button = 0x7f0200c8;
public static final int fotor_rotate_left_default = 0x7f0200c9;
public static final int fotor_rotate_left_pressed = 0x7f0200ca;
public static final int fotor_rotate_right_button = 0x7f0200cb;
public static final int fotor_rotate_right_default = 0x7f0200cc;
public static final int fotor_rotate_right_pressed = 0x7f0200cd;
public static final int fotor_scenes_backlit = 0x7f0200ce;
public static final int fotor_scenes_backlit_default = 0x7f0200cf;
public static final int fotor_scenes_backlit_pressed = 0x7f0200d0;
public static final int fotor_scenes_cloudy = 0x7f0200d1;
public static final int fotor_scenes_cloudy_default = 0x7f0200d2;
public static final int fotor_scenes_cloudy_pressed = 0x7f0200d3;
public static final int fotor_scenes_darken = 0x7f0200d4;
public static final int fotor_scenes_darken_default = 0x7f0200d5;
public static final int fotor_scenes_darken_pressed = 0x7f0200d6;
public static final int fotor_scenes_flash = 0x7f0200d7;
public static final int fotor_scenes_flash_default = 0x7f0200d8;
public static final int fotor_scenes_flash_pressed = 0x7f0200d9;
public static final int fotor_scenes_fluores_default = 0x7f0200da;
public static final int fotor_scenes_fluores_pressed = 0x7f0200db;
public static final int fotor_scenes_fluorescent = 0x7f0200dc;
public static final int fotor_scenes_food = 0x7f0200dd;
public static final int fotor_scenes_food_default = 0x7f0200de;
public static final int fotor_scenes_food_pressed = 0x7f0200df;
public static final int fotor_scenes_landscape = 0x7f0200e0;
public static final int fotor_scenes_landscape_default = 0x7f0200e1;
public static final int fotor_scenes_landscape_pressed = 0x7f0200e2;
public static final int fotor_scenes_night = 0x7f0200e3;
public static final int fotor_scenes_night_default = 0x7f0200e4;
public static final int fotor_scenes_night_pressed = 0x7f0200e5;
public static final int fotor_scenes_original = 0x7f0200e6;
public static final int fotor_scenes_original_default = 0x7f0200e7;
public static final int fotor_scenes_original_pressed = 0x7f0200e8;
public static final int fotor_scenes_portrait = 0x7f0200e9;
public static final int fotor_scenes_portrait_default = 0x7f0200ea;
public static final int fotor_scenes_portrait_pressed = 0x7f0200eb;
public static final int fotor_scenes_sand_snow = 0x7f0200ec;
public static final int fotor_scenes_seasid_default = 0x7f0200ed;
public static final int fotor_scenes_seasid_pressed = 0x7f0200ee;
public static final int fotor_scenes_shade = 0x7f0200ef;
public static final int fotor_scenes_shade_default = 0x7f0200f0;
public static final int fotor_scenes_shade_pressed = 0x7f0200f1;
public static final int fotor_scenes_sunset = 0x7f0200f2;
public static final int fotor_scenes_sunset_default = 0x7f0200f3;
public static final int fotor_scenes_sunset_pressed = 0x7f0200f4;
public static final int fotor_scenes_theatre = 0x7f0200f5;
public static final int fotor_scenes_theatre_default = 0x7f0200f6;
public static final int fotor_scenes_theatre_pressed = 0x7f0200f7;
public static final int fotor_slider_blue = 0x7f0200f8;
public static final int fotor_slider_blue_layer_list = 0x7f0200f9;
public static final int fotor_slider_green = 0x7f0200fa;
public static final int fotor_slider_green_layer_list = 0x7f0200fb;
public static final int fotor_slider_public_bg = 0x7f0200fc;
public static final int fotor_slider_public_process = 0x7f0200fd;
public static final int fotor_slider_red = 0x7f0200fe;
public static final int fotor_slider_red_layer_list = 0x7f0200ff;
public static final int fotor_sticker_delete_button = 0x7f020100;
public static final int fotor_sticker_delete_default = 0x7f020101;
public static final int fotor_sticker_delete_pressed = 0x7f020102;
public static final int fotor_sticker_reset_button = 0x7f020103;
public static final int fotor_sticker_reset_default = 0x7f020104;
public static final int fotor_sticker_reset_pressed = 0x7f020105;
public static final int fotor_sticker_zoom_button = 0x7f020106;
public static final int fotor_sticker_zoom_default = 0x7f020107;
public static final int fotor_sticker_zoom_pressed = 0x7f020108;
public static final int fotor_stickers_boom_default = 0x7f020109;
public static final int fotor_stickers_boom_pressed = 0x7f02010a;
public static final int fotor_stickers_button_background_state = 0x7f02010b;
public static final int fotor_stickers_decoration_default = 0x7f02010c;
public static final int fotor_stickers_decoration_pressed = 0x7f02010d;
public static final int fotor_stickers_love_default = 0x7f02010e;
public static final int fotor_stickers_love_pressed = 0x7f02010f;
public static final int fotor_stickers_pack_boom = 0x7f020110;
public static final int fotor_stickers_pack_decoration = 0x7f020111;
public static final int fotor_stickers_pack_love = 0x7f020112;
public static final int fotor_stickers_pack_party = 0x7f020113;
public static final int fotor_stickers_pack_text = 0x7f020114;
public static final int fotor_stickers_party_default = 0x7f020115;
public static final int fotor_stickers_party_pressed = 0x7f020116;
public static final int fotor_stickers_text_default = 0x7f020117;
public static final int fotor_stickers_text_pressed = 0x7f020118;
public static final int fotor_text_add_button = 0x7f020119;
public static final int fotor_text_add_default = 0x7f02011a;
public static final int fotor_text_add_pressed = 0x7f02011b;
public static final int fotor_text_add_unavailable = 0x7f02011c;
public static final int fotor_text_align_center_button = 0x7f02011d;
public static final int fotor_text_align_left_button = 0x7f02011e;
public static final int fotor_text_align_right_button = 0x7f02011f;
public static final int fotor_text_bg_default = 0x7f020120;
public static final int fotor_text_bg_pressed = 0x7f020121;
public static final int fotor_text_bold_default = 0x7f020122;
public static final int fotor_text_bold_pressed = 0x7f020123;
public static final int fotor_text_bold_unavailable = 0x7f020124;
public static final int fotor_text_center_alignment_default = 0x7f020125;
public static final int fotor_text_center_alignment_pressed = 0x7f020126;
public static final int fotor_text_color_button = 0x7f020127;
public static final int fotor_text_color_color_button = 0x7f020128;
public static final int fotor_text_color_color_default = 0x7f020129;
public static final int fotor_text_color_color_pressed = 0x7f02012a;
public static final int fotor_text_color_default = 0x7f02012b;
public static final int fotor_text_color_pressed = 0x7f02012c;
public static final int fotor_text_color_texture_button = 0x7f02012d;
public static final int fotor_text_color_texture_default = 0x7f02012e;
public static final int fotor_text_color_texture_pressed = 0x7f02012f;
public static final int fotor_text_delete_button = 0x7f020130;
public static final int fotor_text_delete_default = 0x7f020131;
public static final int fotor_text_delete_pressed = 0x7f020132;
public static final int fotor_text_done_button = 0x7f020133;
public static final int fotor_text_done_default = 0x7f020134;
public static final int fotor_text_done_pressed = 0x7f020135;
public static final int fotor_text_item_background = 0x7f020136;
public static final int fotor_text_keyboard_button = 0x7f020137;
public static final int fotor_text_keyboard_default = 0x7f020138;
public static final int fotor_text_keyboard_pressed = 0x7f020139;
public static final int fotor_text_left_alignment_default = 0x7f02013a;
public static final int fotor_text_left_alignment_pressed = 0x7f02013b;
public static final int fotor_text_left_rote_default = 0x7f02013c;
public static final int fotor_text_left_rote_pressed = 0x7f02013d;
public static final int fotor_text_left_shadow_default = 0x7f02013e;
public static final int fotor_text_left_shadow_pressed = 0x7f02013f;
public static final int fotor_text_lock = 0x7f020140;
public static final int fotor_text_no_shadow_default = 0x7f020141;
public static final int fotor_text_no_shadow_pressed = 0x7f020142;
public static final int fotor_text_oblique_default = 0x7f020143;
public static final int fotor_text_oblique_pressed = 0x7f020144;
public static final int fotor_text_oblique_unavailable = 0x7f020145;
public static final int fotor_text_option_button = 0x7f020146;
public static final int fotor_text_option_default = 0x7f020147;
public static final int fotor_text_option_pressed = 0x7f020148;
public static final int fotor_text_right_alignment_default = 0x7f020149;
public static final int fotor_text_right_alignment_pressed = 0x7f02014a;
public static final int fotor_text_right_rote_default = 0x7f02014b;
public static final int fotor_text_right_rote_pressed = 0x7f02014c;
public static final int fotor_text_right_shadow_default = 0x7f02014d;
public static final int fotor_text_right_shadow_pressed = 0x7f02014e;
public static final int fotor_text_rotation_left_button = 0x7f02014f;
public static final int fotor_text_rotation_right_button = 0x7f020150;
public static final int fotor_text_shadow_bottom_button = 0x7f020151;
public static final int fotor_text_shadow_left_button = 0x7f020152;
public static final int fotor_text_shadow_right_button = 0x7f020153;
public static final int fotor_text_size_minus_button = 0x7f020154;
public static final int fotor_text_size_minus_default = 0x7f020155;
public static final int fotor_text_size_minus_pressed = 0x7f020156;
public static final int fotor_text_size_plus_button = 0x7f020157;
public static final int fotor_text_size_plus_default = 0x7f020158;
public static final int fotor_text_size_plus_pressed = 0x7f020159;
public static final int fotor_text_style_bold_button = 0x7f02015a;
public static final int fotor_text_style_italic_button = 0x7f02015b;
public static final int fotor_text_texture1 = 0x7f02015c;
public static final int fotor_text_texture10 = 0x7f02015d;
public static final int fotor_text_texture11 = 0x7f02015e;
public static final int fotor_text_texture12 = 0x7f02015f;
public static final int fotor_text_texture13 = 0x7f020160;
public static final int fotor_text_texture14 = 0x7f020161;
public static final int fotor_text_texture15 = 0x7f020162;
public static final int fotor_text_texture16 = 0x7f020163;
public static final int fotor_text_texture17 = 0x7f020164;
public static final int fotor_text_texture18 = 0x7f020165;
public static final int fotor_text_texture19 = 0x7f020166;
public static final int fotor_text_texture2 = 0x7f020167;
public static final int fotor_text_texture20 = 0x7f020168;
public static final int fotor_text_texture3 = 0x7f020169;
public static final int fotor_text_texture4 = 0x7f02016a;
public static final int fotor_text_texture5 = 0x7f02016b;
public static final int fotor_text_texture6 = 0x7f02016c;
public static final int fotor_text_texture7 = 0x7f02016d;
public static final int fotor_text_texture8 = 0x7f02016e;
public static final int fotor_text_texture9 = 0x7f02016f;
public static final int fotor_text_typeface_art_default = 0x7f020170;
public static final int fotor_text_typeface_art_pressed = 0x7f020171;
public static final int fotor_text_typeface_button = 0x7f020172;
public static final int fotor_text_typeface_charm_default = 0x7f020173;
public static final int fotor_text_typeface_charm_pressed = 0x7f020174;
public static final int fotor_text_typeface_classic_default = 0x7f020175;
public static final int fotor_text_typeface_classic_pressed = 0x7f020176;
public static final int fotor_text_typeface_default = 0x7f020177;
public static final int fotor_text_typeface_happy_default = 0x7f020178;
public static final int fotor_text_typeface_happy_pressed = 0x7f020179;
public static final int fotor_text_typeface_pressed = 0x7f02017a;
public static final int fotor_tilt_shift_blur_button = 0x7f02017b;
public static final int fotor_tilt_shift_blur_default = 0x7f02017c;
public static final int fotor_tilt_shift_blur_pressed = 0x7f02017d;
public static final int fotor_tilt_shift_circle_button = 0x7f02017e;
public static final int fotor_tilt_shift_circle_default = 0x7f02017f;
public static final int fotor_tilt_shift_circle_pressed = 0x7f020180;
public static final int fotor_tilt_shift_ellipse_button = 0x7f020181;
public static final int fotor_tilt_shift_ellipse_default = 0x7f020182;
public static final int fotor_tilt_shift_ellipse_pressed = 0x7f020183;
public static final int fotor_tilt_shift_linear_button = 0x7f020184;
public static final int fotor_tilt_shift_linear_default = 0x7f020185;
public static final int fotor_tilt_shift_linear_pressed = 0x7f020186;
public static final int fotor_tilt_shift_strength_button = 0x7f020187;
public static final int fotor_tilt_shift_strength_default = 0x7f020188;
public static final int fotor_tilt_shift_strength_pressed = 0x7f020189;
public static final int fotor_title_back_btn_icon = 0x7f02018a;
public static final int fotor_title_back_btn_icon_default = 0x7f02018b;
public static final int fotor_title_back_btn_icon_pressed = 0x7f02018c;
public static final int fotor_transparent = 0x7f02018d;
public static final int ic_error = 0x7f02018e;
}
public static final class id {
public static final int alwaysScroll = 0x7f0a0002;
public static final int disabled = 0x7f0a0000;
public static final int fotor_action_settings = 0x7f0a0082;
public static final int fotor_adjust_curve_reset_button = 0x7f0a0015;
public static final int fotor_adjust_curve_toggle_button = 0x7f0a0014;
public static final int fotor_adjust_pan_container = 0x7f0a0017;
public static final int fotor_adjust_slider = 0x7f0a001b;
public static final int fotor_adjust_slider_b = 0x7f0a001a;
public static final int fotor_adjust_slider_g = 0x7f0a0019;
public static final int fotor_adjust_slider_r = 0x7f0a0018;
public static final int fotor_adjust_tools_container = 0x7f0a0016;
public static final int fotor_camera_captureBtn = 0x7f0a0010;
public static final int fotor_camera_focus_indicator = 0x7f0a0011;
public static final int fotor_camera_footer_layout = 0x7f0a000f;
public static final int fotor_camera_header_button = 0x7f0a000e;
public static final int fotor_camera_header_layout = 0x7f0a000d;
public static final int fotor_camera_main_layout = 0x7f0a000a;
public static final int fotor_camera_preview = 0x7f0a000c;
public static final int fotor_camera_preview_layout = 0x7f0a000b;
public static final int fotor_content_layer = 0x7f0a006f;
public static final int fotor_crop_btn_left_bottom = 0x7f0a001e;
public static final int fotor_crop_btn_left_top = 0x7f0a001d;
public static final int fotor_crop_btn_right_bottom = 0x7f0a0020;
public static final int fotor_crop_btn_right_top = 0x7f0a001f;
public static final int fotor_crop_buttons_container = 0x7f0a001c;
public static final int fotor_crop_line_bottom = 0x7f0a0022;
public static final int fotor_crop_line_left = 0x7f0a0023;
public static final int fotor_crop_line_right = 0x7f0a0024;
public static final int fotor_crop_line_top = 0x7f0a0021;
public static final int fotor_crop_operation_container = 0x7f0a0025;
public static final int fotor_crop_ratio_button = 0x7f0a0029;
public static final int fotor_crop_restore = 0x7f0a0028;
public static final int fotor_crop_slider = 0x7f0a0027;
public static final int fotor_feature_draw_panel_container = 0x7f0a0070;
public static final int fotor_feature_title = 0x7f0a007d;
public static final int fotor_fitscreen_imageview = 0x7f0a002f;
public static final int fotor_footerContainer = 0x7f0a0075;
public static final int fotor_fx_effect_add = 0x7f0a003b;
public static final int fotor_fx_effect_add_or_delete = 0x7f0a003a;
public static final int fotor_fx_effect_blend_slider = 0x7f0a0035;
public static final int fotor_fx_effect_category_container = 0x7f0a002a;
public static final int fotor_fx_effect_category_listview = 0x7f0a002b;
public static final int fotor_fx_effect_category_loading_container = 0x7f0a002c;
public static final int fotor_fx_effect_category_loading_pb = 0x7f0a003e;
public static final int fotor_fx_effect_container = 0x7f0a002d;
public static final int fotor_fx_effect_effects_listview_item_imageview = 0x7f0a0031;
public static final int fotor_fx_effect_effects_listview_item_progressbar = 0x7f0a0033;
public static final int fotor_fx_effect_effects_listview_item_selector = 0x7f0a0034;
public static final int fotor_fx_effect_effects_listview_item_textview = 0x7f0a0032;
public static final int fotor_fx_effect_favorites = 0x7f0a003d;
public static final int fotor_fx_effect_imageview = 0x7f0a0030;
public static final int fotor_fx_effect_listview = 0x7f0a002e;
public static final int fotor_fx_effect_minus = 0x7f0a003c;
public static final int fotor_fx_effect_superposed_choose_container = 0x7f0a0037;
public static final int fotor_fx_effect_superposed_choose_listview = 0x7f0a0038;
public static final int fotor_fx_effect_superposed_container = 0x7f0a0036;
public static final int fotor_fx_effect_superposed_listview = 0x7f0a0039;
public static final int fotor_headerContainer = 0x7f0a006e;
public static final int fotor_imageView = 0x7f0a0071;
public static final int fotor_image_top_layer = 0x7f0a0073;
public static final int fotor_lock_event_view = 0x7f0a0077;
public static final int fotor_main_apply = 0x7f0a0080;
public static final int fotor_main_btn_redo = 0x7f0a007f;
public static final int fotor_main_btn_undo = 0x7f0a007e;
public static final int fotor_main_header_text_container = 0x7f0a007b;
public static final int fotor_main_loading_view = 0x7f0a0072;
public static final int fotor_main_title = 0x7f0a007c;
public static final int fotor_navigation_button = 0x7f0a007a;
public static final int fotor_operation_tool_background = 0x7f0a0026;
public static final int fotor_operation_tool_layer = 0x7f0a0074;
public static final int fotor_operations_container = 0x7f0a0079;
public static final int fotor_progress = 0x7f0a0003;
public static final int fotor_progress_bar = 0x7f0a0081;
public static final int fotor_rotate_pan_container = 0x7f0a003f;
public static final int fotor_scenes_pan_container = 0x7f0a0040;
public static final int fotor_screen_top_layer = 0x7f0a0076;
public static final int fotor_scroll_linear_layout = 0x7f0a0013;
public static final int fotor_scroll_view = 0x7f0a0012;
public static final int fotor_secondaryProgress = 0x7f0a0004;
public static final int fotor_stickers_button = 0x7f0a0041;
public static final int fotor_stickers_category_container = 0x7f0a0042;
public static final int fotor_stickers_category_listview = 0x7f0a0043;
public static final int fotor_stickers_category_loading_container = 0x7f0a0044;
public static final int fotor_stickers_stickers_container = 0x7f0a0045;
public static final int fotor_stickers_stickers_listview = 0x7f0a0046;
public static final int fotor_text_add_button = 0x7f0a004a;
public static final int fotor_text_align_center_button = 0x7f0a005a;
public static final int fotor_text_align_left_button = 0x7f0a0059;
public static final int fotor_text_align_right_button = 0x7f0a005b;
public static final int fotor_text_color_button = 0x7f0a004f;
public static final int fotor_text_color_color_button = 0x7f0a0047;
public static final int fotor_text_color_texture_button = 0x7f0a0048;
public static final int fotor_text_colors_container = 0x7f0a0049;
public static final int fotor_text_done_button = 0x7f0a0051;
public static final int fotor_text_keyboard_button = 0x7f0a004d;
public static final int fotor_text_navigation_panel = 0x7f0a004c;
public static final int fotor_text_opacity_slider = 0x7f0a005f;
public static final int fotor_text_operation_container = 0x7f0a0052;
public static final int fotor_text_option_button = 0x7f0a0050;
public static final int fotor_text_rotation_left_button = 0x7f0a0055;
public static final int fotor_text_rotation_right_button = 0x7f0a0056;
public static final int fotor_text_shadow_bottom_button = 0x7f0a005d;
public static final int fotor_text_shadow_left_button = 0x7f0a005c;
public static final int fotor_text_shadow_right_button = 0x7f0a005e;
public static final int fotor_text_size_minus_button = 0x7f0a0054;
public static final int fotor_text_size_plus_button = 0x7f0a0053;
public static final int fotor_text_style_bold_button = 0x7f0a0057;
public static final int fotor_text_style_italic_button = 0x7f0a0058;
public static final int fotor_text_typeface_button = 0x7f0a004e;
public static final int fotor_text_typeface_category_btn = 0x7f0a0060;
public static final int fotor_text_typeface_category_list = 0x7f0a0065;
public static final int fotor_text_typeface_category_lock = 0x7f0a0061;
public static final int fotor_text_typeface_imageview = 0x7f0a0064;
public static final int fotor_text_typeface_item = 0x7f0a0062;
public static final int fotor_text_typeface_list = 0x7f0a0066;
public static final int fotor_text_typeface_textview = 0x7f0a0063;
public static final int fotor_texts_category_loading_container = 0x7f0a004b;
public static final int fotor_tilt_shift_circle = 0x7f0a0067;
public static final int fotor_tilt_shift_ellipse = 0x7f0a0069;
public static final int fotor_tilt_shift_gradient = 0x7f0a006a;
public static final int fotor_tilt_shift_linear = 0x7f0a0068;
public static final int fotor_tilt_shift_slider = 0x7f0a006c;
public static final int fotor_tilt_shift_strength = 0x7f0a006b;
public static final int fotor_tools_container = 0x7f0a0078;
public static final int fotor_zoom_imageview = 0x7f0a006d;
public static final int normal = 0x7f0a0001;
}
public static final class integer {
public static final int fotor_anim_medium_duration = 0x7f070001;
public static final int fotor_anim_short_duration = 0x7f070000;
public static final int fotor_default_slider_adjustDistance = 0x7f070002;
}
public static final class layout {
public static final int fotor_camera_main = 0x7f030001;
public static final int fotor_default_bottom_layout = 0x7f030002;
public static final int fotor_feature_adjust_operation_curve_controller = 0x7f030003;
public static final int fotor_feature_adjust_operation_panel = 0x7f030004;
public static final int fotor_feature_adjust_operation_rgb_tools = 0x7f030005;
public static final int fotor_feature_adjust_operation_tools = 0x7f030006;
public static final int fotor_feature_border_effect_operation_panel = 0x7f030007;
public static final int fotor_feature_crop_maskview = 0x7f030008;
public static final int fotor_feature_crop_operation_panel = 0x7f030009;
public static final int fotor_feature_crop_operation_tools = 0x7f03000a;
public static final int fotor_feature_crop_ratio_item = 0x7f03000b;
public static final int fotor_feature_effect_operation_panel = 0x7f03000c;
public static final int fotor_feature_enhance_operation_panel = 0x7f03000d;
public static final int fotor_feature_fitscreen_draw_panel = 0x7f03000e;
public static final int fotor_feature_fx_effect_draw_panel = 0x7f03000f;
public static final int fotor_feature_fx_effect_effects_listview_item = 0x7f030010;
public static final int fotor_feature_fx_effect_operation_blend_tools = 0x7f030011;
public static final int fotor_feature_fx_effect_operation_panel = 0x7f030012;
public static final int fotor_feature_fx_effect_operation_superposed_tools = 0x7f030013;
public static final int fotor_feature_fx_effect_operation_tools = 0x7f030014;
public static final int fotor_feature_operation_loading_component = 0x7f030015;
public static final int fotor_feature_rotate_operation_panel = 0x7f030016;
public static final int fotor_feature_scenes_operation_panel = 0x7f030017;
public static final int fotor_feature_stickers_item = 0x7f030018;
public static final int fotor_feature_stickers_operation_panel = 0x7f030019;
public static final int fotor_feature_text_color_panel = 0x7f03001a;
public static final int fotor_feature_text_operation_panel = 0x7f03001b;
public static final int fotor_feature_text_operation_tools = 0x7f03001c;
public static final int fotor_feature_text_option_panel = 0x7f03001d;
public static final int fotor_feature_text_typeface_category_item = 0x7f03001e;
public static final int fotor_feature_text_typeface_item = 0x7f03001f;
public static final int fotor_feature_text_typeface_panel = 0x7f030020;
public static final int fotor_feature_tilt_shift_operation_panel = 0x7f030021;
public static final int fotor_feature_tilt_shift_operation_tools = 0x7f030022;
public static final int fotor_feature_zoom_draw_panel = 0x7f030023;
public static final int fotor_loading_progress_medium = 0x7f030024;
public static final int fotor_main = 0x7f030025;
public static final int fotor_main_footer = 0x7f030026;
public static final int fotor_main_footer_item = 0x7f030027;
public static final int fotor_main_header = 0x7f030028;
public static final int fotor_main_loadding = 0x7f030029;
public static final int fotor_progress_medium = 0x7f03002a;
}
public static final class menu {
public static final int fotor_camera_menu = 0x7f0c0000;
}
public static final class raw {
public static final int basefilter = 0x7f050000;
public static final int optimization = 0x7f050001;
public static final int temporary = 0x7f050002;
}
public static final class string {
public static final int fotor_adjust_brightness = 0x7f09001f;
public static final int fotor_adjust_contrast = 0x7f090020;
public static final int fotor_adjust_curve = 0x7f090029;
public static final int fotor_adjust_curve_hide = 0x7f09002b;
public static final int fotor_adjust_curve_reset = 0x7f09002c;
public static final int fotor_adjust_curve_show = 0x7f09002a;
public static final int fotor_adjust_highlight = 0x7f090025;
public static final int fotor_adjust_rgb = 0x7f090028;
public static final int fotor_adjust_saturation = 0x7f090021;
public static final int fotor_adjust_shadow = 0x7f090024;
public static final int fotor_adjust_sharpen = 0x7f090022;
public static final int fotor_adjust_temp = 0x7f090026;
public static final int fotor_adjust_tint = 0x7f090027;
public static final int fotor_adjust_vignette = 0x7f090023;
public static final int fotor_back = 0x7f09005a;
public static final int fotor_crop_10_8 = 0x7f090049;
public static final int fotor_crop_16_9 = 0x7f09004b;
public static final int fotor_crop_1_1 = 0x7f090042;
public static final int fotor_crop_3_4 = 0x7f090044;
public static final int fotor_crop_4_3 = 0x7f090043;
public static final int fotor_crop_4_6 = 0x7f090046;
public static final int fotor_crop_5_7 = 0x7f090048;
public static final int fotor_crop_6_4 = 0x7f090045;
public static final int fotor_crop_7_5 = 0x7f090047;
public static final int fotor_crop_8_10 = 0x7f09004a;
public static final int fotor_crop_9_16 = 0x7f09004c;
public static final int fotor_crop_free = 0x7f090040;
public static final int fotor_crop_original = 0x7f090041;
public static final int fotor_dialog_alert_message_plugin_update = 0x7f090069;
public static final int fotor_dialog_alert_message_save = 0x7f09006b;
public static final int fotor_dialog_alert_negative_save = 0x7f09006c;
public static final int fotor_dialog_alert_positive_save = 0x7f09006d;
public static final int fotor_dialog_alert_title_plugin_update = 0x7f09006e;
public static final int fotor_dialog_alert_title_save = 0x7f09006a;
public static final int fotor_effect_border_pack_gallery = 0x7f090007;
public static final int fotor_effect_border_pack_simple = 0x7f090005;
public static final int fotor_effect_border_pack_styled = 0x7f090006;
public static final int fotor_effect_fx_pack_analog = 0x7f090000;
public static final int fotor_effect_fx_pack_lomo = 0x7f090004;
public static final int fotor_effect_fx_pack_oldpicture = 0x7f090001;
public static final int fotor_effect_fx_pack_retro = 0x7f090002;
public static final int fotor_effect_fx_pack_vintage = 0x7f090003;
public static final int fotor_effect_store = 0x7f090068;
public static final int fotor_enhance_high = 0x7f090059;
public static final int fotor_enhance_low = 0x7f090057;
public static final int fotor_enhance_medium = 0x7f090058;
public static final int fotor_favorites = 0x7f09005d;
public static final int fotor_feature_adjust = 0x7f090012;
public static final int fotor_feature_adjust_advance = 0x7f090013;
public static final int fotor_feature_border = 0x7f090015;
public static final int fotor_feature_crop = 0x7f090016;
public static final int fotor_feature_enhance = 0x7f090010;
public static final int fotor_feature_fx_effects = 0x7f090014;
public static final int fotor_feature_rotate = 0x7f090017;
public static final int fotor_feature_scenes = 0x7f090011;
public static final int fotor_feature_stickers = 0x7f090018;
public static final int fotor_feature_text = 0x7f09001a;
public static final int fotor_feature_tilt_shift = 0x7f090019;
public static final int fotor_font_assets_path = 0x7f090056;
public static final int fotor_font_roboto_bold = 0x7f090054;
public static final int fotor_font_roboto_bold_name = 0x7f090055;
public static final int fotor_font_roboto_light = 0x7f090052;
public static final int fotor_font_roboto_light_name = 0x7f090053;
public static final int fotor_fonts_pack_charm = 0x7f090009;
public static final int fotor_fonts_pack_classic = 0x7f090008;
public static final int fotor_loading = 0x7f09005b;
public static final int fotor_main_apply = 0x7f09001c;
public static final int fotor_main_cancel = 0x7f09001b;
public static final int fotor_main_redo = 0x7f09001e;
public static final int fotor_main_undo = 0x7f09001d;
public static final int fotor_original = 0x7f09005c;
public static final int fotor_rotate_fliph = 0x7f090030;
public static final int fotor_rotate_flipv = 0x7f09002f;
public static final int fotor_rotate_left = 0x7f09002d;
public static final int fotor_rotate_right = 0x7f09002e;
public static final int fotor_scenes_auto = 0x7f090032;
public static final int fotor_scenes_backlit = 0x7f090033;
public static final int fotor_scenes_cloudy = 0x7f090035;
public static final int fotor_scenes_darken = 0x7f090034;
public static final int fotor_scenes_flash = 0x7f090039;
public static final int fotor_scenes_fluorescent = 0x7f09003a;
public static final int fotor_scenes_food = 0x7f09003f;
public static final int fotor_scenes_landscape = 0x7f09003d;
public static final int fotor_scenes_night = 0x7f090038;
public static final int fotor_scenes_original = 0x7f090031;
public static final int fotor_scenes_portrait = 0x7f09003b;
public static final int fotor_scenes_sand_snow = 0x7f09003c;
public static final int fotor_scenes_shade = 0x7f090036;
public static final int fotor_scenes_sunset = 0x7f090037;
public static final int fotor_scenes_theatre = 0x7f09003e;
public static final int fotor_stickers_abstract = 0x7f090066;
public static final int fotor_stickers_boom = 0x7f090067;
public static final int fotor_stickers_pack_boom = 0x7f09000b;
public static final int fotor_stickers_pack_decoration = 0x7f09000c;
public static final int fotor_stickers_pack_love = 0x7f09000d;
public static final int fotor_stickers_pack_party = 0x7f09000e;
public static final int fotor_stickers_pack_text = 0x7f09000a;
public static final int fotor_text_add_btn = 0x7f09005e;
public static final int fotor_text_alignment = 0x7f090063;
public static final int fotor_text_default_text = 0x7f09005f;
public static final int fotor_text_opacity = 0x7f090065;
public static final int fotor_text_rotation = 0x7f090061;
public static final int fotor_text_shadow = 0x7f090064;
public static final int fotor_text_style = 0x7f090062;
public static final int fotor_text_textsize = 0x7f090060;
public static final int fotor_tilt_shift_circle = 0x7f09004f;
public static final int fotor_tilt_shift_ellipse = 0x7f090051;
public static final int fotor_tilt_shift_gradient = 0x7f09004d;
public static final int fotor_tilt_shift_linear = 0x7f090050;
public static final int fotor_tilt_shift_strength = 0x7f09004e;
public static final int fotor_title_main = 0x7f09000f;
}
public static final class style {
public static final int FotorBaseTheme = 0x7f0b0009;
public static final int FotorCustomSliderDefault = 0x7f0b0001;
public static final int FotorTheme = 0x7f0b000a;
public static final int FotorWidget = 0x7f0b0000;
public static final int FotorWidget_EffectSelectorView = 0x7f0b0007;
public static final int FotorWidget_NavigationButton = 0x7f0b0002;
public static final int FotorWidget_TextButton = 0x7f0b0006;
public static final int FotorWidget_TextView = 0x7f0b0005;
public static final int FotorWidget_TitleBackButton = 0x7f0b0008;
public static final int fotorHeaderButtonDefault = 0x7f0b0004;
public static final int fotorOperToolPanelDefault = 0x7f0b0003;
}
public static final class styleable {
public static final int[] AbsHListView = { 0x010100fb, 0x010100fc, 0x010100fe, 0x01010101, 0x0101012b, 0x01010231, 0x7f010036, 0x7f010037 };
public static final int AbsHListView_android_cacheColorHint = 3;
public static final int AbsHListView_android_choiceMode = 4;
public static final int AbsHListView_android_drawSelectorOnTop = 1;
public static final int AbsHListView_android_listSelector = 0;
public static final int AbsHListView_android_scrollingCache = 2;
public static final int AbsHListView_android_smoothScrollbar = 5;
public static final int AbsHListView_stackFromRight = 6;
public static final int AbsHListView_transcriptMode = 7;
public static final int[] FotorCustomSlider = { 0x7f010015, 0x7f010016, 0x7f010017, 0x7f010018, 0x7f010019, 0x7f01001a, 0x7f01001b, 0x7f01001c };
public static final int FotorCustomSlider_fotorCustomSlider_adjustYDistance = 0;
public static final int FotorCustomSlider_fotorCustomSlider_isShowValue = 1;
public static final int FotorCustomSlider_fotorCustomSlider_max = 6;
public static final int FotorCustomSlider_fotorCustomSlider_progress = 7;
public static final int FotorCustomSlider_fotorCustomSlider_progressDrawable = 5;
public static final int FotorCustomSlider_fotorCustomSlider_thumb = 3;
public static final int FotorCustomSlider_fotorCustomSlider_typeface = 4;
public static final int FotorCustomSlider_fotorCustomSlider_valueBackground = 2;
public static final int[] FotorEffectSelectorView = { 0x7f010026 };
public static final int FotorEffectSelectorView_fotorEffectSelectorView_Color = 0;
public static final int[] FotorHeaderButton = { 0x7f010025 };
public static final int FotorHeaderButton_fotorHeaderButton_typeface = 0;
public static final int[] FotorNavigationButton = { 0x7f01001d, 0x7f01001e, 0x7f01001f, 0x7f010020, 0x7f010021, 0x7f010022, 0x7f010023 };
public static final int FotorNavigationButton_fotorNavigationBtn_color_default = 3;
public static final int FotorNavigationButton_fotorNavigationBtn_color_disabled = 5;
public static final int FotorNavigationButton_fotorNavigationBtn_color_pressed = 4;
public static final int FotorNavigationButton_fotorNavigationBtn_isShowPressedBackground = 0;
public static final int FotorNavigationButton_fotorNavigationBtn_pressed_background = 6;
public static final int FotorNavigationButton_fotorNavigationBtn_text = 1;
public static final int FotorNavigationButton_fotorNavigationBtn_typeface = 2;
public static final int[] FotorOperToolPanel = { 0x7f010024 };
public static final int FotorOperToolPanel_fotorOperToolPanel_bottomLine_Color = 0;
public static final int[] FotorTextButton = { 0x7f010014 };
public static final int FotorTextButton_fotorTextButton_typeface = 0;
public static final int[] FotorTextView = { 0x7f010013 };
public static final int FotorTextView_fotorTextView_typeface = 0;
public static final int[] FotorTitleBackButton = { 0x7f010027, 0x7f010028, 0x7f010029, 0x7f01002a, 0x7f01002b };
public static final int FotorTitleBackButton_fotorTitleBackButton_IconDrawable = 3;
public static final int FotorTitleBackButton_fotorTitleBackButton_Text = 1;
public static final int FotorTitleBackButton_fotorTitleBackButton_TextColor = 2;
public static final int FotorTitleBackButton_fotorTitleBackButton_Textsize = 0;
public static final int FotorTitleBackButton_fotorTitleBackButton_Typeface = 4;
public static final int[] HListView = { 0x010100b2, 0x01010129, 0x7f010030, 0x7f010031, 0x7f010032, 0x7f010033, 0x7f010034, 0x7f010035 };
public static final int HListView_android_divider = 1;
public static final int HListView_android_entries = 0;
public static final int HListView_dividerWidth = 2;
public static final int HListView_footerDividersEnabled = 4;
public static final int HListView_headerDividersEnabled = 3;
public static final int HListView_measureWithChild = 7;
public static final int HListView_overScrollFooter = 6;
public static final int HListView_overScrollHeader = 5;
public static final int[] Theme = { 0x7f010000, 0x7f010001, 0x7f010002, 0x7f010003, 0x7f010004, 0x7f010005, 0x7f010006, 0x7f010007, 0x7f010008, 0x7f010009, 0x7f01000a, 0x7f01000b, 0x7f01000c, 0x7f01000d, 0x7f01000e, 0x7f01000f, 0x7f010010, 0x7f010011, 0x7f010012 };
public static final int Theme_fotorDefaultEffectSelectorViewStyle = 17;
public static final int Theme_fotorDefaultHeaderButtonStyle = 16;
public static final int Theme_fotorDefaultImageViewBackground = 14;
public static final int Theme_fotorDefaultNavigateBtnStyle = 13;
public static final int Theme_fotorDefaultOperToolPanelStyle = 15;
public static final int Theme_fotorDefaultSliderStyle = 12;
public static final int Theme_fotorDefaultTextButtonStyle = 11;
public static final int Theme_fotorDefaultTextViewStyle = 10;
public static final int Theme_fotorDefaultTitleBackButtonStyle = 18;
public static final int Theme_fotorFontBold = 0;
public static final int Theme_fotorFontLight = 1;
public static final int Theme_fotorMainBottomHeight = 2;
public static final int Theme_fotorMainFooterBackground = 6;
public static final int Theme_fotorMainHeaderBackground = 7;
public static final int Theme_fotorMainHeaderHeight = 4;
public static final int Theme_fotorMainToolPanelBackground = 8;
public static final int Theme_fotorMainToolPanelHeight = 3;
public static final int Theme_fotorNavigationBtnWidth = 5;
public static final int Theme_fotorTitleTextSize = 9;
}
}
================================================
FILE: FotorSDKDemo/gen/com/example/fotorsdkdemo/BuildConfig.java
================================================
/** Automatically generated file. DO NOT MODIFY */
package com.example.fotorsdkdemo;
public final class BuildConfig {
public final static boolean DEBUG = true;
}
================================================
FILE: FotorSDKDemo/gen/com/example/fotorsdkdemo/R.java
================================================
/* AUTO-GENERATED FILE. DO NOT MODIFY.
*
* This class was automatically generated by the
* aapt tool from the resource data it found. It
* should not be modified by hand.
*/
package com.example.fotorsdkdemo;
public final class R {
public static final class anim {
public static final int fotor_camera_focus_anim=0x7f040000;
public static final int fotor_fit_view_fadein_animation=0x7f040001;
public static final int fotor_fit_view_fadeout_animation=0x7f040002;
public static final int fotor_footer_bar_in_animation=0x7f040003;
public static final int fotor_footer_bar_out_animation=0x7f040004;
}
public static final class attr {
/**
Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp".
Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size),
in (inches), mm (millimeters).
This may also be a reference to a resource (in the form
"@[package:]type:name") or
theme attribute (in the form
"?[package:][type:]name")
containing a value of this type.
*/
public static final int dividerWidth=0x7f010030;
/**
Must be a reference to another resource, in the form "@[+][package:]type:name"
or to a theme attribute in the form "?[package:][type:]name".
*/
public static final int entries=0x7f01002f;
/**
Must be a boolean value, either "true" or "false".
This may also be a reference to a resource (in the form
"@[package:]type:name") or
theme attribute (in the form
"?[package:][type:]name")
containing a value of this type.
*/
public static final int footerDividersEnabled=0x7f010032;
/**
Must be an integer value, such as "100".
This may also be a reference to a resource (in the form
"@[package:]type:name") or
theme attribute (in the form
"?[package:][type:]name")
containing a value of this type.
*/
public static final int fotorCustomSlider_adjustYDistance=0x7f010015;
/**
Must be a boolean value, either "true" or "false".
This may also be a reference to a resource (in the form
"@[package:]type:name") or
theme attribute (in the form
"?[package:][type:]name")
containing a value of this type.
*/
public static final int fotorCustomSlider_isShowValue=0x7f010016;
/**
Must be an integer value, such as "100".
This may also be a reference to a resource (in the form
"@[package:]type:name") or
theme attribute (in the form
"?[package:][type:]name")
containing a value of this type.
*/
public static final int fotorCustomSlider_max=0x7f01001b;
/**
Must be an integer value, such as "100".
This may also be a reference to a resource (in the form
"@[package:]type:name") or
theme attribute (in the form
"?[package:][type:]name")
containing a value of this type.
*/
public static final int fotorCustomSlider_progress=0x7f01001c;
/**
Must be a reference to another resource, in the form "@[+][package:]type:name"
or to a theme attribute in the form "?[package:][type:]name".
*/
public static final int fotorCustomSlider_progressDrawable=0x7f01001a;
/**
Must be a reference to another resource, in the form "@[+][package:]type:name"
or to a theme attribute in the form "?[package:][type:]name".
*/
public static final int fotorCustomSlider_thumb=0x7f010018;
/**
Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.
This may also be a reference to a resource (in the form
"@[package:]type:name") or
theme attribute (in the form
"?[package:][type:]name")
containing a value of this type.
*/
public static final int fotorCustomSlider_typeface=0x7f010019;
/**
Must be a reference to another resource, in the form "@[+][package:]type:name"
or to a theme attribute in the form "?[package:][type:]name".
*/
public static final int fotorCustomSlider_valueBackground=0x7f010017;
/**
Must be a reference to another resource, in the form "@[+][package:]type:name"
or to a theme attribute in the form "?[package:][type:]name".
*/
public static final int fotorDefaultEffectSelectorViewStyle=0x7f010011;
/**
Must be a reference to another resource, in the form "@[+][package:]type:name"
or to a theme attribute in the form "?[package:][type:]name".
*/
public static final int fotorDefaultHeaderButtonStyle=0x7f010010;
/**
Must be a reference to another resource, in the form "@[+][package:]type:name"
or to a theme attribute in the form "?[package:][type:]name".
*/
public static final int fotorDefaultImageViewBackground=0x7f01000e;
/**
Must be a reference to another resource, in the form "@[+][package:]type:name"
or to a theme attribute in the form "?[package:][type:]name".
*/
public static final int fotorDefaultNavigateBtnStyle=0x7f01000d;
/**
Must be a reference to another resource, in the form "@[+][package:]type:name"
or to a theme attribute in the form "?[package:][type:]name".
*/
public static final int fotorDefaultOperToolPanelStyle=0x7f01000f;
/** default slider adjustDistance
Must be a reference to another resource, in the form "@[+][package:]type:name"
or to a theme attribute in the form "?[package:][type:]name".
*/
public static final int fotorDefaultSliderStyle=0x7f01000c;
/**
Must be a reference to another resource, in the form "@[+][package:]type:name"
or to a theme attribute in the form "?[package:][type:]name".
*/
public static final int fotorDefaultTextButtonStyle=0x7f01000b;
/** default text style
Must be a reference to another resource, in the form "@[+][package:]type:name"
or to a theme attribute in the form "?[package:][type:]name".
*/
public static final int fotorDefaultTextViewStyle=0x7f01000a;
/**
Must be a reference to another resource, in the form "@[+][package:]type:name"
or to a theme attribute in the form "?[package:][type:]name".
*/
public static final int fotorDefaultTitleBackButtonStyle=0x7f010012;
/**
Must be a color value, in the form of "#rgb", "#argb",
"#rrggbb", or "#aarrggbb".
This may also be a reference to a resource (in the form
"@[package:]type:name") or
theme attribute (in the form
"?[package:][type:]name")
containing a value of this type.
*/
public static final int fotorEffectSelectorView_Color=0x7f010026;
/**
Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.
This may also be a reference to a resource (in the form
"@[package:]type:name") or
theme attribute (in the form
"?[package:][type:]name")
containing a value of this type.
*/
public static final int fotorFontBold=0x7f010000;
/**
Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.
This may also be a reference to a resource (in the form
"@[package:]type:name") or
theme attribute (in the form
"?[package:][type:]name")
containing a value of this type.
*/
public static final int fotorFontLight=0x7f010001;
/**
Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.
This may also be a reference to a resource (in the form
"@[package:]type:name") or
theme attribute (in the form
"?[package:][type:]name")
containing a value of this type.
*/
public static final int fotorHeaderButton_typeface=0x7f010025;
/**
Must be a reference to another resource, in the form "@[+][package:]type:name"
or to a theme attribute in the form "?[package:][type:]name".
*/
public static final int fotorMainBottomHeight=0x7f010002;
/**
Must be a reference to another resource, in the form "@[+][package:]type:name"
or to a theme attribute in the form "?[package:][type:]name".
*/
public static final int fotorMainFooterBackground=0x7f010006;
/**
Must be a reference to another resource, in the form "@[+][package:]type:name"
or to a theme attribute in the form "?[package:][type:]name".
*/
public static final int fotorMainHeaderBackground=0x7f010007;
/**
Must be a reference to another resource, in the form "@[+][package:]type:name"
or to a theme attribute in the form "?[package:][type:]name".
*/
public static final int fotorMainHeaderHeight=0x7f010004;
/**
Must be a reference to another resource, in the form "@[+][package:]type:name"
or to a theme attribute in the form "?[package:][type:]name".
*/
public static final int fotorMainToolPanelBackground=0x7f010008;
/**
Must be a reference to another resource, in the form "@[+][package:]type:name"
or to a theme attribute in the form "?[package:][type:]name".
*/
public static final int fotorMainToolPanelHeight=0x7f010003;
/**
Must be a reference to another resource, in the form "@[+][package:]type:name"
or to a theme attribute in the form "?[package:][type:]name".
*/
public static final int fotorNavigationBtnWidth=0x7f010005;
/**
Must be a color value, in the form of "#rgb", "#argb",
"#rrggbb", or "#aarrggbb".
This may also be a reference to a resource (in the form
"@[package:]type:name") or
theme attribute (in the form
"?[package:][type:]name")
containing a value of this type.
*/
public static final int fotorNavigationBtn_color_default=0x7f010020;
/**
Must be a color value, in the form of "#rgb", "#argb",
"#rrggbb", or "#aarrggbb".
This may also be a reference to a resource (in the form
"@[package:]type:name") or
theme attribute (in the form
"?[package:][type:]name")
containing a value of this type.
*/
public static final int fotorNavigationBtn_color_disabled=0x7f010022;
/**
Must be a color value, in the form of "#rgb", "#argb",
"#rrggbb", or "#aarrggbb".
This may also be a reference to a resource (in the form
"@[package:]type:name") or
theme attribute (in the form
"?[package:][type:]name")
containing a value of this type.
*/
public static final int fotorNavigationBtn_color_pressed=0x7f010021;
/**
Must be a boolean value, either "true" or "false".
This may also be a reference to a resource (in the form
"@[package:]type:name") or
theme attribute (in the form
"?[package:][type:]name")
containing a value of this type.
*/
public static final int fotorNavigationBtn_isShowPressedBackground=0x7f01001d;
/**
Must be a color value, in the form of "#rgb", "#argb",
"#rrggbb", or "#aarrggbb".
This may also be a reference to a resource (in the form
"@[package:]type:name") or
theme attribute (in the form
"?[package:][type:]name")
containing a value of this type.
*/
public static final int fotorNavigationBtn_pressed_background=0x7f010023;
/**
Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.
This may also be a reference to a resource (in the form
"@[package:]type:name") or
theme attribute (in the form
"?[package:][type:]name")
containing a value of this type.
*/
public static final int fotorNavigationBtn_text=0x7f01001e;
/**
Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.
This may also be a reference to a resource (in the form
"@[package:]type:name") or
theme attribute (in the form
"?[package:][type:]name")
containing a value of this type.
*/
public static final int fotorNavigationBtn_typeface=0x7f01001f;
/**
Must be a color value, in the form of "#rgb", "#argb",
"#rrggbb", or "#aarrggbb".
This may also be a reference to a resource (in the form
"@[package:]type:name") or
theme attribute (in the form
"?[package:][type:]name")
containing a value of this type.
*/
public static final int fotorOperToolPanel_bottomLine_Color=0x7f010024;
/**
Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.
This may also be a reference to a resource (in the form
"@[package:]type:name") or
theme attribute (in the form
"?[package:][type:]name")
containing a value of this type.
*/
public static final int fotorTextButton_typeface=0x7f010014;
/**
Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.
This may also be a reference to a resource (in the form
"@[package:]type:name") or
theme attribute (in the form
"?[package:][type:]name")
containing a value of this type.
*/
public static final int fotorTextView_typeface=0x7f010013;
/**
Must be a reference to another resource, in the form "@[+][package:]type:name"
or to a theme attribute in the form "?[package:][type:]name".
*/
public static final int fotorTitleBackButton_IconDrawable=0x7f01002a;
/**
Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.
This may also be a reference to a resource (in the form
"@[package:]type:name") or
theme attribute (in the form
"?[package:][type:]name")
containing a value of this type.
*/
public static final int fotorTitleBackButton_Text=0x7f010028;
/**
May be a reference to another resource, in the form "@[+][package:]type:name"
or to a theme attribute in the form "?[package:][type:]name".
May be a color value, in the form of "#rgb", "#argb",
"#rrggbb", or "#aarrggbb".
*/
public static final int fotorTitleBackButton_TextColor=0x7f010029;
/**
Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp".
Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size),
in (inches), mm (millimeters).
This may also be a reference to a resource (in the form
"@[package:]type:name") or
theme attribute (in the form
"?[package:][type:]name")
containing a value of this type.
*/
public static final int fotorTitleBackButton_Textsize=0x7f010027;
/**
Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.
This may also be a reference to a resource (in the form
"@[package:]type:name") or
theme attribute (in the form
"?[package:][type:]name")
containing a value of this type.
*/
public static final int fotorTitleBackButton_Typeface=0x7f01002b;
/**
Must be a reference to another resource, in the form "@[+][package:]type:name"
or to a theme attribute in the form "?[package:][type:]name".
*/
public static final int fotorTitleTextSize=0x7f010009;
/**
Must be a boolean value, either "true" or "false".
This may also be a reference to a resource (in the form
"@[package:]type:name") or
theme attribute (in the form
"?[package:][type:]name")
containing a value of this type.
*/
public static final int headerDividersEnabled=0x7f010031;
/**
When "wrap_content" is used as value of the layout_height property.
Pass the position, inside the adapter, of the view being used to measure the view
or '-1' to use the default behavior ( default is -1 )
Must be an integer value, such as "100".
This may also be a reference to a resource (in the form
"@[package:]type:name") or
theme attribute (in the form
"?[package:][type:]name")
containing a value of this type.
*/
public static final int measureWithChild=0x7f010035;
/**
May be a reference to another resource, in the form "@[+][package:]type:name"
or to a theme attribute in the form "?[package:][type:]name".
May be a color value, in the form of "#rgb", "#argb",
"#rrggbb", or "#aarrggbb".
*/
public static final int overScrollFooter=0x7f010034;
/**
May be a reference to another resource, in the form "@[+][package:]type:name"
or to a theme attribute in the form "?[package:][type:]name".
May be a color value, in the form of "#rgb", "#argb",
"#rrggbb", or "#aarrggbb".
*/
public static final int overScrollHeader=0x7f010033;
/**
Must be a reference to another resource, in the form "@[+][package:]type:name"
or to a theme attribute in the form "?[package:][type:]name".
*/
public static final int sephiroth_absHListViewStyle=0x7f01002d;
/**
Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp".
Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size),
in (inches), mm (millimeters).
This may also be a reference to a resource (in the form
"@[package:]type:name") or
theme attribute (in the form
"?[package:][type:]name")
containing a value of this type.
*/
public static final int sephiroth_listPreferredItemWidth=0x7f01002e;
/**
Must be a reference to another resource, in the form "@[+][package:]type:name"
or to a theme attribute in the form "?[package:][type:]name".
*/
public static final int sephiroth_listViewStyle=0x7f01002c;
/**
Must be a boolean value, either "true" or "false".
This may also be a reference to a resource (in the form
"@[package:]type:name") or
theme attribute (in the form
"?[package:][type:]name")
containing a value of this type.
*/
public static final int stackFromRight=0x7f010036;
/**
Must be one of the following constant values.
Constant
Value
Description
disabled
0
normal
1
alwaysScroll
2
*/
public static final int transcriptMode=0x7f010037;
}
public static final class color {
public static final int bottom_button_background_default_color=0x7f06003c;
public static final int bottom_button_background_disable_color=0x7f06003e;
public static final int bottom_button_background_pressed_color=0x7f06003d;
public static final int bottom_button_text_default_color=0x7f060039;
public static final int bottom_button_text_disable_color=0x7f06003b;
public static final int bottom_button_text_pressed_color=0x7f06003a;
public static final int fotor_feature_adjust_curve_background=0x7f06000d;
public static final int fotor_feature_loading_textColor=0x7f06000e;
public static final int fotor_feature_stickers_button_pressed=0x7f060013;
public static final int fotor_feature_text_color_button1=0x7f06001b;
public static final int fotor_feature_text_color_button10=0x7f060024;
public static final int fotor_feature_text_color_button11=0x7f060025;
public static final int fotor_feature_text_color_button12=0x7f060026;
public static final int fotor_feature_text_color_button13=0x7f060027;
public static final int fotor_feature_text_color_button14=0x7f060028;
public static final int fotor_feature_text_color_button15=0x7f060029;
public static final int fotor_feature_text_color_button16=0x7f06002a;
public static final int fotor_feature_text_color_button17=0x7f06002b;
public static final int fotor_feature_text_color_button18=0x7f06002c;
public static final int fotor_feature_text_color_button19=0x7f06002d;
public static final int fotor_feature_text_color_button2=0x7f06001c;
public static final int fotor_feature_text_color_button20=0x7f06002e;
public static final int fotor_feature_text_color_button21=0x7f06002f;
public static final int fotor_feature_text_color_button22=0x7f060030;
public static final int fotor_feature_text_color_button23=0x7f060031;
public static final int fotor_feature_text_color_button24=0x7f060032;
public static final int fotor_feature_text_color_button25=0x7f060033;
public static final int fotor_feature_text_color_button26=0x7f060034;
public static final int fotor_feature_text_color_button27=0x7f060035;
public static final int fotor_feature_text_color_button28=0x7f060036;
public static final int fotor_feature_text_color_button3=0x7f06001d;
public static final int fotor_feature_text_color_button4=0x7f06001e;
public static final int fotor_feature_text_color_button5=0x7f06001f;
public static final int fotor_feature_text_color_button6=0x7f060020;
public static final int fotor_feature_text_color_button7=0x7f060021;
public static final int fotor_feature_text_color_button8=0x7f060022;
public static final int fotor_feature_text_color_button9=0x7f060023;
public static final int fotor_feature_text_option_title_color=0x7f060019;
public static final int fotor_feature_text_panel_background=0x7f060014;
public static final int fotor_feature_text_panel_line_color=0x7f060015;
public static final int fotor_feature_text_shadow_color=0x7f06001a;
public static final int fotor_feature_text_texture_border_selected=0x7f060018;
public static final int fotor_feature_text_typeface_default=0x7f060017;
public static final int fotor_feature_text_typeface_pressed=0x7f060016;
public static final int fotor_fx_effect_effects_listview_item_background_default=0x7f06000f;
public static final int fotor_fx_effect_effects_listview_item_background_pressed=0x7f060010;
public static final int fotor_fx_effect_effects_listview_item_textColor=0x7f060011;
public static final int fotor_fx_effect_effects_listview_item_text_bakground=0x7f060012;
public static final int fotor_half_transparent=0x7f060001;
public static final int fotor_header_button_text_state=0x7f06003f;
public static final int fotor_main_footer_background=0x7f060002;
public static final int fotor_main_header_background=0x7f060008;
public static final int fotor_main_header_button_text_default=0x7f06000b;
public static final int fotor_main_header_button_text_pressed=0x7f06000c;
public static final int fotor_main_imageview_background=0x7f060007;
public static final int fotor_main_loading_background=0x7f060037;
public static final int fotor_main_toolpanel_background=0x7f060009;
public static final int fotor_main_toolpanel_bottom_line=0x7f06000a;
public static final int fotor_navigation_btn_color_default=0x7f060005;
public static final int fotor_navigation_btn_color_disabled=0x7f060006;
public static final int fotor_navigation_btn_color_pressed=0x7f060004;
public static final int fotor_navigation_btn_pressed_background=0x7f060003;
public static final int fotor_text_button_text_state=0x7f060040;
public static final int fotor_title_back_button_text_state=0x7f060041;
public static final int fotor_transparent=0x7f060000;
public static final int photo_editor_button_background_color=0x7f060042;
public static final int photo_editor_button_text_color=0x7f060043;
public static final int title_background=0x7f060038;
}
public static final class dimen {
/** Default screen margins, per the Android Design guidelines.
Customize dimensions originally defined in res/values/dimens.xml (such as
screen margins) for sw720dp devices (e.g. 10" tablets) in landscape here.
*/
public static final int activity_horizontal_margin=0x7f080032;
public static final int activity_vertical_margin=0x7f080033;
public static final int bottom_background_height=0x7f080036;
public static final int bottom_button_text_size=0x7f080037;
public static final int fotor_border_effect_listview_divider_width=0x7f080031;
public static final int fotor_crop_reset_margin_h=0x7f08000f;
public static final int fotor_curve_btn_textsize=0x7f08000d;
public static final int fotor_curve_control_panel_btn_spacing=0x7f08000c;
public static final int fotor_curve_view_max_size=0x7f080030;
public static final int fotor_feature_loading_textSize=0x7f08002b;
public static final int fotor_feature_stickers_button_spacing=0x7f08002a;
public static final int fotor_feature_stickers_button_width=0x7f080029;
public static final int fotor_fx_effect_buttons_margin_right=0x7f080010;
public static final int fotor_fx_effect_effects_listview_item_image_width=0x7f080011;
public static final int fotor_fx_effect_effects_listview_item_margin=0x7f080013;
public static final int fotor_fx_effect_effects_listview_item_textHeight=0x7f080012;
public static final int fotor_fx_effect_effects_listview_item_textSize=0x7f080014;
public static final int fotor_main_bottom_height=0x7f080000;
public static final int fotor_main_header_btn_textsize=0x7f080005;
public static final int fotor_main_header_height=0x7f080007;
public static final int fotor_main_header_margin=0x7f080008;
public static final int fotor_main_header_title_textsize=0x7f080006;
public static final int fotor_main_imageview_margin=0x7f08002d;
public static final int fotor_main_loadding_background_radius=0x7f08002e;
public static final int fotor_main_loadding_margin=0x7f08002f;
public static final int fotor_main_loading_textSize=0x7f08002c;
public static final int fotor_main_minimum_bottom_height=0x7f080004;
public static final int fotor_main_navigation_btn_textsize=0x7f080002;
public static final int fotor_main_navigation_btn_width=0x7f080001;
public static final int fotor_main_tool_panel_height=0x7f080003;
public static final int fotor_main_tool_panel_line_size=0x7f080009;
public static final int fotor_slider_panel_margin_h=0x7f08000b;
public static final int fotor_slider_value_margin=0x7f08000a;
public static final int fotor_text_color_button_size=0x7f080021;
public static final int fotor_text_color_button_stroke=0x7f080020;
public static final int fotor_text_item_padding=0x7f080019;
public static final int fotor_text_keyboard_canvas_spacing=0x7f08001c;
public static final int fotor_text_option_btn_spacing=0x7f080025;
public static final int fotor_text_option_opacity_padding_h=0x7f080028;
public static final int fotor_text_option_panel_margin=0x7f080023;
public static final int fotor_text_option_panel_spacing=0x7f080024;
public static final int fotor_text_option_right_panel_margin_top=0x7f080027;
public static final int fotor_text_option_title_textsize=0x7f080026;
public static final int fotor_text_shadow_offset_x=0x7f08001a;
public static final int fotor_text_shadow_offset_y=0x7f08001b;
public static final int fotor_text_textsize_default=0x7f080015;
public static final int fotor_text_textsize_maximum=0x7f080016;
public static final int fotor_text_textsize_minimum=0x7f080017;
public static final int fotor_text_textsize_step=0x7f080018;
public static final int fotor_text_texture_button_size=0x7f080022;
public static final int fotor_text_typeface_category_item_width=0x7f08001d;
public static final int fotor_text_typeface_item_height=0x7f08001e;
public static final int fotor_text_typeface_item_textsize=0x7f08001f;
public static final int fotor_tilt_shift_tool_panel_margin_left=0x7f08000e;
public static final int title_background_height=0x7f080034;
public static final int title_text_size=0x7f080035;
}
public static final class drawable {
public static final int fotor_adjust_brightness=0x7f020000;
public static final int fotor_adjust_contrast=0x7f020001;
public static final int fotor_adjust_curve=0x7f020002;
public static final int fotor_adjust_highlight=0x7f020003;
public static final int fotor_adjust_rgb=0x7f020004;
public static final int fotor_adjust_saturation=0x7f020005;
public static final int fotor_adjust_shadow=0x7f020006;
public static final int fotor_adjust_sharpen=0x7f020007;
public static final int fotor_adjust_temp=0x7f020008;
public static final int fotor_adjust_tint=0x7f020009;
public static final int fotor_adjust_vignette=0x7f02000a;
public static final int fotor_advanced_curve_default=0x7f02000b;
public static final int fotor_advanced_curve_pressed=0x7f02000c;
public static final int fotor_advanced_highlights_default=0x7f02000d;
public static final int fotor_advanced_highlights_pressed=0x7f02000e;
public static final int fotor_advanced_rgb_default=0x7f02000f;
public static final int fotor_advanced_rgb_pressed=0x7f020010;
public static final int fotor_advanced_shadows_default=0x7f020011;
public static final int fotor_advanced_shadows_pressed=0x7f020012;
public static final int fotor_advanced_temp_default=0x7f020013;
public static final int fotor_advanced_temp_pressed=0x7f020014;
public static final int fotor_advanced_tint_default=0x7f020015;
public static final int fotor_advanced_tint_pressed=0x7f020016;
public static final int fotor_advanced_vignette_default=0x7f020017;
public static final int fotor_advanced_vignette_pressed=0x7f020018;
public static final int fotor_back=0x7f020019;
public static final int fotor_back_default=0x7f02001a;
public static final int fotor_back_pressed=0x7f02001b;
public static final int fotor_basis_brightness_default=0x7f02001c;
public static final int fotor_basis_brightness_pressed=0x7f02001d;
public static final int fotor_basis_contrast_default=0x7f02001e;
public static final int fotor_basis_contrast_pressed=0x7f02001f;
public static final int fotor_basis_saturation_default=0x7f020020;
public static final int fotor_basis_saturation_pressed=0x7f020021;
public static final int fotor_basis_sharpen_default=0x7f020022;
public static final int fotor_basis_sharpen_pressed=0x7f020023;
public static final int fotor_borders_gallery_default=0x7f020024;
public static final int fotor_borders_gallery_pressed=0x7f020025;
public static final int fotor_borders_more=0x7f020026;
public static final int fotor_borders_more_default=0x7f020027;
public static final int fotor_borders_more_pressed=0x7f020028;
public static final int fotor_borders_simple_default=0x7f020029;
public static final int fotor_borders_simple_pressed=0x7f02002a;
public static final int fotor_borders_stamp_default=0x7f02002b;
public static final int fotor_borders_stamp_pressed=0x7f02002c;
public static final int fotor_borders_styled_default=0x7f02002d;
public static final int fotor_borders_styled_pressed=0x7f02002e;
public static final int fotor_camera_focus_indicator=0x7f02002f;
public static final int fotor_crop_btn_lineh_default=0x7f020030;
public static final int fotor_crop_btn_lineh_pressed=0x7f020031;
public static final int fotor_crop_btn_linev_default=0x7f020032;
public static final int fotor_crop_btn_linev_pressed=0x7f020033;
public static final int fotor_crop_btn_point_default=0x7f020034;
public static final int fotor_crop_btn_point_pressed=0x7f020035;
public static final int fotor_crop_free_default=0x7f020036;
public static final int fotor_crop_free_pressed=0x7f020037;
public static final int fotor_crop_line_h_button=0x7f020038;
public static final int fotor_crop_line_v_button=0x7f020039;
public static final int fotor_crop_point_button=0x7f02003a;
public static final int fotor_crop_ratio_free_button=0x7f02003b;
public static final int fotor_crop_restor_default=0x7f02003c;
public static final int fotor_crop_restor_pressed=0x7f02003d;
public static final int fotor_crop_restor_unavailable=0x7f02003e;
public static final int fotor_crop_restore_button=0x7f02003f;
public static final int fotor_curve_btn_round=0x7f020040;
public static final int fotor_curve_btn_round_drag=0x7f020041;
public static final int fotor_curve_hide_default=0x7f020042;
public static final int fotor_curve_hide_pressed=0x7f020043;
public static final int fotor_curve_point_button=0x7f020044;
public static final int fotor_curve_restore_button=0x7f020045;
public static final int fotor_curve_restore_default=0x7f020046;
public static final int fotor_curve_restore_pressed=0x7f020047;
public static final int fotor_curve_restore_unavailable=0x7f020048;
public static final int fotor_curve_show_default=0x7f020049;
public static final int fotor_curve_show_pressed=0x7f02004a;
public static final int fotor_curve_toggle_button=0x7f02004b;
public static final int fotor_edit_advanced_default=0x7f02004c;
public static final int fotor_edit_advanced_pressed=0x7f02004d;
public static final int fotor_edit_basis_default=0x7f02004e;
public static final int fotor_edit_basis_pressed=0x7f02004f;
public static final int fotor_edit_borders_default=0x7f020050;
public static final int fotor_edit_borders_pressed=0x7f020051;
public static final int fotor_edit_crop_default=0x7f020052;
public static final int fotor_edit_crop_pressed=0x7f020053;
public static final int fotor_edit_draw_default=0x7f020054;
public static final int fotor_edit_draw_pressed=0x7f020055;
public static final int fotor_edit_effects_default=0x7f020056;
public static final int fotor_edit_effects_pressed=0x7f020057;
public static final int fotor_edit_enhance_default=0x7f020058;
public static final int fotor_edit_enhance_pressed=0x7f020059;
public static final int fotor_edit_hdr_default=0x7f02005a;
public static final int fotor_edit_hdr_pressed=0x7f02005b;
public static final int fotor_edit_one_menu_logo=0x7f02005c;
public static final int fotor_edit_redeye_default=0x7f02005d;
public static final int fotor_edit_redeye_pressed=0x7f02005e;
public static final int fotor_edit_rotate_default=0x7f02005f;
public static final int fotor_edit_rotate_pressed=0x7f020060;
public static final int fotor_edit_scenes_default=0x7f020061;
public static final int fotor_edit_scenes_pressed=0x7f020062;
public static final int fotor_edit_stichers_default=0x7f020063;
public static final int fotor_edit_stichers_pressed=0x7f020064;
public static final int fotor_edit_text_default=0x7f020065;
public static final int fotor_edit_text_pressed=0x7f020066;
public static final int fotor_edit_tilt_shift_default=0x7f020067;
public static final int fotor_edit_tilt_shift_pressed=0x7f020068;
public static final int fotor_effect_border_pack_gallery=0x7f020069;
public static final int fotor_effect_border_pack_simple=0x7f02006a;
public static final int fotor_effect_border_pack_stamp=0x7f02006b;
public static final int fotor_effect_border_pack_styled=0x7f02006c;
public static final int fotor_effect_favorites=0x7f02006d;
public static final int fotor_effect_favorites_default=0x7f02006e;
public static final int fotor_effect_favorites_pressed=0x7f02006f;
public static final int fotor_effect_fx_pack_analog=0x7f020070;
public static final int fotor_effect_fx_pack_art=0x7f020071;
public static final int fotor_effect_fx_pack_lomo=0x7f020072;
public static final int fotor_effect_fx_pack_oldpicture=0x7f020073;
public static final int fotor_effect_fx_pack_retro=0x7f020074;
public static final int fotor_effect_fx_pack_vintage=0x7f020075;
public static final int fotor_effects_add=0x7f020076;
public static final int fotor_effects_add1_default=0x7f020077;
public static final int fotor_effects_add2_default=0x7f020078;
public static final int fotor_effects_add3_default=0x7f020079;
public static final int fotor_effects_add3_pressed=0x7f02007a;
public static final int fotor_effects_add_default=0x7f02007b;
public static final int fotor_effects_add_pressed=0x7f02007c;
public static final int fotor_effects_add_unavailable=0x7f02007d;
public static final int fotor_effects_analog_default=0x7f02007e;
public static final int fotor_effects_analog_pressed=0x7f02007f;
public static final int fotor_effects_art_default=0x7f020080;
public static final int fotor_effects_art_pressed=0x7f020081;
public static final int fotor_effects_delete_default=0x7f020082;
public static final int fotor_effects_delete_pressed=0x7f020083;
public static final int fotor_effects_favorites=0x7f020084;
public static final int fotor_effects_favorites1_default=0x7f020085;
public static final int fotor_effects_favorites2_default=0x7f020086;
public static final int fotor_effects_favorites_default=0x7f020087;
public static final int fotor_effects_favorites_pressed=0x7f020088;
public static final int fotor_effects_lomo_default=0x7f020089;
public static final int fotor_effects_lomo_pressed=0x7f02008a;
public static final int fotor_effects_minus=0x7f02008b;
public static final int fotor_effects_minus_default=0x7f02008c;
public static final int fotor_effects_minus_pressed=0x7f02008d;
public static final int fotor_effects_minus_unavailable=0x7f02008e;
public static final int fotor_effects_neon_default=0x7f02008f;
public static final int fotor_effects_neon_pressed=0x7f020090;
public static final int fotor_effects_old_picture_default=0x7f020091;
public static final int fotor_effects_old_picture_pressed=0x7f020092;
public static final int fotor_effects_retro_default=0x7f020093;
public static final int fotor_effects_retro_pressed=0x7f020094;
public static final int fotor_effects_vintage_default=0x7f020095;
public static final int fotor_effects_vintage_pressed=0x7f020096;
public static final int fotor_enhance_high=0x7f020097;
public static final int fotor_enhance_high_default=0x7f020098;
public static final int fotor_enhance_high_pressed=0x7f020099;
public static final int fotor_enhance_low=0x7f02009a;
public static final int fotor_enhance_low_default=0x7f02009b;
public static final int fotor_enhance_low_pressed=0x7f02009c;
public static final int fotor_enhance_medium=0x7f02009d;
public static final int fotor_enhance_medium_default=0x7f02009e;
public static final int fotor_enhance_medium_pressed=0x7f02009f;
public static final int fotor_feature_adjust=0x7f0200a0;
public static final int fotor_feature_adjust_advance=0x7f0200a1;
public static final int fotor_feature_border=0x7f0200a2;
public static final int fotor_feature_crop=0x7f0200a3;
public static final int fotor_feature_enhance=0x7f0200a4;
public static final int fotor_feature_fx_effects=0x7f0200a5;
public static final int fotor_feature_rotate=0x7f0200a6;
public static final int fotor_feature_scenes=0x7f0200a7;
public static final int fotor_feature_stickers=0x7f0200a8;
public static final int fotor_feature_text=0x7f0200a9;
public static final int fotor_feature_tilt_shift=0x7f0200aa;
public static final int fotor_fonts_pack_art=0x7f0200ab;
public static final int fotor_fonts_pack_charm=0x7f0200ac;
public static final int fotor_fonts_pack_classic=0x7f0200ad;
public static final int fotor_fonts_pack_happy=0x7f0200ae;
public static final int fotor_fx_effect_effects_listview_item_background=0x7f0200af;
public static final int fotor_header_redo_button=0x7f0200b0;
public static final int fotor_header_undo_button=0x7f0200b1;
public static final int fotor_hlv_overscroll_edge=0x7f0200b2;
public static final int fotor_hlv_overscroll_glow=0x7f0200b3;
public static final int fotor_main_apply_button=0x7f0200b4;
public static final int fotor_main_apply_default=0x7f0200b5;
public static final int fotor_main_apply_pressed=0x7f0200b6;
public static final int fotor_main_loading_background=0x7f0200b7;
public static final int fotor_main_redo_default=0x7f0200b8;
public static final int fotor_main_redo_pressed=0x7f0200b9;
public static final int fotor_main_redo_unavailable=0x7f0200ba;
public static final int fotor_main_undo_default=0x7f0200bb;
public static final int fotor_main_undo_pressed=0x7f0200bc;
public static final int fotor_main_undo_unavailable=0x7f0200bd;
public static final int fotor_public_slider_layer_list=0x7f0200be;
public static final int fotor_public_slider_thumb=0x7f0200bf;
public static final int fotor_public_slider_thumb_selector=0x7f0200c0;
public static final int fotor_public_slider_value_background=0x7f0200c1;
public static final int fotor_rotate_fh_button=0x7f0200c2;
public static final int fotor_rotate_fh_default=0x7f0200c3;
public static final int fotor_rotate_fh_pressed=0x7f0200c4;
public static final int fotor_rotate_fv_button=0x7f0200c5;
public static final int fotor_rotate_fv_default=0x7f0200c6;
public static final int fotor_rotate_fv_pressed=0x7f0200c7;
public static final int fotor_rotate_left_button=0x7f0200c8;
public static final int fotor_rotate_left_default=0x7f0200c9;
public static final int fotor_rotate_left_pressed=0x7f0200ca;
public static final int fotor_rotate_right_button=0x7f0200cb;
public static final int fotor_rotate_right_default=0x7f0200cc;
public static final int fotor_rotate_right_pressed=0x7f0200cd;
public static final int fotor_scenes_backlit=0x7f0200ce;
public static final int fotor_scenes_backlit_default=0x7f0200cf;
public static final int fotor_scenes_backlit_pressed=0x7f0200d0;
public static final int fotor_scenes_cloudy=0x7f0200d1;
public static final int fotor_scenes_cloudy_default=0x7f0200d2;
public static final int fotor_scenes_cloudy_pressed=0x7f0200d3;
public static final int fotor_scenes_darken=0x7f0200d4;
public static final int fotor_scenes_darken_default=0x7f0200d5;
public static final int fotor_scenes_darken_pressed=0x7f0200d6;
public static final int fotor_scenes_flash=0x7f0200d7;
public static final int fotor_scenes_flash_default=0x7f0200d8;
public static final int fotor_scenes_flash_pressed=0x7f0200d9;
public static final int fotor_scenes_fluores_default=0x7f0200da;
public static final int fotor_scenes_fluores_pressed=0x7f0200db;
public static final int fotor_scenes_fluorescent=0x7f0200dc;
public static final int fotor_scenes_food=0x7f0200dd;
public static final int fotor_scenes_food_default=0x7f0200de;
public static final int fotor_scenes_food_pressed=0x7f0200df;
public static final int fotor_scenes_landscape=0x7f0200e0;
public static final int fotor_scenes_landscape_default=0x7f0200e1;
public static final int fotor_scenes_landscape_pressed=0x7f0200e2;
public static final int fotor_scenes_night=0x7f0200e3;
public static final int fotor_scenes_night_default=0x7f0200e4;
public static final int fotor_scenes_night_pressed=0x7f0200e5;
public static final int fotor_scenes_original=0x7f0200e6;
public static final int fotor_scenes_original_default=0x7f0200e7;
public static final int fotor_scenes_original_pressed=0x7f0200e8;
public static final int fotor_scenes_portrait=0x7f0200e9;
public static final int fotor_scenes_portrait_default=0x7f0200ea;
public static final int fotor_scenes_portrait_pressed=0x7f0200eb;
public static final int fotor_scenes_sand_snow=0x7f0200ec;
public static final int fotor_scenes_seasid_default=0x7f0200ed;
public static final int fotor_scenes_seasid_pressed=0x7f0200ee;
public static final int fotor_scenes_shade=0x7f0200ef;
public static final int fotor_scenes_shade_default=0x7f0200f0;
public static final int fotor_scenes_shade_pressed=0x7f0200f1;
public static final int fotor_scenes_sunset=0x7f0200f2;
public static final int fotor_scenes_sunset_default=0x7f0200f3;
public static final int fotor_scenes_sunset_pressed=0x7f0200f4;
public static final int fotor_scenes_theatre=0x7f0200f5;
public static final int fotor_scenes_theatre_default=0x7f0200f6;
public static final int fotor_scenes_theatre_pressed=0x7f0200f7;
public static final int fotor_slider_blue=0x7f0200f8;
public static final int fotor_slider_blue_layer_list=0x7f0200f9;
public static final int fotor_slider_green=0x7f0200fa;
public static final int fotor_slider_green_layer_list=0x7f0200fb;
public static final int fotor_slider_public_bg=0x7f0200fc;
public static final int fotor_slider_public_process=0x7f0200fd;
public static final int fotor_slider_red=0x7f0200fe;
public static final int fotor_slider_red_layer_list=0x7f0200ff;
public static final int fotor_sticker_delete_button=0x7f020100;
public static final int fotor_sticker_delete_default=0x7f020101;
public static final int fotor_sticker_delete_pressed=0x7f020102;
public static final int fotor_sticker_reset_button=0x7f020103;
public static final int fotor_sticker_reset_default=0x7f020104;
public static final int fotor_sticker_reset_pressed=0x7f020105;
public static final int fotor_sticker_zoom_button=0x7f020106;
public static final int fotor_sticker_zoom_default=0x7f020107;
public static final int fotor_sticker_zoom_pressed=0x7f020108;
public static final int fotor_stickers_boom_default=0x7f020109;
public static final int fotor_stickers_boom_pressed=0x7f02010a;
public static final int fotor_stickers_button_background_state=0x7f02010b;
public static final int fotor_stickers_decoration_default=0x7f02010c;
public static final int fotor_stickers_decoration_pressed=0x7f02010d;
public static final int fotor_stickers_love_default=0x7f02010e;
public static final int fotor_stickers_love_pressed=0x7f02010f;
public static final int fotor_stickers_pack_boom=0x7f020110;
public static final int fotor_stickers_pack_decoration=0x7f020111;
public static final int fotor_stickers_pack_love=0x7f020112;
public static final int fotor_stickers_pack_party=0x7f020113;
public static final int fotor_stickers_pack_text=0x7f020114;
public static final int fotor_stickers_party_default=0x7f020115;
public static final int fotor_stickers_party_pressed=0x7f020116;
public static final int fotor_stickers_text_default=0x7f020117;
public static final int fotor_stickers_text_pressed=0x7f020118;
public static final int fotor_text_add_button=0x7f020119;
public static final int fotor_text_add_default=0x7f02011a;
public static final int fotor_text_add_pressed=0x7f02011b;
public static final int fotor_text_add_unavailable=0x7f02011c;
public static final int fotor_text_align_center_button=0x7f02011d;
public static final int fotor_text_align_left_button=0x7f02011e;
public static final int fotor_text_align_right_button=0x7f02011f;
public static final int fotor_text_bg_default=0x7f020120;
public static final int fotor_text_bg_pressed=0x7f020121;
public static final int fotor_text_bold_default=0x7f020122;
public static final int fotor_text_bold_pressed=0x7f020123;
public static final int fotor_text_bold_unavailable=0x7f020124;
public static final int fotor_text_center_alignment_default=0x7f020125;
public static final int fotor_text_center_alignment_pressed=0x7f020126;
public static final int fotor_text_color_button=0x7f020127;
public static final int fotor_text_color_color_button=0x7f020128;
public static final int fotor_text_color_color_default=0x7f020129;
public static final int fotor_text_color_color_pressed=0x7f02012a;
public static final int fotor_text_color_default=0x7f02012b;
public static final int fotor_text_color_pressed=0x7f02012c;
public static final int fotor_text_color_texture_button=0x7f02012d;
public static final int fotor_text_color_texture_default=0x7f02012e;
public static final int fotor_text_color_texture_pressed=0x7f02012f;
public static final int fotor_text_delete_button=0x7f020130;
public static final int fotor_text_delete_default=0x7f020131;
public static final int fotor_text_delete_pressed=0x7f020132;
public static final int fotor_text_done_button=0x7f020133;
public static final int fotor_text_done_default=0x7f020134;
public static final int fotor_text_done_pressed=0x7f020135;
public static final int fotor_text_item_background=0x7f020136;
public static final int fotor_text_keyboard_button=0x7f020137;
public static final int fotor_text_keyboard_default=0x7f020138;
public static final int fotor_text_keyboard_pressed=0x7f020139;
public static final int fotor_text_left_alignment_default=0x7f02013a;
public static final int fotor_text_left_alignment_pressed=0x7f02013b;
public static final int fotor_text_left_rote_default=0x7f02013c;
public static final int fotor_text_left_rote_pressed=0x7f02013d;
public static final int fotor_text_left_shadow_default=0x7f02013e;
public static final int fotor_text_left_shadow_pressed=0x7f02013f;
public static final int fotor_text_lock=0x7f020140;
public static final int fotor_text_no_shadow_default=0x7f020141;
public static final int fotor_text_no_shadow_pressed=0x7f020142;
public static final int fotor_text_oblique_default=0x7f020143;
public static final int fotor_text_oblique_pressed=0x7f020144;
public static final int fotor_text_oblique_unavailable=0x7f020145;
public static final int fotor_text_option_button=0x7f020146;
public static final int fotor_text_option_default=0x7f020147;
public static final int fotor_text_option_pressed=0x7f020148;
public static final int fotor_text_right_alignment_default=0x7f020149;
public static final int fotor_text_right_alignment_pressed=0x7f02014a;
public static final int fotor_text_right_rote_default=0x7f02014b;
public static final int fotor_text_right_rote_pressed=0x7f02014c;
public static final int fotor_text_right_shadow_default=0x7f02014d;
public static final int fotor_text_right_shadow_pressed=0x7f02014e;
public static final int fotor_text_rotation_left_button=0x7f02014f;
public static final int fotor_text_rotation_right_button=0x7f020150;
public static final int fotor_text_shadow_bottom_button=0x7f020151;
public static final int fotor_text_shadow_left_button=0x7f020152;
public static final int fotor_text_shadow_right_button=0x7f020153;
public static final int fotor_text_size_minus_button=0x7f020154;
public static final int fotor_text_size_minus_default=0x7f020155;
public static final int fotor_text_size_minus_pressed=0x7f020156;
public static final int fotor_text_size_plus_button=0x7f020157;
public static final int fotor_text_size_plus_default=0x7f020158;
public static final int fotor_text_size_plus_pressed=0x7f020159;
public static final int fotor_text_style_bold_button=0x7f02015a;
public static final int fotor_text_style_italic_button=0x7f02015b;
public static final int fotor_text_texture1=0x7f02015c;
public static final int fotor_text_texture10=0x7f02015d;
public static final int fotor_text_texture11=0x7f02015e;
public static final int fotor_text_texture12=0x7f02015f;
public static final int fotor_text_texture13=0x7f020160;
public static final int fotor_text_texture14=0x7f020161;
public static final int fotor_text_texture15=0x7f020162;
public static final int fotor_text_texture16=0x7f020163;
public static final int fotor_text_texture17=0x7f020164;
public static final int fotor_text_texture18=0x7f020165;
public static final int fotor_text_texture19=0x7f020166;
public static final int fotor_text_texture2=0x7f020167;
public static final int fotor_text_texture20=0x7f020168;
public static final int fotor_text_texture3=0x7f020169;
public static final int fotor_text_texture4=0x7f02016a;
public static final int fotor_text_texture5=0x7f02016b;
public static final int fotor_text_texture6=0x7f02016c;
public static final int fotor_text_texture7=0x7f02016d;
public static final int fotor_text_texture8=0x7f02016e;
public static final int fotor_text_texture9=0x7f02016f;
public static final int fotor_text_typeface_art_default=0x7f020170;
public static final int fotor_text_typeface_art_pressed=0x7f020171;
public static final int fotor_text_typeface_button=0x7f020172;
public static final int fotor_text_typeface_charm_default=0x7f020173;
public static final int fotor_text_typeface_charm_pressed=0x7f020174;
public static final int fotor_text_typeface_classic_default=0x7f020175;
public static final int fotor_text_typeface_classic_pressed=0x7f020176;
public static final int fotor_text_typeface_default=0x7f020177;
public static final int fotor_text_typeface_happy_default=0x7f020178;
public static final int fotor_text_typeface_happy_pressed=0x7f020179;
public static final int fotor_text_typeface_pressed=0x7f02017a;
public static final int fotor_tilt_shift_blur_button=0x7f02017b;
public static final int fotor_tilt_shift_blur_default=0x7f02017c;
public static final int fotor_tilt_shift_blur_pressed=0x7f02017d;
public static final int fotor_tilt_shift_circle_button=0x7f02017e;
public static final int fotor_tilt_shift_circle_default=0x7f02017f;
public static final int fotor_tilt_shift_circle_pressed=0x7f020180;
public static final int fotor_tilt_shift_ellipse_button=0x7f020181;
public static final int fotor_tilt_shift_ellipse_default=0x7f020182;
public static final int fotor_tilt_shift_ellipse_pressed=0x7f020183;
public static final int fotor_tilt_shift_linear_button=0x7f020184;
public static final int fotor_tilt_shift_linear_default=0x7f020185;
public static final int fotor_tilt_shift_linear_pressed=0x7f020186;
public static final int fotor_tilt_shift_strength_button=0x7f020187;
public static final int fotor_tilt_shift_strength_default=0x7f020188;
public static final int fotor_tilt_shift_strength_pressed=0x7f020189;
public static final int fotor_title_back_btn_icon=0x7f02018a;
public static final int fotor_title_back_btn_icon_default=0x7f02018b;
public static final int fotor_title_back_btn_icon_pressed=0x7f02018c;
public static final int fotor_transparent=0x7f02018d;
public static final int ic_error=0x7f02018e;
public static final int ic_launcher=0x7f02018f;
public static final int icon=0x7f020190;
public static final int photo_editor_button_background=0x7f020191;
public static final int photo_editor_nophotos=0x7f020192;
}
public static final class id {
public static final int alwaysScroll=0x7f0a0002;
public static final int button2=0x7f0a0009;
public static final int button_gallery=0x7f0a0008;
public static final int disabled=0x7f0a0000;
public static final int fotor_action_settings=0x7f0a0082;
public static final int fotor_adjust_curve_reset_button=0x7f0a0015;
public static final int fotor_adjust_curve_toggle_button=0x7f0a0014;
public static final int fotor_adjust_pan_container=0x7f0a0017;
public static final int fotor_adjust_slider=0x7f0a001b;
public static final int fotor_adjust_slider_b=0x7f0a001a;
public static final int fotor_adjust_slider_g=0x7f0a0019;
public static final int fotor_adjust_slider_r=0x7f0a0018;
public static final int fotor_adjust_tools_container=0x7f0a0016;
public static final int fotor_camera_captureBtn=0x7f0a0010;
public static final int fotor_camera_focus_indicator=0x7f0a0011;
public static final int fotor_camera_footer_layout=0x7f0a000f;
public static final int fotor_camera_header_button=0x7f0a000e;
public static final int fotor_camera_header_layout=0x7f0a000d;
public static final int fotor_camera_main_layout=0x7f0a000a;
public static final int fotor_camera_preview=0x7f0a000c;
public static final int fotor_camera_preview_layout=0x7f0a000b;
public static final int fotor_content_layer=0x7f0a006f;
public static final int fotor_crop_btn_left_bottom=0x7f0a001e;
public static final int fotor_crop_btn_left_top=0x7f0a001d;
public static final int fotor_crop_btn_right_bottom=0x7f0a0020;
public static final int fotor_crop_btn_right_top=0x7f0a001f;
public static final int fotor_crop_buttons_container=0x7f0a001c;
public static final int fotor_crop_line_bottom=0x7f0a0022;
public static final int fotor_crop_line_left=0x7f0a0023;
public static final int fotor_crop_line_right=0x7f0a0024;
public static final int fotor_crop_line_top=0x7f0a0021;
public static final int fotor_crop_operation_container=0x7f0a0025;
public static final int fotor_crop_ratio_button=0x7f0a0029;
public static final int fotor_crop_restore=0x7f0a0028;
public static final int fotor_crop_slider=0x7f0a0027;
public static final int fotor_feature_draw_panel_container=0x7f0a0070;
public static final int fotor_feature_title=0x7f0a007d;
public static final int fotor_fitscreen_imageview=0x7f0a002f;
public static final int fotor_footerContainer=0x7f0a0075;
public static final int fotor_fx_effect_add=0x7f0a003b;
public static final int fotor_fx_effect_add_or_delete=0x7f0a003a;
public static final int fotor_fx_effect_blend_slider=0x7f0a0035;
public static final int fotor_fx_effect_category_container=0x7f0a002a;
public static final int fotor_fx_effect_category_listview=0x7f0a002b;
public static final int fotor_fx_effect_category_loading_container=0x7f0a002c;
public static final int fotor_fx_effect_category_loading_pb=0x7f0a003e;
public static final int fotor_fx_effect_container=0x7f0a002d;
public static final int fotor_fx_effect_effects_listview_item_imageview=0x7f0a0031;
public static final int fotor_fx_effect_effects_listview_item_progressbar=0x7f0a0033;
public static final int fotor_fx_effect_effects_listview_item_selector=0x7f0a0034;
public static final int fotor_fx_effect_effects_listview_item_textview=0x7f0a0032;
public static final int fotor_fx_effect_favorites=0x7f0a003d;
public static final int fotor_fx_effect_imageview=0x7f0a0030;
public static final int fotor_fx_effect_listview=0x7f0a002e;
public static final int fotor_fx_effect_minus=0x7f0a003c;
public static final int fotor_fx_effect_superposed_choose_container=0x7f0a0037;
public static final int fotor_fx_effect_superposed_choose_listview=0x7f0a0038;
public static final int fotor_fx_effect_superposed_container=0x7f0a0036;
public static final int fotor_fx_effect_superposed_listview=0x7f0a0039;
public static final int fotor_headerContainer=0x7f0a006e;
public static final int fotor_imageView=0x7f0a0071;
public static final int fotor_image_top_layer=0x7f0a0073;
public static final int fotor_lock_event_view=0x7f0a0077;
public static final int fotor_main_apply=0x7f0a0080;
public static final int fotor_main_btn_redo=0x7f0a007f;
public static final int fotor_main_btn_undo=0x7f0a007e;
public static final int fotor_main_header_text_container=0x7f0a007b;
public static final int fotor_main_loading_view=0x7f0a0072;
public static final int fotor_main_title=0x7f0a007c;
public static final int fotor_navigation_button=0x7f0a007a;
public static final int fotor_operation_tool_background=0x7f0a0026;
public static final int fotor_operation_tool_layer=0x7f0a0074;
public static final int fotor_operations_container=0x7f0a0079;
public static final int fotor_progress=0x7f0a0003;
public static final int fotor_progress_bar=0x7f0a0081;
public static final int fotor_rotate_pan_container=0x7f0a003f;
public static final int fotor_scenes_pan_container=0x7f0a0040;
public static final int fotor_screen_top_layer=0x7f0a0076;
public static final int fotor_scroll_linear_layout=0x7f0a0013;
public static final int fotor_scroll_view=0x7f0a0012;
public static final int fotor_sdk_version_label=0x7f0a0005;
public static final int fotor_secondaryProgress=0x7f0a0004;
public static final int fotor_stickers_button=0x7f0a0041;
public static final int fotor_stickers_category_container=0x7f0a0042;
public static final int fotor_stickers_category_listview=0x7f0a0043;
public static final int fotor_stickers_category_loading_container=0x7f0a0044;
public static final int fotor_stickers_stickers_container=0x7f0a0045;
public static final int fotor_stickers_stickers_listview=0x7f0a0046;
public static final int fotor_text_add_button=0x7f0a004a;
public static final int fotor_text_align_center_button=0x7f0a005a;
public static final int fotor_text_align_left_button=0x7f0a0059;
public static final int fotor_text_align_right_button=0x7f0a005b;
public static final int fotor_text_color_button=0x7f0a004f;
public static final int fotor_text_color_color_button=0x7f0a0047;
public static final int fotor_text_color_texture_button=0x7f0a0048;
public static final int fotor_text_colors_container=0x7f0a0049;
public static final int fotor_text_done_button=0x7f0a0051;
public static final int fotor_text_keyboard_button=0x7f0a004d;
public static final int fotor_text_navigation_panel=0x7f0a004c;
public static final int fotor_text_opacity_slider=0x7f0a005f;
public static final int fotor_text_operation_container=0x7f0a0052;
public static final int fotor_text_option_button=0x7f0a0050;
public static final int fotor_text_rotation_left_button=0x7f0a0055;
public static final int fotor_text_rotation_right_button=0x7f0a0056;
public static final int fotor_text_shadow_bottom_button=0x7f0a005d;
public static final int fotor_text_shadow_left_button=0x7f0a005c;
public static final int fotor_text_shadow_right_button=0x7f0a005e;
public static final int fotor_text_size_minus_button=0x7f0a0054;
public static final int fotor_text_size_plus_button=0x7f0a0053;
public static final int fotor_text_style_bold_button=0x7f0a0057;
public static final int fotor_text_style_italic_button=0x7f0a0058;
public static final int fotor_text_typeface_button=0x7f0a004e;
public static final int fotor_text_typeface_category_btn=0x7f0a0060;
public static final int fotor_text_typeface_category_list=0x7f0a0065;
public static final int fotor_text_typeface_category_lock=0x7f0a0061;
public static final int fotor_text_typeface_imageview=0x7f0a0064;
public static final int fotor_text_typeface_item=0x7f0a0062;
public static final int fotor_text_typeface_list=0x7f0a0066;
public static final int fotor_text_typeface_textview=0x7f0a0063;
public static final int fotor_texts_category_loading_container=0x7f0a004b;
public static final int fotor_tilt_shift_circle=0x7f0a0067;
public static final int fotor_tilt_shift_ellipse=0x7f0a0069;
public static final int fotor_tilt_shift_gradient=0x7f0a006a;
public static final int fotor_tilt_shift_linear=0x7f0a0068;
public static final int fotor_tilt_shift_slider=0x7f0a006c;
public static final int fotor_tilt_shift_strength=0x7f0a006b;
public static final int fotor_tools_container=0x7f0a0078;
public static final int fotor_zoom_imageview=0x7f0a006d;
public static final int image=0x7f0a0007;
public static final int image_container=0x7f0a0006;
public static final int normal=0x7f0a0001;
}
public static final class integer {
public static final int fotor_anim_medium_duration=0x7f070001;
public static final int fotor_anim_short_duration=0x7f070000;
public static final int fotor_default_slider_adjustDistance=0x7f070002;
}
public static final class layout {
public static final int activity_main=0x7f030000;
public static final int fotor_camera_main=0x7f030001;
public static final int fotor_default_bottom_layout=0x7f030002;
public static final int fotor_feature_adjust_operation_curve_controller=0x7f030003;
public static final int fotor_feature_adjust_operation_panel=0x7f030004;
public static final int fotor_feature_adjust_operation_rgb_tools=0x7f030005;
public static final int fotor_feature_adjust_operation_tools=0x7f030006;
public static final int fotor_feature_border_effect_operation_panel=0x7f030007;
public static final int fotor_feature_crop_maskview=0x7f030008;
public static final int fotor_feature_crop_operation_panel=0x7f030009;
public static final int fotor_feature_crop_operation_tools=0x7f03000a;
public static final int fotor_feature_crop_ratio_item=0x7f03000b;
public static final int fotor_feature_effect_operation_panel=0x7f03000c;
public static final int fotor_feature_enhance_operation_panel=0x7f03000d;
public static final int fotor_feature_fitscreen_draw_panel=0x7f03000e;
public static final int fotor_feature_fx_effect_draw_panel=0x7f03000f;
public static final int fotor_feature_fx_effect_effects_listview_item=0x7f030010;
public static final int fotor_feature_fx_effect_operation_blend_tools=0x7f030011;
public static final int fotor_feature_fx_effect_operation_panel=0x7f030012;
public static final int fotor_feature_fx_effect_operation_superposed_tools=0x7f030013;
public static final int fotor_feature_fx_effect_operation_tools=0x7f030014;
public static final int fotor_feature_operation_loading_component=0x7f030015;
public static final int fotor_feature_rotate_operation_panel=0x7f030016;
public static final int fotor_feature_scenes_operation_panel=0x7f030017;
public static final int fotor_feature_stickers_item=0x7f030018;
public static final int fotor_feature_stickers_operation_panel=0x7f030019;
public static final int fotor_feature_text_color_panel=0x7f03001a;
public static final int fotor_feature_text_operation_panel=0x7f03001b;
public static final int fotor_feature_text_operation_tools=0x7f03001c;
public static final int fotor_feature_text_option_panel=0x7f03001d;
public static final int fotor_feature_text_typeface_category_item=0x7f03001e;
public static final int fotor_feature_text_typeface_item=0x7f03001f;
public static final int fotor_feature_text_typeface_panel=0x7f030020;
public static final int fotor_feature_tilt_shift_operation_panel=0x7f030021;
public static final int fotor_feature_tilt_shift_operation_tools=0x7f030022;
public static final int fotor_feature_zoom_draw_panel=0x7f030023;
public static final int fotor_loading_progress_medium=0x7f030024;
public static final int fotor_main=0x7f030025;
public static final int fotor_main_footer=0x7f030026;
public static final int fotor_main_footer_item=0x7f030027;
public static final int fotor_main_header=0x7f030028;
public static final int fotor_main_loadding=0x7f030029;
public static final int fotor_progress_medium=0x7f03002a;
}
public static final class menu {
public static final int fotor_camera_menu=0x7f0c0000;
}
public static final class raw {
public static final int basefilter=0x7f050000;
public static final int optimization=0x7f050001;
public static final int temporary=0x7f050002;
}
public static final class string {
public static final int action_settings=0x7f090070;
public static final int app_name=0x7f09006f;
public static final int fotor_adjust_brightness=0x7f09001f;
public static final int fotor_adjust_contrast=0x7f090020;
public static final int fotor_adjust_curve=0x7f090029;
public static final int fotor_adjust_curve_hide=0x7f09002b;
public static final int fotor_adjust_curve_reset=0x7f09002c;
public static final int fotor_adjust_curve_show=0x7f09002a;
public static final int fotor_adjust_highlight=0x7f090025;
public static final int fotor_adjust_rgb=0x7f090028;
public static final int fotor_adjust_saturation=0x7f090021;
public static final int fotor_adjust_shadow=0x7f090024;
public static final int fotor_adjust_sharpen=0x7f090022;
public static final int fotor_adjust_temp=0x7f090026;
public static final int fotor_adjust_tint=0x7f090027;
public static final int fotor_adjust_vignette=0x7f090023;
/** Fotor common strings
*/
public static final int fotor_back=0x7f09005a;
public static final int fotor_crop_10_8=0x7f090049;
public static final int fotor_crop_16_9=0x7f09004b;
public static final int fotor_crop_1_1=0x7f090042;
public static final int fotor_crop_3_4=0x7f090044;
public static final int fotor_crop_4_3=0x7f090043;
public static final int fotor_crop_4_6=0x7f090046;
public static final int fotor_crop_5_7=0x7f090048;
public static final int fotor_crop_6_4=0x7f090045;
public static final int fotor_crop_7_5=0x7f090047;
public static final int fotor_crop_8_10=0x7f09004a;
public static final int fotor_crop_9_16=0x7f09004c;
public static final int fotor_crop_free=0x7f090040;
public static final int fotor_crop_original=0x7f090041;
public static final int fotor_dialog_alert_message_plugin_update=0x7f090069;
public static final int fotor_dialog_alert_message_save=0x7f09006b;
public static final int fotor_dialog_alert_negative_save=0x7f09006c;
public static final int fotor_dialog_alert_positive_save=0x7f09006d;
public static final int fotor_dialog_alert_title_plugin_update=0x7f09006e;
/** Fotor dialog text
*/
public static final int fotor_dialog_alert_title_save=0x7f09006a;
public static final int fotor_effect_border_pack_gallery=0x7f090007;
public static final int fotor_effect_border_pack_simple=0x7f090005;
public static final int fotor_effect_border_pack_styled=0x7f090006;
public static final int fotor_effect_fx_pack_analog=0x7f090000;
public static final int fotor_effect_fx_pack_lomo=0x7f090004;
public static final int fotor_effect_fx_pack_oldpicture=0x7f090001;
public static final int fotor_effect_fx_pack_retro=0x7f090002;
public static final int fotor_effect_fx_pack_vintage=0x7f090003;
public static final int fotor_effect_store=0x7f090068;
public static final int fotor_enhance_high=0x7f090059;
public static final int fotor_enhance_low=0x7f090057;
public static final int fotor_enhance_medium=0x7f090058;
public static final int fotor_favorites=0x7f09005d;
public static final int fotor_feature_adjust=0x7f090012;
public static final int fotor_feature_adjust_advance=0x7f090013;
public static final int fotor_feature_border=0x7f090015;
public static final int fotor_feature_crop=0x7f090016;
public static final int fotor_feature_enhance=0x7f090010;
public static final int fotor_feature_fx_effects=0x7f090014;
public static final int fotor_feature_rotate=0x7f090017;
public static final int fotor_feature_scenes=0x7f090011;
public static final int fotor_feature_stickers=0x7f090018;
public static final int fotor_feature_text=0x7f09001a;
public static final int fotor_feature_tilt_shift=0x7f090019;
public static final int fotor_font_assets_path=0x7f090056;
public static final int fotor_font_roboto_bold=0x7f090054;
public static final int fotor_font_roboto_bold_name=0x7f090055;
public static final int fotor_font_roboto_light=0x7f090052;
public static final int fotor_font_roboto_light_name=0x7f090053;
public static final int fotor_fonts_pack_charm=0x7f090009;
public static final int fotor_fonts_pack_classic=0x7f090008;
public static final int fotor_loading=0x7f09005b;
public static final int fotor_main_apply=0x7f09001c;
public static final int fotor_main_cancel=0x7f09001b;
public static final int fotor_main_redo=0x7f09001e;
public static final int fotor_main_undo=0x7f09001d;
public static final int fotor_original=0x7f09005c;
public static final int fotor_rotate_fliph=0x7f090030;
public static final int fotor_rotate_flipv=0x7f09002f;
public static final int fotor_rotate_left=0x7f09002d;
public static final int fotor_rotate_right=0x7f09002e;
public static final int fotor_scenes_auto=0x7f090032;
public static final int fotor_scenes_backlit=0x7f090033;
public static final int fotor_scenes_cloudy=0x7f090035;
public static final int fotor_scenes_darken=0x7f090034;
public static final int fotor_scenes_flash=0x7f090039;
public static final int fotor_scenes_fluorescent=0x7f09003a;
public static final int fotor_scenes_food=0x7f09003f;
public static final int fotor_scenes_landscape=0x7f09003d;
public static final int fotor_scenes_night=0x7f090038;
public static final int fotor_scenes_original=0x7f090031;
public static final int fotor_scenes_portrait=0x7f09003b;
public static final int fotor_scenes_sand_snow=0x7f09003c;
public static final int fotor_scenes_shade=0x7f090036;
public static final int fotor_scenes_sunset=0x7f090037;
public static final int fotor_scenes_theatre=0x7f09003e;
public static final int fotor_stickers_abstract=0x7f090066;
public static final int fotor_stickers_boom=0x7f090067;
public static final int fotor_stickers_pack_boom=0x7f09000b;
public static final int fotor_stickers_pack_decoration=0x7f09000c;
public static final int fotor_stickers_pack_love=0x7f09000d;
public static final int fotor_stickers_pack_party=0x7f09000e;
public static final int fotor_stickers_pack_text=0x7f09000a;
public static final int fotor_text_add_btn=0x7f09005e;
public static final int fotor_text_alignment=0x7f090063;
public static final int fotor_text_default_text=0x7f09005f;
public static final int fotor_text_opacity=0x7f090065;
public static final int fotor_text_rotation=0x7f090061;
public static final int fotor_text_shadow=0x7f090064;
public static final int fotor_text_style=0x7f090062;
public static final int fotor_text_textsize=0x7f090060;
public static final int fotor_tilt_shift_circle=0x7f09004f;
public static final int fotor_tilt_shift_ellipse=0x7f090051;
public static final int fotor_tilt_shift_gradient=0x7f09004d;
public static final int fotor_tilt_shift_linear=0x7f090050;
public static final int fotor_tilt_shift_strength=0x7f09004e;
public static final int fotor_title_main=0x7f09000f;
public static final int hello_world=0x7f090071;
public static final int photo_editor=0x7f090072;
public static final int photo_editor_process=0x7f090074;
public static final int photo_editor_select_image=0x7f090073;
}
public static final class style {
/**
Base application theme, dependent on API level. This theme is replaced
by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
Theme customizations available in newer API levels can go in
res/values-vXX/styles.xml, while customizations related to
backward-compatibility can go here.
Base application theme for API 11+. This theme completely replaces
AppBaseTheme from res/values/styles.xml on API 11+ devices.
API 11 theme customizations can go here.
Base application theme for API 14+. This theme completely replaces
AppBaseTheme from BOTH res/values/styles.xml and
res/values-v11/styles.xml on API 14+ devices.
API 14 theme customizations can go here.
*/
public static final int AppBaseTheme=0x7f0b000b;
/** Application theme.
All customizations that are NOT specific to a particular API-level can go here.
*/
public static final int AppTheme=0x7f0b000c;
/**
Base application theme for API 14+. This theme completely replaces
AppBaseTheme from BOTH res/values/styles.xml and
res/values-v11/styles.xml on API 14+ devices.
API 14 theme customizations can go here.
*/
public static final int FotorBaseTheme=0x7f0b0009;
public static final int FotorCustomSliderDefault=0x7f0b0001;
public static final int FotorTheme=0x7f0b000a;
public static final int FotorWidget=0x7f0b0000;
public static final int FotorWidget_EffectSelectorView=0x7f0b0007;
public static final int FotorWidget_NavigationButton=0x7f0b0002;
public static final int FotorWidget_TextButton=0x7f0b0006;
public static final int FotorWidget_TextView=0x7f0b0005;
public static final int FotorWidget_TitleBackButton=0x7f0b0008;
public static final int fotorHeaderButtonDefault=0x7f0b0004;
public static final int fotorOperToolPanelDefault=0x7f0b0003;
}
public static final class styleable {
/** Attributes that can be used with a AbsHListView.
This symbol is the offset where the {@link android.R.attr#cacheColorHint}
attribute's value can be found in the {@link #AbsHListView} array.
@attr name android:cacheColorHint
*/
public static final int AbsHListView_android_cacheColorHint = 3;
/**
This symbol is the offset where the {@link android.R.attr#choiceMode}
attribute's value can be found in the {@link #AbsHListView} array.
@attr name android:choiceMode
*/
public static final int AbsHListView_android_choiceMode = 4;
/**
This symbol is the offset where the {@link android.R.attr#drawSelectorOnTop}
attribute's value can be found in the {@link #AbsHListView} array.
@attr name android:drawSelectorOnTop
*/
public static final int AbsHListView_android_drawSelectorOnTop = 1;
/**
This symbol is the offset where the {@link android.R.attr#listSelector}
attribute's value can be found in the {@link #AbsHListView} array.
@attr name android:listSelector
*/
public static final int AbsHListView_android_listSelector = 0;
/**
This symbol is the offset where the {@link android.R.attr#scrollingCache}
attribute's value can be found in the {@link #AbsHListView} array.
@attr name android:scrollingCache
*/
public static final int AbsHListView_android_scrollingCache = 2;
/**
This symbol is the offset where the {@link android.R.attr#smoothScrollbar}
attribute's value can be found in the {@link #AbsHListView} array.
@attr name android:smoothScrollbar
*/
public static final int AbsHListView_android_smoothScrollbar = 5;
/**
This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#stackFromRight}
attribute's value can be found in the {@link #AbsHListView} array.
Must be a boolean value, either "true" or "false".
This may also be a reference to a resource (in the form
"@[package:]type:name") or
theme attribute (in the form
"?[package:][type:]name")
containing a value of this type.
@attr name com.example.fotorsdkdemo:stackFromRight
*/
public static final int AbsHListView_stackFromRight = 6;
/**
This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#transcriptMode}
attribute's value can be found in the {@link #AbsHListView} array.
Must be one of the following constant values.
Constant
Value
Description
disabled
0
normal
1
alwaysScroll
2
@attr name com.example.fotorsdkdemo:transcriptMode
*/
public static final int AbsHListView_transcriptMode = 7;
/** Attributes that can be used with a FotorCustomSlider.
This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorCustomSlider_adjustYDistance}
attribute's value can be found in the {@link #FotorCustomSlider} array.
Must be an integer value, such as "100".
This may also be a reference to a resource (in the form
"@[package:]type:name") or
theme attribute (in the form
"?[package:][type:]name")
containing a value of this type.
@attr name com.example.fotorsdkdemo:fotorCustomSlider_adjustYDistance
*/
public static final int FotorCustomSlider_fotorCustomSlider_adjustYDistance = 0;
/**
This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorCustomSlider_isShowValue}
attribute's value can be found in the {@link #FotorCustomSlider} array.
Must be a boolean value, either "true" or "false".
This may also be a reference to a resource (in the form
"@[package:]type:name") or
theme attribute (in the form
"?[package:][type:]name")
containing a value of this type.
@attr name com.example.fotorsdkdemo:fotorCustomSlider_isShowValue
*/
public static final int FotorCustomSlider_fotorCustomSlider_isShowValue = 1;
/**
This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorCustomSlider_max}
attribute's value can be found in the {@link #FotorCustomSlider} array.
Must be an integer value, such as "100".
This may also be a reference to a resource (in the form
"@[package:]type:name") or
theme attribute (in the form
"?[package:][type:]name")
containing a value of this type.
@attr name com.example.fotorsdkdemo:fotorCustomSlider_max
*/
public static final int FotorCustomSlider_fotorCustomSlider_max = 6;
/**
This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorCustomSlider_progress}
attribute's value can be found in the {@link #FotorCustomSlider} array.
Must be an integer value, such as "100".
This may also be a reference to a resource (in the form
"@[package:]type:name") or
theme attribute (in the form
"?[package:][type:]name")
containing a value of this type.
@attr name com.example.fotorsdkdemo:fotorCustomSlider_progress
*/
public static final int FotorCustomSlider_fotorCustomSlider_progress = 7;
/**
This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorCustomSlider_progressDrawable}
attribute's value can be found in the {@link #FotorCustomSlider} array.
Must be a reference to another resource, in the form "@[+][package:]type:name"
or to a theme attribute in the form "?[package:][type:]name".
@attr name com.example.fotorsdkdemo:fotorCustomSlider_progressDrawable
*/
public static final int FotorCustomSlider_fotorCustomSlider_progressDrawable = 5;
/**
This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorCustomSlider_thumb}
attribute's value can be found in the {@link #FotorCustomSlider} array.
Must be a reference to another resource, in the form "@[+][package:]type:name"
or to a theme attribute in the form "?[package:][type:]name".
@attr name com.example.fotorsdkdemo:fotorCustomSlider_thumb
*/
public static final int FotorCustomSlider_fotorCustomSlider_thumb = 3;
/**
This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorCustomSlider_typeface}
attribute's value can be found in the {@link #FotorCustomSlider} array.
Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.
This may also be a reference to a resource (in the form
"@[package:]type:name") or
theme attribute (in the form
"?[package:][type:]name")
containing a value of this type.
@attr name com.example.fotorsdkdemo:fotorCustomSlider_typeface
*/
public static final int FotorCustomSlider_fotorCustomSlider_typeface = 4;
/**
This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorCustomSlider_valueBackground}
attribute's value can be found in the {@link #FotorCustomSlider} array.
Must be a reference to another resource, in the form "@[+][package:]type:name"
or to a theme attribute in the form "?[package:][type:]name".
@attr name com.example.fotorsdkdemo:fotorCustomSlider_valueBackground
*/
public static final int FotorCustomSlider_fotorCustomSlider_valueBackground = 2;
/** Attributes that can be used with a FotorEffectSelectorView.
@see #FotorEffectSelectorView_fotorEffectSelectorView_Color
*/
public static final int[] FotorEffectSelectorView = {
0x7f010026
};
/**
This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorEffectSelectorView_Color}
attribute's value can be found in the {@link #FotorEffectSelectorView} array.
Must be a color value, in the form of "#rgb", "#argb",
"#rrggbb", or "#aarrggbb".
This may also be a reference to a resource (in the form
"@[package:]type:name") or
theme attribute (in the form
"?[package:][type:]name")
containing a value of this type.
@attr name com.example.fotorsdkdemo:fotorEffectSelectorView_Color
*/
public static final int FotorEffectSelectorView_fotorEffectSelectorView_Color = 0;
/** Attributes that can be used with a FotorHeaderButton.
@see #FotorHeaderButton_fotorHeaderButton_typeface
*/
public static final int[] FotorHeaderButton = {
0x7f010025
};
/**
This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorHeaderButton_typeface}
attribute's value can be found in the {@link #FotorHeaderButton} array.
Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.
This may also be a reference to a resource (in the form
"@[package:]type:name") or
theme attribute (in the form
"?[package:][type:]name")
containing a value of this type.
@attr name com.example.fotorsdkdemo:fotorHeaderButton_typeface
*/
public static final int FotorHeaderButton_fotorHeaderButton_typeface = 0;
/** Attributes that can be used with a FotorNavigationButton.
This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorNavigationBtn_color_default}
attribute's value can be found in the {@link #FotorNavigationButton} array.
Must be a color value, in the form of "#rgb", "#argb",
"#rrggbb", or "#aarrggbb".
This may also be a reference to a resource (in the form
"@[package:]type:name") or
theme attribute (in the form
"?[package:][type:]name")
containing a value of this type.
@attr name com.example.fotorsdkdemo:fotorNavigationBtn_color_default
*/
public static final int FotorNavigationButton_fotorNavigationBtn_color_default = 3;
/**
This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorNavigationBtn_color_disabled}
attribute's value can be found in the {@link #FotorNavigationButton} array.
Must be a color value, in the form of "#rgb", "#argb",
"#rrggbb", or "#aarrggbb".
This may also be a reference to a resource (in the form
"@[package:]type:name") or
theme attribute (in the form
"?[package:][type:]name")
containing a value of this type.
@attr name com.example.fotorsdkdemo:fotorNavigationBtn_color_disabled
*/
public static final int FotorNavigationButton_fotorNavigationBtn_color_disabled = 5;
/**
This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorNavigationBtn_color_pressed}
attribute's value can be found in the {@link #FotorNavigationButton} array.
Must be a color value, in the form of "#rgb", "#argb",
"#rrggbb", or "#aarrggbb".
This may also be a reference to a resource (in the form
"@[package:]type:name") or
theme attribute (in the form
"?[package:][type:]name")
containing a value of this type.
@attr name com.example.fotorsdkdemo:fotorNavigationBtn_color_pressed
*/
public static final int FotorNavigationButton_fotorNavigationBtn_color_pressed = 4;
/**
This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorNavigationBtn_isShowPressedBackground}
attribute's value can be found in the {@link #FotorNavigationButton} array.
Must be a boolean value, either "true" or "false".
This may also be a reference to a resource (in the form
"@[package:]type:name") or
theme attribute (in the form
"?[package:][type:]name")
containing a value of this type.
@attr name com.example.fotorsdkdemo:fotorNavigationBtn_isShowPressedBackground
*/
public static final int FotorNavigationButton_fotorNavigationBtn_isShowPressedBackground = 0;
/**
This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorNavigationBtn_pressed_background}
attribute's value can be found in the {@link #FotorNavigationButton} array.
Must be a color value, in the form of "#rgb", "#argb",
"#rrggbb", or "#aarrggbb".
This may also be a reference to a resource (in the form
"@[package:]type:name") or
theme attribute (in the form
"?[package:][type:]name")
containing a value of this type.
@attr name com.example.fotorsdkdemo:fotorNavigationBtn_pressed_background
*/
public static final int FotorNavigationButton_fotorNavigationBtn_pressed_background = 6;
/**
This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorNavigationBtn_text}
attribute's value can be found in the {@link #FotorNavigationButton} array.
Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.
This may also be a reference to a resource (in the form
"@[package:]type:name") or
theme attribute (in the form
"?[package:][type:]name")
containing a value of this type.
@attr name com.example.fotorsdkdemo:fotorNavigationBtn_text
*/
public static final int FotorNavigationButton_fotorNavigationBtn_text = 1;
/**
This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorNavigationBtn_typeface}
attribute's value can be found in the {@link #FotorNavigationButton} array.
Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.
This may also be a reference to a resource (in the form
"@[package:]type:name") or
theme attribute (in the form
"?[package:][type:]name")
containing a value of this type.
@attr name com.example.fotorsdkdemo:fotorNavigationBtn_typeface
*/
public static final int FotorNavigationButton_fotorNavigationBtn_typeface = 2;
/** Attributes that can be used with a FotorOperToolPanel.
@see #FotorOperToolPanel_fotorOperToolPanel_bottomLine_Color
*/
public static final int[] FotorOperToolPanel = {
0x7f010024
};
/**
This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorOperToolPanel_bottomLine_Color}
attribute's value can be found in the {@link #FotorOperToolPanel} array.
Must be a color value, in the form of "#rgb", "#argb",
"#rrggbb", or "#aarrggbb".
This may also be a reference to a resource (in the form
"@[package:]type:name") or
theme attribute (in the form
"?[package:][type:]name")
containing a value of this type.
@attr name com.example.fotorsdkdemo:fotorOperToolPanel_bottomLine_Color
*/
public static final int FotorOperToolPanel_fotorOperToolPanel_bottomLine_Color = 0;
/** Attributes that can be used with a FotorTextButton.
@see #FotorTextButton_fotorTextButton_typeface
*/
public static final int[] FotorTextButton = {
0x7f010014
};
/**
This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorTextButton_typeface}
attribute's value can be found in the {@link #FotorTextButton} array.
Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.
This may also be a reference to a resource (in the form
"@[package:]type:name") or
theme attribute (in the form
"?[package:][type:]name")
containing a value of this type.
@attr name com.example.fotorsdkdemo:fotorTextButton_typeface
*/
public static final int FotorTextButton_fotorTextButton_typeface = 0;
/** Attributes that can be used with a FotorTextView.
@see #FotorTextView_fotorTextView_typeface
*/
public static final int[] FotorTextView = {
0x7f010013
};
/**
This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorTextView_typeface}
attribute's value can be found in the {@link #FotorTextView} array.
Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.
This may also be a reference to a resource (in the form
"@[package:]type:name") or
theme attribute (in the form
"?[package:][type:]name")
containing a value of this type.
@attr name com.example.fotorsdkdemo:fotorTextView_typeface
*/
public static final int FotorTextView_fotorTextView_typeface = 0;
/** Attributes that can be used with a FotorTitleBackButton.
This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorTitleBackButton_IconDrawable}
attribute's value can be found in the {@link #FotorTitleBackButton} array.
Must be a reference to another resource, in the form "@[+][package:]type:name"
or to a theme attribute in the form "?[package:][type:]name".
@attr name com.example.fotorsdkdemo:fotorTitleBackButton_IconDrawable
*/
public static final int FotorTitleBackButton_fotorTitleBackButton_IconDrawable = 3;
/**
This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorTitleBackButton_Text}
attribute's value can be found in the {@link #FotorTitleBackButton} array.
Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.
This may also be a reference to a resource (in the form
"@[package:]type:name") or
theme attribute (in the form
"?[package:][type:]name")
containing a value of this type.
@attr name com.example.fotorsdkdemo:fotorTitleBackButton_Text
*/
public static final int FotorTitleBackButton_fotorTitleBackButton_Text = 1;
/**
This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorTitleBackButton_TextColor}
attribute's value can be found in the {@link #FotorTitleBackButton} array.
May be a reference to another resource, in the form "@[+][package:]type:name"
or to a theme attribute in the form "?[package:][type:]name".
May be a color value, in the form of "#rgb", "#argb",
"#rrggbb", or "#aarrggbb".
@attr name com.example.fotorsdkdemo:fotorTitleBackButton_TextColor
*/
public static final int FotorTitleBackButton_fotorTitleBackButton_TextColor = 2;
/**
This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorTitleBackButton_Textsize}
attribute's value can be found in the {@link #FotorTitleBackButton} array.
Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp".
Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size),
in (inches), mm (millimeters).
This may also be a reference to a resource (in the form
"@[package:]type:name") or
theme attribute (in the form
"?[package:][type:]name")
containing a value of this type.
@attr name com.example.fotorsdkdemo:fotorTitleBackButton_Textsize
*/
public static final int FotorTitleBackButton_fotorTitleBackButton_Textsize = 0;
/**
This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorTitleBackButton_Typeface}
attribute's value can be found in the {@link #FotorTitleBackButton} array.
Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.
This may also be a reference to a resource (in the form
"@[package:]type:name") or
theme attribute (in the form
"?[package:][type:]name")
containing a value of this type.
@attr name com.example.fotorsdkdemo:fotorTitleBackButton_Typeface
*/
public static final int FotorTitleBackButton_fotorTitleBackButton_Typeface = 4;
/** Attributes that can be used with a HListView.
This symbol is the offset where the {@link android.R.attr#divider}
attribute's value can be found in the {@link #HListView} array.
@attr name android:divider
*/
public static final int HListView_android_divider = 1;
/**
This symbol is the offset where the {@link android.R.attr#entries}
attribute's value can be found in the {@link #HListView} array.
@attr name android:entries
*/
public static final int HListView_android_entries = 0;
/**
This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#dividerWidth}
attribute's value can be found in the {@link #HListView} array.
Must be a dimension value, which is a floating point number appended with a unit such as "14.5sp".
Available units are: px (pixels), dp (density-independent pixels), sp (scaled pixels based on preferred font size),
in (inches), mm (millimeters).
This may also be a reference to a resource (in the form
"@[package:]type:name") or
theme attribute (in the form
"?[package:][type:]name")
containing a value of this type.
@attr name com.example.fotorsdkdemo:dividerWidth
*/
public static final int HListView_dividerWidth = 2;
/**
This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#footerDividersEnabled}
attribute's value can be found in the {@link #HListView} array.
Must be a boolean value, either "true" or "false".
This may also be a reference to a resource (in the form
"@[package:]type:name") or
theme attribute (in the form
"?[package:][type:]name")
containing a value of this type.
@attr name com.example.fotorsdkdemo:footerDividersEnabled
*/
public static final int HListView_footerDividersEnabled = 4;
/**
This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#headerDividersEnabled}
attribute's value can be found in the {@link #HListView} array.
Must be a boolean value, either "true" or "false".
This may also be a reference to a resource (in the form
"@[package:]type:name") or
theme attribute (in the form
"?[package:][type:]name")
containing a value of this type.
@attr name com.example.fotorsdkdemo:headerDividersEnabled
*/
public static final int HListView_headerDividersEnabled = 3;
/**
@attr description
When "wrap_content" is used as value of the layout_height property.
Pass the position, inside the adapter, of the view being used to measure the view
or '-1' to use the default behavior ( default is -1 )
Must be an integer value, such as "100".
This may also be a reference to a resource (in the form
"@[package:]type:name") or
theme attribute (in the form
"?[package:][type:]name")
containing a value of this type.
This is a private symbol.
@attr name com.example.fotorsdkdemo:measureWithChild
*/
public static final int HListView_measureWithChild = 7;
/**
This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#overScrollFooter}
attribute's value can be found in the {@link #HListView} array.
May be a reference to another resource, in the form "@[+][package:]type:name"
or to a theme attribute in the form "?[package:][type:]name".
May be a color value, in the form of "#rgb", "#argb",
"#rrggbb", or "#aarrggbb".
@attr name com.example.fotorsdkdemo:overScrollFooter
*/
public static final int HListView_overScrollFooter = 6;
/**
This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#overScrollHeader}
attribute's value can be found in the {@link #HListView} array.
May be a reference to another resource, in the form "@[+][package:]type:name"
or to a theme attribute in the form "?[package:][type:]name".
May be a color value, in the form of "#rgb", "#argb",
"#rrggbb", or "#aarrggbb".
@attr name com.example.fotorsdkdemo:overScrollHeader
*/
public static final int HListView_overScrollHeader = 5;
/** Attributes that can be used with a Theme.
This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorDefaultEffectSelectorViewStyle}
attribute's value can be found in the {@link #Theme} array.
Must be a reference to another resource, in the form "@[+][package:]type:name"
or to a theme attribute in the form "?[package:][type:]name".
@attr name com.example.fotorsdkdemo:fotorDefaultEffectSelectorViewStyle
*/
public static final int Theme_fotorDefaultEffectSelectorViewStyle = 17;
/**
This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorDefaultHeaderButtonStyle}
attribute's value can be found in the {@link #Theme} array.
Must be a reference to another resource, in the form "@[+][package:]type:name"
or to a theme attribute in the form "?[package:][type:]name".
@attr name com.example.fotorsdkdemo:fotorDefaultHeaderButtonStyle
*/
public static final int Theme_fotorDefaultHeaderButtonStyle = 16;
/**
This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorDefaultImageViewBackground}
attribute's value can be found in the {@link #Theme} array.
Must be a reference to another resource, in the form "@[+][package:]type:name"
or to a theme attribute in the form "?[package:][type:]name".
@attr name com.example.fotorsdkdemo:fotorDefaultImageViewBackground
*/
public static final int Theme_fotorDefaultImageViewBackground = 14;
/**
This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorDefaultNavigateBtnStyle}
attribute's value can be found in the {@link #Theme} array.
Must be a reference to another resource, in the form "@[+][package:]type:name"
or to a theme attribute in the form "?[package:][type:]name".
@attr name com.example.fotorsdkdemo:fotorDefaultNavigateBtnStyle
*/
public static final int Theme_fotorDefaultNavigateBtnStyle = 13;
/**
This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorDefaultOperToolPanelStyle}
attribute's value can be found in the {@link #Theme} array.
Must be a reference to another resource, in the form "@[+][package:]type:name"
or to a theme attribute in the form "?[package:][type:]name".
@attr name com.example.fotorsdkdemo:fotorDefaultOperToolPanelStyle
*/
public static final int Theme_fotorDefaultOperToolPanelStyle = 15;
/**
@attr description
default slider adjustDistance
Must be a reference to another resource, in the form "@[+][package:]type:name"
or to a theme attribute in the form "?[package:][type:]name".
This is a private symbol.
@attr name com.example.fotorsdkdemo:fotorDefaultSliderStyle
*/
public static final int Theme_fotorDefaultSliderStyle = 12;
/**
This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorDefaultTextButtonStyle}
attribute's value can be found in the {@link #Theme} array.
Must be a reference to another resource, in the form "@[+][package:]type:name"
or to a theme attribute in the form "?[package:][type:]name".
@attr name com.example.fotorsdkdemo:fotorDefaultTextButtonStyle
*/
public static final int Theme_fotorDefaultTextButtonStyle = 11;
/**
@attr description
default text style
Must be a reference to another resource, in the form "@[+][package:]type:name"
or to a theme attribute in the form "?[package:][type:]name".
This is a private symbol.
@attr name com.example.fotorsdkdemo:fotorDefaultTextViewStyle
*/
public static final int Theme_fotorDefaultTextViewStyle = 10;
/**
This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorDefaultTitleBackButtonStyle}
attribute's value can be found in the {@link #Theme} array.
Must be a reference to another resource, in the form "@[+][package:]type:name"
or to a theme attribute in the form "?[package:][type:]name".
@attr name com.example.fotorsdkdemo:fotorDefaultTitleBackButtonStyle
*/
public static final int Theme_fotorDefaultTitleBackButtonStyle = 18;
/**
This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorFontBold}
attribute's value can be found in the {@link #Theme} array.
Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.
This may also be a reference to a resource (in the form
"@[package:]type:name") or
theme attribute (in the form
"?[package:][type:]name")
containing a value of this type.
@attr name com.example.fotorsdkdemo:fotorFontBold
*/
public static final int Theme_fotorFontBold = 0;
/**
This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorFontLight}
attribute's value can be found in the {@link #Theme} array.
Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.
This may also be a reference to a resource (in the form
"@[package:]type:name") or
theme attribute (in the form
"?[package:][type:]name")
containing a value of this type.
@attr name com.example.fotorsdkdemo:fotorFontLight
*/
public static final int Theme_fotorFontLight = 1;
/**
This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorMainBottomHeight}
attribute's value can be found in the {@link #Theme} array.
Must be a reference to another resource, in the form "@[+][package:]type:name"
or to a theme attribute in the form "?[package:][type:]name".
@attr name com.example.fotorsdkdemo:fotorMainBottomHeight
*/
public static final int Theme_fotorMainBottomHeight = 2;
/**
This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorMainFooterBackground}
attribute's value can be found in the {@link #Theme} array.
Must be a reference to another resource, in the form "@[+][package:]type:name"
or to a theme attribute in the form "?[package:][type:]name".
@attr name com.example.fotorsdkdemo:fotorMainFooterBackground
*/
public static final int Theme_fotorMainFooterBackground = 6;
/**
This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorMainHeaderBackground}
attribute's value can be found in the {@link #Theme} array.
Must be a reference to another resource, in the form "@[+][package:]type:name"
or to a theme attribute in the form "?[package:][type:]name".
@attr name com.example.fotorsdkdemo:fotorMainHeaderBackground
*/
public static final int Theme_fotorMainHeaderBackground = 7;
/**
This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorMainHeaderHeight}
attribute's value can be found in the {@link #Theme} array.
Must be a reference to another resource, in the form "@[+][package:]type:name"
or to a theme attribute in the form "?[package:][type:]name".
@attr name com.example.fotorsdkdemo:fotorMainHeaderHeight
*/
public static final int Theme_fotorMainHeaderHeight = 4;
/**
This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorMainToolPanelBackground}
attribute's value can be found in the {@link #Theme} array.
Must be a reference to another resource, in the form "@[+][package:]type:name"
or to a theme attribute in the form "?[package:][type:]name".
@attr name com.example.fotorsdkdemo:fotorMainToolPanelBackground
*/
public static final int Theme_fotorMainToolPanelBackground = 8;
/**
This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorMainToolPanelHeight}
attribute's value can be found in the {@link #Theme} array.
Must be a reference to another resource, in the form "@[+][package:]type:name"
or to a theme attribute in the form "?[package:][type:]name".
@attr name com.example.fotorsdkdemo:fotorMainToolPanelHeight
*/
public static final int Theme_fotorMainToolPanelHeight = 3;
/**
This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorNavigationBtnWidth}
attribute's value can be found in the {@link #Theme} array.
Must be a reference to another resource, in the form "@[+][package:]type:name"
or to a theme attribute in the form "?[package:][type:]name".
@attr name com.example.fotorsdkdemo:fotorNavigationBtnWidth
*/
public static final int Theme_fotorNavigationBtnWidth = 5;
/**
This symbol is the offset where the {@link com.example.fotorsdkdemo.R.attr#fotorTitleTextSize}
attribute's value can be found in the {@link #Theme} array.
Must be a reference to another resource, in the form "@[+][package:]type:name"
or to a theme attribute in the form "?[package:][type:]name".
@attr name com.example.fotorsdkdemo:fotorTitleTextSize
*/
public static final int Theme_fotorTitleTextSize = 9;
};
}
================================================
FILE: FotorSDKDemo/lint.xml
================================================
================================================
FILE: FotorSDKDemo/proguard-project.txt
================================================
# To enable ProGuard in your project, edit project.properties
# to define the proguard.config property as described in that file.
#
# Add project specific ProGuard rules here.
# By default, the flags in this file are appended to flags specified
# in ${sdk.dir}/tools/proguard/proguard-android.txt
# You can edit the include path and order by changing the ProGuard
# include property in project.properties.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
# Add any project specific keep options here:
# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}
================================================
FILE: FotorSDKDemo/project.properties
================================================
# This file is automatically generated by Android Tools.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file must be checked in Version Control Systems.
#
# To customize properties used by the Ant build system edit
# "ant.properties", and override values to adapt the script to your
# project structure.
#
# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
# Project target.
target=android-19
android.library.reference.1=../FotorSDKLibrary
#------ RenderScript Configuration -------
renderscript.target=19
renderscript.support.mode=true
sdk.buildtools=19.0.3
#------ RenderScript Configuration -------
================================================
FILE: FotorSDKDemo/res/color/photo_editor_button_background_color.xml
================================================
================================================
FILE: FotorSDKDemo/res/color/photo_editor_button_text_color.xml
================================================
================================================
FILE: FotorSDKDemo/res/drawable/photo_editor_button_background.xml
================================================
================================================
FILE: FotorSDKDemo/res/layout/activity_main.xml
================================================
================================================
FILE: FotorSDKDemo/res/values/colors.xml
================================================
#E5414850#B3C2D6#00C0FF#EEB3C2D6#E5414850#991C1F27#CC414850
================================================
FILE: FotorSDKDemo/res/values/dimens.xml
================================================
16dp16dp44dip20sp60dip16sp
================================================
FILE: FotorSDKDemo/res/values/strings.xml
================================================
FotorSDKDemoSettingsHello world!Photo EditorSelect an imageEdit sample image
================================================
FILE: FotorSDKDemo/res/values/styles.xml
================================================
================================================
FILE: FotorSDKDemo/res/values-sw600dp/dimens.xml
================================================
================================================
FILE: FotorSDKDemo/res/values-sw720dp-land/dimens.xml
================================================
128dp
================================================
FILE: FotorSDKDemo/res/values-v11/styles.xml
================================================
================================================
FILE: FotorSDKDemo/res/values-v14/styles.xml
================================================
================================================
FILE: FotorSDKDemo/src/com/example/fotorsdkdemo/MainActivity.java
================================================
package com.example.fotorsdkdemo;
import java.io.File;
import com.everimaging.fotorsdk.FotorConstants;
import com.everimaging.fotorsdk.FotorSDKActivity;
import com.everimaging.fotorsdk.FotorSDKVersion;
import com.everimaging.fotorsdk.FotorUtils;
import com.everimaging.fotorsdk.provider.FotorContentProvider;
import com.everimaging.fotorsdk.provider.FotorContentProvider.SessionColumns;
import com.everimaging.fotorsdk.provider.FotorContentProvider.SessionColumns.Session;
import com.everimaging.fotorsdk.utils.BitmapDecodeUtils;
import com.everimaging.fotorsdk.utils.Utils;
import com.everimaging.fotorsdk.engine.FotorHDFilter;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnCancelListener;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.media.MediaScannerConnection;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore.Images;
import android.provider.MediaStore.Images.ImageColumns;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
/**
* Sample main activity
*
* @description
*
* @author John.Zhang
* @version 1.0
* @create Apr 12, 2014 3:06:39 PM
* @update Apr 12, 2014 3:06:39 PM
*/
public class MainActivity extends Activity {
private static final int ACTION_REQUEST_FEATURE = 2;
private static final int ACTION_REQUEST_GALLERY = 3;
public static final String LOG_TAG = "fotorsdk_demo";
/** Folder name on the sdcard where the images will be saved **/
private static final String FOLDER_NAME = "FotorSDK";
/** Edit sample button */
Button mEditButton;
/** Call gallery button */
Button mGalleryButton;
/** Display image view */
ImageView mImage;
/** The path for output file */
Uri mOutputFilePath;
/** Image uri for image editor */
Uri mImageUri;
/** Display version label for DEBUG */
private TextView mSDKVersionLabel;
/** The sample image uri. */
private Uri mSampleUri;
private File mGalleryFolder;
/** session id for the hi-res post processing */
private String mSessionId;
@Override
protected void onCreate(Bundle savedInstanceState) {
Log.i(LOG_TAG, "onCreate");
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mEditButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// if (mImageUri != null) {
// startFeature(mImageUri);
// }
if (mSampleUri != null) {
startFeature(mSampleUri);
}
}
});
mGalleryButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
pickFromGallery();
}
});
mGalleryFolder = createFolders();
// add sample image
mSampleUri = Uri.parse("file:///android_asset/sample.jpg");
loadAsync(mSampleUri);
if (BuildConfig.DEBUG) {
mSDKVersionLabel.setText("V" + FotorSDKVersion.FOTOR_SDK_VERSION);
}
}
/**
* Start the activity to pick an image from the user gallery
*/
private void pickFromGallery() {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
Intent chooser = Intent.createChooser(intent, "Choose a Picture");
startActivityForResult(chooser, ACTION_REQUEST_GALLERY);
}
@Override
protected void onResume() {
Log.i(LOG_TAG, "onResume");
super.onResume();
if (getIntent() != null) {
handleIntent(getIntent());
setIntent(new Intent());
}
}
/**
* Handle the incoming {@link Intent}
*/
private void handleIntent(Intent intent) {
String action = intent.getAction();
if (null != action) {
if (Intent.ACTION_SEND.equals(action)) {
Bundle extras = intent.getExtras();
if (extras != null && extras.containsKey(Intent.EXTRA_STREAM)) {
Uri uri = (Uri) extras.get(Intent.EXTRA_STREAM);
loadAsync(uri);
}
} else if (Intent.ACTION_VIEW.equals(action)) {
Uri data = intent.getData();
Log.d(LOG_TAG, "data: " + data);
loadAsync(data);
}
}
}
/**
* Load the incoming Image
*
* @param uri
*/
private void loadAsync(final Uri uri) {
Log.i(LOG_TAG, "loadAsync: " + uri);
Drawable toRecycle = mImage.getDrawable();
if (toRecycle != null && toRecycle instanceof BitmapDrawable) {
if (((BitmapDrawable) mImage.getDrawable()).getBitmap() != null)
((BitmapDrawable) mImage.getDrawable()).getBitmap().recycle();
}
mImage.setImageDrawable(null);
mImageUri = null;
DownloadAsync task = new DownloadAsync();
task.execute(uri);
}
@Override
protected void onDestroy() {
Log.i(LOG_TAG, "onDestroy");
super.onDestroy();
mOutputFilePath = null;
}
@Override
public void onContentChanged() {
super.onContentChanged();
System.out.println("context:" + this.getPackageName());
mEditButton = (Button) findViewById(R.id.button2);
mGalleryButton = (Button) findViewById(R.id.button_gallery);
mImage = (ImageView) findViewById(R.id.image);
mSDKVersionLabel = (TextView) findViewById(R.id.fotor_sdk_version_label);
}
@Override
/**
* This method is called when feather has completed ( ie. user clicked on "done" or just exit the activity without saving ).
* If user clicked the "done" button you'll receive RESULT_OK as resultCode, RESULT_CANCELED otherwise.
*
* @param requestCode
* - it is the code passed with startActivityForResult
* @param resultCode
* - result code of the activity launched ( it can be RESULT_OK or RESULT_CANCELED )
* @param data
* - the result data
*/
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
switch (requestCode) {
case ACTION_REQUEST_FEATURE: {
Uri uri = data.getData();
Bitmap bitmap = BitmapDecodeUtils.decode(this, uri, 0, 0);
setImageURI(uri, bitmap);
new ProcessHDTask(this).execute();
}
break;
case ACTION_REQUEST_GALLERY: {
Uri uri = data.getData();
loadAsync(uri);
startFeature(uri);
}
break;
}
} else if (resultCode == RESULT_CANCELED) {
switch (requestCode) {
case ACTION_REQUEST_FEATURE:
if (mSessionId != null)
deleteSession(mSessionId);
break;
}
}
}
private String onSaveCompletion() {
Uri sessionUri = SessionColumns.getContentUri(this, mSessionId);
Cursor cursor = getContentResolver().query(sessionUri, null, null,
null, null);
Session session = Session.create(cursor);
if (session != null) {
FotorHDFilter fotorHDFilter = new FotorHDFilter(this, session);
fotorHDFilter.loadImage();
fotorHDFilter.executeFilter();
String dstPath = Utils.getSDPath() + "/testOriginal.jpg";
fotorHDFilter.save(dstPath);
fotorHDFilter.dispose();
deleteSession(mSessionId);
return dstPath;
}
return null;
}
class ProcessHDTask extends AsyncTask {
private ProgressDialog mDialog;
private Context mContext;
public ProcessHDTask(Context context) {
this.mContext = context;
}
@Override
protected void onPreExecute() {
mDialog = ProgressDialog.show(mContext, "Process HD",
"Please wait...");
}
@Override
protected String doInBackground(Void... params) {
return onSaveCompletion();
}
@Override
protected void onPostExecute(String result) {
mDialog.dismiss();
String msg = "Process Error";
if (result != null) {
msg = result;
}
Toast.makeText(mContext, msg, Toast.LENGTH_LONG).show();
}
}
/**
* Delete the session and all it's actions. We do not need it anymore.
* Note that this is optional. All old sessions are automatically removed in
* Feather.
*
* @param session_id
*/
private void deleteSession(final String session_id) {
Uri uri = FotorContentProvider.SessionColumns.getContentUri(this,
session_id);
int count = getContentResolver().delete(uri, null, null);
System.out.println("delete session count:" + count);
}
/**
* Given an Uri load the bitmap into the current ImageView and resize it to
* fit the image container size
*
* @param uri
*/
@SuppressWarnings("deprecation")
private boolean setImageURI(final Uri uri, final Bitmap bitmap) {
Log.d(LOG_TAG,
"image size: " + bitmap.getWidth() + "x" + bitmap.getHeight());
mImage.setImageBitmap(bitmap);
mImage.setBackgroundDrawable(null);
mEditButton.setEnabled(true);
mImageUri = uri;
return true;
}
/**
* We need to notify the MediaScanner when a new file is created. In this
* way all the gallery applications will be notified too.
*
* @param file
*/
private void updateMedia(String filepath) {
Log.i(LOG_TAG, "updateMedia: " + filepath);
MediaScannerConnection.scanFile(getApplicationContext(),
new String[] { filepath }, null, null);
}
/**
* Pick a random image from the user gallery
*
* @return
*/
@SuppressWarnings("unused")
private Uri pickRandomImage() {
Cursor c = getContentResolver().query(
Images.Media.EXTERNAL_CONTENT_URI,
new String[] { ImageColumns._ID, ImageColumns.DATA },
ImageColumns.SIZE + ">?", new String[] { "90000" }, null);
Uri uri = null;
if (c != null) {
int total = c.getCount();
int position = (int) (Math.random() * total);
Log.d(LOG_TAG, "pickRandomImage. total images: " + total
+ ", position: " + position);
if (total > 0) {
if (c.moveToPosition(position)) {
String data = c.getString(c
.getColumnIndex(Images.ImageColumns.DATA));
long id = c.getLong(c
.getColumnIndex(Images.ImageColumns._ID));
uri = Uri.parse(data);
Log.d(LOG_TAG, uri.toString());
}
}
c.close();
}
return uri;
}
/**
* Return a new image file. Name is based on the current time. Parent folder
* will be the one created with createFolders
*
* @return
* @see #createFolders()
*/
private File generateOutputFileName() {
if (mGalleryFolder != null) {
if (mGalleryFolder.exists()) {
File file = new File(mGalleryFolder, "Fotor_"
+ System.currentTimeMillis() + ".jpg");
return file;
}
}
return null;
}
/**
* Once you've chosen an image you can start the feather activity
*
* @param uri
*/
private void startFeature(Uri uri) {
Log.d(LOG_TAG, "uri: " + uri);
// first check the external storage availability
if (!isExternalStorageAvilable()) {
new AlertDialog.Builder(this)
.setTitle(android.R.string.dialog_alert_title)
.setMessage("External Storage is not avilable").show();
return;
}
// create a temporary file where to store the resulting image
File file = generateOutputFileName();
if (null != file) {
mOutputFilePath = Uri.fromFile(file);
} else {
new AlertDialog.Builder(this)
.setTitle(android.R.string.dialog_alert_title)
.setMessage("Failed to create a new File").show();
return;
}
// Create the intent needed to start feather
Intent newIntent = new Intent(this, FotorSDKActivity.class);
// === INPUT IMAGE URI ===
// Set the source image uri
newIntent.setData(uri);
// === OUTPUT ====
// Optional
// Pass the uri of the destination image file.
// This will be the same uri you will receive in the onActivityResult
System.out.println("mOutputFilePath->:" + mOutputFilePath);
// newIntent.putExtra(FotorConstants.EXTRA_OUTPUT_PATH,
// mOutputFilePath);
// === OUTPUT QUALITY ===
// Optional
newIntent.putExtra(FotorConstants.EXTRA_OUTPUT_QUALITY, 90);
// === MAX SIZE ===
// Optional
// you can pass the maximum allowed image size (for the preview),
// otherwise feather will determine
// the max size based on the device informations.
// This will not affect the hi-res image size.
// Here we're passing the current display size as max image size because
// after
// the execution of Aviary we're saving the HI-RES image so we don't
// need a big
// image for the preview
final DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int max_size = Math.max(metrics.widthPixels, metrics.heightPixels);
max_size = (int) ((float) max_size / 1.4f);
newIntent.putExtra(FotorConstants.EXTRA_MAX_PREVIEW_SIZE, max_size);
mSessionId = FotorUtils.generateSessionId(this);
getContentResolver().delete(
SessionColumns.getContentUri(this, mSessionId), null, null);
Log.d(LOG_TAG,
"session: " + mSessionId + ", size: " + mSessionId.length());
newIntent.putExtra(FotorConstants.EXTRA_FOTOR_SESSION_ID, mSessionId);
// // === FEATURE LIST ===
// newIntent.putExtra(FotorConstants.EXTRA_FEATURE_LIST, new String[] {
// FotorFeaturesFactory.FeatureType.FX_EFFECTS.name(),
// FotorFeaturesFactory.FeatureType.BORDER.name() });
// Whether hide confirm dialog when user not saved the was changed
// bitmap
// This default value will show
// newIntent.putExtra(FotorConstants.EXTRA_HIDE_DISCARD_ALERT, false);
// Whether input image no changes,were made to the image.
// newIntent.putExtra(FotorConstants.EXTRA_SAVE_ON_NO_CHANGES, true);
// start feather
startActivityForResult(newIntent, ACTION_REQUEST_FEATURE);
}
/**
* Check the external storage status
*
* @return
*/
private boolean isExternalStorageAvilable() {
String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state)) {
return true;
}
return false;
}
/**
* Try to create the required folder on the sdcard where images will be
* saved to.
*
* @return
*/
private File createFolders() {
File baseDir;
if (android.os.Build.VERSION.SDK_INT < 8) {
baseDir = Environment.getExternalStorageDirectory();
} else {
baseDir = Environment
.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
}
if (baseDir == null)
return Environment.getExternalStorageDirectory();
Log.d(LOG_TAG, "Pictures folder: " + baseDir.getAbsolutePath());
File fotorSDKFolder = new File(baseDir, FOLDER_NAME);
if (fotorSDKFolder.exists())
return fotorSDKFolder;
if (fotorSDKFolder.mkdirs())
return fotorSDKFolder;
return Environment.getExternalStorageDirectory();
}
class DownloadAsync extends AsyncTask implements
OnCancelListener {
ProgressDialog mProgress;
private Uri mUri;
@Override
protected void onPreExecute() {
super.onPreExecute();
mProgress = new ProgressDialog(MainActivity.this);
mProgress.setIndeterminate(true);
mProgress.setCancelable(true);
mProgress.setMessage("Loading image...");
mProgress.setOnCancelListener(this);
mProgress.show();
}
@Override
protected Bitmap doInBackground(Uri... params) {
mUri = params[0];
DisplayMetrics displayMetrics = getResources().getDisplayMetrics();
int maxW = (int) displayMetrics.widthPixels;
int maxH = (int) displayMetrics.heightPixels;
Bitmap bitmap = BitmapDecodeUtils.decode(getApplicationContext(),
mUri, maxW, maxH);
return bitmap;
}
@Override
protected void onPostExecute(Bitmap result) {
super.onPostExecute(result);
if (mProgress.getWindow() != null) {
mProgress.dismiss();
}
if (result != null) {
setImageURI(mUri, result);
} else {
Toast.makeText(MainActivity.this,
"Failed to load image " + mUri, Toast.LENGTH_SHORT)
.show();
}
}
@Override
public void onCancel(DialogInterface dialog) {
Log.i(LOG_TAG, "onProgressCancel");
this.cancel(true);
}
@Override
protected void onCancelled() {
super.onCancelled();
Log.i(LOG_TAG, "onCancelled");
}
}
}
================================================
FILE: LICENSE
================================================
The MIT License (MIT)
Copyright (c) 2014 koluray
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
================================================
FILE: README.md
================================================
ImageEditor-android
===================
the omnipotent image editor
**[ImageEditor](https://github.com/koluray/ImageEditor-android.git)** is an omnipotent image editor which is based on [FotorSDK](https://github.com/Fotor).

Get more info and downloads of ImageEditor (for iOS and Android) via [the ImageEditor mobile portal](https://github.com/koluray?tab=repositories)
[Click here for **official documentation for ImageEditor-android**](https://github.com/Fotor/FotorSDK-android/wiki/InstallationGuide)
**omnipotent** means:
* Plentiful features: ImageEditor currently support a mount of features as below
* `Auto Enhance`: One-Tap Enhance can automatically transform boring photos into masterpieces.
* `Scenes`: Exclusive-Sophisticated photo-enhancement technology offers 13 different scenes options that automatically optimize the photo depending on the conditions when it was taken.
* `Base Adjust`: Modify brightness, contrast, saturation, and sharpness with our easy tools.
* `Advance Adjust`: Use the advanced features to adjust vignette, shadows and highlights, temperature and tint, colors, and even curves.
* `Effect`: Let your users stretch their creativity with Fotor’s huge palette of effects. And multiple effects can be combined in a single photo for thousands of combinations!
* `Rotate`: Rotate and Flip.
* `Crop`: Crop resizes photos with standard options, including 4:3, 6:4, 7:5, 10:8, 16:9, 3:4, 4:6, 5:7, 8:10, 16:9 or Custom.
* `Frame`: Create fun images by framing your photos in different scenes.
* `Sticker`: Stickers can be rotated or resized to perfectly fit each photo.
* `Text`: Awesome fonts and customizable text, with text color, size, shadow, alignment, and transparency all adjustable.
* `Tilt Shift`: Tilt-Shift gives images the depth-of-field and other visual effects normally seen only on professional grade DSLR cameras, using a mix of clear focus and selective blurring to create magnificent photos.
* Great performance: Low memory usage and amazingly fast.
* Real time performance: 20 ~ 40MB transient memory. All of the fine adjustment controls in ImageEditor are smoothly applied in real time.
* Generate Output image performance: high-quality and fast processing, support 500MP image. (need [higher image processing resolution](http://www.fotor.com) ?)
* Flexibility: Owing to the powerful [FotorSDK](https://github.com/Fotor), ImageEditor has a high flexibility.
* Easy to use interface
* Configurable features
* Compatibility:
* API Level: Compatible with Android 2.3 or higher.
## More Information
* There's lots more information on the [wiki](https://github.com/koluray/ImageEditor-android/wiki).
## Credits ##
**Design, coding:** [John](https://github.com/jhondge) , [ExenVitor](https://github.com/ExenVitor)
## License ##
* ImageEditor-android is released under the MIT License.
This is a permissive, commercial-friendly license. For details read the individual [LICENSE](LICENSE).